This is the mail archive of the gcc@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


On Thu, 2004-09-23 at 18:11, Ulrich Weigand wrote:
> Maybe there's some way of retrieving this information from
> the dominator graph as well, but right now I don't really want
> to do actual algorithmic changes, just fix my bug ;-)
I understand...


> 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.  This went quite smoothly,
> I only had to change a couple of other places to use basic_block
> or edge pointers instead of indices.
Way way way cool.  That code has been on my hitlist for about 6
years now.  In the defense of the original haifa-sched developers,
their work pre-dates having a CFG, so they did just about everything
they needed inside haifa.  Removing that code as we've made the
CFG a first class structure within GCC hasn't progressed as well as
I would have liked.

I'll conditionally approve the patch -- however, the condition is
that it's updated for the edge vector changes after they go in, then
retested.  Please post the patch that actually gets installed.
[ The edge vector changes are bloody huge and I'd like to get them
  installed before we create conflicts for merging in that code. ]


> I now don't even need to call create_edge_list at all, the
> only other user of the edge_list, find_rgns, could easily
> be changed to just use the regular CFG data structures.
That would be a greatly appreciated follow-on patch.


Jeff


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