public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/36758]  New: address addition moved out of the loop
@ 2008-07-07 21:35 pinskia at gcc dot gnu dot org
  2008-07-07 21:37 ` [Bug middle-end/36758] [4.3/4.4 Regression] " pinskia at gcc dot gnu dot org
                   ` (23 more replies)
  0 siblings, 24 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-07-07 21:35 UTC (permalink / raw)
  To: gcc-bugs

Take the following testcase:
extern int f0(int *);
void
f1()
{
  int x;
  while (f0(&x));
}

-- CUT ---
Currently GCC produces:
        addi 31,1,112
        .p2align 3,,7
.L2:
        mr 3,31
        bl f0
        nop
        cmpdi 7,3,0
        bne 7,.L2

Notice how there is mr 3, 31 inside the loop.  At least on the Cell, the mr and
addi both have the same cycle count so we should not be moving the addition
outside of the loop.  This will save at least one volatile register which
should reduce code size.  This is a definite win for code size.


-- 
           Summary: address addition moved out of the loop
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Keywords: missed-optimization
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: pinskia at gcc dot gnu dot org
GCC target triplet: powerpc*-*-*


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


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

* [Bug middle-end/36758] [4.3/4.4 Regression] address addition moved out of the loop
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
@ 2008-07-07 21:37 ` pinskia at gcc dot gnu dot org
  2008-07-07 21:52 ` pinskia at gcc dot gnu dot org
                   ` (22 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-07-07 21:37 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pinskia at gcc dot gnu dot org  2008-07-07 21:36 -------
4.1.1 actually did the right thing.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |4.3.0 4.4.0
      Known to work|                            |4.1.1
            Summary|address addition moved out  |[4.3/4.4 Regression] address
                   |of the loop                 |addition moved out of the
                   |                            |loop
   Target Milestone|---                         |4.3.2
            Version|unknown                     |4.4.0


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


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

* [Bug middle-end/36758] [4.3/4.4 Regression] address addition moved out of the loop
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
  2008-07-07 21:37 ` [Bug middle-end/36758] [4.3/4.4 Regression] " pinskia at gcc dot gnu dot org
