This is the mail archive of the
mailing list for the GCC project.
Re: dangerous cleverness? ppc int<->float conversions, subreg
- To: Dale Johannesen <dalej at apple dot com>
- Subject: Re: dangerous cleverness? ppc int<->float conversions, subreg
- From: David Edelsohn <dje at watson dot ibm dot com>
- Date: Fri, 26 Oct 2001 15:46:43 -0400
- cc: Zack Weinberg <zack at codesourcery dot com>, gcc at gcc dot gnu dot org
>>>>> Dale Johannesen writes:
Dale> We've noticed this on Darwin too. I'm not sure anybody's mentioned
Dale> this point: the alignment requirements for "double" memrefs can be
Dale> more restrictive than those for (non-double-containing) structs. A
Dale> misaligned FP load/store may be much slower than two int load/stores,
Dale> or may fail completely. I don't think there's anyplace in the code
Dale> that's checking this.
See SLOW_UNALIGNED_ACCESS macro in rs6000.h. It is checking.
There may be something wrong with the alignment it calculates.
FPR use for moves decreased after this change. This is why I know
that FPR use can be prevented completely with the right cost model in the
move_by_pieces tuning. The important point is don't assume that one
*always* wants to avoid FPRs for DImode moves, in other words don't
hard-code a high cost.