r259489 - Move DebugInfoKind into its own header to cut the cyclic dependency edge from Driver to Frontend.
Robinson, Paul via cfe-commits
cfe-commits at lists.llvm.org
Tue Feb 2 08:04:49 PST 2016
Maybe Basic would be a better home for the new header?
Having CodeGen pull in something from Driver seems weird and unprecedented.
Thanks,
--paulr
> -----Original Message-----
> From: cfe-commits [mailto:cfe-commits-bounces at lists.llvm.org] On Behalf Of
> Benjamin Kramer via cfe-commits
> Sent: Tuesday, February 02, 2016 3:07 AM
> To: cfe-commits at lists.llvm.org
> Subject: r259489 - Move DebugInfoKind into its own header to cut the
> cyclic dependency edge from Driver to Frontend.
>
> Author: d0k
> Date: Tue Feb 2 05:06:51 2016
> New Revision: 259489
>
> URL: http://llvm.org/viewvc/llvm-project?rev=259489&view=rev
> Log:
> Move DebugInfoKind into its own header to cut the cyclic dependency edge
> from Driver to Frontend.
>
> Added:
> cfe/trunk/include/clang/Driver/DebugInfoKind.h
> Modified:
> cfe/trunk/include/clang/Frontend/CodeGenOptions.def
> cfe/trunk/include/clang/Frontend/CodeGenOptions.h
> cfe/trunk/lib/CodeGen/BackendUtil.cpp
> cfe/trunk/lib/CodeGen/CGBlocks.cpp
> cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
> cfe/trunk/lib/CodeGen/CGDebugInfo.h
> cfe/trunk/lib/CodeGen/CGDecl.cpp
> cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp
> cfe/trunk/lib/CodeGen/CodeGenFunction.cpp
> cfe/trunk/lib/CodeGen/CodeGenModule.cpp
> cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp
> cfe/trunk/lib/Driver/Tools.cpp
> cfe/trunk/lib/Driver/Tools.h
> cfe/trunk/lib/Frontend/CompilerInvocation.cpp
> cfe/trunk/lib/Frontend/Rewrite/FrontendActions.cpp
>
> Added: cfe/trunk/include/clang/Driver/DebugInfoKind.h
> URL: http://llvm.org/viewvc/llvm-
> project/cfe/trunk/include/clang/Driver/DebugInfoKind.h?rev=259489&view=aut
> o
> ==========================================================================
> ====
> --- cfe/trunk/include/clang/Driver/DebugInfoKind.h (added)
> +++ cfe/trunk/include/clang/Driver/DebugInfoKind.h Tue Feb 2 05:06:51
> 2016
> @@ -0,0 +1,39 @@
> +//===--- DebugInfoKind.h - Debug Info Emission Types ------------*- C++ -
> *-===//
> +//
> +// The LLVM Compiler Infrastructure
> +//
> +// This file is distributed under the University of Illinois Open Source
> +// License. See LICENSE.TXT for details.
> +//
> +//===--------------------------------------------------------------------
> --===//
> +
> +#ifndef LLVM_CLANG_DRIVER_DEBUGINFOKIND_H
> +#define LLVM_CLANG_DRIVER_DEBUGINFOKIND_H
> +
> +namespace clang {
> +namespace codegenoptions {
> +
> +enum DebugInfoKind {
> + NoDebugInfo, /// Don't generate debug info.
> + LocTrackingOnly, /// Emit location information but do not generate
> + /// debug info in the output. This is useful in
> + /// cases where the backend wants to track source
> + /// locations for instructions without actually
> + /// emitting debug info for them (e.g., when -
> Rpass
> + /// is used).
> + DebugLineTablesOnly, /// Emit only debug info necessary for generating
> + /// line number tables (-gline-tables-only).
> + LimitedDebugInfo, /// Limit generated debug info to reduce size
> + /// (-fno-standalone-debug). This emits
> + /// forward decls for types that could be
> + /// replaced with forward decls in the source
> + /// code. For dynamic C++ classes type info
> + /// is only emitted int the module that
> + /// contains the classe's vtable.
> + FullDebugInfo /// Generate complete debug info.
> +};
> +
> +} // end namespace codegenoptions
> +} // end namespace clang
> +
> +#endif
>
> Modified: cfe/trunk/include/clang/Frontend/CodeGenOptions.def
> URL: http://llvm.org/viewvc/llvm-
> project/cfe/trunk/include/clang/Frontend/CodeGenOptions.def?rev=259489&r1=
> 259488&r2=259489&view=diff
> ==========================================================================
> ====
> --- cfe/trunk/include/clang/Frontend/CodeGenOptions.def (original)
> +++ cfe/trunk/include/clang/Frontend/CodeGenOptions.def Tue Feb 2
> 05:06:51 2016
> @@ -185,7 +185,7 @@ VALUE_CODEGENOPT(NumRegisterParameters,
> VALUE_CODEGENOPT(SSPBufferSize, 32, 0)
>
> /// The kind of generated debug info.
> -ENUM_CODEGENOPT(DebugInfo, DebugInfoKind, 3, NoDebugInfo)
> +ENUM_CODEGENOPT(DebugInfo, codegenoptions::DebugInfoKind, 3,
> codegenoptions::NoDebugInfo)
>
> /// Tune the debug info for this debugger.
> ENUM_CODEGENOPT(DebuggerTuning, DebuggerKind, 2, DebuggerKindDefault)
>
> Modified: cfe/trunk/include/clang/Frontend/CodeGenOptions.h
> URL: http://llvm.org/viewvc/llvm-
> project/cfe/trunk/include/clang/Frontend/CodeGenOptions.h?rev=259489&r1=25
> 9488&r2=259489&view=diff
> ==========================================================================
> ====
> --- cfe/trunk/include/clang/Frontend/CodeGenOptions.h (original)
> +++ cfe/trunk/include/clang/Frontend/CodeGenOptions.h Tue Feb 2 05:06:51
> 2016
> @@ -15,6 +15,7 @@
> #define LLVM_CLANG_FRONTEND_CODEGENOPTIONS_H
>
> #include "clang/Basic/Sanitizers.h"
> +#include "clang/Driver/DebugInfoKind.h"
> #include "llvm/Support/Regex.h"
> #include <map>
> #include <memory>
> @@ -58,30 +59,6 @@ public:
> Mixed = 2
> };
>
> - enum DebugInfoKind {
> - NoDebugInfo, /// Don't generate debug info.
> -
> - LocTrackingOnly, /// Emit location information but do not
> generate
> - /// debug info in the output. This is useful in
> - /// cases where the backend wants to track
> source
> - /// locations for instructions without actually
> - /// emitting debug info for them (e.g., when -
> Rpass
> - /// is used).
> -
> - DebugLineTablesOnly, /// Emit only debug info necessary for
> generating
> - /// line number tables (-gline-tables-only).
> -
> - LimitedDebugInfo, /// Limit generated debug info to reduce size
> - /// (-fno-standalone-debug). This emits
> - /// forward decls for types that could be
> - /// replaced with forward decls in the source
> - /// code. For dynamic C++ classes type info
> - /// is only emitted int the module that
> - /// contains the classe's vtable.
> -
> - FullDebugInfo /// Generate complete debug info.
> - };
> -
> enum DebuggerKind {
> DebuggerKindDefault,
> DebuggerKindGDB,
>
> Modified: cfe/trunk/lib/CodeGen/BackendUtil.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/cfe/trunk/lib/CodeGen/BackendUtil.cpp?rev=259489&r1=259488&r2=2594
> 89&view=diff
> ==========================================================================
> ====
> --- cfe/trunk/lib/CodeGen/BackendUtil.cpp (original)
> +++ cfe/trunk/lib/CodeGen/BackendUtil.cpp Tue Feb 2 05:06:51 2016
> @@ -425,7 +425,7 @@ void EmitAssemblyHelper::CreatePasses(Fu
> !CodeGenOpts.CoverageNoFunctionNamesInData;
> Options.ExitBlockBeforeBody =
> CodeGenOpts.CoverageExitBlockBeforeBody;
> MPM->add(createGCOVProfilerPass(Options));
> - if (CodeGenOpts.getDebugInfo() == CodeGenOptions::NoDebugInfo)
> + if (CodeGenOpts.getDebugInfo() == codegenoptions::NoDebugInfo)
> MPM->add(createStripSymbolsPass(true));
> }
>
>
> Modified: cfe/trunk/lib/CodeGen/CGBlocks.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/cfe/trunk/lib/CodeGen/CGBlocks.cpp?rev=259489&r1=259488&r2=259489&
> view=diff
> ==========================================================================
> ====
> --- cfe/trunk/lib/CodeGen/CGBlocks.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGBlocks.cpp Tue Feb 2 05:06:51 2016
> @@ -1109,8 +1109,8 @@ void CodeGenFunction::setBlockContextPar
> }
>
> if (CGDebugInfo *DI = getDebugInfo()) {
> - if (CGM.getCodeGenOpts().getDebugInfo()
> - >= CodeGenOptions::LimitedDebugInfo) {
> + if (CGM.getCodeGenOpts().getDebugInfo() >=
> + codegenoptions::LimitedDebugInfo) {
> DI->setLocation(D->getLocation());
> DI->EmitDeclareOfBlockLiteralArgVariable(*BlockInfo, arg, argNum,
> localAddr, Builder);
> @@ -1260,8 +1260,8 @@ CodeGenFunction::GenerateBlockFunction(G
> const VarDecl *variable = CI.getVariable();
> DI->EmitLocation(Builder, variable->getLocation());
>
> - if (CGM.getCodeGenOpts().getDebugInfo()
> - >= CodeGenOptions::LimitedDebugInfo) {
> + if (CGM.getCodeGenOpts().getDebugInfo() >=
> + codegenoptions::LimitedDebugInfo) {
> const CGBlockInfo::Capture &capture =
> blockInfo.getCapture(variable);
> if (capture.isConstant()) {
> auto addr = LocalDeclMap.find(variable)->second;
>
> Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=259489&r1=259488&r2=2594
> 89&view=diff
> ==========================================================================
> ====
> --- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Tue Feb 2 05:06:51 2016
> @@ -402,10 +402,10 @@ void CGDebugInfo::CreateCompileUnit() {
> LangTag, remapDIPath(MainFileName),
> remapDIPath(getCurrentDirname()),
> Producer, LO.Optimize, CGM.getCodeGenOpts().DwarfDebugFlags,
> RuntimeVers,
> CGM.getCodeGenOpts().SplitDwarfFile,
> - DebugKind <= CodeGenOptions::DebugLineTablesOnly
> + DebugKind <= codegenoptions::DebugLineTablesOnly
> ? llvm::DIBuilder::LineTablesOnly
> : llvm::DIBuilder::FullDebug,
> - 0 /* DWOid */, DebugKind != CodeGenOptions::LocTrackingOnly);
> + 0 /* DWOid */, DebugKind != codegenoptions::LocTrackingOnly);
> }
>
> llvm::DIType *CGDebugInfo::CreateType(const BuiltinType *BT) {
> @@ -1446,7 +1446,7 @@ void CGDebugInfo::CollectVTableInfo(cons
>
> llvm::DIType *CGDebugInfo::getOrCreateRecordType(QualType RTy,
> SourceLocation Loc) {
> - assert(DebugKind >= CodeGenOptions::LimitedDebugInfo);
> + assert(DebugKind >= codegenoptions::LimitedDebugInfo);
> llvm::DIType *T = getOrCreateType(RTy, getOrCreateFile(Loc));
> return T;
> }
> @@ -1458,7 +1458,7 @@ llvm::DIType *CGDebugInfo::getOrCreateIn
>
> llvm::DIType *CGDebugInfo::getOrCreateStandaloneType(QualType D,
> SourceLocation Loc)
> {
> - assert(DebugKind >= CodeGenOptions::LimitedDebugInfo);
> + assert(DebugKind >= codegenoptions::LimitedDebugInfo);
> assert(!D.isNull() && "null type");
> llvm::DIType *T = getOrCreateType(D, getOrCreateFile(Loc));
> assert(T && "could not create debug info for type");
> @@ -1473,7 +1473,7 @@ llvm::DIType *CGDebugInfo::getOrCreateSt
> }
>
> void CGDebugInfo::completeType(const EnumDecl *ED) {
> - if (DebugKind <= CodeGenOptions::DebugLineTablesOnly)
> + if (DebugKind <= codegenoptions::DebugLineTablesOnly)
> return;
> QualType Ty = CGM.getContext().getEnumType(ED);
> void *TyPtr = Ty.getAsOpaquePtr();
> @@ -1486,13 +1486,13 @@ void CGDebugInfo::completeType(const Enu
> }
>
> void CGDebugInfo::completeType(const RecordDecl *RD) {
> - if (DebugKind > CodeGenOptions::LimitedDebugInfo ||
> + if (DebugKind > codegenoptions::LimitedDebugInfo ||
> !CGM.getLangOpts().CPlusPlus)
> completeRequiredType(RD);
> }
>
> void CGDebugInfo::completeRequiredType(const RecordDecl *RD) {
> - if (DebugKind <= CodeGenOptions::DebugLineTablesOnly)
> + if (DebugKind <= codegenoptions::DebugLineTablesOnly)
> return;
>
> if (const CXXRecordDecl *CXXDecl = dyn_cast<CXXRecordDecl>(RD))
> @@ -1509,7 +1509,7 @@ void CGDebugInfo::completeRequiredType(c
> }
>
> void CGDebugInfo::completeClassData(const RecordDecl *RD) {
> - if (DebugKind <= CodeGenOptions::DebugLineTablesOnly)
> + if (DebugKind <= codegenoptions::DebugLineTablesOnly)
> return;
> QualType Ty = CGM.getContext().getRecordType(RD);
> void *TyPtr = Ty.getAsOpaquePtr();
> @@ -1531,16 +1531,15 @@ static bool hasExplicitMemberDefinition(
> return false;
> }
>
> -static bool shouldOmitDefinition(CodeGenOptions::DebugInfoKind DebugKind,
> - bool DebugTypeExtRefs,
> - const RecordDecl *RD,
> +static bool shouldOmitDefinition(codegenoptions::DebugInfoKind DebugKind,
> + bool DebugTypeExtRefs, const RecordDecl
> *RD,
> const LangOptions &LangOpts) {
> // Does the type exist in an imported clang module?
> if (DebugTypeExtRefs && RD->isFromASTFile() && RD->getDefinition() &&
> (RD->isExternallyVisible() || !RD->getName().empty()))
> return true;
>
> - if (DebugKind > CodeGenOptions::LimitedDebugInfo)
> + if (DebugKind > codegenoptions::LimitedDebugInfo)
> return false;
>
> if (!LangOpts.CPlusPlus)
> @@ -2172,7 +2171,7 @@ llvm::DIType *CGDebugInfo::getTypeOrNull
>
> void CGDebugInfo::completeTemplateDefinition(
> const ClassTemplateSpecializationDecl &SD) {
> - if (DebugKind <= CodeGenOptions::DebugLineTablesOnly)
> + if (DebugKind <= codegenoptions::DebugLineTablesOnly)
> return;
>
> completeClassData(&SD);
> @@ -2438,13 +2437,12 @@ void CGDebugInfo::collectFunctionDeclPro
> // No need to replicate the linkage name if it isn't different from the
> // subprogram name, no need to have it at all unless coverage is
> enabled or
> // debug is set to more than just line tables.
> - if (LinkageName == Name ||
> - (!CGM.getCodeGenOpts().EmitGcovArcs &&
> - !CGM.getCodeGenOpts().EmitGcovNotes &&
> - DebugKind <= CodeGenOptions::DebugLineTablesOnly))
> + if (LinkageName == Name || (!CGM.getCodeGenOpts().EmitGcovArcs &&
> + !CGM.getCodeGenOpts().EmitGcovNotes &&
> + DebugKind <=
> codegenoptions::DebugLineTablesOnly))
> LinkageName = StringRef();
>
> - if (DebugKind >= CodeGenOptions::LimitedDebugInfo) {
> + if (DebugKind >= codegenoptions::LimitedDebugInfo) {
> if (const NamespaceDecl *NSDecl =
> dyn_cast_or_null<NamespaceDecl>(FD->getDeclContext()))
> FDContext = getOrCreateNameSpace(NSDecl);
> @@ -2580,7 +2578,7 @@ llvm::DINode *CGDebugInfo::getDeclaratio
> }
>
> llvm::DISubprogram *CGDebugInfo::getFunctionDeclaration(const Decl *D) {
> - if (!D || DebugKind <= CodeGenOptions::DebugLineTablesOnly)
> + if (!D || DebugKind <= codegenoptions::DebugLineTablesOnly)
> return nullptr;
>
> const FunctionDecl *FD = dyn_cast<FunctionDecl>(D);
> @@ -2620,7 +2618,7 @@ llvm::DISubprogram *CGDebugInfo::getFunc
> llvm::DISubroutineType *CGDebugInfo::getOrCreateFunctionType(const Decl
> *D,
> QualType
> FnType,
> llvm::DIFile
> *F) {
> - if (!D || DebugKind <= CodeGenOptions::DebugLineTablesOnly)
> + if (!D || DebugKind <= codegenoptions::DebugLineTablesOnly)
> // Create fake but valid subroutine type. Otherwise -verify would
> fail, and
> // subprogram DIE will miss DW_AT_decl_file and DW_AT_decl_line
> fields.
> return
> DBuilder.createSubroutineType(DBuilder.getOrCreateTypeArray(None));
> @@ -2828,7 +2826,7 @@ void CGDebugInfo::EmitLexicalBlockStart(
> Builder.SetCurrentDebugLocation(llvm::DebugLoc::get(
> getLineNumber(Loc), getColumnNumber(Loc),
> LexicalBlockStack.back()));
>
> - if (DebugKind <= CodeGenOptions::DebugLineTablesOnly)
> + if (DebugKind <= codegenoptions::DebugLineTablesOnly)
> return;
>
> // Create a new lexical block and push it on the stack.
> @@ -2842,7 +2840,7 @@ void CGDebugInfo::EmitLexicalBlockEnd(CG
> // Provide an entry in the line table for the end of the block.
> EmitLocation(Builder, Loc);
>
> - if (DebugKind <= CodeGenOptions::DebugLineTablesOnly)
> + if (DebugKind <= codegenoptions::DebugLineTablesOnly)
> return;
>
> LexicalBlockStack.pop_back();
> @@ -2937,7 +2935,7 @@ llvm::DIType *CGDebugInfo::EmitTypeForVa
> void CGDebugInfo::EmitDeclare(const VarDecl *VD, llvm::Value *Storage,
> llvm::Optional<unsigned> ArgNo,
> CGBuilderTy &Builder) {
> - assert(DebugKind >= CodeGenOptions::LimitedDebugInfo);
> + assert(DebugKind >= codegenoptions::LimitedDebugInfo);
> assert(!LexicalBlockStack.empty() && "Region stack mismatch, stack
> empty!");
>
> bool Unwritten =
> @@ -3063,7 +3061,7 @@ void CGDebugInfo::EmitDeclare(const VarD
> void CGDebugInfo::EmitDeclareOfAutoVariable(const VarDecl *VD,
> llvm::Value *Storage,
> CGBuilderTy &Builder) {
> - assert(DebugKind >= CodeGenOptions::LimitedDebugInfo);
> + assert(DebugKind >= codegenoptions::LimitedDebugInfo);
> EmitDeclare(VD, Storage, llvm::None, Builder);
> }
>
> @@ -3078,7 +3076,7 @@ llvm::DIType *CGDebugInfo::CreateSelfTyp
> void CGDebugInfo::EmitDeclareOfBlockDeclRefVariable(
> const VarDecl *VD, llvm::Value *Storage, CGBuilderTy &Builder,
> const CGBlockInfo &blockInfo, llvm::Instruction *InsertPoint) {
> - assert(DebugKind >= CodeGenOptions::LimitedDebugInfo);
> + assert(DebugKind >= codegenoptions::LimitedDebugInfo);
> assert(!LexicalBlockStack.empty() && "Region stack mismatch, stack
> empty!");
>
> if (Builder.GetInsertBlock() == nullptr)
> @@ -3146,7 +3144,7 @@ void CGDebugInfo::EmitDeclareOfBlockDecl
> void CGDebugInfo::EmitDeclareOfArgVariable(const VarDecl *VD, llvm::Value
> *AI,
> unsigned ArgNo,
> CGBuilderTy &Builder) {
> - assert(DebugKind >= CodeGenOptions::LimitedDebugInfo);
> + assert(DebugKind >= codegenoptions::LimitedDebugInfo);
> EmitDeclare(VD, AI, ArgNo, Builder);
> }
>
> @@ -3165,7 +3163,7 @@ void CGDebugInfo::EmitDeclareOfBlockLite
> unsigned ArgNo,
> llvm::Value
> *LocalAddr,
> CGBuilderTy
> &Builder) {
> - assert(DebugKind >= CodeGenOptions::LimitedDebugInfo);
> + assert(DebugKind >= codegenoptions::LimitedDebugInfo);
> ASTContext &C = CGM.getContext();
> const BlockDecl *blockDecl = block.getBlockDecl();
>
> @@ -3351,7 +3349,7 @@ llvm::DIGlobalVariable *CGDebugInfo::Col
>
> void CGDebugInfo::EmitGlobalVariable(llvm::GlobalVariable *Var,
> const VarDecl *D) {
> - assert(DebugKind >= CodeGenOptions::LimitedDebugInfo);
> + assert(DebugKind >= codegenoptions::LimitedDebugInfo);
> // Create global variable debug descriptor.
> llvm::DIFile *Unit = nullptr;
> llvm::DIScope *DContext = nullptr;
> @@ -3383,7 +3381,7 @@ void CGDebugInfo::EmitGlobalVariable(llv
>
> void CGDebugInfo::EmitGlobalVariable(const ValueDecl *VD,
> llvm::Constant *Init) {
> - assert(DebugKind >= CodeGenOptions::LimitedDebugInfo);
> + assert(DebugKind >= codegenoptions::LimitedDebugInfo);
> // Create the descriptor for the variable.
> llvm::DIFile *Unit = getOrCreateFile(VD->getLocation());
> StringRef Name = VD->getName();
> @@ -3430,7 +3428,7 @@ llvm::DIScope *CGDebugInfo::getCurrentCo
> }
>
> void CGDebugInfo::EmitUsingDirective(const UsingDirectiveDecl &UD) {
> - if (CGM.getCodeGenOpts().getDebugInfo() <
> CodeGenOptions::LimitedDebugInfo)
> + if (CGM.getCodeGenOpts().getDebugInfo() <
> codegenoptions::LimitedDebugInfo)
> return;
> const NamespaceDecl *NSDecl = UD.getNominatedNamespace();
> if (!NSDecl->isAnonymousNamespace() ||
> @@ -3443,7 +3441,7 @@ void CGDebugInfo::EmitUsingDirective(con
> }
>
> void CGDebugInfo::EmitUsingDecl(const UsingDecl &UD) {
> - if (CGM.getCodeGenOpts().getDebugInfo() <
> CodeGenOptions::LimitedDebugInfo)
> + if (CGM.getCodeGenOpts().getDebugInfo() <
> codegenoptions::LimitedDebugInfo)
> return;
> assert(UD.shadow_size() &&
> "We shouldn't be codegening an invalid UsingDecl containing no
> decls");
> @@ -3469,7 +3467,7 @@ void CGDebugInfo::EmitImportDecl(const I
>
> llvm::DIImportedEntity *
> CGDebugInfo::EmitNamespaceAlias(const NamespaceAliasDecl &NA) {
> - if (CGM.getCodeGenOpts().getDebugInfo() <
> CodeGenOptions::LimitedDebugInfo)
> + if (CGM.getCodeGenOpts().getDebugInfo() <
> codegenoptions::LimitedDebugInfo)
> return nullptr;
> auto &VH = NamespaceAliasCache[&NA];
> if (VH)
> @@ -3564,7 +3562,7 @@ void CGDebugInfo::finalize() {
> }
>
> void CGDebugInfo::EmitExplicitCastType(QualType Ty) {
> - if (CGM.getCodeGenOpts().getDebugInfo() <
> CodeGenOptions::LimitedDebugInfo)
> + if (CGM.getCodeGenOpts().getDebugInfo() <
> codegenoptions::LimitedDebugInfo)
> return;
>
> if (auto *DieTy = getOrCreateType(Ty, getOrCreateMainFile()))
>
> Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.h
> URL: http://llvm.org/viewvc/llvm-
> project/cfe/trunk/lib/CodeGen/CGDebugInfo.h?rev=259489&r1=259488&r2=259489
> &view=diff
> ==========================================================================
> ====
> --- cfe/trunk/lib/CodeGen/CGDebugInfo.h (original)
> +++ cfe/trunk/lib/CodeGen/CGDebugInfo.h Tue Feb 2 05:06:51 2016
> @@ -53,7 +53,7 @@ class CGDebugInfo {
> friend class ApplyDebugLocation;
> friend class SaveAndRestoreLocation;
> CodeGenModule &CGM;
> - const CodeGenOptions::DebugInfoKind DebugKind;
> + const codegenoptions::DebugInfoKind DebugKind;
> bool DebugTypeExtRefs;
> llvm::DIBuilder DBuilder;
> llvm::DICompileUnit *TheCU = nullptr;
>
> Modified: cfe/trunk/lib/CodeGen/CGDecl.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/cfe/trunk/lib/CodeGen/CGDecl.cpp?rev=259489&r1=259488&r2=259489&vi
> ew=diff
> ==========================================================================
> ====
> --- cfe/trunk/lib/CodeGen/CGDecl.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGDecl.cpp Tue Feb 2 05:06:51 2016
> @@ -394,7 +394,7 @@ void CodeGenFunction::EmitStaticVarDecl(
> // Emit global variable debug descriptor for static vars.
> CGDebugInfo *DI = getDebugInfo();
> if (DI &&
> - CGM.getCodeGenOpts().getDebugInfo() >=
> CodeGenOptions::LimitedDebugInfo) {
> + CGM.getCodeGenOpts().getDebugInfo() >=
> codegenoptions::LimitedDebugInfo) {
> DI->setLocation(D.getLocation());
> DI->EmitGlobalVariable(var, &D);
> }
> @@ -1085,8 +1085,8 @@ CodeGenFunction::EmitAutoVarAlloca(const
> // Emit debug info for local var declaration.
> if (HaveInsertPoint())
> if (CGDebugInfo *DI = getDebugInfo()) {
> - if (CGM.getCodeGenOpts().getDebugInfo()
> - >= CodeGenOptions::LimitedDebugInfo) {
> + if (CGM.getCodeGenOpts().getDebugInfo() >=
> + codegenoptions::LimitedDebugInfo) {
> DI->setLocation(D.getLocation());
> DI->EmitDeclareOfAutoVariable(&D, address.getPointer(), Builder);
> }
> @@ -1851,8 +1851,8 @@ void CodeGenFunction::EmitParmDecl(const
>
> // Emit debug info for param declaration.
> if (CGDebugInfo *DI = getDebugInfo()) {
> - if (CGM.getCodeGenOpts().getDebugInfo()
> - >= CodeGenOptions::LimitedDebugInfo) {
> + if (CGM.getCodeGenOpts().getDebugInfo() >=
> + codegenoptions::LimitedDebugInfo) {
> DI->EmitDeclareOfArgVariable(&D, DeclPtr.getPointer(), ArgNo,
> Builder);
> }
> }
>
> Modified: cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp?rev=259489&r1=259488&r2=
> 259489&view=diff
> ==========================================================================
> ====
> --- cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp Tue Feb 2 05:06:51 2016
> @@ -417,7 +417,7 @@ llvm::Value *CGOpenMPRuntime::emitUpdate
> SourceLocation Loc,
> OpenMPLocationFlags
> Flags) {
> // If no debug info is generated - return global default location.
> - if (CGM.getCodeGenOpts().getDebugInfo() == CodeGenOptions::NoDebugInfo
> ||
> + if (CGM.getCodeGenOpts().getDebugInfo() == codegenoptions::NoDebugInfo
> ||
> Loc.isInvalid())
> return getOrCreateDefaultLocation(Flags).getPointer();
>
>
> Modified: cfe/trunk/lib/CodeGen/CodeGenFunction.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/cfe/trunk/lib/CodeGen/CodeGenFunction.cpp?rev=259489&r1=259488&r2=
> 259489&view=diff
> ==========================================================================
> ====
> --- cfe/trunk/lib/CodeGen/CodeGenFunction.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CodeGenFunction.cpp Tue Feb 2 05:06:51 2016
> @@ -1764,7 +1764,7 @@ void CodeGenFunction::EmitDeclRefExprDbg
> llvm::Constant *Init) {
> assert (Init && "Invalid DeclRefExpr initializer!");
> if (CGDebugInfo *Dbg = getDebugInfo())
> - if (CGM.getCodeGenOpts().getDebugInfo() >=
> CodeGenOptions::LimitedDebugInfo)
> + if (CGM.getCodeGenOpts().getDebugInfo() >=
> codegenoptions::LimitedDebugInfo)
> Dbg->EmitGlobalVariable(E->getDecl(), Init);
> }
>
>
> Modified: cfe/trunk/lib/CodeGen/CodeGenModule.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/cfe/trunk/lib/CodeGen/CodeGenModule.cpp?rev=259489&r1=259488&r2=25
> 9489&view=diff
> ==========================================================================
> ====
> --- cfe/trunk/lib/CodeGen/CodeGenModule.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CodeGenModule.cpp Tue Feb 2 05:06:51 2016
> @@ -137,9 +137,8 @@ CodeGenModule::CodeGenModule(ASTContext
>
> // If debug info or coverage generation is enabled, create the
> CGDebugInfo
> // object.
> - if (CodeGenOpts.getDebugInfo() != CodeGenOptions::NoDebugInfo ||
> - CodeGenOpts.EmitGcovArcs ||
> - CodeGenOpts.EmitGcovNotes)
> + if (CodeGenOpts.getDebugInfo() != codegenoptions::NoDebugInfo ||
> + CodeGenOpts.EmitGcovArcs || CodeGenOpts.EmitGcovNotes)
> DebugInfo = new CGDebugInfo(*this);
>
> Block.GlobalUniqueCount = 0;
> @@ -1703,7 +1702,7 @@ void CodeGenModule::CompleteDIClassType(
> return;
>
> if (CGDebugInfo *DI = getModuleDebugInfo())
> - if (getCodeGenOpts().getDebugInfo() >=
> CodeGenOptions::LimitedDebugInfo) {
> + if (getCodeGenOpts().getDebugInfo() >=
> codegenoptions::LimitedDebugInfo) {
> const auto *ThisPtr = cast<PointerType>(D-
> >getThisType(getContext()));
> DI->getOrCreateRecordType(ThisPtr->getPointeeType(), D-
> >getLocation());
> }
> @@ -2507,7 +2506,7 @@ void CodeGenModule::EmitGlobalVarDefinit
>
> // Emit global variable debug information.
> if (CGDebugInfo *DI = getModuleDebugInfo())
> - if (getCodeGenOpts().getDebugInfo() >=
> CodeGenOptions::LimitedDebugInfo)
> + if (getCodeGenOpts().getDebugInfo() >=
> codegenoptions::LimitedDebugInfo)
> DI->EmitGlobalVariable(GV, D);
> }
>
> @@ -3663,7 +3662,7 @@ void CodeGenModule::EmitTopLevelDecl(Dec
> ObjCRuntime->GenerateClass(OMD);
> // Emit global variable debug information.
> if (CGDebugInfo *DI = getModuleDebugInfo())
> - if (getCodeGenOpts().getDebugInfo() >=
> CodeGenOptions::LimitedDebugInfo)
> + if (getCodeGenOpts().getDebugInfo() >=
> codegenoptions::LimitedDebugInfo)
> DI->getOrCreateInterfaceType(getContext().getObjCInterfaceType(
> OMD->getClassInterface()), OMD->getLocation());
> break;
>
> Modified: cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp?rev=259
> 489&r1=259488&r2=259489&view=diff
> ==========================================================================
> ====
> --- cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp (original)
> +++ cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp Tue Feb 2
> 05:06:51 2016
> @@ -151,7 +151,7 @@ public:
> CodeGenOpts.CodeModel = "default";
> CodeGenOpts.ThreadModel = "single";
> CodeGenOpts.DebugTypeExtRefs = true;
> - CodeGenOpts.setDebugInfo(CodeGenOptions::FullDebugInfo);
> + CodeGenOpts.setDebugInfo(codegenoptions::FullDebugInfo);
> }
>
> ~PCHContainerGenerator() override = default;
>
> Modified: cfe/trunk/lib/Driver/Tools.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/cfe/trunk/lib/Driver/Tools.cpp?rev=259489&r1=259488&r2=259489&view
> =diff
> ==========================================================================
> ====
> --- cfe/trunk/lib/Driver/Tools.cpp (original)
> +++ cfe/trunk/lib/Driver/Tools.cpp Tue Feb 2 05:06:51 2016
> @@ -2507,16 +2507,16 @@ static bool UseRelaxAll(Compilation &C,
>
> // Convert an arg of the form "-gN" or "-ggdbN" or one of their aliases
> // to the corresponding DebugInfoKind.
> -static CodeGenOptions::DebugInfoKind DebugLevelToInfoKind(const Arg &A) {
> +static codegenoptions::DebugInfoKind DebugLevelToInfoKind(const Arg &A) {
> assert(A.getOption().matches(options::OPT_gN_Group) &&
> "Not a -g option that specifies a debug-info level");
> if (A.getOption().matches(options::OPT_g0) ||
> A.getOption().matches(options::OPT_ggdb0))
> - return CodeGenOptions::NoDebugInfo;
> + return codegenoptions::NoDebugInfo;
> if (A.getOption().matches(options::OPT_gline_tables_only) ||
> A.getOption().matches(options::OPT_ggdb1))
> - return CodeGenOptions::DebugLineTablesOnly;
> - return CodeGenOptions::LimitedDebugInfo;
> + return codegenoptions::DebugLineTablesOnly;
> + return codegenoptions::LimitedDebugInfo;
> }
>
> // Extract the integer N from a string spelled "-dwarf-N", returning 0
> @@ -2532,17 +2532,17 @@ static unsigned DwarfVersionNum(StringRe
> }
>
> static void RenderDebugEnablingArgs(const ArgList &Args, ArgStringList
> &CmdArgs,
> - CodeGenOptions::DebugInfoKind
> DebugInfoKind,
> + codegenoptions::DebugInfoKind
> DebugInfoKind,
> unsigned DwarfVersion,
> llvm::DebuggerKind DebuggerTuning) {
> switch (DebugInfoKind) {
> - case CodeGenOptions::DebugLineTablesOnly:
> + case codegenoptions::DebugLineTablesOnly:
> CmdArgs.push_back("-debug-info-kind=line-tables-only");
> break;
> - case CodeGenOptions::LimitedDebugInfo:
> + case codegenoptions::LimitedDebugInfo:
> CmdArgs.push_back("-debug-info-kind=limited");
> break;
> - case CodeGenOptions::FullDebugInfo:
> + case codegenoptions::FullDebugInfo:
> CmdArgs.push_back("-debug-info-kind=standalone");
> break;
> default:
> @@ -2679,9 +2679,9 @@ static void CollectArgsForIntegratedAsse
> if (DwarfVersion == 0) { // Send it onward, and let cc1as
> complain.
> CmdArgs.push_back(Value.data());
> } else {
> - RenderDebugEnablingArgs(
> - Args, CmdArgs, CodeGenOptions::LimitedDebugInfo,
> DwarfVersion,
> - llvm::DebuggerKind::Default);
> + RenderDebugEnablingArgs(Args, CmdArgs,
> + codegenoptions::LimitedDebugInfo,
> + DwarfVersion,
> llvm::DebuggerKind::Default);
> }
> } else if (Value.startswith("-mcpu") || Value.startswith("-mfpu")
> ||
> Value.startswith("-mhwdiv") || Value.startswith("-
> march")) {
> @@ -4113,8 +4113,7 @@ void Clang::ConstructJob(Compilation &C,
> unsigned DwarfVersion = 0;
> llvm::DebuggerKind DebuggerTuning =
> getToolChain().getDefaultDebuggerTuning();
> // These two are potentially updated by AddClangCLArgs.
> - enum CodeGenOptions::DebugInfoKind DebugInfoKind =
> - CodeGenOptions::NoDebugInfo;
> + codegenoptions::DebugInfoKind DebugInfoKind =
> codegenoptions::NoDebugInfo;
> bool EmitCodeView = false;
>
> // Add clang-cl arguments.
> @@ -4169,12 +4168,12 @@ void Clang::ConstructJob(Compilation &C,
> // If you say "-gsplit-dwarf -gline-tables-only", -gsplit-dwarf
> loses.
> // But -gsplit-dwarf is not a g_group option, hence we have to
> check the
> // order explicitly. (If -gsplit-dwarf wins, we fix DebugInfoKind
> later.)
> - if (SplitDwarfArg && DebugInfoKind <
> CodeGenOptions::LimitedDebugInfo &&
> + if (SplitDwarfArg && DebugInfoKind <
> codegenoptions::LimitedDebugInfo &&
> A->getIndex() > SplitDwarfArg->getIndex())
> SplitDwarfArg = nullptr;
> } else
> // For any other 'g' option, use Limited.
> - DebugInfoKind = CodeGenOptions::LimitedDebugInfo;
> + DebugInfoKind = codegenoptions::LimitedDebugInfo;
> }
>
> // If a debugger tuning argument appeared, remember it.
> @@ -4199,7 +4198,7 @@ void Clang::ConstructJob(Compilation &C,
> // DwarfVersion remains at 0 if no explicit choice was made.
> CmdArgs.push_back("-gcodeview");
> } else if (DwarfVersion == 0 &&
> - DebugInfoKind != CodeGenOptions::NoDebugInfo) {
> + DebugInfoKind != codegenoptions::NoDebugInfo) {
> DwarfVersion = getToolChain().GetDefaultDwarfVersion();
> }
>
> @@ -4213,7 +4212,7 @@ void Clang::ConstructJob(Compilation &C,
>
> // FIXME: Move backend command line options to the module.
> if (Args.hasArg(options::OPT_gmodules)) {
> - DebugInfoKind = CodeGenOptions::LimitedDebugInfo;
> + DebugInfoKind = codegenoptions::LimitedDebugInfo;
> CmdArgs.push_back("-dwarf-ext-refs");
> CmdArgs.push_back("-fmodule-format=obj");
> }
> @@ -4222,7 +4221,7 @@ void Clang::ConstructJob(Compilation &C,
> // splitting and extraction.
> // FIXME: Currently only works on Linux.
> if (getToolChain().getTriple().isOSLinux() && SplitDwarfArg) {
> - DebugInfoKind = CodeGenOptions::LimitedDebugInfo;
> + DebugInfoKind = codegenoptions::LimitedDebugInfo;
> CmdArgs.push_back("-backend-option");
> CmdArgs.push_back("-split-dwarf=Enable");
> }
> @@ -4235,8 +4234,8 @@ void Clang::ConstructJob(Compilation &C,
> bool NeedFullDebug = Args.hasFlag(options::OPT_fstandalone_debug,
> options::OPT_fno_standalone_debug,
>
> getToolChain().GetDefaultStandaloneDebug());
> - if (DebugInfoKind == CodeGenOptions::LimitedDebugInfo && NeedFullDebug)
> - DebugInfoKind = CodeGenOptions::FullDebugInfo;
> + if (DebugInfoKind == codegenoptions::LimitedDebugInfo && NeedFullDebug)
> + DebugInfoKind = codegenoptions::FullDebugInfo;
> RenderDebugEnablingArgs(Args, CmdArgs, DebugInfoKind, DwarfVersion,
> DebuggerTuning);
>
> @@ -5823,7 +5822,7 @@ static EHFlags parseClangCLEHFlags(const
> }
>
> void Clang::AddClangCLArgs(const ArgList &Args, ArgStringList &CmdArgs,
> - enum CodeGenOptions::DebugInfoKind
> *DebugInfoKind,
> + codegenoptions::DebugInfoKind *DebugInfoKind,
> bool *EmitCodeView) const {
> unsigned RTOptionID = options::OPT__SLASH_MT;
>
> @@ -5893,7 +5892,7 @@ void Clang::AddClangCLArgs(const ArgList
> // If we are emitting CV but not DWARF, don't build information that
> LLVM
> // can't yet process.
> if (*EmitCodeView && !EmitDwarf)
> - *DebugInfoKind = CodeGenOptions::DebugLineTablesOnly;
> + *DebugInfoKind = codegenoptions::DebugLineTablesOnly;
> if (*EmitCodeView)
> CmdArgs.push_back("-gcodeview");
>
> @@ -6057,8 +6056,8 @@ void ClangAs::ConstructJob(Compilation &
> if (DwarfVersion == 0)
> DwarfVersion = getToolChain().GetDefaultDwarfVersion();
> RenderDebugEnablingArgs(Args, CmdArgs,
> - (WantDebug ? CodeGenOptions::LimitedDebugInfo
> - : CodeGenOptions::NoDebugInfo),
> + (WantDebug ? codegenoptions::LimitedDebugInfo
> + : codegenoptions::NoDebugInfo),
> DwarfVersion, llvm::DebuggerKind::Default);
>
> // Add the -fdebug-compilation-dir flag if needed.
>
> Modified: cfe/trunk/lib/Driver/Tools.h
> URL: http://llvm.org/viewvc/llvm-
> project/cfe/trunk/lib/Driver/Tools.h?rev=259489&r1=259488&r2=259489&view=d
> iff
> ==========================================================================
> ====
> --- cfe/trunk/lib/Driver/Tools.h (original)
> +++ cfe/trunk/lib/Driver/Tools.h Tue Feb 2 05:06:51 2016
> @@ -11,10 +11,10 @@
> #define LLVM_CLANG_LIB_DRIVER_TOOLS_H
>
> #include "clang/Basic/VersionTuple.h"
> +#include "clang/Driver/DebugInfoKind.h"
> #include "clang/Driver/Tool.h"
> #include "clang/Driver/Types.h"
> #include "clang/Driver/Util.h"
> -#include "clang/Frontend/CodeGenOptions.h"
> #include "llvm/ADT/Triple.h"
> #include "llvm/Option/Option.h"
> #include "llvm/Support/Compiler.h"
> @@ -93,7 +93,7 @@ private:
>
> void AddClangCLArgs(const llvm::opt::ArgList &Args,
> llvm::opt::ArgStringList &CmdArgs,
> - enum CodeGenOptions::DebugInfoKind *DebugInfoKind,
> + codegenoptions::DebugInfoKind *DebugInfoKind,
> bool *EmitCodeView) const;
>
> visualstudio::Compiler *getCLFallback() const;
>
> Modified: cfe/trunk/lib/Frontend/CompilerInvocation.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=259489&r1=259488
> &r2=259489&view=diff
> ==========================================================================
> ====
> --- cfe/trunk/lib/Frontend/CompilerInvocation.cpp (original)
> +++ cfe/trunk/lib/Frontend/CompilerInvocation.cpp Tue Feb 2 05:06:51 2016
> @@ -416,15 +416,15 @@ static bool ParseCodeGenArgs(CodeGenOpti
> if (Arg *A = Args.getLastArg(OPT_debug_info_kind_EQ)) {
> unsigned Val =
> llvm::StringSwitch<unsigned>(A->getValue())
> - .Case("line-tables-only",
> CodeGenOptions::DebugLineTablesOnly)
> - .Case("limited", CodeGenOptions::LimitedDebugInfo)
> - .Case("standalone", CodeGenOptions::FullDebugInfo)
> + .Case("line-tables-only",
> codegenoptions::DebugLineTablesOnly)
> + .Case("limited", codegenoptions::LimitedDebugInfo)
> + .Case("standalone", codegenoptions::FullDebugInfo)
> .Default(~0U);
> if (Val == ~0U)
> Diags.Report(diag::err_drv_invalid_value) << A->getAsString(Args)
> << A->getValue();
> else
> - Opts.setDebugInfo(static_cast<CodeGenOptions::DebugInfoKind>(Val));
> + Opts.setDebugInfo(static_cast<codegenoptions::DebugInfoKind>(Val));
> }
> if (Arg *A = Args.getLastArg(OPT_debugger_tuning_EQ)) {
> unsigned Val = llvm::StringSwitch<unsigned>(A->getValue())
> @@ -727,8 +727,8 @@ static bool ParseCodeGenArgs(CodeGenOpti
>
> // If the user requested a flag that requires source locations
> available in
> // the backend, make sure that the backend tracks source location
> information.
> - if (NeedLocTracking && Opts.getDebugInfo() ==
> CodeGenOptions::NoDebugInfo)
> - Opts.setDebugInfo(CodeGenOptions::LocTrackingOnly);
> + if (NeedLocTracking && Opts.getDebugInfo() ==
> codegenoptions::NoDebugInfo)
> + Opts.setDebugInfo(codegenoptions::LocTrackingOnly);
>
> Opts.RewriteMapFiles = Args.getAllArgValues(OPT_frewrite_map_file);
>
>
> Modified: cfe/trunk/lib/Frontend/Rewrite/FrontendActions.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/cfe/trunk/lib/Frontend/Rewrite/FrontendActions.cpp?rev=259489&r1=2
> 59488&r2=259489&view=diff
> ==========================================================================
> ====
> --- cfe/trunk/lib/Frontend/Rewrite/FrontendActions.cpp (original)
> +++ cfe/trunk/lib/Frontend/Rewrite/FrontendActions.cpp Tue Feb 2 05:06:51
> 2016
> @@ -153,11 +153,10 @@ std::unique_ptr<ASTConsumer>
> RewriteObjCAction::CreateASTConsumer(CompilerInstance &CI, StringRef
> InFile) {
> if (raw_ostream *OS = CI.createDefaultOutputFile(false, InFile, "cpp"))
> {
> if (CI.getLangOpts().ObjCRuntime.isNonFragile())
> - return CreateModernObjCRewriter(InFile, OS,
> - CI.getDiagnostics(), CI.getLangOpts(),
> - CI.getDiagnosticOpts().NoRewriteMacros,
> - (CI.getCodeGenOpts().getDebugInfo() !=
> - CodeGenOptions::NoDebugInfo));
> + return CreateModernObjCRewriter(
> + InFile, OS, CI.getDiagnostics(), CI.getLangOpts(),
> + CI.getDiagnosticOpts().NoRewriteMacros,
> + (CI.getCodeGenOpts().getDebugInfo() !=
> codegenoptions::NoDebugInfo));
> return CreateObjCRewriter(InFile, OS,
> CI.getDiagnostics(), CI.getLangOpts(),
> CI.getDiagnosticOpts().NoRewriteMacros);
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list