Refactor. No functionality change.
authorDevang Patel <dpatel@apple.com>
Wed, 1 Jul 2009 23:19:01 +0000 (23:19 +0000)
committerDevang Patel <dpatel@apple.com>
Wed, 1 Jul 2009 23:19:01 +0000 (23:19 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74659 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp

index 48ebd0ff0d4fd75fabbe4ae37e280408e23e4077..f3cb2b6b6ddf79d37370eed0a0614665ad325cfc 100644 (file)
@@ -3955,13 +3955,15 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) {
     if (!DIDescriptor::ValidDebugInfo(SP, OptLevel))
       return 0;
 
+    DISubprogram Subprogram(cast<GlobalVariable>(SP));
+    DICompileUnit CompileUnit = Subprogram.getCompileUnit();
+    unsigned Line = Subprogram.getLineNumber();
+
     MachineFunction &MF = DAG.getMachineFunction();
     if (OptLevel == CodeGenOpt::None) {
       // llvm.dbg.func.start implicitly defines a dbg_stoppoint which is what
       // (most?) gdb expects.
       DebugLoc PrevLoc = CurDebugLoc;
-      DISubprogram Subprogram(cast<GlobalVariable>(SP));
-      DICompileUnit CompileUnit = Subprogram.getCompileUnit();
 
       if (!Subprogram.describes(MF.getFunction())) {
         // This is a beginning of an inlined function.
@@ -3973,7 +3975,6 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) {
           return 0;
 
         // Record the source line.
-        unsigned Line = Subprogram.getLineNumber();
         setCurDebugLoc(DebugLoc::get(
                      MF.getOrCreateDebugLocID(CompileUnit.getGV(), Line, 0)));
 
@@ -3997,8 +3998,6 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) {
         }
       }
     } else {
-      DISubprogram Subprogram(cast<GlobalVariable>(SP));
-
       std::string SPName;
       Subprogram.getLinkageName(SPName);
       if (!SPName.empty()
@@ -4008,14 +4007,9 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) {
         return 0;
       }
 
-      // llvm.dbg.func.start implicitly defines a dbg_stoppoint which is
-      // what (most?) gdb expects.
-      DICompileUnit CompileUnit = Subprogram.getCompileUnit();
-
       // Record the source line but does not create a label for the normal
       // function start. It will be emitted at asm emission time. However,
       // create a label if this is a beginning of inlined function.
-      unsigned Line = Subprogram.getLineNumber();
       setCurDebugLoc(DebugLoc::get(
                      MF.getOrCreateDebugLocID(CompileUnit.getGV(), Line, 0)));
       // FIXME -  Start new region because llvm.dbg.func_start also defines