llvm_21_with_lifetime.ll
application/octet-stream
; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable
define noundef i64 @evalexpr_0_0(ptr noundef readonly captures(none) initializes((28, 29)) %0, ptr readnone captures(none) %1, ptr readnone captures(none) %2) local_unnamed_addr #0 {
entry:
%3 = getelementptr inbounds nuw i8, ptr %0, i64 16
%v_resultslot = load ptr, ptr %3, align 8
%4 = getelementptr inbounds nuw i8, ptr %v_resultslot, i64 24
%v_resultvalues = load ptr, ptr %4, align 8
%5 = getelementptr inbounds nuw i8, ptr %v_resultslot, i64 32
%v_resultnulls = load ptr, ptr %5, align 8
store i8 0, ptr inttoptr (i64 200635374787156 to ptr), align 4
%6 = tail call i64 @GetLatestXTime() #3
%7 = icmp eq i64 %6, 0
br i1 %7, label %pg_last_xact_replay_timestamp.exit, label %entry.pg_last_xact_replay_timestamp.exit_crit_edge
entry.pg_last_xact_replay_timestamp.exit_crit_edge: ; preds = %entry
%.pre = load i8, ptr inttoptr (i64 200635374787156 to ptr), align 4
br label %pg_last_xact_replay_timestamp.exit
pg_last_xact_replay_timestamp.exit: ; preds = %entry, %entry.pg_last_xact_replay_timestamp.exit_crit_edge
%8 = phi i8 [ %.pre, %entry.pg_last_xact_replay_timestamp.exit_crit_edge ], [ 1, %entry ]
%9 = getelementptr inbounds nuw i8, ptr %0, i64 5
%10 = getelementptr inbounds nuw i8, ptr %0, i64 8
tail call void @llvm.lifetime.end.p0(i64 0, ptr nonnull inttoptr (i64 200635374787160 to ptr))
tail call void @llvm.lifetime.end.p0(i64 1, ptr nonnull inttoptr (i64 200635374787156 to ptr))
store i64 %6, ptr inttoptr (i64 200635374786792 to ptr), align 8
store i8 %8, ptr inttoptr (i64 200635374786789 to ptr), align 1
%11 = load i64, ptr %10, align 8
%12 = load i8, ptr %9, align 1
store i8 %12, ptr %v_resultnulls, align 1
store i64 %11, ptr %v_resultvalues, align 8
ret i64 0
}