Lines Matching refs:LI
47 bool expandAtomicLoad(LoadInst *LI);
48 bool expandAtomicLoadToLL(LoadInst *LI);
49 bool expandAtomicLoadToCmpXchg(LoadInst *LI);
86 auto LI = dyn_cast<LoadInst>(I); in runOnFunction() local
90 assert((LI || SI || RMWI || CASI || isa<FenceInst>(I)) && in runOnFunction()
96 if (LI && isAtLeastAcquire(LI->getOrdering())) { in runOnFunction()
97 FenceOrdering = LI->getOrdering(); in runOnFunction()
98 LI->setOrdering(Monotonic); in runOnFunction()
129 if (LI && TLI->shouldExpandAtomicLoadInIR(LI)) { in runOnFunction()
130 MadeChange |= expandAtomicLoad(LI); in runOnFunction()
172 bool AtomicExpand::expandAtomicLoad(LoadInst *LI) { in expandAtomicLoad() argument
174 return expandAtomicLoadToLL(LI); in expandAtomicLoad()
176 return expandAtomicLoadToCmpXchg(LI); in expandAtomicLoad()
179 bool AtomicExpand::expandAtomicLoadToLL(LoadInst *LI) { in expandAtomicLoadToLL() argument
180 IRBuilder<> Builder(LI); in expandAtomicLoadToLL()
186 TLI->emitLoadLinked(Builder, LI->getPointerOperand(), LI->getOrdering()); in expandAtomicLoadToLL()
188 LI->replaceAllUsesWith(Val); in expandAtomicLoadToLL()
189 LI->eraseFromParent(); in expandAtomicLoadToLL()
194 bool AtomicExpand::expandAtomicLoadToCmpXchg(LoadInst *LI) { in expandAtomicLoadToCmpXchg() argument
195 IRBuilder<> Builder(LI); in expandAtomicLoadToCmpXchg()
196 AtomicOrdering Order = LI->getOrdering(); in expandAtomicLoadToCmpXchg()
197 Value *Addr = LI->getPointerOperand(); in expandAtomicLoadToCmpXchg()
206 LI->replaceAllUsesWith(Loaded); in expandAtomicLoadToCmpXchg()
207 LI->eraseFromParent(); in expandAtomicLoadToCmpXchg()