[llvm-dev] scheduler options documentation?
Phil Tomson via llvm-dev
llvm-dev at lists.llvm.org
Mon Sep 12 11:33:45 PDT 2016
On Mon, Sep 12, 2016 at 11:26 AM, Matthias Braun <mbraun at apple.com> wrote:
> I think those should be considered internal options for (llvm codegen)
> developers, a normal compiler user should not need to use any of them.
We're targetting a new processor. I'm trying to get IPC numbers up a bit by
trying to figure out how to improve scheduling for our particular
architecture. If it turns out that some of these options give us
improvements I can have them be 'on' by default for our target.
> 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).
> - Matthias
> 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>
>> 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
>> -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