[PATCH] Fix PR 58960

Andrey Belevantsev abel@ispras.ru
Thu Jan 30 05:42:00 GMT 2014


As detailed in http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58960#c6, we 
fail to use the DF liveness info in the register pressure sensitive 
scheduling for the new blocks as we do not properly compute it in this 
case.  The patch fixes this by avoiding to use the sched-pressure for the 
new regions, as currently these are only ia64 recovery blocks and supposed 
to be cold.  In the case we'd get other cases of the new blocks, this may 
be reconsidered.  The other options of computing the DF info sketched at 
the above link do not seem plausible for this stage.

Bootstrapped and tested on ia64, also tested by Andreas Schwab on ia64 (see 
PR log).  OK for trunk?


2013-01-30  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/58960

	* haifa-sched.c (alloc_global_sched_pressure_data): New, factored out from ...
	(sched_init) ... here.
	(free_global_sched_pressure_data): New, factored out from ...
	(sched_finish): ... here.
	* sched-int.h (free_global_sched_pressure_data): Declare.
	* sched-rgn.c (nr_regions_initial): New static global.
	(haifa_find_rgns): Initialize it.
	(schedule_region): Disable sched-pressure for the newly generated regions.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pr58960.diff
Type: text/x-patch
Size: 5078 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20140130/88819dbc/attachment.bin>

More information about the Gcc-patches mailing list