Skip to content

crossgen2 determinism fails with tiered pgo #51898

@AndyAyersMS

Description

@AndyAyersMS

Failed in weekend testing:

        1 / 1 (100%, 1 failed): failed in 21301 msecs, exit code -1073740286 = 0xC0000602, expected 0: corerun.exe C:\h\w\B106099F\p\crossgen2\crossgen2.dll @C:\h\w\B106099F\w\A02C0898\e\readytorun\coreroot_determinism\coreroot_determinism\seed1\CPAOT-ret.out\System.Private.CoreLib.dll.rsp
        !! Assert failure(PID 11800 [0x00002e18], Thread: 11760 [0x2df0]): Assertion failed 'OperIs(GT_LCL_VAR, GT_LCL_FLD, GT_PHI_ARG, GT_STORE_LCL_VAR, GT_STORE_LCL_FLD, GT_LCL_VAR_ADDR, GT_LCL_FLD_ADDR)' in 'ILCompiler.Compilation:IsEffectivelySealed(Internal.TypeSystem.MethodDesc):bool:this' during 'Morph - Global' (IL size 13)
        !!     File: D:\workspace\_work\1\s\src\coreclr\jit\gtstructs.h Line: 63
        !!     Image: C:\h\w\B106099F\p\corerun.exe

Looks like the problem is that the "exit sequence" after a tail call has a more complex structure than #50806 is prepared to sanction. In particular there are assignments with casts, and a nop.

I have a fix in progress.

Metadata

Metadata

Assignees

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions