Go to the source code of this file.
|
| llvm |
| This is an optimization pass for GlobalISel generic memory operations.
|
|
|
using | llvm::BBSideEffectsSet = DenseMap< const BasicBlock *, bool > |
|
using | llvm::SmallVecInsn = SmallVector< Instruction *, 4 > |
|
using | llvm::SmallVecImplInsn = SmallVectorImpl< Instruction * > |
|
using | llvm::HoistingPointInfo = std::pair< BasicBlock *, SmallVecInsn > |
|
using | llvm::HoistingPointList = SmallVector< HoistingPointInfo, 4 > |
|
using | llvm::VNType = std::pair< unsigned, uintptr_t > |
|
using | llvm::VNtoInsns = DenseMap< VNType, SmallVector< Instruction *, 4 > > |
|
using | llvm::CHIIt = SmallVectorImpl< CHIArg >::iterator |
|
using | llvm::CHIArgs = iterator_range< CHIIt > |
|
using | llvm::OutValuesType = DenseMap< BasicBlock *, SmallVector< CHIArg, 2 > > |
|
using | llvm::InValuesType = DenseMap< BasicBlock *, SmallVector< std::pair< VNType, Instruction * >, 2 > > |
|
|
| STATISTIC (NumHoisted, "Number of instructions hoisted") |
|
| STATISTIC (NumRemoved, "Number of instructions removed") |
|
| STATISTIC (NumLoadsHoisted, "Number of loads hoisted") |
|
| STATISTIC (NumLoadsRemoved, "Number of loads removed") |
|
| STATISTIC (NumStoresHoisted, "Number of stores hoisted") |
|
| STATISTIC (NumStoresRemoved, "Number of stores removed") |
|
| STATISTIC (NumCallsHoisted, "Number of calls hoisted") |
|
| STATISTIC (NumCallsRemoved, "Number of calls removed") |
|
static void | llvm::combineKnownMetadata (Instruction *ReplInst, Instruction *I) |
|
| INITIALIZE_PASS_BEGIN (GVNHoistLegacyPass, "gvn-hoist", "Early GVN Hoisting of Expressions", false, false) INITIALIZE_PASS_END(GVNHoistLegacyPass |
|
|
static cl::opt< int > | MaxHoistedThreshold ("gvn-max-hoisted", cl::Hidden, cl::init(-1), cl::desc("Max number of instructions to hoist " "(default unlimited = -1)")) |
|
static cl::opt< int > | MaxNumberOfBBSInPath ("gvn-hoist-max-bbs", cl::Hidden, cl::init(4), cl::desc("Max number of basic blocks on the path between " "hoisting locations (default = 4, unlimited = -1)")) |
|
static cl::opt< int > | MaxDepthInBB ("gvn-hoist-max-depth", cl::Hidden, cl::init(100), cl::desc("Hoist instructions from the beginning of the BB up to the " "maximum specified depth (default = 100, unlimited = -1)")) |
|
static cl::opt< int > | MaxChainLength ("gvn-hoist-max-chain-length", cl::Hidden, cl::init(10), cl::desc("Maximum length of dependent chains to hoist " "(default = 10, unlimited = -1)")) |
|
gvn | hoist |
| When an instruction is found to only use loop invariant operands that is safe to hoist, this instruction is called to do the dirty work. More...
|
|
gvn Early GVN Hoisting of | Expressions |
|
gvn Early GVN Hoisting of | false |
|
◆ DEBUG_TYPE
#define DEBUG_TYPE "gvn-hoist" |
◆ INITIALIZE_PASS_BEGIN()
◆ STATISTIC() [1/8]
STATISTIC |
( |
NumCallsHoisted |
, |
|
|
"Number of calls hoisted" |
|
|
) |
| |
◆ STATISTIC() [2/8]
◆ STATISTIC() [3/8]
◆ STATISTIC() [4/8]
STATISTIC |
( |
NumLoadsHoisted |
, |
|
|
"Number of loads hoisted" |
|
|
) |
| |
◆ STATISTIC() [5/8]
STATISTIC |
( |
NumLoadsRemoved |
, |
|
|
"Number of loads removed" |
|
|
) |
| |
◆ STATISTIC() [6/8]
◆ STATISTIC() [7/8]
STATISTIC |
( |
NumStoresHoisted |
, |
|
|
"Number of stores hoisted" |
|
|
) |
| |
◆ STATISTIC() [8/8]
◆ Expressions
Definition at line 1265 of file GVNHoist.cpp.
Referenced by llvm::GVNPass::ValueTable::clear(), ConversionExpr::ConversionExpr(), llvm::coverage::CounterMappingContext::CounterMappingContext(), llvm::coverage::CoverageMappingWriter::CoverageMappingWriter(), encodeCounter(), llvm::coverage::CounterExpressionBuilder::getExpressions(), ConversionExpr::match(), ConversionExpr::printLeft(), llvm::coverage::RawCoverageMappingReader::RawCoverageMappingReader(), llvm::coverage::BinaryCoverageReader::readNextRecord(), llvm::coverage::CoverageMappingWriter::write(), and writeCounter().
◆ false
◆ hoist
When an instruction is found to only use loop invariant operands that is safe to hoist, this instruction is called to do the dirty work.
Definition at line 1264 of file GVNHoist.cpp.
◆ MaxChainLength
cl::opt<int> MaxChainLength("gvn-hoist-max-chain-length", cl::Hidden, cl::init(10), cl::desc("Maximum length of dependent chains to hoist " "(default = 10, unlimited = -1)")) |
|
static |
◆ MaxDepthInBB
◆ MaxHoistedThreshold
◆ MaxNumberOfBBSInPath
cl::opt<int> MaxNumberOfBBSInPath("gvn-hoist-max-bbs", cl::Hidden, cl::init(4), cl::desc("Max number of basic blocks on the path between " "hoisting locations (default = 4, unlimited = -1)")) |
|
static |