[PATCH] D81678: Introduce partialinit attribute at call sites for stricter poison analysis
Juneyoung Lee via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Jun 16 16:29:07 PDT 2020
aqjune added a comment.
In D81678#2091089 <https://reviews.llvm.org/D81678#2091089>, @eugenis wrote:
> Positive attribute sounds good to me (frozen is not a bad name), but the tests update change is going to be huge. Any concerns about IR size bloat? The attribute will apply to the majority of function arguments, 8 bytes per instance as far as I can see.
Hi,
The issue stems from the difference between whether passing poison/undef to fn arg is allowed in C and IR, so (to add a positive attribute) increase in diff and # of attributes will happen, the question is how we can make the increase as small as possible.
To minimize diff, what about additionally introducing a function-level attribute such as `args_frozen` stating that all arguments are frozen. (e.g `define void @f(i32 x, i32 y) args_frozen`)?
The attribute will appear at the end of the line, so many CHECK of function signatures will still pass. (e.g. clang/test/CodeGen/mips64-padding-arg.c )
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D81678/new/
https://reviews.llvm.org/D81678
More information about the cfe-commits
mailing list