-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Closed
Labels
area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone
Description
As a continuation of #83109, I audited the places where we iterate over all the registers in LSRA code base. I would categorize it:
-
Most of them are in
#ifdef DEBUG -
Few are at the beginning of methods like
allocateRegister()andresolveRegister(). The one inallocateRegister()can be done better duringRegisterRecordinitialization perhaps or creating intervals. -
Then, there are instances where they happen during building interval or allocation.
- In
resetAllRegistersState(), we reset the assigned interval at block boundaries for minopts. - In
processStartBlockStartLocations(), we can optimize it to just iterate on liveRegs mask with bitwise iterator instead of for-loop. - In
addRefsForPhysRegMask()- Used during kill positions, Here too, should be able to use bitwise iterator or bitscanforward technique.
- In
Metadata
Metadata
Assignees
Labels
area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI