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()
Return the physical register the specified virtual register might be mapped to.
Definition at line 533 of file TwoAddressInstructionPass.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), and Reg.
◆ 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
cl::opt< bool > EnableRescheduling("twoaddr-reschedule", cl::desc("Coalesce copies by rescheduling (default=true)"), cl::init(true), cl::Hidden) |
( |
"twoaddr-reschedule" | , |
|
|
cl::desc("Coalesce copies by rescheduling (default=true)") | , |
|
|
cl::init(true) | , |
|
|
cl::Hidden | ) |
|
static |
◆ 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 |