LLVM  4.0.0
Macros | Functions | Variables
AArch64RedundantCopyElimination.cpp File Reference
#include "AArch64.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/Support/Debug.h"
Include dependency graph for AArch64RedundantCopyElimination.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "aarch64-copyelim"
 

Functions

 STATISTIC (NumCopiesRemoved,"Number of copies removed.")
 
 INITIALIZE_PASS (AArch64RedundantCopyElimination,"aarch64-copyelim","AArch64 redundant copy elimination pass", false, false) static bool guaranteesZeroRegInBlock(MachineInstr &MI
 
 if ((Opc==AArch64::CBZW||Opc==AArch64::CBZX)&&MBB==MI.getOperand(1).getMBB()) return true
 
else if ((Opc==AArch64::CBNZW||Opc==AArch64::CBNZX)&&MBB!=MI.getOperand(1).getMBB()) return true
 

Variables

MachineBasicBlockMBB
 
return false
 

Macro Definition Documentation

#define DEBUG_TYPE   "aarch64-copyelim"

Definition at line 38 of file AArch64RedundantCopyElimination.cpp.

Function Documentation

if ( (Opc==AArch64::CBZW||Opc==AArch64::CBZX)&&  MBB = =MI.getOperand(1).getMBB())
else if ( (Opc==AArch64::CBNZW||Opc==AArch64::CBNZX)&&MBB!  = MI.getOperand(1).getMBB())
INITIALIZE_PASS ( AArch64RedundantCopyElimination  ,
"aarch64-copyelim"  ,
"AArch64 redundant copy elimination pass ,
false  ,
false   
)
STATISTIC ( NumCopiesRemoved  ,
"Number of copies removed."   
)

Variable Documentation

return false

Definition at line 80 of file AArch64RedundantCopyElimination.cpp.

Initial value:
{
unsigned Opc = MI.getOpcode()
IRTranslator LLVM IR MI

Definition at line 69 of file AArch64RedundantCopyElimination.cpp.

Referenced by llvm::HexagonPacketizerList::addToPacket(), llvm::RegPressureTracker::advance(), llvm::A57ChainingConstraint::apply(), llvm::WinException::beginFunclet(), llvm::CodeViewDebug::beginFunction(), buildMUBUFOffsetLoadStore(), llvm::calculateDbgValueHistory(), llvm::Thumb1FrameLowering::canUseAsEpilogue(), llvm::PPCFrameLowering::canUseAsEpilogue(), llvm::AArch64FrameLowering::canUseAsPrologue(), llvm::PPCFrameLowering::canUseAsPrologue(), llvm::ConnectedVNInfoEqClasses::Classify(), collectChangingRegs(), collectFuncletMembers(), CombineCVTAToLocal(), llvm::computeAllBlockSizes(), llvm::EHStreamer::computeCallSiteTable(), llvm::InstructionSelector::constrainSelectedInstRegOperands(), llvm::MIRPrinter::convert(), llvm::MachineBasicBlock::CorrectExtraCFGEdges(), doScavengeFrameVirtualRegs(), llvm::BPFRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), llvm::AVRRegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), llvm::SparcTargetLowering::emitEHSjLjLongJmp(), llvm::PPCTargetLowering::emitEHSjLjLongJmp(), llvm::SparcTargetLowering::emitEHSjLjSetJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::AArch64TargetLowering::EmitF128CSEL(), llvm::AsmPrinter::EmitFunctionBody(), emitIndirectDst(), emitIndirectSrc(), llvm::HexagonAsmPrinter::EmitInstruction(), llvm::AMDGPUAsmPrinter::EmitInstruction(), llvm::AVRTargetLowering::EmitInstrWithCustomInserter(), llvm::ARMAsmPrinter::EmitJumpTableAddrs(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::ARMAsmPrinter::EmitJumpTableInsts(), llvm::ARMAsmPrinter::EmitJumpTableTBInst(), llvm::ARMAsmPrinter::EmitMachineConstantPoolValue(), llvm::TargetLoweringBase::emitPatchPoint(), llvm::ARMFrameLowering::emitPrologue(), emitXBegin(), llvm::ARMBaseInstrInfo::expandLoadStackGuardBase(), llvm::Mips16InstrInfo::expandPostRAPseudo(), llvm::MipsSEInstrInfo::expandPostRAPseudo(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::R600InstrInfo::expandPostRAPseudo(), ExplicitlyBranchesTo(), llvm::LiveVariables::VarInfo::findKill(), findOnlyInterestingUse(), llvm::findPHICopyInsertPoint(), findPrologueEndLoc(), findScratchNonCalleeSaveRegister(), FixEndsAtEndOfFunction(), llvm::TargetInstrInfo::foldMemoryOperand(), forceReg(), llvm::RegBankSelect::MBBInsertPoint::frequency(), llvm::SelectionDAG::getBasicBlock(), llvm::BasicBlockSDNode::getBasicBlock(), llvm::InstrEmitter::getBlock(), llvm::getFuncletMembership(), llvm::SlotIndexes::getIndexAfter(), llvm::SlotIndexes::getIndexBefore(), llvm::AArch64InstrInfo::getInstSizeInBytes(), llvm::ARMBaseInstrInfo::getInstSizeInBytes(), getLastNonPseudo(), llvm::HexagonInstrInfo::getSize(), llvm::X86InstrInfo::getSPAdjust(), llvm::LiveVariables::HandleVirtRegUse(), HandleVRSaveUpdate(), llvm::TargetInstrInfo::hasReassociableOperands(), llvm::TargetInstrInfo::hasReassociableSibling(), INITIALIZE_PASS(), insertCSRSpillsAndRestores(), insertDivByZeroTrap(), InsertFPConstInst(), InsertFPImmInst(), InsertSPConstInst(), InsertSPImmInst(), llvm::AsmPrinter::isBlockOnlyReachableByFallthrough(), isCVTAToLocalCombinationCandidate(), llvm::LiveVariables::VarInfo::isLiveIn(), isNoReturnDef(), jumpTableFollowsTB(), llvm::SIInstrInfo::legalizeOpWithMove(), loadM0FromVGPR(), LoopBottom(), llvm::PPCRegisterInfo::lowerCRBitRestore(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerDynamicAreaOffset(), llvm::AArch64CallLowering::lowerFormalArguments(), llvm::PPCRegisterInfo::lowerVRSAVERestore(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), llvm::LiveVariables::MarkVirtRegAliveInBlock(), moveInstsAfter(), llvm::PPCRegisterInfo::needsFrameBaseReg(), llvm::LanaiInstrInfo::optimizeCompareInstr(), llvm::ARMBaseInstrInfo::optimizeCompareInstr(), llvm::AArch64InstrInfo::optimizeCondBranch(), PlaceLoopMarker(), PlaceMarkers(), llvm::PPCInstrInfo::PredicateInstruction(), PrevCrossBBInst(), llvm::MIRPrinter::print(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), llvm::RegPressureTracker::recedeSkipDebugValues(), replaceRegUsesAfterLoop(), llvm::Thumb2InstrInfo::ReplaceTailWithBranchTo(), llvm::TargetInstrInfo::ReplaceTailWithBranchTo(), llvm::SIRegisterInfo::resolveFrameIndex(), llvm::PPCRegisterInfo::resolveFrameIndex(), llvm::ARMBaseRegisterInfo::resolveFrameIndex(), llvm::PPCFrameLowering::restoreCalleeSavedRegisters(), llvm::ThumbRegisterInfo::rewriteFrameIndex(), llvm::InstructionSelect::runOnMachineFunction(), llvm::InsertNOPLoad::runOnMachineFunction(), llvm::Legalizer::runOnMachineFunction(), llvm::FixFSMULD::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::ReplaceFMULS::runOnMachineFunction(), llvm::DetectRoundChange::runOnMachineFunction(), llvm::FixAllFDIVSQRT::runOnMachineFunction(), llvm::SlotIndexes::runOnMachineFunction(), llvm::AVRDynAllocaSR::runOnMachineFunction(), llvm::RegBankSelect::runOnMachineFunction(), llvm::ARMInstructionSelector::select(), llvm::AArch64InstructionSelector::select(), llvm::BranchFolder::MBFIWrapper::setBlockFreq(), llvm::LiveRangeCalc::setLiveOutValue(), setM0ToIndexFromSGPR(), llvm::ARMBaseRegisterInfo::shouldCoalesce(), SortBlocks(), splitBlockAfter(), splitBlockBefore(), updateLiveness(), validAtEntry(), llvm::VerifyPHIs(), llvm::SelectionDAGBuilder::visitBitTestHeader(), and llvm::WriteGraph().