New avt target pass to work around performance loss by PR fix.
authorGeorg-Johann Lay <avr@gjlay.de>
Tue, 25 Oct 2016 08:35:17 +0000 (08:35 +0000)
committerGeorg-Johann Lay <gjl@gcc.gnu.org>
Tue, 25 Oct 2016 08:35:17 +0000 (08:35 +0000)
commit078134e5a412ee137f14f6f7d21a4aeae0d7e49c
tree897f2cea4b36b4f0f68afebad404e621814b4005
parentc7212a155c2f3fdf585f7693159aa4d932d9a585
New avt target pass to work around performance loss by PR fix.

gcc/
New avt target pass to work around performance loss by PR fix.
PR target/71676
PR target/71678
* config/avr/avr.md (casesi_<mode>_sequence) [qi,hi]: New insn.
(*cmp<mode>) [qi,qq,uqq,hi,hq,uhq,ha,uha]: Rename to cmp<mode>3.
* config/avr/predicates.md (extend_operator): New.
* config/avr/avr-passes.def (avr_pass_casesi): Register new pass.
* config/avr/avr-protos.h (avr_casei_sequence_check_operands)
(make_avr_pass_casesi): New prototypes.
* config/avr/avr.c (print-rtl.h): Include it.
(pass_data avr_pass_data_casesi): Data for new pass.
(avr_pass_casesi): New class implementing rtl_opt_pass .avr-casesi.
(make_avr_pass_casesi, avr_parallel_insn_from_insns)
(avr_is_casesi_sequence, avr_casei_sequence_check_operands)
(avr_optimize_casesi): New functions.
gcc/testsuite/
PR target/71676
PR target/71678
* gcc.target/avr/pr71676-2.c: New test.

From-SVN: r241504
gcc/ChangeLog
gcc/config/avr/avr-passes.def
gcc/config/avr/avr-protos.h
gcc/config/avr/avr.c
gcc/config/avr/avr.md
gcc/config/avr/predicates.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/avr/pr71676-2.c [new file with mode: 0644]