diff options
| author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-04-06 23:27:00 +0000 | 
|---|---|---|
| committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-04-06 23:27:00 +0000 | 
| commit | 6186fb2cd008ea9445ebc1dddced644cdbaeead5 (patch) | |
| tree | baf2faaf46e56cc70b74c23f9aa1cee6a02f4a7d /llvm/lib/Transforms | |
| parent | c755128673b035567f712a5afea7a5f1a24bf4f2 (diff) | |
| download | bcm5719-llvm-6186fb2cd008ea9445ebc1dddced644cdbaeead5.tar.gz bcm5719-llvm-6186fb2cd008ea9445ebc1dddced644cdbaeead5.zip  | |
Transforms: Stop using DIDescriptor::is*() and auto-casting
Same as r234255, but for lib/Analysis and lib/Transforms.
llvm-svn: 234257
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/IPO/StripSymbols.cpp | 12 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp | 16 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Scalar/SampleProfile.cpp | 3 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Utils/CloneFunction.cpp | 3 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Utils/Local.cpp | 18 | 
5 files changed, 21 insertions, 31 deletions
diff --git a/llvm/lib/Transforms/IPO/StripSymbols.cpp b/llvm/lib/Transforms/IPO/StripSymbols.cpp index b5d5476d417..74c96eaafa2 100644 --- a/llvm/lib/Transforms/IPO/StripSymbols.cpp +++ b/llvm/lib/Transforms/IPO/StripSymbols.cpp @@ -307,10 +307,10 @@ bool StripDeadDebugInfo::runOnModule(Module &M) {    for (DICompileUnit DIC : F.compile_units()) {      // Create our live subprogram list. -    DIArray SPs = DIC.getSubprograms(); +    MDSubprogramArray SPs = DIC->getSubprograms();      bool SubprogramChange = false; -    for (unsigned i = 0, e = SPs.getNumElements(); i != e; ++i) { -      DISubprogram DISP(SPs.getElement(i)); +    for (unsigned i = 0, e = SPs.size(); i != e; ++i) { +      DISubprogram DISP = SPs[i];        // Make sure we visit each subprogram only once.        if (!VisitedSet.insert(DISP).second) @@ -324,10 +324,10 @@ bool StripDeadDebugInfo::runOnModule(Module &M) {      }      // Create our live global variable list. -    DIArray GVs = DIC.getGlobalVariables(); +    MDGlobalVariableArray GVs = DIC->getGlobalVariables();      bool GlobalVariableChange = false; -    for (unsigned i = 0, e = GVs.getNumElements(); i != e; ++i) { -      DIGlobalVariable DIG(GVs.getElement(i)); +    for (unsigned i = 0, e = GVs.size(); i != e; ++i) { +      DIGlobalVariable DIG = GVs[i];        // Make sure we only visit each global variable only once.        if (!VisitedSet.insert(DIG).second) diff --git a/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp b/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp index ff96133999f..84a31b2182d 100644 --- a/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp +++ b/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp @@ -487,7 +487,7 @@ void GCOVProfiler::emitProfileNotes() {      // this pass over the original .o's as they're produced, or run it after      // LTO, we'll generate the same .gcno files. -    DICompileUnit CU(CU_Nodes->getOperand(i)); +    DICompileUnit CU = cast<MDCompileUnit>(CU_Nodes->getOperand(i));      std::error_code EC;      raw_fd_ostream out(mangleName(CU, "gcno"), EC, sys::fs::F_None);      std::string EdgeDestinations; @@ -495,9 +495,7 @@ void GCOVProfiler::emitProfileNotes() {      DIArray SPs = CU.getSubprograms();      unsigned FunctionIdent = 0;      for (unsigned i = 0, e = SPs.getNumElements(); i != e; ++i) { -      DISubprogram SP(SPs.getElement(i)); -      assert((!SP || SP.isSubprogram()) && -        "A MDNode in subprograms of a CU should be null or a DISubprogram."); +      DISubprogram SP = cast_or_null<MDSubprogram>(SPs.getElement(i));        if (!SP)          continue; @@ -577,13 +575,11 @@ bool GCOVProfiler::emitProfileArcs() {    bool Result = false;    bool InsertIndCounterIncrCode = false;    for (unsigned i = 0, e = CU_Nodes->getNumOperands(); i != e; ++i) { -    DICompileUnit CU(CU_Nodes->getOperand(i)); +    DICompileUnit CU = cast<MDCompileUnit>(CU_Nodes->getOperand(i));      DIArray SPs = CU.getSubprograms();      SmallVector<std::pair<GlobalVariable *, MDNode *>, 8> CountersBySP;      for (unsigned i = 0, e = SPs.getNumElements(); i != e; ++i) { -      DISubprogram SP(SPs.getElement(i)); -      assert((!SP || SP.isSubprogram()) && -        "A MDNode in subprograms of a CU should be null or a DISubprogram."); +      DISubprogram SP = cast_or_null<MDSubprogram>(SPs.getElement(i));        if (!SP)          continue;        Function *F = SP.getFunction(); @@ -859,7 +855,7 @@ Function *GCOVProfiler::insertCounterWriteout(    NamedMDNode *CU_Nodes = M->getNamedMetadata("llvm.dbg.cu");    if (CU_Nodes) {      for (unsigned i = 0, e = CU_Nodes->getNumOperands(); i != e; ++i) { -      DICompileUnit CU(CU_Nodes->getOperand(i)); +      DICompileUnit CU = cast<MDCompileUnit>(CU_Nodes->getOperand(i));        std::string FilenameGcda = mangleName(CU, "gcda");        uint32_t CfgChecksum = FileChecksums.empty() ? 0 : FileChecksums[i];        Builder.CreateCall3(StartFile, @@ -867,7 +863,7 @@ Function *GCOVProfiler::insertCounterWriteout(                            Builder.CreateGlobalStringPtr(ReversedVersion),                            Builder.getInt32(CfgChecksum));        for (unsigned j = 0, e = CountersBySP.size(); j != e; ++j) { -        DISubprogram SP(CountersBySP[j].second); +        DISubprogram SP = cast_or_null<MDSubprogram>(CountersBySP[j].second);          uint32_t FuncChecksum = Funcs.empty() ? 0 : Funcs[j]->getFuncChecksum();          Builder.CreateCall5(              EmitFunction, Builder.getInt32(j), diff --git a/llvm/lib/Transforms/Scalar/SampleProfile.cpp b/llvm/lib/Transforms/Scalar/SampleProfile.cpp index f56e2f1d87c..705d042a809 100644 --- a/llvm/lib/Transforms/Scalar/SampleProfile.cpp +++ b/llvm/lib/Transforms/Scalar/SampleProfile.cpp @@ -642,8 +642,7 @@ void SampleProfileLoader::propagateWeights(Function &F) {  /// \returns the line number where \p F is defined. If it returns 0,  ///          it means that there is no debug information available for \p F.  unsigned SampleProfileLoader::getFunctionLoc(Function &F) { -  DISubprogram S = getDISubprogram(&F); -  if (S.isSubprogram()) +  if (DISubprogram S = getDISubprogram(&F))      return S.getLineNumber();    // If could not find the start of \p F, emit a diagnostic to inform the user diff --git a/llvm/lib/Transforms/Utils/CloneFunction.cpp b/llvm/lib/Transforms/Utils/CloneFunction.cpp index f04ea9c29f5..a1fcb4c965a 100644 --- a/llvm/lib/Transforms/Utils/CloneFunction.cpp +++ b/llvm/lib/Transforms/Utils/CloneFunction.cpp @@ -186,7 +186,8 @@ static void CloneDebugInfoMetadata(Function *NewFunc, const Function *OldFunc,    // Ensure that OldFunc appears in the map.    // (if it's already there it must point to NewFunc anyway)    VMap[OldFunc] = NewFunc; -  DISubprogram NewSubprogram(MapMetadata(OldSubprogramMDNode, VMap)); +  DISubprogram NewSubprogram = +      cast<MDSubprogram>(MapMetadata(OldSubprogramMDNode, VMap));    for (DICompileUnit CU : Finder.compile_units()) {      DIArray Subprograms(CU.getSubprograms()); diff --git a/llvm/lib/Transforms/Utils/Local.cpp b/llvm/lib/Transforms/Utils/Local.cpp index bd15f9eadab..cba77452061 100644 --- a/llvm/lib/Transforms/Utils/Local.cpp +++ b/llvm/lib/Transforms/Utils/Local.cpp @@ -998,10 +998,8 @@ static bool LdStHasDebugValue(DIVariable &DIVar, Instruction *I) {  /// that has an associated llvm.dbg.decl intrinsic.  bool llvm::ConvertDebugDeclareToDebugValue(DbgDeclareInst *DDI,                                             StoreInst *SI, DIBuilder &Builder) { -  DIVariable DIVar(DDI->getVariable()); -  DIExpression DIExpr(DDI->getExpression()); -  assert((!DIVar || DIVar.isVariable()) && -         "Variable in DbgDeclareInst should be either null or a DIVariable."); +  DIVariable DIVar = DDI->getVariable(); +  DIExpression DIExpr = DDI->getExpression();    if (!DIVar)      return false; @@ -1029,10 +1027,8 @@ bool llvm::ConvertDebugDeclareToDebugValue(DbgDeclareInst *DDI,  /// that has an associated llvm.dbg.decl intrinsic.  bool llvm::ConvertDebugDeclareToDebugValue(DbgDeclareInst *DDI,                                             LoadInst *LI, DIBuilder &Builder) { -  DIVariable DIVar(DDI->getVariable()); -  DIExpression DIExpr(DDI->getExpression()); -  assert((!DIVar || DIVar.isVariable()) && -         "Variable in DbgDeclareInst should be either null or a DIVariable."); +  DIVariable DIVar = DDI->getVariable(); +  DIExpression DIExpr = DDI->getExpression();    if (!DIVar)      return false; @@ -1112,10 +1108,8 @@ bool llvm::replaceDbgDeclareForAlloca(AllocaInst *AI, Value *NewAllocaAddress,    if (!DDI)      return false;    DebugLoc Loc = DDI->getDebugLoc(); -  DIVariable DIVar(DDI->getVariable()); -  DIExpression DIExpr(DDI->getExpression()); -  assert((!DIVar || DIVar.isVariable()) && -         "Variable in DbgDeclareInst should be either null or a DIVariable."); +  DIVariable DIVar = DDI->getVariable(); +  DIExpression DIExpr = DDI->getExpression();    if (!DIVar)      return false;  | 

