[llvm-dev] scheduler options documentation?
Matthias Braun via llvm-dev
llvm-dev at lists.llvm.org
Mon Sep 12 11:26:49 PDT 2016
I think those should be considered internal options for (llvm codegen) developers, a normal compiler user should not need to use any of them. Of course you can look around the llvm sourcecode (esp. in lib/CodeGen/MachineScheduler.cpp) and see what cl::opt options are available and how they affect the scheduler operation.
In case of the MachineScheduler all settings are the same regardless of the optimisation level, however the MachineScheduler is disabled as a whole in TargetPassConfig.cpp when optimized regalloc is not enabled (which I believe happens for everything except -O0).
> On Sep 12, 2016, at 10:41 AM, Phil Tomson via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> As a follow on question: which of these options are already enabled when compiling with -O3?
> On Mon, Sep 12, 2016 at 10:37 AM, Phil Tomson <phil.a.tomson at gmail.com <mailto:phil.a.tomson at gmail.com>> wrote:
> I see that there are several options to influence instruction scheduling, but there doesn't seem to be a lot of information about what they do, for example:
> -misched-topdown -misched-bottomup
> The description in MachineScheduler.cpp says:
> "Force top-down list scheduling" and "Force bottom-up list scheduling"
> Which isn't too helpful - where might I want to use these? Under what conditions might they improve an instruction schedule?
> Similar questions for the instruction scheduler strategies:
> -misched=(default, converge,
> ilpmax, ilpmin, or shuffle)
> And for the analysis heuristics:
> -misched-cyclicpath, -misched-regpressure, and -misched-
> Are these things mutually exclusive or can they be combined? What combination will give the most rigorous analysis and improve scheduling (at the cost of longer runtime of llc)
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev