public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/59880] New: Improve REE for implicit SI->DI zero-extend
@ 2014-01-19 16:14 hjl.tools at gmail dot com
  2014-01-19 17:09 ` [Bug rtl-optimization/59880] " jakub at gcc dot gnu.org
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: hjl.tools at gmail dot com @ 2014-01-19 16:14 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59880

            Bug ID: 59880
           Summary: Improve REE for implicit SI->DI zero-extend
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com

After r206774, on Linux/x86-64, the following code

---foo.c---
extern __thread unsigned int __bid_IDEC_glbflags;
typedef unsigned long long UINT64;
typedef __attribute__ ((aligned(16))) struct
{
  UINT64 w[2];
} UINT128;
extern UINT64 __bid64_from_uint64 (UINT64);
extern void __bid_round64_2_18 (int q,
                int x,
                UINT64 C,
                UINT64 * ptr_Cstar,
                int *delta_exp,
                int *ptr_is_midpoint_lt_even,
                int *ptr_is_midpoint_gt_even,
                int *ptr_is_inexact_lt_midpoint,
                int *ptr_is_inexact_gt_midpoint);
extern void __bid_round128_19_38 (int q,
                  int x,
                  UINT128 C,
                  UINT128 * ptr_Cstar,
                  int *delta_exp,
                  int *ptr_is_midpoint_lt_even,
                  int *ptr_is_midpoint_gt_even,
                  int *ptr_is_inexact_lt_midpoint,
                  int *ptr_is_inexact_gt_midpoint);
UINT64
__bid64_from_uint64 (UINT64 x)
{
  UINT64 res;
  UINT128 x128, res128;
  unsigned int q, ind;
  int incr_exp = 0;
  int is_midpoint_lt_even = 0, is_midpoint_gt_even = 0;
  int is_inexact_lt_midpoint = 0, is_inexact_gt_midpoint = 0;
  if (x <= 0x002386F26FC0ffffull) {
    if (x < 0x0020000000000000ull) {
      res = 0x31c0000000000000ull | x;
    } else {
      res = 0x6c70000000000000ull | (x & 0x0007ffffffffffffull);
    }
  }
  else
    {
      if (x < 0x16345785d8a0000ull) {
    q = 17;
    ind = 1;
      } else if (x < 0xde0b6b3a7640000ull) {
    q = 18;
    ind = 2;
      } else if (x < 0x8ac7230489e80000ull) {
    q = 19;
    ind = 3;
      } else {
    q = 20;
    ind = 4;
      }
      if (q <= 19) {
    __bid_round64_2_18 (
                q, ind, x, &res, &incr_exp,
                &is_midpoint_lt_even, &is_midpoint_gt_even,
                &is_inexact_lt_midpoint, &is_inexact_gt_midpoint);
      }
      else {
    x128.w[1] = 0x0;
    x128.w[0] = x;
    __bid_round128_19_38 (q, ind, x128, &res128, &incr_exp,
                  &is_midpoint_lt_even, &is_midpoint_gt_even,
                  &is_inexact_lt_midpoint, &is_inexact_gt_midpoint);
    res = res128.w[0];
      }
      if (incr_exp)
    ind++;
      if (is_inexact_lt_midpoint || is_inexact_gt_midpoint ||
      is_midpoint_lt_even || is_midpoint_gt_even)
    *&__bid_IDEC_glbflags |= 0x00000020;
      if (res < 0x0020000000000000ull) {
    res = (((UINT64) ind + 398) << 53) | res;
      } else
    {
      res = 0x6000000000000000ull | (((UINT64) ind + 398) << 51) |
        (res & 0x0007ffffffffffffull);
    }
    }
  return(res);;
}
-----------

contains 2 extra SI->DI zero-extend when compiled with

-O2 -march=corei7 -mtune=slm -fPIC

        movl    %ebp, %edx      # 311   *movsi_internal/1       [length = 2]
        ^^^^^^^^^^^^^^^^^^^ Implicit SI->DI zero-extend
        leaq    88(%rsp), %rsp  # 267   pro_epilogue_adjust_stack_di_add/1     
[length = 5]
        .cfi_remember_state
        .cfi_def_cfa_offset 24
        movabsq $2251799813685247, %rax # 101   *movdi_internal/5       [length
= 10]
        movl    %edx, %edx      # 312   *zero_extendsidi2/4     [length = 2]
        ^^^^^^^^^^^^^^^^^^^ Unnecessary


        movl    %ebp, %eax      # 308   *movsi_internal/1       [length = 2]
        ^^^^^^^^^^^^^^^^^^^ Implicit SI->DI zero-extend
        leaq    88(%rsp), %rsp  # 287   pro_epilogue_adjust_stack_di_add/1     
[length = 5]
        .cfi_remember_state
        .cfi_def_cfa_offset 24
        movl    %eax, %eax      # 309   *zero_extendsidi2/4     [length = 2]
        ^^^^^^^^^^^^^^^^^^^^ Unnecessary

REE pass should remove them.


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

* [Bug rtl-optimization/59880] Improve REE for implicit SI->DI zero-extend
  2014-01-19 16:14 [Bug rtl-optimization/59880] New: Improve REE for implicit SI->DI zero-extend hjl.tools at gmail dot com
@ 2014-01-19 17:09 ` jakub at gcc dot gnu.org
  2014-01-19 17:34 ` [Bug rtl-optimization/59880] ix86_avoid_lea_for_addr is buggy hjl.tools at gmail dot com
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-01-19 17:09 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59880

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
But REE does the right thing here:
In *.split2 before REE we have:
(insn 218 92 219 16 (set (reg:SI 0 ax [orig:123 D.1966 ] [123])
        (reg/v:SI 6 bp [orig:85 ind ] [85])) pr59880.c:77 90 {*movsi_internal}
     (nil))
(insn 219 218 94 16 (set (reg:DI 0 ax [orig:123 D.1966 ] [123])
        (zero_extend:DI (reg:SI 0 ax [orig:123 D.1966 ] [123]))) pr59880.c:77
132 {*zero_extendsidi2}
     (nil))
and REE turns that into:
(insn 218 92 94 16 (set (reg:DI 0 ax)
        (zero_extend:DI (reg/v:SI 6 bp [orig:85 ind ] [85]))) pr59880.c:77 132
{*zero_extendsidi2}
     (nil))
Then split4 splits that again into:
(insn 308 92 309 21 (set (reg:SI 0 ax)
        (reg/v:SI 6 bp [orig:85 ind ] [85])) pr59880.c:77 90 {*movsi_internal}
     (nil))
(insn 309 308 94 21 (set (reg:DI 0 ax)
        (zero_extend:DI (reg:SI 0 ax))) pr59880.c:77 132 {*zero_extendsidi2}
     (nil))
and finally sched2 moves those 2 insns appart.  So, this is clearly a backend
issue.


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

* [Bug rtl-optimization/59880] ix86_avoid_lea_for_addr is buggy
  2014-01-19 16:14 [Bug rtl-optimization/59880] New: Improve REE for implicit SI->DI zero-extend hjl.tools at gmail dot com
  2014-01-19 17:09 ` [Bug rtl-optimization/59880] " jakub at gcc dot gnu.org
