[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