Home | History | Annotate | Download | only in Scalar

Lines Matching refs:LICM

1 //===-- LICM.cpp - Loop Invariant Code Motion Pass ------------------------===//
33 #define DEBUG_TYPE "licm"
67 DisablePromotion("disable-licm-promotion", cl::Hidden,
68 cl::desc("Disable memory promotion in LICM pass"));
71 struct LICM : public LoopPass {
73 LICM() : LoopPass(ID) {
190 char LICM::ID = 0;
191 INITIALIZE_PASS_BEGIN(LICM, "licm", "Loop Invariant Code Motion", false, false)
197 INITIALIZE_PASS_END(LICM, "licm", "Loop Invariant Code Motion", false, false)
199 Pass *llvm::createLICMPass() { return new LICM(); }
202 /// loop is not preserved so it is not a good idea to run LICM multiple
205 bool LICM::runOnLoop(Loop *L, LPPassManager &LPM) {
304 void LICM::SinkRegion(DomTreeNode *N) {
326 DEBUG(dbgs() << "LICM deleting dead inst: " << I << '\n');
351 void LICM::HoistRegion(DomTreeNode *N) {
368 DEBUG(dbgs() << "LICM folding inst: " << I << " --> " << *C << '\n');
393 bool LICM::canSinkOrHoistInst(Instruction &I) {
457 bool LICM::isNotUsedInLoop(Instruction &I) {
479 void LICM::sink(Instruction &I) {
480 DEBUG(dbgs() << "LICM sinking instruction: " << I << "\n");
600 void LICM::hoist(Instruction &I) {
601 DEBUG(dbgs() << "LICM hoisting to " << Preheader->getName() << ": "
617 bool LICM::isSafeToExecuteUnconditionally(Instruction &Inst) {
625 bool LICM::isGuaranteedToExecute(Instruction &Inst) {
722 void LICM::PromoteAliasSet(AliasSet &AS,
833 DEBUG(dbgs() << "LICM: Promoting value stored to in loop: " <<*SomePtr<<'\n');
879 void LICM::cloneBasicBlockAnalysis(BasicBlock *From, BasicBlock *To, Loop *L) {
889 void LICM::deleteAnalysisValue(Value *V, Loop *L) {