LLVM: lib/Analysis/ValueLatticeUtils.cpp Source File (original) (raw)
Go to the documentation of this file.
1
2
3
4
5
6
7
8
9
10
11
12
13
17using namespace llvm;
18
20 return F->hasLocalLinkage() && ->hasAddressTaken();
21}
22
24 return F->hasExactDefinition() && ->hasFnAttribute(Attribute::Naked);
25}
26
30 return false;
32
33
34 if (auto *Store = dyn_cast(U))
35 return Store->getValueOperand() != GV && !Store->isVolatile() &&
36 Store->getValueOperand()->getType() == GV->getValueType();
37 if (auto *Load = dyn_cast(U))
38 return !Load->isVolatile() && Load->getType() == GV->getValueType();
39
40 return false;
41 });
42}
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.
Definition ValueLatticeUtils.cpp:27
bool canTrackReturnsInterprocedurally(Function *F)
Determine if the values of the given function's returns can be tracked interprocedurally.
Definition ValueLatticeUtils.cpp:23
bool canTrackArgumentsInterprocedurally(Function *F)
Determine if the values of the given function's arguments can be tracked interprocedurally.
Definition ValueLatticeUtils.cpp:19