This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r272112 - in /trunk/gcc: ChangeLog config/arc/a...
- From: claziss at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Mon, 10 Jun 2019 08:25:25 -0000
- Subject: r272112 - in /trunk/gcc: ChangeLog config/arc/a...
Author: claziss
Date: Mon Jun 10 08:25:25 2019
New Revision: 272112
URL: https://gcc.gnu.org/viewcvs?rev=272112&root=gcc&view=rev
Log:
[ARC] Improve code gen when compiling for size
When optimizing for size, try to avoid using long immediate by
employing alternative instructions.
gcc/
xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc-protos.h (arc_check_ior_const): Declare.
(arc_split_ior): Likewise.
(arc_check_mov_const): Likewise.
(arc_split_mov_const): Likewise.
* config/arc/arc.c (arc_print_operand): Fix 'z' letter.
(arc_rtx_costs): Replace check Crr with Cax constraint.
(prepare_move_operands): Cleanup, remove unused code.
(arc_split_ior): New function.
(arc_check_ior_const): Likewise.
(arc_split_mov_const): Likewise.
(arc_check_mov_const): Likewise.
* config/arc/arc.md (movsi_insn): Restructure it, and convert it
in define_insn_and_split pattern.
(iorsi3): Likewise.
(mulsi3_v2): Add new matching variant.
(andsi3_i): Cleanup pattern.
(rotrsi3_cnt1): Update pattern.
(rotrsi3_cnt8): New pattern.
(ashlsi2_cnt8): Likewise.
(ashlsi2_cnt16): Likewise.
* config/arc/constraints.md (C0p): Update constraint.
(Crr): Remove it.
(C0x): New pattern.
(Cax): New pattern.
testsuite/
xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com>
* gcc.target/arc/and-cnst-size.c: New test.
* gcc.target/arc/mov-cnst-size.c: Likewise.
* gcc.target/arc/or-cnst-size.c: Likewise.
* gcc.target/arc/store-merge-1.c: Update test.
* gcc.target/arc/arc700-stld-hazard.c: Likewise.
* gcc.target/arc/cmem-1.c: Likewise.
* gcc.target/arc/cmem-2.c: Likewise.
* gcc.target/arc/cmem-3.c: Likewise.
* gcc.target/arc/cmem-4.c: Likewise.
* gcc.target/arc/cmem-5.c: Likewise.
* gcc.target/arc/cmem-6.c: Likewise.
* gcc.target/arc/loop-4.c: Likewise.
* gcc.target/arc/movh_cl-1.c: Likewise.
* gcc.target/arc/sdata-3.c: Likewise.
Added:
trunk/gcc/testsuite/gcc.target/arc/and-cnst-size.c
trunk/gcc/testsuite/gcc.target/arc/mov-cnst-size.c
trunk/gcc/testsuite/gcc.target/arc/or-cnst-size.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/arc/arc-protos.h
trunk/gcc/config/arc/arc.c
trunk/gcc/config/arc/arc.md
trunk/gcc/config/arc/constraints.md
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.target/arc/arc700-stld-hazard.c
trunk/gcc/testsuite/gcc.target/arc/cmem-1.c
trunk/gcc/testsuite/gcc.target/arc/cmem-2.c
trunk/gcc/testsuite/gcc.target/arc/cmem-3.c
trunk/gcc/testsuite/gcc.target/arc/cmem-4.c
trunk/gcc/testsuite/gcc.target/arc/cmem-5.c
trunk/gcc/testsuite/gcc.target/arc/cmem-6.c
trunk/gcc/testsuite/gcc.target/arc/loop-4.c
trunk/gcc/testsuite/gcc.target/arc/movh_cl-1.c
trunk/gcc/testsuite/gcc.target/arc/sdata-3.c
trunk/gcc/testsuite/gcc.target/arc/store-merge-1.c