public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "marxin at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug ipa/102059] Incorrect always_inline diagnostic in LTO mode with #pragma GCC target("cpu=power10")
Date: Wed, 25 Aug 2021 13:30:39 +0000	[thread overview]
Message-ID: <bug-102059-4-rqGcj6YMXW@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-102059-4@http.gcc.gnu.org/bugzilla/>

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102059

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |linkw at gcc dot gnu.org
             Status|ASSIGNED                    |NEW
           Assignee|marxin at gcc dot gnu.org          |unassigned at gcc dot gnu.org

--- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> ---
So what happens in LTO mode: rs6000_can_inline_p is called with:

#0  rs6000_can_inline_p (caller=<function_decl 0x7ffff7427800 gemmMMA>,
callee=<function_decl 0x7ffff7433400 bmask>) at
/home/marxin/Programming/gcc/gcc/config/rs6000/rs6000.c:25035
#1  0x0000000002529129 in can_inline_edge_p (e=<cgraph_edge* 0x7ffff744d548
(<cgraph_node * 0x7ffff75bbaa0 "gemmMMA"/9> -> <cgraph_node * 0x7ffff75bbcc0
"bmask"/11>)>, report=true, early=true) at
/home/marxin/Programming/gcc/gcc/ipa-inline.c:381
#2  0x000000000252a48a in can_early_inline_edge_p (e=<cgraph_edge*
0x7ffff744d548 (<cgraph_node * 0x7ffff75bbaa0 "gemmMMA"/9> -> <cgraph_node *
0x7ffff75bbcc0 "bmask"/11>)>) at
/home/marxin/Programming/gcc/gcc/ipa-inline.c:646
#3  0x000000000253135a in inline_always_inline_functions (node=<cgraph_node *
0x7ffff75bbaa0 "gemmMMA"/9>) at
/home/marxin/Programming/gcc/gcc/ipa-inline.c:2838

The following condition is false:

      /* The callee's options must be a subset of the caller's options, i.e.
         a vsx function may inline an altivec function, but a no-vsx function
         must not inline a vsx function.  However, for those options that the
         callee has explicitly enabled or disabled, then we must enforce that
         the callee's and caller's options match exactly; see PR70010.  */


>25062             if (((caller_isa & callee_isa) == callee_isa)

because:

(gdb) p /x (caller_isa & callee_isa) ^ callee_isa
$3 = 0x2000020000

which are the following masks:

#define OPTION_MASK_HTM (HOST_WIDE_INT_1U << 17)
#define OPTION_MASK_P8_FUSION (HOST_WIDE_INT_1U << 37)

So looking at the condition, callers options are not subset.

Which is caused by g:82800987cb3b22427a8799b3e8491eff496724b9

commit 82800987cb3b22427a8799b3e8491eff496724b9
Author: Kewen Lin <linkw@linux.ibm.com>
Date:   Wed Dec 2 01:55:34 2020 -0600

    rs6000: Disable HTM for Power10 and later by default

    Power ISA 3.1 has dropped transactional memory support, this patch
    is to disable HTM feature for power10 and later by default.

    Bootstrapped/regtested on powerpc64le-linux-gnu P8 and P10.

    gcc/ChangeLog:

            * config/rs6000/rs6000.c (rs6000_option_override_internal):
            Use OPTION_MASK_DIRECT_MOVE for Power8 target_enable instead
            of OPTION_MASK_HTM.
            * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER):
            Remove OPTION_MASK_HTM.
            (RS6000_CPU): Add OPTION_MASK_HTM to power8, power9 and
            powerpc64le entries.

@Kewen: Can you please take a look?

  parent reply	other threads:[~2021-08-25 13:30 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-25  9:42 [Bug lto/102059] New: " fw at gcc dot gnu.org
2021-08-25  9:49 ` [Bug ipa/102059] " rguenth at gcc dot gnu.org
2021-08-25  9:54 ` marxin at gcc dot gnu.org
2021-08-25 11:49 ` chip.kerchner at ibm dot com
2021-08-25 13:25 ` marxin at gcc dot gnu.org
2021-08-25 13:30 ` marxin at gcc dot gnu.org [this message]
2021-08-25 13:34 ` marxin at gcc dot gnu.org
2021-08-25 13:44 ` marxin at gcc dot gnu.org
2021-08-25 15:34 ` linkw at gcc dot gnu.org
2021-08-26  6:26 ` linkw at gcc dot gnu.org
2021-08-26  8:20 ` rguenth at gcc dot gnu.org
2021-08-26  8:24 ` rguenth at gcc dot gnu.org
2021-08-26  8:34 ` fw at gcc dot gnu.org
2021-08-26  8:45 ` linkw at gcc dot gnu.org
2021-08-26  8:56 ` linkw at gcc dot gnu.org
2021-08-26  9:02 ` linkw at gcc dot gnu.org
2021-08-26  9:04 ` marxin at gcc dot gnu.org
2021-08-26  9:29 ` linkw at gcc dot gnu.org
2021-08-26  9:34 ` linkw at gcc dot gnu.org
2021-08-26 18:46 ` meissner at gcc dot gnu.org
2021-09-01  7:10 ` linkw at gcc dot gnu.org
2021-09-14 14:09 ` chip.kerchner at ibm dot com
2021-09-14 14:11 ` chip.kerchner at ibm dot com
2021-09-15  9:57 ` linkw at gcc dot gnu.org
2021-09-15 12:19 ` chip.kerchner at ibm dot com
2021-11-26  2:07 ` linkw at gcc dot gnu.org
2022-01-05  3:26 ` cvs-commit at gcc dot gnu.org
2022-02-04 18:55 ` pc at gcc dot gnu.org
2022-02-04 19:33 ` dan at danny dot cz
2022-02-04 20:15 ` bergner at gcc dot gnu.org
2022-02-05  2:50 ` linkw at gcc dot gnu.org
2022-02-08 21:53 ` meissner at gcc dot gnu.org
2022-02-09  2:33 ` linkw at gcc dot gnu.org
2022-02-09  3:20 ` linkw at gcc dot gnu.org
2022-02-09  7:21 ` rguenth at gcc dot gnu.org
2022-02-09  7:35 ` linkw at gcc dot gnu.org
2022-03-15  6:38 ` linkw at gcc dot gnu.org
2022-05-05 18:14 ` bergner at gcc dot gnu.org
2022-05-06 16:41 ` cvs-commit at gcc dot gnu.org
2022-05-06 19:03 ` cvs-commit at gcc dot gnu.org
2022-05-06 21:45 ` cvs-commit at gcc dot gnu.org
2022-05-19 21:20 ` cvs-commit at gcc dot gnu.org
2022-05-19 21:25 ` bergner at gcc dot gnu.org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-102059-4-rqGcj6YMXW@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).