<div dir="ltr">(this seems fine & I Guess it was approved as a spin-off from another review - but could you ensure the Differential Revision field is included so commits can be traced back to their review, etc?</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Mar 7, 2020 at 4:23 AM Sourabh Singh Tomar via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Author: Sourabh Singh Tomar<br>
Date: 2020-03-07T17:53:01+05:30<br>
New Revision: 498e37e786ea2632b1c8596ad2512c306b3c8f58<br>
<br>
URL: <a href="https://github.com/llvm/llvm-project/commit/498e37e786ea2632b1c8596ad2512c306b3c8f58" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/commit/498e37e786ea2632b1c8596ad2512c306b3c8f58</a><br>
DIFF: <a href="https://github.com/llvm/llvm-project/commit/498e37e786ea2632b1c8596ad2512c306b3c8f58.diff" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/commit/498e37e786ea2632b1c8596ad2512c306b3c8f58.diff</a><br>
<br>
LOG: [DebugInfo]: Added DWARFv5 macro header flags and corresponding helper<br>
functions.<br>
<br>
Added: <br>
<br>
<br>
Modified: <br>
llvm/include/llvm/BinaryFormat/Dwarf.def<br>
llvm/include/llvm/BinaryFormat/Dwarf.h<br>
llvm/lib/BinaryFormat/Dwarf.cpp<br>
<br>
Removed: <br>
<br>
<br>
<br>
################################################################################<br>
diff --git a/llvm/include/llvm/BinaryFormat/Dwarf.def b/llvm/include/llvm/BinaryFormat/Dwarf.def<br>
index 3faf3be65032..5f744fc2ad25 100644<br>
--- a/llvm/include/llvm/BinaryFormat/Dwarf.def<br>
+++ b/llvm/include/llvm/BinaryFormat/Dwarf.def<br>
@@ -17,6 +17,7 @@<br>
defined HANDLE_DW_VIRTUALITY || defined HANDLE_DW_DEFAULTED || \<br>
defined HANDLE_DW_CC || defined HANDLE_DW_LNS || defined HANDLE_DW_LNE || \<br>
defined HANDLE_DW_LNCT || defined HANDLE_DW_MACRO || \<br>
+ defined HANDLE_MACRO_FLAG || \<br>
defined HANDLE_DW_RLE || defined HANDLE_DW_LLE || \<br>
(defined HANDLE_DW_CFA && defined HANDLE_DW_CFA_PRED) || \<br>
defined HANDLE_DW_APPLE_PROPERTY || defined HANDLE_DW_UT || \<br>
@@ -87,6 +88,10 @@<br>
#define HANDLE_DW_MACRO(ID, NAME)<br>
#endif<br>
<br>
+#ifndef HANDLE_MACRO_FLAG<br>
+#define HANDLE_MACRO_FLAG(ID, NAME)<br>
+#endif<br>
+<br>
#ifndef HANDLE_DW_RLE<br>
#define HANDLE_DW_RLE(ID, NAME)<br>
#endif<br>
@@ -822,6 +827,11 @@ HANDLE_DW_MACRO(0x0a, import_sup)<br>
HANDLE_DW_MACRO(0x0b, define_strx)<br>
HANDLE_DW_MACRO(0x0c, undef_strx)<br>
<br>
+// DWARF v5 Macro header flags.<br>
+HANDLE_MACRO_FLAG(0x01, OFFSET_SIZE)<br>
+HANDLE_MACRO_FLAG(0x02, DEBUG_LINE_OFFSET)<br>
+HANDLE_MACRO_FLAG(0x04, OPCODE_OPERANDS_TABLE)<br>
+<br>
// DWARF v5 Range List Entry encoding values.<br>
HANDLE_DW_RLE(0x00, end_of_list)<br>
HANDLE_DW_RLE(0x01, base_addressx)<br>
@@ -956,6 +966,7 @@ HANDLE_DW_IDX(0x05, type_hash)<br>
#undef HANDLE_DW_LNE<br>
#undef HANDLE_DW_LNCT<br>
#undef HANDLE_DW_MACRO<br>
+#undef HANDLE_MACRO_FLAG<br>
#undef HANDLE_DW_RLE<br>
#undef HANDLE_DW_LLE<br>
#undef HANDLE_DW_CFA<br>
<br>
diff --git a/llvm/include/llvm/BinaryFormat/Dwarf.h b/llvm/include/llvm/BinaryFormat/Dwarf.h<br>
index 27747300f229..45a3fc98d4b5 100644<br>
--- a/llvm/include/llvm/BinaryFormat/Dwarf.h<br>
+++ b/llvm/include/llvm/BinaryFormat/Dwarf.h<br>
@@ -470,6 +470,7 @@ StringRef ArrayOrderString(unsigned Order);<br>
StringRef LNStandardString(unsigned Standard);<br>
StringRef LNExtendedString(unsigned Encoding);<br>
StringRef MacinfoString(unsigned Encoding);<br>
+StringRef MacroString(unsigned Encoding);<br>
StringRef RangeListEncodingString(unsigned Encoding);<br>
StringRef LocListEncodingString(unsigned Encoding);<br>
StringRef CallFrameString(unsigned Encoding, Triple::ArchType Arch);<br>
@@ -498,6 +499,7 @@ unsigned getLanguage(StringRef LanguageString);<br>
unsigned getCallingConvention(StringRef LanguageString);<br>
unsigned getAttributeEncoding(StringRef EncodingString);<br>
unsigned getMacinfo(StringRef MacinfoString);<br>
+unsigned getMacro(StringRef MacroString);<br>
/// @}<br>
<br>
/// \defgroup DwarfConstantsVersioning Dwarf version for constants<br>
<br>
diff --git a/llvm/lib/BinaryFormat/Dwarf.cpp b/llvm/lib/BinaryFormat/Dwarf.cpp<br>
index c3da0e2c4312..30c7e9c311b0 100644<br>
--- a/llvm/lib/BinaryFormat/Dwarf.cpp<br>
+++ b/llvm/lib/BinaryFormat/Dwarf.cpp<br>
@@ -477,6 +477,23 @@ unsigned llvm::dwarf::getMacinfo(StringRef MacinfoString) {<br>
.Default(DW_MACINFO_invalid);<br>
}<br>
<br>
+StringRef llvm::dwarf::MacroString(unsigned Encoding) {<br>
+ switch (Encoding) {<br>
+ default:<br>
+ return StringRef();<br>
+#define HANDLE_DW_MACRO(ID, NAME) \<br>
+ case DW_MACRO_##NAME: \<br>
+ return "DW_MACRO_" #NAME;<br>
+#include "llvm/BinaryFormat/Dwarf.def"<br>
+ }<br>
+}<br>
+<br>
+unsigned llvm::dwarf::getMacro(StringRef MacroString) {<br>
+ return StringSwitch<unsigned>(MacroString)<br>
+#define HANDLE_DW_MACRO(ID, NAME) .Case("DW_MACRO_" #NAME, ID)<br>
+#include "llvm/BinaryFormat/Dwarf.def"<br>
+ .Default(DW_MACINFO_invalid);<br>
+}<br>
StringRef llvm::dwarf::RangeListEncodingString(unsigned Encoding) {<br>
switch (Encoding) {<br>
default:<br>
<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>