This is the mail archive of the
mailing list for the GCC project.
Re: [Patch Ping] [RFC] Alias export patch
- From: "Richard Guenther" <richard dot guenther at gmail dot com>
- To: "Andrey Belevantsev" <abel at ispras dot ru>
- Cc: "Andrew MacLeod" <amacleod at redhat dot com>, "Diego Novillo" <dnovillo at redhat dot com>, "Dmitry Melnik" <dm at ispras dot ru>, "Daniel Berlin" <dberlin at dberlin dot org>, gcc-patches at gcc dot gnu dot org
- Date: Mon, 5 Jun 2006 14:19:12 +0200
- Subject: Re: [Patch Ping] [RFC] Alias export patch
- References: <email@example.com> <firstname.lastname@example.org> <email@example.com> <firstname.lastname@example.org> <444E546C.email@example.com> <444E6550.firstname.lastname@example.org> <1146494975.3532.114.camel@pain> <4480591F.email@example.com> <firstname.lastname@example.org> <44841DF3.email@example.com>
On 6/5/06, Andrey Belevantsev <firstname.lastname@example.org> wrote:
Richard Guenther wrote:
> I wonder how/if you deal with the problem that the tree loop optimizers
> (ivopts mostly) generate new pointers as induction variables but we don't
> run may_alias after them, so possibly all interesting (performance wise)
> pointers do not have updated points-to information? Do your numbers
> (not performance) improve if you specify -fno-tree-loop-optimize?
Since the patch was created, we wanted to insert an additional
pass_may_alias before going out of ssa to cope with this problem.
However, as ivopts does not keep the points-to information updated, this
does not work -- gcc ICEs in verify_ssa. We've tried several times to
turn off pass_loop_optimize and insert an extra may alias pass, and that
didn't change much performance wise. Now I've tried that once again.
It gives the following (for x86):
before (with ivopts) after (no ivopts, extra alias pass)
bootstrap SPEC bootstrap SPEC
C = 433 C = 26 C = 435 C = 32
O = 523 O = 52 O = 523 O = 49
a = 10563 a = 11691 a = 10607 a = 45750
x = 1954 x = 1035 x = 2148 x = 1200
C --- add_coalesce is called for pointers with different points-to sets
O --- add_coalesce is called when one pointer has a points-to set and
the other has not
a --- new disambiguations from extended alias sets when
alias_sets_conflict_p is called
x --- new disambiguations from saved points-to sets when *_dependence
Can you add base numbers here, i.e. how many disambiguations are
there in total for a and x?