diff options
author | mkuvyrkov <mkuvyrkov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-05-04 07:21:20 +0000 |
---|---|---|
committer | mkuvyrkov <mkuvyrkov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-05-04 07:21:20 +0000 |
commit | 3588ab9c6295532eee9ead7afa9bfa09293c46fc (patch) | |
tree | 26fd4a2f3e219cdad90c93bb12aee00782e48f9e /gcc/sched-int.h | |
parent | a2819fc2b976fad809e14cdf2351a247f17684ed (diff) | |
download | gcc-3588ab9c6295532eee9ead7afa9bfa09293c46fc.tar.gz |
* haifa-sched.c (rtx_vec_t): New typedef.
(contributes_to_priority_p): Extract piece of priority () into new
static function.
(priority): Use the function. Add assertion.
(rank_for_schedule, set_priorities): Add assertion to check that
insn's priority is initialized.
(clear_priorities, calc_priorities): Change signature. Make it update
all relevant insns. Update all callers ('add_to_speculative_block ()'
and 'create_block_check_twin ()').
* sched-int.h (struct haifa_insn_data): Remove field 'priority_known'.
Add new field 'priority_status'.
(INSN_PRIORITY_STATUS): New macro.
(INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124410 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/sched-int.h')
-rw-r--r-- | gcc/sched-int.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/sched-int.h b/gcc/sched-int.h index e196a81f39d..db5f1e4a87f 100644 --- a/gcc/sched-int.h +++ b/gcc/sched-int.h @@ -537,8 +537,10 @@ struct haifa_insn_data unsigned int fed_by_spec_load : 1; unsigned int is_load_insn : 1; - /* Nonzero if priority has been computed already. */ - unsigned int priority_known : 1; + /* '> 0' if priority is valid, + '== 0' if priority was not yet computed, + '< 0' if priority in invalid and should be recomputed. */ + signed char priority_status; /* Nonzero if instruction has internal dependence (e.g. add_dependence was invoked with (insn == elem)). */ @@ -574,7 +576,8 @@ extern regset *glat_start, *glat_end; #define CANT_MOVE(insn) (h_i_d[INSN_UID (insn)].cant_move) #define INSN_DEP_COUNT(INSN) (h_i_d[INSN_UID (INSN)].dep_count) #define INSN_PRIORITY(INSN) (h_i_d[INSN_UID (INSN)].priority) -#define INSN_PRIORITY_KNOWN(INSN) (h_i_d[INSN_UID (INSN)].priority_known) +#define INSN_PRIORITY_STATUS(INSN) (h_i_d[INSN_UID (INSN)].priority_status) +#define INSN_PRIORITY_KNOWN(INSN) (INSN_PRIORITY_STATUS (INSN) > 0) #define INSN_REG_WEIGHT(INSN) (h_i_d[INSN_UID (INSN)].reg_weight) #define HAS_INTERNAL_DEP(INSN) (h_i_d[INSN_UID (INSN)].has_internal_dep) #define TODO_SPEC(INSN) (h_i_d[INSN_UID (INSN)].todo_spec) |