On Wed, Jan 27, 2016 at 12:41 AM, Jakub Jelinek <ja...@redhat.com> wrote: > On Tue, Jan 26, 2016 at 01:55:41PM -0800, Mike Stump wrote: >> On Jan 26, 2016, at 1:26 PM, Jakub Jelinek <ja...@redhat.com> wrote: >> > will do cc1plus size comparison afterwards. >> >> We know the dynamic check is larger. You can’t tell the advantage of >> speed from size. Better would be to time compiling any random large >> translation unit. >> >> Nice to see that only 14 calls remain, that’s way better than the 34 I >> thought. > > So, it seems probably the PR65656 changes made things actually significantly > worse, while I see a (small) difference in the generated code between the two > patches if I compile say tree-ssa-ccp.c with g++ 5.x, in the bootstrapped > compiler there is no difference at all, the compilers with either patch > have identical objdump -dr cc1plus. Already at *.gimple time all the > relevant __builtin_constant_p are resolved and it seems all to 0. > > So please agree on one of the two patches (don't care which), and I'll try > to distill a testcase to look at for PR65656.
I don't care if the wi::lshift by LOG2_BITS_PER_UNIT done by get_ref_base_and_extent are compiled to as good quality as before (I suspect it doesn't matter in this case as the shift amount is constant, but maybe due to PR65656 the non-STATIC_CONSTANT_P variant is better). Richard. > Jakub