Go to the source code of this file.
|
| STATISTIC (NumCoalesces, "Number of copies coalesced") |
|
| STATISTIC (NumCSEs, "Number of common subexpression eliminated") |
|
| STATISTIC (NumPhysCSEs, "Number of physreg referencing common subexpr eliminated") |
|
| STATISTIC (NumCrossBBCSEs, "Number of cross-MBB physreg referencing CS eliminated") |
|
| STATISTIC (NumCommutes, "Number of copies coalesced after commuting") |
|
| INITIALIZE_PASS_BEGIN (MachineCSE, DEBUG_TYPE, "Machine Common Subexpression Elimination", false, false) INITIALIZE_PASS_END(MachineCSE |
|
static bool | isCallerPreservedOrConstPhysReg (unsigned Reg, const MachineFunction &MF, const TargetRegisterInfo &TRI) |
|
◆ DEBUG_TYPE
#define DEBUG_TYPE "machine-cse" |
◆ INITIALIZE_PASS_BEGIN()
◆ isCallerPreservedOrConstPhysReg()
Definition at line 238 of file MachineCSE.cpp.
References llvm::MachineBasicBlock::addLiveIn(), assert(), llvm::MachineBasicBlock::begin(), llvm::SmallVectorImpl< T >::clear(), llvm::MachineRegisterInfo::clearKillFlags(), llvm::MachineInstr::clearRegisterDeads(), llvm::TargetInstrInfo::commuteInstruction(), llvm::MachineRegisterInfo::constrainRegAttrs(), llvm::SmallSet< T, N, C >::count(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::dbgs(), llvm::tgtok::Def, E, llvm::SmallVectorBase::empty(), llvm::SmallSet< T, N, C >::empty(), llvm::MachineBasicBlock::end(), llvm::MachineInstr::eraseFromParent(), llvm::MachineInstr::getMF(), llvm::MachineBasicBlock::getName(), llvm::MachineInstr::getNumDefs(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::MachineRegisterInfo::getUniqueVRegDef(), llvm::MachineInstr::hasUnmodeledSideEffects(), I, llvm::ARM_PROC::IE, llvm::SmallSet< T, N, C >::insert(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::MachineRegisterInfo::isAllocatable(), llvm::TargetInstrInfo::isAsCheapAsAMove(), llvm::MachineInstr::isCall(), llvm::TargetRegisterInfo::isCallerPreservedPhysReg(), llvm::MachineInstr::isCommutable(), llvm::MachineRegisterInfo::isConstantPhysReg(), llvm::MachineInstr::isCopyLike(), llvm::MachineOperand::isDead(), llvm::MachineInstr::isDebugInstr(), llvm::MachineOperand::isDef(), llvm::MachineInstr::isDereferenceableInvariantLoad(), llvm::MachineOperand::isImplicit(), llvm::MachineInstr::isImplicitDef(), llvm::MachineInstr::isInlineAsm(), llvm::MachineInstr::isKill(), llvm::MachineBasicBlock::isLiveIn(), llvm::MachineInstr::isPHI(), llvm::MachineInstr::isPosition(), llvm::MachineOperand::isReg(), llvm::MachineRegisterInfo::isReserved(), llvm::MachineBasicBlock::isSuccessor(), llvm::MachineInstr::isTerminator(), llvm::MCRegAliasIterator::isValid(), llvm::TargetRegisterInfo::isVirtualRegister(), LLVM_DEBUG, llvm::MachineInstr::mayLoad(), llvm::MachineInstr::mayStore(), MI, llvm::MachineInstr::operands(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::MachineBasicBlock::pred_begin(), llvm::MachineBasicBlock::pred_size(), ProcessBlock(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::MachineRegisterInfo::replaceRegWith(), llvm::MachineRegisterInfo::reservedRegsFrozen(), llvm::MachineOperand::setIsDead(), SI, llvm::SmallVectorBase::size(), TRI, llvm::MachineRegisterInfo::use_nodbg_instructions(), and UseMI.
◆ STATISTIC() [1/5]
STATISTIC |
( |
NumCoalesces |
, |
|
|
"Number of copies coalesced" |
|
|
) |
| |
◆ STATISTIC() [2/5]
STATISTIC |
( |
NumCSEs |
, |
|
|
"Number of common subexpression eliminated" |
|
|
) |
| |
◆ STATISTIC() [3/5]
STATISTIC |
( |
NumPhysCSEs |
, |
|
|
"Number of physreg referencing common subexpr eliminated" |
|
|
) |
| |
◆ STATISTIC() [4/5]
STATISTIC |
( |
NumCrossBBCSEs |
, |
|
|
"Number of cross-MBB physreg referencing CS eliminated" |
|
|
) |
| |
◆ STATISTIC() [5/5]
STATISTIC |
( |
NumCommutes |
, |
|
|
"Number of copies coalesced after commuting" |
|
|
) |
| |
◆ DEBUG_TYPE
◆ Elimination
Machine Common Subexpression Elimination |
◆ false