Add a new convenience pass for testing InstructionSimplify. Previously
authorDuncan Sands <baldrick@free.fr>
Mon, 20 Dec 2010 20:54:37 +0000 (20:54 +0000)
committerDuncan Sands <baldrick@free.fr>
Mon, 20 Dec 2010 20:54:37 +0000 (20:54 +0000)
it could only be tested indirectly, via instcombine, gvn or some other
pass that makes use of InstructionSimplify, which means that testcases
had to be carefully contrived to dance around any other transformations
that that pass did.

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

include/llvm/InitializePasses.h
include/llvm/LinkAllPasses.h
include/llvm/Transforms/Scalar.h
lib/Transforms/Utils/CMakeLists.txt
lib/Transforms/Utils/Utils.cpp

index 0fe94c4e15002319443ffccda356c165d0dc7cd7..12bbc288003c95ddf7a6df1816e70520d30af698 100644 (file)
@@ -217,6 +217,7 @@ void initializeUnreachableBlockElimPass(PassRegistry&);
 void initializeUnreachableMachineBlockElimPass(PassRegistry&);
 void initializeVerifierPass(PassRegistry&);
 void initializeVirtRegMapPass(PassRegistry&);
+void initializeInstSimplifierPass(PassRegistry&);
 
 }
 
index c2604257133c24de967e67722e9d7b363c1f763f..69dc683e4aa017070086166e9ccaf8830ca71fd4 100644 (file)
@@ -147,6 +147,7 @@ namespace {
       (void) llvm::createLowerAtomicPass();
       (void) llvm::createCorrelatedValuePropagationPass();
       (void) llvm::createMemDepPrinter();
+      (void) llvm::createInstructionSimplifierPass();
 
       (void)new llvm::IntervalPartition();
       (void)new llvm::FindUsedTypes();
index fa848459a766b1d8dcfaff67d222bc67b77a3e8f..84690fd74062a73aaeace9df12d5a3f3d468e3e1 100644 (file)
@@ -322,6 +322,13 @@ Pass *createLowerAtomicPass();
 //
 Pass *createCorrelatedValuePropagationPass();
 
+//===----------------------------------------------------------------------===//
+//
+// InstructionSimplifier - Remove redundant instructions.
+//
+FunctionPass *createInstructionSimplifierPass();
+extern char &InstructionSimplifierID;
+
 } // End llvm namespace
 
 #endif
index 9d75f1dae038ae8fe06f28bb9852fb7a6d2aea66..5b76bb26e404a8df4ffc1f5a9765df25242b0f12 100644 (file)
@@ -21,6 +21,7 @@ add_llvm_library(LLVMTransformUtils
   PromoteMemoryToRegister.cpp
   SSAUpdater.cpp
   SimplifyCFG.cpp
+  SimplifyInstructions.cpp
   UnifyFunctionExitNodes.cpp
   Utils.cpp
   ValueMapper.cpp
index 94d8fbf877061f9dbdd3eabd901d944478b0b4fc..24e8c8ff5c5f12fd498333e9652c17af479f8abf 100644 (file)
@@ -28,6 +28,7 @@ void llvm::initializeTransformUtils(PassRegistry &Registry) {
   initializeLowerSwitchPass(Registry);
   initializePromotePassPass(Registry);
   initializeUnifyFunctionExitNodesPass(Registry);
+  initializeInstSimplifierPass(Registry);
 }
 
 /// LLVMInitializeTransformUtils - C binding for initializeTransformUtilsPasses.