[HipStdPar] Fix globle variable (#90627)
HipStdParAcceleratorCodeSelectionPass changes linkage of global variables to extern_weak, which does not allow initializer. An extern_weak global variable with initializer will cause llvm-as and llc to fail.
This commit is contained in:
@@ -133,6 +133,7 @@ static inline void maybeHandleGlobals(Module &M) {
|
||||
continue;
|
||||
|
||||
G.setLinkage(GlobalVariable::ExternalWeakLinkage);
|
||||
G.setInitializer(nullptr);
|
||||
G.setExternallyInitialized(true);
|
||||
}
|
||||
}
|
||||
|
||||
11
llvm/test/Transforms/HipStdPar/global-var.ll
Normal file
11
llvm/test/Transforms/HipStdPar/global-var.ll
Normal file
@@ -0,0 +1,11 @@
|
||||
; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -passes=hipstdpar-select-accelerator-code \
|
||||
; RUN: %s | FileCheck %s
|
||||
|
||||
; CHECK: @var = extern_weak addrspace(1) externally_initialized global i32, align 4
|
||||
@var = addrspace(1) global i32 0, align 4
|
||||
|
||||
define amdgpu_kernel void @kernel() {
|
||||
entry:
|
||||
store i32 1, ptr addrspace(1) @var, align 4
|
||||
ret void
|
||||
}
|
||||
Reference in New Issue
Block a user