Created
November 28, 2017 12:40
-
-
Save angerman/a5a97577705bd4acc45c9ac72d4470ae to your computer and use it in GitHub Desktop.
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 = "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" | |
@Main_f_closure = local_unnamed_addr global { i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_f_info to i32) } | |
@Main_zdtrModule4_bytes = global { [5 x i8] } { [5 x i8] c"main\00" } | |
@Main_zdtrModule3_closure = global { i32, i32 } { i32 ptrtoint (i32* @ghczmprim_GHCziTypes_TrNameS_con_info to i32), i32 ptrtoint ({ [5 x i8] }* @Main_zdtrModule4_bytes to i32) } | |
@Main_zdtrModule2_bytes = global { [5 x i8] } { [5 x i8] c"Main\00" } | |
@Main_zdtrModule1_closure = global { i32, i32 } { i32 ptrtoint (i32* @ghczmprim_GHCziTypes_TrNameS_con_info to i32), i32 ptrtoint ({ [5 x i8] }* @Main_zdtrModule2_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 }* @Main_zdtrModule3_closure to i32), i32 1), i32 add (i32 ptrtoint ({ i32, i32 }* @Main_zdtrModule1_closure to i32), i32 1), i32 3 } | |
@Main_y_closure = global { i32, i64 } { i32 ptrtoint (i32* @base_GHCziWord_W64zh_con_info to i32), i64 128 } | |
@Main_mainzuzz_closure = global { i32, i32, i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_mainzuzz_info to i32), i32 0, i32 0, i32 0 } | |
@Main_main2_closure = global { i32, i32, i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main2_info to i32), i32 0, i32 0, i32 0 } | |
@Main_main3_closure = global { i32, i32, i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main3_info to i32), i32 0, i32 0, i32 0 } | |
@Main_main1_closure = global { i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main1_info to i32), i32 0 } | |
@Main_main_closure = local_unnamed_addr global { i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main_info to i32), i32 0 } | |
@Main_main4_closure = global { i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main4_info to i32), i32 0 } | |
@ZCMain_main_closure = local_unnamed_addr global { i32, i32 } { i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @ZCMain_main_info to i32), i32 0 } | |
@S4A1_srt = private global { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } { i32 ptrtoint (i32* @base_GHCziShow_zdwzdcshowsPrec4_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @Main_mainzuzz_closure to i32), i32 ptrtoint (i32* @base_GHCziShow_zdfShowBool4_closure to i32), i32 ptrtoint (i32* @base_GHCziShow_zdfShowBool2_closure to i32), i32 ptrtoint (i32* @base_GHCziIOziHandleziFD_stdout_closure to i32), i32 ptrtoint (i32* @base_GHCziIOziHandleziText_hPutStr2_closure to i32), i32 ptrtoint ({ i32, i32 }* @Main_main1_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @Main_main2_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @Main_main3_closure to i32), i32 ptrtoint (i32* @base_GHCziTopHandler_runMainIO1_closure to i32), i32 ptrtoint ({ i32, i32 }* @Main_main4_closure to i32) } | |
@base_GHCziIOziHandleziFD_stdout_closure = external constant i32 | |
@base_GHCziIOziHandleziText_hPutStr2_closure = external constant i32 | |
@base_GHCziShow_zdfShowBool2_closure = external constant i32 | |
@base_GHCziShow_zdfShowBool4_closure = external constant i32 | |
@base_GHCziShow_zdwzdcshowsPrec4_closure = external constant i32 | |
@base_GHCziTopHandler_runMainIO1_closure = external constant i32 | |
@base_GHCziWord_W64zh_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 | |
@stg_bh_upd_frame_info = external constant i32 | |
declare ghccc void @base_GHCziIOziHandleziText_hPutStr2_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) local_unnamed_addr | |
declare ghccc void @base_GHCziShow_zdwzdcshowsPrec4_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) local_unnamed_addr | |
declare ghccc void @base_GHCziTopHandler_runMainIO1_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) local_unnamed_addr | |
declare i32 @hs_eqWord64(i64, i64) local_unnamed_addr | |
declare i64 @hs_int64ToWord64(i64) local_unnamed_addr | |
declare i64 @hs_plusInt64(i64, i64) local_unnamed_addr | |
declare i64 @hs_word64ToInt64(i64) local_unnamed_addr | |
declare ghccc void @integerzmsimple_GHCziIntegerziType_word64ToInteger_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_gc_pp(i32*, i32*, i32*, i32, i32, i32, i32, i32) local_unnamed_addr | |
declare ghccc void @stg_gc_unpt_r1(i32*, i32*, i32*, i32, i32, i32, i32, i32) local_unnamed_addr | |
define ghccc void @Main_f_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32 } { i32 65541, i32 0, i32 14 } { | |
tail call ghccc void @stg_ap_0_fast(i32* %0, i32* %1, i32* %2, i32 %4, i32 undef, i32 undef, i32 undef, i32 %7) | |
ret void | |
} | |
define ghccc void @Main_mainzuzz_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32 } { i32 0, i32 21 } { | |
%9 = getelementptr inbounds i32, i32* %1, i32 -3 | |
%10 = ptrtoint i32* %9 to i32 | |
%11 = icmp ult i32 %10, %7 | |
br i1 %11, label %24, label %12 | |
; <label>:12: ; preds = %8 | |
%13 = bitcast i32* %0 to i8* | |
%14 = inttoptr i32 %3 to i8* | |
%15 = tail call i8* @newCAF(i8* %13, i8* %14) | |
%16 = icmp eq i8* %15, null | |
br i1 %16, label %21, label %17 | |
; <label>:17: ; preds = %12 | |
%18 = ptrtoint i8* %15 to i32 | |
%19 = getelementptr inbounds i32, i32* %1, i32 -2 | |
store i32 ptrtoint (i32* @stg_bh_upd_frame_info to i32), i32* %19, align 4 | |
%20 = getelementptr inbounds i32, i32* %1, i32 -1 | |
store i32 %18, i32* %20, align 4 | |
store i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4zg_info to i32), i32* %9, align 4 | |
tail call ghccc void @stg_ap_0_fast(i32* %0, i32* %9, i32* %2, i32 add (i32 ptrtoint ({ i32, i64 }* @Main_y_closure to i32), i32 1), i32 undef, i32 undef, i32 undef, i32 %7) | |
ret void | |
; <label>:21: ; preds = %12 | |
%22 = inttoptr i32 %3 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** | |
%23 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %22, align 4 | |
tail call ghccc void %23(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7) | |
ret void | |
; <label>:24: ; preds = %8 | |
%25 = getelementptr inbounds i32, i32* %0, i32 -3 | |
%26 = bitcast i32* %25 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 | |
} | |
define private ghccc void @c4zg_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32 } { i32 0, i32 30 } { | |
%9 = getelementptr inbounds i32, i32* %2, i32 3 | |
%10 = ptrtoint i32* %9 to i32 | |
%11 = getelementptr inbounds i32, i32* %0, i32 201 | |
%12 = load i32, i32* %11, align 4 | |
%13 = icmp ult i32 %12, %10 | |
br i1 %13, label %29, label %14 | |
; <label>:14: ; preds = %8 | |
%15 = add i32 %3, 3 | |
%16 = inttoptr i32 %15 to i64* | |
%17 = load i64, i64* %16, align 8 | |
%18 = tail call i64 @hs_word64ToInt64(i64 %17) | |
%19 = tail call i64 @hs_word64ToInt64(i64 %17) | |
%20 = tail call i64 @hs_plusInt64(i64 %19, i64 %18) | |
%21 = tail call i64 @hs_int64ToWord64(i64 %20) | |
%22 = getelementptr inbounds i32, i32* %2, i32 1 | |
store i32 ptrtoint (i32* @base_GHCziWord_W64zh_con_info to i32), i32* %22, align 4 | |
%23 = getelementptr inbounds i32, i32* %2, i32 2 | |
%24 = bitcast i32* %23 to i64* | |
store i64 %21, i64* %24, align 8 | |
%25 = add i32 %10, -7 | |
%26 = getelementptr inbounds i32, i32* %1, i32 1 | |
%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* nonnull %0, i32* %26, i32* %9, i32 %25, i32 undef, i32 undef, i32 undef, i32 %7) | |
ret void | |
; <label>:29: ; preds = %8 | |
%30 = getelementptr inbounds i32, i32* %0, i32 207 | |
store i32 12, i32* %30, align 4 | |
tail call ghccc void @stg_gc_unpt_r1(i32* nonnull %0, i32* %1, i32* %9, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7) | |
ret void | |
} | |
define ghccc void @Main_main2_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 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main2_info to i32)), i32 0, i32 196629 } { | |
%9 = getelementptr inbounds i32, i32* %1, i32 -5 | |
%10 = ptrtoint i32* %9 to i32 | |
%11 = icmp ult i32 %10, %7 | |
br i1 %11, label %26, label %12 | |
; <label>:12: ; preds = %8 | |
%13 = bitcast i32* %0 to i8* | |
%14 = inttoptr i32 %3 to i8* | |
%15 = tail call i8* @newCAF(i8* %13, i8* %14) | |
%16 = icmp eq i8* %15, null | |
br i1 %16, label %23, label %17 | |
; <label>:17: ; preds = %12 | |
%18 = ptrtoint i8* %15 to i32 | |
%19 = getelementptr inbounds i32, i32* %1, i32 -2 | |
store i32 ptrtoint (i32* @stg_bh_upd_frame_info to i32), i32* %19, align 4 | |
%20 = getelementptr inbounds i32, i32* %1, i32 -1 | |
store i32 %18, i32* %20, align 4 | |
%21 = getelementptr inbounds i32, i32* %1, i32 -3 | |
store i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4zG_info to i32), i32* %21, align 4 | |
%22 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** bitcast ({ i32, i32, i32, i32 }* @Main_mainzuzz_closure to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**), align 4 | |
tail call ghccc void %22(i32* %0, i32* %21, i32* %2, i32 ptrtoint ({ i32, i32, i32, i32 }* @Main_mainzuzz_closure to i32), i32 undef, i32 undef, i32 undef, i32 %7) | |
ret void | |
; <label>:23: ; preds = %12 | |
%24 = inttoptr i32 %3 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** | |
%25 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %24, align 4 | |
tail call ghccc void %25(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7) | |
ret void | |
; <label>:26: ; preds = %8 | |
%27 = getelementptr inbounds i32, i32* %0, i32 -3 | |
%28 = bitcast i32* %27 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** | |
%29 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %28, align 4 | |
tail call ghccc void %29(i32* %0, i32* %1, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7) | |
ret void | |
} | |
define private ghccc void @c4zG_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 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4zG_info to i32)), i32 0, i32 65566 } { | |
store i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4zM_info to i32), i32* %1, align 4 | |
%9 = add i32 %3, 3 | |
%10 = inttoptr i32 %9 to i64* | |
%11 = load i64, i64* %10, align 8 | |
%12 = getelementptr inbounds i32, i32* %1, i32 -2 | |
%13 = bitcast i32* %12 to i64* | |
store i64 %11, i64* %13, align 8 | |
tail call ghccc void @integerzmsimple_GHCziIntegerziType_word64ToInteger_info(i32* %0, i32* %12, i32* %2, i32 %3, i32 undef, i32 undef, i32 undef, i32 %7) | |
ret void | |
} | |
define private ghccc void @c4zM_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 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4zM_info to i32)), i32 0, i32 65566 } { | |
store i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4zQ_info to i32), i32* %1, align 4 | |
tail call ghccc void @base_GHCziShow_zdwzdcshowsPrec4_info(i32* %0, i32* %1, i32* %2, i32 %3, i32 0, i32 %3, i32 add (i32 ptrtoint (i32* @ghczmprim_GHCziTypes_ZMZN_closure to i32), i32 1), i32 %7) | |
ret void | |
} | |
define private ghccc void @c4zQ_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32 } { i32 0, i32 30 } { | |
%9 = getelementptr inbounds i32, i32* %2, i32 3 | |
%10 = ptrtoint i32* %9 to i32 | |
%11 = getelementptr inbounds i32, i32* %0, i32 201 | |
%12 = load i32, i32* %11, align 4 | |
%13 = icmp ult i32 %12, %10 | |
br i1 %13, label %21, label %14 | |
; <label>:14: ; preds = %8 | |
%15 = getelementptr inbounds i32, i32* %2, i32 1 | |
store i32 ptrtoint (i32* @ghczmprim_GHCziTypes_ZC_con_info to i32), i32* %15, align 4 | |
%16 = getelementptr inbounds i32, i32* %2, i32 2 | |
store i32 %3, i32* %16, align 4 | |
store i32 %4, i32* %9, align 4 | |
%17 = add i32 %10, -6 | |
%18 = getelementptr inbounds i32, i32* %1, i32 1 | |
%19 = bitcast i32* %18 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** | |
%20 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %19, align 4 | |
tail call ghccc void %20(i32* nonnull %0, i32* %18, i32* %9, i32 %17, i32 undef, i32 undef, i32 undef, i32 %7) | |
ret void | |
; <label>:21: ; preds = %8 | |
%22 = getelementptr inbounds i32, i32* %0, i32 207 | |
store i32 12, i32* %22, align 4 | |
tail call ghccc void @stg_gc_pp(i32* nonnull %0, i32* %1, i32* %9, i32 %3, i32 %4, i32 undef, i32 undef, i32 %7) | |
ret void | |
} | |
define ghccc void @Main_main3_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 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main3_info to i32)), i32 4), i32 0, i32 458773 } { | |
%9 = getelementptr inbounds i32, i32* %1, i32 -3 | |
%10 = ptrtoint i32* %9 to i32 | |
%11 = icmp ult i32 %10, %7 | |
br i1 %11, label %25, label %12 | |
; <label>:12: ; preds = %8 | |
%13 = bitcast i32* %0 to i8* | |
%14 = inttoptr i32 %3 to i8* | |
%15 = tail call i8* @newCAF(i8* %13, i8* %14) | |
%16 = icmp eq i8* %15, null | |
br i1 %16, label %22, label %17 | |
; <label>:17: ; preds = %12 | |
%18 = ptrtoint i8* %15 to i32 | |
%19 = getelementptr inbounds i32, i32* %1, i32 -2 | |
store i32 ptrtoint (i32* @stg_bh_upd_frame_info to i32), i32* %19, align 4 | |
%20 = getelementptr inbounds i32, i32* %1, i32 -1 | |
store i32 %18, i32* %20, align 4 | |
store i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4A8_info to i32), i32* %9, align 4 | |
%21 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** bitcast ({ i32, i32, i32, i32 }* @Main_mainzuzz_closure to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**), align 4 | |
tail call ghccc void %21(i32* %0, i32* %9, i32* %2, i32 ptrtoint ({ i32, i32, i32, i32 }* @Main_mainzuzz_closure to i32), i32 undef, i32 undef, i32 undef, i32 %7) | |
ret void | |
; <label>:22: ; preds = %12 | |
%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 @c4A8_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 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4A8_info to i32)), i32 8), i32 0, i32 196638 } { | |
%9 = add i32 %3, 3 | |
%10 = inttoptr i32 %9 to i64* | |
%11 = load i64, i64* %10, align 8 | |
%12 = tail call i64 @hs_word64ToInt64(i64 128) | |
%13 = tail call i64 @hs_word64ToInt64(i64 128) | |
%14 = tail call i64 @hs_plusInt64(i64 %13, i64 %12) | |
%15 = tail call i64 @hs_int64ToWord64(i64 %14) | |
%16 = tail call i32 @hs_eqWord64(i64 %11, i64 %15) | |
%cond = icmp eq i32 %16, 1 | |
%17 = getelementptr inbounds i32, i32* %1, i32 1 | |
br i1 %cond, label %20, label %18 | |
; <label>:18: ; preds = %8 | |
%19 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** bitcast (i32* @base_GHCziShow_zdfShowBool4_closure to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**), align 4 | |
tail call ghccc void %19(i32* %0, i32* %17, i32* %2, i32 ptrtoint (i32* @base_GHCziShow_zdfShowBool4_closure to i32), i32 undef, i32 undef, i32 undef, i32 %7) | |
ret void | |
; <label>:20: ; preds = %8 | |
%21 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** bitcast (i32* @base_GHCziShow_zdfShowBool2_closure to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)**), align 4 | |
tail call ghccc void %21(i32* %0, i32* %17, i32* %2, i32 ptrtoint (i32* @base_GHCziShow_zdfShowBool2_closure to i32), i32 undef, i32 undef, i32 undef, i32 %7) | |
ret void | |
} | |
define ghccc void @Main_main1_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main1_info to i32)), i32 16), i32 65539, i32 0, i32 2031630 } { | |
%9 = getelementptr inbounds i32, i32* %1, i32 -1 | |
%10 = ptrtoint i32* %9 to i32 | |
%11 = icmp ult i32 %10, %7 | |
br i1 %11, label %13, label %12 | |
; <label>:12: ; preds = %8 | |
store i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4AC_info to i32), i32* %9, align 4 | |
tail call ghccc void @base_GHCziIOziHandleziText_hPutStr2_info(i32* %0, i32* %9, i32* %2, i32 %3, i32 ptrtoint (i32* @base_GHCziIOziHandleziFD_stdout_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @Main_main3_closure to i32), i32 add (i32 ptrtoint (i32* @ghczmprim_GHCziTypes_True_closure to i32), i32 2), i32 %7) | |
ret void | |
; <label>:13: ; preds = %8 | |
%14 = getelementptr inbounds i32, i32* %0, i32 -2 | |
%15 = bitcast i32* %14 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** | |
%16 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %15, align 4 | |
tail call ghccc void %16(i32* %0, i32* %1, i32* %2, i32 ptrtoint ({ i32, i32 }* @Main_main1_closure to i32), i32 undef, i32 undef, i32 undef, i32 %7) | |
ret void | |
} | |
define private ghccc void @c4AC_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 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4AC_info to i32)), i32 16), i32 0, i32 720926 } { | |
%9 = getelementptr inbounds i32, i32* %1, i32 1 | |
tail call ghccc void @base_GHCziIOziHandleziText_hPutStr2_info(i32* %0, i32* %9, i32* %2, i32 %3, i32 ptrtoint (i32* @base_GHCziIOziHandleziFD_stdout_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @Main_main2_closure to i32), i32 add (i32 ptrtoint (i32* @ghczmprim_GHCziTypes_True_closure to i32), i32 2), i32 %7) | |
ret void | |
} | |
define ghccc void @Main_main_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main_info to i32)), i32 24), i32 65539, i32 0, i32 65550 } { | |
%9 = getelementptr inbounds i32, i32* %1, i32 -1 | |
%10 = ptrtoint i32* %9 to i32 | |
%11 = icmp ult i32 %10, %7 | |
br i1 %11, label %13, label %12 | |
; <label>:12: ; preds = %8 | |
store i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @c4AC_info to i32), i32* %9, align 4 | |
tail call ghccc void @base_GHCziIOziHandleziText_hPutStr2_info(i32* %0, i32* %9, i32* %2, i32 %3, i32 ptrtoint (i32* @base_GHCziIOziHandleziFD_stdout_closure to i32), i32 ptrtoint ({ i32, i32, i32, i32 }* @Main_main3_closure to i32), i32 add (i32 ptrtoint (i32* @ghczmprim_GHCziTypes_True_closure to i32), i32 2), i32 %7) | |
br label %Main_main1_info.exit | |
; <label>:13: ; preds = %8 | |
%14 = getelementptr inbounds i32, i32* %0, i32 -2 | |
%15 = bitcast i32* %14 to void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** | |
%16 = load void (i32*, i32*, i32*, i32, i32, i32, i32, i32)*, void (i32*, i32*, i32*, i32, i32, i32, i32, i32)** %15, align 4 | |
tail call ghccc void %16(i32* %0, i32* %1, i32* %2, i32 ptrtoint ({ i32, i32 }* @Main_main1_closure to i32), i32 undef, i32 undef, i32 undef, i32 %7) | |
br label %Main_main1_info.exit | |
Main_main1_info.exit: ; preds = %13, %12 | |
ret void | |
} | |
define ghccc void @Main_main4_info(i32*, i32*, i32*, i32, i32, i32, i32, i32) prefix { i32, i32, i32, i32 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @Main_main4_info to i32)), i32 24), i32 65539, i32 0, i32 589838 } { | |
tail call ghccc void @base_GHCziTopHandler_runMainIO1_info(i32* %0, i32* %1, i32* %2, i32 %3, i32 add (i32 ptrtoint ({ i32, i32 }* @Main_main1_closure to i32), i32 1), 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 } { i32 add (i32 sub (i32 ptrtoint ({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }* @S4A1_srt to i32), i32 ptrtoint (void (i32*, i32*, i32*, i32, i32, i32, i32, i32)* @ZCMain_main_info to i32)), i32 40), i32 65539, i32 0, i32 65550 } { | |
tail call ghccc void @base_GHCziTopHandler_runMainIO1_info(i32* %0, i32* %1, i32* %2, i32 %3, i32 add (i32 ptrtoint ({ i32, i32 }* @Main_main1_closure to i32), i32 1), 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