[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