Skip to content

Handle KilledRegisters more efficiently in LinearScan::processKills() #112962

Closed
@DeepakRajendrakumaran

Description

@DeepakRajendrakumaran

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.

Metadata

Metadata

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions