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] 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


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