LLVM: lib/CodeGen/AsmPrinter/DebugLocStream.cpp Source File (original) (raw)

Go to the documentation of this file.

1

2

3

4

5

6

7

8

12

13using namespace llvm;

14

15bool DebugLocStream::finalizeList(AsmPrinter &Asm) {

16 if (Lists.back().EntryOffset == Entries.size()) {

17

18 Lists.pop_back();

19 return false;

20 }

21

22

23 Lists.back().Label = Asm.createTempSymbol("debug_loc");

24 return true;

25}

26

27void DebugLocStream::finalizeEntry() {

28 if (Entries.back().ByteOffset != DWARFBytes.size())

29 return;

30

31

32 Comments.erase(Comments.begin() + Entries.back().CommentOffset,

33 Comments.end());

34 Entries.pop_back();

35

36 assert(Lists.back().EntryOffset <= Entries.size() &&

37 "Popped off more entries than are in the list");

38}

39

41 if (!Locs.finalizeList(Asm))

42 return;

43 V.emplace<Loc::Multi>(ListIndex, TagOffset);

44}

assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())

This class is intended to be used as a driving class for all asm writers.

~ListBuilder()

Finalize the list.

Multi-value location description.

This is an optimization pass for GlobalISel generic memory operations.