On Jul 17, 2012, at 17:34 , Alan Modra wrote:
> The ICE is
> 
> combine.c:5318:1: error: insn does not satisfy its constraints:
> (insn 4211 1484 1493 140 (set (mem/c:DI (plus:SI (reg/f:SI 19 19 [2736])
>                (const_int 32760 [0x7ff8])) [3 __gcov0.subst+816 S8 A64])
>        (reg:DI 6 6)) 399 {*movdi_internal32}
>     (nil))

> However, the "o" constraint rejects any offset >= 0x7ff4 due to
> rs6000_mode_dependent_address.  This particular problem has been known
> for a long time, but that's not the only problem with "o" (and also
> the rs6000 "Y" constraint, a variant of "o").


Hi Alan,

I had made a proposal to help the rs6000_mode_dependent_address
issue, http://gcc.gnu.org/ml/gcc-patches/2012-04/msg01668.html.

Seems to me that the general idea is still valid:

<< a number of places in the compiler use the
   mode_dependent_address_p predicate to actually check for weaker necessary
   conditions
>>

Opinion on the proposal ?

Sorry not to have raised this earlier. Been off for a couple of weeks.

Olivier

Reply via email to