[llvm-dev] [Newbie Question] Compute a schedule region's scheduled cycles.

陳韋任 via llvm-dev llvm-dev at lists.llvm.org
Fri Jun 9 13:03:13 PDT 2017


Not saying I am totally understand how thing works, but I think you're
misleading
by the DAG in the class name ScheduleDAGInstrs. I only see MachineInstrs
there, no SDNode. And the comment of ScheduleDAGInstrs says,

  /// A ScheduleDAG for scheduling lists of MachineInstr.

One place mentioning DAG is relate to constructing the dependency of SUnit,
i.e., Value2SUsMap.

Regards,
chenwj



2017-06-09 23:34 GMT+08:00 Xunhao Li (Alan, CRC) via llvm-dev <
llvm-dev at lists.llvm.org>:

> Hi All,
>
>
>
> I am trying to construct a small optimization based on ScheduleDAGInstrs
> that does the following:
>
> 1.      Find candidate nodes in the DAG, and speculatively modify the
> node (nodes).
>
> 2.      After modification, try to compute the scheduled cycles of the
> region.
>
> 3.      If the cycle number improves, go back to 1. to find the next
> candidate node.
>
>
>
> I am thinking using SchedulePostRATDList’s top-down algorithm to calculate
> the cycles needed for the region’s execution. However, it decomposes the
> schedule DAG while calculating the cycles --- In my case I want to keep the
> DAG so that we don’t need to construct it again in the following steps.
>
>
>
> So my question is: is there a way (or API) to calculate the scheduled
> cycles needed for the region, without touching the DAG? Or is there a
> better way to do so in a ScheduleDAG? Did I missed something?
>
>
>
> Thanks in advance. Much appreciated.
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>


-- 
Wei-Ren Chen (陳韋任)
Homepage: https://people.cs.nctu.edu.tw/~chenwj
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170610/530f346a/attachment.html>


More information about the llvm-dev mailing list