For this code: int f(int *ptr, int t) { if (t) return *ptr; else return *ptr; }
the jump is not eliminated: f: beq $17,$L2 ldl $0,0($16) ret $L2: ldl $0,0($16) ret This used to work with 2.95 (not sure whether that still counts as regression...), but not with 3.3, 3.4, 4.0, or 4.1.0 20050915. -- Summary: Simple redundancy not eliminated Product: gcc Version: 4.1.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P2 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: falk at debian dot org CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: alpha-linux-gnu GCC host triplet: alpha-linux-gnu GCC target triplet: alpha-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24001