diff options
author | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-09-30 13:33:54 +0000 |
---|---|---|
committer | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-09-30 13:33:54 +0000 |
commit | c0457559326a53fadb161b20a2a886ba75848216 (patch) | |
tree | d5defa483a7652bacc4b555ea1317b96b9ec56a0 /gcc/params.def | |
parent | 96baa0d7206df634de635a40a8b14e20d8ef57c3 (diff) | |
download | gcc-c0457559326a53fadb161b20a2a886ba75848216.tar.gz |
* haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns,
modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left,
modulo_last_stage): New static variables.
(set_modulo_params, discard_delay_pairs_above): New functions.
(struct delay_pair): New member stages.
(htab_i2_traverse, htab_i1_traverse): New static functions.
(record_delay_slot_pair): New arg stages. All callers changed.
Record it.
(pair_delay): Take stages into account.
(add_delay_dependencies): Don't do so for stage pairs.
(struct sched_block_state): New member modulo_epilogue.
(save_backtrack_point): Don't set SHADOW_P for stage pairs.
(unschedule_insns_until): Decrease modulo_insns_scheduled.
Set HARD_DEP without using or.
(resolve_dependencies): New static function.
(prune_ready_list): New arg modulo_epilogue_p. All callers changed.
If it is true, allow only insns with INSN_EXACT_TICK set.
(schedule_block): Return bool, always true for normal scheduling,
true or false depending on modulo scheduling success otherwise.
Add bookkeeping for modulo scheduling, and call resolve_dependencies
on everything left over after a modulo schedule.
(haifa_sched_init): Remove check_cfg call. Clear modulo_ii.
* sched-int.h (schedule_block, record_delay_slot_pair): Adjust
declarations.
(set_modulo_params, discard_delay_pairs_above): Declare.
* params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New.
* doc/invoke.texi (--param): Document it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179383 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/params.def')
-rw-r--r-- | gcc/params.def | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/params.def b/gcc/params.def index a795c38aefc..5e49c48f7b9 100644 --- a/gcc/params.def +++ b/gcc/params.def @@ -165,6 +165,13 @@ DEFPARAM(PARAM_MAX_PENDING_LIST_LENGTH, "The maximum length of scheduling's pending operations list", 32, 0, 0) +/* This parameter limits the number of backtracking attempts when using the + haifa scheduler for modulo scheduling. */ +DEFPARAM(PARAM_MAX_MODULO_BACKTRACK_ATTEMPTS, + "max-modulo-backtrack-attempts", + "The maximum number of backtrack attempts the scheduler should make when modulo scheduling a loop", + 40, 0, 0) + DEFPARAM(PARAM_LARGE_FUNCTION_INSNS, "large-function-insns", "The size of function body to be considered large", |