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]
Other format: [Raw text]

Re: [RFC] Fix PR rtl-optimization/33732


On Thu, Nov 08, 2007 at 12:52:46PM +0100, Eric Botcazou wrote:
> > I'm not sure what the best approach to fixing this is.  Should we disregard
> > notes referencing former pseudo-registers that have been assigned more than
> > one hard register, between global alloc and reload?
> >
> > 	    && (ORIGINAL_REGNO (XEXP (note, 0)) < FIRST_PSEUDO_REGISTER
> >
> > 		|| hard_regno_nregs [XEXP (note, 0)] == 1)
> >
> > Would this pessimize much in practice?
> 
> Unsurprisingly this doesn't have any effect for a bootstrap of the compiler on 
> x86-64 and changes 4 reloads for a bootstrap on x86 (1 slight overall win, 2 
> slight losses and 1 net loss because of a cascading effect) related to 64-bit 
> mult and div operations.  The pessimization is very likely mitigated by the 
> lower-subreg pass and the new ra-conflict.c code.

   Yes. It will affect insns which really do operate on multiword hard regs.
Other than mult, div, sign extend and such, some archs have multiword insns,
e.g. 16-bit "mov" and "add" on the otherwise 8-bit AVR.

> Other suggestions still welcome.
> 
> 
> 	* reload.c (push_reload): Check that the REG_DEAD note was referring
> 	to a hardreg or to a pseudo that has been assigned exactly one hardreg
> 	before considering it in order to select the reload register.
> 	(combine_reloads): Likewise.
> 	(find_dummy_reload): Likewise.

   Tested with no regressions on the following simulator targets:
cris-axis-elf
m32c-unknown-elf (C and C++ only)
arm-unknown-elf
v850-unknown-elf
mipsisa64-unknown-elf

   sh-unknown-elf isn't working and frv-unknown-elf hasn't finished yet.

   How do you get a dump of all reloads during a bootstrap? Do you just add
-fdump-rtl-greg to BOOT_CFLAGS?

-- 
Rask Ingemann Lambertsen
Danish law requires addresses in e-mail to be logged and stored for a year


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