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: [PATCH] Use reversed_comparison_code in sched-deps.c


On Mon, 2004-08-30 at 12:33, Richard Earnshaw wrote:

> Unless somebody knows how to simply address the fallout, I think I'm
> going to disable get_condition from looking inside a condjump insn for
> now until I can find time to look at the issues this all raises.

I've gone ahead and reverted this change as follows.  It leaves the
correct code in place as an indication of intent, but disables it for
the time being.



2004-08-30  Richard Earnshaw  <rearnsha@arm.com>

	* sched-deps.c (get_condition): Partially revert previous, by never
	trying to extract the condition from a condjump.


Index: sched-deps.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/sched-deps.c,v
retrieving revision 1.78
retrieving revision 1.79
diff -p -r1.78 -r1.79
*** sched-deps.c	30 Aug 2004 01:28:22 -0000	1.78
--- sched-deps.c	30 Aug 2004 12:43:19 -0000	1.79
*************** get_condition (rtx insn)
*** 153,158 ****
--- 153,163 ----
      return 0;
  
    src = SET_SRC (pc_set (insn));
+ #if 0
+   /* The previous code here was completely invalid and could never extract
+      the condition from a jump.  This code does the correct thing, but that
+      triggers latent bugs later in the scheduler on ports with conditional
+      execution.  So this is disabled for now.  */
    if (XEXP (src, 2) == pc_rtx)
      return XEXP (src, 0);
    else if (XEXP (src, 1) == pc_rtx)
*************** get_condition (rtx insn)
*** 165,172 ****
        return gen_rtx_fmt_ee (revcode, GET_MODE (cond), XEXP (cond, 0),
  			     XEXP (cond, 1));
      }
!   else
!     return 0;
  }
  
  /* Return nonzero if conditions COND1 and COND2 can never be both true.  */
--- 170,178 ----
        return gen_rtx_fmt_ee (revcode, GET_MODE (cond), XEXP (cond, 0),
  			     XEXP (cond, 1));
      }
! #endif
! 
!   return 0;
  }
  
  /* Return nonzero if conditions COND1 and COND2 can never be both true.  */

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