Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test failure baseservices\\exceptions\\unittests\\RecursiveThrowNew\\RecursiveThrowNew.cmd #75944

Closed
v-wenyuxu opened this issue Sep 21, 2022 · 6 comments · Fixed by #75992
Closed
Assignees
Labels
arch-arm64 arch-x64 arch-x86 area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI blocking-clean-ci-optional Blocking optional rolling runs JitStress CLR JIT issues involving JIT internal stress modes os-linux Linux OS (any supported distro) os-mac-os-x macOS aka OSX os-windows
Milestone

Comments

@v-wenyuxu
Copy link

v-wenyuxu commented Sep 21, 2022

Run: runtime-coreclr jitstress 20220919.1

Failed test:

coreclr windows arm64 Checked jitstress2_tiered @ Windows.10.Arm64v8.Open
- baseservices\\exceptions\\unittests\\RecursiveThrowNew\\RecursiveThrowNew.cmd
...
coreclr OSX x64 Checked jitstress1 @ OSX.1200.Amd64.Open
- JIT/jit64/opt/cg/cgstress/CgStress1_do/CgStress1_do.sh
... 
coreclr OSX x64 Checked jitstress2 @ OSX.1200.Amd64.Open
- JIT/PGO/ProfileCastClassAndIsInst/ProfileCastClassAndIsInst/ProfileCastClassAndIsInst.sh
...
coreclr OSX x64 Checked jitstress1_tiered @ OSX.1200.Amd64.Open
- JIT/HardwareIntrinsics/X86/Sse2/AlignVector128_r/AlignVector128_r.sh
...
coreclr OSX arm64 Checked jitstress1_tiered @ OSX.1200.ARM64.Open
- JIT/HardwareIntrinsics/Arm/AdvSimd.Arm64/AdvSimd.Arm64_Part6_ro/AdvSimd.Arm64_Part6_ro.sh
...
coreclr OSX x64 Checked jitstress2_tiered @ OSX.1200.Amd64.Open
- JIT/HardwareIntrinsics/X86/Bmi2/Bmi2_r/Bmi2_r.sh
...
coreclr OSX arm64 Checked jitstress2_tiered @ OSX.1200.ARM64.Open
- baseservices/threading/generics/TimerCallback/thread14/thread14.sh
...
coreclr Linux x64 Checked zapdisable @ Ubuntu.1804.Amd64.Open
- JIT/opt/OSR/largefuncletframe/largefuncletframe.sh
...
coreclr Linux x64 Checked jitstress2_tiered @ Ubuntu.1804.Amd64.Open
- JIT/Regression/VS-ia64-JIT/V1.2-M02/b28158/b28158/b28158.sh
...
coreclr windows arm64 Checked jitstress2 @ Windows.10.Arm64v8.Open
- JIT\\Regression\\VS-ia64-JIT\\V1.2-M02\\b28158\\b28158\\b28158.cmd
...
coreclr Linux x64 Checked jitstress2 @ Ubuntu.1804.Amd64.Open
- JIT/Regression/VS-ia64-JIT/V2.0-RTM/b539509/b539509/b539509.sh
...
coreclr Linux x64 Checked jitstress1_tiered @ Ubuntu.1804.Amd64.Open
- JIT/jit64/opt/cse/HugeField1/HugeField1.sh
...
coreclr windows x64 Checked jitstress1 @ Windows.10.Amd64.Open
- JIT\\Performance\\CodeQuality\\Bytemark\\Bytemark\\Bytemark.cmd
...
coreclr Linux x64 Checked jitstress1 @ Ubuntu.1804.Amd64.Open
- JIT/Performance/CodeQuality/Bytemark/Bytemark/Bytemark.sh
...
coreclr windows x86 Checked jitstress1_tiered @ Windows.10.Amd64.Open
- JIT/Performance/CodeQuality/Bytemark/Bytemark/Bytemark.sh
...
coreclr windows x86 Checked jitstress2 @ Windows.10.Amd64.Open
- JIT\\Directed\\nullabletypes\\Desktop\\nullcomparaison_do\\nullcomparaison_do.cmd
...
coreclr windows x64 Checked jitstress2 @ Windows.10.Amd64.Open
- baseservices\\threading\\generics\\WaitCallback\\thread16\\thread16.cmd
...
coreclr OSX arm64 Checked jitstress1 @ OSX.1200.ARM64.Open
- JIT/CodeGenBringUpTests/Swap_do/Swap_do.sh
...
coreclr windows arm64 Checked jitstress1_tiered @ Windows.10.Arm64v8.Open
- JIT\\jit64\\hfa\\main\\testC\\hfa_nf2C_d\\hfa_nf2C_d.cmd
...
coreclr windows x86 Checked jitstress1 @ Windows.10.Amd64.Open
- JIT\\Regression\\CLR-x86-JIT\\V1-M09.5-PDC\\b10894\\b10894\\b10894.cmd
...
coreclr Linux arm64 Checked zapdisable @ (Ubuntu.1804.Arm64.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm64v8-20220824230426-06f234f
- JIT/opt/OSR/largefuncletframe/largefuncletframe.sh
...
coreclr Linux arm Checked zapdisable @ (Ubuntu.1804.Arm32.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm32v7-bfcd90a-20200121150440
- JIT/opt/OSR/largefuncletframe/largefuncletframe.sh
...
coreclr windows x86 Checked zapdisable @ Windows.10.Amd64.Open
- JIT\\opt\\OSR\\largefuncletframe\\largefuncletframe.cmd
...
coreclr Linux arm64 Checked jitstress1_tiered @ (Ubuntu.1804.Arm64.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm64v8-20220824230426-06f234f
- JIT/Regression/VS-ia64-JIT/V1.2-M02/b28158/b28158/b28158.sh
...
coreclr Linux arm64 Checked jitstress1 @ (Ubuntu.1804.Arm64.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm64v8-20220824230426-06f234f
- JIT/Regression/VS-ia64-JIT/V1.2-M02/b28158/b28158/b28158.sh
...
coreclr windows arm64 Checked jitstress1 @ Windows.10.Arm64v8.Open
- JIT\\Performance\\CodeQuality\\Bytemark\\Bytemark\\Bytemark.cmd
...
coreclr Linux arm64 Checked jitstress2_tiered @ (Ubuntu.1804.Arm64.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm64v8-20220824230426-06f234f
- JIT/jit64/opt/cse/hugeexpr1/hugeexpr1.sh
...
coreclr Linux arm Checked jitstress1_tiered @ (Ubuntu.1804.Arm32.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm32v7-bfcd90a-20200121150440
- JIT/Regression/VS-ia64-JIT/V1.2-M02/b28158/b28158/b28158.sh
...
coreclr Linux arm64 Checked jitstress2 @ (Ubuntu.1804.Arm64.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm64v8-20220824230426-06f234f
- JIT/jit64/opt/cse/hugeexpr1/hugeexpr1.sh
...
coreclr windows x64 Checked jitstress1_tiered @ Windows.10.Amd64.Open
- JIT\\Regression\\CLR-x86-JIT\\V1-M12-Beta2\\b84916\\b84916\\b84916.cmd
...
coreclr Linux arm Checked jitstress1 @ (Ubuntu.1804.Arm32.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm32v7-bfcd90a-20200121150440
- JIT/Regression/VS-ia64-JIT/V1.2-M02/b28158/b28158/b28158.sh
...
coreclr OSX arm64 Checked jitstress2 @ OSX.1200.ARM64.Open
- Loader/classloader/generics/Instantiation/Recursion/Struct_ImplementMscorlibGenInterface/Struct_ImplementMscorlibGenInterface.sh
...
coreclr Linux arm Checked jitstress2_tiered @ (Ubuntu.1804.Arm32.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm32v7-bfcd90a-20200121150440
- JIT/jit64/opt/cse/HugeField2/HugeField2.sh
...
coreclr Linux arm Checked jitstress2 @ (Ubuntu.1804.Arm32.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm32v7-bfcd90a-20200121150440
- JIT/Regression/VS-ia64-JIT/V1.2-M02/b28158/b28158/b28158.sh
...
coreclr windows x64 Checked jitstress2_tiered @ Windows.10.Amd64.Open
- JIT\\HardwareIntrinsics\\X86\\Avx1\\Avx_r\\Avx_r.cmd
...
coreclr windows x86 Checked jitstress2_tiered @ Windows.10.Amd64.Open
- JIT\\HardwareIntrinsics\\X86\\Sse3\\Sse3_ro\\Sse3_ro.cmd
...

Error message:

Assert failure(PID 16272 [0x00003f90], Thread: 7324 [0x1c9c]): Assertion failed 'false && "found use of a node that is not in the LIR sequence"' in 'System.AppContext:TryGetSwitch(System.String,byref):bool' during 'Rationalize IR' (IL size 97; hash 0x1d5a13fc; Tier1)

File: D:\a\_work\1\s\src\coreclr\jit\lir.cpp Line: 1622
Image: D:\h\w\AC3C097A\p\corerun.exe
Return code:      1
Raw output file:      D:\h\w\AC3C097A\w\A51409FF\uploads\Reports\baseservices.exceptions\unittests\RecursiveThrowNew\RecursiveThrowNew.output.txt
Raw output:
BEGIN EXECUTION
"D:\h\w\AC3C097A\p\corerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false"  RecursiveThrowNew.dll
RecursiveThrowNew
Expected: 100
Actual: -1073740286
END EXECUTION - FAILED
FAILED
Test Harness Exitcode is : 1
To run the test:

set CORE_ROOT=D:\h\w\AC3C097A\p
D:\h\w\AC3C097A\w\A51409FF\e\baseservices\exceptions\unittests\RecursiveThrowNew\RecursiveThrowNew.cmd
Expected: True
Actual:   False


Stack trace
   at baseservices_exceptions._unittests_RecursiveThrowNew_RecursiveThrowNew_._unittests_RecursiveThrowNew_RecursiveThrowNew_cmd()
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Sep 21, 2022
@ghost ghost added the untriaged New issue has not been triaged by the area owner label Sep 21, 2022
@ghost
Copy link

ghost commented Sep 21, 2022

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

Issue Details

Run: runtime-coreclr jitstress 20220919.1

Failed test:

coreclr windows arm64 Checked jitstress2_tiered @ Windows.10.Arm64v8.Open
- baseservices\\exceptions\\unittests\\RecursiveThrowNew\\RecursiveThrowNew.cmd

coreclr OSX x64 Checked jitstress1 @ OSX.1200.Amd64.Open
- JIT/jit64/opt/cg/cgstress/CgStress1_do/CgStress1_do.sh

coreclr OSX x64 Checked jitstress2 @ OSX.1200.Amd64.Open
- JIT/PGO/ProfileCastClassAndIsInst/ProfileCastClassAndIsInst/ProfileCastClassAndIsInst.sh

coreclr OSX x64 Checked jitstress1_tiered @ OSX.1200.Amd64.Open
- JIT/HardwareIntrinsics/X86/Sse2/AlignVector128_r/AlignVector128_r.sh

coreclr OSX arm64 Checked jitstress1_tiered @ OSX.1200.ARM64.Open
- JIT/HardwareIntrinsics/Arm/AdvSimd.Arm64/AdvSimd.Arm64_Part6_ro/AdvSimd.Arm64_Part6_ro.sh

coreclr OSX x64 Checked jitstress2_tiered @ OSX.1200.Amd64.Open
- JIT/HardwareIntrinsics/X86/Bmi2/Bmi2_r/Bmi2_r.sh

coreclr OSX arm64 Checked jitstress2_tiered @ OSX.1200.ARM64.Open
- baseservices/threading/generics/TimerCallback/thread14/thread14.sh

coreclr Linux x64 Checked zapdisable @ Ubuntu.1804.Amd64.Open
- JIT/opt/OSR/largefuncletframe/largefuncletframe.sh

coreclr Linux x64 Checked jitstress2_tiered @ Ubuntu.1804.Amd64.Open
- JIT/Regression/VS-ia64-JIT/V1.2-M02/b28158/b28158/b28158.sh

coreclr windows arm64 Checked jitstress2 @ Windows.10.Arm64v8.Open
- JIT\\Regression\\VS-ia64-JIT\\V1.2-M02\\b28158\\b28158\\b28158.cmd

coreclr Linux x64 Checked jitstress2 @ Ubuntu.1804.Amd64.Open
- JIT/Regression/VS-ia64-JIT/V2.0-RTM/b539509/b539509/b539509.sh

coreclr Linux x64 Checked jitstress1_tiered @ Ubuntu.1804.Amd64.Open
- JIT/jit64/opt/cse/HugeField1/HugeField1.sh

coreclr windows x64 Checked jitstress1 @ Windows.10.Amd64.Open
- JIT\\Performance\\CodeQuality\\Bytemark\\Bytemark\\Bytemark.cmd

coreclr Linux x64 Checked jitstress1 @ Ubuntu.1804.Amd64.Open
- JIT/Performance/CodeQuality/Bytemark/Bytemark/Bytemark.sh

coreclr windows x86 Checked jitstress1_tiered @ Windows.10.Amd64.Open
- JIT/Performance/CodeQuality/Bytemark/Bytemark/Bytemark.sh

coreclr windows x86 Checked jitstress2 @ Windows.10.Amd64.Open
- JIT\\Directed\\nullabletypes\\Desktop\\nullcomparaison_do\\nullcomparaison_do.cmd

coreclr windows x64 Checked jitstress2 @ Windows.10.Amd64.Open
- baseservices\\threading\\generics\\WaitCallback\\thread16\\thread16.cmd

coreclr OSX arm64 Checked jitstress1 @ OSX.1200.ARM64.Open
- JIT/CodeGenBringUpTests/Swap_do/Swap_do.sh

coreclr windows arm64 Checked jitstress1_tiered @ Windows.10.Arm64v8.Open
- JIT\\jit64\\hfa\\main\\testC\\hfa_nf2C_d\\hfa_nf2C_d.cmd

coreclr windows x86 Checked jitstress1 @ Windows.10.Amd64.Open
- JIT\\Regression\\CLR-x86-JIT\\V1-M09.5-PDC\\b10894\\b10894\\b10894.cmd

coreclr Linux arm64 Checked zapdisable @ (Ubuntu.1804.Arm64.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm64v8-20220824230426-06f234f
- JIT/opt/OSR/largefuncletframe/largefuncletframe.sh

coreclr Linux arm Checked zapdisable @ (Ubuntu.1804.Arm32.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm32v7-bfcd90a-20200121150440
- JIT/opt/OSR/largefuncletframe/largefuncletframe.sh

coreclr windows x86 Checked zapdisable @ Windows.10.Amd64.Open
- JIT\\opt\\OSR\\largefuncletframe\\largefuncletframe.cmd

coreclr Linux arm64 Checked jitstress1_tiered @ (Ubuntu.1804.Arm64.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm64v8-20220824230426-06f234f
- JIT/Regression/VS-ia64-JIT/V1.2-M02/b28158/b28158/b28158.sh

coreclr Linux arm64 Checked jitstress1 @ (Ubuntu.1804.Arm64.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm64v8-20220824230426-06f234f
- JIT/Regression/VS-ia64-JIT/V1.2-M02/b28158/b28158/b28158.sh

coreclr windows arm64 Checked jitstress1 @ Windows.10.Arm64v8.Open
- JIT\\Performance\\CodeQuality\\Bytemark\\Bytemark\\Bytemark.cmd

coreclr Linux arm64 Checked jitstress2_tiered @ (Ubuntu.1804.Arm64.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm64v8-20220824230426-06f234f
- JIT/jit64/opt/cse/hugeexpr1/hugeexpr1.sh

coreclr Linux arm Checked jitstress1_tiered @ (Ubuntu.1804.Arm32.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm32v7-bfcd90a-20200121150440
- JIT/Regression/VS-ia64-JIT/V1.2-M02/b28158/b28158/b28158.sh

coreclr Linux arm64 Checked jitstress2 @ (Ubuntu.1804.Arm64.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm64v8-20220824230426-06f234f
- JIT/jit64/opt/cse/hugeexpr1/hugeexpr1.sh

coreclr windows x64 Checked jitstress1_tiered @ Windows.10.Amd64.Open
- JIT\\Regression\\CLR-x86-JIT\\V1-M12-Beta2\\b84916\\b84916\\b84916.cmd

coreclr Linux arm Checked jitstress1 @ (Ubuntu.1804.Arm32.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm32v7-bfcd90a-20200121150440
- JIT/Regression/VS-ia64-JIT/V1.2-M02/b28158/b28158/b28158.sh

coreclr OSX arm64 Checked jitstress2 @ OSX.1200.ARM64.Open
- Loader/classloader/generics/Instantiation/Recursion/Struct_ImplementMscorlibGenInterface/Struct_ImplementMscorlibGenInterface.sh

coreclr Linux arm Checked jitstress2_tiered @ (Ubuntu.1804.Arm32.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm32v7-bfcd90a-20200121150440
- JIT/jit64/opt/cse/HugeField2/HugeField2.sh

coreclr Linux arm Checked jitstress2 @ (Ubuntu.1804.Arm32.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm32v7-bfcd90a-20200121150440
- JIT/Regression/VS-ia64-JIT/V1.2-M02/b28158/b28158/b28158.sh

coreclr windows x64 Checked jitstress2_tiered @ Windows.10.Amd64.Open
- JIT\\HardwareIntrinsics\\X86\\Avx1\\Avx_r\\Avx_r.cmd

coreclr windows x86 Checked jitstress2_tiered @ Windows.10.Amd64.Open
- JIT\\HardwareIntrinsics\\X86\\Sse3\\Sse3_ro\\Sse3_ro.cmd

Error message:

Assert failure(PID 16272 [0x00003f90], Thread: 7324 [0x1c9c]): Assertion failed 'false && "found use of a node that is not in the LIR sequence"' in 'System.AppContext:TryGetSwitch(System.String,byref):bool' during 'Rationalize IR' (IL size 97; hash 0x1d5a13fc; Tier1)

File: D:\a\_work\1\s\src\coreclr\jit\lir.cpp Line: 1622
Image: D:\h\w\AC3C097A\p\corerun.exe
Return code:      1
Raw output file:      D:\h\w\AC3C097A\w\A51409FF\uploads\Reports\baseservices.exceptions\unittests\RecursiveThrowNew\RecursiveThrowNew.output.txt
Raw output:
BEGIN EXECUTION
"D:\h\w\AC3C097A\p\corerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false"  RecursiveThrowNew.dll
RecursiveThrowNew
Expected: 100
Actual: -1073740286
END EXECUTION - FAILED
FAILED
Test Harness Exitcode is : 1
To run the test:

set CORE_ROOT=D:\h\w\AC3C097A\p
D:\h\w\AC3C097A\w\A51409FF\e\baseservices\exceptions\unittests\RecursiveThrowNew\RecursiveThrowNew.cmd
Expected: True
Actual:   False


Stack trace
   at baseservices_exceptions._unittests_RecursiveThrowNew_RecursiveThrowNew_._unittests_RecursiveThrowNew_RecursiveThrowNew_cmd()
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
Author: v-wenyuxu
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@v-wenyuxu v-wenyuxu added arch-arm64 os-linux Linux OS (any supported distro) os-mac-os-x macOS aka OSX os-windows arch-x64 arch-x86 JitStress CLR JIT issues involving JIT internal stress modes blocking-clean-ci-optional Blocking optional rolling runs and removed untriaged New issue has not been triaged by the area owner labels Sep 21, 2022
@JulieLeeMSFT JulieLeeMSFT added this to the 7.0.0 milestone Sep 21, 2022
@JulieLeeMSFT
Copy link
Member

One more assert in rationalize. Assigning to @BruceForstall. @jakobbotsch PTAL.
cc @dotnet/jit-contrib.

@jakobbotsch
Copy link
Member

Looks related to #75842, apparently the threading added there was not enough (or perhaps incorrect). I'll look into a fix tomorrow.
cc @AndyAyersMS

@AndyAyersMS
Copy link
Member

Wonder if the failures we now see in #62689 are also related.

@AndyAyersMS
Copy link
Member

Seems like it is from changes made in optOptimizeBoolsGcStress which is why it didn't come up in normal testing.

AndyAyersMS added a commit to AndyAyersMS/runtime that referenced this issue Sep 21, 2022
Under jit stress, `optOptimizeBoolsGcStress` will modify trees. Since this
now happens in a phase that runs after `fgSetBlockOrder`, it must also
recost and rethread the trees.

Fixes dotnet#75944.
@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label Sep 21, 2022
@AndyAyersMS
Copy link
Member

This is not a 7.0 issue.

@AndyAyersMS AndyAyersMS modified the milestones: 7.0.0, 8.0.0 Sep 22, 2022
@AndyAyersMS AndyAyersMS self-assigned this Sep 22, 2022
@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label Sep 23, 2022
AndyAyersMS added a commit to AndyAyersMS/runtime that referenced this issue Sep 27, 2022
In some cases the value of a block's branch predicate is correlated with the
predecessor of the block. Often this correlation is hinted at by the presence
of phis in the predicate's tree and/or phi VNs in in the predicate's VN graph.

For each predecessor of a block, we evaluate the predicate value number using
the values brought to the block by that predecessor. If we find correlations,
we use them to drive the existing jump threading optimization.

Also, if we end up partially disambiguating such that there is just one
remaining predecessor, update the value number of the predicate to reflect
the values that flow in from that predecessor.

Fixes dotnet#75944.
Contributes to dotnet#48115.
AndyAyersMS added a commit that referenced this issue Sep 29, 2022
In some cases the value of a block's branch predicate is correlated with the
predecessor of the block. Often this correlation is hinted at by the presence
of phis in the predicate's tree and/or phi VNs in in the predicate's VN graph.

For each predecessor of a block, we evaluate the predicate value number using
the values brought to the block by that predecessor. If we find correlations,
we use them to drive the existing jump threading optimization.

Make sure that when we search local PHIs we also match the ssa def
number to ensure we're looking at the right PHI.

Also, if we end up partially disambiguating such that there is just one
remaining predecessor, update the value number of the predicate to reflect
the values that flow in from that predecessor.

Fixes #75944.
Contributes to #48115.
@ghost ghost locked as resolved and limited conversation to collaborators Oct 23, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-arm64 arch-x64 arch-x86 area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI blocking-clean-ci-optional Blocking optional rolling runs JitStress CLR JIT issues involving JIT internal stress modes os-linux Linux OS (any supported distro) os-mac-os-x macOS aka OSX os-windows
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants