From c237e94a5f573ec6b80c4b37ea49b8ab24e68c0d Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Sat, 18 Aug 2001 20:25:54 +0000 Subject: haifa-sched.c: Convert to target hooks. * haifa-sched.c: Convert to target hooks. Macros replaced are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE, MD_SCHED_FINISH, and HAVE_cycle_display. * target-def.h (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT, TARGET_SCHED_FINISH, TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY): New hook #defines to be overridden. (TARGET_SCHED): Bring them all together. (TARGET_INITIALIZER): Update. * target.h: Don't forward declare struct rtx_def. Use 'rtx' instead of 'struct rtx_def *' throughout. (struct sched): New set of hooks for the scheduler. * Makefile.in (haifa-sched.o): Depend on target.h. * doc/tm.texi: Document the new scheduler hooks, together in their own section, instead of scattered around. Fix a bunch of underfull/overfull hboxes. * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h, ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h, sparc.h: Don't define any of the old scheduler macros. * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c, ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c, sparc.c: Create hook functions from code extracted from corresponding target header, or make existing hooks static, as appropriate. Set the appropriate entries in targetm. * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h, i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h, rs6000-protos.h, s390-protos.h, sparc-protos.h: Remove prototypes for functions which are now static. * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and related gunk; the Haifa scheduler is now the only choice. From-SVN: r45009 --- gcc/config/mips/mips.c | 22 ++++++++++++++++++++++ gcc/config/mips/mips.h | 10 ---------- 2 files changed, 22 insertions(+), 10 deletions(-) (limited to 'gcc/config/mips') diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index d9cdcf5..268c7f4 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -126,6 +126,7 @@ static int iris_section_align_entry_eq PARAMS ((const PTR, const PTR)); static hashval_t iris_section_align_entry_hash PARAMS ((const PTR)); static int iris6_section_align_1 PARAMS ((void **, void *)); #endif +static int mips_adjust_cost PARAMS ((rtx, rtx, rtx, int)); /* Global variables for machine-dependent things. */ @@ -455,6 +456,9 @@ enum reg_class mips_char_to_class[256] = #undef TARGET_ASM_FUNCTION_EPILOGUE #define TARGET_ASM_FUNCTION_EPILOGUE mips_output_function_epilogue +#undef TARGET_SCHED_ADJUST_COST +#define TARGET_SCHED_ADJUST_COST mips_adjust_cost + struct gcc_target targetm = TARGET_INITIALIZER; /* Return truth value of whether OP can be used as an operands @@ -9743,6 +9747,23 @@ mips_parse_cpu (cpu_string) return cpu; } +/* Adjust the cost of INSN based on the relationship between INSN that + is dependent on DEP_INSN through the dependence LINK. The default + is to make no adjustment to COST. + + On the MIPS, ignore the cost of anti- and output-dependencies. */ +static int +mips_adjust_cost (insn, link, dep, cost) + rtx insn ATTRIBUTE_UNUSED; + rtx link; + rtx dep ATTRIBUTE_UNUSED; + int cost; +{ + if (REG_NOTE_KIND (link) != 0) + return 0; /* Anti or output dependence. */ + return cost; +} + /* Cover function for UNIQUE_SECTION. */ void @@ -9815,6 +9836,7 @@ mips_unique_section (decl, reloc) DECL_SECTION_NAME (decl) = build_string (len, string); } + #ifdef TARGET_IRIX6 /* Output assembly to switch to section NAME with attribute FLAGS. */ diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index a3500ee..e09fb12 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -3688,16 +3688,6 @@ while (0) && (TUNE_MIPS4000 || TUNE_MIPS6000)) \ ? 2 : 1) -/* A C statement (sans semicolon) to update the integer variable COST - based on the relationship between INSN that is dependent on - DEP_INSN through the dependence LINK. The default is to make no - adjustment to COST. On the MIPS, ignore the cost of anti- and - output-dependencies. */ - -#define ADJUST_COST(INSN,LINK,DEP_INSN,COST) \ - if (REG_NOTE_KIND (LINK) != 0) \ - (COST) = 0; /* Anti or output dependence. */ - /* If defined, modifies the length assigned to instruction INSN as a function of the context in which it is used. LENGTH is an lvalue that contains the initially computed length of the insn and should -- cgit v1.1