aboutsummaryrefslogtreecommitdiff
path: root/gcc/common
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@codesourcery.com>2011-09-30 15:37:43 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2011-09-30 15:37:43 +0000
commit11e69edcdc7031f74bf09d582851caf909a4a198 (patch)
tree6d433974ec952d60a7a61ed475ee648cc78c8fb6 /gcc/common
parentfe780c134a209c1bc665883636d6b068e1abd97b (diff)
downloadgcc-11e69edcdc7031f74bf09d582851caf909a4a198.zip
gcc-11e69edcdc7031f74bf09d582851caf909a4a198.tar.gz
gcc-11e69edcdc7031f74bf09d582851caf909a4a198.tar.bz2
c6x-common.c (c6x_option_optimization_table): Enable -fmodulo-sched at -O2 and above.
* common/config/c6x/c6x-common.c (c6x_option_optimization_table): Enable -fmodulo-sched at -O2 and above. * config/c6x/c6x.md (doloop_end): New expander. (mvilc, sploop, spkernel, loop_end): New patterns. (loop_end with memory destination splitter): New. * config/c6x/c6x.c: Include "hw-doloop.h". (enum unitreqs): New. (unit_req_table): New typedef. (unit_reqs): New static variable. (unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs, res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch, hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above, hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions. (struct c6x_sched_context): New member last_scheduled_iter0. (init_sched_state): Initialize it. (c6x_variable_issue): Update it. (sploop_max_uid_iter0): New static variable. (c6x_sched_reorder_1): Be careful about issuing sploop. (c6x_reorg): Call c6x_hwlooops before the final schedule. From-SVN: r179393
Diffstat (limited to 'gcc/common')
-rw-r--r--gcc/common/config/c6x/c6x-common.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/common/config/c6x/c6x-common.c b/gcc/common/config/c6x/c6x-common.c
index 133ddda..a9c98af 100644
--- a/gcc/common/config/c6x/c6x-common.c
+++ b/gcc/common/config/c6x/c6x-common.c
@@ -33,6 +33,7 @@ static const struct default_options c6x_option_optimization_table[] =
{
{ OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 },
{ OPT_LEVELS_1_PLUS, OPT_frename_registers, NULL, 1 },
+ { OPT_LEVELS_2_PLUS, OPT_fmodulo_sched, NULL, 1 },
{ OPT_LEVELS_ALL, OPT_freciprocal_math, NULL, 1 },
{ OPT_LEVELS_NONE, 0, NULL, 0 }
};