Compile the attached code with -O3. It produces an redundent cmpl following a
subl:
subl 28(%ebp), %eax
cmpl $0, %eax
je L12
jg L10
Looks like it's missing a insn pattern so combine would combine subl + cmpl.
See http://gcc.gnu.org/ml/gcc/2005-10/msg00347.html
--
Summary: Redudant compare to zero not eliminated
Product: gcc
Version: 4.0.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: evancheng at gcc dot gnu dot org
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24418