#include "llvm/IR/Assumptions.h"
#include "llvm/ADT/SetOperations.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/InstrTypes.h"
usingnamespacellvm;
namespace {
bool hasAssumption(const Attribute &A,
const KnownAssumptionString &AssumptionStr) { … }
DenseSet<StringRef> getAssumptions(const Attribute &A) { … }
template <typename AttrSite>
bool addAssumptionsImpl(AttrSite &Site,
const DenseSet<StringRef> &Assumptions) { … }
}
bool llvm::hasAssumption(const Function &F,
const KnownAssumptionString &AssumptionStr) { … }
bool llvm::hasAssumption(const CallBase &CB,
const KnownAssumptionString &AssumptionStr) { … }
DenseSet<StringRef> llvm::getAssumptions(const Function &F) { … }
DenseSet<StringRef> llvm::getAssumptions(const CallBase &CB) { … }
bool llvm::addAssumptions(Function &F, const DenseSet<StringRef> &Assumptions) { … }
bool llvm::addAssumptions(CallBase &CB,
const DenseSet<StringRef> &Assumptions) { … }
StringSet<> llvm::KnownAssumptionStrings({ … });