public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/63637] New: CSE() on x86 asm()-s no longer working due to PR/60663 fix
@ 2014-10-24 11:44 jbeulich at novell dot com
  2014-12-17  8:19 ` [Bug rtl-optimization/63637] [4.9/5 Regression] CSE " jakub at gcc dot gnu.org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: jbeulich at novell dot com @ 2014-10-24 11:44 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63637

            Bug ID: 63637
           Summary: CSE() on x86 asm()-s no longer working due to PR/60663
                    fix
           Product: gcc
           Version: 4.9.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jbeulich at novell dot com

Created attachment 33800
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33800&action=edit
example

The attached example, derived after seeing x86 Linux'es this_cpu_read_stable()
no longer getting CSE'd as expected, demonstrates the issue. 4.8.3 folded all
four read_p() invocations and each pair of read_m().

Jakub pointed out that this is an effect of the fix for PR/60663 in connection
with all x86 asm()-s getting two clobbers attached.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug rtl-optimization/63637] [4.9/5 Regression] CSE on x86 asm()-s no longer working due to PR/60663 fix
  2014-10-24 11:44 [Bug rtl-optimization/63637] New: CSE() on x86 asm()-s no longer working due to PR/60663 fix jbeulich at novell dot com
@ 2014-12-17  8:19 ` jakub at gcc dot gnu.org
  2015-01-13 13:00 ` jakub at gcc dot gnu.org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-12-17  8:19 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63637

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2014-12-17
                 CC|                            |jakub at gcc dot gnu.org
   Target Milestone|---                         |4.9.3
            Summary|CSE on x86 asm()-s no       |[4.9/5 Regression] CSE on
                   |longer working due to       |x86 asm()-s no longer
                   |PR/60663 fix                |working due to PR/60663 fix
     Ever confirmed|0                           |1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug rtl-optimization/63637] [4.9/5 Regression] CSE on x86 asm()-s no longer working due to PR/60663 fix
  2014-10-24 11:44 [Bug rtl-optimization/63637] New: CSE() on x86 asm()-s no longer working due to PR/60663 fix jbeulich at novell dot com
  2014-12-17  8:19 ` [Bug rtl-optimization/63637] [4.9/5 Regression] CSE " jakub at gcc dot gnu.org
@ 2015-01-13 13:00 ` jakub at gcc dot gnu.org
  2015-01-23 19:56 ` jakub at gcc dot gnu.org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-01-13 13:00 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63637

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 34434
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34434&action=edit
gcc5-pr63637.patch

Untested fix.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug rtl-optimization/63637] [4.9/5 Regression] CSE on x86 asm()-s no longer working due to PR/60663 fix
  2014-10-24 11:44 [Bug rtl-optimization/63637] New: CSE() on x86 asm()-s no longer working due to PR/60663 fix jbeulich at novell dot com
  2014-12-17  8:19 ` [Bug rtl-optimization/63637] [4.9/5 Regression] CSE " jakub at gcc dot gnu.org
  2015-01-13 13:00 ` jakub at gcc dot gnu.org
@ 2015-01-23 19:56 ` jakub at gcc dot gnu.org
  2015-01-23 20:09 ` [Bug rtl-optimization/63637] [4.9 " jakub at gcc dot gnu.org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-01-23 19:56 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63637

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Fri Jan 23 19:55:16 2015
New Revision: 220059

URL: https://gcc.gnu.org/viewcvs?rev=220059&root=gcc&view=rev
Log:
    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.

Added:
    trunk/gcc/testsuite/gcc.dg/pr63637-1.c
    trunk/gcc/testsuite/gcc.dg/pr63637-2.c
    trunk/gcc/testsuite/gcc.dg/pr63637-3.c
    trunk/gcc/testsuite/gcc.dg/pr63637-4.c
    trunk/gcc/testsuite/gcc.dg/pr63637-5.c
    trunk/gcc/testsuite/gcc.dg/pr63637-6.c
    trunk/gcc/testsuite/gcc.target/i386/pr63637-1.c
    trunk/gcc/testsuite/gcc.target/i386/pr63637-2.c
    trunk/gcc/testsuite/gcc.target/i386/pr63637-3.c
    trunk/gcc/testsuite/gcc.target/i386/pr63637-4.c
    trunk/gcc/testsuite/gcc.target/i386/pr63637-5.c
    trunk/gcc/testsuite/gcc.target/i386/pr63637-6.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/cse.c
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug rtl-optimization/63637] [4.9 Regression] CSE on x86 asm()-s no longer working due to PR/60663 fix
  2014-10-24 11:44 [Bug rtl-optimization/63637] New: CSE() on x86 asm()-s no longer working due to PR/60663 fix jbeulich at novell dot com
                   ` (2 preceding siblings ...)
  2015-01-23 19:56 ` jakub at gcc dot gnu.org
