[llvm-commits] Speeding up instruction selection
Roman Levenstein
romix.llvm at googlemail.com
Fri Apr 18 04:31:08 PDT 2008
Hi Evan,
2008/4/2, Evan Cheng <evan.cheng at apple.com>:
>
> On Apr 2, 2008, at 1:57 AM, Roman Levenstein wrote:
>
> > 2008/4/2, Evan Cheng <evan.cheng at apple.com>:
> >>
> >> On Apr 2, 2008, at 12:55 AM, Roman Levenstein wrote:
> >>
> >>> Hi Evan,
> >>>
> >>> 2008/4/1, Evan Cheng <evan.cheng at apple.com>:
> >>>> Please hold off checking it in for a bit. llvm tot is having some
> >>>> problems and I'd like to get to the bottom of it first.
> >>>
> >>> OK.
> >>>
> >>>> Also, the tie breaker is less than ideal. I think we need a tie-
> >>>> breaker that is "the SUnit that's added to the queue is preferred".
> >>>> That means it prefers nodes which are closer to the end of block.
> >>>> What
> >>>> do you think?
> >>>
> >>> Do you actually mean "the SUnit that's added to the queue LAST (or
> >>> FIRST) is preferred"? I'll think about it.
> >>
> >>
> >> Yep "first". Basically, if all else being equal, let the node that's
> >> ready first be scheduled first. We can add a order id to SUnit which
> >> gets set when it's pushed into the ready queue. What do you think?
> >
> > Makes sense. The queue should have a global "current id" counter. Its
> > current value is assigned to each node being inserted into the ready
> > queue and then incremented. When the node is removed from the queue
> > for any reason, its queue order id is reset. It should be rather easy
> > to implement.
> > BTW, do you really want this queue order id in the SUnit or in a
> > separate array indexed by SUnit unique ids?
>
>
> It should be in SUnit since the sort functions don't have access to
> ScheduleDAG members.
Please find and review the attached patch implementing:
- a proper tie-breaker as discussed above.
- and unmodified part for replacing the slow std::priority_queue by
std::set, as it I already did before.
What do you think?
-Roman
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ScheduleDAGRRList.patch
Type: text/x-patch
Size: 5591 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20080418/26a3bcfb/attachment.bin>
More information about the llvm-commits
mailing list