Andrey Belevantsev wrote:
Vladimir N. Makarov wrote:
Good aliasing is very important for the scheduler. But I'd look at
this more wider. We need a good aliasing for many RTL
optimizations. What's happened to ISP RAS aliasing patch propagating
SSA info to RTL? Why is it stalled?
We'll plan to work on it further in the near future. The initial plan
was to update it to trunk, then to gather the new numbers of
disambiguations and stuff, then to check the consistency of the saved
information via some verifier.
As for Sanjiv Gupta's aliasing work, that was interesting but as I
remember the patch made compiler too slow (like 40% slower). You
should make this approach faster to make it accepted as used by default.
Alexander Monakov was working on it in the last year (CC'd). I have
looked through his paper to recall what was done:
- instead of iterating over cfg, a single iteration in topological
order was made to calculate address descriptors (which was enough for
using this info in the scheduler);
- instead of one per-function hashtable for all address descriptors,
separate per-bb hashtables were introduced, lowering the time needed
to access hashtables;
- instead of saving out lists of descriptors for each bb, in lists
were saved (and not recalculated several times);
- saving descriptors for each mem instead of each bb. Earlier, when
an aliasing query was made, we've searched for insns corresponding to
mems via hashtable, then reanalyzed a basic block up to that insns,
then answered on the query using calculated address descriptors.
After the fix, we've just got the final descriptor from the first
hashtable, then answered the query.
After all fixes, bootstrap and cc1-i-files compiled slower on 2%. The
compiler built with the patch enabled compiled tramp3d on 0.5% faster
and produced 0.6% faster code. We'll dig out this patch together with
the rest of aliasing patches and will send it as a RFC. It is my
mistake for not doing this earlier.
That is a real progress with Gupta's patch. Thank you for working on it.
If you need benchmarking for machines (like ppc) you have no access
to, I can provide the benchmarking.
That's great, because we have access to powerpc750 only. I have used
it to try the scheduler on ppc, but that was slow.
I'll do some PPC benchmarking of your branch on this week and send the
results.