[PATCH] D47895: llvm: Add support for "-fno-delete-null-pointer-checks"
Manoj Gupta via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 26 11:59:29 PDT 2018
manojgupta added a comment.
> Random uneducated thought - how does it work with multiple translation units, where not all of them have/don't have that flag set?
Currently the logic disables inlining of functions with "null-pointer-is-valid" into functions that does not have this attribute.
However, if the callee has always_inline, inlining would still happen.
Here is an example of what GCC does in case of mismatched "fno-delete-null-pointer-checks".
https://godbolt.org/g/78Z2S4
There are 4 cases:
Case 1 : Attribute is on caller
Case 2 : Attribute is on callee
Case 3 : Attribute is on caller, callee has always_inline
Case 4 : Attribute is on callee, callee has always_inline
Inlining happens in all cases except (2). I think clang behavior matches GCC here.
Not sure of Langref changes, @efriedma What do you suggest?
Repository:
rL LLVM
https://reviews.llvm.org/D47895
More information about the llvm-commits
mailing list