public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/105018] New: [nvptx] Need better alias support
@ 2022-03-22 14:29 vries at gcc dot gnu.org
  2022-03-22 14:30 ` [Bug target/105018] " vries at gcc dot gnu.org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: vries at gcc dot gnu.org @ 2022-03-22 14:29 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 105018
           Summary: [nvptx] Need better alias support
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: vries at gcc dot gnu.org
  Target Milestone: ---

We currently have alias support enabled by malias, which relies on the ptx
.alias directive.

There is a number of limitations, listed in the commit adding malias:
...
Only function aliases are supported.

Weak aliases are not supported.  That is, if I disable the check in
nvptx_asm_output_def_from_decls that disallows this, a weak alias is emitted
and parsed by the driver.  But the test gcc.dg/globalalias.c starts failing,
with the behaviour matching the comment about "weird behavior of AIX's .set
pseudo-op": a weak alias may resolve to different functions in different
files.

Aliases to weak symbols are not supported (see gcc.dg/localalias.c).  This is
currently not prohibited by the compiler, but with the driver link we run
into: "error: Function test with .weak scope cannot be aliased".

Aliases to aliases are not supported (see libgomp.c-c++-common/pr96390.c).
This is currently not prohibited by the compiler, but with the driver link we
run into:  "Internal error: alias to unknown symbol" .

Unreferenced aliases are not emitted (these can occur f.i. when inlining a
call to an alias).  This avoids driver link error "Internal error: reference
to deleted section".
...

We'd like an implementation that doesn't have (all of) these limitations.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug target/105018] [nvptx] Need better alias support
  2022-03-22 14:29 [Bug target/105018] New: [nvptx] Need better alias support vries at gcc dot gnu.org
@ 2022-03-22 14:30 ` vries at gcc dot gnu.org
  2022-03-22 14:34 ` vries at gcc dot gnu.org
  2022-07-22 13:02 ` tschwinge at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: vries at gcc dot gnu.org @ 2022-03-22 14:30 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from Tom de Vries <vries at gcc dot gnu.org> ---
(In reply to Tom de Vries from comment #0)
> Aliases to aliases are not supported (see libgomp.c-c++-common/pr96390.c).
> This is currently not prohibited by the compiler, but with the driver link we
> run into:  "Internal error: alias to unknown symbol" .

And that is the reason that libgomp.c-c++-common/pr96390.c and friends doesn't
pass when I do:
...
/* { dg-additional-options "-foffload=-mptx=6.3 -foffload=-malias" { target
offload_target_nvptx } } */
...

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug target/105018] [nvptx] Need better alias support
  2022-03-22 14:29 [Bug target/105018] New: [nvptx] Need better alias support vries at gcc dot gnu.org
  2022-03-22 14:30 ` [Bug target/105018] " vries at gcc dot gnu.org
@ 2022-03-22 14:34 ` vries at gcc dot gnu.org
  2022-07-22 13:02 ` tschwinge at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: vries at gcc dot gnu.org @ 2022-03-22 14:34 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Tom de Vries <vries at gcc dot gnu.org> ---
As mentioned before by amonakov, a possibility is to add alias support to the
nvptx-tools linker, and use that.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug target/105018] [nvptx] Need better alias support
  2022-03-22 14:29 [Bug target/105018] New: [nvptx] Need better alias support vries at gcc dot gnu.org
  2022-03-22 14:30 ` [Bug target/105018] " vries at gcc dot gnu.org
  2022-03-22 14:34 ` vries at gcc dot gnu.org
@ 2022-07-22 13:02 ` tschwinge at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: tschwinge at gcc dot gnu.org @ 2022-07-22 13:02 UTC (permalink / raw)
  To: gcc-bugs

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

Thomas Schwinge <tschwinge at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://github.com/MentorEm
                   |                            |bedded/nvptx-tools/issues/3
                   |                            |2
   Last reconfirmed|                            |2022-07-22
                 CC|                            |amonakov at gcc dot gnu.org,
                   |                            |tschwinge at gcc dot gnu.org
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW

--- Comment #3 from Thomas Schwinge <tschwinge at gcc dot gnu.org> ---
(In reply to Tom de Vries from comment #2)
> As mentioned before by amonakov, a possibility is to add alias support to
> the nvptx-tools linker, and use that.

<https://github.com/MentorEmbedded/nvptx-tools/issues/32> "[LD] Handle alias in
nvptx-ld as nvptx's .alias does not handle it fully".

Alexander, you don't happen to have started working on this already?

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-07-22 13:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-22 14:29 [Bug target/105018] New: [nvptx] Need better alias support vries at gcc dot gnu.org
2022-03-22 14:30 ` [Bug target/105018] " vries at gcc dot gnu.org
2022-03-22 14:34 ` vries at gcc dot gnu.org
2022-07-22 13:02 ` tschwinge at gcc dot gnu.org

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