-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Closed
Labels
Priority:2Work that is important, but not critical for the releaseWork that is important, but not critical for the releasearea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIin-prThere is an active PR which will close this issue when it is mergedThere is an active PR which will close this issue when it is merged
Milestone
Description
Test JIT/Directed/debugging/debuginfo/tester passes with tiered jit and other env vars specified for it:
export DOTNET_JitNoForwardSub=1
export DOTNET_JitEnableHeadTailMerge=0
export DOTNET_JitEnableCrossBlockLocalAssertionProp=0
export DOTNET_JitEnableOptRepeat=0
Output:
0.0s: ==TEST STARTING==
0.3s: Started sending sentinel events...
0.3s: Connecting to EventPipe...
0.5s: Creating EventPipeEventSource...
0.5s: EventPipeEventSource created
0.5s: Dynamic.All callback registered
0.5s: Running optional trace validator
0.6s: Finished running optional trace validator
0.6s: Starting stream processing...
0.6s: Saw new provider 'Microsoft-Windows-DotNETRuntime'
0.8s: Saw sentinel event
0.8s: Stopped sending sentinel events
0.8s: Starting event generating action...
0.8s: Stopping event generating action
0.8s: Sending StopTracing command...
0.9s: Saw new provider 'Microsoft-DotNETCore-EventPipe'
0.9s: Saw new provider 'Microsoft-Windows-DotNETRuntimeRundown'
1.0s: Stopping stream processing
1.0s: Dropped 0 events
1.0s: Finished StopTracing command
1.0s: Reader task finished
1.0s: Validating optional callback...
[tests_d]DebugInfoMethods.TestUninlined: Validate mappings for debuggable codegen (tier: MinOptJitted)
[tests_d]DebugInfoMethods.TestLateFailingInlineCandidate: Validate mappings for debuggable codegen (tier: MinOptJitted)
[tests_d]DebugInfoMethods.TestSucceedingInlineCandidate: Validate mappings for debuggable codegen (tier: MinOptJitted)
[tests_d]DebugInfoMethods.TestControlFlow: Validate mappings for debuggable codegen (tier: MinOptJitted)
[tests_r]DebugInfoMethods.TestUninlined: Validate mappings for optimized codegen (tier: QuickJitted)
[tests_r]DebugInfoMethods.TestLateFailingInlineCandidate: Validate mappings for optimized codegen (tier: QuickJitted)
[tests_r]DebugInfoMethods.TestSucceedingInlineCandidate: Validate mappings for optimized codegen (tier: QuickJitted)
[tests_r]DebugInfoMethods.TestControlFlow: Validate mappings for optimized codegen (tier: QuickJitted)
1.0s: ==TEST FINISHED: PASSED!==
However, setting DOTNET_TieredCompilation=0 leads to fail:
0.0s: ==TEST STARTING==
0.5s: Started sending sentinel events...
0.5s: Connecting to EventPipe...
0.8s: Creating EventPipeEventSource...
0.8s: EventPipeEventSource created
0.8s: Dynamic.All callback registered
0.8s: Running optional trace validator
0.9s: Finished running optional trace validator
0.9s: Starting stream processing...
1.0s: Saw new provider 'Microsoft-Windows-DotNETRuntime'
1.2s: Saw sentinel event
1.2s: Stopped sending sentinel events
1.2s: Starting event generating action...
1.2s: Stopping event generating action
1.2s: Sending StopTracing command...
1.3s: Saw new provider 'Microsoft-DotNETCore-EventPipe'
1.3s: Saw new provider 'Microsoft-Windows-DotNETRuntimeRundown'
1.3s: Stopping stream processing
1.3s: Dropped 0 events
1.3s: Finished StopTracing command
1.3s: Reader task finished
1.3s: Validating optional callback...
[tests_d]DebugInfoMethods.TestUninlined: Validate mappings for debuggable codegen (tier: MinOptJitted)
[tests_d]DebugInfoMethods.TestLateFailingInlineCandidate: Validate mappings for debuggable codegen (tier: MinOptJitted)
[tests_d]DebugInfoMethods.TestSucceedingInlineCandidate: Validate mappings for debuggable codegen (tier: MinOptJitted)
[tests_d]DebugInfoMethods.TestControlFlow: Validate mappings for debuggable codegen (tier: MinOptJitted)
[tests_r]DebugInfoMethods.TestUninlined: Validate mappings for optimized codegen (tier: Optimized)
[tests_r]DebugInfoMethods.TestLateFailingInlineCandidate: Validate mappings for optimized codegen (tier: Optimized)
[tests_r]DebugInfoMethods.TestSucceedingInlineCandidate: Validate mappings for optimized codegen (tier: Optimized)
[tests_r]DebugInfoMethods.TestControlFlow: Validate mappings for optimized codegen (tier: Optimized)
Validation failed: expected mappings at IL offsets 000, 006, 00e, 012, 01c, 02c
Actual (IL <-> native):
Prolog <-> 000
000 <-> 008
012 <-> 00c
02c <-> 020
034 <-> 032
Epilog <-> 032
1.3s: ==TEST FINISHED: FAILED!==
Xunit.Sdk.EqualException: Assert.Equal() Failure: Values differ
Expected: 100
Actual: -1
at Xunit.Assert.Equal[T](T expected, T actual, IEqualityComparer`1 comparer) in /_/src/Microsoft.DotNet.XUnitAssert/src/EqualityAsserts.cs:line 168
at __GeneratedMainWrapper.Main() in /home/runtime/artifacts/tests/coreclr/obj/linux.x64.Release/Managed/JIT/Directed/debugging/debuginfo/tester/XUnitWrapperGenerator/XUnitWrapperGenerator.XUnitWrapperGenerator/SimpleRunner.g.cs:line 10
This happens independently from architecture. According to original PR that added it (#61962), README and other files, it seems that it should support such mode. Looks like now debug info generated for Optimized differs from QuickJitted and MinOptJitted and test seems to need update for such case. Is this correct?
Build of e78b72b:
./build.sh --arch x64 --runtimeConfiguration Release --librariesConfiguration Release --subset clr+libs
BuildAllTestsAsStandalone=true ./src/tests/build.sh -Release -x64 -priority1cc @jakobbotsch @dotnet/samsung
Metadata
Metadata
Assignees
Labels
Priority:2Work that is important, but not critical for the releaseWork that is important, but not critical for the releasearea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIin-prThere is an active PR which will close this issue when it is mergedThere is an active PR which will close this issue when it is merged