This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Patch: validate_replace_rtx_1 fix


> Jan Hubicka wrote:
> 
> > Richard has recently applied patch to my constpool bypassing patch, that
> > may be real source, so I would suggest update and retry in case you
> > are not having it (it is in the simplify-rtx.c)
> 
> I've seen it, so I did an update yesterday, but it didn't help.
> 
> > Otherwise, please investigate where the const_double is comming from first.
> 
> simplify_unary_operation is called with (code=NEG, mode=VOIDmode,
VOIDmode is wrong, it should be SImode.  Who is calling it?
Can you add an sanity check to that function?
> op=(const_int 1), op_mode=VOIDmode) through simplify_gen_binary. width
> is 0 there, so it refuses to simplify it as an integer and produces a
> double instead.
> 
> Then simplify_binary_operation is called with (code=PLUS, mode=SImode,
> op0=(const_double -1), op1=(const_int 3)) through simplify_gen_binary,
> which does nothing, so the (plus:SI (const_double -1) (const_int 3)) is
> created.

Lookis like bug in simplify_unary call.
Just please try to figure out where the mode got lost.  Can you send
me full backtrace of that call?

Honza


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]