<div dir="ltr">This is... pretty objectionable, IMO. This file is not a .def file. It is not a pile of macros. It is C++ code. I really don't like this change. Surely we have a better way to mark headers as non-modular.</div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 27, 2017 at 11:55 AM, David Blaikie via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: dblaikie<br>
Date: Mon Nov 27 11:55:16 2017<br>
New Revision: 319086<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=319086&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=319086&view=rev</a><br>
Log:<br>
Rename MCTargetOptionsCommandFlags.h to .def as it is not a normal/modular header as much as it is for stamping out some global/static variables<br>
<br>
Added:<br>
    llvm/trunk/include/llvm/MC/<wbr>MCTargetOptionsCommandFlags.<wbr>def<br>
      - copied, changed from r319085, llvm/trunk/include/llvm/MC/<wbr>MCTargetOptionsCommandFlags.h<br>
Removed:<br>
    llvm/trunk/include/llvm/MC/<wbr>MCTargetOptionsCommandFlags.h<br>
Modified:<br>
    llvm/trunk/include/llvm/<wbr>CodeGen/CommandFlags.def<br>
    llvm/trunk/tools/dsymutil/<wbr>DwarfLinker.cpp<br>
    llvm/trunk/tools/llvm-dwp/<wbr>llvm-dwp.cpp<br>
    llvm/trunk/tools/llvm-mc-<wbr>assemble-fuzzer/llvm-mc-<wbr>assemble-fuzzer.cpp<br>
    llvm/trunk/tools/llvm-mc/llvm-<wbr>mc.cpp<br>
    llvm/trunk/unittests/<wbr>DebugInfo/DWARF/<wbr>DwarfGenerator.cpp<br>
<br>
Modified: llvm/trunk/include/llvm/<wbr>CodeGen/CommandFlags.def<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/CommandFlags.def?rev=319086&r1=319085&r2=319086&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/include/<wbr>llvm/CodeGen/CommandFlags.def?<wbr>rev=319086&r1=319085&r2=<wbr>319086&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/include/llvm/<wbr>CodeGen/CommandFlags.def (original)<br>
+++ llvm/trunk/include/llvm/<wbr>CodeGen/CommandFlags.def Mon Nov 27 11:55:16 2017<br>
@@ -17,7 +17,7 @@<br>
 #include "llvm/IR/Instructions.h"<br>
 #include "llvm/IR/Intrinsics.h"<br>
 #include "llvm/IR/Module.h"<br>
-#include "llvm/MC/<wbr>MCTargetOptionsCommandFlags.h"<br>
+#include "llvm/MC/<wbr>MCTargetOptionsCommandFlags.<wbr>def"<br>
 #include "llvm/MC/SubtargetFeature.h"<br>
 #include "llvm/Support/CodeGen.h"<br>
 #include "llvm/Support/CommandLine.h"<br>
<br>
Copied: llvm/trunk/include/llvm/MC/<wbr>MCTargetOptionsCommandFlags.<wbr>def (from r319085, llvm/trunk/include/llvm/MC/<wbr>MCTargetOptionsCommandFlags.h)<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCTargetOptionsCommandFlags.def?p2=llvm/trunk/include/llvm/MC/MCTargetOptionsCommandFlags.def&p1=llvm/trunk/include/llvm/MC/MCTargetOptionsCommandFlags.h&r1=319085&r2=319086&rev=319086&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/include/<wbr>llvm/MC/<wbr>MCTargetOptionsCommandFlags.<wbr>def?p2=llvm/trunk/include/<wbr>llvm/MC/<wbr>MCTargetOptionsCommandFlags.<wbr>def&p1=llvm/trunk/include/<wbr>llvm/MC/<wbr>MCTargetOptionsCommandFlags.h&<wbr>r1=319085&r2=319086&rev=<wbr>319086&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/include/llvm/MC/<wbr>MCTargetOptionsCommandFlags.h (original)<br>
+++ llvm/trunk/include/llvm/MC/<wbr>MCTargetOptionsCommandFlags.<wbr>def Mon Nov 27 11:55:16 2017<br>
@@ -19,7 +19,7 @@<br>
 #include "llvm/Support/CommandLine.h"<br>
 using namespace llvm;<br>
