[PATCH] D80642: [AIX] Emit AvailableExternally Linkage on AIX

Xiangling Liao via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 27 09:11:39 PDT 2020


Xiangling_L created this revision.
Xiangling_L added reviewers: hubert.reinterpretcast, jasonliu, DiggerLin, sfertile.
Xiangling_L added a project: LLVM.
Herald added subscribers: llvm-commits, kbarton, hiraditya, nemanjai.

There are two usages of `AvailableExternally` Linkage.

The first one is used for inlining of thunks under the Itanium ABI. However, this linkage set on thunks is a temporary presence and is never ended up in the final IR. So we don't need to take care of it in the backend.

The second one is where we have a const declaration with an initializer, we may be able to emit it as available_externally to expose its value to the optimizer. Since on AIX, our strategy is to not use `-u` to suppress any undefined symbols, we need to emit `.extern` for the symbol.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D80642

Files:
  llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
  llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
  llvm/lib/Target/TargetLoweringObjectFile.cpp
  llvm/test/CodeGen/PowerPC/aix-available-externally-linkage.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D80642.266542.patch
Type: text/x-patch
Size: 6382 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200527/b800b24c/attachment-0001.bin>


More information about the llvm-commits mailing list