-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
[NativeAOT] Inline TLS access for windows/x64 #89472
Merged
Merged
Changes from 11 commits
Commits
Show all changes
64 commits
Select commit
Hold shift + click to select a range
f1c5228
wip
kunalspathak 91ee21f
working model
kunalspathak fe242f1
wip
kunalspathak fcf00d2
wip
kunalspathak f736b2c
working
kunalspathak 6cd92f3
Add helper for tlsIndex
kunalspathak 87c3f25
add methods in superpmi
kunalspathak fb364a0
revert some local changes
kunalspathak e9610c6
misc fixes
kunalspathak 86d01a7
Stop emitting TLS access code for windows/x64
kunalspathak 09eaeb4
fix linux build errors
kunalspathak 337c2f4
Do not throw not implemented for windows/x64
kunalspathak 1209465
fix the problem where ThreadStaticBase helper was still getting invoked
kunalspathak 85e1db6
Revert certain changes from JIT method
kunalspathak a3d3070
Introduce getThreadLocalStaticInfo_ReadyToRun()
kunalspathak 800005d
Consume getThreadLocalStaticInfo_ReadyToRun()
kunalspathak 4766211
Remove getTlsRootInfo() and other methods
kunalspathak b9adff7
Revert unneeded changes
kunalspathak 9ca78ae
missing gtInitCldHnd initialization
kunalspathak b142d28
save target address
kunalspathak 79de728
jit format
kunalspathak 25482b9
Merge remote-tracking branch 'origin/main' into tls_nativeaot_winx64
kunalspathak 1fe8103
run thunkgenerator
kunalspathak 7c03b66
resolve merge conflicts
kunalspathak 07c839b
fix issues so the TLS is inlined
kunalspathak 65ceeaa
Rename data structures from *_ReadyToRun to *_NativeAOT
kunalspathak 8af0e6e
Merge remote-tracking branch 'origin/main' into working_tls_nativeaot…
kunalspathak fc8e2b8
jit format
kunalspathak d7e7f9d
fix some unit test
kunalspathak b70ceeb
fix a bug
kunalspathak f6552f2
fix the weird jump problem
kunalspathak 57893d8
use enclosing type cls handle for VN of static gc/non-gc helper
kunalspathak 1537ecd
fix a bug of resetting the flag
kunalspathak ab95bb9
useEnclosingTypeOnly from runtime to determine if VN should optimize it
kunalspathak c9040a2
do not use vnf, but only use useEnclosingTypeAsArg0
kunalspathak 5f76a6c
Use GT_COMMA to add GCStaticBase call next to TLS call
kunalspathak 3d16881
Merge remote-tracking branch 'kp/vn_staticbase' into working_tls_nati…
kunalspathak daca626
optimize the cctor call
kunalspathak c7d75ef
Remove lazy ctor generation from tls
kunalspathak 5895ab3
Update jitinterface to not fetch data for lazy ctor
kunalspathak d53f324
Merge remote-tracking branch 'origin/main' into working_tls_nativeaot…
kunalspathak 571b6df
fix errors after merge
kunalspathak da95659
fix test build errors
kunalspathak 8679e4b
fix bug in CSE
kunalspathak 0ce7618
Use CORINFO_FLG_FIELD_INITCLASS instead of separate flag
kunalspathak b38a17c
Use the INITCLASS flag
kunalspathak 1c1092d
Remove useEnclosingTypeOnly
kunalspathak 119e2ae
Add NoCtor
kunalspathak 9cfea39
Use CORINFO_HELP_READYTORUN_THREADSTATIC_BASE_NOCTOR
kunalspathak 2cc3ca1
Minor cleanup
kunalspathak 8389a88
Merge remote-tracking branch 'origin/main' into tls_nativeaot_winx64
kunalspathak 59085d2
Renegenrate thunk
kunalspathak fa1059f
Add the SetFalseTarget
kunalspathak 63c9fd6
Merge remote-tracking branch 'origin/main' into tls_nativeaot_winx64
kunalspathak 0069167
fix merge conflict resolution
kunalspathak 38bca3b
better handling of GTF_ICON_SECREL_OFFSET
kunalspathak a5fcc59
review feedback
kunalspathak ceda478
Disable optimization for minopts
kunalspathak aba00e2
Add comments around iiaSecRel
kunalspathak 24f88a0
jit format
kunalspathak 65f3900
create emitNewInstrCns()
kunalspathak 5bc0a1a
Expand TLS even if optimization is disabled
kunalspathak 959869a
Track t_inlinedThreadStaticBase
kunalspathak bff4728
jit format
kunalspathak File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it be better for this to be a flag instead of a new type of field accessor?
There is
CORINFO_FLG_FIELD_INITCLASS
that seems to be what we need.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This flag solved lot of the problems.
CORINFO_FIELD_STATIC_TLS_MANAGED_LAZY
GCStaticBase
helper call during importingenclosingType
and using it in VNgtEntryPoint
gets setup to correct symbol