Lines Matching refs:Insn
209 GEPChainInfo &GEP, T *Insn) { in fillCommonArgs() argument
213 unsigned AlignShiftValue = Log2_64(Insn->getAlign().value()); in fillCommonArgs()
215 Args.push_back(ConstantInt::get(Int1Ty, Insn->isVolatile())); in fillCommonArgs()
216 Args.push_back(ConstantInt::get(Int8Ty, (unsigned)Insn->getOrdering())); in fillCommonArgs()
217 Args.push_back(ConstantInt::get(Int8Ty, (unsigned)Insn->getSyncScopeID())); in fillCommonArgs()
290 static void reconstructCommon(CallInst *Call, GetElementPtrInst *GEP, T *Insn, in reconstructCommon() argument
292 Insn->setVolatile(getOperandAsUnsigned(Call, 1 + Delta)); in reconstructCommon()
293 Insn->setOrdering((AtomicOrdering)getOperandAsUnsigned(Call, 2 + Delta)); in reconstructCommon()
294 Insn->setSyncScopeID(getOperandAsUnsigned(Call, 3 + Delta)); in reconstructCommon()
296 Insn->setAlignment(Align(1ULL << AlignShiftValue)); in reconstructCommon()
298 Insn->setDebugLoc(Call->getDebugLoc()); in reconstructCommon()
299 Insn->setAAMetadata(Call->getAAMetadata()); in reconstructCommon()
395 static void reportNonStaticGEPChain(Instruction *Insn) { in reportNonStaticGEPChain() argument
397 *Insn->getFunction(), in reportNonStaticGEPChain()
400 .concat(Insn->getDebugLoc() in reportNonStaticGEPChain()
403 Insn->getDebugLoc(), DS_Warning); in reportNonStaticGEPChain()
404 Insn->getContext().diagnose(Msg); in reportNonStaticGEPChain()
455 static void rewriteAccessChain(Instruction *Insn,
460 static void rewriteUses(Instruction *Insn, in rewriteUses() argument
464 for (User *U : Insn->users()) { in rewriteUses()
466 if (UI && (isPointerOperand(Insn, UI) || isPreserveStaticOffsetCall(UI) || in rewriteUses()
472 llvm::dbgs() << " Insn: " << *Insn << "\n"; in rewriteUses()
501 static void rewriteAccessChain(Instruction *Insn, in rewriteAccessChain() argument
506 Visited.push_back(Insn); in rewriteAccessChain()
507 rewriteUses(Insn, GEPs, Visited, AllowPatial, StillUsed); in rewriteAccessChain()
515 if (tryToReplaceWithGEPBuiltin(LoadOrStore, GEPs, Insn)) { in rewriteAccessChain()
516 Visited.push_back(Insn); in rewriteAccessChain()
520 reportNonStaticGEPChain(Insn); in rewriteAccessChain()
523 if (isa<LoadInst>(Insn) || isa<StoreInst>(Insn)) { in rewriteAccessChain()
524 TryToReplace(Insn); in rewriteAccessChain()
525 } else if (isGEPAndLoad(Insn)) { in rewriteAccessChain()
527 BPFPreserveStaticOffsetPass::reconstructLoad(cast<CallInst>(Insn)); in rewriteAccessChain()
533 } else if (isGEPAndStore(Insn)) { in rewriteAccessChain()
538 BPFPreserveStaticOffsetPass::reconstructStore(cast<CallInst>(Insn)); in rewriteAccessChain()
544 } else if (auto *GEP = dyn_cast<GetElementPtrInst>(Insn)) { in rewriteAccessChain()
548 } else if (isPreserveStaticOffsetCall(Insn)) { in rewriteAccessChain()
550 } else if (isInlineableCall(Insn)) { in rewriteAccessChain()
562 BufStream << *Insn; in rewriteAccessChain()
595 for (Instruction &Insn : instructions(F)) in collectPreserveStaticOffsetCalls()
596 if (isPreserveStaticOffsetCall(&Insn)) in collectPreserveStaticOffsetCalls()
597 Calls.push_back(&Insn); in collectPreserveStaticOffsetCalls()