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: repost: [DF] Use HARD_REG_SETs instead of bitmaps


Hello, better late than never, an update to my patch that converts most bitmaps in DF to HARD_REG_SETs and also refactors hard-reg-set.h.

On Mon, 22 Aug 2011, Jeff Law wrote:
On 08/22/11 11:16, Dimitrios Apostolou wrote:

Any updates will come as a followup to this thread. I still have to do some testing on other platforms. Do we have access to any PA and MIPS machinery? I also wanted to test on architecture with lots of hard registers and small long size, but my 32-bit sparcstation crashed badly, any ideas which arch to try next?
I thought there was a PA available in the testfarm.

I appreciate the advice Jeff, indeed I've tried running my patch on gcc61 (PA-RISC), and I'm also running tests on MIPS machines.


Everyone: I attach the latest version of this patch, updated to latest trunk and with an obscure bug I had introduced, fixed, together with some updates in reorg.c which depended on HARD_REG_SET implementation if DELAY_SLOTS was set.

Previously it was tested succesfully on i386, x86_64. Now I tested it on on i386 and sparc-linux-gnu, no regressions. I'll report back when testing on PA-RISC, MIPS is finished. Changelog and comments from the previous email apply here too:

http://gcc.gnu.org/ml/gcc-patches/2011-08/msg01796.html

Additional Changelog:

	* reorg.c (resource_conflicts_p): Removed code dependant on
	HARD_REG_SET implementation, replaced with
	hard_reg_set_intersect_p().


Jakub, Paolo: You had voiced concerns about the struct-ification of HARD_REG_SET but I don't think we ended up anywhere? Any updates?


I understand major hassle is when the register file is big, too much data is being copied on a function call, when it has a HARD_REG_SET as a pass by value parameter. So I did some testing on SPARC, which has the biggest register file I know of, and there is a small performance regression indeed. On the other hand I really like the code reduction in hard-reg-set.h. So how should I proceed? FWIW I'm already testing passing the parameter by reference in the hottest functions.

Last but not least, what about the other aspects of this patch?


Thanks, Dimitris

Attachment: hardreg-struct-v4.diff
Description: Text document


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