@ 2014-01-19 17:34 ` hjl.tools at gmail dot com
  2014-01-19 18:25 ` ubizjak at gmail dot com
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: hjl.tools at gmail dot com @ 2014-01-19 17:34 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59880

--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Jakub Jelinek from comment #2)
> Ah, indeed, it is split because of the:
> (define_insn_and_split "*lea<mode>"
>   [(set (match_operand:SWI48 0 "register_operand" "=r")
>         (match_operand:SWI48 1 "address_no_seg_operand" "Ts"))]
> splitter.  I'd say it is a bug in ix86_avoid_lea_for_addr, that shouldn't
> have returned true in this case, where the second operand is (zero_extend:DI
> (reg:SI)).

My patch for PR 59379:

http://gcc.gnu.org/ml/gcc-patches/2014-01/msg01166.html

doesn't have this problem  Should we consider my patch instead?


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

* [Bug rtl-optimization/59880] ix86_avoid_lea_for_addr is buggy
  2014-01-19 16:14 [Bug rtl-optimization/59880] New: Improve REE for implicit SI->DI zero-extend hjl.tools at gmail dot com
  2014-01-19 17:09 ` [Bug rtl-optimization/59880] " jakub at gcc dot gnu.org
  2014-01-19 17:34 ` [Bug rtl-optimization/59880] ix86_avoid_lea_for_addr is buggy hjl.tools at gmail dot com
@ 2014-01-19 18:25 ` ubizjak at gmail dot com
  2014-01-19 18:41 ` ubizjak at gmail dot com
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: ubizjak at gmail dot com @ 2014-01-19 18:25 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="UTF-8", Size: 3466 bytes --]

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59880

