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]

i686 testsuite failures fix (Was: Re: alpha bootstrap fix)


> > Thu May 17 23:19:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
> > 
> >         * combine.c (combine_simplify_rtx): Use swap_commutative_operands_p.
> >         (gen_binary): Likewise.
> >         * optabs.c (emit_cmp_and_jump_insns, emit_conditional_move): Likewise.
> >         * simplify-rtx.c (simplify_gen_binary,
> >         simplify_gen_relational): Likewise.
> > 
> > The change to emit_cmp_and_jump_insns, at minimum, is incorrect.
> > This is used e.g. by compare_from_rtx from emit_store_flag to 
> > generate setcc instructions.  We have no way of mentioning this
> > change of comparison code to upper layers, resulting in bad code.
> Hi,
> I've just regtested and bootstrapped the attached patch.  It converts more
> places to use swap_commutative_operands_p and should solve the problem
> mentioned in same way as it has been solved previously - by keeping the
> conditions in the sync with the other places.
> 
> Can you please try if this patch works for Alpha (I am in the middle of mips
> bootstrap) in case you consider it as better then the original fix?
> I believe it is :)
> 
> Honza
> 
> Mon May 21 12:58:03 CEST 2001  Jan Hubicka  <jh@suse.cz>
> 	* combine.c (gen_binary): Use swap_commutative_operands_p
> 	(simplify_comparison): Likewise.
> 	* expmed.c (emit_store_flag): Likewise.
> 	* expr.c (compare_from_rtx): Likewise.
> 	(do_compare_rtx_and_jump): Likewise.
> 	* optabs.c (emit_cmp_and_jump_insn): Revert last patch; note
> 	that condition must be kept in the sync with other places.
Hi,
I've just figured out (after a while, as the failures show inly on i686, not on
i586 I use regulary for testing), that the new i386 testsuite failures are due
your patch.  If first operand is VOIDmode CONST_INT and second register, the code
generation bails out, as the operands don't get swapped and comparison is
detected to have VOIDmode mode. Thanks for investigating the Alpha problem anyway.

The patch in previous email solves the problem.  Would be possible to take
a look at it? Hope that now ve'we converged to something that works reliably.
The relation between compare_from_rtx and emit_cmp_and_jump_insn is really
sick. Once again I apologize for introducing the original problem. It didn't
show in my regtesting.

Thanks a lot
Honza


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