LinearScan::processKills() accounts for a good percentage of TP regression when adding additional registers as shown below
| Method |
InsCountDiff |
InsPercentageDiff |
ContributionPercentage |
| processKills@LinearScan |
5849967774 |
114.36% |
17.20% |
LinearScan::processKills() obtains list of registers using RefPosition->getKilledRegisters(). This currently is a regMaskTP.
We do a number of expensive operations on this regMaskTP in a loop including the following - IsNonEmpty(), genFirstRegNumFromMaskAndToggle(), >=, &=. Explore possibility of storing killedRegisters as a SingleTypeRegSet and thus improve TP.
LinearScan::processKills()accounts for a good percentage of TP regression when adding additional registers as shown belowLinearScan::processKills()obtains list of registers usingRefPosition->getKilledRegisters(). This currently is aregMaskTP.We do a number of expensive operations on this
regMaskTPin a loop including the following -IsNonEmpty(),genFirstRegNumFromMaskAndToggle(),>=,&=. Explore possibility of storingkilledRegistersas aSingleTypeRegSetand thus improve TP.