summaryrefslogtreecommitdiff
path: root/gcc/sched-int.h
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2015-10-19 09:23:07 +0000
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>2015-10-19 09:23:07 +0000
commit613743a2cb9e09a864e0b913cbb7721d96c2079d (patch)
tree28d9759757f90c9e8bdef847447a24705e156f03 /gcc/sched-int.h
parenteb5ea58e9edce24e6142e6f6f5d9ab0d1dfc4c84 (diff)
[haifa-sched] model load/store multiples properly in autoprefetcher scheduling
* sched-int.h (struct autopref_multipass_data_): Remove offset field. Add min_offset, max_offset, multi_mem_insn_p fields. * haifa-sched.c (analyze_set_insn_for_autopref): New function. (autopref_multipass_init): Use it. Handle PARALLEL sets. (autopref_rank_data): New function. (autopref_rank_for_schedule): Use it. (autopref_multipass_dfa_lookahead_guard_1): Likewise. From-SVN: r228962
Diffstat (limited to 'gcc/sched-int.h')
-rw-r--r--gcc/sched-int.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/gcc/sched-int.h b/gcc/sched-int.h
index 800262c4a4a..86f582105f8 100644
--- a/gcc/sched-int.h
+++ b/gcc/sched-int.h
@@ -807,8 +807,17 @@ struct autopref_multipass_data_
{
/* Base part of memory address. */
rtx base;
- /* Memory offset. */
- int offset;
+
+ /* Memory offsets from the base. For single simple sets
+ only min_offset is valid. For multi-set insns min_offset
+ and max_offset record the minimum and maximum offsets from the same
+ base among the sets inside the PARALLEL. */
+ int min_offset;
+ int max_offset;
+
+ /* True if this is a load/store-multiple instruction. */
+ bool multi_mem_insn_p;
+
/* Entry status. */
enum autopref_multipass_data_status status;
};