From: Michael Liao Date: Tue, 8 Jun 2021 18:35:36 +0000 (-0400) Subject: [amdgpu] Add `-enable-ocl-mangling-mismatch-workaround`. X-Git-Tag: llvmorg-14-init~4525 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=27332968d85e1ad4a58df884030e55abc00e91b1;p=platform%2Fupstream%2Fllvm.git [amdgpu] Add `-enable-ocl-mangling-mismatch-workaround`. - Add `-enable-ocl-mangling-mismatch-workaround` to work around the mismatch on OCL name mangling so far. Reviewed By: yaxunl, rampitec Differential Revision: https://reviews.llvm.org/D103920 --- diff --git a/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp b/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp index 646087c..32262ea 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp @@ -19,10 +19,16 @@ #include "llvm/IR/Function.h" #include "llvm/IR/Module.h" #include "llvm/IR/ValueSymbolTable.h" +#include "llvm/Support/CommandLine.h" #include "llvm/Support/raw_ostream.h" using namespace llvm; +static cl::opt EnableOCLManglingMismatchWA( + "amdgpu-enable-ocl-mangling-mismatch-workaround", cl::init(true), + cl::ReallyHidden, + cl::desc("Enable the workaround for OCL name mangling mismatch.")); + namespace { enum EManglingParam { @@ -826,7 +832,8 @@ public: unsigned AS = UseAddrSpace ? AMDGPULibFuncBase::getAddrSpaceFromEPtrKind(p.PtrKind) : 0; - if (AS != 0) os << "U3AS" << AS; + if (EnableOCLManglingMismatchWA || AS != 0) + os << "U3AS" << AS; Ptr = p; p.PtrKind = 0; } diff --git a/llvm/test/CodeGen/AMDGPU/simplify-libcalls.ll b/llvm/test/CodeGen/AMDGPU/simplify-libcalls.ll index 1919f87..6fa1c84 100644 --- a/llvm/test/CodeGen/AMDGPU/simplify-libcalls.ll +++ b/llvm/test/CodeGen/AMDGPU/simplify-libcalls.ll @@ -1,8 +1,8 @@ ; RUN: opt -S -O1 -mtriple=amdgcn-- -amdgpu-simplify-libcall < %s | FileCheck -enable-var-scope -check-prefix=GCN -check-prefix=GCN-POSTLINK %s -; RUN: opt -S -O1 -mtriple=amdgcn-- -amdgpu-simplify-libcall -amdgpu-prelink <%s | FileCheck -enable-var-scope -check-prefix=GCN -check-prefix=GCN-PRELINK %s +; RUN: opt -S -O1 -mtriple=amdgcn-- -amdgpu-simplify-libcall -amdgpu-prelink -amdgpu-enable-ocl-mangling-mismatch-workaround=0 <%s | FileCheck -enable-var-scope -check-prefix=GCN -check-prefix=GCN-PRELINK %s ; RUN: opt -S -O1 -mtriple=amdgcn-- -amdgpu-use-native -amdgpu-prelink < %s | FileCheck -enable-var-scope -check-prefix=GCN -check-prefix=GCN-NATIVE %s ; RUN: opt -S -passes='default' -mtriple=amdgcn-- -amdgpu-simplify-libcall < %s | FileCheck -enable-var-scope -check-prefix=GCN -check-prefix=GCN-POSTLINK %s -; RUN: opt -S -passes='default' -mtriple=amdgcn-- -amdgpu-simplify-libcall -amdgpu-prelink <%s | FileCheck -enable-var-scope -check-prefix=GCN -check-prefix=GCN-PRELINK %s +; RUN: opt -S -passes='default' -mtriple=amdgcn-- -amdgpu-simplify-libcall -amdgpu-prelink -amdgpu-enable-ocl-mangling-mismatch-workaround=0 <%s | FileCheck -enable-var-scope -check-prefix=GCN -check-prefix=GCN-PRELINK %s ; RUN: opt -S -passes='default' -mtriple=amdgcn-- -amdgpu-use-native -amdgpu-prelink < %s | FileCheck -enable-var-scope -check-prefix=GCN -check-prefix=GCN-NATIVE %s ; GCN-LABEL: {{^}}define amdgpu_kernel void @test_sincos