aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/arc/arc-protos.h
diff options
context:
space:
mode:
authorClaudiu Zissulescu <claziss@synopsys.com>2018-11-13 13:06:58 +0100
committerClaudiu Zissulescu <claziss@gcc.gnu.org>2018-11-13 13:06:58 +0100
commit8fa2c211f7852b1fe330423f4af096016bb3acbc (patch)
treee71b93ba94c6071da4257549369e6fe6141fd287 /gcc/config/arc/arc-protos.h
parent2cc2582cf823912f2cd87aaf9c0aed0ccc989e48 (diff)
downloadgcc-8fa2c211f7852b1fe330423f4af096016bb3acbc.zip
gcc-8fa2c211f7852b1fe330423f4af096016bb3acbc.tar.gz
gcc-8fa2c211f7852b1fe330423f4af096016bb3acbc.tar.bz2
[ARC] Add peephole rules to combine store/loads into double store/loads
Simple peephole rules which combines multiple ld/st instructions into 64-bit load/store instructions. It only works for architectures which are having double load/store option on. gcc/ Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc-protos.h (gen_operands_ldd_std): Add. * config/arc/arc.c (operands_ok_ldd_std): New function. (mem_ok_for_ldd_std): Likewise. (gen_operands_ldd_std): Likewise. * config/arc/arc.md: Add peephole2 rules for std/ldd. From-SVN: r266064
Diffstat (limited to 'gcc/config/arc/arc-protos.h')
-rw-r--r--gcc/config/arc/arc-protos.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h
index ce4b6f8..55f8ed4 100644
--- a/gcc/config/arc/arc-protos.h
+++ b/gcc/config/arc/arc-protos.h
@@ -45,6 +45,8 @@ extern bool compact_memory_operand_p (rtx, machine_mode, bool, bool);
extern int arc_return_address_register (unsigned int);
extern unsigned int arc_compute_function_type (struct function *);
extern bool arc_is_uncached_mem_p (rtx);
+extern bool arc_lra_p (void);
+extern bool gen_operands_ldd_std (rtx *operands, bool load, bool commute);
#endif /* RTX_CODE */
extern unsigned int arc_compute_frame_size (int);