[Bug tree-optimization/55860] Turn segmented iteration into nested loops

law at redhat dot com gcc-bugzilla@gcc.gnu.org
Fri Sep 20 17:14:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55860

--- Comment #4 from Jeffrey A. Law <law at redhat dot com> ---
BTW, I did look at walking up the CFG to discover edge equivalences we could
add to our tables.  We don't have access to the path through the dominator tree
that we've followed, so I had to use a fairly conservative "if we have a single
pred, record equivalences implied by traversing that incoming edge" and
recurse.

While it does clearly enter more stuff into the tables, it's not useful in
practice.   With my bucket of testfiles, there were only a dozen or so cases
where the additional table entries made any difference in what edges we could
thread and in fact we were missing jump threads. 

The cause was replacing a constant equivalence in the table with an equivalence
to another SSA_NAME.  That's an artifact of walking up the CFG recording as we
go.  Instead we need to record in reverse order.  Fixing that results in no
differences before/after adding the new equivalences.

I'm going to leave this open because it is a good example of what we'd like to
do with a revamp to use Bodik's work.  But I'm not planning to work on it in
the immediate future.



More information about the Gcc-bugs mailing list