Debug Info: Don't bother emitting DW_AT_frame_base if the function has
authorAdrian Prantl <aprantl@apple.com>
Wed, 14 Jan 2015 00:15:16 +0000 (00:15 +0000)
committerAdrian Prantl <aprantl@apple.com>
Wed, 14 Jan 2015 00:15:16 +0000 (00:15 +0000)
no frame register. "Tested" via an assertion triggered by DwarfExpression.

llvm-svn: 225858

llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp

index 6901d22..fe01980 100644 (file)
@@ -295,7 +295,8 @@ DIE &DwarfCompileUnit::updateSubprogramScopeDIE(DISubprogram SP) {
     const TargetRegisterInfo *RI =
         Asm->TM.getSubtargetImpl()->getRegisterInfo();
     MachineLocation Location(RI->getFrameRegister(*Asm->MF));
-    addAddress(*SPDie, dwarf::DW_AT_frame_base, Location);
+    if (RI->isPhysicalRegister(Location.getReg()))
+      addAddress(*SPDie, dwarf::DW_AT_frame_base, Location);
   }
 
   // Add name to the name table, we do this here because we're guaranteed