@ 2015-01-23 20:09 ` jakub at gcc dot gnu.org
  2015-02-01 17:33 ` jakub at gcc dot gnu.org
  2015-02-01 22:00 ` jakub at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-01-23 20:09 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63637

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[4.9/5 Regression] CSE on   |[4.9 Regression] CSE on x86
                   |x86 asm()-s no longer       |asm()-s no longer working
                   |working due to PR/60663 fix |due to PR/60663 fix

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed on the trunk so far.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug rtl-optimization/63637] [4.9 Regression] CSE on x86 asm()-s no longer working due to PR/60663 fix
  2014-10-24 11:44 [Bug rtl-optimization/63637] New: CSE() on x86 asm()-s no longer working due to PR/60663 fix jbeulich at novell dot com
                   ` (3 preceding siblings ...)
  2015-01-23 20:09 ` [Bug rtl-optimization/63637] [4.9 " jakub at gcc dot gnu.org
@ 2015-02-01 17:33 ` jakub at gcc dot gnu.org
  2015-02-01 22:00 ` jakub at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-02-01 17:33 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63637

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Sun Feb  1 17:33:19 2015
New Revision: 220323

URL: https://gcc.gnu.org/viewcvs?rev=220323&root=gcc&view=rev
Log:
    Backported from mainline
    2015-01-23  Jakub Jelinek  <jakub@redhat.com>

    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.

Added:
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/pr63637-1.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/pr63637-2.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/pr63637-3.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/pr63637-4.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/pr63637-5.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/pr63637-6.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.target/i386/pr63637-1.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.target/i386/pr63637-2.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.target/i386/pr63637-3.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.target/i386/pr63637-4.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.target/i386/pr63637-5.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.target/i386/pr63637-6.c
Modified:
    branches/gcc-4_9-branch/gcc/ChangeLog
    branches/gcc-4_9-branch/gcc/cse.c
    branches/gcc-4_9-branch/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug rtl-optimization/63637] [4.9 Regression] CSE on x86 asm()-s no longer working due to PR/60663 fix
  2014-10-24 11:44 [Bug rtl-optimization/63637] New: CSE() on x86 asm()-s no longer working due to PR/60663 fix jbeulich at novell dot com
                   ` (4 preceding siblings ...)
  2015-02-01 17:33 ` jakub at gcc dot gnu.org
@ 2015-02-01 22:00 ` jakub at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-02-01 22:00 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63637

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed.


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-02-01 22:00 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-10-24 11:44 [Bug rtl-optimization/63637] New: CSE() on x86 asm()-s no longer working due to PR/60663 fix jbeulich at novell dot com
2014-12-17  8:19 ` [Bug rtl-optimization/63637] [4.9/5 Regression] CSE " jakub at gcc dot gnu.org
2015-01-13 13:00 ` jakub at gcc dot gnu.org
2015-01-23 19:56 ` jakub at gcc dot gnu.org
2015-01-23 20:09 ` [Bug rtl-optimization/63637] [4.9 " jakub at gcc dot gnu.org
2015-02-01 17:33 ` jakub at gcc dot gnu.org
2015-02-01 22:00 ` jakub at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).