turn on memset idiom recognition by default. Though there are still lots of
authorChris Lattner <sabre@nondot.org>
Sat, 1 Jan 2011 20:39:18 +0000 (20:39 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 1 Jan 2011 20:39:18 +0000 (20:39 +0000)
limitations, this kicks in dozens of times in the 4 specfp2000 benchmarks,
and hundreds of times in the int part.  It also kicks in hundreds of times
in multisource.

This kicks in right before loop deletion, which has the pleasant effect of
deleting loops that *just* do a memset.

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

include/llvm/Support/StandardPasses.h

index a608f2ceaba88e81da0d795e742fb23f8efc280b..7e32f1fbae7860dd79266e388185373b329e427a 100644 (file)
@@ -145,6 +145,7 @@ namespace llvm {
     PM->add(createLoopUnswitchPass(OptimizeSize || OptimizationLevel < 3));
     PM->add(createInstructionCombiningPass());  
     PM->add(createIndVarSimplifyPass());        // Canonicalize indvars
+    PM->add(createLoopIdiomPass());             // Recognize idioms like memset.
     PM->add(createLoopDeletionPass());          // Delete dead loops
     if (UnrollLoops)
       PM->add(createLoopUnrollPass());          // Unroll small loops