LLVM API Documentation

Namespaces | Defines | Functions | Variables
AArch64ConditionalCompares.cpp File Reference
#include "AArch64.h"
#include "llvm/ADT/BitVector.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SparseSet.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/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetInstrInfo.h"
#include "llvm/Target/TargetRegisterInfo.h"
#include "llvm/Target/TargetSubtargetInfo.h"
Include dependency graph for AArch64ConditionalCompares.cpp:

Go to the source code of this file.

Namespaces

namespace  llvm
 

List of target independent CodeGen pass IDs.


Defines

#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)
void llvm::initializeAArch64ConditionalComparesPass (PassRegistry &)
 INITIALIZE_PASS_BEGIN (AArch64ConditionalCompares,"aarch64-ccmp","AArch64 CCMP Pass", false, false) INITIALIZE_PASS_END(AArch64ConditionalCompares

Variables

static cl::opt< unsignedBlockInstrLimit ("aarch64-ccmp-limit", cl::init(30), cl::Hidden, cl::desc("Maximum number of instructions per speculated block."))
static cl::opt< boolStress ("aarch64-stress-ccmp", cl::Hidden, cl::desc("Turn all knobs to 11"))
aarch64 ccmp
aarch64 AArch64 CCMP Pass
aarch64 AArch64 CCMP false

Define Documentation

#define DEBUG_TYPE   "aarch64-ccmp"

Definition at line 45 of file AArch64ConditionalCompares.cpp.


Function Documentation

INITIALIZE_PASS_BEGIN ( AArch64ConditionalCompares  ,
"aarch64-ccmp ,
"AArch64 CCMP Pass ,
false  ,
false   
)
static bool parseCond ( ArrayRef< MachineOperand Cond,
AArch64CC::CondCode CC 
) [static]
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"   
)

Variable Documentation

cl::opt<unsigned> BlockInstrLimit("aarch64-ccmp-limit", cl::init(30), cl::Hidden, cl::desc("Maximum number of instructions per speculated block.")) [static]
aarch64 ccmp

Definition at line 765 of file AArch64ConditionalCompares.cpp.

aarch64 AArch64 CCMP false

Definition at line 765 of file AArch64ConditionalCompares.cpp.

aarch64 AArch64 CCMP Pass

Definition at line 765 of file AArch64ConditionalCompares.cpp.

cl::opt<bool> Stress("aarch64-stress-ccmp", cl::Hidden, cl::desc("Turn all knobs to 11")) [static]