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 > sell...@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