Skip to content

Instantly share code, notes, and snippets.

@angerman
Created November 28, 2017 12:39
Show Gist options
  • Save angerman/3e7361bc0f70c170b109d4576053306e to your computer and use it in GitHub Desktop.
Save angerman/3e7361bc0f70c170b109d4576053306e to your computer and use it in GitHub Desktop.
; ModuleID = '<stdin>'
source_filename = "Main.ll"
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
target triple = "arm-unknown-linux-gnueabihf"
@r2Pd_bytes = private global { [5 x i8] } { [5 x i8] c"main\00" }
@r2Ps_closure = private global { i32, i32 } { i32 ptrtoint (i32* @ghczmprim_GHCziTypes_TrNameS_con_info to i32), i32 ptrtoint ({ [5 x i8] }* @r2Pd_bytes to i32) }
@r2Pt_bytes = private global { [5 x i8] } { [5 x i8] c"Main\00" }
@r2Pu_closure = private global { i32, i32 } { i32 ptrtoint (i32* @ghczmprim_GHCziTypes_TrNameS_con_info to i32), i32 ptrtoint ({ [5 x i8] }* @r2Pt_bytes to i32) }
@Main_zdtrModule_closure = local_unnamed_addr global { i32, i32, i32, i32 } { i32 ptrtoint (i32* @ghczmprim_GHCziTypes_Module_con_info to i32), i32 add (i32 ptrtoint ({ i32, i32 }* @r2Ps_closure to i32), i32 1), i32 add (i32 ptrtoint ({ i32, i32 }* @r2Pu_closure to i32), i32 1), i32 3 }
@s2PA_closure = private global { i32, i32, i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @s2PA_info to i32), i32 0, i32 0, i32 0 }
@ro_closure = private global { i32, i32, i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @ro_info to i32), i32 0, i32 0, i32 0 }
@s2PD_closure = private global { i32, i32, i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @s2PD_info to i32), i32 0, i32 0, i32 0 }
@rqy_closure = private global { i32, i32, i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @rqy_info to i32), i32 0, i32 0, i32 0 }
@s2PF_closure = private global { i32, i32, i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @s2PF_info to i32), i32 0, i32 0, i32 0 }
@s2PE_closure = private global { i32, i32, i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @s2PE_info to i32), i32 0, i32 0, i32 0 }
@r2Pv_closure = private global { i32, i32, i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @r2Pv_info to i32), i32 0, i32 0, i32 0 }
@s2PJ_closure = private global { i32, i32, i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @s2PJ_info to i32), i32 0, i32 0, i32 0 }
@s2PI_closure = private global { i32, i32, i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @s2PI_info to i32), i32 0, i32 0, i32 0 }
@Main_main_closure = global { i32, i32, i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main_info to i32), i32 0, i32 0, i32 0 }
@ZCMain_main_closure = local_unnamed_addr global { i32, i32, i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @ZCMain_main_info to i32), i32 0, i32 0, i32 0 }
@S2Q4_srt = private global { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } { i32 ptrtoint (i32* @integerzmsimple_GHCziIntegerziType_mkInteger_closure to i32), i32 ptrtoint (i32* @base_GHCziWord_zdfNumWord64_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @s2PA_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @s2PD_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @ro_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @rqy_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @s2PE_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @s2PF_closure to i32), i32 ptrtoint (i32* @base_SystemziIO_print_closure to i32), i32 ptrtoint (i32* @base_GHCziWord_zdfShowWord64_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @r2Pv_closure to i32), i32 ptrtoint (i32* @base_GHCziWord_zdfEqWord64_closure to i32), i32 ptrtoint (i32* @base_GHCziShow_zdfShowBool_closure to i32), i32 ptrtoint (i32* @base_GHCziBase_zdfMonadIO_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @s2PI_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @s2PJ_closure to i32), i32 ptrtoint (i32* @base_GHCziTopHandler_runMainIO_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @Main_main_closure to i32) }
@base_GHCziBase_zdfMonadIO_closure = external constant i32
@base_GHCziShow_zdfShowBool_closure = external constant i32
@base_GHCziTopHandler_runMainIO_closure = external constant i32
@base_GHCziWord_zdfEqWord64_closure = external constant i32
@base_GHCziWord_zdfNumWord64_closure = external constant i32
@base_GHCziWord_zdfShowWord64_closure = external constant i32
@base_SystemziIO_print_closure = external constant i32
@ghczmprim_GHCziTypes_Izh_con_info = external constant i32
@ghczmprim_GHCziTypes_Module_con_info = external constant i32
@ghczmprim_GHCziTypes_TrNameS_con_info = external constant i32
@ghczmprim_GHCziTypes_True_closure = external constant i32
@ghczmprim_GHCziTypes_ZC_con_info = external constant i32
@ghczmprim_GHCziTypes_ZMZN_closure = external constant i32
@integerzmsimple_GHCziIntegerziType_mkInteger_closure = external constant i32
@stg_ap_p_info = external constant i32
@stg_ap_pp_info = external constant i32
@stg_bh_upd_frame_info = external constant i32
@stg_upd_frame_info = external constant i32
declare ghccc void @base_GHCziBase_zgzg_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) local_unnamed_addr
declare ghccc void @base_GHCziNum_fromInteger_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) local_unnamed_addr
declare ghccc void @base_GHCziNum_zp_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) local_unnamed_addr
declare ghccc void @ghczmprim_GHCziClasses_zeze_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) local_unnamed_addr
declare i8* @newCAF(i8*, i8*) local_unnamed_addr
declare ghccc void @stg_ap_0_fast(i32*, i32*, i32*, i32, i32, i32, i32, i32) local_unnamed_addr
declare ghccc void @stg_ap_p_fast(i32*, i32*, i32*, i32, i32, i32, i32, i32) local_unnamed_addr
declare ghccc void @stg_ap_pp_fast(i32*, i32*, i32*, i32, i32, i32, i32, i32) local_unnamed_addr
define private ghccc void @s2PA_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S2Q4_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @s2PA_info to i32)), i32 0, i32 65557 } {
%9 = getelementptr inbounds i32, i32* %1, i32 1
%10 = ptrtoint i32* %9 to i32
%11 = add i32 %10, -12
%12 = icmp ult i32 %11, %7
br i1 %12, label %39, label %13
; <label>:13: ; preds = %8
%14 = getelementptr inbounds i32, i32* %2, i32 5
%15 = ptrtoint i32* %14 to i32
%16 = getelementptr inbounds i32, i32* %0, i32 201
%17 = load i32, i32* %16, align 4
%18 = icmp ult i32 %17, %15
br i1 %18, label %37, label %19
; <label>:19: ; preds = %13
%20 = bitcast i32* %0 to i8*
%21 = inttoptr i32 %3 to i8*
%22 = tail call i8* @newCAF(i8* %20, i8* %21)
%23 = icmp eq i8* %22, null
br i1 %23, label %34, label %24
; <label>:24: ; preds = %19
%25 = ptrtoint i8* %22 to i32
%26 = getelementptr inbounds i32, i32* %1, i32 -2
store i32 ptrtoint (i32* @stg_bh_upd_frame_info to i32), i32* %26, align 4
%27 = getelementptr inbounds i32, i32* %1, i32 -1
store i32 %25, i32* %27, align 4
%28 = getelementptr inbounds i32, i32* %2, i32 1
store i32 ptrtoint (i32* @ghczmprim_GHCziTypes_Izh_con_info to i32), i32* %28, align 4
%29 = getelementptr inbounds i32, i32* %2, i32 2
store i32 128, i32* %29, align 4
%30 = add i32 %15, -15
%31 = getelementptr inbounds i32, i32* %2, i32 3
store i32 ptrtoint (i32* @ghczmprim_GHCziTypes_ZC_con_info to i32), i32* %31, align 4
%32 = getelementptr inbounds i32, i32* %2, i32 4
store i32 %30, i32* %32, align 4
store i32 add (i32 ptrtoint (i32* @ghczmprim_GHCziTypes_ZMZN_closure to i32), i32 1), i32* %14, align 4
%33 = add i32 %15, -6
tail call ghccc void @stg_ap_pp_fast(i32* nonnull %0, i32* %26, i32* %14, i32 ptrtoint (i32* @integerzmsimple_GHCziIntegerziType_mkInteger_closure to i32), i32 add (i32 ptrtoint (i32* @ghczmprim_GHCziTypes_True_closure to i32), i32 2), i32 %33, i32 undef, i32 %7)
ret void
; <label>:34: ; preds = %19
%35 = inttoptr i32 %3 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%36 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %35, align 4
tail call ghccc void %36(i32* nonnull %0, i32* %1, i32* %14, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:37: ; preds = %13
%38 = getelementptr inbounds i32, i32* %0, i32 207
store i32 20, i32* %38, align 4
br label %39
; <label>:39: ; preds = %37, %8
%.0 = phi i32* [ %2, %8 ], [ %14, %37 ]
%40 = getelementptr inbounds i32, i32* %0, i32 -3
%41 = bitcast i32* %40 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%42 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %41, align 4
tail call ghccc void %42(i32* %0, i32* %1, i32* %.0, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define private ghccc void @ro_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S2Q4_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @ro_info to i32)), i32 4), i32 0, i32 196629 } {
%9 = getelementptr inbounds i32, i32* %1, i32 1
%10 = ptrtoint i32* %9 to i32
%11 = add i32 %10, -20
%12 = icmp ult i32 %11, %7
br i1 %12, label %27, label %13
; <label>:13: ; preds = %8
%14 = bitcast i32* %0 to i8*
%15 = inttoptr i32 %3 to i8*
%16 = tail call i8* @newCAF(i8* %14, i8* %15)
%17 = icmp eq i8* %16, null
br i1 %17, label %24, label %18
; <label>:18: ; preds = %13
%19 = ptrtoint i8* %16 to i32
%20 = getelementptr inbounds i32, i32* %1, i32 -2
store i32 ptrtoint (i32* @stg_bh_upd_frame_info to i32), i32* %20, align 4
%21 = getelementptr inbounds i32, i32* %1, i32 -1
store i32 %19, i32* %21, align 4
%22 = getelementptr inbounds i32, i32* %1, i32 -4
store i32 ptrtoint (i32* @stg_ap_p_info to i32), i32* %22, align 4
%23 = getelementptr inbounds i32, i32* %1, i32 -3
store i32 ptrtoint ({ i32, i32, i32, i32 }* @s2PA_closure to i32), i32* %23, align 4
tail call ghccc void @base_GHCziNum_fromInteger_info(i32* %0, i32* %22, i32* %2, i32 %3, i32 ptrtoint (i32* @base_GHCziWord_zdfNumWord64_closure to i32), i32 undef, i32 undef, i32 %7)
ret void
; <label>:24: ; preds = %13
%25 = inttoptr i32 %3 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%26 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %25, align 4
tail call ghccc void %26(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:27: ; preds = %8
%28 = getelementptr inbounds i32, i32* %0, i32 -3
%29 = bitcast i32* %28 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%30 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %29, align 4
tail call ghccc void %30(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define private ghccc void @s2PD_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S2Q4_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @s2PD_info to i32)), i32 0, i32 65557 } {
%9 = getelementptr inbounds i32, i32* %1, i32 1
%10 = ptrtoint i32* %9 to i32
%11 = add i32 %10, -12
%12 = icmp ult i32 %11, %7
br i1 %12, label %39, label %13
; <label>:13: ; preds = %8
%14 = getelementptr inbounds i32, i32* %2, i32 5
%15 = ptrtoint i32* %14 to i32
%16 = getelementptr inbounds i32, i32* %0, i32 201
%17 = load i32, i32* %16, align 4
%18 = icmp ult i32 %17, %15
br i1 %18, label %37, label %19
; <label>:19: ; preds = %13
%20 = bitcast i32* %0 to i8*
%21 = inttoptr i32 %3 to i8*
%22 = tail call i8* @newCAF(i8* %20, i8* %21)
%23 = icmp eq i8* %22, null
br i1 %23, label %34, label %24
; <label>:24: ; preds = %19
%25 = ptrtoint i8* %22 to i32
%26 = getelementptr inbounds i32, i32* %1, i32 -2
store i32 ptrtoint (i32* @stg_bh_upd_frame_info to i32), i32* %26, align 4
%27 = getelementptr inbounds i32, i32* %1, i32 -1
store i32 %25, i32* %27, align 4
%28 = getelementptr inbounds i32, i32* %2, i32 1
store i32 ptrtoint (i32* @ghczmprim_GHCziTypes_Izh_con_info to i32), i32* %28, align 4
%29 = getelementptr inbounds i32, i32* %2, i32 2
store i32 128, i32* %29, align 4
%30 = add i32 %15, -15
%31 = getelementptr inbounds i32, i32* %2, i32 3
store i32 ptrtoint (i32* @ghczmprim_GHCziTypes_ZC_con_info to i32), i32* %31, align 4
%32 = getelementptr inbounds i32, i32* %2, i32 4
store i32 %30, i32* %32, align 4
store i32 add (i32 ptrtoint (i32* @ghczmprim_GHCziTypes_ZMZN_closure to i32), i32 1), i32* %14, align 4
%33 = add i32 %15, -6
tail call ghccc void @stg_ap_pp_fast(i32* nonnull %0, i32* %26, i32* %14, i32 ptrtoint (i32* @integerzmsimple_GHCziIntegerziType_mkInteger_closure to i32), i32 add (i32 ptrtoint (i32* @ghczmprim_GHCziTypes_True_closure to i32), i32 2), i32 %33, i32 undef, i32 %7)
ret void
; <label>:34: ; preds = %19
%35 = inttoptr i32 %3 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%36 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %35, align 4
tail call ghccc void %36(i32* nonnull %0, i32* %1, i32* %14, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:37: ; preds = %13
%38 = getelementptr inbounds i32, i32* %0, i32 207
store i32 20, i32* %38, align 4
br label %39
; <label>:39: ; preds = %37, %8
%.0 = phi i32* [ %2, %8 ], [ %14, %37 ]
%40 = getelementptr inbounds i32, i32* %0, i32 -3
%41 = bitcast i32* %40 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%42 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %41, align 4
tail call ghccc void %42(i32* %0, i32* %1, i32* %.0, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define private ghccc void @rqy_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S2Q4_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @rqy_info to i32)), i32 4), i32 0, i32 327701 } {
%9 = getelementptr inbounds i32, i32* %1, i32 1
%10 = ptrtoint i32* %9 to i32
%11 = add i32 %10, -20
%12 = icmp ult i32 %11, %7
br i1 %12, label %27, label %13
; <label>:13: ; preds = %8
%14 = bitcast i32* %0 to i8*
%15 = inttoptr i32 %3 to i8*
%16 = tail call i8* @newCAF(i8* %14, i8* %15)
%17 = icmp eq i8* %16, null
br i1 %17, label %24, label %18
; <label>:18: ; preds = %13
%19 = ptrtoint i8* %16 to i32
%20 = getelementptr inbounds i32, i32* %1, i32 -2
store i32 ptrtoint (i32* @stg_bh_upd_frame_info to i32), i32* %20, align 4
%21 = getelementptr inbounds i32, i32* %1, i32 -1
store i32 %19, i32* %21, align 4
%22 = getelementptr inbounds i32, i32* %1, i32 -4
store i32 ptrtoint (i32* @stg_ap_p_info to i32), i32* %22, align 4
%23 = getelementptr inbounds i32, i32* %1, i32 -3
store i32 ptrtoint ({ i32, i32, i32, i32 }* @s2PD_closure to i32), i32* %23, align 4
tail call ghccc void @base_GHCziNum_fromInteger_info(i32* %0, i32* %22, i32* %2, i32 %3, i32 ptrtoint (i32* @base_GHCziWord_zdfNumWord64_closure to i32), i32 undef, i32 undef, i32 %7)
ret void
; <label>:24: ; preds = %13
%25 = inttoptr i32 %3 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%26 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %25, align 4
tail call ghccc void %26(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:27: ; preds = %8
%28 = getelementptr inbounds i32, i32* %0, i32 -3
%29 = bitcast i32* %28 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%30 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %29, align 4
tail call ghccc void %30(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define private ghccc void @s2PF_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S2Q4_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @s2PF_info to i32)), i32 16), i32 0, i32 65557 } {
%9 = getelementptr inbounds i32, i32* %1, i32 1
%10 = ptrtoint i32* %9 to i32
%11 = add i32 %10, -12
%12 = icmp ult i32 %11, %7
br i1 %12, label %25, label %13
; <label>:13: ; preds = %8
%14 = bitcast i32* %0 to i8*
%15 = inttoptr i32 %3 to i8*
%16 = tail call i8* @newCAF(i8* %14, i8* %15)
%17 = icmp eq i8* %16, null
br i1 %17, label %22, label %18
; <label>:18: ; preds = %13
%19 = ptrtoint i8* %16 to i32
%20 = getelementptr inbounds i32, i32* %1, i32 -2
store i32 ptrtoint (i32* @stg_bh_upd_frame_info to i32), i32* %20, align 4
%21 = getelementptr inbounds i32, i32* %1, i32 -1
store i32 %19, i32* %21, align 4
tail call ghccc void @stg_ap_0_fast(i32* %0, i32* %20, i32* %2, i32 ptrtoint ({ i32, i32, i32, i32 }* @ro_closure to i32), i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:22: ; preds = %13
%23 = inttoptr i32 %3 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%24 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %23, align 4
tail call ghccc void %24(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:25: ; preds = %8
%26 = getelementptr inbounds i32, i32* %0, i32 -3
%27 = bitcast i32* %26 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%28 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %27, align 4
tail call ghccc void %28(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define private ghccc void @s2PE_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S2Q4_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @s2PE_info to i32)), i32 20), i32 0, i32 65557 } {
%9 = getelementptr inbounds i32, i32* %1, i32 1
%10 = ptrtoint i32* %9 to i32
%11 = add i32 %10, -12
%12 = icmp ult i32 %11, %7
br i1 %12, label %25, label %13
; <label>:13: ; preds = %8
%14 = bitcast i32* %0 to i8*
%15 = inttoptr i32 %3 to i8*
%16 = tail call i8* @newCAF(i8* %14, i8* %15)
%17 = icmp eq i8* %16, null
br i1 %17, label %22, label %18
; <label>:18: ; preds = %13
%19 = ptrtoint i8* %16 to i32
%20 = getelementptr inbounds i32, i32* %1, i32 -2
store i32 ptrtoint (i32* @stg_bh_upd_frame_info to i32), i32* %20, align 4
%21 = getelementptr inbounds i32, i32* %1, i32 -1
store i32 %19, i32* %21, align 4
tail call ghccc void @stg_ap_0_fast(i32* %0, i32* %20, i32* %2, i32 ptrtoint ({ i32, i32, i32, i32 }* @rqy_closure to i32), i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:22: ; preds = %13
%23 = inttoptr i32 %3 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%24 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %23, align 4
tail call ghccc void %24(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:25: ; preds = %8
%26 = getelementptr inbounds i32, i32* %0, i32 -3
%27 = bitcast i32* %26 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%28 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %27, align 4
tail call ghccc void %28(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define private ghccc void @r2Pv_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S2Q4_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @r2Pv_info to i32)), i32 4), i32 0, i32 6357013 } {
%9 = getelementptr inbounds i32, i32* %1, i32 1
%10 = ptrtoint i32* %9 to i32
%11 = add i32 %10, -24
%12 = icmp ult i32 %11, %7
br i1 %12, label %28, label %13
; <label>:13: ; preds = %8
%14 = bitcast i32* %0 to i8*
%15 = inttoptr i32 %3 to i8*
%16 = tail call i8* @newCAF(i8* %14, i8* %15)
%17 = icmp eq i8* %16, null
br i1 %17, label %25, label %18
; <label>:18: ; preds = %13
%19 = ptrtoint i8* %16 to i32
%20 = getelementptr inbounds i32, i32* %1, i32 -2
store i32 ptrtoint (i32* @stg_bh_upd_frame_info to i32), i32* %20, align 4
%21 = getelementptr inbounds i32, i32* %1, i32 -1
store i32 %19, i32* %21, align 4
%22 = getelementptr inbounds i32, i32* %1, i32 -5
store i32 ptrtoint (i32* @stg_ap_pp_info to i32), i32* %22, align 4
%23 = getelementptr inbounds i32, i32* %1, i32 -4
store i32 ptrtoint ({ i32, i32, i32, i32 }* @s2PE_closure to i32), i32* %23, align 4
%24 = getelementptr inbounds i32, i32* %1, i32 -3
store i32 ptrtoint ({ i32, i32, i32, i32 }* @s2PF_closure to i32), i32* %24, align 4
tail call ghccc void @base_GHCziNum_zp_info(i32* %0, i32* %22, i32* %2, i32 %3, i32 ptrtoint (i32* @base_GHCziWord_zdfNumWord64_closure to i32), i32 undef, i32 undef, i32 %7)
ret void
; <label>:25: ; preds = %13
%26 = inttoptr i32 %3 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%27 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %26, align 4
tail call ghccc void %27(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:28: ; preds = %8
%29 = getelementptr inbounds i32, i32* %0, i32 -3
%30 = bitcast i32* %29 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%31 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %30, align 4
tail call ghccc void %31(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define private ghccc void @s2PJ_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S2Q4_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @s2PJ_info to i32)), i32 32), i32 0, i32 458773 } {
%9 = getelementptr inbounds i32, i32* %1, i32 1
%10 = ptrtoint i32* %9 to i32
%11 = add i32 %10, -12
%12 = icmp ult i32 %11, %7
br i1 %12, label %25, label %13
; <label>:13: ; preds = %8
%14 = bitcast i32* %0 to i8*
%15 = inttoptr i32 %3 to i8*
%16 = tail call i8* @newCAF(i8* %14, i8* %15)
%17 = icmp eq i8* %16, null
br i1 %17, label %22, label %18
; <label>:18: ; preds = %13
%19 = ptrtoint i8* %16 to i32
%20 = getelementptr inbounds i32, i32* %1, i32 -2
store i32 ptrtoint (i32* @stg_bh_upd_frame_info to i32), i32* %20, align 4
%21 = getelementptr inbounds i32, i32* %1, i32 -1
store i32 %19, i32* %21, align 4
tail call ghccc void @stg_ap_pp_fast(i32* %0, i32* %20, i32* %2, i32 ptrtoint (i32* @base_SystemziIO_print_closure to i32), i32 ptrtoint (i32* @base_GHCziWord_zdfShowWord64_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @r2Pv_closure to i32), i32 undef, i32 %7)
ret void
; <label>:22: ; preds = %13
%23 = inttoptr i32 %3 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%24 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %23, align 4
tail call ghccc void %24(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:25: ; preds = %8
%26 = getelementptr inbounds i32, i32* %0, i32 -3
%27 = bitcast i32* %26 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%28 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %27, align 4
tail call ghccc void %28(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define private ghccc void @s2PG_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S2Q4_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @s2PG_info to i32)), i32 4), i32 0, i32 1638415 } {
%9 = getelementptr inbounds i32, i32* %1, i32 1
%10 = ptrtoint i32* %9 to i32
%11 = add i32 %10, -24
%12 = icmp ult i32 %11, %7
br i1 %12, label %19, label %13
; <label>:13: ; preds = %8
%14 = getelementptr inbounds i32, i32* %1, i32 -2
store i32 ptrtoint (i32* @stg_upd_frame_info to i32), i32* %14, align 4
%15 = getelementptr inbounds i32, i32* %1, i32 -1
store i32 %3, i32* %15, align 4
%16 = getelementptr inbounds i32, i32* %1, i32 -5
store i32 ptrtoint (i32* @stg_ap_pp_info to i32), i32* %16, align 4
%17 = getelementptr inbounds i32, i32* %1, i32 -4
store i32 ptrtoint ({ i32, i32, i32, i32 }* @rqy_closure to i32), i32* %17, align 4
%18 = getelementptr inbounds i32, i32* %1, i32 -3
store i32 ptrtoint ({ i32, i32, i32, i32 }* @ro_closure to i32), i32* %18, align 4
tail call ghccc void @base_GHCziNum_zp_info(i32* %0, i32* %16, i32* %2, i32 %3, i32 ptrtoint (i32* @base_GHCziWord_zdfNumWord64_closure to i32), i32 undef, i32 undef, i32 %7)
ret void
; <label>:19: ; preds = %8
%20 = getelementptr inbounds i32, i32* %0, i32 -3
%21 = bitcast i32* %20 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%22 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %21, align 4
tail call ghccc void %22(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define private ghccc void @s2PH_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S2Q4_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @s2PH_info to i32)), i32 4), i32 0, i32 102301711 } {
%9 = getelementptr inbounds i32, i32* %1, i32 1
%10 = ptrtoint i32* %9 to i32
%11 = add i32 %10, -24
%12 = icmp ult i32 %11, %7
br i1 %12, label %29, label %13
; <label>:13: ; preds = %8
%14 = getelementptr inbounds i32, i32* %2, i32 2
%15 = ptrtoint i32* %14 to i32
%16 = getelementptr inbounds i32, i32* %0, i32 201
%17 = load i32, i32* %16, align 4
%18 = icmp ult i32 %17, %15
br i1 %18, label %27, label %19
; <label>:19: ; preds = %13
%20 = getelementptr inbounds i32, i32* %1, i32 -2
store i32 ptrtoint (i32* @stg_upd_frame_info to i32), i32* %20, align 4
%21 = getelementptr inbounds i32, i32* %1, i32 -1
store i32 %3, i32* %21, align 4
%22 = getelementptr inbounds i32, i32* %2, i32 1
%23 = ptrtoint i32* %22 to i32
store i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @s2PG_info to i32), i32* %22, align 4
%24 = getelementptr inbounds i32, i32* %1, i32 -5
store i32 ptrtoint (i32* @stg_ap_pp_info to i32), i32* %24, align 4
%25 = getelementptr inbounds i32, i32* %1, i32 -4
store i32 ptrtoint ({ i32, i32, i32, i32 }* @r2Pv_closure to i32), i32* %25, align 4
%26 = getelementptr inbounds i32, i32* %1, i32 -3
store i32 %23, i32* %26, align 4
tail call ghccc void @ghczmprim_GHCziClasses_zeze_info(i32* nonnull %0, i32* %24, i32* %14, i32 %3, i32 ptrtoint (i32* @base_GHCziWord_zdfEqWord64_closure to i32), i32 undef, i32 undef, i32 %7)
ret void
; <label>:27: ; preds = %13
%28 = getelementptr inbounds i32, i32* %0, i32 207
store i32 8, i32* %28, align 4
br label %29
; <label>:29: ; preds = %27, %8
%.0 = phi i32* [ %2, %8 ], [ %14, %27 ]
%30 = getelementptr inbounds i32, i32* %0, i32 -3
%31 = bitcast i32* %30 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%32 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %31, align 4
tail call ghccc void %32(i32* %0, i32* %1, i32* %.0, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define private ghccc void @s2PI_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S2Q4_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @s2PI_info to i32)), i32 4), i32 0, i32 244908053 } {
%9 = getelementptr inbounds i32, i32* %1, i32 1
%10 = ptrtoint i32* %9 to i32
%11 = add i32 %10, -12
%12 = icmp ult i32 %11, %7
br i1 %12, label %35, label %13
; <label>:13: ; preds = %8
%14 = getelementptr inbounds i32, i32* %2, i32 2
%15 = ptrtoint i32* %14 to i32
%16 = getelementptr inbounds i32, i32* %0, i32 201
%17 = load i32, i32* %16, align 4
%18 = icmp ult i32 %17, %15
br i1 %18, label %33, label %19
; <label>:19: ; preds = %13
%20 = bitcast i32* %0 to i8*
%21 = inttoptr i32 %3 to i8*
%22 = tail call i8* @newCAF(i8* %20, i8* %21)
%23 = icmp eq i8* %22, null
br i1 %23, label %30, label %24
; <label>:24: ; preds = %19
%25 = ptrtoint i8* %22 to i32
%26 = getelementptr inbounds i32, i32* %1, i32 -2
store i32 ptrtoint (i32* @stg_bh_upd_frame_info to i32), i32* %26, align 4
%27 = getelementptr inbounds i32, i32* %1, i32 -1
store i32 %25, i32* %27, align 4
%28 = getelementptr inbounds i32, i32* %2, i32 1
%29 = ptrtoint i32* %28 to i32
store i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @s2PH_info to i32), i32* %28, align 4
tail call ghccc void @stg_ap_pp_fast(i32* nonnull %0, i32* %26, i32* %14, i32 ptrtoint (i32* @base_SystemziIO_print_closure to i32), i32 ptrtoint (i32* @base_GHCziShow_zdfShowBool_closure to i32), i32 %29, i32 undef, i32 %7)
ret void
; <label>:30: ; preds = %19
%31 = inttoptr i32 %3 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%32 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %31, align 4
tail call ghccc void %32(i32* nonnull %0, i32* %1, i32* %14, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:33: ; preds = %13
%34 = getelementptr inbounds i32, i32* %0, i32 207
store i32 8, i32* %34, align 4
br label %35
; <label>:35: ; preds = %33, %8
%.0 = phi i32* [ %2, %8 ], [ %14, %33 ]
%36 = getelementptr inbounds i32, i32* %0, i32 -3
%37 = bitcast i32* %36 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%38 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %37, align 4
tail call ghccc void %38(i32* %0, i32* %1, i32* %.0, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define ghccc void @Main_main_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S2Q4_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main_info to i32)), i32 52), i32 0, i32 458773 } {
%9 = getelementptr inbounds i32, i32* %1, i32 1
%10 = ptrtoint i32* %9 to i32
%11 = add i32 %10, -24
%12 = icmp ult i32 %11, %7
br i1 %12, label %28, label %13
; <label>:13: ; preds = %8
%14 = bitcast i32* %0 to i8*
%15 = inttoptr i32 %3 to i8*
%16 = tail call i8* @newCAF(i8* %14, i8* %15)
%17 = icmp eq i8* %16, null
br i1 %17, label %25, label %18
; <label>:18: ; preds = %13
%19 = ptrtoint i8* %16 to i32
%20 = getelementptr inbounds i32, i32* %1, i32 -2
store i32 ptrtoint (i32* @stg_bh_upd_frame_info to i32), i32* %20, align 4
%21 = getelementptr inbounds i32, i32* %1, i32 -1
store i32 %19, i32* %21, align 4
%22 = getelementptr inbounds i32, i32* %1, i32 -5
store i32 ptrtoint (i32* @stg_ap_pp_info to i32), i32* %22, align 4
%23 = getelementptr inbounds i32, i32* %1, i32 -4
store i32 ptrtoint ({ i32, i32, i32, i32 }* @s2PI_closure to i32), i32* %23, align 4
%24 = getelementptr inbounds i32, i32* %1, i32 -3
store i32 ptrtoint ({ i32, i32, i32, i32 }* @s2PJ_closure to i32), i32* %24, align 4
tail call ghccc void @base_GHCziBase_zgzg_info(i32* %0, i32* %22, i32* %2, i32 %3, i32 ptrtoint (i32* @base_GHCziBase_zdfMonadIO_closure to i32), i32 undef, i32 undef, i32 %7)
ret void
; <label>:25: ; preds = %13
%26 = inttoptr i32 %3 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%27 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %26, align 4
tail call ghccc void %27(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:28: ; preds = %8
%29 = getelementptr inbounds i32, i32* %0, i32 -3
%30 = bitcast i32* %29 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%31 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %30, align 4
tail call ghccc void %31(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
define ghccc void @ZCMain_main_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S2Q4_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @ZCMain_main_info to i32)), i32 64), i32 0, i32 196629 } {
%9 = getelementptr inbounds i32, i32* %1, i32 1
%10 = ptrtoint i32* %9 to i32
%11 = add i32 %10, -12
%12 = icmp ult i32 %11, %7
br i1 %12, label %25, label %13
; <label>:13: ; preds = %8
%14 = bitcast i32* %0 to i8*
%15 = inttoptr i32 %3 to i8*
%16 = tail call i8* @newCAF(i8* %14, i8* %15)
%17 = icmp eq i8* %16, null
br i1 %17, label %22, label %18
; <label>:18: ; preds = %13
%19 = ptrtoint i8* %16 to i32
%20 = getelementptr inbounds i32, i32* %1, i32 -2
store i32 ptrtoint (i32* @stg_bh_upd_frame_info to i32), i32* %20, align 4
%21 = getelementptr inbounds i32, i32* %1, i32 -1
store i32 %19, i32* %21, align 4
tail call ghccc void @stg_ap_p_fast(i32* %0, i32* %20, i32* %2, i32 ptrtoint (i32* @base_GHCziTopHandler_runMainIO_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @Main_main_closure to i32), i32 undef, i32 undef, i32 %7)
ret void
; <label>:22: ; preds = %13
%23 = inttoptr i32 %3 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%24 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %23, align 4
tail call ghccc void %24(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
; <label>:25: ; preds = %8
%26 = getelementptr inbounds i32, i32* %0, i32 -3
%27 = bitcast i32* %26 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**
%28 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %27, align 4
tail call ghccc void %28(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7)
ret void
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment