--- Comment #11 from rguenth at gcc dot gnu dot org 2007-09-06 12:13
---
The extra store you still see is caused by -ftracer duplicating it.
Optimizations
after that don't catch that (because of the intervening possibly aliasing loads
I guess):
(insn 25 24 27 4 t.ii:3 (set (mem/s:SI (
--- Comment #10 from wouter dot vermaelen at scarlet dot be 2007-09-06
11:48 ---
I'm sorry, but can you recheck? The testcase at the top of this bug report
still generates the same asm code for me.
--
wouter dot vermaelen at scarlet dot be changed:
What|Removed
--- Comment #9 from rguenth at gcc dot gnu dot org 2007-09-06 09:06 ---
Subject: Bug 33302
Author: rguenth
Date: Thu Sep 6 09:05:58 2007
New Revision: 128180
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128180
Log:
2007-09-06 Richard Guenther <[EMAIL PROTECTED]>
PR
--- Comment #8 from rguenth at gcc dot gnu dot org 2007-09-06 09:06 ---
Fixed.
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
Status|ASSIGNED
--- Comment #7 from rakdver at kam dot mff dot cuni dot cz 2007-09-05
14:30 ---
Subject: Re: dead-store not eliminated
> > > Ah, I only found add_noreturn_fake_exit_edges which obviously didn't help.
> > > connect_infinite_loops_to_exit does. Thx.
> >
> > dominance.c contains code (
--- Comment #6 from rguenther at suse dot de 2007-09-05 14:17 ---
Subject: Re: dead-store not eliminated
On Wed, 5 Sep 2007, rakdver at gcc dot gnu dot org wrote:
> (In reply to comment #4)
> > Ah, I only found add_noreturn_fake_exit_edges which obviously didn't help.
> > connect_infi
--- Comment #5 from rakdver at gcc dot gnu dot org 2007-09-05 12:51 ---
(In reply to comment #4)
> Ah, I only found add_noreturn_fake_exit_edges which obviously didn't help.
> connect_infinite_loops_to_exit does. Thx.
dominance.c contains code (probably buggy) that adds such edges impl
--- Comment #4 from rguenth at gcc dot gnu dot org 2007-09-05 12:41 ---
Ah, I only found add_noreturn_fake_exit_edges which obviously didn't help.
connect_infinite_loops_to_exit does. Thx.
--
rguenth at gcc dot gnu dot org changed:
What|Removed |A
--- Comment #3 from steven at gcc dot gnu dot org 2007-09-05 12:35 ---
You can connect the exits by inserting fake edges. See
add_noreturn_fake_exit_edges and connect_infinite_loops_to_exit. Not sure which
one you would need in this case. Just be sure to call it before computing
(post)do
--- Comment #2 from rguenth at gcc dot gnu dot org 2007-09-05 11:48 ---
DSE does a post-dominator walk starting from the exit block. But the exit
block
has no predecessors because the function does never exit ;)
void foo(int *p)
{
while (1)
{
*p = 0;
*p = 0;
}
}
--- Comment #1 from rguenth at gcc dot gnu dot org 2007-09-05 11:33 ---
While RTL dse eliminates the redundant store to this->D.2013.a, tree-level DSE
does not do so. (RTL dse also fails with -O3 -fforce-addr -ftracer)
:
# VUSE
D.2089_34 = this_2(D)->D.2013.a;
D.2090_35 = (unsig
11 matches
Mail list logo