On 12 January 2018 at 10:25, Rainer Orth <r...@cebitec.uni-bielefeld.de> wrote: > Hi Christophe, > >> On 10 January 2018 at 15:44, Jakub Jelinek <ja...@redhat.com> wrote: >>> On Mon, Oct 23, 2017 at 02:30:24PM +0200, Christophe Lyon wrote: >>>> After Jakub's suggestion in PR82120 and PR81184, the attached patch >>>> adds the -mbranch-cost option to the ARM target. My understanding >>>> is that it's intended to be used internally for testing and does not >>>> require user-facing documentation. >>>> >>>> I have updated a few tests, validation on aarch64 & arm targets shows >>>> no regression, >>>> and a few improvements when targeting cortex-a5 or cortex-m3: >>>> gcc.dg/tree-ssa/reassoc-3[3456].c now pass. >>>> >>>> That being said, I'm not sure about the other targets for which I >>>> changed the condition, >>>> and I am also concerned by the fact that it has no impact on >>>> gcc.dg/pr21643.c and gcc.dg/tree-ssa/phi-opt-11.c (PR81184). >>>> >>>> Should I restrict my patch to the only tests where it has an impact >>>> (gcc.dg/tree-ssa/reassoc-3[3456].c) ? >>> >>> Let's change all and watch the effects on all targets in testresults, >>> we can fine tune later on. >>> >> OK, thanks >> >>> Does pr21643.c really fail somewhere on arm*? Tried -mcpu=cortex-a5 >>> and don't see the failure in x86_64-linux -> armv7a-hardfloat-linux-gnueabi >>> cross. >> >> Yes, for me still fails on arm-none-linux-gnueabihf >> --with-cpu=cortex-a5 --with-fpu=vfpv3-d16-fp16 >> >>> >>>> gcc/ChangeLog: >>>> >>>> 2017-10-23 Christophe Lyon <christophe.l...@linaro.org> >>>> >>>> * config/arm/arm.opt (-mbranch-cost): New option. >>>> * config/arm/arm.h (BRANCH_COST): Take arm_branch_cost into >>>> account. >>>> >>>> gcc/testsuite/ChangeLog: >>>> >>>> 2017-10-23 Christophe Lyon <christophe.l...@linaro.org> >>>> >>>> * lib/target-supports.exp (check_effective_target_branch_cost): >>>> New function. >>>> * gcc.dg/builtin-bswap-7.c: Use branch_cost effective target. >>>> * gcc.dg/pr21643.c: Likewise. >>>> * gcc.dg/pr46309.c: Likewise. >>>> * gcc.dg/tree-ssa/phi-opt-11.c: Likewise. >>>> * gcc.dg/tree-ssa/phi-opt-2.c: Likewise. >>>> * gcc.dg/tree-ssa/reassoc-32.c: Likewise. >>>> * gcc.dg/tree-ssa/reassoc-33.c: Likewise. >>>> * gcc.dg/tree-ssa/reassoc-34.c: Likewise. >>>> * gcc.dg/tree-ssa/reassoc-35.c: Likewise. >>>> * gcc.dg/tree-ssa/reassoc-36.c: Likewise. >>>> * gcc.dg/tree-ssa/ssa-ifcombine-13.c: Likewise. >>>> * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-1.c: Likewise. >>>> * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-2.c: Likewise. >>>> * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-3.c: Likewise. >>>> * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-4.c: Likewise. >>>> * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-5.c: Likewise. >>>> * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-6.c: Likewise. >>> >>> Ok for trunk. >>> >>> Note, unreviewed patches should be pinged from time to time. >> Sorry, I thought the patch was too crappy ;-) > > not at all, but it has two problems: > > * The new branch_cost effective-target keyword needs documenting in > sourcebuild.texi, as always. >
Sorry, I keep forgetting this. How about the trivial attached patch? (I'm mainly asking to check I add it to the most appropriate section) > * The patch caused a regression on non-Linux x86 targets: > > FAIL: gcc.dg/tree-ssa/phi-opt-2.c scan-tree-dump-times optimized "if" 1 > (found 0 times) > > I'm seeing this on i386-pc-solaris2.*, and according to > gcc-testresults it happens on *86-*-freebsd*, too. The reason is > simple: while the original testcase enabled -mbranch-cost for all > i?86-*-* and x86_64-*-* targets, the new branch_cost keyword does so > only for i?86-*-linux* and x86_64-*-linux* for no reason I can see. > Fixing that lets the test PASS on Solaris/x86, too, so I'm installing > the following patch. > Thanks for taking care of that, I can't remember why I added the *linux* part. Christophe > Rainer > > -- > ----------------------------------------------------------------------------- > Rainer Orth, Center for Biotechnology, Bielefeld University > > > 2018-01-11 Rainer Orth <r...@cebitec.uni-bielefeld.de> > > * lib/target-supports.exp (check_effective_target_branch_cost): > Accept all x86 targets. >
2018-01-12 Christophe Lyon <christophe.l...@linaro.org> * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes): Add item for branch_cost.
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi index f7de713..e4a3835 100644 --- a/gcc/doc/sourcebuild.texi +++ b/gcc/doc/sourcebuild.texi @@ -2133,6 +2133,9 @@ Target supports wide characters. @item automatic_stack_alignment Target supports automatic stack alignment. +@item branch_cost +Target supports @option{-branch-cost=N}. + @item cxa_atexit Target uses @code{__cxa_atexit}.