--- Comment #4 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Jakub Jelinek from comment #2)
> Ah, indeed, it is split because of the:
> (define_insn_and_split "*lea<mode>"
>   [(set (match_operand:SWI48 0 "register_operand" "=r")
>         (match_operand:SWI48 1 "address_no_seg_operand" "Ts"))]
> splitter.  I'd say it is a bug in ix86_avoid_lea_for_addr, that shouldn't
> have returned true in this case, where the second operand is (zero_extend:DI
> (reg:SI)).

It shouldn't split this RTX, ix86_avoid_lea_for_addr has:

  /* There should be at least two components in the address.  */
  if ((parts.base != NULL_RTX) + (parts.index != NULL_RTX)
      + (parts.disp != NULL_RTX) + (parts.scale > 1) < 2)
    return false;
>From gcc-bugs-return-440928-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Sun Jan 19 18:29:02 2014
Return-Path: <gcc-bugs-return-440928-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 16654 invoked by alias); 19 Jan 2014 18:29:02 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 16610 invoked by uid 48); 19 Jan 2014 18:28:59 -0000
From: "jakub at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug rtl-optimization/59880] ix86_avoid_lea_for_addr is buggy
Date: Sun, 19 Jan 2014 18:29:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: rtl-optimization
X-Bugzilla-Version: 4.9.0
X-Bugzilla-Keywords:
X-Bugzilla-Severity: enhancement
X-Bugzilla-Who: jakub at gcc dot gnu.org
X-Bugzilla-Status: ASSIGNED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: jakub at gcc dot gnu.org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: bug_status assigned_to attachments.created
Message-ID: <bug-59880-4-zOvSCZ7OS9@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-59880-4@http.gcc.gnu.org/bugzilla/>
References: <bug-59880-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-01/txt/msg02070.txt.bz2
Content-length: 834

http://gcc.gnu.org/bugzilla/show_bug.cgi?idY880

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 #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 31893
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id1893&actioníit
gcc49-pr59880.patch

Untested fix.  The reason for the problem is that if it is just a
(zero-extended SI->DI or normal) move from %r13, %rbp or (for k6 %esi), then
decomposition sets parts.disp to const0_rtx and thus we count it as two parts,
even when we wouldn't emit it as a lea insn originally.


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

* [Bug rtl-optimization/59880] ix86_avoid_lea_for_addr is buggy
  2014-01-19 16:14 [Bug rtl-optimization/59880] New: Improve REE for implicit SI->DI zero-extend hjl.tools at gmail dot com
                   ` (2 preceding siblings ...)
  2014-01-19 18:25 ` ubizjak at gmail dot com
@ 2014-01-19 18:41 ` ubizjak at gmail dot com
  2014-01-19 19:41 ` jakub at gcc dot gnu.org
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: ubizjak at gmail dot com @ 2014-01-19 18:41 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59880

--- Comment #6 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Jakub Jelinek from comment #5)
> Created attachment 31893 [details]
> gcc49-pr59880.patch
> 
> Untested fix.  The reason for the problem is that if it is just a
> (zero-extended SI->DI or normal) move from %r13, %rbp or (for k6 %esi), then
> decomposition sets parts.disp to const0_rtx and thus we count it as two
> parts, even when we wouldn't emit it as a lea insn originally.

True. However, can you put new test before costly call to
ix86_ok_to_clobber_flags and ix86_decompose_address?
>From gcc-bugs-return-440931-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Sun Jan 19 19:03:57 2014
Return-Path: <gcc-bugs-return-440931-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 702 invoked by alias); 19 Jan 2014 19:03:56 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 624 invoked by uid 48); 19 Jan 2014 19:03:53 -0000
From: "glisse at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug c++/54425] Rvalue/Lvalue overload resolution of templated function
Date: Sun, 19 Jan 2014 19:03:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: c++
X-Bugzilla-Version: 4.8.0
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: glisse at gcc dot gnu.org
X-Bugzilla-Status: RESOLVED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: bug_status cc resolution
Message-ID: <bug-54425-4-6EXD2qcMaQ@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-54425-4@http.gcc.gnu.org/bugzilla/>
References: <bug-54425-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-01/txt/msg02073.txt.bz2
Content-length: 577

http://gcc.gnu.org/bugzilla/show_bug.cgi?idT425

Marc Glisse <glisse at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |glisse at gcc dot gnu.org
         Resolution|---                         |DUPLICATE

--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> ---
Already fixed on trunk.

*** This bug has been marked as a duplicate of bug 57172 ***


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

* [Bug rtl-optimization/59880] ix86_avoid_lea_for_addr is buggy
  2014-01-19 16:14 [Bug rtl-optimization/59880] New: Improve REE for implicit SI->DI zero-extend hjl.tools at gmail dot com
                   ` (3 preceding siblings ...)
  2014-01-19 18:41 ` ubizjak at gmail dot com
