[Bug rtl-optimization/27477] The H8 port doesn't build

2006-05-17 Thread kazu at gcc dot gnu dot org


--- 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

2006-05-17 Thread kazu at gcc dot gnu dot org


-- 

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

2006-05-17 Thread kazu at gcc dot gnu dot org


--- 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

2006-05-10 Thread kazu at gcc dot gnu dot org


--- 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

2006-05-10 Thread kazu at gcc dot gnu dot org


--- 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

2006-05-09 Thread kazu at gcc dot gnu dot org


-- 

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

2006-05-08 Thread pinskia at gcc dot gnu dot org


--- 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

2006-05-08 Thread pinskia at gcc dot gnu dot org


--- 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

2006-05-08 Thread kazu at gcc dot gnu dot org


--- 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