[Bug rtl-optimization/27477] The H8 port doesn't build
--- Comment #7 from kazu at gcc dot gnu dot org 2006-05-17 21:35 --- Subject: Bug 27477 Author: kazu Date: Wed May 17 21:34:57 2006 New Revision: 113872 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=113872 Log: PR rtl-optimization/27477 * combine.c (try_combine): Don't split a parallel consisting of two sets into two individual sets if both sets reference cc0. Modified: trunk/gcc/ChangeLog trunk/gcc/combine.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27477
[Bug rtl-optimization/27477] The H8 port doesn't build
-- kazu at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|--- |4.2.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27477
[Bug rtl-optimization/27477] The H8 port doesn't build
--- Comment #8 from kazu at gcc dot gnu dot org 2006-05-17 21:37 --- Just checked in a patch. -- kazu at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27477
[Bug rtl-optimization/27477] The H8 port doesn't build
--- Comment #5 from kazu at gcc dot gnu dot org 2006-05-10 14:21 --- Reduced down to: extern void bar (int); int foo (int a, int b) { int c = a == b; if (c) bar (c); } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27477
[Bug rtl-optimization/27477] The H8 port doesn't build
--- Comment #6 from kazu at gcc dot gnu dot org 2006-05-10 15:00 --- The combiner seems to be doing something strange: (insn 13 12 16 2 (set (reg:HI 21) (eq:HI (cc0) (const_int 0 [0x0]))) 237 {*bstzhireg} (nil) (nil)) (insn 16 13 17 2 (set (cc0) (reg:HI 21)) 114 {tsthi} (insn_list:REG_DEP_TRUE 13 (nil)) (nil)) (jump_insn 17 16 19 2 (set (pc) (if_then_else (eq (cc0) (const_int 0 [0x0])) (label_ref:SI 39) (pc))) 181 {branch_true} (nil) (expr_list:REG_BR_PROB (const_int 5347 [0x14e3]) (nil))) is transformed to (insn 16 13 17 2 (set (pc) (if_then_else (ne (cc0) (const_int 0 [0x0])) (label_ref:SI 39) (pc))) 181 {branch_true} (nil) (nil)) (jump_insn 17 16 19 2 (set (reg:HI 21) (eq:HI (cc0) (const_int 0 [0x0]))) 237 {*bstzhireg} (nil) (expr_list:REG_BR_PROB (const_int 5347 [0x14e3]) (nil))) Note that the combiner puts a branch instruction one insn before the last insn in the basic block. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27477
[Bug rtl-optimization/27477] The H8 port doesn't build
-- kazu at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |kazu at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27477
[Bug rtl-optimization/27477] The H8 port doesn't build
--- Comment #2 from pinskia at gcc dot gnu dot org 2006-05-08 07:09 --- Reducing. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Component|bootstrap |rtl-optimization Keywords||build, ice-on-valid-code Version|unknown |4.2.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27477
[Bug rtl-optimization/27477] The H8 port doesn't build
--- Comment #3 from pinskia at gcc dot gnu dot org 2006-05-08 17:12 --- Reduced testcase: typedef long unsigned int size_t; struct string { char* _M_data() const; size_t size() const ; void push_back(char __c) { _M_data()[this-size()] = __c; } }; bool _M_use_grouping; int _M_extract_float(string __xtrc) { const char* __lit; char __c; const bool __plus = __c == __lit[1]; if ( ( __plus || __c == __lit[0] ) ! _M_use_grouping ) __xtrc.push_back( __plus ? '+' : '-'); } -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2006-05-08 17:12:59 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27477
[Bug rtl-optimization/27477] The H8 port doesn't build
--- Comment #4 from kazu at gcc dot gnu dot org 2006-05-08 18:55 --- Reduced to a C testcase: extern void bar (int c); int b; int foo (int c1, int c2, int c3) { int plus = c1 == c2; if ((plus || c1 == c3) ! b) bar (plus); } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27477