[Openmp-commits] [PATCH] D106438: [OpenMP] Add an option to disable function internalization
Joseph Huber via Phabricator via Openmp-commits
openmp-commits at lists.llvm.org
Wed Jul 21 07:40:33 PDT 2021
jhuber6 updated this revision to Diff 360452.
jhuber6 added a comment.
Herald added a subscriber: jvesely.
Disabling internalization on AMDGPU as well.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D106438/new/
https://reviews.llvm.org/D106438
Files:
llvm/lib/Transforms/IPO/OpenMPOpt.cpp
openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
openmp/libomptarget/deviceRTLs/nvptx/CMakeLists.txt
Index: openmp/libomptarget/deviceRTLs/nvptx/CMakeLists.txt
===================================================================
--- openmp/libomptarget/deviceRTLs/nvptx/CMakeLists.txt
+++ openmp/libomptarget/deviceRTLs/nvptx/CMakeLists.txt
@@ -153,6 +153,7 @@
# Set flags for LLVM Bitcode compilation.
set(bc_flags -S -x c++ -O1 -std=c++14
+ -mllvm -openmp-opt-disable-internalization
-target nvptx64
-Xclang -emit-llvm-bc
-Xclang -aux-triple -Xclang ${aux_triple}
Index: openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
===================================================================
--- openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
+++ openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
@@ -107,6 +107,7 @@
set(cu_cmd ${CLANG_TOOL}
-xc++
-c
+ -mllvm -openmp-opt-disable-internalization
-std=c++14
-ffreestanding
-target amdgcn-amd-amdhsa
Index: llvm/lib/Transforms/IPO/OpenMPOpt.cpp
===================================================================
--- llvm/lib/Transforms/IPO/OpenMPOpt.cpp
+++ llvm/lib/Transforms/IPO/OpenMPOpt.cpp
@@ -56,6 +56,11 @@
cl::desc("Enable the OpenMP region merging optimization."), cl::Hidden,
cl::init(false));
+static cl::opt<bool>
+ DisableInternalization("openmp-opt-disable-internalization", cl::ZeroOrMore,
+ cl::desc("Disable function internalization."),
+ cl::Hidden, cl::init(false));
+
static cl::opt<bool> PrintICVValues("openmp-print-icv-values", cl::init(false),
cl::Hidden);
static cl::opt<bool> PrintOpenMPKernels("openmp-print-gpu-kernels",
@@ -3771,7 +3776,8 @@
DenseSet<const Function *> InternalizedFuncs;
if (isOpenMPDevice(M))
for (Function &F : M)
- if (!F.isDeclaration() && !Kernels.contains(&F) && IsCalled(F)) {
+ if (!F.isDeclaration() && !Kernels.contains(&F) && IsCalled(F) &&
+ !DisableInternalization) {
if (Attributor::internalizeFunction(F, /* Force */ true)) {
InternalizedFuncs.insert(&F);
} else if (!F.hasLocalLinkage() && !F.hasFnAttribute(Attribute::Cold)) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D106438.360452.patch
Type: text/x-patch
Size: 2203 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20210721/4439bd31/attachment.bin>
More information about the Openmp-commits
mailing list