LLVM
8.0.1
|
#include "AArch64.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/CodeGen/MachineBranchProbabilityInfo.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineLoopInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/MachineTraceMetrics.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "aarch64-ccmp" |
Functions | |
STATISTIC (NumConsidered, "Number of ccmps considered") | |
STATISTIC (NumPhiRejs, "Number of ccmps rejected (PHI)") | |
STATISTIC (NumPhysRejs, "Number of ccmps rejected (Physregs)") | |
STATISTIC (NumPhi2Rejs, "Number of ccmps rejected (PHI2)") | |
STATISTIC (NumHeadBranchRejs, "Number of ccmps rejected (Head branch)") | |
STATISTIC (NumCmpBranchRejs, "Number of ccmps rejected (CmpBB branch)") | |
STATISTIC (NumCmpTermRejs, "Number of ccmps rejected (CmpBB is cbz...)") | |
STATISTIC (NumImmRangeRejs, "Number of ccmps rejected (Imm out of range)") | |
STATISTIC (NumLiveDstRejs, "Number of ccmps rejected (Cmp dest live)") | |
STATISTIC (NumMultNZCVUses, "Number of ccmps rejected (NZCV used)") | |
STATISTIC (NumUnknNZCVDefs, "Number of ccmps rejected (NZCV def unknown)") | |
STATISTIC (NumSpeculateRejs, "Number of ccmps rejected (Can't speculate)") | |
STATISTIC (NumConverted, "Number of ccmp instructions created") | |
STATISTIC (NumCompBranches, "Number of cbz/cbnz branches converted") | |
static bool | parseCond (ArrayRef< MachineOperand > Cond, AArch64CC::CondCode &CC) |
INITIALIZE_PASS_BEGIN (AArch64ConditionalCompares, "aarch64-ccmp", "AArch64 CCMP Pass", false, false) INITIALIZE_PASS_END(AArch64ConditionalCompares | |
Variables | |
static cl::opt< unsigned > | BlockInstrLimit ("aarch64-ccmp-limit", cl::init(30), cl::Hidden, cl::desc("Maximum number of instructions per speculated block.")) |
static cl::opt< bool > | Stress ("aarch64-stress-ccmp", cl::Hidden, cl::desc("Turn all knobs to 11")) |
aarch64 | ccmp |
aarch64 AArch64 CCMP | Pass |
aarch64 AArch64 CCMP | false |
#define DEBUG_TYPE "aarch64-ccmp" |
Definition at line 43 of file AArch64ConditionalCompares.cpp.
INITIALIZE_PASS_BEGIN | ( | AArch64ConditionalCompares | , |
"aarch64-ccmp" | , | ||
"AArch64 CCMP Pass" | , | ||
false | , | ||
false | |||
) |
Referenced by parseCond().
|
static |
Definition at line 273 of file AArch64ConditionalCompares.cpp.
References llvm::ARM_AM::add, llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::TargetInstrInfo::analyzeBranch(), llvm::MachineOperandIteratorBase::analyzePhysReg(), assert(), B, llvm::MachineBasicBlock::begin(), BlockInstrLimit, llvm::BuildMI(), llvm::SmallVectorImpl< T >::clear(), llvm::MachineRegisterInfo::constrainRegClass(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::dbgs(), llvm::RegState::Dead, llvm::RegState::Define, E, llvm::SmallVectorBase::empty(), llvm::MachineBasicBlock::empty(), llvm::MachineBasicBlock::end(), llvm::AArch64CC::EQ, llvm::MachineBasicBlock::eraseFromParent(), llvm::MachineInstr::eraseFromParent(), llvm::MachineBasicBlock::front(), llvm::MCInstrInfo::get(), llvm::AArch64CC::getCondCodeName(), llvm::MachineInstr::getDebugLoc(), llvm::MachineBranchProbabilityInfo::getEdgeProbability(), llvm::MachineBasicBlock::getFirstTerminator(), llvm::AArch64CC::getInvertedCondCode(), llvm::AArch64CC::getNZCVToSatisfyCondCode(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::PassRegistry::getPassRegistry(), llvm::MachineOperand::getReg(), getReg(), llvm::TargetInstrInfo::getRegClass(), llvm::MachineBasicBlock::hasSuccessorProbabilities(), I, INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_DEPENDENCY, llvm::initializeAArch64ConditionalComparesPass(), InstrCount, llvm::MachineInstr::isPHI(), llvm::MachineOperand::isReg(), llvm::MachineBasicBlock::isSuccessor(), llvm::MachineBasicBlock::livein_empty(), LLVM_DEBUG, LLVM_FALLTHROUGH, llvm_unreachable, Loops, llvm::make_range(), MRI, llvm::AArch64CC::NE, llvm::MachineBasicBlock::pred_size(), llvm::printMBBReference(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::TargetInstrInfo::removeBranch(), llvm::MachineBasicBlock::removeSuccessor(), llvm::MachineBasicBlock::setSuccProbability(), shouldConvert(), llvm::ArrayRef< T >::size(), llvm::MachineBasicBlock::splice(), Stress, llvm::MachineBasicBlock::succ_begin(), llvm::MachineBasicBlock::succ_end(), llvm::MachineBasicBlock::succ_size(), std::swap(), TII, llvm::MachineBasicBlock::transferSuccessorsAndUpdatePHIs(), TRI, and llvm::MachineBasicBlock::updateTerminator().
STATISTIC | ( | NumConsidered | , |
"Number of ccmps considered" | |||
) |
STATISTIC | ( | NumPhiRejs | , |
"Number of ccmps rejected (PHI)" | |||
) |
STATISTIC | ( | NumPhysRejs | , |
"Number of ccmps rejected (Physregs)" | |||
) |
STATISTIC | ( | NumPhi2Rejs | , |
"Number of ccmps rejected (PHI2)" | |||
) |
STATISTIC | ( | NumHeadBranchRejs | , |
"Number of ccmps rejected (Head branch)" | |||
) |
STATISTIC | ( | NumCmpBranchRejs | , |
"Number of ccmps rejected (CmpBB branch)" | |||
) |
STATISTIC | ( | NumCmpTermRejs | , |
"Number of ccmps rejected (CmpBB is cbz...)" | |||
) |
STATISTIC | ( | NumImmRangeRejs | , |
"Number of ccmps rejected (Imm out of range)" | |||
) |
STATISTIC | ( | NumLiveDstRejs | , |
"Number of ccmps rejected (Cmp dest live)" | |||
) |
STATISTIC | ( | NumMultNZCVUses | , |
"Number of ccmps rejected (NZCV used)" | |||
) |
STATISTIC | ( | NumUnknNZCVDefs | , |
"Number of ccmps rejected (NZCV def unknown)" | |||
) |
STATISTIC | ( | NumSpeculateRejs | , |
"Number of ccmps rejected (Can't speculate)" | |||
) |
STATISTIC | ( | NumConverted | , |
"Number of ccmp instructions created" | |||
) |
STATISTIC | ( | NumCompBranches | , |
"Number of cbz/cbnz branches converted" | |||
) |
|
static |
Referenced by parseCond().
aarch64 ccmp |
Definition at line 803 of file AArch64ConditionalCompares.cpp.
aarch64 AArch64 CCMP false |
Definition at line 803 of file AArch64ConditionalCompares.cpp.
aarch64 AArch64 CCMP Pass |
Definition at line 803 of file AArch64ConditionalCompares.cpp.
Referenced by parseCond().