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. * 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. 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.
# HG changeset patch # Parent 76d1f957bcf2be744c67e2ff4587f00e87722cc9 Include all x86 targets in branch_cost effective target diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -8623,7 +8623,7 @@ proc check_effective_target_branch_cost || [istarget avr*-*-*] || [istarget epiphany*-*-*] || [istarget frv*-*-*] - || [istarget i?86-*-linux*] || [istarget x86_64-*-linux*] + || [istarget i?86-*-*] || [istarget x86_64-*-*] || [istarget mips*-*-*] || [istarget s390*-*-*] || [istarget riscv*-*-*]