llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Juergen Ributzka (ributzka) <details> <summary>Changes</summary> This change moves all debug options out of the CodeGenOptions and creates a dedicated top-level DebugOptions data struture. All uses of the debug options are updated to reference the new location. No functional changes are intented with this change. --- Patch is 179.17 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/75530.diff 50 Files Affected: - (modified) clang/include/clang/Basic/CodeGenOptions.def (-3) - (modified) clang/include/clang/Basic/CodeGenOptions.h (+1-50) - (modified) clang/include/clang/Basic/DebugOptions.def (+7-8) - (added) clang/include/clang/Basic/DebugOptions.h (+111) - (modified) clang/include/clang/Basic/TargetInfo.h (-2) - (modified) clang/include/clang/CodeGen/BackendUtil.h (+4-2) - (modified) clang/include/clang/CodeGen/ModuleBuilder.h (+2-1) - (modified) clang/include/clang/Driver/Options.td (+35-33) - (modified) clang/include/clang/Driver/ToolChain.h (+3-3) - (modified) clang/include/clang/Frontend/CompilerInstance.h (+9-6) - (modified) clang/include/clang/Frontend/CompilerInvocation.h (+30-11) - (modified) clang/lib/Basic/CMakeLists.txt (+1) - (modified) clang/lib/Basic/CodeGenOptions.cpp (+2-35) - (added) clang/lib/Basic/DebugOptions.cpp (+40) - (modified) clang/lib/CodeGen/BackendConsumer.h (+8-5) - (modified) clang/lib/CodeGen/BackendUtil.cpp (+56-47) - (modified) clang/lib/CodeGen/CGBlocks.cpp (+3-2) - (modified) clang/lib/CodeGen/CGDebugInfo.cpp (+108-112) - (modified) clang/lib/CodeGen/CGDebugInfo.h (+2-2) - (modified) clang/lib/CodeGen/CGDecl.cpp (+4-3) - (modified) clang/lib/CodeGen/CGHLSLRuntime.cpp (+3-2) - (modified) clang/lib/CodeGen/CGOpenMPRuntime.cpp (+10-12) - (modified) clang/lib/CodeGen/CGStmt.cpp (+3-2) - (modified) clang/lib/CodeGen/CGStmtOpenMP.cpp (+4-3) - (modified) clang/lib/CodeGen/CGVTables.cpp (+14-14) - (modified) clang/lib/CodeGen/CodeGenAction.cpp (+54-55) - (modified) clang/lib/CodeGen/CodeGenFunction.cpp (+3-2) - (modified) clang/lib/CodeGen/CodeGenModule.cpp (+16-15) - (modified) clang/lib/CodeGen/CodeGenModule.h (+5-1) - (modified) clang/lib/CodeGen/ModuleBuilder.cpp (+10-8) - (modified) clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp (+15-14) - (modified) clang/lib/Driver/ToolChains/Clang.cpp (+35-35) - (modified) clang/lib/Driver/ToolChains/CommonArgs.cpp (+13-13) - (modified) clang/lib/Driver/ToolChains/CommonArgs.h (+2-3) - (modified) clang/lib/Driver/ToolChains/Cuda.cpp (+3-3) - (modified) clang/lib/Driver/ToolChains/Cuda.h (+1-1) - (modified) clang/lib/Driver/ToolChains/Flang.cpp (+3-3) - (modified) clang/lib/Driver/ToolChains/HIPSPV.cpp (+2-2) - (modified) clang/lib/Driver/ToolChains/HIPSPV.h (+1-1) - (modified) clang/lib/Driver/ToolChains/MSVC.h (+3-4) - (modified) clang/lib/Frontend/CompilerInstance.cpp (+9-11) - (modified) clang/lib/Frontend/CompilerInvocation.cpp (+113-89) - (modified) clang/lib/Frontend/Rewrite/FrontendActions.cpp (+2-2) - (modified) clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp (+2-2) - (modified) clang/tools/clang-import-test/clang-import-test.cpp (+2-2) - (modified) clang/unittests/CodeGen/TestCompiler.h (+2-1) - (modified) clang/unittests/Frontend/CodeGenActionTest.cpp (+1-1) - (modified) clang/unittests/Frontend/CompilerInvocationTest.cpp (+9-9) - (modified) lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp (+1-1) - (modified) llvm/include/llvm/Frontend/Debug/Options.h (+2-2) ``````````diff diff --git a/clang/include/clang/Basic/CodeGenOptions.def b/clang/include/clang/Basic/CodeGenOptions.def index 0acb5ae134ea24..7508163458c42b 100644 --- a/clang/include/clang/Basic/CodeGenOptions.def +++ b/clang/include/clang/Basic/CodeGenOptions.def @@ -430,9 +430,6 @@ ENUM_CODEGENOPT(ZeroCallUsedRegs, llvm::ZeroCallUsedRegs::ZeroCallUsedRegsKind, /// non-deleting destructors. (No effect on Microsoft ABI.) CODEGENOPT(CtorDtorReturnThis, 1, 0) -/// FIXME: Make DebugOptions its own top-level .def file. -#include "DebugOptions.def" - #undef CODEGENOPT #undef ENUM_CODEGENOPT #undef VALUE_CODEGENOPT diff --git a/clang/include/clang/Basic/CodeGenOptions.h b/clang/include/clang/Basic/CodeGenOptions.h index 6952b48e898a81..6db8c73a66b18a 100644 --- a/clang/include/clang/Basic/CodeGenOptions.h +++ b/clang/include/clang/Basic/CodeGenOptions.h @@ -15,15 +15,11 @@ #include "clang/Basic/Sanitizers.h" #include "clang/Basic/XRayInstr.h" -#include "llvm/ADT/FloatingPointMode.h" -#include "llvm/Frontend/Debug/Options.h" #include "llvm/Frontend/Driver/CodeGenOptions.h" #include "llvm/Support/CodeGen.h" #include "llvm/Support/Regex.h" #include "llvm/Target/TargetOptions.h" #include "llvm/Transforms/Instrumentation/AddressSanitizerOptions.h" -#include <map> -#include <memory> #include <string> #include <vector> @@ -98,12 +94,6 @@ class CodeGenOptions : public CodeGenOptionsBase { IAD_Intel, }; - enum DebugSrcHashKind { - DSH_MD5, - DSH_SHA1, - DSH_SHA256, - }; - // This field stores one of the allowed values for the option // -fbasic-block-sections=. The allowed values with this option are: // {"labels", "all", "list=<file>", "none"}. @@ -158,12 +148,6 @@ class CodeGenOptions : public CodeGenOptionsBase { Never, // No loop is assumed to be finite. }; - enum AssignmentTrackingOpts { - Disabled, - Enabled, - Forced, - }; - /// The code model to use (-mcmodel). std::string CodeModel; @@ -191,22 +175,13 @@ class CodeGenOptions : public CodeGenOptionsBase { /// Enable additional debugging information. std::string DebugPass; - /// The string to embed in debug information as the current working directory. - std::string DebugCompilationDir; - /// The string to embed in coverage mapping as the current working directory. std::string CoverageCompilationDir; - /// The string to embed in the debug information for the compile unit, if - /// non-empty. - std::string DwarfDebugFlags; - /// The string containing the commandline for the llvm.commandline metadata, /// if non-empty. std::string RecordCommandLine; - llvm::SmallVector<std::pair<std::string, std::string>, 0> DebugPrefixMap; - /// Prefix replacement map for source-based code coverage to remap source /// file paths in coverage mapping. llvm::SmallVector<std::pair<std::string, std::string>, 0> CoveragePrefixMap; @@ -214,10 +189,6 @@ class CodeGenOptions : public CodeGenOptionsBase { /// The ABI to use for passing floating point arguments. std::string FloatABI; - /// The file to use for dumping bug report by `Debugify` for original - /// debug info. - std::string DIBugsReportFilePath; - /// The floating-point denormal mode to use. llvm::DenormalMode FPDenormalMode = llvm::DenormalMode::getIEEE(); @@ -248,16 +219,6 @@ class CodeGenOptions : public CodeGenOptionsBase { /// file, for example with -save-temps. std::string MainFileName; - /// The name for the split debug info file used for the DW_AT_[GNU_]dwo_name - /// attribute in the skeleton CU. - std::string SplitDwarfFile; - - /// Output filename for the split debug info, not used in the skeleton CU. - std::string SplitDwarfOutput; - - /// Output filename used in the COFF debug information. - std::string ObjectFilenameForDebug; - /// The name of the relocation model to use. llvm::Reloc::Model RelocationModel; @@ -508,16 +469,6 @@ class CodeGenOptions : public CodeGenOptionsBase { /// Check if CSIR profile use is on. bool hasProfileCSIRUse() const { return getProfileUse() == ProfileCSIRInstr; } - /// Check if type and variable info should be emitted. - bool hasReducedDebugInfo() const { - return getDebugInfo() >= llvm::codegenoptions::DebugInfoConstructor; - } - - /// Check if maybe unused type info should be emitted. - bool hasMaybeUnusedDebugInfo() const { - return getDebugInfo() >= llvm::codegenoptions::UnusedTypeInfo; - } - // Check if any one of SanitizeCoverage* is enabled. bool hasSanitizeCoverage() const { return SanitizeCoverageType || SanitizeCoverageIndirectCalls || @@ -533,7 +484,7 @@ class CodeGenOptions : public CodeGenOptionsBase { /// Reset all of the options that are not considered when building a /// module. - void resetNonModularOptions(StringRef ModuleFormat); + void resetNonModularOptions(); }; } // end namespace clang diff --git a/clang/include/clang/Basic/DebugOptions.def b/clang/include/clang/Basic/DebugOptions.def index 7cd3edf08a17ea..7bcbad36873c68 100644 --- a/clang/include/clang/Basic/DebugOptions.def +++ b/clang/include/clang/Basic/DebugOptions.def @@ -17,18 +17,17 @@ // //===----------------------------------------------------------------------===// #ifndef DEBUGOPT -#define DEBUGOPT(Name, Bits, Default) \ -CODEGENOPT(Name, Bits, Default) +# error Define the DEBUGOPT macro to handle debug options #endif #ifndef VALUE_DEBUGOPT # define VALUE_DEBUGOPT(Name, Bits, Default) \ -VALUE_CODEGENOPT(Name, Bits, Default) +DEBUGOPT(Name, Bits, Default) #endif #ifndef ENUM_DEBUGOPT # define ENUM_DEBUGOPT(Name, Type, Bits, Default) \ -ENUM_CODEGENOPT(Name, Type, Bits, Default) +DEBUGOPT(Name, Bits, Default) #endif #ifndef BENIGN_DEBUGOPT @@ -94,16 +93,16 @@ DEBUGOPT(DebugFwdTemplateParams, 1, 0) ///< Whether to emit complete ///< forward declarations (versus just ///< including them in the name). ENUM_DEBUGOPT(DebugSimpleTemplateNames, - llvm::codegenoptions::DebugTemplateNamesKind, 2, - llvm::codegenoptions::DebugTemplateNamesKind::Full) + llvm::debugoptions::DebugTemplateNamesKind, 2, + llvm::debugoptions::DebugTemplateNamesKind::Full) ///< Whether to emit template parameters in the textual names of ///< template specializations. ///< Implies DebugFwdTemplateNames to allow decorated names to be ///< reconstructed when needed. /// The kind of generated debug info. -ENUM_DEBUGOPT(DebugInfo, llvm::codegenoptions::DebugInfoKind, 4, - llvm::codegenoptions::NoDebugInfo) +ENUM_DEBUGOPT(DebugInfo, llvm::debugoptions::DebugInfoKind, 4, + llvm::debugoptions::NoDebugInfo) /// Whether to generate macro debug info. DEBUGOPT(MacroDebugInfo, 1, 0) diff --git a/clang/include/clang/Basic/DebugOptions.h b/clang/include/clang/Basic/DebugOptions.h new file mode 100644 index 00000000000000..f89e43c862349b --- /dev/null +++ b/clang/include/clang/Basic/DebugOptions.h @@ -0,0 +1,111 @@ +//===--- DebugOptions.h -----------------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// This file defines the DebugOptions interface. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_CLANG_BASIC_DEBUGOPTIONS_H +#define LLVM_CLANG_BASIC_DEBUGOPTIONS_H + +#include "llvm/ADT/SmallVector.h" +#include "llvm/Frontend/Debug/Options.h" +#include "llvm/MC/MCTargetOptions.h" +#include "llvm/Support/Compression.h" +#include "llvm/Target/TargetOptions.h" +#include <string> + +namespace clang { + +/// Bitfields of DebugOptions, split out from DebugOptions to ensure +/// that this large collection of bitfields is a trivial class type. +class DebugOptionsBase { + friend class CompilerInvocation; + friend class CompilerInvocationBase; + +public: +#define DEBUGOPT(Name, Bits, Default) unsigned Name : Bits; +#define ENUM_DEBUGOPT(Name, Type, Bits, Default) +#include "clang/Basic/DebugOptions.def" + +protected: +#define DEBUGOPT(Name, Bits, Default) +#define ENUM_DEBUGOPT(Name, Type, Bits, Default) unsigned Name : Bits; +#include "clang/Basic/DebugOptions.def" +}; + +/// DebugOptions - Track various options which control how the debug information +/// is generated for the backend. +class DebugOptions : public DebugOptionsBase { +public: + enum DebugSrcHashKind { + DSH_MD5, + DSH_SHA1, + DSH_SHA256, + }; + + /// Enable additional debugging information. + std::string DebugPass; + + /// The string to embed in debug information as the current working directory. + std::string DebugCompilationDir; + + /// The string to embed in the debug information for the compile unit, if + /// non-empty. + std::string DwarfDebugFlags; + + enum AssignmentTrackingOpts { + Disabled, + Enabled, + Forced, + }; + + llvm::SmallVector<std::pair<std::string, std::string>, 0> DebugPrefixMap; + + /// The file to use for dumping bug report by `Debugify` for original + /// debug info. + std::string DIBugsReportFilePath; + + /// The name for the split debug info file used for the DW_AT_[GNU_]dwo_name + /// attribute in the skeleton CU. + std::string SplitDwarfFile; + + /// Output filename for the split debug info, not used in the skeleton CU. + std::string SplitDwarfOutput; + + /// Output filename used in the COFF debug information. + std::string ObjectFilenameForDebug; + +public: + // Define accessors/mutators for code generation options of enumeration type. +#define DEBUGOPT(Name, Bits, Default) +#define ENUM_DEBUGOPT(Name, Type, Bits, Default) \ + Type get##Name() const { return static_cast<Type>(Name); } \ + void set##Name(Type Value) { Name = static_cast<unsigned>(Value); } +#include "clang/Basic/DebugOptions.def" + + DebugOptions(); + + /// Check if type and variable info should be emitted. + bool hasReducedDebugInfo() const { + return getDebugInfo() >= llvm::debugoptions::DebugInfoConstructor; + } + + /// Check if maybe unused type info should be emitted. + bool hasMaybeUnusedDebugInfo() const { + return getDebugInfo() >= llvm::debugoptions::UnusedTypeInfo; + } + + /// Reset all of the options that are not considered when building a + /// module. + void resetNonModularOptions(llvm::StringRef ModuleFormat); +}; + +} // end namespace clang + +#endif diff --git a/clang/include/clang/Basic/TargetInfo.h b/clang/include/clang/Basic/TargetInfo.h index ec0189627dfbd2..e9661ee660cf06 100644 --- a/clang/include/clang/Basic/TargetInfo.h +++ b/clang/include/clang/Basic/TargetInfo.h @@ -16,7 +16,6 @@ #include "clang/Basic/AddressSpaces.h" #include "clang/Basic/BitmaskEnum.h" -#include "clang/Basic/CodeGenOptions.h" #include "clang/Basic/LLVM.h" #include "clang/Basic/LangOptions.h" #include "clang/Basic/Specifiers.h" @@ -48,7 +47,6 @@ struct fltSemantics; namespace clang { class DiagnosticsEngine; class LangOptions; -class CodeGenOptions; class MacroBuilder; /// Contains information gathered from parsing the contents of TargetAttr. diff --git a/clang/include/clang/CodeGen/BackendUtil.h b/clang/include/clang/CodeGen/BackendUtil.h index fc8ed4f011f922..9f3fd0b96399a4 100644 --- a/clang/include/clang/CodeGen/BackendUtil.h +++ b/clang/include/clang/CodeGen/BackendUtil.h @@ -28,6 +28,7 @@ namespace clang { class DiagnosticsEngine; class HeaderSearchOptions; class CodeGenOptions; + class DebugOptions; class TargetOptions; class LangOptions; class BackendConsumer; @@ -43,8 +44,9 @@ namespace clang { void EmitBackendOutput(DiagnosticsEngine &Diags, const HeaderSearchOptions &, const CodeGenOptions &CGOpts, - const TargetOptions &TOpts, const LangOptions &LOpts, - StringRef TDesc, llvm::Module *M, BackendAction Action, + const DebugOptions &DOpts, const TargetOptions &TOpts, + const LangOptions &LOpts, StringRef TDesc, + llvm::Module *M, BackendAction Action, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS, std::unique_ptr<raw_pwrite_stream> OS, BackendConsumer *BC = nullptr); diff --git a/clang/include/clang/CodeGen/ModuleBuilder.h b/clang/include/clang/CodeGen/ModuleBuilder.h index edacd82bf899db..10ce2ecd9bb29b 100644 --- a/clang/include/clang/CodeGen/ModuleBuilder.h +++ b/clang/include/clang/CodeGen/ModuleBuilder.h @@ -29,6 +29,7 @@ namespace llvm { namespace clang { class CodeGenOptions; + class DebugOptions; class CoverageSourceInfo; class Decl; class DiagnosticsEngine; @@ -107,7 +108,7 @@ CodeGenerator *CreateLLVMCodeGen(DiagnosticsEngine &Diags, const HeaderSearchOptions &HeaderSearchOpts, const PreprocessorOptions &PreprocessorOpts, const CodeGenOptions &CGO, - llvm::LLVMContext &C, + const DebugOptions &DO, llvm::LLVMContext &C, CoverageSourceInfo *CoverageInfo = nullptr); } // end namespace clang diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 1b02087425b751..647cb873ec8101 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -299,6 +299,8 @@ class DependencyOutputOpts<string base> : KeyPathAndMacro<"DependencyOutputOpts.", base, "DEPENDENCY_OUTPUT_"> {} class CodeGenOpts<string base> : KeyPathAndMacro<"CodeGenOpts.", base, "CODEGEN_"> {} +class DebugOpts<string base> + : KeyPathAndMacro<"DebugOpts.", base, "DEBUG_"> {} class HeaderSearchOpts<string base> : KeyPathAndMacro<"HeaderSearchOpts->", base, "HEADER_SEARCH_"> {} class PreprocessorOpts<string base> @@ -1656,7 +1658,7 @@ def fdebug_compilation_dir_EQ : Joined<["-"], "fdebug-compilation-dir=">, Group<f_Group>, Visibility<[ClangOption, CC1Option, CC1AsOption, CLOption, DXCOption]>, HelpText<"The compilation directory to embed in the debug info">, - MarshallingInfoString<CodeGenOpts<"DebugCompilationDir">>; + MarshallingInfoString<DebugOpts<"DebugCompilationDir">>; def fdebug_compilation_dir : Separate<["-"], "fdebug-compilation-dir">, Group<f_Group>, Visibility<[ClangOption, CC1Option, CC1AsOption, CLOption, DXCOption]>, @@ -1669,7 +1671,7 @@ def ffile_compilation_dir_EQ : Joined<["-"], "ffile-compilation-dir=">, Group<f_ Visibility<[ClangOption, CLOption, DXCOption]>, HelpText<"The compilation directory to embed in the debug info and coverage mapping.">; defm debug_info_for_profiling : BoolFOption<"debug-info-for-profiling", - CodeGenOpts<"DebugInfoForProfiling">, DefaultFalse, + DebugOpts<"DebugInfoForProfiling">, DefaultFalse, PosFlag<SetTrue, [], [ClangOption, CC1Option], "Emit extra debug info to make sample profile more accurate">, NegFlag<SetFalse>>; @@ -2005,7 +2007,7 @@ defm dollars_in_identifiers : BoolFOption<"dollars-in-identifiers", def fdwarf2_cfi_asm : Flag<["-"], "fdwarf2-cfi-asm">, Group<clang_ignored_f_Group>; def fno_dwarf2_cfi_asm : Flag<["-"], "fno-dwarf2-cfi-asm">, Group<clang_ignored_f_Group>; defm dwarf_directory_asm : BoolFOption<"dwarf-directory-asm", - CodeGenOpts<"NoDwarfDirectoryAsm">, DefaultFalse, + DebugOpts<"NoDwarfDirectoryAsm">, DefaultFalse, NegFlag<SetTrue, [], [ClangOption, CC1Option]>, PosFlag<SetFalse>>; defm elide_constructors : BoolFOption<"elide-constructors", @@ -4024,12 +4026,12 @@ def fdebug_types_section: Flag <["-"], "fdebug-types-section">, Group<f_Group>, HelpText<"Place debug types in their own section (ELF Only)">; def fno_debug_types_section: Flag<["-"], "fno-debug-types-section">, Group<f_Group>; defm debug_ranges_base_address : BoolFOption<"debug-ranges-base-address", - CodeGenOpts<"DebugRangesBaseAddress">, DefaultFalse, + DebugOpts<"DebugRangesBaseAddress">, DefaultFalse, PosFlag<SetTrue, [], [ClangOption, CC1Option], "Use DWARF base address selection entries in .debug_ranges">, NegFlag<SetFalse>>; defm split_dwarf_inlining : BoolFOption<"split-dwarf-inlining", - CodeGenOpts<"SplitDwarfInlining">, DefaultFalse, + DebugOpts<"SplitDwarfInlining">, DefaultFalse, NegFlag<SetFalse, [], [ClangOption]>, PosFlag<SetTrue, [], [ClangOption, CC1Option], "Provide minimal debug info in the object/executable" @@ -4057,7 +4059,7 @@ def fmacro_prefix_map_EQ HelpText<"remap file source paths in predefined preprocessor macros and " "__builtin_FILE(). Implies -ffile-reproducible.">; defm force_dwarf_frame : BoolFOption<"force-dwarf-frame", - CodeGenOpts<"ForceDwarfFrameSection">, DefaultFalse, + DebugOpts<"ForceDwarfFrameSection">, DefaultFalse, PosFlag<SetTrue, [], [ClangOption, CC1Option], "Always emit a debug frame section">, NegFlag<SetFalse>>; @@ -4067,7 +4069,7 @@ def femit_dwarf_unwind_EQ : Joined<["-"], "femit-dwarf-unwind=">, Values<"always,no-compact-unwind,default">, NormalizedValues<["Always", "NoCompactUnwind", "Default"]>, NormalizedValuesScope<"llvm::EmitDwarfUnwindType">, - MarshallingInfoEnum<CodeGenOpts<"EmitDwarfUnwind">, "Default">; + MarshallingInfoEnum<DebugOpts<"EmitDwarfUnwind">, "Default">; defm emit_compact_unwind_non_canonical : BoolFOption<"emit-compact-unwind-non-canonical", CodeGenOpts<"EmitCompactUnwindNonCanonical">, DefaultFalse, PosFlag<SetTrue, [], [ClangOption, CC1Option, CC1AsOption], @@ -4111,7 +4113,7 @@ def gdwarf_5 : Flag<["-"], "gdwarf-5">, Group<g_Group>, def gdwarf64 : Flag<["-"], "gdwarf64">, Group<g_Group>, Visibility<[ClangOption, CC1Option, CC1AsOption]>, HelpText<"Enables DWARF64 format for ELF binaries, if debug information emission is enabled.">, - MarshallingInfoFlag<CodeGenOpts<"Dwarf64">>; + MarshallingInfoFlag<DebugOpts<"Dwarf64">>; def gdwarf32 : Flag<["-"], "gdwarf32">, Group<g_Group>, Visibility<[ClangOption, CC1Option, CC1AsOption]>, HelpText<"Enables DWARF32 format for ELF binaries, if debug information emission is enabled.">; @@ -4119,19 +4121,19 @@ def gdwarf32 : Flag<["-"], "gdwarf32">, Group<g_Group>, def gcodeview : Flag<["-"], "gcodeview">, HelpText<"Generate CodeView debug information">, Visibility<[ClangOption, CC1Option, CC1AsOption, CLOption, DXCOption]>, - MarshallingInfoFlag<CodeGenOpts<"EmitCodeView">>; + MarshallingInfoFlag<DebugOpts<"EmitCodeView">>; defm codeview_ghash : BoolOption<"g", "codeview-ghash", - CodeGenOpts<"CodeViewGHash">, DefaultFalse, + DebugOpts<"CodeViewGHash">, DefaultFalse, PosFlag<SetTrue, [], [ClangOption, CC1Option], "Emit type record hashes in a .debug$H section">, NegFlag<SetFalse>, BothFlags<[], [ClangOption, CLOption, DXCOption]>>; defm codeview_command_line : BoolOption<"g", "codeview-command-line", - CodeGenOpts<"CodeViewCommandLine">, DefaultTrue, + DebugOpts<"CodeViewCommandLine">, DefaultTrue, PosFlag<SetTrue, [], [ClangOption], "Emit compiler path and command line into CodeView debug information">, NegFlag<SetFalse, [], [ClangOption], "Don't emit compiler path and command line into CodeView debug information">, BothFlags<[], [ClangOption, CLOption, DXCOption, CC1Option]>>; defm inline_line_tables : BoolGOption<"inline-line-tables", - CodeGenOpts<"NoInlineLineTables">, DefaultFalse, + DebugOpts<"NoInlineLineTables">, DefaultFalse, NegFlag<SetTrue, [], [ClangOption, CC1Option], "Don't emit inline line tables.">, PosFlag<SetFalse>, BothFlags<[], [ClangOption, CLOption, DXCOption]>>; @@ -4150,14 +4152,14 @@ def gno_record_command_line : Flag<["-"], "gno-record-command-line">, def : Flag<["-"], "grecord-gcc-switches">, Alias<grecord_command_line>; def : Flag<["-"], "gno-record-gcc-switches">, Alias<gno_record_command_line>; defm strict_dwarf : BoolOption<"g", "strict-dwarf", - CodeGenOpts<"DebugStrictDwarf">, DefaultFalse, + DebugOpts<"DebugStrictDwarf">, DefaultFalse, PosFlag<Set... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/75530 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits