diff options
author | Joern Rennecke <joern.rennecke@embecosm.com> | 2010-06-29 18:22:00 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 2010-06-29 19:22:00 +0100 |
commit | 38f8b050edd36ac977c564cab41cc1ce8e8a073e (patch) | |
tree | 00306b498ac87b11ae440e5a79b7b5301dea1ab1 /gcc/haifa-sched.c | |
parent | c75c86636fb6e359e0164fb228577ffe70c6d3af (diff) | |
download | gcc-38f8b050edd36ac977c564cab41cc1ce8e8a073e.zip gcc-38f8b050edd36ac977c564cab41cc1ce8e8a073e.tar.gz gcc-38f8b050edd36ac977c564cab41cc1ce8e8a073e.tar.bz2 |
re PR other/44034 (target hooks are hard to maintain)
gcc:
PR other/44034
* target.def, doc/tm.texi.in, genhooks.c: New files.
* target.h: Instead of defining individual hook members,
define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
include target.def.
* target-def.h: Instead of defining individual hook initializers,
include target-hooks-def.h.
* df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
targetm.live_on_entry -> targetm.extra_live_on_entry
targetm.sched.md_finish ->targetm.sched.finish
targetm.sched.md_init -> targetm.sched.init
targetm.sched.md_init_global -> targetm.sched.init_global
targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
targetm.asm_out.except_table_label ->
targetm.asm_out.emit_except_table_label
targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
targetm.target_help -> targetm.help
targetm.vectorize.builtin_support_vector_misalignment ->
targetm.vectorize.support_vector_misalignment
targetm.file_start_app_off -> targetm.asm_file_start_app_off
targetm.file_start_file_directive ->
targetm.asm_file_start_file_directive
* dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
* varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
* gcc/config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
TARGET_VECTOR_ALIGNMENT_REACHABLE ->
TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
* config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
* Makefile.in (TARGET_H): Depend on target.def.
(TARGET_DEF_H): Depend on target-hooks-def.h.
(target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
(s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
* doc/tm.texi: Regenerate.
gcc/c-family:
* c-common.c: Rename targetm member:
targetm.enum_va_list -> targetm.enum_va_list_p
gcc/po:
* EXCLUDES: Add genhooks.c.
Index: gcc/doc/tm.texi
From-SVN: r161547
Diffstat (limited to 'gcc/haifa-sched.c')
-rw-r--r-- | gcc/haifa-sched.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index 8d7149f..a5e1d3ff 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -1798,7 +1798,7 @@ schedule_insn (rtx insn) forward dependencies for INSN anymore. Nevertheless they are used in heuristics in rank_for_schedule (), early_queue_to_ready () and in some targets (e.g. rs6000). Thus the earliest place where we *can* - remove dependencies is after targetm.sched.md_finish () call in + remove dependencies is after targetm.sched.finish () call in schedule_block (). But, on the other side, the safest place to remove dependencies is when we are finishing scheduling entire region. As we don't generate [many] dependencies during scheduling itself, we won't @@ -2808,8 +2808,8 @@ schedule_block (basic_block *target_bb) /* It is used for first cycle multipass scheduling. */ temp_state = alloca (dfa_state_size); - if (targetm.sched.md_init) - targetm.sched.md_init (sched_dump, sched_verbose, ready.veclen); + if (targetm.sched.init) + targetm.sched.init (sched_dump, sched_verbose, ready.veclen); /* We start inserting insns after PREV_HEAD. */ last_scheduled_insn = prev_head; @@ -3283,9 +3283,9 @@ schedule_block (basic_block *target_bb) fix_inter_tick (NEXT_INSN (prev_head), last_scheduled_insn); } - if (targetm.sched.md_finish) + if (targetm.sched.finish) { - targetm.sched.md_finish (sched_dump, sched_verbose); + targetm.sched.finish (sched_dump, sched_verbose); /* Target might have added some instructions to the scheduled block in its md_finish () hook. These new insns don't have any data initialized and to identify them we extend h_i_d so that they'll @@ -3444,9 +3444,8 @@ sched_init (void) regstat_compute_calls_crossed (); - if (targetm.sched.md_init_global) - targetm.sched.md_init_global (sched_dump, sched_verbose, - get_max_uid () + 1); + if (targetm.sched.init_global) + targetm.sched.init_global (sched_dump, sched_verbose, get_max_uid () + 1); if (sched_pressure_p) { @@ -3571,8 +3570,8 @@ sched_finish (void) } free (curr_state); - if (targetm.sched.md_finish_global) - targetm.sched.md_finish_global (sched_dump, sched_verbose); + if (targetm.sched.finish_global) + targetm.sched.finish_global (sched_dump, sched_verbose); end_alias_analysis (); |