LLVM: lib/Target/Hexagon/HexagonHardwareLoops.cpp File Reference (original) (raw)

Go to the source code of this file.

Namespaces
namespace llvm
This is an optimization pass for GlobalISel generic memory operations.
Functions
STATISTIC (NumHWLoops, "Number of loops converted to hardware loops")
FunctionPass * llvm::createHexagonHardwareLoops ()
void llvm::initializeHexagonHardwareLoopsPass (PassRegistry &)
INITIALIZE_PASS_BEGIN (HexagonHardwareLoops, "hwloops", "Hexagon Hardware Loops", false, false) INITIALIZE_PASS_END(HexagonHardwareLoops
Variables
static cl::opt< int > HWLoopLimit ("hexagon-max-hwloop", cl::Hidden, cl::init(-1))
static cl::opt< std::string > PHFn ("hexagon-hwloop-phfn", cl::Hidden, cl::init(""))
static cl::opt< bool > HWCreatePreheader ("hexagon-hwloop-preheader", cl::Hidden, cl::init(true), cl::desc("Add a preheader to a hardware loop if one doesn't exist"))
static cl::opt< bool > SpecPreheader ("hwloop-spec-preheader", cl::Hidden, cl::desc("Allow speculation of preheader " "instructions"))
hwloops
Hexagon Hardware Loops
Hexagon Hardware false

DEBUG_TYPE

#define DEBUG_TYPE "hwloops"

INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( HexagonHardwareLoops ,
"hwloops" ,
"Hexagon Hardware Loops" ,
false ,
false
)

STATISTIC()

STATISTIC ( NumHWLoops ,
"Number of loops converted to hardware loops"
)

false

HWCreatePreheader

cl::opt< bool > HWCreatePreheader("hexagon-hwloop-preheader", cl::Hidden, cl::init(true), cl::desc("Add a preheader to a hardware loop if one doesn't exist")) ( "hexagon-hwloop-preheader" , cl::Hidden , cl::init(true) , cl::desc("Add a preheader to a hardware loop if one doesn't exist") ) static

HWLoopLimit

cl::opt< int > HWLoopLimit("hexagon-max-hwloop", cl::Hidden, cl::init(-1)) ( "hexagon-max-hwloop" , cl::Hidden , cl::init(-1) ) static

hwloops

Loops

Definition at line 373 of file HexagonHardwareLoops.cpp.

Referenced by llvm::BlockFrequencyInfoImplBase::analyzeIrreducible(), llvm::appendLoopsToWorklist(), llvm::appendReversedLoopsToWorklist(), llvm::LoopNest::areAllLoopsRotatedForm(), llvm::LoopNest::areAllLoopsSimplifyForm(), llvm::CacheCost::CacheCost(), llvm::BlockFrequencyInfoImplBase::clear(), llvm::OpenMPIRBuilder::collapseLoops(), llvm::denormalizeForPostIncUse(), llvm::DependenceInfo::depends(), getAnyExtendConsideringPostIncUses(), llvm::CacheCost::getCacheCost(), llvm::LoopNest::getInnermostLoop(), getInnerMostLoop(), llvm::LoopNest::getLoop(), llvm::LoopNest::getLoops(), llvm::LoopNest::getLoopsAtDepth(), llvm::LoopNest::getName(), llvm::LoopNest::getNestDepth(), llvm::LoopNest::getNumLoops(), llvm::LoopNest::getOutermostLoop(), llvm::LoopNest::getParent(), llvm::DependenceInfo::getSplitIteration(), INITIALIZE_PASS(), llvm::normalizeForPostIncUse(), llvm::SIOptimizeVGPRLiveRangePass::run(), runImpl(), llvm::RAGreedy::runOnMachineFunction(), llvm::OpenMPIRBuilder::tileLoops(), tryToUnrollAndJamLoop(), llvm::BlockFrequencyInfoImplBase::unwrapLoops(), llvm::LoopInfoBase< BlockT, LoopT >::verify(), llvm::LoopBase< BlockT, LoopT >::verifyLoopNest(), and llvm::VirtRegAuxInfo::VirtRegAuxInfo().

PHFn

cl::opt< std::string > PHFn("hexagon-hwloop-phfn", cl::Hidden, cl::init("")) ( "hexagon-hwloop-phfn" , cl::Hidden , cl::init("") ) static

SpecPreheader

cl::opt< bool > SpecPreheader("hwloop-spec-preheader", cl::Hidden, cl::desc("Allow speculation of preheader " "instructions")) ( "hwloop-spec-preheader" , cl::Hidden , cl::desc("Allow speculation of preheader " "instructions") ) static