[PATCH] D62555: [TailDuplicator] prevent tail duplication for INLINEASM_BR
Eli Friedman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri May 31 13:25:16 PDT 2019
efriedma added a comment.
The following testcase still crashes with this patch. Given that, I don't think it makes sense to merge this patch; even if it lets some current version kernel build, someone else is likely to hit the same issue in the near future.
target triple = "arm-linux-gnueabi"
@a = external dso_local local_unnamed_addr global i32*, align 4
@c = external dso_local local_unnamed_addr global i32, align 4
define dso_local i32 @f() #0 {
entry:
%0 = load i32, i32* @c, align 4
%tobool = icmp eq i32 %0, 0
%1 = load i32*, i32** @a, align 4
br i1 %tobool, label %if.else, label %if.then
if.then: ; preds = %entry
tail call void asm sideeffect "str $1, $0", "*Qo,r"(i32* %1, i32 1) #1
callbr void asm sideeffect "", "X"(i8* blockaddress(@f, %g)) #1
to label %asm.fallthrough [label %g]
if.else: ; preds = %entry
tail call void asm sideeffect "str $1, $0", "*Qo,r"(i32* %1, i32 0) #1
callbr void asm sideeffect "", "X"(i8* blockaddress(@f, %g)) #1
to label %asm.fallthrough [label %g]
asm.fallthrough: ; preds = %if.end
unreachable
g: ; preds = %if.end
ret i32 undef
}
attributes #0 = { "use-soft-float"="false" }
attributes #1 = { nounwind }
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D62555/new/
https://reviews.llvm.org/D62555
More information about the llvm-commits
mailing list