LLVM: lib/CodeGen/TwoAddressInstructionPass.cpp File Reference (original ) (raw )Go to the source code of this file.
Functions
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
◆ falseTwo 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
◆ passTwo Address instruction pass