public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug rtl-optimization/24418] New: Redudant compare to zero not eliminated @ 2005-10-18 0:01 evancheng at gcc dot gnu dot org 2005-10-18 0:02 ` [Bug rtl-optimization/24418] " evancheng at gcc dot gnu dot org ` (3 more replies) 0 siblings, 4 replies; 5+ messages in thread From: evancheng at gcc dot gnu dot org @ 2005-10-18 0:01 UTC (permalink / raw) To: gcc-bugs 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 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug rtl-optimization/24418] Redudant compare to zero not eliminated 2005-10-18 0:01 [Bug rtl-optimization/24418] New: Redudant compare to zero not eliminated evancheng at gcc dot gnu dot org @ 2005-10-18 0:02 ` evancheng at gcc dot gnu dot org 2005-10-18 0:07 ` pinskia at gcc dot gnu dot org ` (2 subsequent siblings) 3 siblings, 0 replies; 5+ messages in thread From: evancheng at gcc dot gnu dot org @ 2005-10-18 0:02 UTC (permalink / raw) To: gcc-bugs ------- Comment #1 from evancheng at gcc dot gnu dot org 2005-10-18 00:02 ------- Created an attachment (id=10014) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10014&action=view) C test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24418 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug rtl-optimization/24418] Redudant compare to zero not eliminated 2005-10-18 0:01 [Bug rtl-optimization/24418] New: Redudant compare to zero not eliminated evancheng at gcc dot gnu dot org 2005-10-18 0:02 ` [Bug rtl-optimization/24418] " evancheng at gcc dot gnu dot org @ 2005-10-18 0:07 ` pinskia at gcc dot gnu dot org 2005-10-18 0:10 ` pinskia at gcc dot gnu dot org 2005-10-25 22:55 ` [Bug target/24418] " evancheng at gcc dot gnu dot org 3 siblings, 0 replies; 5+ messages in thread From: pinskia at gcc dot gnu dot org @ 2005-10-18 0:07 UTC (permalink / raw) To: gcc-bugs ------- Comment #2 from pinskia at gcc dot gnu dot org 2005-10-18 00:07 ------- This is a partial regression from 2.95.3 and 3.3.3, 3.2.3 and 3.0.4: where we had: subl 28(%ebp),%eax jne .L7 ... .L7: testl %eax,%eax jle .L8 -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 GCC build triplet|i686-pc-linux-gnu | GCC host triplet|i686-pc-linux-gnu | Keywords| |missed-optimization Last reconfirmed|0000-00-00 00:00:00 |2005-10-18 00:07:31 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24418 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug rtl-optimization/24418] Redudant compare to zero not eliminated 2005-10-18 0:01 [Bug rtl-optimization/24418] New: Redudant compare to zero not eliminated evancheng at gcc dot gnu dot org 2005-10-18 0:02 ` [Bug rtl-optimization/24418] " evancheng at gcc dot gnu dot org 2005-10-18 0:07 ` pinskia at gcc dot gnu dot org @ 2005-10-18 0:10 ` pinskia at gcc dot gnu dot org 2005-10-25 22:55 ` [Bug target/24418] " evancheng at gcc dot gnu dot org 3 siblings, 0 replies; 5+ messages in thread From: pinskia at gcc dot gnu dot org @ 2005-10-18 0:10 UTC (permalink / raw) To: gcc-bugs ------- Comment #3 from pinskia at gcc dot gnu dot org 2005-10-18 00:09 ------- and yes eax/reg 68 (or n) is dead after the compare in combine: (insn 37 36 39 3 (parallel [ (set (reg/v:SI 68 [ n ]) (minus:SI (reg:SI 71) (reg/v:SI 66 [ med ]))) (clobber (reg:CC 17 flags)) ]) 172 {*subsi_1} (insn_list:REG_DEP_TRUE 36 (nil)) (expr_list:REG_DEAD (reg:SI 71) (expr_list:REG_UNUSED (reg:CC 17 flags) (nil)))) (insn 39 37 40 3 (set (reg:CC 17 flags) (compare:CC (reg/v:SI 68 [ n ]) (const_int 0 [0x0]))) 2 {*cmpsi_1_insn} (insn_list:REG_DEP_TRUE 37 (nil)) (expr_list:REG_DEAD (reg/v:SI 68 [ n ]) (nil))) Note the REG_DEAD, so what RTH said is wrong. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24418 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug target/24418] Redudant compare to zero not eliminated 2005-10-18 0:01 [Bug rtl-optimization/24418] New: Redudant compare to zero not eliminated evancheng at gcc dot gnu dot org ` (2 preceding siblings ...) 2005-10-18 0:10 ` pinskia at gcc dot gnu dot org @ 2005-10-25 22:55 ` evancheng at gcc dot gnu dot org 3 siblings, 0 replies; 5+ messages in thread From: evancheng at gcc dot gnu dot org @ 2005-10-25 22:55 UTC (permalink / raw) To: gcc-bugs ------- Comment #4 from evancheng at gcc dot gnu dot org 2005-10-25 22:55 ------- Closing this. It's not a bug. It's not safe to eliminate the cmpl. Its result are read by je and jg: je reads ZF, jg reads ZF and OF. Now consider subl 0x80000000 0x1 (OF <- 1) cmpl 0x7fffffff (OF <- 0) -- evancheng at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24418 ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2005-10-25 22:55 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2005-10-18 0:01 [Bug rtl-optimization/24418] New: Redudant compare to zero not eliminated evancheng at gcc dot gnu dot org 2005-10-18 0:02 ` [Bug rtl-optimization/24418] " evancheng at gcc dot gnu dot org 2005-10-18 0:07 ` pinskia at gcc dot gnu dot org 2005-10-18 0:10 ` pinskia at gcc dot gnu dot org 2005-10-25 22:55 ` [Bug target/24418] " evancheng at gcc dot gnu dot org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).