陳韋任 via llvm-dev
2017-Apr-22 12:12 UTC
[llvm-dev] Is subclass of ScheduleDAGMILive a pre-RA scheduler?
Hi All, The description of ScheduleDAGMILive [1] says: ScheduleDAGMILive is an implementation of ScheduleDAGInstrs that schedules machine instructions while updating LiveIntervals and tracking regpressure. Does the live interval and register pressure part of ScheduleDAGMILive mean the subclass of ScheduleDAGMILive is a pre-RA scheduler? I assume the post-RA scheduler no need to take care of live interval and register pressure, since RA is done already. Thanks. [1] http://llvm.org/doxygen/classllvm_1_1ScheduleDAGMILive.html Regards, chenwj -- Wei-Ren Chen (陳韋任) Homepage: https://people.cs.nctu.edu.tw/~chenwj
陳韋任 via llvm-dev
2017-Apr-24 23:10 UTC
[llvm-dev] Is subclass of ScheduleDAGMILive a pre-RA scheduler?
Ping? :) 2017-04-22 20:12 GMT+08:00 陳韋任 <chenwj.cs97g at g2.nctu.edu.tw>:> Hi All, > > The description of ScheduleDAGMILive [1] says: > > ScheduleDAGMILive is an implementation of ScheduleDAGInstrs that > schedules machine instructions > while updating LiveIntervals and tracking regpressure. > > Does the live interval and register pressure part of ScheduleDAGMILive > mean the subclass of ScheduleDAGMILive > is a pre-RA scheduler? I assume the post-RA scheduler no need to take > care of live interval and register pressure, > since RA is done already. > > Thanks. > > [1] http://llvm.org/doxygen/classllvm_1_1ScheduleDAGMILive.html > > Regards, > chenwj > > -- > Wei-Ren Chen (陳韋任) > Homepage: https://people.cs.nctu.edu.tw/~chenwj-- Wei-Ren Chen (陳韋任) Homepage: https://people.cs.nctu.edu.tw/~chenwj
Matthias Braun via llvm-dev
2017-Apr-25 02:46 UTC
[llvm-dev] Is subclass of ScheduleDAGMILive a pre-RA scheduler?
> On Apr 22, 2017, at 5:12 AM, 陳韋任 via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > Hi All, > > The description of ScheduleDAGMILive [1] says: > > ScheduleDAGMILive is an implementation of ScheduleDAGInstrs that > schedules machine instructions > while updating LiveIntervals and tracking regpressure. > > Does the live interval and register pressure part of ScheduleDAGMILive > mean the subclass of ScheduleDAGMILive > is a pre-RA scheduler? I assume the post-RA scheduler no need to take > care of live interval and register pressure, > since RA is done already.Yes ScheduleDAGMILive is used by the MachineScheduler which runs before register allocation. By default the MachineScheduler is put between register coalescing and the greedy register allocator. (There is also the PostMachineScheduler which as the name suggests runs after register allocation and that one only uses ScheduleDAGMI and does not track register pressure). - Matthias
陳韋任 via llvm-dev
2017-Apr-25 11:37 UTC
[llvm-dev] Is subclass of ScheduleDAGMILive a pre-RA scheduler?
Hi, Matthias.>From the class hierarchy, ScheduleDAGMILive is also a ScheduleDAGMI. Iam wondering if there will be any problem if we use subclass of ScheduleDAGMILive as post-RA scheduler? The best case is ScheduleDAGMILive just waste time on book-keeping register pressure, but I am not sure if we can still do those book-keeping after RA. Talk about post-RA scheduler, I see there is another class PostRASchedulerList whose DEBUG_TYPE is post-RA-sched. I am wondering if that means we have two post-RA schedulers in LLVM right now? Any particular difference between those two classes, PostMachineScheduler and PostRASchedulerList? Thanks. Regards, chenwj 2017-04-25 10:46 GMT+08:00 Matthias Braun <mbraun at apple.com>:> >> On Apr 22, 2017, at 5:12 AM, 陳韋任 via llvm-dev <llvm-dev at lists.llvm.org> wrote: >> >> Hi All, >> >> The description of ScheduleDAGMILive [1] says: >> >> ScheduleDAGMILive is an implementation of ScheduleDAGInstrs that >> schedules machine instructions >> while updating LiveIntervals and tracking regpressure. >> >> Does the live interval and register pressure part of ScheduleDAGMILive >> mean the subclass of ScheduleDAGMILive >> is a pre-RA scheduler? I assume the post-RA scheduler no need to take >> care of live interval and register pressure, >> since RA is done already. > > Yes ScheduleDAGMILive is used by the MachineScheduler which runs before register allocation. By default the MachineScheduler is put between register coalescing and the greedy register allocator. > > (There is also the PostMachineScheduler which as the name suggests runs after register allocation and that one only uses ScheduleDAGMI and does not track register pressure). > > - Matthias-- Wei-Ren Chen (陳韋任) Homepage: https://people.cs.nctu.edu.tw/~chenwj
Reasonably Related Threads
- Is subclass of ScheduleDAGMILive a pre-RA scheduler?
- [Newbie Question] Compute a schedule region's scheduled cycles.
- [cfe-dev] [4.0.0 Release] Release Candidate 2 source and binaries available
- Pre-RA scheduler does not generate NOPs when getHazardType() returns NoopHazard
- Assertion in MachineScheduler.cpp