@ 2008-07-07 21:52 ` pinskia at gcc dot gnu dot org
  2008-07-18 17:00 ` rguenth at gcc dot gnu dot org
                   ` (21 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-07-07 21:52 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from pinskia at gcc dot gnu dot org  2008-07-07 21:51 -------
(In reply to comment #1)
> 4.1.1 actually did the right thing.
That is it produced:
.L.f1:
        mflr 0
        std 0,16(1)
        stdu 1,-128(1)
        .p2align 4,,15
.L3:
        addi 3,1,112
        bl f0
        nop
        cmpdi 7,3,0
        bne 7,.L3
        addi 1,1,128
        ld 0,16(1)
        mtlr 0
        blr
        .long 0
        .byte 0,0,0,1,128,0,0,0
        .size   f1,.-.L.f1
        .ident  "GCC: (GNU) 4.1.1"


-- 


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


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

* [Bug middle-end/36758] [4.3/4.4 Regression] address addition moved out of the loop
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
  2008-07-07 21:37 ` [Bug middle-end/36758] [4.3/4.4 Regression] " pinskia at gcc dot gnu dot org
  2008-07-07 21:52 ` pinskia at gcc dot gnu dot org
@ 2008-07-18 17:00 ` rguenth at gcc dot gnu dot org
  2008-08-27 22:11 ` jsm28 at gcc dot gnu dot org
                   ` (20 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-07-18 17:00 UTC (permalink / raw)
  To: gcc-bugs



-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2


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


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

* [Bug middle-end/36758] [4.3/4.4 Regression] address addition moved out of the loop
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2008-07-18 17:00 ` rguenth at gcc dot gnu dot org
@ 2008-08-27 22:11 ` jsm28 at gcc dot gnu dot org
  2008-09-20 15:24 ` [Bug rtl-optimization/36758] " rguenth at gcc dot gnu dot org
                   ` (19 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: jsm28 at gcc dot gnu dot org @ 2008-08-27 22:11 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from jsm28 at gcc dot gnu dot org  2008-08-27 22:05 -------
4.3.2 is released, changing milestones to 4.3.3.


-- 

jsm28 at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.3.2                       |4.3.3


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


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

* [Bug rtl-optimization/36758] [4.3/4.4 Regression] address addition moved out of the loop
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2008-08-27 22:11 ` jsm28 at gcc dot gnu dot org
@ 2008-09-20 15:24 ` rguenth at gcc dot gnu dot org
  2008-09-20 22:52 ` pinskia at gcc dot gnu dot org
                   ` (18 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-09-20 15:24 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from rguenth at gcc dot gnu dot org  2008-09-20 15:22 -------
This might be a cost issue in the ppc backend (and so target, not
rtl-optimization).


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|middle-end                  |rtl-optimization


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


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

* [Bug rtl-optimization/36758] [4.3/4.4 Regression] address addition moved out of the loop
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2008-09-20 15:24 ` [Bug rtl-optimization/36758] " rguenth at gcc dot gnu dot org
@ 2008-09-20 22:52 ` pinskia at gcc dot gnu dot org
  2008-09-20 22:56 ` pinskia at gcc dot gnu dot org
                   ` (17 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-09-20 22:52 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from pinskia at gcc dot gnu dot org  2008-09-20 22:51 -------
Set in insn 6 is invariant (0), cost 0, depends on


-- 


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


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

* [Bug rtl-optimization/36758] [4.3/4.4 Regression] address addition moved out of the loop
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2008-09-20 22:52 ` pinskia at gcc dot gnu dot org
@ 2008-09-20 22:56 ` pinskia at gcc dot gnu dot org
  2008-09-20 23:33 ` pinskia at gcc dot gnu dot org
                   ` (16 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-09-20 22:56 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from pinskia at gcc dot gnu dot org  2008-09-20 22:54 -------
The original insn:
(insn 6 5 7 3 t.c:6 (set (reg:SI 3 3)
        (reg/f:SI 122)) 325 {*movsi_internal1} (expr_list:REG_EQUAL (plus:SI
(reg/f:SI 113 sfp)
            (const_int 8 [0x8]))
        (nil)))


-- 


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


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

* [Bug rtl-optimization/36758] [4.3/4.4 Regression] address addition moved out of the loop
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2008-09-20 22:56 ` pinskia at gcc dot gnu dot org
@ 2008-09-20 23:33 ` pinskia at gcc dot gnu dot org
  2008-09-20 23:36 ` pinskia at gcc dot gnu dot org
                   ` (15 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-09-20 23:33 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from pinskia at gcc dot gnu dot org  2008-09-20 23:32 -------
(In reply to comment #4)
> This might be a cost issue in the ppc backend (and so target, not
> rtl-optimization).

GCSE is pulling out the invariant.
Before GCSE we had:
(insn 20 5 6 3 t.c:6 (set (reg/f:SI 121)
        (plus:SI (reg/f:SI 113 sfp)
            (const_int 8 [0x8]))) -1 (nil))

(insn 6 20 7 3 t.c:6 (set (reg:SI 3 3)
        (reg/f:SI 121)) 325 {*movsi_internal1} (expr_list:REG_EQUAL (plus:SI
(reg/f:SI 113 sfp)
            (const_int 8 [0x8]))
        (nil))) 

(call_insn 7 6 8 3 t.c:6 (parallel [
            (set (reg:SI 3 3)
                (call (mem:SI (symbol_ref:SI ("f0") [flags 0x41] <function_decl
0xf7d41e00 f0>) [0 S4 A8])
                    (const_int 0 [0x0])))
            (use (const_int 0 [0x0]))
            (clobber (reg:SI 65 lr))
        ]) 450 {*call_value_nonlocal_sysvsi} (nil)
    (expr_list:REG_DEP_TRUE (use (reg:SI 3 3))
        (nil)))  

(insn 8 7 10 3 t.c:6 (set (reg:SI 119 [ D.1255 ])
        (reg:SI 3 3)) 325 {*movsi_internal1} (nil)) 

(insn 10 8 11 3 t.c:6 (set (reg:CC 120)
        (compare:CC (reg:SI 119 [ D.1255 ])
            (const_int 0 [0x0]))) 471 {*cmpsi_internal1} (nil))

(jump_insn 11 10 19 3 t.c:6 (set (pc)
        (if_then_else (ne (reg:CC 120)
                (const_int 0 [0x0]))
            (label_ref 9)
            (pc))) 560 {*rs6000.md:13857} (expr_list:REG_BR_PROB (const_int
8600 [0x2198])
        (nil)))

And then it pulled out the set outside of the loop.  
Why didn't we combine the set of reg 121 into its one use in the set of 3
before the fact (like in fwprop)?


-- 


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


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

* [Bug rtl-optimization/36758] [4.3/4.4 Regression] address addition moved out of the loop
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2008-09-20 23:33 ` pinskia at gcc dot gnu dot org
@ 2008-09-20 23:36 ` pinskia at gcc dot gnu dot org
  2008-09-21  0:21 ` pinskia at gcc dot gnu dot org
                   ` (14 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-09-20 23:36 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from pinskia at gcc dot gnu dot org  2008-09-20 23:35 -------
GCSE in 4.1.1 did not move this for some reason ...


-- 


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


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

* [Bug rtl-optimization/36758] [4.3/4.4 Regression] address addition moved out of the loop
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2008-09-20 23:36 ` pinskia at gcc dot gnu dot org
@ 2008-09-21  0:21 ` pinskia at gcc dot gnu dot org
  2008-09-21  0:27 ` pinskia at gcc dot gnu dot org
                   ` (13 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-09-21  0:21 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from pinskia at gcc dot gnu dot org  2008-09-21 00:20 -------
After changing fwprop.c to do the prop if it was used only once,
loop-invariant.c pulls it out again.


-- 


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


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

* [Bug rtl-optimization/36758] [4.3/4.4 Regression] address addition moved out of the loop
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (9 preceding siblings ...)
  2008-09-21  0:21 ` pinskia at gcc dot gnu dot org
@ 2008-09-21  0:27 ` pinskia at gcc dot gnu dot org
  2008-09-21  0:46 ` [Bug rtl-optimization/36758] [4.3/4.4 Regression] addition moved out of the loop when used with an argument pinskia at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-09-21  0:27 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from pinskia at gcc dot gnu dot org  2008-09-21 00:26 -------
Now in gain_for_invariant, size_cost is zero, even though we have a hard
register so we know it will have an extra move.


-- 


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


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

* [Bug rtl-optimization/36758] [4.3/4.4 Regression] addition moved out of the loop when used with an argument
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (10 preceding siblings ...)
  2008-09-21  0:27 ` pinskia at gcc dot gnu dot org
@ 2008-09-21  0:46 ` pinskia at gcc dot gnu dot org
  2008-09-25  2:53 ` pinskia at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-09-21  0:46 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from pinskia at gcc dot gnu dot org  2008-09-21 00:45 -------
Here is another testcase which shows the issue:
int f(int b);

float g(int a)
{
  while (f(a + 1));
  while (f(a));
}
--- CUT ---
This increases the need for another volatile register and in fact increases
register pressure even more.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[4.3/4.4 Regression] address|[4.3/4.4 Regression]
                   |addition moved out of the   |addition moved out of the
                   |loop                        |loop when used with an
                   |                            |argument


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


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

* [Bug rtl-optimization/36758] [4.3/4.4 Regression] addition moved out of the loop when used with an argument
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (11 preceding siblings ...)
  2008-09-21  0:46 ` [Bug rtl-optimization/36758] [4.3/4.4 Regression] addition moved out of the loop when used with an argument pinskia at gcc dot gnu dot org
@ 2008-09-25  2:53 ` pinskia at gcc dot gnu dot org
  2008-11-18 21:33 ` steven at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-09-25  2:53 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from pinskia at gcc dot gnu dot org  2008-09-25 02:52 -------
This happens also for x86_64.
on the trunk:
L2:
        movq    %rbx, %rdi
        call    _f0
        testl   %eax, %eax
        jne     L2
4.0.1:
L3:
        leaq    -4(%rbp), %rdi
        call    _f0
        testl   %eax, %eax
        jne     L3

--- CUT ---

With the fwrprop patch which I am working on and disabling move loop
invariants, we get back:
L2:
        leaq    -4(%rbp), %rdi
        call    _f0
        testl   %eax, %eax
        jne     L2

-- CUT ---
move-loop-invariants still moves this out of the loop though.

So to answer Richard's question about this being a target issue, since it is
also happens on x86_64 and move loop invariants does not take into account the
cost of the move instruction, I am going to say this is a move loop invariant
issue (after I fix the fwprop one).


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 GCC target triplet|powerpc*-*-*                |powerpc*-*-*, x86_64


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


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

* [Bug rtl-optimization/36758] [4.3/4.4 Regression] addition moved out of the loop when used with an argument
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (12 preceding siblings ...)
  2008-09-25  2:53 ` pinskia at gcc dot gnu dot org
@ 2008-11-18 21:33 ` steven at gcc dot gnu dot org
  2008-11-18 21:35 ` pinskia at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: steven at gcc dot gnu dot org @ 2008-11-18 21:33 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from steven at gcc dot gnu dot org  2008-11-18 21:31 -------
Are things moving forward on the fwprop issue?


-- 

steven at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2008-11-18 21:31:59
               date|                            |


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


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

* [Bug rtl-optimization/36758] [4.3/4.4 Regression] addition moved out of the loop when used with an argument
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (13 preceding siblings ...)
  2008-11-18 21:33 ` steven at gcc dot gnu dot org
@ 2008-11-18 21:35 ` pinskia at gcc dot gnu dot org
  2009-01-24 10:25 ` rguenth at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-11-18 21:35 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from pinskia at gcc dot gnu dot org  2008-11-18 21:34 -------
(In reply to comment #13)
> Are things moving forward on the fwprop issue?

I stoped working on it for now but I should be able to pick it up next week
when I am on vaction :).


-- 


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


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

* [Bug rtl-optimization/36758] [4.3/4.4 Regression] addition moved out of the loop when used with an argument
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (14 preceding siblings ...)
  2008-11-18 21:35 ` pinskia at gcc dot gnu dot org
@ 2009-01-24 10:25 ` rguenth at gcc dot gnu dot org
  2009-02-04 12:47 ` bonzini at gnu dot org
                   ` (7 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-01-24 10:25 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from rguenth at gcc dot gnu dot org  2009-01-24 10:20 -------
GCC 4.3.3 is being released, adjusting target milestone.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.3.3                       |4.3.4


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


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

* [Bug rtl-optimization/36758] [4.3/4.4 Regression] addition moved out of the loop when used with an argument
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (15 preceding siblings ...)
  2009-01-24 10:25 ` rguenth at gcc dot gnu dot org
@ 2009-02-04 12:47 ` bonzini at gnu dot org
  2009-02-06  9:53 ` bonzini at gnu dot org
                   ` (6 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: bonzini at gnu dot org @ 2009-02-04 12:47 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #16 from bonzini at gnu dot org  2009-02-04 12:47 -------
Andrew, if you point me to the patch I'll be glad to pick it up.


-- 

bonzini at gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bonzini at gnu dot org


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


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

* [Bug rtl-optimization/36758] [4.3/4.4 Regression] addition moved out of the loop when used with an argument
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (16 preceding siblings ...)
  2009-02-04 12:47 ` bonzini at gnu dot org
@ 2009-02-06  9:53 ` bonzini at gnu dot org
  2009-08-04 12:41 ` [Bug rtl-optimization/36758] [4.3/4.4/4.5 " rguenth at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: bonzini at gnu dot org @ 2009-02-06  9:53 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #17 from bonzini at gnu dot org  2009-02-06 09:53 -------
without a testcase where this affects performance, it should not be P2 (though
it should be fixed).


-- 


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


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

* [Bug rtl-optimization/36758] [4.3/4.4/4.5 Regression] addition moved out of the loop when used with an argument
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (17 preceding siblings ...)
  2009-02-06  9:53 ` bonzini at gnu dot org
@ 2009-08-04 12:41 ` rguenth at gcc dot gnu dot org
  2010-03-02 18:25 ` pinskia at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-08-04 12:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #18 from rguenth at gcc dot gnu dot org  2009-08-04 12:29 -------
GCC 4.3.4 is being released, adjusting target milestone.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.3.4                       |4.3.5


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


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

* [Bug rtl-optimization/36758] [4.3/4.4/4.5 Regression] addition moved out of the loop when used with an argument
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (18 preceding siblings ...)
  2009-08-04 12:41 ` [Bug rtl-optimization/36758] [4.3/4.4/4.5 " rguenth at gcc dot gnu dot org
@ 2010-03-02 18:25 ` pinskia at gcc dot gnu dot org
  2010-03-02 20:10 ` pinskia at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2010-03-02 18:25 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #19 from pinskia at gcc dot gnu dot org  2010-03-02 18:24 -------
Here is a testcase which shows the problem on MIPS too:
extern int f0(int *, int *);
int
f1()
{
  int x = 0 , x1 = 0;
  while (f0(&x, &x1));
  return x + x1;
}


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 GCC target triplet|powerpc*-*-*, x86_64        |powerpc*-*-*, x86_64, mips-
                   |                            |*-*


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


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

* [Bug rtl-optimization/36758] [4.3/4.4/4.5 Regression] addition moved out of the loop when used with an argument
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (19 preceding siblings ...)
  2010-03-02 18:25 ` pinskia at gcc dot gnu dot org
@ 2010-03-02 20:10 ` pinskia at gcc dot gnu dot org
  2010-03-02 21:56 ` steven at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2010-03-02 20:10 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #20 from pinskia at gcc dot gnu dot org  2010-03-02 20:10 -------
*** Bug 39837 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |alexvod at google dot com


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


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

* [Bug rtl-optimization/36758] [4.3/4.4/4.5 Regression] addition moved out of the loop when used with an argument
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (20 preceding siblings ...)
  2010-03-02 20:10 ` pinskia at gcc dot gnu dot org
@ 2010-03-02 21:56 ` steven at gcc dot gnu dot org
  2010-05-22 18:28 ` [Bug rtl-optimization/36758] [4.3/4.4/4.5/4.6 " rguenth at gcc dot gnu dot org
  2010-07-11  7:52 ` bonzini at gnu dot org
  23 siblings, 0 replies; 25+ messages in thread
From: steven at gcc dot gnu dot org @ 2010-03-02 21:56 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #21 from steven at gcc dot gnu dot org  2010-03-02 21:56 -------
Prototype patch here: http://gcc.gnu.org/bugzilla/attachment.cgi?id=19755


-- 


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


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

* [Bug rtl-optimization/36758] [4.3/4.4/4.5/4.6 Regression] addition moved out of the loop when used with an argument
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (21 preceding siblings ...)
  2010-03-02 21:56 ` steven at gcc dot gnu dot org
@ 2010-05-22 18:28 ` rguenth at gcc dot gnu dot org
  2010-07-11  7:52 ` bonzini at gnu dot org
  23 siblings, 0 replies; 25+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-05-22 18:28 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #22 from rguenth at gcc dot gnu dot org  2010-05-22 18:12 -------
GCC 4.3.5 is being released, adjusting target milestone.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.3.5                       |4.3.6


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


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

* [Bug rtl-optimization/36758] [4.3/4.4/4.5/4.6 Regression] addition moved out of the loop when used with an argument
  2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
                   ` (22 preceding siblings ...)
  2010-05-22 18:28 ` [Bug rtl-optimization/36758] [4.3/4.4/4.5/4.6 " rguenth at gcc dot gnu dot org
@ 2010-07-11  7:52 ` bonzini at gnu dot org
  23 siblings, 0 replies; 25+ messages in thread
From: bonzini at gnu dot org @ 2010-07-11  7:52 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #23 from bonzini at gnu dot org  2010-07-11 07:51 -------
This is fixed on ARM, what about PPC?


-- 


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


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

end of thread, other threads:[~2010-07-11  7:52 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-07-07 21:35 [Bug middle-end/36758] New: address addition moved out of the loop pinskia at gcc dot gnu dot org
2008-07-07 21:37 ` [Bug middle-end/36758] [4.3/4.4 Regression] " pinskia at gcc dot gnu dot org
2008-07-07 21:52 ` pinskia at gcc dot gnu dot org
2008-07-18 17:00 ` rguenth at gcc dot gnu dot org
2008-08-27 22:11 ` jsm28 at gcc dot gnu dot org
2008-09-20 15:24 ` [Bug rtl-optimization/36758] " rguenth at gcc dot gnu dot org
2008-09-20 22:52 ` pinskia at gcc dot gnu dot org
2008-09-20 22:56 ` pinskia at gcc dot gnu dot org
2008-09-20 23:33 ` pinskia at gcc dot gnu dot org
2008-09-20 23:36 ` pinskia at gcc dot gnu dot org
2008-09-21  0:21 ` pinskia at gcc dot gnu dot org
2008-09-21  0:27 ` pinskia at gcc dot gnu dot org
2008-09-21  0:46 ` [Bug rtl-optimization/36758] [4.3/4.4 Regression] addition moved out of the loop when used with an argument pinskia at gcc dot gnu dot org
2008-09-25  2:53 ` pinskia at gcc dot gnu dot org
2008-11-18 21:33 ` steven at gcc dot gnu dot org
2008-11-18 21:35 ` pinskia at gcc dot gnu dot org
2009-01-24 10:25 ` rguenth at gcc dot gnu dot org
2009-02-04 12:47 ` bonzini at gnu dot org
2009-02-06  9:53 ` bonzini at gnu dot org
2009-08-04 12:41 ` [Bug rtl-optimization/36758] [4.3/4.4/4.5 " rguenth at gcc dot gnu dot org
2010-03-02 18:25 ` pinskia at gcc dot gnu dot org
2010-03-02 20:10 ` pinskia at gcc dot gnu dot org
2010-03-02 21:56 ` steven at gcc dot gnu dot org
2010-05-22 18:28 ` [Bug rtl-optimization/36758] [4.3/4.4/4.5/4.6 " rguenth at gcc dot gnu dot org
2010-07-11  7:52 ` bonzini at gnu dot 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).