-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Add JIT support for control-flow guard on x64 and arm64 #63763
Merged
Merged
Changes from all commits
Commits
Show all changes
31 commits
Select commit
Hold shift + click to select a range
7075393
Implement control-flow guard support for x64 and arm64
jakobbotsch dfa28e1
Pipe through the flag to NativeAOT compiler
MichalStrehovsky e07386f
Represent the helper as an indirection
MichalStrehovsky fb293b9
Add some verbose output for moved late args
jakobbotsch 4665ea0
Add GT_FIELD_LIST to assert
jakobbotsch b19e47d
Fix placement moving logic for GT_FIELD_LIST
jakobbotsch 0a221c5
Add more general invariance check
jakobbotsch 6f68c08
Fix release build
jakobbotsch acf223b
Fix IsInvariant check
jakobbotsch ef465fb
Add a dTreeRange helper
jakobbotsch a7a6415
Skip local for call target
jakobbotsch 17e22f0
Add missing parentheses
jakobbotsch 21e5858
Rename IsInvariant -> IsInvariantInRange
jakobbotsch 8baddf0
Another build fix
jakobbotsch 092364e
Fix register for ARM64 dispatcher
jakobbotsch ce46dcf
Add section on CFG to the clr-abi docs
jakobbotsch 451aaa6
Fix arm64 validator trashed registers and update lowering comment
jakobbotsch 6df00a1
Add line to disasm when CFG is enabled
jakobbotsch 69d3b5f
Add a workaround for reporting dead GC pointer regs too early when th…
jakobbotsch ca5c444
Merge branch 'main' of github.com:dotnet/runtime into support-cfg
jakobbotsch 6659597
Fix some comments
jakobbotsch 866bcce
Revert "Add a workaround for reporting dead GC pointer regs too early…
jakobbotsch bd1a7ec
Move all GT_PUTARG_* nodes behind validator to fix GC reporting
jakobbotsch f9ad18c
Remove unused variable
jakobbotsch 1f42b99
Add a CFG + GC stress job
jakobbotsch 2eeecde
Clarify expected use of CFG
jakobbotsch f25ba52
Assert we do not lower dispatcher as CFG call
jakobbotsch 47409ba
Update jit-ee interface GUID
jakobbotsch 13233bf
Remove note about preallocating arg for dispatcher
jakobbotsch 447bca8
Remove another TODO
jakobbotsch 95defd6
Fix an assert
jakobbotsch 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
trigger: none | ||
|
||
schedules: | ||
- cron: "0 22 * * 0,6" | ||
displayName: Sun at 2:00 PM (UTC-8:00) | ||
branches: | ||
include: | ||
- main | ||
always: true | ||
|
||
jobs: | ||
|
||
- template: /eng/pipelines/common/platform-matrix.yml | ||
parameters: | ||
jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml | ||
buildConfig: checked | ||
platforms: | ||
- OSX_arm64 | ||
- OSX_x64 | ||
- Linux_arm64 | ||
- Linux_x64 | ||
- windows_arm64 | ||
- windows_x64 | ||
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64 | ||
jobParameters: | ||
testGroup: jit-cfg | ||
|
||
- template: /eng/pipelines/common/platform-matrix.yml | ||
parameters: | ||
jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml | ||
buildConfig: checked | ||
platforms: | ||
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64 | ||
jobParameters: | ||
testGroup: jit-cfg | ||
|
||
- template: /eng/pipelines/common/platform-matrix.yml | ||
parameters: | ||
jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml | ||
buildConfig: checked | ||
platforms: | ||
- OSX_arm64 | ||
- OSX_x64 | ||
- Linux_arm64 | ||
- Linux_x64 | ||
- windows_arm64 | ||
- windows_x64 | ||
helixQueueGroup: ci | ||
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml | ||
jobParameters: | ||
testGroup: jit-cfg | ||
liveLibrariesBuildConfig: Release |
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.
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.
Adding this pipeline is great! Especially with GCStress. Thanks for doing this.