diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2019-04-21 18:23:00 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2019-04-21 11:23:00 -0700 |
commit | f94302e90b09bc30d5ba357d4f84aa37f7a75ad1 (patch) | |
tree | 9ddd83f023197d5d210e4a65188cb15843813408 /gcc/testsuite | |
parent | 6397d8df302d964740dca942445165d4c2a6c0aa (diff) | |
download | gcc-f94302e90b09bc30d5ba357d4f84aa37f7a75ad1.zip gcc-f94302e90b09bc30d5ba357d4f84aa37f7a75ad1.tar.gz gcc-f94302e90b09bc30d5ba357d4f84aa37f7a75ad1.tar.bz2 |
LRA: Revert "Remove useless move insns"
Useless move insn removal was added to LRA just to avoid wasting CPU
cycles on such insn processing afterwards. Such insns are removed
anyway later in the pass pipeline. The CPU time savings are tiny but
the removal creates too many problems including PR target/90178.
Vladimir pre-approved the patch to remove the code:
https://gcc.gnu.org/ml/gcc-patches/2019-04/msg00834.html
gcc/
PR target/90178
Revert:
2018-11-21 Uros Bizjak <ubizjak@gmail.com>
Revert the revert:
2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
Revert:
2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
* lra-spills.c (lra_final_code_change): Remove useless move insns.
gcc/testsuite/
PR target/90178
* gcc.target/i386/pr90178.c: New test.
From-SVN: r270484
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr90178.c | 13 |
2 files changed, 18 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ee1281e..9833824 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-04-21 H.J. Lu <hongjiu.lu@intel.com> + + PR target/90178 + * gcc.target/i386/pr90178.c: New test. + 2019-04-20 Sandra Loosemore <sandra@codesourcery.com> * g++.dg/ipa/pr89009.C: Add dg-require-effective-target fpic. diff --git a/gcc/testsuite/gcc.target/i386/pr90178.c b/gcc/testsuite/gcc.target/i386/pr90178.c new file mode 100644 index 0000000..1df36af --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr90178.c @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -mavx -mvzeroupper" } */ + +int* +find_ptr (int* mem, int sz, int val) +{ + for (int i = 0; i < sz; i++) + if (mem[i] == val) + return &mem[i]; + return 0; +} + +/* { dg-final { scan-assembler-times "xorl\[\\t \]*\\\%eax,\[\\t \]*%eax" 1 } } */ |