| Modifier and Type | Field and Description |
|---|---|
| private final ArrayList | newRegInterference
Array of interference sets. |
| private final InterferenceGraph | oldRegInterference
the interference graph for the old namespace |
| Access | Constructor and Description |
|---|---|
| public | InterferenceRegisterMapper(InterferenceGraph oldRegInterference, int
number of registers in old namespace countOldRegisters)Constructs an instance |
| Modifier and Type | Method and Description |
|---|---|
| private void | addInterfence(int
register in new namespace newReg, int register in old namespace oldReg)Adds a register's interference set to the interference list, growing it if necessary. |
| public void | addMapping(int
>= 0; old register>= 0; new register1..2; width of regOverrides org. |
| public boolean | Returns: true if any of the old-namespace register have been mapped to the new-namespace register + categorynon-null; set of old-namespace regs>= 0; new-namespace register1..2; the number of adjacent new-namespace
registers (starting at ropReg) to considerChecks to see if any of a set of old-namespace registers are pinned to the specified new-namespace reg + category. |
| public boolean | Returns: true if oldReg will interfere with newRegold namespace register oldReg, int new namespace register newReg, int category of old namespace register category)Checks to see if old namespace reg |
| public boolean | Returns: true if oldReg will interfere with newRegnon-null; old namespace registernew namespace register newReg)Checks to see if old namespace reg |
| newRegInterference | back to summary |
|---|---|
| private final ArrayList<BitIntSet> newRegInterference Array of interference sets. ArrayList is indexed by new namespace and BitIntSet's are indexed by old namespace. The list expands as needed and missing items are assumed to interfere with nothing. Bit sets are always used here, unlike elsewhere, because the max size of this matrix will be (countSsaRegs * countRopRegs), which may grow to hundreds of K but not megabytes. | |
| oldRegInterference | back to summary |
|---|---|
| private final InterferenceGraph oldRegInterference the interference graph for the old namespace | |
| InterferenceRegisterMapper | back to summary |
|---|---|
| public InterferenceRegisterMapper(InterferenceGraph oldRegInterference, int countOldRegisters) Constructs an instance
| |
| addInterfence | back to summary |
|---|---|
| private void addInterfence(int newReg, int oldReg) Adds a register's interference set to the interference list, growing it if necessary.
| |
| addMapping | back to summary |
|---|---|
| public void addMapping(int oldReg, int newReg, int category) Overrides org. Doc from org. Adds a mapping to the mapper. If oldReg has already been mapped, overwrites previous mapping with new mapping.
| |
| areAnyPinned | back to summary |
|---|---|
| public boolean areAnyPinned(RegisterSpecList oldSpecs, int newReg, int targetCategory) Checks to see if any of a set of old-namespace registers are pinned to the specified new-namespace reg + category. Takes into account the category of the old-namespace registers.
| |
| interferes | back to summary |
|---|---|
| public boolean interferes(int oldReg, int newReg, int category) Checks to see if old namespace reg
| |
| interferes | back to summary |
|---|---|
| public boolean interferes(RegisterSpec oldSpec, int newReg) Checks to see if old namespace reg
| |