This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH]: Needs more platform testing - Points to patch


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";


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]