gpt4 book ai didi

clang - RISC-V 中的 LLVM 指令调度

转载 作者:行者123 更新时间:2023-12-03 19:32:11 24 4
gpt4 key购买 nike

我正在研究 LLVM 中用于 RISC-V 后端的指令调度。我知道有两种调度方式(ScheduleDAGRRList 和 MachineScheduler)。从调试日志我可以 RISC-V 使用 ScheduleDAGRRList 方法。

MachineScheduler 是否比 ScheduleDAGRRList 更好?如果是这样,我如何为 RISC-V 启用 MachineScheduler?

我试过 llc -enable-misched file.ll ,但没有运气。

最佳答案

RISC-V 后端在 LLVM 10.0 版中添加了对机器调度程序 (MISched) 的支持。

https://releases.llvm.org/10.0.0/docs/ReleaseNotes.html

RISCVSchedRocket64.td 中的 TableGen SchedMachineModel 描述将其描述为有序处理器。

// Rocket machine model for scheduling and other instruction cost heuristics.
def Rocket64Model : SchedMachineModel {
let MicroOpBufferSize = 0; // Explicitly set to zero since Rocket is in-order.
let IssueWidth = 1; // 1 micro-ops are dispatched per cycle.
let LoadLatency = 3;
let MispredictPenalty = 3;
}

您可以使用以下命令为 Rocket-rv64 启用机器调度:
-O3 -mllvm -enable-misched -mllvm -enable-post-misched -mcpu=rocket-rv64

关于clang - RISC-V 中的 LLVM 指令调度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53314283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com