[llvm-commits] [llvm] r117876 - /llvm/trunk/lib/CodeGen/PeepholeOptimizer.cpp
Bill Wendling
isanbard at gmail.com
Sun Oct 31 15:07:12 PDT 2010
Author: void
Date: Sun Oct 31 17:07:12 2010
New Revision: 117876
URL: http://llvm.org/viewvc/llvm-project?rev=117876&view=rev
Log:
Disable the peephole optimizer until 186.crafty on armv6 is fixed. This is what
looks like is happening:
Without the peephole optimizer:
(1) sub r6, r6, #32
orr r12, r12, lr, lsl r9
orr r2, r2, r3, lsl r10
(x) cmp r6, #0
ldr r9, LCPI2_10
ldr r10, LCPI2_11
(2) sub r8, r8, #32
(a) movge r12, lr, lsr r6
(y) cmp r8, #0
LPC2_10:
ldr lr, [pc, r10]
(b) movge r2, r3, lsr r8
With the peephole optimizer:
ldr r9, LCPI2_10
ldr r10, LCPI2_11
(1*) subs r6, r6, #32
(2*) subs r8, r8, #32
(a*) movge r12, lr, lsr r6
(b*) movge r2, r3, lsr r8
(1) is used by (x) for the conditional move at (a). (2) is used by (y) for the
conditional move at (b). After the peephole optimizer, these the flags resulting
from (1*) are ignored and only the flags from (2*) are considered for both
conditional moves.
Modified:
llvm/trunk/lib/CodeGen/PeepholeOptimizer.cpp
Modified: llvm/trunk/lib/CodeGen/PeepholeOptimizer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/PeepholeOptimizer.cpp?rev=117876&r1=117875&r2=117876&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/PeepholeOptimizer.cpp (original)
+++ llvm/trunk/lib/CodeGen/PeepholeOptimizer.cpp Sun Oct 31 17:07:12 2010
@@ -276,9 +276,11 @@
if (MI->getDesc().isCompare() &&
!MI->getDesc().hasUnmodeledSideEffects()) {
+#if 0
if (OptimizeCmpInstr(MI, MBB, MII))
Changed = true;
else
+#endif
++MII;
} else {
Changed |= OptimizeExtInstr(MI, MBB, LocalMIs);
More information about the llvm-commits
mailing list