@ 2014-01-19 19:41 ` jakub at gcc dot gnu.org
  2014-01-20  9:52 ` [Bug target/59880] " jakub at gcc dot gnu.org
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-01-19 19:41 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59880

--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Sure, will do.  Thought about that as well, just didn't change it before
attaching ;)


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

* [Bug target/59880] ix86_avoid_lea_for_addr is buggy
  2014-01-19 16:14 [Bug rtl-optimization/59880] New: Improve REE for implicit SI->DI zero-extend hjl.tools at gmail dot com
                   ` (4 preceding siblings ...)
  2014-01-19 19:41 ` jakub at gcc dot gnu.org
@ 2014-01-20  9:52 ` jakub at gcc dot gnu.org
  2014-01-20  9:55 ` jakub at gcc dot gnu.org
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-01-20  9:52 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59880

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Mon Jan 20 09:52:21 2014
New Revision: 206792

URL: http://gcc.gnu.org/viewcvs?rev=206792&root=gcc&view=rev
Log:
    PR target/59880
    * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
    if operands[1] is a REG or ZERO_EXTEND of a REG.

    * gcc.target/i386/pr59880.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/i386/pr59880.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386.c
    trunk/gcc/testsuite/ChangeLog


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

* [Bug target/59880] ix86_avoid_lea_for_addr is buggy
  2014-01-19 16:14 [Bug rtl-optimization/59880] New: Improve REE for implicit SI->DI zero-extend hjl.tools at gmail dot com
                   ` (5 preceding siblings ...)
  2014-01-20  9:52 ` [Bug target/59880] " jakub at gcc dot gnu.org
@ 2014-01-20  9:55 ` jakub at gcc dot gnu.org
  2014-01-22 18:29 ` uros at gcc dot gnu.org
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-01-20  9:55 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59880

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

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

--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed for 4.9+.


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

* [Bug target/59880] ix86_avoid_lea_for_addr is buggy
  2014-01-19 16:14 [Bug rtl-optimization/59880] New: Improve REE for implicit SI->DI zero-extend hjl.tools at gmail dot com
                   ` (6 preceding siblings ...)
  2014-01-20  9:55 ` jakub at gcc dot gnu.org
@ 2014-01-22 18:29 ` uros at gcc dot gnu.org
  2014-01-22 19:58 ` uros at gcc dot gnu.org
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: uros at gcc dot gnu.org @ 2014-01-22 18:29 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59880

--- Comment #11 from uros at gcc dot gnu.org ---
Author: uros
Date: Wed Jan 22 18:28:30 2014
New Revision: 206934

URL: http://gcc.gnu.org/viewcvs?rev=206934&root=gcc&view=rev
Log:
    Backport from mainline
    2014-01-20  Uros Bizjak  <ubizjak@gmail.com>

    * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
    for SImode_address_operand operands, having only a REG argument.

    2014-01-20  Jakub Jelinek  <jakub@redhat.com>

    PR target/59880
    * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
    if operands[1] is a REG or ZERO_EXTEND of a REG.

    2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
            H.J. Lu  <hongjiu.lu@intel.com>

    PR target/59379
    * config/i386/i386.md (*lea<mode>): Zero-extend return register
    to DImode for zero-extended addresses.


Modified:
    branches/gcc-4_8-branch/gcc/ChangeLog
    branches/gcc-4_8-branch/gcc/config/i386/i386.c
    branches/gcc-4_8-branch/gcc/config/i386/i386.md


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

* [Bug target/59880] ix86_avoid_lea_for_addr is buggy
  2014-01-19 16:14 [Bug rtl-optimization/59880] New: Improve REE for implicit SI->DI zero-extend hjl.tools at gmail dot com
                   ` (7 preceding siblings ...)
  2014-01-22 18:29 ` uros at gcc dot gnu.org
