Generate these labels when we're in "fast" mode, not simply when we're no in
authorBill Wendling <isanbard@gmail.com>
Thu, 19 Feb 2009 21:12:54 +0000 (21:12 +0000)
committerBill Wendling <isanbard@gmail.com>
Thu, 19 Feb 2009 21:12:54 +0000 (21:12 +0000)
"optimize-for-size" mode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65064 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuild.h
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

index 6b78eb9700f387875442a07b395827a1bf105125..205b7b9dff1a60555d61339864a5dead7699f961 100644 (file)
@@ -3915,10 +3915,7 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) {
     if (DW && DW->ValidDebugInfo(RSI.getContext())) {
       unsigned LabelID =
         DW->RecordRegionStart(cast<GlobalVariable>(RSI.getContext()));
-      const Function *F = I.getParent()->getParent();
-
-      // FIXME: Support more than just -Os.
-      if (!F->hasFnAttr(Attribute::OptimizeForSize))
+      if (Fast)
         DAG.setRoot(DAG.getLabel(ISD::DBG_LABEL, getCurDebugLoc(),
                                  getRoot(), LabelID));
     }
@@ -3931,10 +3928,7 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) {
     if (DW && DW->ValidDebugInfo(REI.getContext())) {
       unsigned LabelID =
         DW->RecordRegionEnd(cast<GlobalVariable>(REI.getContext()));
-      const Function *F = I.getParent()->getParent();
-
-      // FIXME: Support more than just -Os.
-      if (!F->hasFnAttr(Attribute::OptimizeForSize))
+      if (Fast)
         DAG.setRoot(DAG.getLabel(ISD::DBG_LABEL, getCurDebugLoc(),
                                  getRoot(), LabelID));
     }
index 487c796321fd94b8d04bc0bddb5b5cc90cba359a..8ab3487a9582e151a0bde03c3599249af4a9299a 100644 (file)
@@ -354,14 +354,18 @@ public:
   /// FuncInfo - Information about the function as a whole.
   ///
   FunctionLoweringInfo &FuncInfo;
+
+  /// Fast - We are in -fast mode.
+  /// 
+  bool Fast;
   
   /// GFI - Garbage collection metadata for the function.
   GCFunctionInfo *GFI;
 
   SelectionDAGLowering(SelectionDAG &dag, TargetLowering &tli,
-                       FunctionLoweringInfo &funcinfo)
+                       FunctionLoweringInfo &funcinfo, bool fast)
     : CurDebugLoc(DebugLoc::getUnknownLoc()), 
-      TLI(tli), DAG(dag), FuncInfo(funcinfo) {
+      TLI(tli), DAG(dag), FuncInfo(funcinfo), Fast(fast) {
   }
 
   void init(GCFunctionInfo *gfi, AliasAnalysis &aa);
index ed6e4fbe8c07b1d971c9466f93d4059b9893d5fd..dc5f7d79f39f351e56d887c218ed26a0d059004e 100644 (file)
@@ -268,7 +268,7 @@ SelectionDAGISel::SelectionDAGISel(TargetMachine &tm, bool fast) :
   FunctionPass(&ID), TM(tm), TLI(*tm.getTargetLowering()),
   FuncInfo(new FunctionLoweringInfo(TLI)),
   CurDAG(new SelectionDAG(TLI, *FuncInfo)),
-  SDL(new SelectionDAGLowering(*CurDAG, TLI, *FuncInfo)),
+  SDL(new SelectionDAGLowering(*CurDAG, TLI, *FuncInfo, fast)),
   GFI(),
   Fast(fast),
   DAGSize(0)