Simplify.
authorDevang Patel <dpatel@apple.com>
Mon, 25 Oct 2010 21:31:46 +0000 (21:31 +0000)
committerDevang Patel <dpatel@apple.com>
Mon, 25 Oct 2010 21:31:46 +0000 (21:31 +0000)
Do not count use of sdisel for single call instruction.

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

include/llvm/CodeGen/SelectionDAGISel.h
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

index 75988fa27e53a293e98d02316bc2b7aea520de36..9601bbc2f95c0d8f8813b707fa78b9ea51b4d78f 100644 (file)
@@ -287,7 +287,7 @@ private:
   bool TryToFoldFastISelLoad(const LoadInst *LI, FastISel *FastIS);
   void FinishBasicBlock();
 
-  bool SelectBasicBlock(BasicBlock::const_iterator Begin,
+  void SelectBasicBlock(BasicBlock::const_iterator Begin,
                         BasicBlock::const_iterator End,
                         bool &HadTailCall);
   void CodeGenAndEmitDAG();
index a47f645907a90dd9a8bf01a3a2df3373777593b6..7b7ea2b265a5577e7cef6ace19fc455198f4850d 100644 (file)
@@ -376,7 +376,7 @@ bool SelectionDAGISel::runOnMachineFunction(MachineFunction &mf) {
   return true;
 }
 
-bool
+void
 SelectionDAGISel::SelectBasicBlock(BasicBlock::const_iterator Begin,
                                    BasicBlock::const_iterator End,
                                    bool &HadTailCall) {
@@ -393,7 +393,7 @@ SelectionDAGISel::SelectBasicBlock(BasicBlock::const_iterator Begin,
 
   // Final step, emit the lowered DAG as machine code.
   CodeGenAndEmitDAG();
-  return Begin != End;
+  return;
 }
 
 void SelectionDAGISel::ComputeLiveOutVRegInfo() {
@@ -783,7 +783,6 @@ void SelectionDAGISel::SelectAllBasicBlocks(const Function &Fn) {
 
   // Iterate over all basic blocks in the function.
   for (Function::const_iterator I = Fn.begin(), E = Fn.end(); I != E; ++I) {
-    bool BBSelectedUsingDAG = false;
     const BasicBlock *LLVMBB = &*I;
 #ifndef NDEBUG
     CheckLineNumbers(LLVMBB);
@@ -872,7 +871,7 @@ void SelectionDAGISel::SelectAllBasicBlocks(const Function &Fn) {
           }
 
           bool HadTailCall = false;
-          BBSelectedUsingDAG |= SelectBasicBlock(Inst, BI, HadTailCall);
+          SelectBasicBlock(Inst, BI, HadTailCall);
 
           // If the call was emitted as a tail call, we're done with the block.
           if (HadTailCall) {
@@ -902,18 +901,19 @@ void SelectionDAGISel::SelectAllBasicBlocks(const Function &Fn) {
       FastIS->recomputeInsertPt();
     }
 
+    if (Begin != BI)
+      ++NumDAGBlocks;
+    else
+      ++NumFastIselBlocks;
+
     // Run SelectionDAG instruction selection on the remainder of the block
     // not handled by FastISel. If FastISel is not run, this is the entire
     // block.
     bool HadTailCall;
-    BBSelectedUsingDAG |= SelectBasicBlock(Begin, BI, HadTailCall);
+    SelectBasicBlock(Begin, BI, HadTailCall);
 
     FinishBasicBlock();
     FuncInfo->PHINodesToUpdate.clear();
-    if (BBSelectedUsingDAG)
-      ++NumDAGBlocks;
-    else
-      ++NumFastIselBlocks;
   }
 
   delete FastIS;