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}.
 

Reply via email to