[PATCH] Re: Bad code generated by inter-block scheduling
Mircea Namolaru
NAMOLARU@il.ibm.com
Mon Sep 27 14:01:00 GMT 2004
> 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
More information about the Gcc
mailing list