[NativeAOT] Natvis visualization for threadstatic variables. (#90473)
authorVladimir Sadov <vsadov@microsoft.com>
Mon, 14 Aug 2023 23:49:46 +0000 (16:49 -0700)
committerGitHub <noreply@github.com>
Mon, 14 Aug 2023 23:49:46 +0000 (16:49 -0700)
commitc5aba1b2c0ad7b70d299c3afc0689fcb7a439d43
treec7dfce08684cf75c67ecbc244b69330bf2cf2c5a
parent2515ed1300d6a892f4f803c87861ea631e65de55
[NativeAOT] Natvis visualization for threadstatic variables. (#90473)

* Slow path

* keep an index node for every type

* encode the offset

* Support inline storage in natvis

* store typeManager in TLS root

* test for module

* root param

* tweak comments.

* make junk MOV`s unreachable dead code

* Keep index nodes for inlined threadstatics unconditionally, remove "deadcode MOV" hack

* Update src/coreclr/nativeaot/Runtime/thread.h

---------

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
src/coreclr/nativeaot/BuildIntegration/NativeAOT.natvis
src/coreclr/nativeaot/Runtime/thread.cpp
src/coreclr/nativeaot/Runtime/thread.h
src/coreclr/nativeaot/System.Private.CoreLib/src/Internal/Runtime/ThreadStatics.cs
src/coreclr/nativeaot/System.Private.CoreLib/src/System/Runtime/RuntimeImports.cs
src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/DependencyAnalysis/NodeFactory.cs
src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/DependencyAnalysis/Target_ARM64/ARM64ReadyToRunHelperNode.cs
src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/DependencyAnalysis/Target_X64/X64ReadyToRunHelperNode.cs
src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/DependencyAnalysis/ThreadStaticsNode.cs
src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/DependencyAnalysis/TlsRootNode.cs
src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/DependencyAnalysis/TypeThreadStaticIndexNode.cs