Skip to content

Crossgen2 composite / shared framework - assert(varDsc->lvDoNotEnregister || tree->OperIs(GT_LCL_VAR, GT_STORE_LCL_VAR)) #35077

@trylek

Description

@trylek

Example run:

https://dev.azure.com/dnceng/public/_build/results?buildId=602753&view=results

Example test:

JIT\Regression\JitBlue\DevDiv_590358

Call stack:

 	KernelBase.dll!00007ffa4d930aa2()	Unknown
>	clrjitilc.dll!assertAbort(const char * why, const char * file, unsigned int line) Line 312	C++
 	clrjitilc.dll!Compiler::fgMarkUseDef(GenTreeLclVarCommon * tree) Line 57	C++
 	clrjitilc.dll!Compiler::fgPerNodeLocalVarLiveness(GenTree * tree) Line 228	C++
 	clrjitilc.dll!Compiler::fgPerBlockLocalVarLiveness() Line 493	C++
 	clrjitilc.dll!Compiler::fgLocalVarLiveness() Line 158	C++
 	clrjitilc.dll!Lowering::DoPhase() Line 5279	C++
 	clrjitilc.dll!Phase::Run() Line 62	C++
 	clrjitilc.dll!Compiler::compCompile(void * * methodCodePtr, unsigned long * methodCodeSize, JitFlags * compileFlags) Line 4832	C++
 	clrjitilc.dll!Compiler::compCompileHelper(CORINFO_MODULE_STRUCT_ * classPtr, ICorJitInfo * compHnd, CORINFO_METHOD_INFO * methodInfo, void * * methodCodePtr, unsigned long * methodCodeSize, JitFlags * compileFlags) Line 6054	C++
 	clrjitilc.dll!`Compiler::compCompile'::`46'::__Body::Run(Compiler::compCompile::__l2::__JITParam * __JITpParam) Line 5391	C++
 	clrjitilc.dll!Compiler::compCompile(CORINFO_METHOD_STRUCT_ * methodHnd, CORINFO_MODULE_STRUCT_ * classPtr, ICorJitInfo * compHnd, CORINFO_METHOD_INFO * methodInfo, void * * methodCodePtr, unsigned long * methodCodeSize, JitFlags * compileFlags) Line 5395	C++
 	clrjitilc.dll!``jitNativeCode'::`8'::__Body::Run'::`6'::__Body::Run(jitNativeCode::__l8::__Body::Run::__l5::__JITParam * __JITpParam) Line 6692	C++
 	clrjitilc.dll!`jitNativeCode'::`8'::__Body::Run(jitNativeCode::__l2::__JITParam * __JITpParam) Line 6696	C++
 	clrjitilc.dll!jitNativeCode(CORINFO_METHOD_STRUCT_ * methodHnd, CORINFO_MODULE_STRUCT_ * classPtr, ICorJitInfo * compHnd, CORINFO_METHOD_INFO * methodInfo, void * * methodCodePtr, unsigned long * methodCodeSize, JitFlags * compileFlags, void * inlineInfoPtr) Line 6720	C++
 	clrjitilc.dll!CILJit::compileMethod(ICorJitInfo * compHnd, CORINFO_METHOD_INFO * methodInfo, unsigned int flags, unsigned char * * entryAddress, unsigned long * nativeSizeOfCode) Line 304	C++
 	jitinterface.dll!JitCompileMethod(CorInfoException * * ppException, Jit * pJit, void * thisHandle, void * * callbacks, void * methodInfo, unsigned int flags, void * entryAddress, void * nativeSizeOfCode) Line 86	C++
 	[Managed to Native Transition]	
 	ILCompiler.ReadyToRun.dll!Internal.JitInterface.CorInfoImpl.CompileMethodInternal(ILCompiler.DependencyAnalysis.IMethodNode methodCodeNodeNeedingCode, Internal.IL.MethodIL methodIL) Line 166	C#
 	ILCompiler.ReadyToRun.dll!Internal.JitInterface.CorInfoImpl.CompileMethod(ILCompiler.DependencyAnalysis.IReadyToRunMethodCodeNode methodCodeNodeNeedingCode) Line 216	C#
 	ILCompiler.ReadyToRun.dll!ILCompiler.ReadyToRunCodegenCompilation.ComputeDependencyNodeDependencies.AnonymousMethod__14_0(ILCompiler.DependencyAnalysisFramework.DependencyNodeCore dependency) Line 371	C#
 	System.Threading.Tasks.Parallel.dll!System.Threading.Tasks.Parallel.ForEachWorker.AnonymousMethod__0(int i)	Unknown
 	System.Threading.Tasks.Parallel.dll!System.Threading.Tasks.Parallel.ForWorker.AnonymousMethod__1(ref System.Threading.Tasks.RangeWorker currentWorker, int timeout, out bool replicationDelegateYieldedBeforeCompletion)	Unknown
 	System.Threading.Tasks.Parallel.dll!System.Threading.Tasks.TaskReplicator.Replica.ExecuteAction(out bool yieldedBeforeCompletion)	Unknown
 	System.Threading.Tasks.Parallel.dll!System.Threading.Tasks.TaskReplicator.Replica.Execute()	Unknown
 	System.Threading.Tasks.Parallel.dll!System.Threading.Tasks.TaskReplicator.Replica..ctor.AnonymousMethod__4_0(object s)	Unknown
 	System.Private.CoreLib.dll!System.Threading.Tasks.Task.InnerInvoke()	Unknown
 	System.Private.CoreLib.dll!System.Threading.Tasks.Task..cctor.AnonymousMethod__274_0(object obj)	Unknown
 	System.Private.CoreLib.dll!System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(System.Threading.Thread threadPoolThread, System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state)	Unknown
 	System.Private.CoreLib.dll!System.Threading.Tasks.Task.ExecuteWithThreadLocal(ref System.Threading.Tasks.Task currentTaskSlot, System.Threading.Thread threadPoolThread)	Unknown
 	System.Private.CoreLib.dll!System.Threading.Tasks.Task.ExecuteEntryUnsafe(System.Threading.Thread threadPoolThread)	Unknown
 	System.Private.CoreLib.dll!System.Threading.Tasks.Task.ExecuteFromThreadPool(System.Threading.Thread threadPoolThread)	Unknown
 	System.Private.CoreLib.dll!System.Threading.ThreadPoolWorkQueue.Dispatch()	Unknown
 	System.Private.CoreLib.dll!System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()	Unknown
 	[Native to Managed Transition]	
 	kernel32.dll!00007ffa4fec7bd4()	Unknown
 	ntdll.dll!00007ffa5094ce51()	Unknown

Method being compiled: Main

SuperIlc command line (needs adjusting to local environment):

compile-subtree -cr d:\git\runtime\artifacts\tests\coreclr\Windows_NT.x64.Checked\Tests\Core_Root -in d:\git\runtime\artifacts\tests\coreclr\Windows_NT.x64.Checked\JIT\Regression\JitBlue\DevDiv_590358 --noetw --nojit --nocleanup --composite --release --framework --nocleanup

/cc @AndyAyersMS

Please let me know if you need additional diagnostic info, I have a trivial local repro in two JIT tests.

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions