<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>