diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
index f38b2eb..e4447c3 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
@@ -13,7 +13,6 @@
 
 #define DEBUG_TYPE "isel"
 #include "llvm/CodeGen/SelectionDAGISel.h"
-#include "SimpleBBISel.h"
 #include "llvm/ADT/BitVector.h"
 #include "llvm/Analysis/AliasAnalysis.h"
 #include "llvm/Constants.h"
@@ -5486,14 +5485,12 @@
   // each basic block.
   NodeAllocatorType NodeAllocator;
 
-  SimpleBBISel SISel(MF, TLI);
   std::vector<std::pair<MachineInstr*, unsigned> > PHINodesToUpdate;
   for (Function::iterator I = Fn.begin(), E = Fn.end(); I != E; ++I) {
     BasicBlock *LLVMBB = &*I;
     PHINodesToUpdate.clear();
 
-    if (!Fast || !SISel.SelectBasicBlock(LLVMBB,  FuncInfo.MBBMap[LLVMBB]))
-      SelectBasicBlock(LLVMBB, MF, FuncInfo, PHINodesToUpdate, NodeAllocator);
+    SelectBasicBlock(LLVMBB, MF, FuncInfo, PHINodesToUpdate, NodeAllocator);
     FinishBasicBlock(LLVMBB, MF, FuncInfo, PHINodesToUpdate, NodeAllocator);
   }
 }
diff --git a/lib/CodeGen/SelectionDAG/SimpleBBISel.cpp b/lib/CodeGen/SelectionDAG/SimpleBBISel.cpp
deleted file mode 100644
index 1200cd3..0000000
--- a/lib/CodeGen/SelectionDAG/SimpleBBISel.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===-- SimpleBBISel.cpp - Implement the SimpleBBISel class ---------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This implements simple basic block instruction selection. If the given
-// BasicBlock is considered "simple", i.e. all operations are supported by
-// the target and their types are legal, it does instruction directly from
-// LLVM BasicBlock to MachineInstr's.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "simple-isel"
-#include "SimpleBBISel.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/SelectionDAG.h"
-using namespace llvm;
-
-/// SelectBasicBlock - Try to convert a LLVM basic block into a
-/// MachineBasicBlock using simple instruction selection. Returns false if it
-/// is not able to do so.
-bool SimpleBBISel::SelectBasicBlock(BasicBlock *BB, MachineBasicBlock *MBB) {
-  return false;
-}
diff --git a/lib/CodeGen/SelectionDAG/SimpleBBISel.h b/lib/CodeGen/SelectionDAG/SimpleBBISel.h
deleted file mode 100644
index f5a8be5..0000000
--- a/lib/CodeGen/SelectionDAG/SimpleBBISel.h
+++ /dev/null
@@ -1,45 +0,0 @@
-//===-- SimpleBBISel.cpp - Definition of the SimpleBBISel class -----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the SimpleBBISel class which handles simple basic block
-// instruction selection. If the given BasicBlock is considered "simple", i.e.
-// all operations are supported by the target and their types are legal, it
-// does instruction directly from LLVM BasicBlock to MachineInstr's.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SELECTIONDAG_SIMPLEBBISEL_H
-#define SELECTIONDAG_SIMPLEBBISEL_H
-
-#include "llvm/Support/Compiler.h"
-
-namespace llvm {
-
-class BasicBlock;
-class MachineBasicBlock;
-class MachineFunction;
-class TargetLowering;
-
-class VISIBILITY_HIDDEN SimpleBBISel {
-  MachineFunction &MF;
-  TargetLowering &TLI;
-  
- public:
-  explicit SimpleBBISel(MachineFunction &mf, TargetLowering &tli)
-    : MF(mf), TLI(tli) {};
-
-  /// SelectBasicBlock - Try to convert a LLVM basic block into a
-  /// MachineBasicBlock using simple instruction selection. Returns false if it
-  /// is not able to do so.
-  bool SelectBasicBlock(BasicBlock *BB, MachineBasicBlock *MBB);
-};
-  
-} // end namespace llvm.
-
-#endif
