[PATCH] D47816: [InstCombine] Stop sinking instructions across function call.
Roman Lebedev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 19 05:15:29 PDT 2018
lebedev.ri added a comment.
In https://reviews.llvm.org/D47816#1136433, @renlin wrote:
> In https://reviews.llvm.org/D47816#1136432, @lebedev.ri wrote:
>
> > In https://reviews.llvm.org/D47816#1136426, @renlin wrote:
> >
> > > In https://reviews.llvm.org/D47816#1136346, @lebedev.ri wrote:
> > >
> > > > I'm seeing `what`, but not `why`.
> > > > What is the motivation behind this change?
> > > > What problem is it trying to solve?
> > >
> > >
> > > In one of the test case I have, the sinking of a load instruction (together with the operands used) across a inlined function increases the number of instructions generated.
> >
> >
> > Instructions as in IR instructions? Or the instructions in the final assembly?
>
>
> Final machine assembly.
Perhaps you can add an example test?
There seems to be some precedent for that:
llvm/test/CodeGen/X86$ grep -r instcombine | grep RUN
2009-03-23-i80-fp80.ll:; RUN: opt < %s -instcombine -S | grep 302245289961712575840256
2009-03-23-i80-fp80.ll:; RUN: opt < %s -instcombine -S | grep K40018000000000000000
vec_udiv_to_shift.ll:; RUN: opt < %s -instcombine -S | FileCheck %s
vec_ins_extract.ll:; RUN: opt < %s -sroa -instcombine | \
no-plt-libcalls.ll:; RUN: opt < %s -instcombine -S | FileCheck %s
But i must say, right now this sounds the problem is elsewhere,
and this change only papers over it, by pessimizing all other cases.
https://reviews.llvm.org/D47816
More information about the llvm-commits
mailing list