[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?
>
> Phil
>
> On Mon, Sep 12, 2016 at 10:37 AM, Phil Tomson <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-cluster,
>> -misched-cyclicpath, -misched-regpressure, and -misched-
>> fusion
>>
>> 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)
>>
>> Phil
>>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160912/6d6f8715/attachment.html>


More information about the llvm-dev mailing list