]> git.ipfire.org Git - thirdparty/gcc.git/commit
c6x-common.c (c6x_option_optimization_table): Enable -fmodulo-sched at -O2 and above.
authorBernd Schmidt <bernds@codesourcery.com>
Fri, 30 Sep 2011 15:37:43 +0000 (15:37 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Fri, 30 Sep 2011 15:37:43 +0000 (15:37 +0000)
commit11e69edcdc7031f74bf09d582851caf909a4a198
tree6d433974ec952d60a7a61ed475ee648cc78c8fb6
parentfe780c134a209c1bc665883636d6b068e1abd97b
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
gcc/ChangeLog
gcc/common/config/c6x/c6x-common.c
gcc/config/c6x/c6x.c
gcc/config/c6x/c6x.md