diff options
author | Claudiu Zissulescu <claziss@synopsys.com> | 2018-11-13 13:06:58 +0100 |
---|---|---|
committer | Claudiu Zissulescu <claziss@gcc.gnu.org> | 2018-11-13 13:06:58 +0100 |
commit | 8fa2c211f7852b1fe330423f4af096016bb3acbc (patch) | |
tree | e71b93ba94c6071da4257549369e6fe6141fd287 /gcc/config/arc/arc-protos.h | |
parent | 2cc2582cf823912f2cd87aaf9c0aed0ccc989e48 (diff) | |
download | gcc-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.h | 2 |
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); |