summaryrefslogtreecommitdiff
path: root/gcc/sched-int.h
diff options
context:
space:
mode:
authormkuvyrkov <mkuvyrkov@138bc75d-0d04-0410-961f-82ee72b054a4>2007-05-04 07:21:20 +0000
committermkuvyrkov <mkuvyrkov@138bc75d-0d04-0410-961f-82ee72b054a4>2007-05-04 07:21:20 +0000
commit3588ab9c6295532eee9ead7afa9bfa09293c46fc (patch)
tree26fd4a2f3e219cdad90c93bb12aee00782e48f9e /gcc/sched-int.h
parenta2819fc2b976fad809e14cdf2351a247f17684ed (diff)
downloadgcc-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.h9
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)