diff options
author | mkuvyrkov <mkuvyrkov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-03-30 15:41:00 +0000 |
---|---|---|
committer | mkuvyrkov <mkuvyrkov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-03-30 15:41:00 +0000 |
commit | 4dc5882f34be26e1e708c100304c53a3fd85daee (patch) | |
tree | 3291951d5fbbe5479776ca150e5c6b32db277c5f | |
parent | 611a596b7f5688ec42abf08e46b7fb2e56bd47ab (diff) | |
download | gcc-4dc5882f34be26e1e708c100304c53a3fd85daee.tar.gz |
2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
PR target/26734
* rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
* target.h (struct gcc_target.speculate_insn): Change type of the
second parameter to 'int'.
* lists.c (alloc_DEPS_LIST): Change signature. Update reference to
the second operand of the DEPS_LIST.
(copy_DEPS_LIST_list): Update reference to the second operand of the
DEPS_LIST.
* rtl.h (alloc_DEPS_LIST): Update signature.
* sched-int.h (ds_t): Change typedef to 'int'.
(DEP_STATUS, BITS_PER_DEP_STATUS): Update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112538 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 14 | ||||
-rw-r--r-- | gcc/lists.c | 8 | ||||
-rw-r--r-- | gcc/rtl.def | 7 | ||||
-rw-r--r-- | gcc/rtl.h | 6 | ||||
-rw-r--r-- | gcc/sched-int.h | 10 | ||||
-rw-r--r-- | gcc/target.h | 5 |
6 files changed, 32 insertions, 18 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 902cf75af3a..e302bb76138 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,19 @@ 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> + PR target/26734 + * rtl.def (DEPS_LIST): Change type of the second operand to 'int'. + * target.h (struct gcc_target.speculate_insn): Change type of the + second parameter to 'int'. + * lists.c (alloc_DEPS_LIST): Change signature. Update reference to + the second operand of the DEPS_LIST. + (copy_DEPS_LIST_list): Update reference to the second operand of the + DEPS_LIST. + * rtl.h (alloc_DEPS_LIST): Update signature. + * sched-int.h (ds_t): Change typedef to 'int'. + (DEP_STATUS, BITS_PER_DEP_STATUS): Update. + +2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> + * haifa-sched.c (try_ready): Change condition to restore non-speculative pattern of the instruction. (process_insn_depend_be_in_spec): Code to keep probability of the diff --git a/gcc/lists.c b/gcc/lists.c index 907ccf5ef2b..23529a362e2 100644 --- a/gcc/lists.c +++ b/gcc/lists.c @@ -1,6 +1,6 @@ /* List management for the GCC expander. Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2003, 2004 Free Software Foundation, Inc. + 1999, 2003, 2004, 2005, 2006 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, HOST_WIDE_INT ds) +alloc_DEPS_LIST (rtx val, rtx next, int ds) { rtx r; @@ -169,7 +169,7 @@ alloc_DEPS_LIST (rtx val, rtx next, HOST_WIDE_INT ds) unused_deps_list = XEXP (r, 1); XEXP (r, 0) = val; XEXP (r, 1) = next; - XWINT (r, 2) = ds; + XINT (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, XWINT (list, 2)); + *resp = alloc_DEPS_LIST (XEXP (list, 0), 0, XINT (list, 2)); PUT_REG_NOTE_KIND (*resp, REG_NOTE_KIND (list)); resp = &XEXP (*resp, 1); list = XEXP (list, 1); diff --git a/gcc/rtl.def b/gcc/rtl.def index 078f4af67ac..4c5a632063b 100644 --- a/gcc/rtl.def +++ b/gcc/rtl.def @@ -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 + 2005, 2006 Free Software Foundation, Inc. This file is part of GCC. @@ -95,9 +95,8 @@ 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 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) + Operand 2 is the status of a dependence (see sched-int.h for more). */ +DEF_RTL_EXPR(DEPS_LIST, "deps_list", "uei", RTX_EXTRA) /* SEQUENCE appears in the result of a `gen_...' function for a DEFINE_EXPAND that wants to make several insns. diff --git a/gcc/rtl.h b/gcc/rtl.h index 989bea8dc55..a442fb25d20 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -1,6 +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 Free Software Foundation, Inc. + Copyright (C) 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, + 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GCC. @@ -1757,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, HOST_WIDE_INT); +rtx alloc_DEPS_LIST (rtx, rtx, int); void remove_free_DEPS_LIST_elem (rtx, rtx *); void remove_free_INSN_LIST_elem (rtx, rtx *); rtx remove_list_elem (rtx, rtx *); diff --git a/gcc/sched-int.h b/gcc/sched-int.h index 175bd69dd5a..cc9812ad20f 100644 --- a/gcc/sched-int.h +++ b/gcc/sched-int.h @@ -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 Free Software Foundation, Inc. + 1999, 2000, 2001, 2003, 2004, 2005, 2006 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. A convinient short alias. */ -typedef HOST_WIDE_INT ds_t; +/* Type to represent status of a dependence. */ +typedef 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) XWINT (LINK, 2) +#define DEP_STATUS(LINK) XINT (LINK, 2) /* We exclude sign bit. */ -#define BITS_PER_DEP_STATUS (HOST_BITS_PER_WIDE_INT - 1) +#define BITS_PER_DEP_STATUS (HOST_BITS_PER_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} diff --git a/gcc/target.h b/gcc/target.h index e9a5eca9255..b9d35782a61 100644 --- a/gcc/target.h +++ b/gcc/target.h @@ -1,5 +1,6 @@ /* Data structure definitions for a generic GCC target. - Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 + 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 @@ -329,7 +330,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, HOST_WIDE_INT, rtx *); + int (* speculate_insn) (rtx, 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 |