@ 2014-01-22 19:58 ` uros at gcc dot gnu.org
  2014-01-22 19:59 ` ubizjak at gmail dot com
  2014-01-22 22:01 ` hjl at gcc dot gnu.org
  10 siblings, 0 replies; 12+ messages in thread
From: uros at gcc dot gnu.org @ 2014-01-22 19:58 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59880

--- Comment #12 from uros at gcc dot gnu.org ---
Author: uros
Date: Wed Jan 22 19:57:30 2014
New Revision: 206940

URL: http://gcc.gnu.org/viewcvs?rev=206940&root=gcc&view=rev
Log:
    PR target/59880
    * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
    for SImode_address_operand operands.  Return false
    if operands[1] is a REG.


Modified:
    branches/gcc-4_7-branch/gcc/ChangeLog
    branches/gcc-4_7-branch/gcc/config/i386/i386.c


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

* [Bug target/59880] ix86_avoid_lea_for_addr is buggy
  2014-01-19 16:14 [Bug rtl-optimization/59880] New: Improve REE for implicit SI->DI zero-extend hjl.tools at gmail dot com
                   ` (8 preceding siblings ...)
  2014-01-22 19:58 ` uros at gcc dot gnu.org
@ 2014-01-22 19:59 ` ubizjak at gmail dot com
  2014-01-22 22:01 ` hjl at gcc dot gnu.org
  10 siblings, 0 replies; 12+ messages in thread
From: ubizjak at gmail dot com @ 2014-01-22 19:59 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59880

Uroš Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|                            |x86
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #13 from Uroš Bizjak <ubizjak at gmail dot com> ---
Fixed.
>From gcc-bugs-return-441241-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Wed Jan 22 20:01:42 2014
Return-Path: <gcc-bugs-return-441241-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 4434 invoked by alias); 22 Jan 2014 20:01:41 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 4382 invoked by uid 48); 22 Jan 2014 20:01:36 -0000
From: "redi at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug libstdc++/58764] [4.9 Regression] [lwg/2193] error:=?UTF-8?Q? converting to ‘const std?=::vector<std::basic_string<char> >=?UTF-8?Q?’ from initializer list would use explicit constructor?Date: Wed, 22 Jan 2014 20:01:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: libstdc++
X-Bugzilla-Version: 4.9.0
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: redi at gcc dot gnu.org
X-Bugzilla-Status: ASSIGNED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: redi at gcc dot gnu.org
X-Bugzilla-Target-Milestone: 4.9.0
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-58764-4-r8pdn9xQ8n@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-58764-4@http.gcc.gnu.org/bugzilla/>
References: <bug-58764-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-01/txt/msg02383.txt.bz2
Content-length: 200

http://gcc.gnu.org/bugzilla/show_bug.cgi?idX764

--- Comment #11 from Jonathan Wakely <redi at gcc dot gnu.org> ---
OK, I'll make the noexcept conditional, which will mean losing it in C++03
mode.


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

* [Bug target/59880] ix86_avoid_lea_for_addr is buggy
  2014-01-19 16:14 [Bug rtl-optimization/59880] New: Improve REE for implicit SI->DI zero-extend hjl.tools at gmail dot com
                   ` (9 preceding siblings ...)
  2014-01-22 19:59 ` ubizjak at gmail dot com
@ 2014-01-22 22:01 ` hjl at gcc dot gnu.org
  10 siblings, 0 replies; 12+ messages in thread
From: hjl at gcc dot gnu.org @ 2014-01-22 22:01 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59880

--- Comment #14 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> ---
Author: hjl
Date: Wed Jan 22 22:01:00 2014
New Revision: 206942

URL: http://gcc.gnu.org/viewcvs?rev=206942&root=gcc&view=rev
Log:
Backport gcc.target/i386/pr59880.c

    Backport from mainline
    2014-01-20  Jakub Jelinek  <jakub@redhat.com>

    PR target/59880
    * gcc.target/i386/pr59880.c: New test.

Added:
    branches/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr59880.c
Modified:
    branches/gcc-4_8-branch/gcc/testsuite/ChangeLog


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

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

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-19 16:14 [Bug rtl-optimization/59880] New: Improve REE for implicit SI->DI zero-extend hjl.tools at gmail dot com
2014-01-19 17:09 ` [Bug rtl-optimization/59880] " jakub at gcc dot gnu.org
2014-01-19 17:34 ` [Bug rtl-optimization/59880] ix86_avoid_lea_for_addr is buggy hjl.tools at gmail dot com
2014-01-19 18:25 ` ubizjak at gmail dot com
2014-01-19 18:41 ` ubizjak at gmail dot com
2014-01-19 19:41 ` jakub at gcc dot gnu.org
2014-01-20  9:52 ` [Bug target/59880] " jakub at gcc dot gnu.org
2014-01-20  9:55 ` jakub at gcc dot gnu.org
2014-01-22 18:29 ` uros at gcc dot gnu.org
2014-01-22 19:58 ` uros at gcc dot gnu.org
2014-01-22 19:59 ` ubizjak at gmail dot com
2014-01-22 22:01 ` hjl 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).