-
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 ValueNumbering support for GT_SIMD and GT_HWINTRINSIC tree nodes #31834
Merged
Merged
Changes from all commits
Commits
Show all changes
34 commits
Select commit
Hold shift + click to select a range
0c4b857
Added ValueNumbering support for GT_SIMD and GT_HWINTRINSIC tree nodes
briansull 367da1f
Allow SIMD and HW Intrinsics to be CSE candidates
briansull 57eadfb
Correctness fix for optAssertionPropMain
briansull 6d2028c
Improve the VNFOA_ArityMask
briansull d8b9b53
Include node type when value numbering SIMDIntrinsicInit
briansull e188b9b
Disable CSE's for some special HW_INTRINSIC categories
briansull 506a544
Code review feedback
briansull 9c62167
Record csdStructHnd; // The class handle, currently needed to create …
briansull 8e3cea8
Fix the JITDUMP messages to print the CseIndex
briansull 3769197
add check for (newElemStructHnd != NO_CLASS_HANDLE)
briansull 305a017
Fix the printing of BitSets on Linux, change the printf format specifier
briansull 0d0e4f8
Added check for simdNode->OperIsMemoryLoad()) to fgValueNumberSimd
briansull 0232044
Update to use the new TARGET macros
briansull d9dda0a
Avoid calling gtGetStructHandleIfPresent to set csdStructHnd when we …
briansull f6d7f65
Instead of asserting on a struct handle mismatch, we record it in csd…
briansull b9d0a58
Fix check for (newElemStructHnd != hashDsc->csdStructHnd)
briansull 3c3f2fe
Additional checks for SIMD struct types when setting csdStructHnd
briansull 5b641a2
added extra value number argument VNF_SimdType for Most SIMD operations
briansull a8ef319
fix GenTreeSIMD::OperIsMemoryLoad for ARM64
briansull 343e35d
Added bool methods vnEncodesResultTypeForSIMDIntrinsic and vnEncodesR…
briansull 3c641ab
Fix for SIMD_WidenLo arg count
briansull c1aa65a
fix typo
briansull 55228a6
Fix x86 build breaks
briansull 2bbd982
Added method header comment for vnEncodesResultTypeForHWIntrinsic
briansull a0e6a8c
Codereview feedback and some more comments
briansull cbe5538
fix typo
briansull 3e927bf
Moved the code that sets the arg count for the three SIMD intrinsics
briansull b2b8986
clang-format
briansull 7bd9303
Adjust CSE for SIMD types that are live across a call
briansull 169c24e
Proposed fix for #32085
briansull 8d0ce82
Revert "Proposed fix for #32085"
briansull 6ae894a
Added better comments for optcse SIMD caller saved register heuristics
briansull b4eb406
Added CONFIG_INTEGER: JitDisableSimdVN,
briansull 90bf7b3
Moved JitDisableSimdVN from DEBUG to RETAIL
briansull 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 |
---|---|---|
|
@@ -412,12 +412,12 @@ class BitSetOps</*BitSetType*/ BitSetShortLongRep, | |
char* ptr = res; | ||
if (sizeof(size_t) == sizeof(int64_t)) | ||
{ | ||
sprintf_s(ptr, remaining, "%016zX", bits); | ||
sprintf_s(ptr, remaining, "%016llX", bits); | ||
} | ||
else | ||
{ | ||
assert(sizeof(size_t) == sizeof(int)); | ||
sprintf_s(ptr, remaining, "%08zX", bits); | ||
sprintf_s(ptr, remaining, "%08X", bits); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This fixes the JitDump on Ubuntu Linux system which return -1 when they see a "z" value in the format string |
||
} | ||
return res; | ||
} | ||
|
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.
This is a bug fix that caused an A/V when the number of assertions was more than 64 and we had left over bits set from running the CSE phase. (This field is a union with bbCseIn)