[PATCH] Fix for simplify_relational_operation related fix

Jan Hubicka jh@suse.cz
Tue Aug 1 08:18:00 GMT 2000


> Hi!
> 
> On Sat, Jul 29, 2000 at 12:04:40AM +0200, Jan Hubicka wrote:
> > 
> > Passes bootstrap, testsuite and specint2000 on i386.
> 
> Are you sure? It breaks execute/960608-1.c at -O3 on i386 (for both -march=i386 and
> -march=i686).
> You can get things like (ne (const_int -50) (const_int 206)) with op0_mode
> QImode etc.
It does pass for me, but probably because of other fixes Well, I was thknig
about this too later and I think this is only top of the iceberg.  The VOIDmode
in comparisons is weird concept and never really useable in many parts of
compiler we loose the mode information and we can getmissoptimizations. I think
we ought to force non-VOIDmode mode in simplify_relational_operation as I did.

For combine it is not big issue (and you part of fix is equivalent to my one),
but there are other users - namely the gen_binary in combine.c This one is used
by if_else_cond that just looses mode information badly.  I will try to prepare
followup fix to your one today. Last part I've caugt is replacing stuff in
recog.c that ought to enforce simplification in these cases as well.  I have
patch partially working, but it don't pass my checking stuff yet.

Honza


More information about the Gcc-patches mailing list