[clang] [Inliner] Improve attribute propagation to callsites when inlining. (PR #66036)

via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 15 07:50:35 PDT 2023


goldsteinn wrote:

> It occurs to me that the current return attribute propagation is currently buggy for poison-generating attributes: https://llvm.godbolt.org/z/x8n18q9Mj
> 
> In this case the argument to use() will now be poison as well, while before inlining only the return value was poison.
> 
> This code needs to distinguish poison and UB generating attributes.

Good catch. I think this means basically `nonnull`, `noundef`, and `align` can only be propagated if there are no other uses in to-be-inlined function.
That sound right or do you see any more robust way forward?

https://github.com/llvm/llvm-project/pull/66036


More information about the cfe-commits mailing list