Patchwork C6X port 5/11: Track predication conditions more accurately

login
register
mail settings
Submitter Bernd Schmidt
Date May 31, 2011, 8:53 p.m.
Message ID <4DE5555A.3050908@codesourcery.com>
Download mbox | patch
Permalink /patch/98086/
State New
Headers show

Comments

Bernd Schmidt - May 31, 2011, 8:53 p.m.
On 05/31/2011 10:43 PM, Steve Ellcey wrote:
> On Tue, 2011-05-31 at 23:59 +0400, Andrey Belevantsev wrote:
>> On 31.05.2011 22:24, Steve Ellcey wrote:
>>> Bernd,
>>>
>>> This patch (r174336) is causing me many testsuite failures on IA64.
>>> Tests like gcc.c-torture/compile/20010408-1.c are dying with a
>>> seg fault in vinsn_detach.
>> I will look at it tomorrow.  Bernd, Steve, please let us know about any 
>> issues with sel-sched code so we can help.
>>
>> Andrey
> 
> Has anything been decided about how to fix PR 48673?  I am still seeing
> gfortran.dg/sms-1.f and sms-2.f fail on IA64.

Something like this is one of the approaches I suggested in the PR.
Untested.


Bernd

Patch

Index: gcc/config/ia64/ia64.c
===================================================================
--- gcc/config/ia64/ia64.c	(revision 174430)
+++ gcc/config/ia64/ia64.c	(working copy)
@@ -9404,9 +9404,15 @@  ia64_reorg (void)
   if (optimize && ia64_flag_schedule_insns2
       && dbg_cnt (ia64_sched2))
     {
+      basic_block bb;
       timevar_push (TV_SCHED2);
       ia64_final_schedule = 1;
 
+      /* We can't let modulo-sched prevent us from scheduling any bbs,
+	 since we need the final schedule to produce bundle information.  */
+      FOR_EACH_BB (bb)
+	bb->flags &= ~BB_DISABLE_SCHEDULE;
+
       initiate_bundle_states ();
       ia64_nop = make_insn_raw (gen_nop ());
       PREV_INSN (ia64_nop) = NEXT_INSN (ia64_nop) = NULL_RTX;