-
- Downloads
[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. From-SVN: r272112
Showing
- gcc/ChangeLog 27 additions, 0 deletionsgcc/ChangeLog
- gcc/config/arc/arc-protos.h 4 additions, 0 deletionsgcc/config/arc/arc-protos.h
- gcc/config/arc/arc.c 193 additions, 29 deletionsgcc/config/arc/arc.c
- gcc/config/arc/arc.md 130 additions, 85 deletionsgcc/config/arc/arc.md
- gcc/config/arc/constraints.md 15 additions, 7 deletionsgcc/config/arc/constraints.md
- gcc/testsuite/ChangeLog 17 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/gcc.target/arc/and-cnst-size.c 16 additions, 0 deletionsgcc/testsuite/gcc.target/arc/and-cnst-size.c
- gcc/testsuite/gcc.target/arc/arc700-stld-hazard.c 3 additions, 2 deletionsgcc/testsuite/gcc.target/arc/arc700-stld-hazard.c
- gcc/testsuite/gcc.target/arc/cmem-1.c 3 additions, 3 deletionsgcc/testsuite/gcc.target/arc/cmem-1.c
- gcc/testsuite/gcc.target/arc/cmem-2.c 3 additions, 3 deletionsgcc/testsuite/gcc.target/arc/cmem-2.c
- gcc/testsuite/gcc.target/arc/cmem-3.c 3 additions, 3 deletionsgcc/testsuite/gcc.target/arc/cmem-3.c
- gcc/testsuite/gcc.target/arc/cmem-4.c 3 additions, 3 deletionsgcc/testsuite/gcc.target/arc/cmem-4.c
- gcc/testsuite/gcc.target/arc/cmem-5.c 3 additions, 3 deletionsgcc/testsuite/gcc.target/arc/cmem-5.c
- gcc/testsuite/gcc.target/arc/cmem-6.c 3 additions, 3 deletionsgcc/testsuite/gcc.target/arc/cmem-6.c
- gcc/testsuite/gcc.target/arc/loop-4.c 2 additions, 1 deletiongcc/testsuite/gcc.target/arc/loop-4.c
- gcc/testsuite/gcc.target/arc/mov-cnst-size.c 42 additions, 0 deletionsgcc/testsuite/gcc.target/arc/mov-cnst-size.c
- gcc/testsuite/gcc.target/arc/movh_cl-1.c 1 addition, 1 deletiongcc/testsuite/gcc.target/arc/movh_cl-1.c
- gcc/testsuite/gcc.target/arc/or-cnst-size.c 16 additions, 0 deletionsgcc/testsuite/gcc.target/arc/or-cnst-size.c
- gcc/testsuite/gcc.target/arc/sdata-3.c 10 additions, 10 deletionsgcc/testsuite/gcc.target/arc/sdata-3.c
- gcc/testsuite/gcc.target/arc/store-merge-1.c 1 addition, 1 deletiongcc/testsuite/gcc.target/arc/store-merge-1.c
Loading
Please register or sign in to comment