[PATCH] D141386: [LangRef] Make !range, !nonnull and !align return poison instead of IUB
Nuno Lopes via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 12 09:19:22 PST 2023
nlopes added a comment.
In D141386#4047344 <https://reviews.llvm.org/D141386#4047344>, @nikic wrote:
> In D141386#4044303 <https://reviews.llvm.org/D141386#4044303>, @nlopes wrote:
>
>> Sounds good, thanks!
>> I implemented this in Alive2 and I got zero failures in LLVM's test suite. Either it doesn't have many !ranges or we are good.
>
> Shouldn't this test have failed? https://github.com/llvm/llvm-project/blob/main/llvm/test/Transforms/Mem2Reg/preserve-nonnull-load-metadata.ll Or did you only adjust `!range` but not `!nonnull`?
It does now:
define ptr @no_store_single_load() {
%entry:
%buf = alloca i64 8, align 8
%buf.load = load ptr, ptr %buf, align 8
%buf.load_2 = !nonnull ptr %buf.load
ret ptr %buf.load_2
}
=>
define ptr @no_store_single_load() noreturn nonnull nofree noalias willreturn memory(none) {
%entry:
assume i1 0
}
Transformation doesn't verify!
ERROR: Source is more defined than target
I'll rerun LLVM unit tests again.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D141386/new/
https://reviews.llvm.org/D141386
More information about the llvm-commits
mailing list