[PATCH] D129997: [Local] Allow creating callbr with duplicate successors
Nick Desaulniers via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 19 14:28:49 PDT 2022
nickdesaulniers added a comment.
Initial IR reduction:
; llc -O2 -mtriple=powerpc64le-unknown-linux-gnu reduced.ll
target datalayout = "e-m:e-i64:64-n32:64-S128-v256:256:256-v512:512:512"
target triple = "powerpc64le-unknown-linux-gnu"
; Function Attrs: argmemonly nocallback nofree nosync nounwind willreturn
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0
define void @ceph_con_v2_try_read(i32 %__trans_tmp_3.sroa.0.0.copyload, i1 %tobool.not.i.i) {
entry:
%skip.i.i = alloca i32, i32 0, align 4
br label %for.cond
for.cond: ; preds = %for.cond.backedge, %entry
%cond = icmp eq i32 %__trans_tmp_3.sroa.0.0.copyload, 0
br i1 %cond, label %sw.bb, label %for.cond.backedge
sw.bb: ; preds = %for.cond
%call.i.i2 = call i32 null(ptr %skip.i.i)
br i1 %tobool.not.i.i, label %if.else.i.i, label %process_message_header.exit.i
if.else.i.i: ; preds = %sw.bb
callbr void asm sideeffect "", "!i"()
to label %if.end.i [label %if.end.i]
process_message_header.exit.i: ; preds = %sw.bb
call void @llvm.lifetime.end.p0(i64 0, ptr %skip.i.i)
br label %for.cond.backedge
if.end.i: ; preds = %if.else.i.i, %if.else.i.i
call void @llvm.lifetime.end.p0(i64 0, ptr %skip.i.i)
br label %for.cond.backedge
for.cond.backedge: ; preds = %if.end.i, %process_message_header.exit.i, %for.cond
br label %for.cond
}
attributes #0 = { argmemonly nocallback nofree nosync nounwind willreturn }
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D129997/new/
https://reviews.llvm.org/D129997
More information about the llvm-commits
mailing list