public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/14287] [tree-ssa] does not remove unnecessary extensions
[not found] <bug-14287-5009@http.gcc.gnu.org/bugzilla/>
@ 2006-05-04 13:57 ` rguenth at gcc dot gnu dot org
2006-05-04 15:13 ` rguenth at gcc dot gnu dot org
1 sibling, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-05-04 13:57 UTC (permalink / raw)
To: gcc-bugs
------- Comment #13 from rguenth at gcc dot gnu dot org 2006-05-04 13:57 -------
Subject: Bug 14287
Author: rguenth
Date: Thu May 4 13:56:52 2006
New Revision: 113527
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113527
Log:
2006-05-04 Richard Guenther <rguenther@suse.de>
PR tree-optimization/14287
PR tree-optimization/14844
PR tree-optimization/19792
PR tree-optimization/21608
PR tree-optimization/27090
* tree-ssa-pre.c (try_combine_conversion): New function.
(compute_avail): After constructing the value-handle
expression, use try_combine_conversion to combine NOP_EXPRs
with previous value-handle expressions and use the result if it
is available.
* gcc.dg/tree-ssa/ssa-fre-1.c: New testcase.
* gcc.dg/tree-ssa/ssa-fre-2.c: Likewise.
* gcc.dg/tree-ssa/ssa-fre-3.c: Likewise.
* gcc.dg/tree-ssa/ssa-fre-4.c: Likewise.
* gcc.dg/tree-ssa/ssa-fre-5.c: Likewise.
Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-1.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-2.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-3.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-4.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-5.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-pre.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14287
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug tree-optimization/14287] [tree-ssa] does not remove unnecessary extensions
[not found] <bug-14287-5009@http.gcc.gnu.org/bugzilla/>
2006-05-04 13:57 ` [Bug tree-optimization/14287] [tree-ssa] does not remove unnecessary extensions rguenth at gcc dot gnu dot org
@ 2006-05-04 15:13 ` rguenth at gcc dot gnu dot org
1 sibling, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-05-04 15:13 UTC (permalink / raw)
To: gcc-bugs
------- Comment #14 from rguenth at gcc dot gnu dot org 2006-05-04 15:13 -------
Fixed.
after 034.t.fre:
;; Function foo (foo)
foo (a)
{
long int c;
short int b;
short int D.1528;
short int D.1527;
<bb 2>:
D.1527_2 = (short int) a_1;
b_3 = D.1527_2 & 3;
c_4 = (long int) b_3;
D.1528_5 = b_3;
g = D.1528_5;
D.1528_8 = b_3;
h = D.1528_8;
return;
}
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
Target Milestone|--- |4.2.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14287
^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <bug-14287-4@http.gcc.gnu.org/bugzilla/>]
[parent not found: <20040225041155.14287.kazu@gcc.gnu.org>]
* [Bug optimization/14287] New: [tree-ssa] does not remove unnecessary extensions
@ 2004-02-25 4:11 kazu at cs dot umass dot edu
2004-05-17 17:20 ` [Bug tree-optimization/14287] " pinskia at gcc dot gnu dot org
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: kazu at cs dot umass dot edu @ 2004-02-25 4:11 UTC (permalink / raw)
To: gcc-bugs
/* test.c */
short g, h;
void
foo (long a)
{
short b = a & 3;
long c = b;
g = c;
h = c;
}
test.c.t20.dom1 looks like so:
foo (a)
{
long int c;
short int b;
short int T.1;
short int T.0;
<bb 0>:
T.0_2 = (short int)a_1;
b_3 = T.0_2 & 3;
c_4 = (long int)b_3;
T.1_5 = (short int)c_4; <- Hey, T.1_5 == b_3!
g = T.1_5;
T.1_6 = T.1_5;
h = T.1_5;
return;
}
Here is the asm:
foo:
movl 4(%esp), %eax
andl $3, %eax
cwtl <- ugly
movw %ax, g
movw %ax, h
ret
I inserted "g" and "h" to kill the combiner as it performs badly
when there are multiple uses of variables. :-)
The exactly same problem appears on H8.
--
Summary: [tree-ssa] does not remove unnecessary extensions
Product: gcc
Version: tree-ssa
Status: UNCONFIRMED
Severity: enhancement
Priority: P2
Component: optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: kazu at cs dot umass dot edu
CC: gcc-bugs at gcc dot gnu dot org
GCC target triplet: i686-pc-linux-gnu, h8300-elf
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14287
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-10-31 4:02 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <bug-14287-5009@http.gcc.gnu.org/bugzilla/>
2006-05-04 13:57 ` [Bug tree-optimization/14287] [tree-ssa] does not remove unnecessary extensions rguenth at gcc dot gnu dot org
2006-05-04 15:13 ` rguenth at gcc dot gnu dot org
[not found] <bug-14287-4@http.gcc.gnu.org/bugzilla/>
2014-10-31 4:02 ` pinskia at gcc dot gnu.org
[not found] <20040225041155.14287.kazu@gcc.gnu.org>
2005-07-12 21:30 ` pinskia at gcc dot gnu dot org
2004-02-25 4:11 [Bug optimization/14287] New: " kazu at cs dot umass dot edu
2004-05-17 17:20 ` [Bug tree-optimization/14287] " pinskia at gcc dot gnu dot org
2004-05-24 16:53 ` pinskia at gcc dot gnu dot org
2004-06-21 5:07 ` pinskia at gcc dot 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).