Go to the source code of this file.
|
| STATISTIC (NumTwoAddressInstrs, "Number of two-address instructions") |
|
| STATISTIC (NumCommuted, "Number of instructions commuted to coalesce") |
|
| STATISTIC (NumAggrCommuted, "Number of instructions aggressively commuted") |
|
| STATISTIC (NumConvertedTo3Addr, "Number of instructions promoted to 3-address") |
|
| STATISTIC (NumReSchedUps, "Number of instructions re-scheduled up") |
|
| STATISTIC (NumReSchedDowns, "Number of instructions re-scheduled down") |
|
| INITIALIZE_PASS_BEGIN (TwoAddressInstructionLegacyPass, DEBUG_TYPE, "Two-Address instruction pass", false, false) INITIALIZE_PASS_END(TwoAddressInstructionLegacyPass |
|
static bool | isTwoAddrUse (MachineInstr &MI, Register Reg, Register &DstReg) |
| Return true if the specified MI uses the specified register as a two-address use.
|
|
static MCRegister | getMappedReg (Register Reg, DenseMap< Register, Register > &RegMap) |
| Return the physical register the specified virtual register might be mapped to.
|
|
◆ DEBUG_TYPE
#define DEBUG_TYPE "twoaddressinstruction" |
◆ getMappedReg()
◆ INITIALIZE_PASS_BEGIN()
INITIALIZE_PASS_BEGIN |
( |
TwoAddressInstructionLegacyPass |
, |
|
|
DEBUG_TYPE |
, |
|
|
"Two-Address instruction pass" |
, |
|
|
false |
, |
|
|
false |
|
|
) |
| |
◆ isTwoAddrUse()
◆ STATISTIC() [1/6]
STATISTIC |
( |
NumAggrCommuted |
, |
|
|
"Number of instructions aggressively commuted" |
|
|
) |
| |
◆ STATISTIC() [2/6]
STATISTIC |
( |
NumCommuted |
, |
|
|
"Number of instructions commuted to coalesce" |
|
|
) |
| |
◆ STATISTIC() [3/6]
STATISTIC |
( |
NumConvertedTo3Addr |
, |
|
|
"Number of instructions promoted to 3-address" |
|
|
) |
| |
◆ STATISTIC() [4/6]
STATISTIC |
( |
NumReSchedDowns |
, |
|
|
"Number of instructions re-scheduled down" |
|
|
) |
| |
◆ STATISTIC() [5/6]
STATISTIC |
( |
NumReSchedUps |
, |
|
|
"Number of instructions re-scheduled up" |
|
|
) |
| |
◆ STATISTIC() [6/6]
STATISTIC |
( |
NumTwoAddressInstrs |
, |
|
|
"Number of two-address instructions" |
|
|
) |
| |
◆ DEBUG_TYPE
◆ EnableRescheduling
◆ false
Two Address instruction false |
◆ MaxDataFlowEdge
cl::opt< unsigned > MaxDataFlowEdge("dataflow-edge-limit", cl::Hidden, cl::init(3), cl::desc("Maximum number of dataflow edges to traverse when evaluating " "the benefit of commuting operands")) |
( |
"dataflow-edge-limit" |
, |
|
|
cl::Hidden |
, |
|
|
cl::init(3) |
, |
|
|
cl::desc("Maximum number of dataflow edges to traverse when evaluating " "the benefit of commuting operands") |
|
|
) |
| |
|
static |
◆ pass
Two Address instruction pass |