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:

62 static char ID;

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...