LLVM 指令调度

The*_*mad 6 scheduling llvm instructions compiler-optimization

正如LLVM 核心库入门中所述,LLVM 后端中有三个不同的指令调度程序。其中之一在寄存器分配之前运行,可以使用该-pre-RA-sched选项进行选择。其他两个在寄存器分配后运行。如何选择或禁用这三个调度程序中的每一个?他们之间有什么干扰吗?

che*_*nwj 4

请参阅llc --help-hidden了解更多详情。这里有对应于pre-RA SDNode、pre-RA MI和post-RA MI调度的三个选项。

 -pre-RA-sched        - Instruction schedulers available (before register allocation):
 -enable-misched      - Enable the machine instruction scheduling pass.
 -enable-post-misched - Enable the post-ra machine instruction scheduling pass.
Run Code Online (Sandbox Code Playgroud)

您可以准确选择在预 RA SDNode 调度中使用哪个调度程序,但不能选择其他调度程序。