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

21#include

22

23namespace llvm {

24

25class CallBase;

27class MDNode;

28class MemoryLocation;

29

30

32

33

34

35 bool UsingTypeSanitizer;

36

37public:

39 : UsingTypeSanitizer(UsingTypeSanitizer) {}

40

41

42

43

46 return false;

47 }

48

52 bool IgnoreLocals);

53

60

61private:

63

64

65

66 bool shouldUseTBAA() const;

67};

68

69

72

74

75public:

77

79};

80

81

83 std::unique_ptr Result;

84

85public:

86 static char ID;

87

89

92

96};

97

98

99

100

101

102

104

105}

106

107#endif

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

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

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.

A base class to help implement the function alias analysis results concept.

The possible results of an alias query.

API to communicate dependencies between analyses during invalidation.

A container for analyses that lazily runs them and caches their results.

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.

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

Handle invalidation events from the new pass manager.

TypeBasedAAResult(bool UsingTypeSanitizer)

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

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

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

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

Legacy wrapper pass to provide the TypeBasedAAResult object.

bool doFinalization(Module &M) override

doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes...

TypeBasedAAResult & getResult()

bool doInitialization(Module &M) override

doInitialization - Virtual method overridden by subclasses to do any necessary initialization before ...

const TypeBasedAAResult & getResult() const

void getAnalysisUsage(AnalysisUsage &AU) const override

getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...

Analysis pass providing a never-invalidated alias analysis result.

TypeBasedAAResult run(Function &F, FunctionAnalysisManager &AM)

This is an optimization pass for GlobalISel generic memory operations.

ModRefInfo

Flags indicating whether a memory access modifies or references memory.

ImmutablePass * createTypeBasedAAWrapperPass()

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