Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
91b5075
Derive ilasm option metadata from command
jkoritzinsky Aug 28, 2026
51b127f
Fix deterministic managed ilasm PDB output
jkoritzinsky Jul 31, 2026
08a9e55
Support unused IL opcode in managed ilasm
jkoritzinsky Jul 31, 2026
b8c809b
Fix managed ilasm Directed roundtrip compatibility
jkoritzinsky Jul 31, 2026
732f07c
Fix additional managed ilasm roundtrip cases
jkoritzinsky Aug 2, 2026
13fa716
Fix managed ilasm merged runner failures
jkoritzinsky Aug 3, 2026
7c38c9e
Fix remaining managed ilasm roundtrip failures
jkoritzinsky Aug 10, 2026
47b11aa
Remove import of AotCompilerCommon.props for ilasm (it's not an AOT c…
jkoritzinsky Aug 12, 2026
2e63612
Handle generic parameter metadata overflow
jkoritzinsky Sep 2, 2026
f9e27b7
Improve ILAssembler test coverage
jkoritzinsky Jul 28, 2026
7f45c5a
Potential fix for pull request finding
jkoritzinsky Jul 29, 2026
71a2e3f
Fix VisitObjSeq to unwrap nested object() wrappers in object[] custom…
jkoritzinsky Jul 29, 2026
a1196aa
Fix ILAssembler language directive test syntax
jkoritzinsky Jul 30, 2026
8562cc7
Optimize ILAssembler sequence builders
jkoritzinsky Jul 31, 2026
839ffab
Fix class overrides tests
jkoritzinsky Aug 14, 2026
0a12521
Fix build failures and deduplicate logic
jkoritzinsky Aug 26, 2026
fdda553
Add managed ilasm round-trip incompatibility
jkoritzinsky Sep 1, 2026
462d27d
Port down tests from the ilasm-actions branch so that PR can be entir…
jkoritzinsky Sep 2, 2026
2e3c055
Add one more test from upstack
jkoritzinsky Sep 2, 2026
94bc156
Restore running round-trip
jkoritzinsky Sep 3, 2026
18c7f4b
Fix ilasm option alias handling
jkoritzinsky Sep 3, 2026
9bf1465
Mark managed ilasm-incompatible tests
jkoritzinsky Sep 4, 2026
57c3fcc
Fix build failure
jkoritzinsky Sep 9, 2026
9685c8a
Skip ARM hardware intrinsics in managed ilasm round trip
jkoritzinsky Sep 10, 2026
b05dadd
Address additional ilasm review feedback
jkoritzinsky Sep 10, 2026
ca2cf80
Preserve numeric branch offsets in ilasm
jkoritzinsky Sep 10, 2026
c670b93
Fix managed ilasm native export emission
jkoritzinsky Sep 15, 2026
8f2232b
Address remaining ilasm review feedback
jkoritzinsky Sep 15, 2026
2341314
Fix preprocessor diagnostic spans
jkoritzinsky Sep 15, 2026
d03ddfa
Trim ilasm test configuration guidance
jkoritzinsky Sep 15, 2026
6482030
Remove managed ilasm marker detail
jkoritzinsky Sep 15, 2026
f63ca1e
Update disabling tests documentation with clarifications
jkoritzinsky Sep 15, 2026
1368023
Document COR header layout dependency
jkoritzinsky Sep 16, 2026
b6f9897
Preserve localloc initialization on round trip
jkoritzinsky Sep 16, 2026
7133365
Emit managed ilasm OOM markers unconditionally
jkoritzinsky Sep 16, 2026
10a0cf7
Address latest ilasm review feedback
jkoritzinsky Sep 17, 2026
e8d65fb
Skip HugeField1 managed ilasm round trip
jkoritzinsky Sep 17, 2026
89f3243
Skip additional huge managed ilasm round trips
jkoritzinsky Sep 18, 2026
45bf714
Align managed ILASM syntax with native ILASM
jkoritzinsky Sep 22, 2026
78a7fc6
Limit logic for vtable fixups to cases where we actually emit them (x…
jkoritzinsky Sep 22, 2026
6e7393f
Record more bug-fixes with ilasm and revert some unneeded changes. Re…
jkoritzinsky Sep 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion docs/workflow/ci/disabling-tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,11 @@ Some test configurations must be disabled by editing the `.csproj` or `.ilproj`
and inserting a property in a `<PropertyGroup>`, as follows:

- Prevent a test from running when testing unloadability: add `<UnloadabilityIncompatible>true</UnloadabilityIncompatible>`
- Prevent a test from running when testing ildasm/ilasm round-tripping: add `<IlasmRoundTripIncompatible>true</IlasmRoundTripIncompatible>`
- Prevent a test from running when testing ildasm/ilasm round-tripping: add `<IlasmRoundTripIncompatible>true</IlasmRoundTripIncompatible>`. This also disables managed ilasm round-tripping.
- Shared-library projects do not need process isolation for this property; merged runners skip their marked assemblies individually.
- Prevent a test from running only when testing round-tripping with managed ilasm: add `<ManagedIlasmRoundTripIncompatible>true</ManagedIlasmRoundTripIncompatible>`
Comment thread
jkoritzinsky marked this conversation as resolved.
Comment thread
jkoritzinsky marked this conversation as resolved.
- These are temporary workarounds for bugs that must be fixed before we can ship managed ilasm.
- Shared-library projects do not need process isolation for this property; merged runners skip their marked assemblies individually.
- Prevent a test assembly from being passed to the Mono AOT compiler: add `<MonoAotIncompatible>true</MonoAotIncompatible>`
- Prevent a test from being passed to CrossGen2: add `<CrossGenTest>false</CrossGenTest>`
- Prevent a test from running in ReadyToRun (R2R) test legs: add `<R2RIncompatible>true</R2RIncompatible>`
Expand Down
17 changes: 12 additions & 5 deletions docs/workflow/testing/coreclr/requiresprocessisolation.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# When to Set `<RequiresProcessIsolation>true</RequiresProcessIsolation>`

`RequiresProcessIsolation` prevents a test project from being merged into a shared
test runner process. When set, the test is built as a standalone executable and
executed in its own process. A test project must set this property when any of the
rules below apply.
test runner process. Runnable tests are built as standalone executables and executed
in their own processes. When set on a shared-library project, it excludes that library
from merged runner output folders. A runnable test project must set this property when
any of the rules below apply.

## Rules

Expand Down Expand Up @@ -55,9 +56,14 @@ min-opts, or tiered compilation are active. The skip check is per-process.

The test is skipped during SuperPMI collection runs. The skip check is per-process.

### 9. Project sets `<IlasmRoundTripIncompatible>true</IlasmRoundTripIncompatible>`
### 9. Project sets an IL round-trip incompatibility property

The test is skipped during IL round-trip validation runs. The skip check is per-process.
`IlasmRoundTripIncompatible` skips the test during all IL round-trip validation runs and
implies `ManagedIlasmRoundTripIncompatible`. `ManagedIlasmRoundTripIncompatible` skips
the test only when managed ilasm performs the round trip. Runnable tests need process
isolation because their skip checks are per-process. Shared-library projects do not need
process isolation for either property; merged runners skip their marked assemblies
individually.

### 10. Project sets `<UnloadabilityIncompatible>true</UnloadabilityIncompatible>`

Expand Down Expand Up @@ -203,6 +209,7 @@ If the project file contains **any** of the following MSBuild properties or item
| `JitOptimizationSensitive` | Per-process skip check |
| `SuperPMICollectIncompatible` | Per-process skip check |
| `IlasmRoundTripIncompatible` | Per-process skip check |
| `ManagedIlasmRoundTripIncompatible` | Per-process skip check |
| `UnloadabilityIncompatible` | Per-process skip check |
| `IsLongRunningGCTest` | Per-process skip pre-command |
| `CLRTestExecutionArguments` (non-empty) | Per-process invocation arguments |
Expand Down
5 changes: 3 additions & 2 deletions docs/workflow/testing/coreclr/test-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,10 @@ Therefore the managed portion of each test **must not contain**:
* `<JitOptimizationSensitive>true</JitOptimizationSensitive>`
* Exclude test from NativeAOT runs runs by adding the following to the csproj:
* `<NativeAotIncompatible>true</NativeAotIncompatible>`
* Exclude the test from ilasm round trip testing by adding the following to the csproj
* Exclude the test from all ilasm round-trip testing by adding the following to the csproj. This also implies `ManagedIlasmRoundTripIncompatible`.
* `<IlasmRoundTripIncompatible>true</IlasmRoundTripIncompatible>`
* Exclude the test only when round-trip testing with managed ilasm by adding the following to the csproj:
* `<ManagedIlasmRoundTripIncompatible>true</ManagedIlasmRoundTripIncompatible>`
* Exclude the test for unloadability (collectible assemblies) testing
* `<UnloadabilityIncompatible>true</UnloadabilityIncompatible>`
* If the test is specific for testing crossgen2, and should be compiled as such in all test modes
Expand Down Expand Up @@ -142,4 +144,3 @@ Unless tests are manually run on the command line to repro a problem, these para
`testFilterString` is any string other that `-stripe`. The only filters supported today are the simple form supported in 'dotnet test --filter' (substrings of the test's fully qualified name).

Either the -stripe <whichStripe> <totalStripes> parameter can be used or the TEST_HARNESS_STRIPE_TO_EXECUTE environment variable may be used to control striping. The TEST_HARNESS_STRIPE_TO_EXECUTE environment variable must be set to a string of the form `.<whichStripe>.<totalStripes>` if it is used. `<whichStripe>` is a 0 based index into the count of stripes, `<totalStripes>` is the total number of stripes.

1 change: 1 addition & 0 deletions eng/pipelines/common/templates/runtimes/run-test-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -548,6 +548,7 @@ jobs:
${{ if in(parameters.testGroup, 'ilasm') }}:
scenarios:
- ilasmroundtrip
- managedilasmroundtrip

########################################################################################################
#
Expand Down
12 changes: 1 addition & 11 deletions src/coreclr/tools/aot/AotCompilerCommon.props
Original file line number Diff line number Diff line change
@@ -1,15 +1,5 @@
<Project>
<PropertyGroup>
<ServerGarbageCollection>true</ServerGarbageCollection>
<TieredCompilation>false</TieredCompilation>
<EventSourceSupport>true</EventSourceSupport>
<OptimizationPreference>Speed</OptimizationPreference>
<ControlFlowGuard>Guard</ControlFlowGuard>
<InvariantGlobalization>true</InvariantGlobalization>
<StripSymbols Condition="'$(KeepNativeSymbols)' == 'true'">false</StripSymbols>
<XmlResolverIsNetworkingEnabledByDefault>false</XmlResolverIsNetworkingEnabledByDefault>
<StackTraceLineNumberSupport>true</StackTraceLineNumberSupport>
</PropertyGroup>
<Import Project="NativeAotToolRuntimeSettings.props" />

<PropertyGroup>
<_LibPrefix Condition="'$(CrossHostArch)' == 'true'">$(LibPrefix)</_LibPrefix>
Expand Down
13 changes: 13 additions & 0 deletions src/coreclr/tools/aot/NativeAotToolRuntimeSettings.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<Project>
<PropertyGroup>
<ServerGarbageCollection>true</ServerGarbageCollection>
<TieredCompilation>false</TieredCompilation>
<EventSourceSupport>true</EventSourceSupport>
<OptimizationPreference>Speed</OptimizationPreference>
<ControlFlowGuard>Guard</ControlFlowGuard>
<InvariantGlobalization>true</InvariantGlobalization>
<StripSymbols Condition="'$(KeepNativeSymbols)' == 'true'">false</StripSymbols>
<XmlResolverIsNetworkingEnabledByDefault>false</XmlResolverIsNetworkingEnabledByDefault>
<StackTraceLineNumberSupport>true</StackTraceLineNumberSupport>
</PropertyGroup>
</Project>
8 changes: 8 additions & 0 deletions src/tests/Common/CLRTest.Execute.Bash.targets
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,14 @@ if [ ! -z "$RunningIlasmRoundTrip" ]
then
echo SKIPPING EXECUTION BECAUSE RunningIlasmRoundTrip IS SET
exit $(IncompatibleTestBashScriptExitCode)
fi
]]></BashCLRTestEnvironmentCompatibilityCheck>
<BashCLRTestEnvironmentCompatibilityCheck Condition="'$(ManagedIlasmRoundTripIncompatible)' == 'true' And '$(IlasmRoundTripIncompatible)' != 'true'"><![CDATA[
$(BashCLRTestEnvironmentCompatibilityCheck)
if [ ! -z "$RunningIlasmRoundTrip" ] && [ ! -z "$IlasmRoundTripUseManagedIlasm" ]
then
echo "SKIPPING EXECUTION BECAUSE THE TEST IS INCOMPATIBLE WITH MANAGED ILASM ROUND-TRIP"
exit $(IncompatibleTestBashScriptExitCode)
fi
]]></BashCLRTestEnvironmentCompatibilityCheck>
<BashCLRTestEnvironmentCompatibilityCheck Condition="'$(SuperPmiCollectIncompatible)' == 'true'"><![CDATA[
Expand Down
10 changes: 10 additions & 0 deletions src/tests/Common/CLRTest.Execute.Batch.targets
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,16 @@ IF NOT "%RunningIlasmRoundTrip%"=="" (
Exit /b 0
)
]]></BatchCLRTestEnvironmentCompatibilityCheck>
<BatchCLRTestEnvironmentCompatibilityCheck Condition="'$(ManagedIlasmRoundTripIncompatible)' == 'true' And '$(IlasmRoundTripIncompatible)' != 'true'"><![CDATA[
$(BatchCLRTestEnvironmentCompatibilityCheck)
IF NOT "%RunningIlasmRoundTrip%"=="" (
IF NOT "%IlasmRoundTripUseManagedIlasm%"=="" (
ECHO SKIPPING EXECUTION BECAUSE THE TEST IS INCOMPATIBLE WITH MANAGED ILASM ROUND-TRIP
popd
Exit /b 0
)
)
]]></BatchCLRTestEnvironmentCompatibilityCheck>

<BatchCLRTestEnvironmentCompatibilityCheck Condition="'$(SuperPmiCollectIncompatible)' == 'true'"><![CDATA[
$(BatchCLRTestEnvironmentCompatibilityCheck)
Expand Down
3 changes: 3 additions & 0 deletions src/tests/Common/CLRTest.Execute.targets
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,9 @@ This file contains the logic for providing Execution Script generation.

<Import Project="CLRTest.Jit.targets" />
<Import Project="CLRTest.CrossGen.targets" />
<PropertyGroup>
<ManagedIlasmRoundTripIncompatible Condition="'$(IlasmRoundTripIncompatible)' == 'true'">true</ManagedIlasmRoundTripIncompatible>
</PropertyGroup>
<Import Project="CLRTest.GC.targets" />
<Import Project="CLRTest.Execute.*.targets" />
<Import Project="CLRTest.MockHosting.targets" Condition="'$(RequiresMockHostPolicy)' == 'true'" />
Expand Down
14 changes: 13 additions & 1 deletion src/tests/Common/CLRTest.Jit.targets
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,8 @@ def is_managed_exe_assembly(file):
print("")
print("ILASM RoundTrips")

if os.environ.get("IlasmRoundTripUseManagedIlasm") == "1":
use_managed_ilasm = os.environ.get("IlasmRoundTripUseManagedIlasm") == "1"
if use_managed_ilasm:
ilasm_path = os.path.join(os.environ["CORE_ROOT"], "managed-ilasm", "ilasm")
else:
ilasm_path = os.path.join(os.environ["CORE_ROOT"], "ilasm")
Expand All @@ -345,6 +346,17 @@ if not os.path.exists("IL-RT"):
os.mkdir("IL-RT")

for inputAssemblyName in glob.glob("*.dll"):
assemblyNameWithoutExtension = os.path.splitext(inputAssemblyName)[0]
ilasm_incompatible_marker = assemblyNameWithoutExtension + ".IlasmRoundTripIncompatible"
if os.path.isfile(ilasm_incompatible_marker):
print("Skipping ILASM round trip for " + inputAssemblyName)
continue

managed_ilasm_incompatible_marker = assemblyNameWithoutExtension + ".ManagedIlasmRoundTripIncompatible"
if use_managed_ilasm and os.path.isfile(managed_ilasm_incompatible_marker):
print("Skipping managed ILASM round trip for " + inputAssemblyName)
continue

if is_managed_assembly(inputAssemblyName):
print("ILASM RoundTrip for " + inputAssemblyName)

Expand Down
6 changes: 6 additions & 0 deletions src/tests/Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -442,6 +442,12 @@
<MarkerFile Include="$(IntermediateOutputPath)\$(MSBuildProjectName).XHarnessNoRunner" Condition="'$(EmitXHarnessNoRunnerMarkerFile)' == 'true'">
<Type>XHarnessNoRunner</Type>
</MarkerFile>
<MarkerFile Include="$(IntermediateOutputPath)\$(AssemblyName).IlasmRoundTripIncompatible" Condition="'$(IlasmRoundTripIncompatible)' == 'true'">
<Type>IlasmRoundTripIncompatible</Type>
</MarkerFile>
<MarkerFile Include="$(IntermediateOutputPath)\$(AssemblyName).ManagedIlasmRoundTripIncompatible" Condition="'$(ManagedIlasmRoundTripIncompatible)' == 'true'">
<Type>ManagedIlasmRoundTripIncompatible</Type>
</MarkerFile>
<MarkerFile Include="$(IntermediateOutputPath)\$(AssemblyName).NoMonoAot" Condition="'$(MonoAotIncompatible)' == 'true'">
<Type>NoMonoAot</Type>
</MarkerFile>
Expand Down
2 changes: 2 additions & 0 deletions src/tests/JIT/Directed/Directed_d.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
<DebugType>Full</DebugType>
<Optimize>False</Optimize>
<HasMergedInTests>true</HasMergedInTests>
<!-- Managed ilasm consumes excessive amount of memory -->
<ManagedIlasmRoundTripIncompatible>true</ManagedIlasmRoundTripIncompatible>
</PropertyGroup>
<ItemGroup>
<MergedWrapperProjectReference Include="coverage\importer\badendfinally.ilproj" />
Expand Down
2 changes: 2 additions & 0 deletions src/tests/JIT/Directed/Directed_do.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
<DebugType>Full</DebugType>
<Optimize>True</Optimize>
<HasMergedInTests>true</HasMergedInTests>
<!-- Managed ilasm consumes excessive amount of memory -->
<ManagedIlasmRoundTripIncompatible>true</ManagedIlasmRoundTripIncompatible>
<_UseOutOfProcessPhysicalPromotionTests Condition="'$(TargetsMobile)' != 'true' or ('$(TargetsBrowser)' == 'true' and '$(RuntimeFlavor)' == 'coreclr')">true</_UseOutOfProcessPhysicalPromotionTests>
</PropertyGroup>
<ItemGroup>
Expand Down
2 changes: 2 additions & 0 deletions src/tests/JIT/Directed/Directed_r.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
<DebugType>None</DebugType>
<Optimize>False</Optimize>
<HasMergedInTests>true</HasMergedInTests>
<!-- Managed ilasm consumes excessive amount of memory -->
<ManagedIlasmRoundTripIncompatible>true</ManagedIlasmRoundTripIncompatible>
</PropertyGroup>
<ItemGroup>
<MergedWrapperProjectReference Include="arglist\vararg_TargetWindows.csproj" />
Expand Down
2 changes: 2 additions & 0 deletions src/tests/JIT/Directed/Directed_ro.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
<DebugType>None</DebugType>
<Optimize>True</Optimize>
<HasMergedInTests>true</HasMergedInTests>
<!-- Managed ilasm consumes excessive amount of memory -->
<ManagedIlasmRoundTripIncompatible>true</ManagedIlasmRoundTripIncompatible>
</PropertyGroup>
<ItemGroup>
<MergedWrapperProjectReference Include="array-il\_Arrayscomplex3.ilproj" />
Expand Down
2 changes: 2 additions & 0 deletions src/tests/JIT/Directed/tls/mutualrecurthd-tls.ilproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
<CLRTestPriority>1</CLRTestPriority>
<!-- Test relies on tls support see #2441 -->
<DisableProjectBuild>true</DisableProjectBuild>
<!-- Managed ilasm does not support TLS RVA data declarations. -->
<ManagedIlasmRoundTripIncompatible>true</ManagedIlasmRoundTripIncompatible>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be permanent disable? I thought we have said that we won't support this in managed ilasm

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My plan was to convert the tests to C++/CLI in #133533 so we don't need to support it here and can remove this disable.

</PropertyGroup>
<PropertyGroup>
<DebugType>PdbOnly</DebugType>
Expand Down
2 changes: 2 additions & 0 deletions src/tests/JIT/Directed/tls/test-tls.ilproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
<CLRTestPriority>1</CLRTestPriority>
<!-- Test relies on tls support see #2441 -->
<DisableProjectBuild>true</DisableProjectBuild>
<!-- Managed ilasm does not support TLS RVA data declarations. -->
<ManagedIlasmRoundTripIncompatible>true</ManagedIlasmRoundTripIncompatible>
</PropertyGroup>
<PropertyGroup>
<DebugType>PdbOnly</DebugType>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

<GCStressIncompatible Condition="'$(TargetArchitecture)' == 'arm64' and '$(TargetOS)' == 'osx'">true</GCStressIncompatible>

<!-- Managed ilasm consumes excessive amount of memory -->
<ManagedIlasmRoundTripIncompatible>true</ManagedIlasmRoundTripIncompatible>

<!-- Various platforms will always throw, so we don't want to spend cycles running tests unnecessarily -->
<!-- We don't need to worry about coverage as we have a number of stress tests that can disable intrinsics per ISA and run on the normally supported platforms -->
<CLRTestTargetUnsupported Condition="'$(TargetArchitecture)' != 'arm64'">true</CLRTestTargetUnsupported>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

<GCStressIncompatible Condition="'$(TargetArchitecture)' == 'arm64' and '$(TargetOS)' == 'osx'">true</GCStressIncompatible>

<!-- Managed ilasm consumes excessive amount of memory -->
<ManagedIlasmRoundTripIncompatible>true</ManagedIlasmRoundTripIncompatible>

<!-- Various platforms will always throw, so we don't want to spend cycles running tests unnecessarily -->
<!-- We don't need to worry about coverage as we have a number of stress tests that can disable intrinsics per ISA and run on the normally supported platforms -->
<CLRTestTargetUnsupported Condition="'$(TargetArchitecture)' != 'arm64'">true</CLRTestTargetUnsupported>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
<PropertyGroup>
<AssemblyName>X86_Avx512F_r</AssemblyName>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<!-- Managed ilasm consumes excessive amount of memory -->
<ManagedIlasmRoundTripIncompatible>true</ManagedIlasmRoundTripIncompatible>
</PropertyGroup>
<PropertyGroup>
<DebugType>Embedded</DebugType>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
<PropertyGroup>
<AssemblyName>X86_Avx512F_ro</AssemblyName>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<!-- Managed ilasm consumes excessive amount of memory -->
<ManagedIlasmRoundTripIncompatible>true</ManagedIlasmRoundTripIncompatible>
</PropertyGroup>
<PropertyGroup>
<DebugType>Embedded</DebugType>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
<CLRTestPriority>1</CLRTestPriority>
<!-- Test relies on tls support see #2441 -->
<DisableProjectBuild>true</DisableProjectBuild>
<!-- Managed ilasm does not support TLS RVA data declarations. -->
<ManagedIlasmRoundTripIncompatible>true</ManagedIlasmRoundTripIncompatible>
</PropertyGroup>
<PropertyGroup>
<DebugType>PdbOnly</DebugType>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
<CLRTestPriority>1</CLRTestPriority>
<!-- Test relies on tls support see #2441 -->
<DisableProjectBuild>true</DisableProjectBuild>
<!-- Managed ilasm does not support TLS RVA data declarations. -->
<ManagedIlasmRoundTripIncompatible>true</ManagedIlasmRoundTripIncompatible>
</PropertyGroup>
<PropertyGroup>
<DebugType>PdbOnly</DebugType>
Expand Down
2 changes: 2 additions & 0 deletions src/tests/JIT/jit64/opt/cse/HugeArray1.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
<PropertyGroup>
<DebugType>Full</DebugType>
<Optimize>False</Optimize>
<!-- Managed ilasm consumes excessive amount of memory -->
<ManagedIlasmRoundTripIncompatible>true</ManagedIlasmRoundTripIncompatible>
<!-- Tracking issue: https://github.com/dotnet/runtime/issues/46622 -->
<DisableProjectBuild Condition="'$(RuntimeVariant)' == 'monointerpreter' or '$(MonoForceInterpreter)' == 'true'">true</DisableProjectBuild>
</PropertyGroup>
Expand Down
2 changes: 2 additions & 0 deletions src/tests/JIT/jit64/opt/cse/HugeField1.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
<PropertyGroup>
<DebugType>Full</DebugType>
<Optimize>False</Optimize>
<!-- Managed ilasm consumes excessive amount of memory -->
<ManagedIlasmRoundTripIncompatible>true</ManagedIlasmRoundTripIncompatible>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like HugeField2 needs skipping too (failed in CI)

</PropertyGroup>
<ItemGroup>
<Compile Include="HugeField1.cs" />
Expand Down
2 changes: 2 additions & 0 deletions src/tests/JIT/jit64/opt/cse/HugeField2.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
<PropertyGroup>
<DebugType>Full</DebugType>
<Optimize>False</Optimize>
<!-- Managed ilasm consumes excessive amount of memory -->
<ManagedIlasmRoundTripIncompatible>true</ManagedIlasmRoundTripIncompatible>
</PropertyGroup>
<ItemGroup>
<Compile Include="HugeField2.cs" />
Expand Down
2 changes: 2 additions & 0 deletions src/tests/JIT/jit64/opt/cse/hugeSimpleExpr1.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
<PropertyGroup>
<DebugType>Full</DebugType>
<Optimize>True</Optimize>
<!-- Managed ilasm consumes excessive amount of memory -->
<ManagedIlasmRoundTripIncompatible>true</ManagedIlasmRoundTripIncompatible>
</PropertyGroup>
<ItemGroup>
<Compile Include="hugeSimpleExpr1.cs" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
<!-- Without process isolation, this support assembly gets copied to the merged wrapper folder -->
<!-- where it subsequently crashes the LLVM AOT compiler. -->
<RequiresProcessIsolation>true</RequiresProcessIsolation>
<!-- ildasm crashes on this assembly. See https://github.com/dotnet/runtime/issues/127576 -->
<IlasmRoundTripIncompatible>true</IlasmRoundTripIncompatible>
<OutputType>Library</OutputType>
<CLRTestKind>SharedLibrary</CLRTestKind>
</PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<ManagedIlasmRoundTripIncompatible>true</ManagedIlasmRoundTripIncompatible>
<OutputType>Library</OutputType>
</PropertyGroup>
<ItemGroup>
Expand Down
4 changes: 4 additions & 0 deletions src/tools/ilasm/KNOWN-ISSUES.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,7 @@ Currently managed ilasm does not do any optimizations of the IL written by the u
## -FOLD is a no-op

Currently managed ilasm does not fold identical IL bodies from different methods into the same blob.

## VTable Exports don't support ARM32

VTable exports are Windows-only and Windows ARM32 is unsupported, so managed ILASM doesn't support them.
Loading
Loading