LLVM: include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13#ifndef LLVM_ANALYSIS_SCALAREVOLUTIONALIASANALYSIS_H
14#define LLVM_ANALYSIS_SCALAREVOLUTIONALIASANALYSIS_H
15
19
20namespace llvm {
21
25
26
27
30
31public:
34
38
40 FunctionAnalysisManager::Invalidator &Inv);
41
42private:
43 Value *GetBaseValue(const SCEV *S);
44};
45
46
56
57
59 std::unique_ptr Result;
60
61public:
63
65
68
70 void getAnalysisUsage(AnalysisUsage &AU) const override;
71};
72
73
75}
76
77#endif
static bool runOnFunction(Function &F, bool PostInlining)
This class stores info we want to provide to or retain within an alias query.
The possible results of an alias query.
Represent the analysis usage information of a pass.
Representation for a specific memory location.
A set of analyses that are preserved following a run of a transformation pass.
A simple alias analysis implementation that uses ScalarEvolution to answer queries.
Definition ScalarEvolutionAliasAnalysis.h:28
LLVM_ABI bool invalidate(Function &F, const PreservedAnalyses &PA, FunctionAnalysisManager::Invalidator &Inv)
SCEVAAResult(ScalarEvolution &SE)
Definition ScalarEvolutionAliasAnalysis.h:32
SCEVAAResult(SCEVAAResult &&Arg)
Definition ScalarEvolutionAliasAnalysis.h:33
LLVM_ABI AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB, AAQueryInfo &AAQI, const Instruction *CtxI)
SCEVAAResult & getResult()
Definition ScalarEvolutionAliasAnalysis.h:66
static char ID
Definition ScalarEvolutionAliasAnalysis.h:62
const SCEVAAResult & getResult() const
Definition ScalarEvolutionAliasAnalysis.h:67
Analysis pass providing a never-invalidated alias analysis result.
Definition ScalarEvolutionAliasAnalysis.h:47
SCEVAAResult Result
Definition ScalarEvolutionAliasAnalysis.h:52
LLVM_ABI SCEVAAResult run(Function &F, FunctionAnalysisManager &AM)
This class represents an analyzed expression in the program.
The main scalar evolution driver.
LLVM Value Representation.
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI FunctionPass * createSCEVAAWrapperPass()
Creates an instance of SCEVAAWrapperPass.
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
AnalysisManager< Function > FunctionAnalysisManager
Convenience typedef for the Function analysis manager.
Implement std::hash so that hash_code can be used in STL containers.
A CRTP mix-in that provides informational APIs needed for analysis passes.
A special type used by analysis passes to provide an address that identifies that particular analysis...