jhuber6 marked an inline comment as done.
jhuber6 added a comment.

In D130096#3663295 <https://reviews.llvm.org/D130096#3663295>, @yaxunl wrote:

> There is no constant propagation for globals with weak linage, right? 
> Otherwise, it won't work. My concern is that there may be optimization passes 
> which do not respect the weak linkage and uses the incorrect default value 
> for OpenCL or HIP. Therefore I am not very confident to enable this for 
> OpenCL or HIP unless these variables have the correct value based on the 
> compilation options.

Yes, the problem is that `linkonce_odr` can be removed and as-such isn't usable 
for linking libraries late like we want to. You are correct that `weak_odr` 
normally cannot be propagated as another TU could potentially change it, but if 
we're linking this via LTO like AMDGPU does it should always be internalized in 
the linker. The OpenMP runtime has a similar `weak_odr` variable that gets 
internalized when we do LTO so it should apply here as well. Although my 
assumption is that AMDGPU always feeds bitcode directly to either `lld` or 
`clang-linker-wrapper` without invoking `llc` manually, I may be wrong there.



================
Comment at: clang/lib/CodeGen/TargetInfo.cpp:9480
+  AddGlobal("__oclc_ISA_version", Minor + Major * 1000, 32);
+  AddGlobal("__oclc_ABI_version", 400, 32);
+}
----------------
yaxunl wrote:
> should be determined by the code object version option.
Yes I wasn't sure about this one. Could you elaborate where we derive that?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D130096

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

Reply via email to