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).