[PATCH] Fix target clone indirection elimination.

Yichao Yu yyc1992@gmail.com
Sat Jun 27 01:34:43 GMT 2020


On Fri, Jun 26, 2020 at 5:51 PM Jeff Law <law@redhat.com> wrote:
>
> On Mon, 2020-06-22 at 11:24 +0200, Richard Biener via Gcc-patches wrote:
> > On Sun, Jun 21, 2020 at 2:32 AM Yichao Yu via Gcc-patches
> > <gcc-patches@gcc.gnu.org> wrote:
> > > On Sat, Jun 20, 2020 at 8:16 PM Yichao Yu <yyc1992@gmail.com> wrote:
> > > > On Sat, Jun 20, 2020 at 3:41 PM Yichao Yu <yyc1992@gmail.com> wrote:
> > > > > On Sat, Jun 20, 2020 at 3:26 PM Yichao Yu <yyc1992@gmail.com> wrote:
> > > > > > On Sat, Jun 20, 2020 at 3:25 PM H.J. Lu <hjl.tools@gmail.com> wrote:
> > > > > > > On Sat, Jun 20, 2020 at 12:20 PM Yichao Yu <yyc1992@gmail.com> wrote:
> > > > > > > > On Sat, Jun 20, 2020 at 3:12 PM H.J. Lu <hjl.tools@gmail.com> wrote:
> > > > > > > > > On Sat, Jun 20, 2020 at 11:37 AM Yichao Yu <yyc1992@gmail.com> wrote:
> > > > > > > > > > On Sat, Jun 20, 2020 at 1:54 PM Yichao Yu <yyc1992@gmail.com> wrote:
> > > > > > > > > > > > > The current logic seems to be comparing the whole attribute tree between the callee
> > > > > > > > > > > > > and caller (or at least the tree starting from the target attribute).
> > > > > > > > > > > > > This is unnecessary and causes strange dependency of the indirection
> > > > > > > > > > > > > elimination on unrelated properties like `noinline`(PR95780) and `visibility`(PR95778).
> > > > > > > > > > > >
> > > > > > > > > > > > Does it fix PR95780 and PR95778?  Can you include testcases for them?
> > > > > > > > > >
> > > > > > > > > > OK so replacing
> > > > > > > > > > https://github.com/gcc-mirror/gcc/commit/b8ce8129a560f64f8b2855c4a3812b7c3c0ebf3f#diff-e2d535917af8555baad2e9c8749e96a5
> > > > > > > > > > with/adding to the test the following one should work. I still
> > > > > > > > > > couldn't get test to run though......
> > > > > > > > > >
> > > > > > > > > Can you try the enclosed testcases?
> > > > > > > >
> > > > > > > > The assembly produced are the following with my patch and if I
> > > > > > > > understand it correctly those should work. Unfortunately I don't know
> > > > > > > > how to actually run the test as a test (if that makes sense....).
> > > > > > > >
> > > > > > >
> > > > > > > Place 2 files under gcc/testsuite/gcc.target/i386 and in GCC build directory, do
> > > > > > >
> > > > > > > $ make check-gcc RUNTESTFLAGS="--target_board='unix{-m32,}'
> > > > > > > i386.exp=pr95778-*.c"
> > > > > > >
> > > > >
> > > > > Finally got it start running after installing dejagnu...
> > > > > It seems to be runing something unrelated though....
> > > > >
> > > > > e.g. Running /home/yuyichao/projects/contrib/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp
> > > > > ...
> > > > > Running /home/yuyichao/projects/contrib/gcc/gcc/testsuite/gcc.c-torture/execute/execute.exp
> > > >
> > > > OK it seems that the `-*.c` syntax doesn't work for me somehow, there
> > > > are still a lot of unrelated outputs but when I replaced the * with 1
> > > > and 2 separately I can confirm that there are only expected pass with
> > > > my patch and there are some unexpected failures when the patch is
> > > > reverted.
> > >
> > > And the updated patch is
> >
> > OK.
> I fixed up the obvious formatting goofs and constructed a ChangeLog and have
> pushed the change to the trunk.

Thank you.

> jeff
> >
>


More information about the Gcc-patches mailing list