LLVM: include/llvm/IR/TypeFinder.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_IR_TYPEFINDER_H

14#define LLVM_IR_TYPEFINDER_H

15

18#include

19#include

20

21namespace llvm {

22

28

29

30

32

33

38

39 std::vector<StructType*> StructTypes;

40 bool OnlyNamed = false;

41

42public:

44

45 void run(const Module &M, bool onlyNamed);

47

48 using iterator = std::vector<StructType*>::iterator;

49 using const_iterator = std::vector<StructType*>::const_iterator;

50

53

56

57 bool empty() const { return StructTypes.empty(); }

58 size_t size() const { return StructTypes.size(); }

60

62

64

65private:

66

67

68 void incorporateType(Type *Ty);

69

70

71

72

73

74 void incorporateValue(const Value *V);

75

76

77

78 void incorporateMDNode(const MDNode *V);

79

80

81 void incorporateAttributes(AttributeList AL);

82};

83

84}

85

86#endif

This file contains the simple types necessary to represent the attributes associated with functions a...

static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")

This file defines the DenseSet and SmallDenseSet classes.

Implements a dense probed hash-table based set.

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

Class to represent struct types.

iterator end()

Definition TypeFinder.h:52

DenseSet< const MDNode * > & getVisitedMetadata()

Definition TypeFinder.h:63

void run(const Module &M, bool onlyNamed)

iterator erase(iterator I, iterator E)

Definition TypeFinder.h:59

const_iterator end() const

Definition TypeFinder.h:55

iterator begin()

Definition TypeFinder.h:51

size_t size() const

Definition TypeFinder.h:58

const_iterator begin() const

Definition TypeFinder.h:54

std::vector< StructType * >::const_iterator const_iterator

Definition TypeFinder.h:49

StructType *& operator[](unsigned Idx)

Definition TypeFinder.h:61

bool empty() const

Definition TypeFinder.h:57

std::vector< StructType * >::iterator iterator

Definition TypeFinder.h:48

The instances of the Type class are immutable: once they are created, they are never changed.

LLVM Value Representation.

This is an optimization pass for GlobalISel generic memory operations.