[PATCH] D81678: Introduce partialinit attribute at call sites for stricter poison analysis
Eli Friedman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Jun 17 15:08:06 PDT 2020
efriedma added a comment.
So I guess we've discussed the following alternatives so far:
1. Attach the "frozen" attribute everywhere; this makes the textual IR generated by clang messy, and likely bloats memory usage (not sure by how much).
2. Invert the meaning of the attribute; this makes reasoning about it messy.
3. Have a "frozen" attribute, but have a function attribute "frozen_args" to freeze all arguments. This is slightly messy to access from C++, and messy to modify from C++.
4. Choose one of the previous three for memory, and a different one for textual IR, and do some magic to translate. This makes it harder to understand the in-memory representation from reading textual IR.
I'm not particularly happy with any of these...
Maybe (1) is the least-bad; all the others compromise by making LLVM harder to understand. We can make porting the clang tests easier by adding a cc1 flag to turn off emitting frozen attributes, I guess (so instead of updating the CHECK lines, you could just mechanically update the RUN line).
Maybe worth sending an email to llvm-dev.
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