This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch tree-ssa] RFC: Enable path threading for control variables (PR tree-optimization/54742).
- From: James Greenhalgh <james dot greenhalgh at arm dot com>
- To: Steve Ellcey <sellcey at mips dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>, "richard dot guenther at gmail dot com" <richard dot guenther at gmail dot com>, "law at redhat dot com" <law at redhat dot com>, "dnovillo at google dot com" <dnovillo at google dot com>, "amacleod at redhat dot com" <amacleod at redhat dot com>, "ook at ucw dot cz" <ook at ucw dot cz>, "sellcey at imgtec dot com" <sellcey at imgtec dot com>
- Date: Fri, 14 Jun 2013 00:08:08 +0100
- Subject: Re: [Patch tree-ssa] RFC: Enable path threading for control variables (PR tree-optimization/54742).
- References: <1370618076-5040-1-git-send-email-james dot greenhalgh at arm dot com> <1371151748 dot 12204 dot 263 dot camel at ubuntu-sellcey>
On Thu, Jun 13, 2013 at 08:29:08PM +0100, Steve Ellcey wrote:
> On Fri, 2013-06-07 at 16:14 +0100, James Greenhalgh wrote:
>
> > Beyond that, the path search code is modified from Steve's patch
> > to only perform one depth first search, and the path copy code
> > is modified to purge the region entry and exit edges for those
> > which traditional jump-threading may consider.
> >
> > Opinions?
> >
> > Thanks,
> > James Greenhalgh
>
> Hi James,
>
> I tried out your patch and I am not getting the speed up in
> coremark that I got with my patch. I wonder if restricting it
> to one depth first search is the reason. With my patch I was
> able to completely get rid of the switch statement, but with
> this patch it still exists. Maybe we need an option to do
> multiple searches?
>
> Steve Ellcey
> sellcey@mips.com
>
Hi Steve,
Thanks for having a look at the patch, though you appear to get
very different results to my local build.
Comparing a bootstrapped native x86_64 compiler with my patch and
these flags:
/work/gcc-build-jg-threading/build-x86/install/bin/gcc -S -O3 -Ilinux64 core_state.c
And a bootstrapped native x86_64 compiler with your patch and
these flags:
/work/gcc-build-sje-threading/build-x86/install/bin/gcc -S -O3 -Ilinux64 -ftree-switch-shortcut core_state.c
I see only minor cosmetic differences (Placement of labels,
numbering of labels) between the two generated assembly files.
Perhaps you could share the flags you were using and I can try to
figure out which paths I seem to be missing. If I can't find them,
I'll happily revert to using your search strategy.
Regards,
James Greenhalgh