-
Notifications
You must be signed in to change notification settings - Fork 4.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update handling of limited register during consecutive registers allo…
…cation (#84588) * Fix issue to handle candidates that don't have assignedInterval in spillcost/prevReg * Do not let limitRegs reduce the number of candidates If we find out that there are no candidates free/busy for refPositions that need consecutive registers, have at least one range of registers in the candidates such that allocation is possible. * getConsecutiveCandidates update if freeCandidate=RBM_NONE Intially, we were just returning RBM_NONE if we don't find any freeCandidates, but instead should try if we can find out if there are any busy candidates that we should try them out. * Relax limitStressRegs for refpositions live at consecutive register position If consecutive registers are being allocated, other refpositions that are live at the same location might not have enough registers left to be assigned because all registers are busy. As such, introduce a way to track if we are assigning at the location of consecutive registers, and if yes, do not take jitstressregs limit into account. * Update minRegCount for registerAssignment For consecutive register, also include the register count needed for "minimum register requirement" when limiting the registers. * Remove LsraLimitFPSetForConsecutive With other conditions in place, no need to have LsraLimitFPSetForConsecutive. * Added an assert * misc changes * jit format * Use BitOperations::BitScanForward() * review feedback
- Loading branch information
1 parent
a6a5dfb
commit 7a57f6d
Showing
4 changed files
with
201 additions
and
125 deletions.
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
Oops, something went wrong.