This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/33870] [4.3 Regression] miscompiles sqlite
- 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: 23 Oct 2007 14:26:35 -0000
- Subject: [Bug rtl-optimization/33870] [4.3 Regression] miscompiles sqlite
- References: <bug-33870-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #5 from rguenth at gcc dot gnu dot org 2007-10-23 14:26 -------
This is wrong alias info. We hoist
# VUSE <SFT.6_108>
p_42 = result.pDirty;
out of the loop. It looks like we don't have VUSEs of a and MPT.47 here like
# VUSE <a_115, MPT.47_116>
p_38 = p_35->pDirty;
because results address is only taken from within a PHI node:
# pD.1574_36 = PHI <&resultD.1619(6), pD.1574_84(11)>
It also happens that with -O alias analysis only runs once.
The pointed-to vars of pD.1574_36 include SFT.6, but
# aD.1573_113 = VDEF <aD.1573_90>
# MPT.47D.1693_114 = VDEF <MPT.47D.1693_103>
pD.1574_36->pDirtyD.1552 = pD.1574_33;
and SFT.6 is not in partition MPT.47.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33870