LLVM API Documentation
#include "llvm/CodeGen/Passes.h"#include "llvm/CodeGen/MachineDominators.h"#include "llvm/CodeGen/MachineLoopInfo.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/Target/TargetRegisterInfo.h"#include "llvm/Target/TargetInstrInfo.h"#include "llvm/Target/TargetMachine.h"#include "llvm/ADT/Statistic.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/Compiler.h"#include "llvm/Support/Debug.h"
Go to the source code of this file.
Defines | |
| #define | DEBUG_TYPE "machine-licm" |
Functions | |
| STATISTIC (NumHoisted,"Number of machine instructions hoisted out of loops") | |
| FunctionPass * | llvm::createMachineLICMPass () |
| static bool | LoopIsOuterMostWithPreheader (MachineLoop *CurLoop) |
Variables | |
| static RegisterPass< MachineLICM > | X ("machinelicm","Machine Loop Invariant Code Motion") |
| #define DEBUG_TYPE "machine-licm" |
Definition at line 23 of file MachineLICM.cpp.
| static bool LoopIsOuterMostWithPreheader | ( | MachineLoop * | CurLoop | ) | [static] |
LoopIsOuterMostWithPreheader - Test if the given loop is the outer-most loop that has a preheader.
Definition at line 102 of file MachineLICM.cpp.
References llvm::LoopBase< BlockT >::getLoopPreheader(), llvm::LoopBase< BlockT >::getParentLoop(), and L.
| STATISTIC | ( | NumHoisted | , | |
| "Number of machine instructions hoisted out of loops" | ||||
| ) |
| bool Changed |
Definition at line 51 of file MachineLICM.cpp.
Referenced by CleanupConstantGlobalUsers(), FoldValueComparisonIntoPredecessors(), llvm::BasicInlinerImpl::inlineFunctions(), IterativeSimplifyCFG(), MarkAliveBlocks(), NormalizeMask(), OptimizeAwayTrappingUsesOfLoads(), OptimizeAwayTrappingUsesOfValue(), llvm::Inliner::removeDeadFunctions(), RemoveUnreachableBlocksFromFn(), llvm::FunctionPass::run(), llvm::DAGTypeLegalizer::run(), llvm::BasicBlockPass::runOnFunction(), llvm::LPPassManager::runOnFunction(), llvm::FunctionPass::runOnModule(), llvm::Inliner::runOnSCC(), llvm::set_union(), and llvm::SimplifyCFG().
Definition at line 52 of file MachineLICM.cpp.
Referenced by llvm::LoopBase< BlockT >::getLoopDepth().
Definition at line 53 of file MachineLICM.cpp.
Definition at line 47 of file MachineLICM.cpp.
Referenced by llvm::MachineDominatorTree::addNewBlock(), llvm::Calculate(), llvm::MachineDominatorTree::changeImmediateDominator(), llvm::CloneLoop(), llvm::MachineDominatorTree::dominates(), llvm::MachineDominatorTree::eraseNode(), llvm::MachineDominatorTree::findNearestCommonDominator(), llvm::MachineDominatorTree::getBase(), llvm::MachineDominatorTree::getNode(), llvm::MachineDominatorTree::getRoot(), llvm::MachineDominatorTree::getRootNode(), llvm::MachineDominatorTree::getRoots(), llvm::MergeBlockIntoPredecessor(), llvm::MachineDominatorTree::operator[](), llvm::MachineDominatorTree::print(), llvm::MachineDominatorTree::properlyDominates(), RecursiveResolveTypesI(), llvm::PostDominanceFrontier::runOnFunction(), llvm::DominanceFrontier::runOnFunction(), llvm::MachineDominatorTree::splitBlock(), llvm::DominanceFrontier::splitBlock(), llvm::SplitBlock(), llvm::SplitBlockPredecessors(), llvm::SplitCriticalEdge(), and llvm::PMDataManager::verifyDomInfo().
char ID [static] |
Definition at line 55 of file MachineLICM.cpp.
Definition at line 46 of file MachineLICM.cpp.
Definition at line 48 of file MachineLICM.cpp.
| const TargetInstrInfo* TII |
Definition at line 43 of file MachineLICM.cpp.
| const TargetMachine* TM |
Definition at line 42 of file MachineLICM.cpp.
RegisterPass<MachineLICM> X("machinelicm","Machine Loop Invariant Code Motion") [static] |