LLVM指令调度
问题描述:
正如在Getting Started with LLVM Core Libraries中指出的那样,LLVM后端有三个不同的指令调度器。其中一个在寄存器分配前运行,可以使用-pre-RA-sched
选项进行选择。另外两个在寄存器分配后运行。我如何选择或禁用这三个调度程序中的每一个?他们彼此之间有任何干扰吗?LLVM指令调度
答
请参阅llc --help-hidden
了解更多详情。这里有三个对应于RA前SD节点,RA前MI和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.
您可以准确地选择预RA SDNode调度使用哪个调度,但不是为别人。