diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
index 1fa887c..458e865 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
@@ -796,7 +796,6 @@
 #define HANDLE_INST(NUM, OPCODE, CLASS) \
     case Instruction::OPCODE: visit##OPCODE((CLASS&)I); break;
 #include "llvm/Instruction.def"
-#undef HANDLE_INST
   }
 
   // Assign the ordering to the freshly created DAG nodes.
@@ -2195,19 +2194,6 @@
                           getValue(I.getAddress())));
 }
 
-void SelectionDAGBuilder::visitUnreachable(const UnreachableInst &I) {
-  // If the function consists of a single "unreachable" instruction, emit a
-  // "trap". This prevents the back-ends from generating empty functions or
-  // functions which have a prologue, but no epilogue.
-  const BasicBlock *BB = I.getParent();
-  const Function *F = BB->getParent();
-
-  if (F->size() == 1 && BB->size() == 1 &&
-      isa<UnreachableInst>(BB->getTerminator()))
-      DAG.setRoot(DAG.getNode(ISD::TRAP, getCurDebugLoc(),
-                              MVT::Other, getRoot()));
-}
-
 void SelectionDAGBuilder::visitFSub(const User &I) {
   // -0.0 - X --> fneg
   const Type *Ty = I.getType();
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
index 8621637..46733d6 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
@@ -385,7 +385,7 @@
   void visitBr(const BranchInst &I);
   void visitSwitch(const SwitchInst &I);
   void visitIndirectBr(const IndirectBrInst &I);
-  void visitUnreachable(const UnreachableInst &I);
+  void visitUnreachable(const UnreachableInst &I) { /* noop */ }
 
   // Helpers for visitSwitch
   bool handleSmallSwitchRange(CaseRec& CR,
diff --git a/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll b/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll
index ba59309..db2ab87 100644
--- a/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll
+++ b/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -march=ppc32 | grep trap
+; RUN: llc < %s -march=ppc32 | grep nop
 target triple = "powerpc-apple-darwin8"
 
 
diff --git a/test/CodeGen/X86/2008-01-25-EmptyFunction.ll b/test/CodeGen/X86/2008-01-25-EmptyFunction.ll
index 4baa294..b936686 100644
--- a/test/CodeGen/X86/2008-01-25-EmptyFunction.ll
+++ b/test/CodeGen/X86/2008-01-25-EmptyFunction.ll
@@ -1,17 +1,8 @@
-; RUN: llc < %s -march=x86 | FileCheck -check-prefix=NO-FP %s
-; RUN: llc < %s -march=x86 -disable-fp-elim | FileCheck -check-prefix=FP %s
+; RUN: llc < %s -march=x86 | grep nop
 target triple = "i686-apple-darwin8"
 
-define void @func1() noreturn nounwind  {
-entry:
-; NO-FP: ud2
-        unreachable
-}
 
-define void @func2() noreturn nounwind  {
+define void @bork() noreturn nounwind  {
 entry:
-; FP: pushl %ebp
-; FP: movl %esp, %ebp
-; FP: ud2
         unreachable
 }
