Lines Matching full:assume

1 //===- AssumeBundleQueries.cpp - tool to query assume bundles ---*- C++ -*-===//
19 #define DEBUG_TYPE "assume-queries"
24 STATISTIC(NumAssumeQueries, "Number of Queries into an assume assume bundles");
27 "Number of Queries into an assume assume bundles that were satisfied");
29 DEBUG_COUNTER(AssumeQueryCounter, "assume-queries-counter",
36 static Value *getValueFromBundleOpInfo(AssumeInst &Assume, in getValueFromBundleOpInfo() argument
40 return (Assume.op_begin() + BOI.Begin + Idx)->get(); in getValueFromBundleOpInfo()
43 bool llvm::hasAttributeInAssume(AssumeInst &Assume, Value *IsOn, in hasAttributeInAssume() argument
50 if (Assume.bundle_op_infos().empty()) in hasAttributeInAssume()
53 for (auto &BOI : Assume.bundle_op_infos()) { in hasAttributeInAssume()
57 IsOn != getValueFromBundleOpInfo(Assume, BOI, ABA_WasOn))) in hasAttributeInAssume()
62 cast<ConstantInt>(getValueFromBundleOpInfo(Assume, BOI, ABA_Argument)) in hasAttributeInAssume()
70 void llvm::fillMapFromAssume(AssumeInst &Assume, RetainedKnowledgeMap &Result) { in fillMapFromAssume() argument
71 for (auto &Bundles : Assume.bundle_op_infos()) { in fillMapFromAssume()
75 Key.first = getValueFromBundleOpInfo(Assume, Bundles, ABA_WasOn); in fillMapFromAssume()
80 Result[Key][&Assume] = {0, 0}; in fillMapFromAssume()
84 getValueFromBundleOpInfo(Assume, Bundles, ABA_Argument)); in fillMapFromAssume()
89 if (Lookup == Result.end() || !Lookup->second.count(&Assume)) { in fillMapFromAssume()
90 Result[Key][&Assume] = {Val, Val}; in fillMapFromAssume()
93 Lookup->second[&Assume].Min = std::min(Val, Lookup->second[&Assume].Min); in fillMapFromAssume()
94 Lookup->second[&Assume].Max = std::max(Val, Lookup->second[&Assume].Max); in fillMapFromAssume()
99 llvm::getKnowledgeFromBundle(AssumeInst &Assume, in getKnowledgeFromBundle() argument
107 Result.WasOn = getValueFromBundleOpInfo(Assume, BOI, ABA_WasOn); in getKnowledgeFromBundle()
110 getValueFromBundleOpInfo(Assume, BOI, ABA_Argument + Idx))) in getKnowledgeFromBundle()
122 RetainedKnowledge llvm::getKnowledgeFromOperandInAssume(AssumeInst &Assume, in getKnowledgeFromOperandInAssume() argument
124 CallBase::BundleOpInfo BOI = Assume.getBundleOpInfoForOperand(Idx); in getKnowledgeFromOperandInAssume()
125 return getKnowledgeFromBundle(Assume, BOI); in getKnowledgeFromOperandInAssume()
128 bool llvm::isAssumeWithEmptyBundle(const AssumeInst &Assume) { in isAssumeWithEmptyBundle() argument
129 return none_of(Assume.bundle_op_infos(), in isAssumeWithEmptyBundle()
137 m_Intrinsic<Intrinsic::assume>(m_Unless(m_Specific(U->get()))))) in getBundleFromUse()
166 auto *II = cast_or_null<AssumeInst>(Elem.Assume); in getKnowledgeForValue()