jdoerfert added a comment.

In D120129#3410493 <https://reviews.llvm.org/D120129#3410493>, @kovdan01 wrote:

> In D120129#3410479 <https://reviews.llvm.org/D120129#3410479>, @jdoerfert 
> wrote:
>
>> Please revert this commit. It breaks any code using the cuda.11.0.2 
>> libdevice.bc file, the source of the `null` `nvvm.annotations` and the 
>> annotations with 5 arguments. See below.
>> Once a fix is in, and a test is added, we can reapply this.
>>
>>   $ opt -S .../cuda-11.0.2/nvvm/libdevice/libdevice.10.bc | tail
>>   !nvvm.annotations = !{!1, !2, !1, !3, !3, !3, !3, !4, !4, !3}
>>   
>>   !0 = !{i32 1, i32 4}
>>   !1 = !{null, !"align", i32 8}
>>   !2 = !{null, !"align", i32 8, !"align", i32 65544, !"align", i32 131080}
>>   !3 = !{null, !"align", i32 16}
>>   !4 = !{null, !"align", i32 16, !"align", i32 65552, !"align", i32 131088}
>>   !5 = distinct !{!5, !6}
>
> Got it, will revert the patch shortly. Could you please describe what do you 
> mean by "break" in a bit more detail? Is that only about poorly designed and 
> failing assertions in `getFunctionParamOptimizedAlign` or there are some 
> other (maybe even functional) issues? If that's only about assertions, won't 
> using `isKernelFunction` (as suggested in D122550 
> <https://reviews.llvm.org/D122550>) help?

The two assertions introduced here do not hold for the libdevice.bc above. So 
whenever we link the above we will cause the assertions to fail. That's what I 
mean with break. isKernelFunction is probably going to fix all that. For a 
test, copy annotations like the above into one of the .ll files and make sure 
it contains a private/internal function w/ arguments as well.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D120129

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

Reply via email to