LLVM: lib/Transforms/ObjCARC/ProvenanceAnalysis.h Source File (original) (raw)

Go to the documentation of this file.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25#ifndef LLVM_LIB_TRANSFORMS_OBJCARC_PROVENANCEANALYSIS_H

26#define LLVM_LIB_TRANSFORMS_OBJCARC_PROVENANCEANALYSIS_H

27

31#include

32

33namespace llvm {

34

39

41

42

43

44

45

46

47

48

49

50

52 AAResults *AA;

53

54 using ValuePairTy = std::pair<const Value *, const Value *>;

55 using CachedResultsTy = DenseMap<ValuePairTy, bool>;

56

57 CachedResultsTy CachedResults;

58

59 DenseMap<const Value *, std::pair<WeakVH, WeakTrackingVH>>

60 UnderlyingObjCPtrCache;

61

62 bool relatedCheck(const Value *A, const Value *B);

63 bool relatedSelect(const SelectInst *A, const Value *B);

64 bool relatedPHI(const PHINode *A, const Value *B);

65

66public:

70

72

73 AAResults *getAA() const { return AA; }

74

75 bool related(const Value *A, const Value *B);

76

78 CachedResults.clear();

79 UnderlyingObjCPtrCache.clear();

80 }

81};

82

83}

84

85}

86

87#endif

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

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

This file defines the DenseMap class.

This header defines various interfaces for pass management in LLVM.

void clear()

Definition ProvenanceAnalysis.h:77

void setAA(AAResults *aa)

Definition ProvenanceAnalysis.h:71

ProvenanceAnalysis(const ProvenanceAnalysis &)=delete

ProvenanceAnalysis & operator=(const ProvenanceAnalysis &)=delete

AAResults * getAA() const

Definition ProvenanceAnalysis.h:73

ProvenanceAnalysis()=default

This class represents the LLVM 'select' instruction.

LLVM Value Representation.

This is an optimization pass for GlobalISel generic memory operations.