]> gcc.gnu.org Git - gcc.git/commitdiff
2006-03-28 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
authorMaxim Kuvyrkov <mkuvyrkov@ispras.ru>
Tue, 28 Mar 2006 17:33:41 +0000 (17:33 +0000)
committerMaxim Kuvyrkov <mkuvyrkov@gcc.gnu.org>
Tue, 28 Mar 2006 17:33:41 +0000 (17:33 +0000)
Revert my 2006-03-27 patches.

From-SVN: r112456

gcc/ChangeLog
gcc/haifa-sched.c
gcc/lists.c
gcc/rtl.def
gcc/rtl.h
gcc/sched-int.h
gcc/target.h

index 64bbd152acf160e85ecfab1dbc6c4313631a9a23..12d43d44e02590d6e9b5eb13d2095fba6826af14 100644 (file)
@@ -1,3 +1,7 @@
+2006-03-28  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
+
+       Revert my 2006-03-27 patches.
+
 2006-03-28  Roger Sayle  <roger@eyesopen.com>
 
        * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
index f81344d0d2e92337c22e2e2a732efc7623147a3e..56abcda64e2539a21064294ef541e00c8028c379 100644 (file)
@@ -1,7 +1,6 @@
 /* Instruction scheduling pass.
    Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-   Free Software Foundation, Inc.
+   1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    Contributed by Michael Tiemann (tiemann@cygnus.com) Enhanced by,
    and currently maintained by, Jim Wilson (wilson@cygnus.com)
 
@@ -3056,6 +3055,16 @@ try_ready (rtx next)
              || !RECOVERY_BLOCK (next)
              || RECOVERY_BLOCK (next) == EXIT_BLOCK_PTR);
   
+  if (*ts == 0 && ORIG_PAT (next) && !RECOVERY_BLOCK (next))
+    /* We should change pattern of every previously speculative 
+       instruction - and we determine if NEXT was speculative by using
+       ORIG_PAT field.  Except one case - simple checks have ORIG_PAT
+       pat too, hence we also check for the RECOVERY_BLOCK.  */
+    {
+      change_pattern (next, ORIG_PAT (next));
+      ORIG_PAT (next) = 0;
+    }
+
   if (*ts & HARD_DEP)
     {
       /* We can't assert (QUEUE_INDEX (next) == QUEUE_NOWHERE) here because
@@ -3066,15 +3075,6 @@ try_ready (rtx next)
       change_queue_index (next, QUEUE_NOWHERE);
       return -1;
     }
-  else if (!(*ts & BEGIN_SPEC) && ORIG_PAT (next) && !RECOVERY_BLOCK (next))
-    /* We should change pattern of every previously speculative 
-       instruction - and we determine if NEXT was speculative by using
-       ORIG_PAT field.  Except one case - simple checks have ORIG_PAT
-       pat too, hence we also check for the RECOVERY_BLOCK.  */
-    {
-      change_pattern (next, ORIG_PAT (next));
-      ORIG_PAT (next) = 0;
-    }
 
   if (sched_verbose >= 2)
     {        
@@ -3312,30 +3312,8 @@ process_insn_depend_be_in_spec (rtx link, rtx twin, ds_t fs)
 
       ds = DEP_STATUS (link);
 
-      if (/* If we want to create speculative dep.  */
-         fs
-         /* And we can do that because this is a true dep.  */
-         && (ds & DEP_TYPES) == DEP_TRUE)
-       {
-         gcc_assert (!(ds & BE_IN_SPEC));
-
-         if (/* If this dep can be overcomed with 'begin speculation'.  */
-             ds & BEGIN_SPEC)
-           /* Then we have a choice: keep the dep 'begin speculative'
-              or transform it into 'be in speculative'.  */
-           {
-             if (/* In try_ready we assert that if insn once became ready
-                    it can be removed from the ready (or queue) list only
-                    due to backend decision.  Hence we can't let the
-                    probability of the speculative dep to decrease.  */
-                 dep_weak (ds) <= dep_weak (fs))
-               /* Transform it to be in speculative.  */
-               ds = (ds & ~BEGIN_SPEC) | fs;
-           }
-         else
-           /* Mark the dep as 'be in speculative'.  */
-           ds |= fs;
-       }
+      if (fs && (ds & DEP_TYPES) == DEP_TRUE)
+       ds = (ds & ~BEGIN_SPEC) | fs;
 
       add_back_forw_dep (consumer, twin, REG_NOTE_KIND (link), ds);
     }
index 23529a362e24fd463e085765d46ea75cc4f0cafa..907ccf5ef2b44b949350cdd6b42c9cad774b8f9a 100644 (file)
@@ -1,6 +1,6 @@
 /* List management for the GCC expander.
    Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+   1999, 2003, 2004 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -159,7 +159,7 @@ alloc_EXPR_LIST (int kind, rtx val, rtx next)
    node available, we'll use it, otherwise a call to gen_rtx_DEPS_LIST
    is made.  */
 rtx
-alloc_DEPS_LIST (rtx val, rtx next, int ds)
+alloc_DEPS_LIST (rtx val, rtx next, HOST_WIDE_INT ds)
 {
   rtx r;
 
@@ -169,7 +169,7 @@ alloc_DEPS_LIST (rtx val, rtx next, int ds)
       unused_deps_list = XEXP (r, 1);
       XEXP (r, 0) = val;
       XEXP (r, 1) = next;
-      XINT (r, 2) = ds;
+      XWINT (r, 2) = ds;
       PUT_REG_NOTE_KIND (r, VOIDmode);
 
       gcc_assert (GET_CODE (r) == DEPS_LIST);
@@ -257,7 +257,7 @@ copy_DEPS_LIST_list (rtx list)
 
   while (list)
     {
-      *resp = alloc_DEPS_LIST (XEXP (list, 0), 0, XINT (list, 2));
+      *resp = alloc_DEPS_LIST (XEXP (list, 0), 0, XWINT (list, 2));
       PUT_REG_NOTE_KIND (*resp, REG_NOTE_KIND (list));
       resp = &XEXP (*resp, 1);
       list = XEXP (list, 1);
index 4c5a632063bb18de9635e459a35085e979793131..078f4af67ac262fbf2a83f50950c0d35ac5ef0bb 100644 (file)
@@ -2,7 +2,7 @@
    Register Transfer Expressions (rtx's) that make up the
    Register Transfer Language (rtl) used in the Back End of the GNU compiler.
    Copyright (C) 1987, 1988, 1992, 1994, 1995, 1997, 1998, 1999, 2000, 2004,
-   2005, 2006
+   2005
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -95,8 +95,9 @@ DEF_RTL_EXPR(INSN_LIST, "insn_list", "ue", RTX_EXTRA)
 
 /* a linked list of dependencies. 
    The insns are represented in print by their uids. 
-   Operand 2 is the status of a dependence (see sched-int.h for more).  */
-DEF_RTL_EXPR(DEPS_LIST, "deps_list", "uei", RTX_EXTRA)
+   Operand 2 is a degree of speculativeness of the dependence.
+   Operand 3 is a degree of weakness of the dependence.  */
+DEF_RTL_EXPR(DEPS_LIST, "deps_list", "uew", RTX_EXTRA)
 
 /* SEQUENCE appears in the result of a `gen_...' function
    for a DEFINE_EXPAND that wants to make several insns.
index 7ac98d21d53d632f4d8af0c335614f022ed1790b..989bea8dc55047a9830d36f1820cf545c67bbe59 100644 (file)
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -1,7 +1,6 @@
 /* Register Transfer Language (RTL) definitions for GCC
    Copyright (C) 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-   Free Software Foundation, Inc.
+   1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -1758,7 +1757,7 @@ void free_INSN_LIST_node          (rtx);
 rtx alloc_INSN_LIST                    (rtx, rtx);
 rtx alloc_EXPR_LIST                    (int, rtx, rtx);
 void free_DEPS_LIST_list (rtx *);
-rtx alloc_DEPS_LIST (rtx, rtx, int);
+rtx alloc_DEPS_LIST (rtx, rtx, HOST_WIDE_INT);
 void remove_free_DEPS_LIST_elem (rtx, rtx *);
 void remove_free_INSN_LIST_elem (rtx, rtx *);
 rtx remove_list_elem (rtx, rtx *);
index cc9812ad20f0da331d30c13eb406248dd535d3ec..175bd69dd5aead28c39aa73b36544d779ab7a0e3 100644 (file)
@@ -1,7 +1,7 @@
 /* Instruction scheduling pass.  This file contains definitions used
    internally in the scheduler.
    Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2001, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+   1999, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -36,8 +36,8 @@ extern state_t curr_state;
 /* Forward declaration.  */
 struct ready_list;
 
-/* Type to represent status of a dependence.  */
-typedef int ds_t;
+/* Type to represent status of a dependence.  A convinient short alias.  */
+typedef HOST_WIDE_INT ds_t;
 
 /* Type to represent weakness of speculative dependence.  */
 typedef int dw_t;
@@ -377,10 +377,10 @@ extern regset *glat_start, *glat_end;
    for using to describe instruction's status.  It is set whenever instuction
    has at least one dependence, that cannot be overcome.
    See also: check_dep_status () in sched-deps.c .  */
-#define DEP_STATUS(LINK) XINT (LINK, 2)
+#define DEP_STATUS(LINK) XWINT (LINK, 2)
 
 /* We exclude sign bit.  */
-#define BITS_PER_DEP_STATUS (HOST_BITS_PER_INT - 1)
+#define BITS_PER_DEP_STATUS (HOST_BITS_PER_WIDE_INT - 1)
 
 /* First '4' stands for 3 dep type bits and HARD_DEP bit.
    Second '4' stands for BEGIN_{DATA, CONTROL}, BE_IN_{DATA, CONTROL}
index 66fab12f0083115df6cd3b774eb5c6f644b29d3e..1b768e4f49c7c35a2df721497b5b727ac54ad580 100644 (file)
@@ -1,6 +1,5 @@
 /* Data structure definitions for a generic GCC target.
-   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
-   Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
 This program is free software; you can redistribute it and/or modify it
 under the terms of the GNU General Public License as published by the
@@ -330,7 +329,7 @@ struct gcc_target
        0, if current pattern satisfies the requested speculation type,
        1, if pattern of the instruction should be changed to the newly
        generated one.  */
-    int (* speculate_insn) (rtx, int, rtx *);
+    int (* speculate_insn) (rtx, HOST_WIDE_INT, rtx *);
 
     /* The following member value is a pointer to a function called
        by the insn scheduler.  It should return true if the check instruction
This page took 0.080821 seconds and 5 git commands to generate.