[PATCH] D59688: [X86] Make post-ra scheduling macrofusion-aware.
Andrea Di Biagio via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 22 06:25:02 PDT 2019
andreadb added a comment.
In D59688#1439350 <https://reviews.llvm.org/D59688#1439350>, @courbet wrote:
> In D59688#1439297 <https://reviews.llvm.org/D59688#1439297>, @andreadb wrote:
>
> > Nice patch Clement!
> >
> > I always wondered why on x86 we only enabled that mutator in the pre-ra scheduler.
> > In the past, I remember I did some quick experiments with enabling that mutator in the post-RA scheduler. I must admit that I wasn't particularly lucky wih the experiments (i.e. I couldn't find significant/promising improvements). But then - again - those were just quick experiments, and I didn't try it on many codebases. If you think you can share some numbers then that would be great.
>
>
> Thanks Andrea.
>
> Yes, that's essentially what the comment in X86.td says:
>
> //"This generally gives a nice performance increase on silvermont, with largely neutral behavior on other contemporary large core processors."//
>
> However, that was before the round of scheduling information fixes that Simon & I made based on llvm-exegesis. I wanted to give it another try after that, and from my first experiments it seems that it indeed makes sense to look at it again.
> What I have done for now is run our (internal, sorry) main macrobenchmark with post-ra enabled. With the base code I see a **consistent regression** of 0.5% to 1% depending on metrics. With this patch I see a **consistent improvement** of 0.5% to 2%.
Thanks. That's good to know.
I plan to run some experiments today using your patch.
But in general, I am happy with this patch.
>
>
>> On a slightly different topic: I often wondered whether we - at some point - we should start using the PostMIScheduler for X86.
>> Did you experiment with it?
>
> I'm looking at all the options right now. But I want to make sure that we're comparing apples to apples, and that's why I'm fixing this.
>
> When I'm done experimenting with different possibilities I'll write a summary of the results.
>
>> The API is basically the same; mutators are run on the DAG as part of a dag-postprocessing step. You can try to enable that mutator on that pass too.
>
> Yup, I have another patch coming for this :)
Cool. :-)
-Andrea
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D59688/new/
https://reviews.llvm.org/D59688
More information about the llvm-commits
mailing list