This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/36230] New: load PRE doesn't deal with more precise alias info on one path
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 13 May 2008 13:15:17 -0000
- Subject: [Bug tree-optimization/36230] New: load PRE doesn't deal with more precise alias info on one path
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
If points-to sets for incoming pointers are properly pruned (see PR36201),
loadPRE no longer optimizes gcc.dg/tree-ssa/loadpre1[45].c which look like
# VUSE <SMT.4_12(D)>
d_3 = (*a_2(D))[0];
if (argc_4(D) != 0)
goto <bb 3>;
else
goto <bb 5>;
<bb 5>:
goto <bb 4>;
<bb 3>:
<bb 4>:
# a_1 = PHI <a_2(D)(5), &c(3)>
# VUSE <c_11, SMT.4_12(D)>
e_6 = (*a_1)[0];
where we know that a_2(D) cannot point to c and thus the first load doesn't
alias c. Without PR36201 fixed we got
# VUSE <c_11, SMT.4_12(D)>
d_3 = (*a_2(D))[0];
if (argc_4(D) != 0)
goto <bb 3>;
else
goto <bb 5>;
<bb 5>:
goto <bb 4>;
<bb 3>:
<bb 4>:
# a_1 = PHI <a_2(D)(5), &c(3)>
# VUSE <c_11, SMT.4_12(D)>
e_6 = (*a_1)[0];
and loadPRE did its job.
--
Summary: load PRE doesn't deal with more precise alias info on
one path
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: enhancement
Priority: P3
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rguenth at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36230