[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
Reid Kleckner via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 30 14:43:22 PST 2017
I think .inc would be better, and there is prior art for it in Support/Unix
& Windows. I feel like .def is supposed to be for a pile of macro (or
something else) definitions. Unfortunately, .inc doesn't solve any of the
problems that I actually have with this:
- ctags doesn't find definitions in either file extension
- syntax highlighting doesn't turn on by default for either extension
If a file has real source code in it, I'd really rather give it a source
language suffix that most editors recognize. For example, we recently
renamed the lit.cfg files to lit.cfg.py for this reason. This doesn't seem
like a reasonable cost to pay for modularization.
On Thu, Nov 30, 2017 at 2:33 PM, David Blaikie <dblaikie at gmail.com> wrote:
> 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/2b718df5/attachment.html>
More information about the llvm-commits
mailing list