This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Re: Bad code generated by inter-block scheduling
- From: Mircea Namolaru <NAMOLARU at il dot ibm dot com>
- To: weigand at i1 dot informatik dot uni-erlangen dot de
- Cc: law at redhat dot com, gcc at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org, Ayal Zaks <ZAKS at il dot ibm dot com>
- Date: Mon, 27 Sep 2004 13:55:55 +0200
- Subject: Re: [PATCH] Re: Bad code generated by inter-block scheduling
> Instead of piling more hacks on top, I've tried to completely
> remove 'haifa_edge' and everything related to it, and use the
> standard CFG data structures instead -- this way we will
> automatically get the exit edges.
When we developed this code years ago the CFG was not maintained
during compilation. It's a good idea to use the standard CFG data
structures.
> For the decision interblock vs. speculative, I agree that this
> should just be post-dominance. However, the split-edges stuff
> is also used, in the speculative case, to find all the blocks
> where speculative motion could cause a variable to become live
> at start that previously wasn't.
For a speculative motion we must avoid moving a definition of a
register R into a place where it is currently live.
This is the main reason for computing the split edges. The split
edges also provide an easy way to determine if two basic blocks are
equivalent without explicit computation of post-dominance relation.
Mircea Namolaru