<br>
-cl::opt<MCTargetOptions::<wbr>AsmInstrumentation> AsmInstrumentation(<br>
+static cl::opt<MCTargetOptions::<wbr>AsmInstrumentation> AsmInstrumentation(<br>
     "asm-instrumentation", cl::desc("Instrumentation of inline assembly and "<br>
                                     "assembly source files"),<br>
     cl::init(MCTargetOptions::<wbr>AsmInstrumentationNone),<br>
@@ -28,40 +28,40 @@ cl::opt<MCTargetOptions::<wbr>AsmInstrumentat<br>
                clEnumValN(MCTargetOptions::<wbr>AsmInstrumentationAddress, "address",<br>
                           "instrument instructions with memory arguments")));<br>
<br>
-cl::opt<bool> RelaxAll("mc-relax-all",<br>
+static cl::opt<bool> RelaxAll("mc-relax-all",<br>
                        cl::desc("When used with filetype=obj, "<br>
                                 "relax all fixups in the emitted object file"));<br>
<br>
-cl::opt<bool> IncrementalLinkerCompatible(<br>
+static cl::opt<bool> IncrementalLinkerCompatible(<br>
     "incremental-linker-<wbr>compatible",<br>
     cl::desc(<br>
         "When used with filetype=obj, "<br>
         "emit an object file which can be used with an incremental linker"));<br>
<br>
-cl::opt<bool> PIECopyRelocations("pie-copy-<wbr>relocations", cl::desc("PIE Copy Relocations"));<br>
+static cl::opt<bool> PIECopyRelocations("pie-copy-<wbr>relocations", cl::desc("PIE Copy Relocations"));<br>
<br>
-cl::opt<int> DwarfVersion("dwarf-version", cl::desc("Dwarf version"),<br>
+static cl::opt<int> DwarfVersion("dwarf-version", cl::desc("Dwarf version"),<br>
                           cl::init(0));<br>
<br>
-cl::opt<bool> ShowMCInst("asm-show-inst",<br>
+static cl::opt<bool> ShowMCInst("asm-show-inst",<br>
                          cl::desc("Emit internal instruction representation to "<br>
                                   "assembly file"));<br>
<br>
-cl::opt<bool> FatalWarnings("fatal-warnings"<wbr>,<br>
+static cl::opt<bool> FatalWarnings("fatal-warnings"<wbr>,<br>
                             cl::desc("Treat warnings as errors"));<br>
<br>
-cl::opt<bool> NoWarn("no-warn", cl::desc("Suppress all warnings"));<br>
-cl::alias NoWarnW("W", cl::desc("Alias for --no-warn"), cl::aliasopt(NoWarn));<br>
+static cl::opt<bool> NoWarn("no-warn", cl::desc("Suppress all warnings"));<br>
+static cl::alias NoWarnW("W", cl::desc("Alias for --no-warn"), cl::aliasopt(NoWarn));<br>
<br>
-cl::opt<bool> NoDeprecatedWarn("no-<wbr>deprecated-warn",<br>
+static cl::opt<bool> NoDeprecatedWarn("no-<wbr>deprecated-warn",<br>
                                cl::desc("Suppress all deprecated warnings"));<br>
<br>
-cl::opt<std::string><br>
+static cl::opt<std::string><br>
 ABIName("target-abi", cl::Hidden,<br>
         cl::desc("The name of the ABI to be targeted from the backend."),<br>
         cl::init(""));<br>
<br>
-static inline MCTargetOptions InitMCTargetOptionsFromFlags() {<br>
+static MCTargetOptions InitMCTargetOptionsFromFlags() {<br>
   MCTargetOptions Options;<br>
   Options.SanitizeAddress =<br>
       (AsmInstrumentation == MCTargetOptions::<wbr>AsmInstrumentationAddress);<br>
<br>
Removed: llvm/trunk/include/llvm/MC/<wbr>MCTargetOptionsCommandFlags.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCTargetOptionsCommandFlags.h?rev=319085&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/include/<wbr>llvm/MC/<wbr>MCTargetOptionsCommandFlags.h?<wbr>rev=319085&view=auto</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/include/llvm/MC/<wbr>MCTargetOptionsCommandFlags.h (original)<br>
+++ llvm/trunk/include/llvm/MC/<wbr>MCTargetOptionsCommandFlags.h (removed)<br>
@@ -1,80 +0,0 @@<br>
-//===-- MCTargetOptionsCommandFlags.h --------------------------*- C++ -*-===//<br>
-//<br>
-//                     The LLVM Compiler Infrastructure<br>
-//<br>
-// This file is distributed under the University of Illinois Open Source<br>
-// License. See LICENSE.TXT for details.<br>
-//<br>
-//===------------------------<wbr>------------------------------<wbr>----------------===//<br>
-//<br>
-// This file contains machine code-specific flags that are shared between<br>
-// different command line tools.<br>
-//<br>
-//===------------------------<wbr>------------------------------<wbr>----------------===//<br>
-<br>
-#ifndef LLVM_MC_<wbr>MCTARGETOPTIONSCOMMANDFLAGS_H<br>
-#define LLVM_MC_<wbr>MCTARGETOPTIONSCOMMANDFLAGS_H<br>
-<br>
-#include "llvm/MC/MCTargetOptions.h"<br>
-#include "llvm/Support/CommandLine.h"<br>
-using namespace llvm;<br>
-<br>
-cl::opt<MCTargetOptions::<wbr>AsmInstrumentation> AsmInstrumentation(<br>
-    "asm-instrumentation", cl::desc("Instrumentation of inline assembly and "<br>
-                                    "assembly source files"),<br>
-    cl::init(MCTargetOptions::<wbr>AsmInstrumentationNone),<br>
-    cl::values(clEnumValN(<wbr>MCTargetOptions::<wbr>AsmInstrumentationNone, "none",<br>
-                          "no instrumentation at all"),<br>
-               clEnumValN(MCTargetOptions::<wbr>AsmInstrumentationAddress, "address",<br>
-                          "instrument instructions with memory arguments")));<br>
-<br>
-cl::opt<bool> RelaxAll("mc-relax-all",<br>
-                       cl::desc("When used with filetype=obj, "<br>
-                                "relax all fixups in the emitted object file"));<br>
-<br>
-cl::opt<bool> IncrementalLinkerCompatible(<br>
-    "incremental-linker-<wbr>compatible",<br>
-    cl::desc(<br>
-        "When used with filetype=obj, "<br>
-        "emit an object file which can be used with an incremental linker"));<br>
-<br>
-cl::opt<bool> PIECopyRelocations("pie-copy-<wbr>relocations", cl::desc("PIE Copy Relocations"));<br>
-<br>
-cl::opt<int> DwarfVersion("dwarf-version", cl::desc("Dwarf version"),<br>
-                          cl::init(0));<br>
-<br>
-cl::opt<bool> ShowMCInst("asm-show-inst",<br>
-                         cl::desc("Emit internal instruction representation to "<br>
-                                  "assembly file"));<br>
-<br>
-cl::opt<bool> FatalWarnings("fatal-warnings"<wbr>,<br>
-                            cl::desc("Treat warnings as errors"));<br>
-<br>
-cl::opt<bool> NoWarn("no-warn", cl::desc("Suppress all warnings"));<br>
-cl::alias NoWarnW("W", cl::desc("Alias for --no-warn"), cl::aliasopt(NoWarn));<br>
-<br>
-cl::opt<bool> NoDeprecatedWarn("no-<wbr>deprecated-warn",<br>
-                               cl::desc("Suppress all deprecated warnings"));<br>
-<br>
-cl::opt<std::string><br>
-ABIName("target-abi", cl::Hidden,<br>
-        cl::desc("The name of the ABI to be targeted from the backend."),<br>
-        cl::init(""));<br>
-<br>
-static inline MCTargetOptions InitMCTargetOptionsFromFlags() {<br>
-  MCTargetOptions Options;<br>
-  Options.SanitizeAddress =<br>
-      (AsmInstrumentation == MCTargetOptions::<wbr>AsmInstrumentationAddress);<br>
-  Options.MCRelaxAll = RelaxAll;<br>
-  Options.<wbr>MCIncrementalLinkerCompatible = IncrementalLinkerCompatible;<br>
-  Options.MCPIECopyRelocations = PIECopyRelocations;<br>
-  Options.DwarfVersion = DwarfVersion;<br>
-  Options.ShowMCInst = ShowMCInst;<br>
-  Options.ABIName = ABIName;<br>
-  Options.MCFatalWarnings = FatalWarnings;<br>
-  Options.MCNoWarn = NoWarn;<br>
-  Options.MCNoDeprecatedWarn = NoDeprecatedWarn;<br>
-  return Options;<br>
-}<br>
-<br>
-#endif<br>
<br>
Modified: llvm/trunk/tools/dsymutil/<wbr>DwarfLinker.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/dsymutil/DwarfLinker.cpp?rev=319086&r1=319085&r2=319086&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/tools/<wbr>dsymutil/DwarfLinker.cpp?rev=<wbr>319086&r1=319085&r2=319086&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/tools/dsymutil/<wbr>DwarfLinker.cpp (original)<br>
+++ llvm/trunk/tools/dsymutil/<wbr>DwarfLinker.cpp Mon Nov 27 11:55:16 2017<br>
@@ -55,7 +55,7 @@<br>
 #include "llvm/MC/MCStreamer.h"<br>
 #include "llvm/MC/MCSubtargetInfo.h"<br>
 #include "llvm/MC/MCTargetOptions.h"<br>
-#include "llvm/MC/<wbr>MCTargetOptionsCommandFlags.h"<br>
+#include "llvm/MC/<wbr>MCTargetOptionsCommandFlags.<wbr>def"<br>
 #include "llvm/Object/MachO.h"<br>
 #include "llvm/Object/ObjectFile.h"<br>
 #include "llvm/Object/SymbolicFile.h"<br>
<br>
Modified: llvm/trunk/tools/llvm-dwp/<wbr>llvm-dwp.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-dwp/llvm-dwp.cpp?rev=319086&r1=319085&r2=319086&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/tools/llvm-<wbr>dwp/llvm-dwp.cpp?rev=319086&<wbr>r1=319085&r2=319086&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/tools/llvm-dwp/<wbr>llvm-dwp.cpp (original)<br>
+++ llvm/trunk/tools/llvm-dwp/<wbr>llvm-dwp.cpp Mon Nov 27 11:55:16 2017<br>
@@ -29,7 +29,7 @@<br>
 #include "llvm/MC/MCRegisterInfo.h"<br>
 #include "llvm/MC/MCSectionELF.h"<br>
 #include "llvm/MC/MCStreamer.h"<br>
-#include "llvm/MC/<wbr>MCTargetOptionsCommandFlags.h"<br>
+#include "llvm/MC/<wbr>MCTargetOptionsCommandFlags.<wbr>def"<br>
 #include "llvm/Object/Decompressor.h"<br>
 #include "llvm/Object/ObjectFile.h"<br>
 #include "llvm/Support/Compression.h"<br>
<br>
Modified: llvm/trunk/tools/llvm-mc-<wbr>assemble-fuzzer/llvm-mc-<wbr>assemble-fuzzer.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mc-assemble-fuzzer/llvm-mc-assemble-fuzzer.cpp?rev=319086&r1=319085&r2=319086&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/tools/llvm-<wbr>mc-assemble-fuzzer/llvm-mc-<wbr>assemble-fuzzer.cpp?rev=<wbr>319086&r1=319085&r2=319086&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/tools/llvm-mc-<wbr>assemble-fuzzer/llvm-mc-<wbr>assemble-fuzzer.cpp (original)<br>
+++ llvm/trunk/tools/llvm-mc-<wbr>assemble-fuzzer/llvm-mc-<wbr>assemble-fuzzer.cpp Mon Nov 27 11:55:16 2017<br>
@@ -24,7 +24,7 @@<br>
 #include "llvm/MC/MCSectionMachO.h"<br>
 #include "llvm/MC/MCStreamer.h"<br>
 #include "llvm/MC/MCSubtargetInfo.h"<br>
-#include "llvm/MC/<wbr>MCTargetOptionsCommandFlags.h"<br>
+#include "llvm/MC/<wbr>MCTargetOptionsCommandFlags.<wbr>def"<br>
 #include "llvm/Support/MemoryBuffer.h"<br>
 #include "llvm/Support/CommandLine.h"<br>
 #include "llvm/Support/FileUtilities.h"<br>
<br>
Modified: llvm/trunk/tools/llvm-mc/llvm-<wbr>mc.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mc/llvm-mc.cpp?rev=319086&r1=319085&r2=319086&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/tools/llvm-<wbr>mc/llvm-mc.cpp?rev=319086&r1=<wbr>319085&r2=319086&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/tools/llvm-mc/llvm-<wbr>mc.cpp (original)<br>
+++ llvm/trunk/tools/llvm-mc/llvm-<wbr>mc.cpp Mon Nov 27 11:55:16 2017<br>
@@ -26,7 +26,7 @@<br>
 #include "llvm/MC/MCSectionMachO.h"<br>
 #include "llvm/MC/MCStreamer.h"<br>
 #include "llvm/MC/MCSubtargetInfo.h"<br>
-#include "llvm/MC/<wbr>MCTargetOptionsCommandFlags.h"<br>
+#include "llvm/MC/<wbr>MCTargetOptionsCommandFlags.<wbr>def"<br>
 #include "llvm/Support/CommandLine.h"<br>
 #include "llvm/Support/Compression.h"<br>
 #include "llvm/Support/FileUtilities.h"<br>
<br>
Modified: llvm/trunk/unittests/<wbr>DebugInfo/DWARF/<wbr>DwarfGenerator.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/DebugInfo/DWARF/DwarfGenerator.cpp?rev=319086&r1=319085&r2=319086&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/unittests/<wbr>DebugInfo/DWARF/<wbr>DwarfGenerator.cpp?rev=319086&<wbr>r1=319085&r2=319086&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/unittests/<wbr>DebugInfo/DWARF/<wbr>DwarfGenerator.cpp (original)<br>
+++ llvm/trunk/unittests/<wbr>DebugInfo/DWARF/<wbr>DwarfGenerator.cpp Mon Nov 27 11:55:16 2017<br>
@@ -27,7 +27,7 @@<br>
 #include "llvm/MC/MCRegisterInfo.h"<br>
 #include "llvm/MC/MCStreamer.h"<br>
 #include "llvm/MC/MCSubtargetInfo.h"<br>
-#include "llvm/MC/<wbr>MCTargetOptionsCommandFlags.h"<br>
+#include "llvm/MC/<wbr>MCTargetOptionsCommandFlags.<wbr>def"<br>
 #include "llvm/PassAnalysisSupport.h"<br>
 #include "llvm/Support/LEB128.h"<br>
 #include "llvm/Support/TargetRegistry.<wbr>h"<br>
@@ -155,8 +155,8 @@ llvm::Error dwarfgen::Generator::init(Tr<br>
   MC.reset(new MCContext(MAI.get(), MRI.get(), MOFI.get()));<br>
   MOFI->InitMCObjectFileInfo(<wbr>TheTriple, /*PIC*/ false, *MC);<br>
<br>
-  MCTargetOptions Options;<br>
-  MAB = TheTarget->createMCAsmBackend(<wbr>*MRI, TripleName, "", Options);<br>
+  MCTargetOptions MCOptions = InitMCTargetOptionsFromFlags()<wbr>;<br>
+  MAB = TheTarget->createMCAsmBackend(<wbr>*MRI, TripleName, "", MCOptions);<br>
   if (!MAB)<br>
     return make_error<StringError>("no asm backend for target " + TripleName,<br>
                                    inconvertibleErrorCode());<br>
@@ -179,7 +179,6 @@ llvm::Error dwarfgen::Generator::init(Tr<br>
<br>
   Stream = make_unique<raw_svector_<wbr>ostream>(FileBytes);<br>
<br>
-  MCTargetOptions MCOptions = InitMCTargetOptionsFromFlags()<wbr>;<br>
   MS = TheTarget-><wbr>createMCObjectStreamer(<br>
       TheTriple, *MC, std::unique_ptr<MCAsmBackend>(<wbr>MAB), *Stream,<br>
       std::unique_ptr<MCCodeEmitter><wbr>(MCE), *MSTI, MCOptions.MCRelaxAll,<br>
<br>
<br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>