Last active
September 1, 2023 09:47
-
-
Save kwk/d7a50959dc7bbe65ca5bccd0567718fd to your computer and use it in GitHub Desktop.
Is create_arrays_heap function ever used?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = '<stdin>' | |
source_filename = "<stdin>" | |
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | |
target triple = "x86_64-unknown-linux-gnu" | |
define void @create_arrays_heap(double %beta, ptr nocapture readonly %A, ptr nocapture %B) local_unnamed_addr #0 { | |
entry: | |
%beta.s2a = alloca double, align 8 | |
%malloccall = tail call ptr @malloc(i64 2162688) | |
%malloccall1 = tail call ptr @malloc(i64 432537600000) | |
%malloccall2 = tail call ptr @malloc(i64 2162688) | |
br label %polly.split_new_and_old | |
polly.split_new_and_old: ; preds = %entry | |
%polly.access.mul.A = call { i64, i1 } @llvm.smul.with.overflow.i64(i64 1055, i64 1024) | |
%polly.access.mul.A.obit = extractvalue { i64, i1 } %polly.access.mul.A, 1 | |
%polly.overflow.state = or i1 false, %polly.access.mul.A.obit | |
%polly.access.mul.A.res = extractvalue { i64, i1 } %polly.access.mul.A, 0 | |
%polly.access.add.A = call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %polly.access.mul.A.res, i64 1024) | |
%polly.access.add.A.obit = extractvalue { i64, i1 } %polly.access.add.A, 1 | |
%polly.overflow.state3 = or i1 %polly.overflow.state, %polly.access.add.A.obit | |
%polly.access.add.A.res = extractvalue { i64, i1 } %polly.access.add.A, 0 | |
%polly.access.A = getelementptr double, ptr %A, i64 %polly.access.add.A.res | |
%polly.access.mul.B = call { i64, i1 } @llvm.smul.with.overflow.i64(i64 0, i64 1056) | |
%polly.access.mul.B.obit = extractvalue { i64, i1 } %polly.access.mul.B, 1 | |
%polly.overflow.state4 = or i1 %polly.overflow.state3, %polly.access.mul.B.obit | |
%polly.access.mul.B.res = extractvalue { i64, i1 } %polly.access.mul.B, 0 | |
%polly.access.add.B = call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %polly.access.mul.B.res, i64 0) | |
%polly.access.add.B.obit = extractvalue { i64, i1 } %polly.access.add.B, 1 | |
%polly.overflow.state5 = or i1 %polly.overflow.state4, %polly.access.add.B.obit | |
%polly.access.add.B.res = extractvalue { i64, i1 } %polly.access.add.B, 0 | |
%polly.access.B = getelementptr double, ptr %B, i64 %polly.access.add.B.res | |
%0 = ptrtoint ptr %polly.access.A to i64 | |
%1 = ptrtoint ptr %polly.access.B to i64 | |
%2 = icmp ule i64 %0, %1 | |
%polly.access.mul.B6 = call { i64, i1 } @llvm.smul.with.overflow.i64(i64 1055, i64 1056) | |
%polly.access.mul.B.obit7 = extractvalue { i64, i1 } %polly.access.mul.B6, 1 | |
%polly.overflow.state8 = or i1 %polly.overflow.state5, %polly.access.mul.B.obit7 | |
%polly.access.mul.B.res9 = extractvalue { i64, i1 } %polly.access.mul.B6, 0 | |
%polly.access.add.B10 = call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %polly.access.mul.B.res9, i64 1056) | |
%polly.access.add.B.obit11 = extractvalue { i64, i1 } %polly.access.add.B10, 1 | |
%polly.overflow.state12 = or i1 %polly.overflow.state8, %polly.access.add.B.obit11 | |
%polly.access.add.B.res13 = extractvalue { i64, i1 } %polly.access.add.B10, 0 | |
%polly.access.B14 = getelementptr double, ptr %B, i64 %polly.access.add.B.res13 | |
%polly.access.mul.A15 = call { i64, i1 } @llvm.smul.with.overflow.i64(i64 0, i64 1024) | |
%polly.access.mul.A.obit16 = extractvalue { i64, i1 } %polly.access.mul.A15, 1 | |
%polly.overflow.state17 = or i1 %polly.overflow.state12, %polly.access.mul.A.obit16 | |
%polly.access.mul.A.res18 = extractvalue { i64, i1 } %polly.access.mul.A15, 0 | |
%polly.access.add.A19 = call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %polly.access.mul.A.res18, i64 0) | |
%polly.access.add.A.obit20 = extractvalue { i64, i1 } %polly.access.add.A19, 1 | |
%polly.overflow.state21 = or i1 %polly.overflow.state17, %polly.access.add.A.obit20 | |
%polly.access.add.A.res22 = extractvalue { i64, i1 } %polly.access.add.A19, 0 | |
%polly.access.A23 = getelementptr double, ptr %A, i64 %polly.access.add.A.res22 | |
%3 = ptrtoint ptr %polly.access.B14 to i64 | |
%4 = ptrtoint ptr %polly.access.A23 to i64 | |
%5 = icmp ule i64 %3, %4 | |
%6 = or i1 %2, %5 | |
%7 = and i1 true, %6 | |
%polly.rtc.overflown = xor i1 %polly.overflow.state21, true | |
%polly.rtc.result = and i1 %7, %polly.rtc.overflown | |
br i1 %polly.rtc.result, label %polly.start, label %for.cond1.preheader.pre_entry_bb | |
for.cond1.preheader.pre_entry_bb: ; preds = %polly.split_new_and_old | |
br label %for.cond1.preheader | |
for.cond1.preheader: ; preds = %for.cond1.preheader.pre_entry_bb, %for.inc16 | |
%indvars.iv35 = phi i64 [ %indvars.iv.next36, %for.inc16 ], [ 0, %for.cond1.preheader.pre_entry_bb ] | |
br label %for.cond4.preheader | |
for.cond4.preheader: ; preds = %for.inc13, %for.cond1.preheader | |
%indvars.iv32 = phi i64 [ 0, %for.cond1.preheader ], [ %indvars.iv.next33, %for.inc13 ] | |
%arrayidx12 = getelementptr inbounds [1056 x double], ptr %B, i64 %indvars.iv35, i64 %indvars.iv32 | |
br label %for.body6 | |
for.body6: ; preds = %for.body6, %for.cond4.preheader | |
%indvars.iv = phi i64 [ 0, %for.cond4.preheader ], [ %indvars.iv.next.3, %for.body6 ] | |
%arrayidx8 = getelementptr inbounds [1024 x double], ptr %A, i64 %indvars.iv35, i64 %indvars.iv | |
%8 = load double, ptr %arrayidx8, align 8 | |
%mul = fmul double %8, %beta | |
store double %mul, ptr %arrayidx12, align 8 | |
%indvars.iv.next = or i64 %indvars.iv, 1 | |
%arrayidx8.1 = getelementptr inbounds [1024 x double], ptr %A, i64 %indvars.iv35, i64 %indvars.iv.next | |
%9 = load double, ptr %arrayidx8.1, align 8 | |
%mul.1 = fmul double %9, %beta | |
store double %mul.1, ptr %arrayidx12, align 8 | |
%indvars.iv.next.1 = or i64 %indvars.iv, 2 | |
%arrayidx8.2 = getelementptr inbounds [1024 x double], ptr %A, i64 %indvars.iv35, i64 %indvars.iv.next.1 | |
%10 = load double, ptr %arrayidx8.2, align 8 | |
%mul.2 = fmul double %10, %beta | |
store double %mul.2, ptr %arrayidx12, align 8 | |
%indvars.iv.next.2 = or i64 %indvars.iv, 3 | |
%arrayidx8.3 = getelementptr inbounds [1024 x double], ptr %A, i64 %indvars.iv35, i64 %indvars.iv.next.2 | |
%11 = load double, ptr %arrayidx8.3, align 8 | |
%mul.3 = fmul double %11, %beta | |
store double %mul.3, ptr %arrayidx12, align 8 | |
%indvars.iv.next.3 = add nsw i64 %indvars.iv, 4 | |
%exitcond.3 = icmp eq i64 %indvars.iv.next.3, 1024 | |
br i1 %exitcond.3, label %for.inc13, label %for.body6 | |
for.inc13: ; preds = %for.body6 | |
%indvars.iv.next33 = add nuw nsw i64 %indvars.iv32, 1 | |
%exitcond34 = icmp eq i64 %indvars.iv.next33, 1056 | |
br i1 %exitcond34, label %for.inc16, label %for.cond4.preheader | |
for.inc16: ; preds = %for.inc13 | |
%indvars.iv.next36 = add nuw nsw i64 %indvars.iv35, 1 | |
%exitcond37 = icmp eq i64 %indvars.iv.next36, 1056 | |
br i1 %exitcond37, label %polly.merge_new_and_old, label %for.cond1.preheader | |
polly.merge_new_and_old: ; preds = %polly.exiting, %for.inc16 | |
br label %for.end18 | |
for.end18: ; preds = %polly.merge_new_and_old | |
ret void | |
polly.start: ; preds = %polly.split_new_and_old | |
store double %beta, ptr %beta.s2a, align 8 | |
br label %polly.loop_preheader | |
polly.loop_exit: ; preds = %polly.loop_exit26 | |
br label %polly.exiting | |
polly.exiting: ; preds = %polly.loop_exit | |
tail call void @free(ptr %malloccall) | |
tail call void @free(ptr %malloccall1) | |
tail call void @free(ptr %malloccall2) | |
br label %polly.merge_new_and_old | |
polly.loop_header: ; preds = %polly.loop_exit26, %polly.loop_preheader | |
%polly.indvar = phi i64 [ 0, %polly.loop_preheader ], [ %polly.indvar_next, %polly.loop_exit26 ] | |
br label %polly.loop_preheader25 | |
polly.loop_exit26: ; preds = %polly.loop_exit32 | |
%polly.indvar_next = add nsw i64 %polly.indvar, 1 | |
%polly.loop_cond = icmp sle i64 %polly.indvar_next, 1055 | |
br i1 %polly.loop_cond, label %polly.loop_header, label %polly.loop_exit | |
polly.loop_preheader: ; preds = %polly.start | |
br label %polly.loop_header | |
polly.loop_header24: ; preds = %polly.loop_exit32, %polly.loop_preheader25 | |
%polly.indvar27 = phi i64 [ 0, %polly.loop_preheader25 ], [ %polly.indvar_next28, %polly.loop_exit32 ] | |
br label %polly.loop_preheader31 | |
polly.loop_exit32: ; preds = %polly.stmt.for.body6 | |
%polly.indvar_next28 = add nsw i64 %polly.indvar27, 1 | |
%polly.loop_cond29 = icmp sle i64 %polly.indvar_next28, 1055 | |
br i1 %polly.loop_cond29, label %polly.loop_header24, label %polly.loop_exit26 | |
polly.loop_preheader25: ; preds = %polly.loop_header | |
%12 = mul nuw nsw i64 %polly.indvar, 8448 | |
%scevgep = getelementptr i8, ptr %B, i64 %12 | |
br label %polly.loop_header24 | |
polly.loop_header30: ; preds = %polly.stmt.for.body6, %polly.loop_preheader31 | |
%polly.indvar33 = phi i64 [ 0, %polly.loop_preheader31 ], [ %polly.indvar_next34, %polly.stmt.for.body6 ] | |
br label %polly.stmt.for.body6 | |
polly.stmt.for.body6: ; preds = %polly.loop_header30 | |
%beta.s2a.reload = load double, ptr %beta.s2a, align 8 | |
%polly.access.mul.malloccall1 = mul nsw i64 %polly.indvar, 200000 | |
%13 = mul nsw i64 4, %polly.indvar33 | |
%polly.access.add.malloccall1 = add nsw i64 %polly.access.mul.malloccall1, %13 | |
%polly.access.malloccall1 = getelementptr double, ptr %malloccall1, i64 %polly.access.add.malloccall1 | |
%_p_scalar_ = load double, ptr %polly.access.malloccall1, align 8, !alias.scope !0, !noalias !3 | |
%p_mul = fmul double %_p_scalar_, %beta.s2a.reload | |
store double %p_mul, ptr %scevgep36, align 8, !alias.scope !8, !noalias !9 | |
%polly.access.mul.malloccall137 = mul nsw i64 %polly.indvar, 200000 | |
%14 = mul nsw i64 4, %polly.indvar33 | |
%15 = add nsw i64 %14, 1 | |
%polly.access.add.malloccall138 = add nsw i64 %polly.access.mul.malloccall137, %15 | |
%polly.access.malloccall139 = getelementptr double, ptr %malloccall1, i64 %polly.access.add.malloccall138 | |
%_p_scalar_40 = load double, ptr %polly.access.malloccall139, align 8, !alias.scope !0, !noalias !3 | |
%p_mul.1 = fmul double %_p_scalar_40, %beta.s2a.reload | |
store double %p_mul.1, ptr %scevgep36, align 8, !alias.scope !8, !noalias !9 | |
%polly.access.mul.malloccall141 = mul nsw i64 %polly.indvar, 200000 | |
%16 = mul nsw i64 4, %polly.indvar33 | |
%17 = add nsw i64 %16, 2 | |
%polly.access.add.malloccall142 = add nsw i64 %polly.access.mul.malloccall141, %17 | |
%polly.access.malloccall143 = getelementptr double, ptr %malloccall1, i64 %polly.access.add.malloccall142 | |
%_p_scalar_44 = load double, ptr %polly.access.malloccall143, align 8, !alias.scope !0, !noalias !3 | |
%p_mul.2 = fmul double %_p_scalar_44, %beta.s2a.reload | |
store double %p_mul.2, ptr %scevgep36, align 8, !alias.scope !8, !noalias !9 | |
%polly.access.mul.malloccall145 = mul nsw i64 %polly.indvar, 200000 | |
%18 = mul nsw i64 4, %polly.indvar33 | |
%19 = add nsw i64 %18, 3 | |
%polly.access.add.malloccall146 = add nsw i64 %polly.access.mul.malloccall145, %19 | |
%polly.access.malloccall147 = getelementptr double, ptr %malloccall1, i64 %polly.access.add.malloccall146 | |
%_p_scalar_48 = load double, ptr %polly.access.malloccall147, align 8, !alias.scope !0, !noalias !3 | |
%p_mul.3 = fmul double %_p_scalar_48, %beta.s2a.reload | |
store double %p_mul.3, ptr %scevgep36, align 8, !alias.scope !8, !noalias !9 | |
%polly.indvar_next34 = add nsw i64 %polly.indvar33, 1 | |
%polly.loop_cond35 = icmp sle i64 %polly.indvar_next34, 255 | |
br i1 %polly.loop_cond35, label %polly.loop_header30, label %polly.loop_exit32 | |
polly.loop_preheader31: ; preds = %polly.loop_header24 | |
%20 = shl nuw nsw i64 %polly.indvar27, 3 | |
%scevgep36 = getelementptr i8, ptr %scevgep, i64 %20 | |
br label %polly.loop_header30 | |
} | |
declare noalias ptr @malloc(i64) | |
declare void @free(ptr) | |
; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) | |
declare { i64, i1 } @llvm.smul.with.overflow.i64(i64, i64) #1 | |
; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) | |
declare { i64, i1 } @llvm.sadd.with.overflow.i64(i64, i64) #1 | |
attributes #0 = { "polly-optimized" } | |
attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } | |
!0 = !{!1} | |
!1 = distinct !{!1, !2, !"polly.alias.scope.E"} | |
!2 = distinct !{!2, !"polly.alias.scope.domain"} | |
!3 = !{!4, !5, !6, !7} | |
!4 = distinct !{!4, !2, !"polly.alias.scope.MemRef_A"} | |
!5 = distinct !{!5, !2, !"polly.alias.scope.MemRef_B"} | |
!6 = distinct !{!6, !2, !"polly.alias.scope.D"} | |
!7 = distinct !{!7, !2, !"polly.alias.scope.F"} | |
!8 = !{!5} | |
!9 = !{!4, !6, !1, !7} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment