re PR rtl-optimization/63637 (CSE on x86 asm()-s no longer working due to PR/60663...
authorJakub Jelinek <jakub@redhat.com>
Fri, 23 Jan 2015 19:55:16 +0000 (20:55 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 23 Jan 2015 19:55:16 +0000 (20:55 +0100)
commit6c4d60f80aae979c4c317e5274babd404429f4cf
tree1e1f3b9630c3bd67e06282a119cee3f5d8c8a41f
parentb2d7aa9a6246ba1454c1ebd04bb25c96ad0ec974
re PR rtl-optimization/63637 (CSE on x86 asm()-s no longer working due to PR/60663 fix)

PR rtl-optimization/63637
PR rtl-optimization/60663
* cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
if elt->cost is MAX_COST for ASM_OPERANDS.
(find_sets_in_insn): Fix up comment typo.
(cse_insn): Don't set src_volatile for all non-volatile
ASM_OPERANDS in PARALLELs, but just those with multiple outputs
or with "memory" clobber.  Set elt->cost to MAX_COST
for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
if new_src is ASM_OPERANDS and elt->cost is MAX_COST.

* gcc.dg/pr63637-1.c: New test.
* gcc.dg/pr63637-2.c: New test.
* gcc.dg/pr63637-3.c: New test.
* gcc.dg/pr63637-4.c: New test.
* gcc.dg/pr63637-5.c: New test.
* gcc.dg/pr63637-6.c: New test.
* gcc.target/i386/pr63637-1.c: New test.
* gcc.target/i386/pr63637-2.c: New test.
* gcc.target/i386/pr63637-3.c: New test.
* gcc.target/i386/pr63637-4.c: New test.
* gcc.target/i386/pr63637-5.c: New test.
* gcc.target/i386/pr63637-6.c: New test.

From-SVN: r220059
15 files changed:
gcc/ChangeLog
gcc/cse.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr63637-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr63637-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr63637-3.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr63637-4.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr63637-5.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr63637-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr63637-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr63637-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr63637-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr63637-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr63637-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr63637-6.c [new file with mode: 0644]