Instruction Combination can create a ton of trivially dead instructions.  Remove
them with an DIE pass before more expensive optimizations are run.

llvm-svn: 2491
diff --git a/llvm/tools/gccas/gccas.cpp b/llvm/tools/gccas/gccas.cpp
index a292a71..5d14e3c 100644
--- a/llvm/tools/gccas/gccas.cpp
+++ b/llvm/tools/gccas/gccas.cpp
@@ -83,6 +83,7 @@
     Passes.add(createRaisePointerReferencesPass()); // Eliminate casts
     Passes.add(createPromoteMemoryToRegister());    // Promote alloca's to regs
     Passes.add(createInstructionCombiningPass());   // Combine silly seq's
+    Passes.add(createDeadInstEliminationPass());    // Kill InstCombine remnants
     Passes.add(createSCCPPass());                   // Constant prop with SCCP
     Passes.add(createGCSEPass());                   // Remove common subexprs
     Passes.add(createDeadCodeEliminationPass());    // Remove Dead code/vars