LLVM: include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h Source File (original) (raw)

Go to the documentation of this file.

1

2

3

4

5

6

7

8

9#ifndef LLVM_DEBUGINFO_DWARF_DWARFDEBUGARANGES_H

10#define LLVM_DEBUGINFO_DWARF_DWARFDEBUGARANGES_H

11

14#include

15#include

16

17namespace llvm {

20

22

24public:

27

28private:

29 void clear();

33

34

36 void construct();

37

38 struct Range {

40 : LowPC(LowPC), Length(HighPC - LowPC), CUOffset(CUOffset) {}

41

42 void setHighPC(uint64_t HighPC) {

43 if (HighPC == -1ULL || HighPC <= LowPC)

45 else

46 Length = HighPC - LowPC;

47 }

48

51 return LowPC + Length;

52 return -1ULL;

53 }

54

55 bool operator<(const Range &other) const {

56 return LowPC < other.LowPC;

57 }

58

59 uint64_t LowPC;

60 uint64_t Length;

61 uint64_t CUOffset;

62 };

63

64 struct RangeEndpoint {

67 bool IsRangeStart;

68

70 : Address(Address), CUOffset(CUOffset), IsRangeStart(IsRangeStart) {}

71

74 }

75 };

76

77 using RangeColl = std::vector;

78 using RangeCollIterator = RangeColl::const_iterator;

79

80 std::vector Endpoints;

81 RangeColl Aranges;

83};

84

85}

86

87#endif

This file defines the DenseSet and SmallDenseSet classes.

ConstantRange Range(APInt(BitWidth, Low), APInt(BitWidth, High))

DWARFContext This data structure is the top level entity that deals with dwarf debug information pars...

Definition DWARFDebugAranges.h:23

void generate(DWARFContext *CTX)

uint64_t findAddress(uint64_t Address) const

Implements a dense probed hash-table based set.

Lightweight error class with error context and mandatory checking.

An efficient, type-erasing, non-owning reference to a callable.

This is an optimization pass for GlobalISel generic memory operations.

bool operator<(int64_t V1, const APSInt &V2)