Mercurial > hg > CbC > CbC_gcc
diff gcc/sched-int.h @ 67:f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Mar 2011 17:18:12 +0900 |
parents | b7f97abdc517 |
children | 04ced10e8804 |
line wrap: on
line diff
--- a/gcc/sched-int.h Tue May 25 18:58:51 2010 +0900 +++ b/gcc/sched-int.h Tue Mar 22 17:18:12 2011 +0900 @@ -195,11 +195,11 @@ extern char *ready_try; extern struct ready_list ready; -extern int max_issue (struct ready_list *, int, state_t, int *); +extern int max_issue (struct ready_list *, int, state_t, bool, int *); extern void ebb_compute_jump_reg_dependencies (rtx, regset, regset, regset); -extern edge find_fallthru_edge (basic_block); +extern edge find_fallthru_edge_from (basic_block); extern void (* sched_init_only_bb) (basic_block, basic_block); extern basic_block (* sched_split_block) (basic_block, rtx); @@ -448,7 +448,7 @@ }; /* Describe state of dependencies used during sched_analyze phase. */ -struct deps +struct deps_desc { /* The *_insns and *_mems are paired lists. Each pending memory operation will have a pointer to the MEM rtx on one list and a pointer to the @@ -546,7 +546,7 @@ BOOL_BITFIELD readonly : 1; }; -typedef struct deps *deps_t; +typedef struct deps_desc *deps_t; /* This structure holds some state of the current scheduling pass, and contains some function pointers that abstract out some of the non-generic @@ -887,23 +887,6 @@ #define IS_SPECULATION_BRANCHY_CHECK_P(INSN) \ (RECOVERY_BLOCK (INSN) != NULL && RECOVERY_BLOCK (INSN) != EXIT_BLOCK_PTR) -/* The unchanging bit tracks whether a debug insn is to be handled - like an insn (i.e., schedule it) or like a note (e.g., it is next - to a basic block boundary. */ -#define DEBUG_INSN_SCHED_P(insn) \ - (RTL_FLAG_CHECK1("DEBUG_INSN_SCHED_P", (insn), DEBUG_INSN)->unchanging) - -/* True if INSN is a debug insn that is next to a basic block - boundary, i.e., it is to be handled by the scheduler like a - note. */ -#define BOUNDARY_DEBUG_INSN_P(insn) \ - (DEBUG_INSN_P (insn) && !DEBUG_INSN_SCHED_P (insn)) -/* True if INSN is a debug insn that is not next to a basic block - boundary, i.e., it is to be handled by the scheduler like an - insn. */ -#define SCHEDULE_DEBUG_INSN_P(insn) \ - (DEBUG_INSN_P (insn) && DEBUG_INSN_SCHED_P (insn)) - /* Dep status (aka ds_t) of the link encapsulates information, that is needed for speculative scheduling. Namely, it is 4 integers in the range [0, MAX_DEP_WEAK] and 3 bits. @@ -1198,14 +1181,14 @@ extern bool sched_insns_conditions_mutex_p (const_rtx, const_rtx); extern bool sched_insn_is_legitimate_for_speculation_p (const_rtx, ds_t); extern void add_dependence (rtx, rtx, enum reg_note); -extern void sched_analyze (struct deps *, rtx, rtx); -extern void init_deps (struct deps *, bool); -extern void init_deps_reg_last (struct deps *); -extern void free_deps (struct deps *); +extern void sched_analyze (struct deps_desc *, rtx, rtx); +extern void init_deps (struct deps_desc *, bool); +extern void init_deps_reg_last (struct deps_desc *); +extern void free_deps (struct deps_desc *); extern void init_deps_global (void); extern void finish_deps_global (void); -extern void deps_analyze_insn (struct deps *, rtx); -extern void remove_from_deps (struct deps *, rtx); +extern void deps_analyze_insn (struct deps_desc *, rtx); +extern void remove_from_deps (struct deps_desc *, rtx); extern dw_t get_dep_weak_1 (ds_t, ds_t); extern dw_t get_dep_weak (ds_t, ds_t); @@ -1227,7 +1210,7 @@ extern void maybe_extend_reg_info_p (void); -extern void deps_start_bb (struct deps *, rtx); +extern void deps_start_bb (struct deps_desc *, rtx); extern enum reg_note ds_to_dt (ds_t); extern bool deps_pools_are_empty_p (void); @@ -1269,6 +1252,8 @@ extern rtx bb_note (basic_block); extern void concat_note_lists (rtx, rtx *); extern rtx sched_emit_insn (rtx); +extern rtx get_ready_element (int); +extern int number_in_ready (void); /* Types and functions in sched-rgn.c. */ @@ -1337,7 +1322,7 @@ extern void free_rgn_deps (void); extern int contributes_to_priority (rtx, rtx); extern void extend_rgns (int *, int *, sbitmap, int *); -extern void deps_join (struct deps *, struct deps *); +extern void deps_join (struct deps_desc *, struct deps_desc *); extern void rgn_setup_common_sched_info (void); extern void rgn_setup_sched_infos (void); @@ -1477,6 +1462,13 @@ sd_iterator_cond (&(ITER), &(DEP)); \ sd_iterator_next (&(ITER))) +#define IS_DISPATCH_ON 1 +#define IS_CMP 2 +#define DISPATCH_VIOLATION 3 +#define FITS_DISPATCH_WINDOW 4 +#define DISPATCH_INIT 5 +#define ADD_TO_DISPATCH_WINDOW 6 + extern int sd_lists_size (const_rtx, sd_list_types_def); extern bool sd_lists_empty_p (const_rtx, sd_list_types_def); extern void sd_init_insn (rtx);