LLVM: include/llvm/DebugInfo/GSYM/ExtractRanges.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9#ifndef LLVM_DEBUGINFO_GSYM_EXTRACTRANGES_H

10#define LLVM_DEBUGINFO_GSYM_EXTRACTRANGES_H

11

16#include <stdint.h>

17

18#define HEX8(v) llvm::format_hex(v, 4)

19#define HEX16(v) llvm::format_hex(v, 6)

20#define HEX32(v) llvm::format_hex(v, 10)

21#define HEX64(v) llvm::format_hex(v, 18)

22

23namespace llvm {

24class DataExtractor;

25class raw_ostream;

26

27namespace gsym {

28

29class FileWriter;

30

31

32

33

34

35

36

37

38

39

44

45

46

47

48

49

50

51

53

54

55

56

57

62

63

64

65

66

67

68

69

70

71

73

74}

75

76LLVM_ABI raw_ostream &operator<<(raw_ostream &OS, const AddressRange &R);

77

78LLVM_ABI raw_ostream &operator<<(raw_ostream &OS, const AddressRanges &AR);

79

80}

81

82#endif

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

LLVM_ABI AddressRange decodeRange(DataExtractor &Data, uint64_t BaseAddr, uint64_t &Offset)

AddressRange objects are encoded and decoded to be relative to a base address.

LLVM_ABI void encodeRanges(const AddressRanges &Ranges, FileWriter &O, uint64_t BaseAddr)

LLVM_ABI void decodeRanges(AddressRanges &Ranges, DataExtractor &Data, uint64_t BaseAddr, uint64_t &Offset)

Address ranges are decoded and encoded to be relative to a base address.

LLVM_ABI uint64_t skipRanges(DataExtractor &Data, uint64_t &Offset)

Skip an address range object in the specified data a the specified offset.

LLVM_ABI void encodeRange(const AddressRange &Range, FileWriter &O, uint64_t BaseAddr)

LLVM_ABI void skipRange(DataExtractor &Data, uint64_t &Offset)

Skip an address range object in the specified data a the specified offset.

This is an optimization pass for GlobalISel generic memory operations.

FunctionAddr VTableAddr uintptr_t uintptr_t Data

raw_ostream & operator<<(raw_ostream &OS, const APFixedPoint &FX)