Lines Matching defs:Inst

748   if (Instruction *Inst = dyn_cast<Instruction>(Ptr)) {
750 if (!(Node = Inst->getMetadata(NodeId))) {
760 os << "(" << Inst->getParent()->getParent()->getName() << ",%"
761 << Inst->getName() << ")";
763 Hash = MDString::get(Inst->getContext(), os.str());
764 Inst->setMetadata(NodeId, MDNode::get(Inst->getContext(),Hash));
797 /// for Value *Ptr caused by Instruction *Inst.
799 Instruction *Inst,
806 SequenceToMDString(Inst->getContext(),
808 SequenceToMDString(Inst->getContext(),
810 Node = MDNode::get(Inst->getContext(),
813 Inst->setMetadata(NodeId, Node);
901 /// Adds a source annotation to pointer and a state change annotation to Inst
905 Instruction *Inst,
930 AppendMDNodeToInstForPtr(InstMDId, Inst, Ptr, SourcePtrMDNode, OldSeq,
1041 bool IsRetainBlockOptimizable(const Instruction *Inst);
1053 bool VisitInstructionBottomUp(Instruction *Inst,
1060 bool VisitInstructionTopDown(Instruction *Inst,
1136 bool ObjCARCOpt::IsRetainBlockOptimizable(const Instruction *Inst) {
1140 if (!Inst->getMetadata(CopyOnEscapeMDKind))
1145 if (DoesRetainableObjPtrEscape(Inst))
1341 ObjCARCOpt::OptimizeRetainBlockCall(Function &F, Instruction *Inst,
1343 assert(GetBasicInstructionClass(Inst) == Class);
1346 // If we can not optimize Inst, return false.
1347 if (!IsRetainBlockOptimizable(Inst))
1354 DEBUG(dbgs() << "Old: " << *Inst << "\n");
1355 CallInst *RetainBlock = cast<CallInst>(Inst);
1360 DEBUG(dbgs() << "New: " << *Inst << "\n");
1373 Instruction *Inst = &*I++;
1375 InstructionClass Class = GetBasicInstructionClass(Inst);
1377 DEBUG(dbgs() << "Visiting: Class: " << Class << "; " << *Inst << "\n");
1393 DEBUG(dbgs() << "Erasing no-op cast: " << *Inst << "\n");
1394 EraseInstruction(Inst);
1403 CallInst *CI = cast<CallInst>(Inst);
1421 CallInst *CI = cast<CallInst>(Inst);
1443 if (!OptimizeRetainBlockCall(F, Inst, Class))
1450 if (OptimizeRetainRVCall(F, Inst))
1454 OptimizeAutoreleaseRVCall(F, Inst, Class);
1462 if (IsAutorelease(Class) && Inst->use_empty()) {
1463 CallInst *Call = cast<CallInst>(Inst);
1471 LLVMContext &C = Inst->getContext();
1482 Inst = NewCall;
1492 "passed stack args: " << *Inst << "\n");
1493 cast<CallInst>(Inst)->setTailCall();
1500 DEBUG(dbgs() << "Removing tail keyword from function: " << *Inst <<
1502 cast<CallInst>(Inst)->setTailCall(false);
1508 DEBUG(dbgs() << "Found no throw class. Setting nounwind on: " << *Inst
1510 cast<CallInst>(Inst)->setDoesNotThrow();
1518 const Value *Arg = GetObjCArg(Inst);
1524 DEBUG(dbgs() << "ARC calls with null are no-ops. Erasing: " << *Inst
1526 EraseInstruction(Inst);
1540 Worklist.push_back(std::make_pair(Inst, Arg));
1543 Inst = Pair.first;
1580 Inst->getParent(), Inst,
1586 Inst->getParent(), Inst,
1605 CallInst *CInst = cast<CallInst>(Inst);
1783 ObjCARCOpt::VisitInstructionBottomUp(Instruction *Inst,
1788 InstructionClass Class = GetInstructionClass(Inst);
1795 Arg = GetObjCArg(Inst);
1811 MDNode *ReleaseMetadata = Inst->getMetadata(ImpreciseReleaseMDKind);
1813 ANNOTATE_BOTTOMUP(Inst, Arg, S.GetSeq(), NewSeq);
1817 S.RRI.IsTailCallRelease = cast<CallInst>(Inst)->isTailCall();
1818 S.RRI.Calls.insert(Inst);
1829 Arg = GetObjCArg(Inst);
1849 Retains[Inst] = S.RRI;
1857 ANNOTATE_BOTTOMUP(Inst, Arg, OldSeq, S.GetSeq());
1884 if (CanAlterRefCount(Inst, Ptr, PA, Class)) {
1891 ANNOTATE_BOTTOMUP(Inst, Ptr, Seq, S.GetSeq());
1908 if (CanUse(Inst, Ptr, PA, Class)) {
1915 if (isa<InvokeInst>(Inst))
1918 S.RRI.ReverseInsertPts.insert(llvm::next(BasicBlock::iterator(Inst)));
1920 ANNOTATE_BOTTOMUP(Inst, Ptr, Seq, S_Use);
1926 ANNOTATE_BOTTOMUP(Inst, Ptr, S_Release, S_Stop);
1929 if (isa<InvokeInst>(Inst))
1932 S.RRI.ReverseInsertPts.insert(llvm::next(BasicBlock::iterator(Inst)));
1936 if (CanUse(Inst, Ptr, PA, Class)) {
1940 ANNOTATE_BOTTOMUP(Inst, Ptr, Seq, S_Use);
1989 Instruction *Inst = llvm::prior(I);
1992 if (isa<InvokeInst>(Inst))
1995 DEBUG(dbgs() << "Visiting " << *Inst << "\n");
1997 NestingDetected |= VisitInstructionBottomUp(Inst, BB, Retains, MyStates);
2018 ObjCARCOpt::VisitInstructionTopDown(Instruction *Inst,
2022 InstructionClass Class = GetInstructionClass(Inst);
2033 Arg = GetObjCArg(Inst);
2050 ANNOTATE_TOPDOWN(Inst, Arg, S.GetSeq(), S_Retain);
2053 S.RRI.Calls.insert(Inst);
2063 Arg = GetObjCArg(Inst);
2070 MDNode *ReleaseMetadata = Inst->getMetadata(ImpreciseReleaseMDKind);
2080 S.RRI.IsTailCallRelease = cast<CallInst>(Inst)->isTailCall();
2081 Releases[Inst] = S.RRI;
2082 ANNOTATE_TOPDOWN(Inst, Arg, S.GetSeq(), S_None);
2117 if (CanAlterRefCount(Inst, Ptr, PA, Class)) {
2124 ANNOTATE_TOPDOWN(Inst, Ptr, Seq, S_CanRelease);
2126 S.RRI.ReverseInsertPts.insert(Inst);
2146 if (CanUse(Inst, Ptr, PA, Class)) {
2150 ANNOTATE_TOPDOWN(Inst, Ptr, Seq, S_Use);
2199 Instruction *Inst = I;
2201 DEBUG(dbgs() << "Visiting " << *Inst << "\n");
2203 NestingDetected |= VisitInstructionTopDown(Inst, Releases, MyStates);
2649 Instruction *Inst = &*I++;
2651 DEBUG(dbgs() << "Visiting: " << *Inst << "\n");
2653 InstructionClass Class = GetBasicInstructionClass(Inst);
2658 if (Class == IC_LoadWeak && Inst->use_empty()) {
2659 Inst->eraseFromParent();
2679 CallInst *Call = cast<CallInst>(Inst);
2709 CallInst *Call = cast<CallInst>(Inst);
2757 Instruction *Inst = &*I++;
2758 InstructionClass Class = GetBasicInstructionClass(Inst);
2762 CallInst *Call = cast<CallInst>(Inst);
2984 Instruction *Inst = &*I++;
2985 switch (GetBasicInstructionClass(Inst)) {