This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH]: Needs more platform testing - Points to patch
- From: "Seongbae Park (박성배, 朴成培)" <seongbae dot park at gmail dot com>
- To: "Daniel Berlin" <dberlin at dberlin dot org>
- Cc: "GCC Patches" <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 2 Aug 2007 00:40:00 -0700
- Subject: Re: [PATCH]: Needs more platform testing - Points to patch
- References: <4aca3dc20708012248n5431d6bke1fb6b289a52da1a@mail.gmail.com>
On 8/1/07, Daniel Berlin <dberlin@dberlin.org> wrote:
> I would appreciate it if some people with non-i686/x86 platforms could
> test the attached patch for me, and see if it fixes/breaks any tests
> in the testsuite.
>
> This patch was originally written to fix the 447.dealii failure, which
> has a somewhat deep rooted failure mode. One of the warts in alias
> analysis since 4.0 has been that our points-to sets don't actually
> represent points-to, they represent may-alias. For most pointers,
> they are the same. For things that may touch fields, or full
> structures they are not. For 4.0-4.2, we try to come up with a
> conservative set of may-aliases for pointers that may touch parts/all
> of structures, but get it wrong in dealii.
>
> The attached patch changes points-to to represent points-to sets, and
> changes the operand scanner to figure out the actual touched aliases
> based on the actual indirect_ref accesses, which is the "Right Way To
> Do This (TM)".
>
> It not only gives us *correct* answers, it ends up giving us *more
> precise* answers, too.
>
> The rest of the patch is a little cleanup (which i will submit
> separately), removing some unused fields/variables, speeding up call
> clobbering (since i had to fix it anyway), and fixing latent bugs in
> points-to constraint building that the above changes uncovered. It
> turns out that once you stop coming up with answers like "everything",
> it ends up being much more important to get the right answers :).
>
> All told, the changes not only fix a few correctness problems, and 3-4
> 4.2 regressions, we also end up making points-to about 2-3x faster.
>
> Sadly, aliasing changes always break something, and for a change like
> this, there is never enough testing you can do. I would not be
> surprised to find out there are still more bugs lurking that this
> exposes.
>
>
> I have run it through the testsuite on i686-darwin, i686-linux, and
> x86-64_linux.
> I have also run it through spec2k6.
>
> I'd appreciate it if some people with more random platforms could test this.
> There are a bunch more asserts than points-to used to have, which
> mainly catch cases that were broken (IE generating bad code) before
> but we had to live with. We no longer have to live with them :)
>
> Once more testing is done, i'll work up a changelog, add some more
> testsuite tests, and submit/commit it.
I just fired up bootstrap/regtest on SPARC and ia64.
--
#pragma ident "Seongbae Park, compiler, http://seongbae.blogspot.com"