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-boun...@lists.llvm.org] On Behalf Of > Benjamin Kramer via cfe-commits > Sent: Tuesday, February 02, 2016 3:07 AM > To: cfe-commits@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@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits