ABataev added inline comments.

================
Comment at: clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp:2858
     TransferMedium = new llvm::GlobalVariable(
-        M, Ty, /*isConstant=*/false, llvm::GlobalVariable::CommonLinkage,
-        llvm::Constant::getNullValue(Ty), TransferMediumName,
+        M, Ty, /*isConstant=*/false, llvm::GlobalVariable::InternalLinkage,
+        llvm::UndefValue::get(Ty), TransferMediumName,
----------------
"Internalization" is not the best option, it increases mem pressure. Common 
linkage is a better choice, allows to "squash" the same objects, defined in 
different units. Make it arch dependable, maybe?
For NVPTX zero initialization is not a problem, it is resolved when PTX is 
generated.


================
Comment at: clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp:4794
           CGM.getModule(), LLVMStaticTy,
-          /*isConstant=*/false, llvm::GlobalValue::CommonLinkage,
-          llvm::Constant::getNullValue(LLVMStaticTy),
+          /*isConstant=*/false, llvm::GlobalValue::InternalLinkage,
+          llvm::UndefValue::get(LLVMStaticTy),
----------------
JonChesterfield wrote:
> Perhaps weak_any + undef?
> 
> Could use internal for symbols that may vary in size and weak_any for those 
> that don't.
Yeah, it is a good idea, I think.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D89994/new/

https://reviews.llvm.org/D89994

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to