-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Arm64: Implement VectorTableLookup/VectorTableLookupExtension intrinsinsic + Consecutive registers support #80297
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
Merged
Merged
Changes from 122 commits
Commits
Show all changes
136 commits
Select commit
Hold shift + click to select a range
c92fbdf
Add VectorTableLookup 2/3/4 in hwinstrinsiclistarm64.h
kunalspathak bee0f8c
Add VectorTableLookup
kunalspathak 426f68a
fixes to libraries
kunalspathak 83eb54c
Prototype of simple tbl
kunalspathak d06c4a2
Some progress
kunalspathak 99adc17
Some more updates
kunalspathak 7b10969
working model
kunalspathak 87f66f7
Vector64<byte> support
kunalspathak 98e7bd2
Add VectorTableLookup_3
kunalspathak 786e350
Add VectorTableLookup_4
kunalspathak e0a82b3
cleanup
kunalspathak 47848b0
Remove regCount from LclVarDsc
kunalspathak 25a738d
Some more cleanup
kunalspathak e492829
setNextConsecutiveRegisterAssignment
kunalspathak 385abf1
Some more cleanup
kunalspathak 2f4a4e3
TARGET_ARM64
kunalspathak 8d3744b
Use getNextConsecutiveRefPositions instead of nextConsecutiveRefPosit…
kunalspathak 8d66d45
jit format
kunalspathak 85d90f5
Move getNextConsecutiveRefPosition
kunalspathak 0a0faed
SA1141: Use tuple syntax
kunalspathak 036a273
Remove the unwanted field list code
kunalspathak 791563a
revert the flag that was mistakenly changed
kunalspathak db6036b
Merge remote-tracking branch 'origin/main' into tbl_tbx
kunalspathak fdc94ed
Add test cases
kunalspathak cf84fda
FIELD_LIST
kunalspathak 06a78d4
Use FIELD_LIST approach
kunalspathak 2afe249
Merge remote-tracking branch 'origin/main' into tbl_tbx
kunalspathak a086ab7
jit format and fix arm build
kunalspathak 450a08d
fix assert failure
kunalspathak 5bb9302
Add summary docs
kunalspathak 8027c5a
Make APIs public again
kunalspathak 6b1ba8a
cleanup
kunalspathak 723477b
Handle case for reg mod 32
kunalspathak c6e77e4
Remove references from ref until API is approved
kunalspathak 5696a6e
Use generic getFreeCandidates()
kunalspathak a9e1a7a
Add entries in ExtraAPis
kunalspathak 2617b77
Set CLSCompliant=false
kunalspathak 2d4fd5c
Move in inner class
kunalspathak 6a21205
Merge remote-tracking branch 'origin/main' into tbl_tbx
kunalspathak c6d338f
Remove CLSCompliant flag
kunalspathak db4f846
Add a suppression file for System.Runtime.Intrinsics on the new APIs …
tannergooding bce8c5a
Review feedback
kunalspathak 3d15fcb
Add workaround for building tests
kunalspathak 75f142b
review feedback
kunalspathak e4cbad9
TP: remove needsConsecutive parameter from BuildUse()
kunalspathak 96de024
TP: Remove pseudo intrinsic entries
kunalspathak 11b345a
More fixes
kunalspathak 4526b41
Add the missing csproj
kunalspathak 46f0abd
Fix test cases
kunalspathak 6ef7c68
Add fake lib for AdvSimd.Arm64* as well
kunalspathak b0b6a5e
Remove the workaround
kunalspathak 0197b73
Use template to control if consecutive registers is needed or not
kunalspathak 2734023
jit format
kunalspathak 1cb22d0
fix the workaround
kunalspathak 6e30b3a
Revert "fix the workaround"
kunalspathak 721823b
Revert "Remove the workaround"
kunalspathak 5b9fac5
Add VectorTableLookupExtensions in libraries
kunalspathak cb29aee
Add support for VectorTableLookupExtension
kunalspathak 53b07b5
WIP: available regs
kunalspathak 302d3ba
WIP: Remove test hacks
kunalspathak 5e828f1
Merge remote-tracking branch 'origin/main' into tbl_tbx
kunalspathak fc93cc2
Update getFreeCandidates() for consecutive registers
kunalspathak 78e87cd
Add missing resetRegState()
kunalspathak 60d383e
Do not assume the current assigned register for consecutiveRegisters …
kunalspathak 05f9fc6
Handle case for copyReg
kunalspathak b52059e
Update setNextConsecutiveRegister() with UPPER_VECTOR_RESTORE
kunalspathak 0721ad4
Update code around copyReg
kunalspathak 8a5c696
Create the VectorTableLookup fake CoreLib as a reference assembly
lambdageek e64527b
Rename VectorTableLookup to VectorTableLookup.RefOnly
kunalspathak 22270c5
Start consecutive refpositions with RefTypeUse and never with RefType…
kunalspathak f3884fd
Add test cases for VectorTableLookupExtension
kunalspathak f2a1f19
Pass the missing defaultValues
kunalspathak 985fe25
Use platform neutral BitScanForward
kunalspathak ab043fd
Merge remote-tracking branch 'origin/main' into tbl_tbx
kunalspathak 13601eb
jit format
kunalspathak 7bf9105
Remove the fake testlib workaround
kunalspathak 40aa7c7
Merge remote-tracking branch 'origin/main' into tbl_tbx
kunalspathak 1f95637
Fix mono failures
kunalspathak e7bb069
Fix x64 TP regression
kunalspathak 6ebb12a
Fix test cases
kunalspathak 2d75291
fix some more tp regression
kunalspathak 68cd4d7
Fix test build
kunalspathak 7b83053
misc. changes
kunalspathak 903c3de
Fix the bug where we were not freeing copyReg causing an assert in tier0
kunalspathak a8ec819
Refactor little bit to reduce checks for VectorTableLookup
kunalspathak 961e9c2
Add template parameter for allocateReg/copyReg/select
kunalspathak b9d0f15
Comments
kunalspathak cbe999f
Fix mono failures
kunalspathak 6665536
Added some more comments
kunalspathak 2b9f49e
Call allocateReg/assignCopyReg/select methods only for refpositions t…
kunalspathak 5fec6e1
Add heuristics to pick best possible set of registers which will need…
kunalspathak 5371c30
setNextConsecutiveRegisterAssignment() no longer checks for areNextCo…
kunalspathak 4875925
Rename getFreeCandidates() -> getConsecutiveCandidates()
kunalspathak 597e6de
fix parameters to areNextConsecutiveRegistersFree()
kunalspathak 4a1171d
Rename and update canAssignNextConsecutiveRegisters()
kunalspathak 1f124a4
Add the missing setNextConsecutiveRegisterAssignment() calls
kunalspathak 9686773
Fix a condition for upperVector
kunalspathak 55071f6
Update spill heurisitic to handle cases for jitstressregs
kunalspathak 757c682
Misc. remove popcount() check from getConsecutiveRegisters()
kunalspathak 79e0bd5
jit format
kunalspathak a44cf60
Fix a bug in canAssignNextConsecutiveRegisters()
kunalspathak 5fefae6
Add filterConsecutiveCandidates() and perform free/busy candidates scan
kunalspathak 2a5e52c
Consume the new free/busy consecutive candidates method
kunalspathak a17b44f
Handle case where 'copyReg == assignedReg'
kunalspathak 3c390d8
Misc. cleanup
kunalspathak a9995e6
Include LsraExtraFPSetForConsecutive for stress regs
kunalspathak ae2e633
handle case where 'assignedInterval == nullptr' for try_SPILL_COST()
kunalspathak 02f8ad2
fix build error
kunalspathak 984c6ee
Call consecutiveCandidates() only for first refposition
kunalspathak 8fe130a
Only perform special handling for non-uppervectorrestore
kunalspathak 7f8e77f
jit format
kunalspathak 090bf26
Add impVectorTableLookup/impVectorTableLookupExtension
kunalspathak c91bc77
Add the missing break
kunalspathak 1591deb
Merge remote-tracking branch 'origin/main' into tbl_tbx
kunalspathak 0c4d71f
Update assert
kunalspathak 0c56514
Move definitions in GenTree, fix assert
kunalspathak 35a7550
fix arm issue
kunalspathak ff587ac
Remove common functions
kunalspathak dab2121
Rename info.needsConsecutiveRegisters to info.compNeedsConsecutiveReg…
kunalspathak e94cfcf
Use needsConsecutiveRegisters template parameter for all configurations
kunalspathak ab007d0
Handle case of round-robin in getConsecutiveRegisters()
kunalspathak 5d6cc2d
Disable tests for Mono
kunalspathak 24e6158
Initialize outArray in test
kunalspathak 4026aa6
Add IsSupported checks for VectorLookup/VectorLookupExtension
kunalspathak 53c91f0
Fix the test cases for RunReflectionScenario_UnsafeRead()
kunalspathak 7d168b2
Review feedback
kunalspathak 7cffe7a
wip
kunalspathak dd10bbe
Merge remote-tracking branch 'origin/main' into tbl_tbx
kunalspathak b4ea77e
Merge branch 'tbl_tbx_temp' into tbl_tbx
kunalspathak 0dc4ea6
fix a typo in test case
kunalspathak 6d9e136
Add filterConsecutiveCandidatesForSpill() to select range that needs …
kunalspathak f247b3c
Add mono support.
vargaz e8d3ee5
Delay free the registers for VectorTableLookupExtension
kunalspathak 524d983
Merge commit 'f247b3c6408c60b751999ca30710005d2db9a044' into tbl_tbx
kunalspathak 289110d
Merge remote-tracking branch 'origin/main' into tbl_tbx
kunalspathak d778833
fix mono build error
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 hidden or 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 hidden or 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 hidden or 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 hidden or 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 hidden or 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 hidden or 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 hidden or 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 hidden or 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 hidden or 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.
Uh oh!
There was an error while loading. Please reload this page.