[llvm] r319086 - 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

David Blaikie via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 30 14:33:13 PST 2017


It's not a header file though, either, right? It can't be/isn't intended to
be included in multiple files in the same program? It's code to be stamped
out, rather than a header, as such.

My understanding was ".def" (or perhaps ".inc" would be a more suitable
extension?) files were for that purpose, so I was/am working on migrating
cases where we use a header in a way that's not really header-y to a
distinct extension to make that explicit (& simplify module config files -
so there's not a separate list of non-modular headers, but they can be more
simply identified by file extension - also useful for developers to realize
what they're interacting with).

- Dave

On Thu, Nov 30, 2017 at 2:29 PM Reid Kleckner <rnk at google.com> wrote:

> 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.
>
> On Mon, Nov 27, 2017 at 11:55 AM, David Blaikie via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>> Author: dblaikie
>> Date: Mon Nov 27 11:55:16 2017
>> New Revision: 319086
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=319086&view=rev
>> Log:
>> 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
>>
>> Added:
>>     llvm/trunk/include/llvm/MC/MCTargetOptionsCommandFlags.def
>>       - copied, changed from r319085,
>> llvm/trunk/include/llvm/MC/MCTargetOptionsCommandFlags.h
>> Removed:
>>     llvm/trunk/include/llvm/MC/MCTargetOptionsCommandFlags.h
>> Modified:
>>     llvm/trunk/include/llvm/CodeGen/CommandFlags.def
>>     llvm/trunk/tools/dsymutil/DwarfLinker.cpp
>>     llvm/trunk/tools/llvm-dwp/llvm-dwp.cpp
>>     llvm/trunk/tools/llvm-mc-assemble-fuzzer/llvm-mc-assemble-fuzzer.cpp
>>     llvm/trunk/tools/llvm-mc/llvm-mc.cpp
>>     llvm/trunk/unittests/DebugInfo/DWARF/DwarfGenerator.cpp
>>
>> Modified: llvm/trunk/include/llvm/CodeGen/CommandFlags.def
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/CommandFlags.def?rev=319086&r1=319085&r2=319086&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/include/llvm/CodeGen/CommandFlags.def (original)
>> +++ llvm/trunk/include/llvm/CodeGen/CommandFlags.def Mon Nov 27 11:55:16
>> 2017
>> @@ -17,7 +17,7 @@
>>  #include "llvm/IR/Instructions.h"
>>  #include "llvm/IR/Intrinsics.h"
>>  #include "llvm/IR/Module.h"
>> -#include "llvm/MC/MCTargetOptionsCommandFlags.h"
>> +#include "llvm/MC/MCTargetOptionsCommandFlags.def"
>>  #include "llvm/MC/SubtargetFeature.h"
>>  #include "llvm/Support/CodeGen.h"
>>  #include "llvm/Support/CommandLine.h"
>>
>> Copied: llvm/trunk/include/llvm/MC/MCTargetOptionsCommandFlags.def (from
>> r319085, llvm/trunk/include/llvm/MC/MCTargetOptionsCommandFlags.h)
>> URL:
>> 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
>>
>> ==============================================================================
>> --- llvm/trunk/include/llvm/MC/MCTargetOptionsCommandFlags.h (original)
>> +++ llvm/trunk/include/llvm/MC/MCTargetOptionsCommandFlags.def Mon Nov 27
>> 11:55:16 2017
>> @@ -19,7 +19,7 @@
>>  #include "llvm/Support/CommandLine.h"
>>  using namespace llvm;
>>
>> -cl::opt<MCTargetOptions::AsmInstrumentation> AsmInstrumentation(
>> +static cl::opt<MCTargetOptions::AsmInstrumentation> AsmInstrumentation(
>>      "asm-instrumentation", cl::desc("Instrumentation of inline assembly
>> and "
>>                                      "assembly source files"),
>>      cl::init(MCTargetOptions::AsmInstrumentationNone),
>> @@ -28,40 +28,40 @@ cl::opt<MCTargetOptions::AsmInstrumentat
>>                 clEnumValN(MCTargetOptions::AsmInstrumentationAddress,
>> "address",
>>                            "instrument instructions with memory
>> arguments")));
>>
>> -cl::opt<bool> RelaxAll("mc-relax-all",
>> +static cl::opt<bool> RelaxAll("mc-relax-all",
>>                         cl::desc("When used with filetype=obj, "
>>                                  "relax all fixups in the emitted object
>> file"));
>>
>> -cl::opt<bool> IncrementalLinkerCompatible(
>> +static cl::opt<bool> IncrementalLinkerCompatible(
>>      "incremental-linker-compatible",
>>      cl::desc(
>>          "When used with filetype=obj, "
>>          "emit an object file which can be used with an incremental
>> linker"));
>>
>> -cl::opt<bool> PIECopyRelocations("pie-copy-relocations", cl::desc("PIE
>> Copy Relocations"));
>> +static cl::opt<bool> PIECopyRelocations("pie-copy-relocations",
>> cl::desc("PIE Copy Relocations"));
>>
>> -cl::opt<int> DwarfVersion("dwarf-version", cl::desc("Dwarf version"),
>> +static cl::opt<int> DwarfVersion("dwarf-version", cl::desc("Dwarf
>> version"),
>>                            cl::init(0));
>>
>> -cl::opt<bool> ShowMCInst("asm-show-inst",
>> +static cl::opt<bool> ShowMCInst("asm-show-inst",
>>                           cl::desc("Emit internal instruction
>> representation to "
>>                                    "assembly file"));
>>
>> -cl::opt<bool> FatalWarnings("fatal-warnings",
>> +static cl::opt<bool> FatalWarnings("fatal-warnings",
>>                              cl::desc("Treat warnings as errors"));
>>
>> -cl::opt<bool> NoWarn("no-warn", cl::desc("Suppress all warnings"));
>> -cl::alias NoWarnW("W", cl::desc("Alias for --no-warn"),
>> cl::aliasopt(NoWarn));
>> +static cl::opt<bool> NoWarn("no-warn", cl::desc("Suppress all
>> warnings"));
>> +static cl::alias NoWarnW("W", cl::desc("Alias for --no-warn"),
>> cl::aliasopt(NoWarn));
>>
>> -cl::opt<bool> NoDeprecatedWarn("no-deprecated-warn",
>> +static cl::opt<bool> NoDeprecatedWarn("no-deprecated-warn",
>>                                 cl::desc("Suppress all deprecated
>> warnings"));
>>
>> -cl::opt<std::string>
>> +static cl::opt<std::string>
>>  ABIName("target-abi", cl::Hidden,
>>          cl::desc("The name of the ABI to be targeted from the backend."),
>>          cl::init(""));
>>
>> -static inline MCTargetOptions InitMCTargetOptionsFromFlags() {
>> +static MCTargetOptions InitMCTargetOptionsFromFlags() {
>>    MCTargetOptions Options;
>>    Options.SanitizeAddress =
>>        (AsmInstrumentation == MCTargetOptions::AsmInstrumentationAddress);
>>
>> Removed: llvm/trunk/include/llvm/MC/MCTargetOptionsCommandFlags.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCTargetOptionsCommandFlags.h?rev=319085&view=auto
>>
>> ==============================================================================
>> --- llvm/trunk/include/llvm/MC/MCTargetOptionsCommandFlags.h (original)
>> +++ llvm/trunk/include/llvm/MC/MCTargetOptionsCommandFlags.h (removed)
>> @@ -1,80 +0,0 @@
>> -//===-- MCTargetOptionsCommandFlags.h --------------------------*- C++
>> -*-===//
>> -//
>> -//                     The LLVM Compiler Infrastructure
>> -//
>> -// This file is distributed under the University of Illinois Open Source
>> -// License. See LICENSE.TXT for details.
>> -//
>>
>> -//===----------------------------------------------------------------------===//
>> -//
>> -// This file contains machine code-specific flags that are shared between
>> -// different command line tools.
>> -//
>>
>> -//===----------------------------------------------------------------------===//
>> -
>> -#ifndef LLVM_MC_MCTARGETOPTIONSCOMMANDFLAGS_H
>> -#define LLVM_MC_MCTARGETOPTIONSCOMMANDFLAGS_H
>> -
>> -#include "llvm/MC/MCTargetOptions.h"
>> -#include "llvm/Support/CommandLine.h"
>> -using namespace llvm;
>> -
>> -cl::opt<MCTargetOptions::AsmInstrumentation> AsmInstrumentation(
>> -    "asm-instrumentation", cl::desc("Instrumentation of inline assembly
>> and "
>> -                                    "assembly source files"),
>> -    cl::init(MCTargetOptions::AsmInstrumentationNone),
>> -    cl::values(clEnumValN(MCTargetOptions::AsmInstrumentationNone,
>> "none",
>> -                          "no instrumentation at all"),
>> -               clEnumValN(MCTargetOptions::AsmInstrumentationAddress,
>> "address",
>> -                          "instrument instructions with memory
>> arguments")));
>> -
>> -cl::opt<bool> RelaxAll("mc-relax-all",
>> -                       cl::desc("When used with filetype=obj, "
>> -                                "relax all fixups in the emitted object
>> file"));
>> -
>> -cl::opt<bool> IncrementalLinkerCompatible(
>> -    "incremental-linker-compatible",
>> -    cl::desc(
>> -        "When used with filetype=obj, "
>> -        "emit an object file which can be used with an incremental
>> linker"));
>> -
>> -cl::opt<bool> PIECopyRelocations("pie-copy-relocations", cl::desc("PIE
>> Copy Relocations"));
>> -
>> -cl::opt<int> DwarfVersion("dwarf-version", cl::desc("Dwarf version"),
>> -                          cl::init(0));
>> -
>> -cl::opt<bool> ShowMCInst("asm-show-inst",
>> -                         cl::desc("Emit internal instruction
>> representation to "
>> -                                  "assembly file"));
>> -
>> -cl::opt<bool> FatalWarnings("fatal-warnings",
>> -                            cl::desc("Treat warnings as errors"));
>> -
>> -cl::opt<bool> NoWarn("no-warn", cl::desc("Suppress all warnings"));
>> -cl::alias NoWarnW("W", cl::desc("Alias for --no-warn"),
>> cl::aliasopt(NoWarn));
>> -
>> -cl::opt<bool> NoDeprecatedWarn("no-deprecated-warn",
>> -                               cl::desc("Suppress all deprecated
>> warnings"));
>> -
>> -cl::opt<std::string>
>> -ABIName("target-abi", cl::Hidden,
>> -        cl::desc("The name of the ABI to be targeted from the backend."),
>> -        cl::init(""));
>> -
>> -static inline MCTargetOptions InitMCTargetOptionsFromFlags() {
>> -  MCTargetOptions Options;
>> -  Options.SanitizeAddress =
>> -      (AsmInstrumentation == MCTargetOptions::AsmInstrumentationAddress);
>> -  Options.MCRelaxAll = RelaxAll;
>> -  Options.MCIncrementalLinkerCompatible = IncrementalLinkerCompatible;
>> -  Options.MCPIECopyRelocations = PIECopyRelocations;
>> -  Options.DwarfVersion = DwarfVersion;
>> -  Options.ShowMCInst = ShowMCInst;
>> -  Options.ABIName = ABIName;
>> -  Options.MCFatalWarnings = FatalWarnings;
>> -  Options.MCNoWarn = NoWarn;
>> -  Options.MCNoDeprecatedWarn = NoDeprecatedWarn;
>> -  return Options;
>> -}
>> -
>> -#endif
>>
>> Modified: llvm/trunk/tools/dsymutil/DwarfLinker.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/dsymutil/DwarfLinker.cpp?rev=319086&r1=319085&r2=319086&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/tools/dsymutil/DwarfLinker.cpp (original)
>> +++ llvm/trunk/tools/dsymutil/DwarfLinker.cpp Mon Nov 27 11:55:16 2017
>> @@ -55,7 +55,7 @@
>>  #include "llvm/MC/MCStreamer.h"
>>  #include "llvm/MC/MCSubtargetInfo.h"
>>  #include "llvm/MC/MCTargetOptions.h"
>> -#include "llvm/MC/MCTargetOptionsCommandFlags.h"
>> +#include "llvm/MC/MCTargetOptionsCommandFlags.def"
>>  #include "llvm/Object/MachO.h"
>>  #include "llvm/Object/ObjectFile.h"
>>  #include "llvm/Object/SymbolicFile.h"
>>
>> Modified: llvm/trunk/tools/llvm-dwp/llvm-dwp.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-dwp/llvm-dwp.cpp?rev=319086&r1=319085&r2=319086&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/tools/llvm-dwp/llvm-dwp.cpp (original)
>> +++ llvm/trunk/tools/llvm-dwp/llvm-dwp.cpp Mon Nov 27 11:55:16 2017
>> @@ -29,7 +29,7 @@
>>  #include "llvm/MC/MCRegisterInfo.h"
>>  #include "llvm/MC/MCSectionELF.h"
>>  #include "llvm/MC/MCStreamer.h"
>> -#include "llvm/MC/MCTargetOptionsCommandFlags.h"
>> +#include "llvm/MC/MCTargetOptionsCommandFlags.def"
>>  #include "llvm/Object/Decompressor.h"
>>  #include "llvm/Object/ObjectFile.h"
>>  #include "llvm/Support/Compression.h"
>>
>> Modified:
>> llvm/trunk/tools/llvm-mc-assemble-fuzzer/llvm-mc-assemble-fuzzer.cpp
>> URL:
>> 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
>>
>> ==============================================================================
>> --- llvm/trunk/tools/llvm-mc-assemble-fuzzer/llvm-mc-assemble-fuzzer.cpp
>> (original)
>> +++ llvm/trunk/tools/llvm-mc-assemble-fuzzer/llvm-mc-assemble-fuzzer.cpp
>> Mon Nov 27 11:55:16 2017
>> @@ -24,7 +24,7 @@
>>  #include "llvm/MC/MCSectionMachO.h"
>>  #include "llvm/MC/MCStreamer.h"
>>  #include "llvm/MC/MCSubtargetInfo.h"
>> -#include "llvm/MC/MCTargetOptionsCommandFlags.h"
>> +#include "llvm/MC/MCTargetOptionsCommandFlags.def"
>>  #include "llvm/Support/MemoryBuffer.h"
>>  #include "llvm/Support/CommandLine.h"
>>  #include "llvm/Support/FileUtilities.h"
>>
>> Modified: llvm/trunk/tools/llvm-mc/llvm-mc.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mc/llvm-mc.cpp?rev=319086&r1=319085&r2=319086&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/tools/llvm-mc/llvm-mc.cpp (original)
>> +++ llvm/trunk/tools/llvm-mc/llvm-mc.cpp Mon Nov 27 11:55:16 2017
>> @@ -26,7 +26,7 @@
>>  #include "llvm/MC/MCSectionMachO.h"
>>  #include "llvm/MC/MCStreamer.h"
>>  #include "llvm/MC/MCSubtargetInfo.h"
>> -#include "llvm/MC/MCTargetOptionsCommandFlags.h"
>> +#include "llvm/MC/MCTargetOptionsCommandFlags.def"
>>  #include "llvm/Support/CommandLine.h"
>>  #include "llvm/Support/Compression.h"
>>  #include "llvm/Support/FileUtilities.h"
>>
>> Modified: llvm/trunk/unittests/DebugInfo/DWARF/DwarfGenerator.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/DebugInfo/DWARF/DwarfGenerator.cpp?rev=319086&r1=319085&r2=319086&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/unittests/DebugInfo/DWARF/DwarfGenerator.cpp (original)
>> +++ llvm/trunk/unittests/DebugInfo/DWARF/DwarfGenerator.cpp Mon Nov 27
>> 11:55:16 2017
>> @@ -27,7 +27,7 @@
>>  #include "llvm/MC/MCRegisterInfo.h"
>>  #include "llvm/MC/MCStreamer.h"
>>  #include "llvm/MC/MCSubtargetInfo.h"
>> -#include "llvm/MC/MCTargetOptionsCommandFlags.h"
>> +#include "llvm/MC/MCTargetOptionsCommandFlags.def"
>>  #include "llvm/PassAnalysisSupport.h"
>>  #include "llvm/Support/LEB128.h"
>>  #include "llvm/Support/TargetRegistry.h"
>> @@ -155,8 +155,8 @@ llvm::Error dwarfgen::Generator::init(Tr
>>    MC.reset(new MCContext(MAI.get(), MRI.get(), MOFI.get()));
>>    MOFI->InitMCObjectFileInfo(TheTriple, /*PIC*/ false, *MC);
>>
>> -  MCTargetOptions Options;
>> -  MAB = TheTarget->createMCAsmBackend(*MRI, TripleName, "", Options);
>> +  MCTargetOptions MCOptions = InitMCTargetOptionsFromFlags();
>> +  MAB = TheTarget->createMCAsmBackend(*MRI, TripleName, "", MCOptions);
>>    if (!MAB)
>>      return make_error<StringError>("no asm backend for target " +
>> TripleName,
>>                                     inconvertibleErrorCode());
>> @@ -179,7 +179,6 @@ llvm::Error dwarfgen::Generator::init(Tr
>>
>>    Stream = make_unique<raw_svector_ostream>(FileBytes);
>>
>> -  MCTargetOptions MCOptions = InitMCTargetOptionsFromFlags();
>>    MS = TheTarget->createMCObjectStreamer(
>>        TheTriple, *MC, std::unique_ptr<MCAsmBackend>(MAB), *Stream,
>>        std::unique_ptr<MCCodeEmitter>(MCE), *MSTI, MCOptions.MCRelaxAll,
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171130/b98c60b9/attachment-0001.html>


More information about the llvm-commits mailing list