LLVM: include/llvm/Analysis/TypeBasedAliasAnalysis.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15#ifndef LLVM_ANALYSIS_TYPEBASEDALIASANALYSIS_H

16#define LLVM_ANALYSIS_TYPEBASEDALIASANALYSIS_H

17

22#include

23

24namespace llvm {

25

30

31

33

34

35

36 bool UsingTypeSanitizer;

37

38public:

40 : UsingTypeSanitizer(UsingTypeSanitizer) {}

41

42

43

44

46 FunctionAnalysisManager::Invalidator &) {

47 return false;

48 }

49

56

65

66private:

68

69

70

71 bool shouldUseTBAA() const;

72};

73

74

85

86

88 std::unique_ptr Result;

89

90public:

91 static char ID;

92

94

97

98 bool doInitialization(Module &M) override;

99 bool doFinalization(Module &M) override;

100 void getAnalysisUsage(AnalysisUsage &AU) const override;

101};

102

103

104

105

106

107

109

110}

111

112#endif

static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")

static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")

This header defines various interfaces for pass management in LLVM.

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.

Base class for all callable instructions (InvokeInst and CallInst) Holds everything related to callin...

ImmutablePass class - This class is used to provide information that does not need to be run.

Representation for a specific memory location.

A Module instance is used to store all the information related to an LLVM module.

A set of analyses that are preserved following a run of a transformation pass.

A simple AA result that uses TBAA metadata to answer queries.

Definition TypeBasedAliasAnalysis.h:32

LLVM_ABI AliasResult aliasErrno(const MemoryLocation &Loc, const Module *M)

bool invalidate(Function &, const PreservedAnalyses &, FunctionAnalysisManager::Invalidator &)

Handle invalidation events from the new pass manager.

Definition TypeBasedAliasAnalysis.h:45

TypeBasedAAResult(bool UsingTypeSanitizer)

Definition TypeBasedAliasAnalysis.h:39

LLVM_ABI AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB, AAQueryInfo &AAQI, const Instruction *CtxI)

LLVM_ABI ModRefInfo getModRefInfoMask(const MemoryLocation &Loc, AAQueryInfo &AAQI, bool IgnoreLocals)

LLVM_ABI ModRefInfo getModRefInfo(const CallBase *Call, const MemoryLocation &Loc, AAQueryInfo &AAQI)

LLVM_ABI MemoryEffects getMemoryEffects(const CallBase *Call, AAQueryInfo &AAQI)

static char ID

Definition TypeBasedAliasAnalysis.h:91

TypeBasedAAResult & getResult()

Definition TypeBasedAliasAnalysis.h:95

const TypeBasedAAResult & getResult() const

Definition TypeBasedAliasAnalysis.h:96

Analysis pass providing a never-invalidated alias analysis result.

Definition TypeBasedAliasAnalysis.h:75

LLVM_ABI TypeBasedAAResult run(Function &F, FunctionAnalysisManager &AM)

TypeBasedAAResult Result

Definition TypeBasedAliasAnalysis.h:81

This is an optimization pass for GlobalISel generic memory operations.

MemoryEffectsBase< IRMemLocation > MemoryEffects

Summary of how a function affects memory in the program.

ModRefInfo

Flags indicating whether a memory access modifies or references memory.

LLVM_ABI ImmutablePass * createTypeBasedAAWrapperPass()

AnalysisManager< Function > FunctionAnalysisManager

Convenience typedef for the Function analysis manager.

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