20 return F->hasLocalLinkage() && !
F->hasAddressTaken();
24 return F->hasExactDefinition() && !
F->hasFnAttribute(Attribute::Naked);
34 if (auto *Store = dyn_cast<StoreInst>(U))
35 return Store->getValueOperand() != GV && !Store->isVolatile() &&
36 Store->getValueOperand()->getType() == GV->getValueType();
37 if (auto *Load = dyn_cast<LoadInst>(U))
38 return !Load->isVolatile() && Load->getType() == GV->getValueType();
bool hasLocalLinkage() const
bool isConstant() const
If the value is a global constant, its value is immutable throughout the runtime execution of the pro...
bool hasDefinitiveInitializer() const
hasDefinitiveInitializer - Whether the global variable has an initializer, and any other instances of...
iterator_range< user_iterator > users()
This is an optimization pass for GlobalISel generic memory operations.
bool all_of(R &&range, UnaryPredicate P)
Provide wrappers to std::all_of which take ranges instead of having to pass begin/end explicitly.
bool canTrackGlobalVariableInterprocedurally(GlobalVariable *GV)
Determine if the value maintained in the given global variable can be tracked interprocedurally.
bool canTrackReturnsInterprocedurally(Function *F)
Determine if the values of the given function's returns can be tracked interprocedurally.
bool canTrackArgumentsInterprocedurally(Function *F)
Determine if the values of the given function's arguments can be tracked interprocedurally.