[PATCH] D62475: Change DIEnumerator payload type to APInt
l via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon May 27 02:14:56 PDT 2019
LemonBoy created this revision.
Herald added subscribers: llvm-commits, hiraditya, aprantl.
Herald added a project: LLVM.
As briefly discussed on the ML <https://lists.llvm.org/pipermail/llvm-dev/2017-December/119475.html> this patch aims to remove any limitation on the enumerator values.
A few notes:
- In `LLParser::ParseDIEnumerator` there's a mild hack: the reader returns a "tight" integer (eg `0x7FFFFFFF` uses 31 bits) and that makes it sign-extend to `-1`. The solution is to add a leading zero to avoid any ambiguity.
- The value encoding is the same one used for integer constants using > 64 bit, I've recycled the old slot used for the value to hold the bit width and the whole APInt payload is dumped after the name slot.
- The DWARF code emits a DATA references for big constants and (I guess due to point 1) I had to slightly change a single test case.
rG LLVM Github Monorepo
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 10917 bytes
Desc: not available
More information about the llvm-commits