Advertisement
reversyn

Untitled

Mar 20th, 2014
3,251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
LLVM 37.65 KB | None | 0 0
  1. target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
  2. target triple = "x86_64-linux-gnu"
  3.  
  4. declare  ccc i8* @memcpy(i8*, i8*, i64)
  5.  
  6. declare  ccc i8* @memmove(i8*, i8*, i64)
  7.  
  8. declare  ccc i8* @memset(i8*, i64, i64)
  9.  
  10. declare  ccc i64 @newSpark(i8*, i8*)
  11.  
  12. !0 = metadata !{metadata !"top"}
  13. !1 = metadata !{metadata !"stack",metadata !0}
  14. !2 = metadata !{metadata !"heap",metadata !0}
  15. !3 = metadata !{metadata !"rx",metadata !2}
  16. !4 = metadata !{metadata !"base",metadata !0}
  17. !5 = metadata !{metadata !"other",metadata !0}
  18.  
  19.  
  20. %__stginit_Main_struct = type <{}>
  21. @__stginit_Main =  global %__stginit_Main_struct<{}>
  22.                  
  23. %ssd_srt_struct = type <{i64, i64, i64}>
  24. @ssd_srt = internal constant %ssd_srt_struct<{i64 ptrtoint ([0 x i64]* @base_DataziList_product_closure to i64), i64 ptrtoint ([0 x i64]* @base_GHCziNum_zdfNumInt_closure to i64), i64 ptrtoint ([0 x i64]* @base_GHCziEnum_zdfEnumInt_closure to i64)}>
  25.            
  26. @base_DataziList_product_closure = external global [0 x i64]
  27.                                    
  28. @base_GHCziNum_zdfNumInt_closure = external global [0 x i64]
  29.                                    
  30. @base_GHCziEnum_zdfEnumInt_closure = external global [0 x i64]
  31.                                      
  32. %ssd_closure_struct = type <{i64, i64, i64, i64}>
  33. @ssd_closure = internal global %ssd_closure_struct<{i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @ssd_info to i64), i64 0, i64 0, i64 0}>
  34.                
  35. %sse_srt_struct = type <{i64, i64}>
  36. @sse_srt = internal constant %sse_srt_struct<{i64 ptrtoint ([0 x i64]* @base_SystemziIO_print_closure to i64), i64 ptrtoint ([0 x i64]* @base_GHCziShow_zdfShowInt_closure to i64)}>
  37.            
  38. @base_SystemziIO_print_closure = external global [0 x i64]
  39.                                  
  40. @base_GHCziShow_zdfShowInt_closure = external global [0 x i64]
  41.                                      
  42. %sse_closure_struct = type <{i64, i64, i64, i64}>
  43. @sse_closure = internal global %sse_closure_struct<{i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @sse_info to i64), i64 0, i64 0, i64 0}>
  44.                
  45. %Main_main_srt_struct = type <{i64, i64, i64}>
  46. @Main_main_srt = internal constant %Main_main_srt_struct<{i64 ptrtoint ([0 x i64]* @base_GHCziBase_zd_closure to i64), i64 ptrtoint (%ssd_closure_struct* @ssd_closure to i64), i64 ptrtoint (%sse_closure_struct* @sse_closure to i64)}>
  47.                  
  48. @base_GHCziBase_zd_closure = external global [0 x i64]
  49.                              
  50. %Main_main_closure_struct = type <{i64, i64, i64, i64}>
  51. @Main_main_closure =  global %Main_main_closure_struct<{i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @Main_main_info to i64), i64 0, i64 0, i64 0}>
  52.                      
  53. %ZCMain_main_srt_struct = type <{i64, i64}>
  54. @ZCMain_main_srt = internal constant %ZCMain_main_srt_struct<{i64 ptrtoint ([0 x i64]* @base_GHCziTopHandler_runMainIO_closure to i64), i64 ptrtoint (%Main_main_closure_struct* @Main_main_closure to i64)}>
  55.                    
  56.                                          
  57. %ZCMain_main_closure_struct = type <{i64, i64, i64, i64}>
  58. @ZCMain_main_closure =  global %ZCMain_main_closure_struct<{i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @ZCMain_main_info to i64), i64 0, i64 0, i64 0}>
  59.                        
  60.  
  61. %ssb_info_struct = type <{i64, i64, i64}>
  62. @ssb_info_itable = internal constant %ssb_info_struct<{i64 add (i64 sub (i64 ptrtoint (%ssd_srt_struct* @ssd_srt to i64),i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @ssb_info to i64)),i64 16), i64 0, i64 4294967312}>, section "X98A__STRIP,__me0", align 8
  63.                    
  64. define internal cc 10 void @ssb_info(i64* noalias nocapture %Base_Arg, i64* noalias nocapture %Sp_Arg, i64* noalias nocapture %Hp_Arg, i64 %R1_Arg, i64 %R2_Arg, i64 %R3_Arg, i64 %R4_Arg, i64 %R5_Arg, i64 %R6_Arg, i64 %SpLim_Arg, float %F1_Arg, float %F2_Arg, float %F3_Arg, float %F4_Arg, double %D1_Arg, double %D2_Arg) align 8 nounwind section "X98A__STRIP,__me1"
  65. {
  66. ctc:
  67.   %Base_Var = alloca i64*, i32 1
  68.   store i64* %Base_Arg, i64** %Base_Var
  69.   %Sp_Var = alloca i64*, i32 1
  70.   store i64* %Sp_Arg, i64** %Sp_Var
  71.   %Hp_Var = alloca i64*, i32 1
  72.   store i64* %Hp_Arg, i64** %Hp_Var
  73.   %R1_Var = alloca i64, i32 1
  74.   store i64 %R1_Arg, i64* %R1_Var
  75.   %R2_Var = alloca i64, i32 1
  76.   store i64 %R2_Arg, i64* %R2_Var
  77.   %R3_Var = alloca i64, i32 1
  78.   store i64 %R3_Arg, i64* %R3_Var
  79.   %R4_Var = alloca i64, i32 1
  80.   store i64 %R4_Arg, i64* %R4_Var
  81.   %R5_Var = alloca i64, i32 1
  82.   store i64 %R5_Arg, i64* %R5_Var
  83.   %R6_Var = alloca i64, i32 1
  84.   store i64 %R6_Arg, i64* %R6_Var
  85.   %SpLim_Var = alloca i64, i32 1
  86.   store i64 %SpLim_Arg, i64* %SpLim_Var
  87.   %F1_Var = alloca float, i32 1
  88.   store float %F1_Arg, float* %F1_Var
  89.   %F2_Var = alloca float, i32 1
  90.   store float %F2_Arg, float* %F2_Var
  91.   %F3_Var = alloca float, i32 1
  92.   store float %F3_Arg, float* %F3_Var
  93.   %F4_Var = alloca float, i32 1
  94.   store float %F4_Arg, float* %F4_Var
  95.   %D1_Var = alloca double, i32 1
  96.   store double %D1_Arg, double* %D1_Var
  97.   %D2_Var = alloca double, i32 1
  98.   store double %D2_Arg, double* %D2_Var
  99.   %lntd = load i64** %Sp_Var
  100.   %lnte = getelementptr inbounds i64* %lntd, i32 -5
  101.   %lntf = ptrtoint i64* %lnte to i64
  102.   %lntg = load i64* %SpLim_Var
  103.   %lnth = icmp ult i64 %lntf, %lntg
  104.   br i1 %lnth, label %ctj, label %ntk
  105.  
  106. ntk:
  107.   %lntl = ptrtoint [0 x i64]* @stg_upd_frame_info to i64
  108.   %lntm = load i64** %Sp_Var
  109.   %lntn = getelementptr inbounds i64* %lntm, i32 -2
  110.   store i64 %lntl, i64* %lntn, !tbaa !1
  111.   %lnto = load i64* %R1_Var
  112.   %lntp = load i64** %Sp_Var
  113.   %lntq = getelementptr inbounds i64* %lntp, i32 -1
  114.   store i64 %lnto, i64* %lntq, !tbaa !1
  115.   %lntr = ptrtoint [0 x i64]* @stg_INTLIKE_closure to i64
  116.   %lnts = add i64 %lntr, 305
  117.   %lntt = load i64** %Sp_Var
  118.   %lntu = getelementptr inbounds i64* %lntt, i32 -3
  119.   store i64 %lnts, i64* %lntu, !tbaa !1
  120.   %lntv = ptrtoint [0 x i64]* @stg_INTLIKE_closure to i64
  121.   %lntw = add i64 %lntv, 273
  122.   %lntx = load i64** %Sp_Var
  123.   %lnty = getelementptr inbounds i64* %lntx, i32 -4
  124.   store i64 %lntw, i64* %lnty, !tbaa !1
  125.   %lntz = ptrtoint [0 x i64]* @stg_ap_pp_info to i64
  126.   %lntA = load i64** %Sp_Var
  127.   %lntB = getelementptr inbounds i64* %lntA, i32 -5
  128.   store i64 %lntz, i64* %lntB, !tbaa !1
  129.   %lntC = ptrtoint [0 x i64]* @base_GHCziEnum_zdfEnumInt_closure to i64
  130.   store i64 %lntC, i64* %R2_Var
  131.   %lntD = load i64** %Sp_Var
  132.   %lntE = getelementptr inbounds i64* %lntD, i32 -5
  133.   %lntF = ptrtoint i64* %lntE to i64
  134.   %lntG = inttoptr i64 %lntF to i64*
  135.   store i64* %lntG, i64** %Sp_Var
  136.   %lntH = load i64** %Base_Var
  137.   %lntI = load i64** %Sp_Var
  138.   %lntJ = load i64** %Hp_Var
  139.   %lntK = load i64* %R1_Var
  140.   %lntL = load i64* %R2_Var
  141.   %lntM = load i64* %SpLim_Var
  142.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @base_GHCziEnum_enumFromTo_info( i64* %lntH, i64* %lntI, i64* %lntJ, i64 %lntK, i64 %lntL, i64 undef, i64 undef, i64 undef, i64 undef, i64 %lntM, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  143.   ret void
  144.  
  145. ctj:
  146.   %lntN = load i64** %Base_Var
  147.   %lntO = getelementptr inbounds i64* %lntN, i32 -2
  148.   %lntP = bitcast i64* %lntO to i64*
  149.   %lntQ = load i64* %lntP, !tbaa !4
  150.   %lntR = inttoptr i64 %lntQ to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
  151.   %lntS = load i64** %Base_Var
  152.   %lntT = load i64** %Sp_Var
  153.   %lntU = load i64** %Hp_Var
  154.   %lntV = load i64* %R1_Var
  155.   %lntW = load i64* %SpLim_Var
  156.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %lntR( i64* %lntS, i64* %lntT, i64* %lntU, i64 %lntV, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %lntW, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  157.   ret void
  158.  
  159. }
  160.  
  161.  
  162. @stg_upd_frame_info = external global [0 x i64]
  163.                      
  164. @stg_INTLIKE_closure = external global [0 x i64]
  165.                        
  166. @stg_ap_pp_info = external global [0 x i64]
  167.                  
  168. declare  cc 10 void @base_GHCziEnum_enumFromTo_info(i64* noalias nocapture, i64* noalias nocapture, i64* noalias nocapture, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double) align 8
  169.  
  170.  
  171. %ssd_info_struct = type <{i64, i64, i64}>
  172. @ssd_info_itable = internal constant %ssd_info_struct<{i64 add (i64 sub (i64 ptrtoint (%ssd_srt_struct* @ssd_srt to i64),i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @ssd_info to i64)),i64 0), i64 0, i64 30064771094}>, section "X98A__STRIP,__me0", align 8
  173.                    
  174. define internal cc 10 void @ssd_info(i64* noalias nocapture %Base_Arg, i64* noalias nocapture %Sp_Arg, i64* noalias nocapture %Hp_Arg, i64 %R1_Arg, i64 %R2_Arg, i64 %R3_Arg, i64 %R4_Arg, i64 %R5_Arg, i64 %R6_Arg, i64 %SpLim_Arg, float %F1_Arg, float %F2_Arg, float %F3_Arg, float %F4_Arg, double %D1_Arg, double %D2_Arg) align 8 nounwind section "X98A__STRIP,__me1"
  175. {
  176. cvq:
  177.   %Base_Var = alloca i64*, i32 1
  178.   store i64* %Base_Arg, i64** %Base_Var
  179.   %Sp_Var = alloca i64*, i32 1
  180.   store i64* %Sp_Arg, i64** %Sp_Var
  181.   %Hp_Var = alloca i64*, i32 1
  182.   store i64* %Hp_Arg, i64** %Hp_Var
  183.   %R1_Var = alloca i64, i32 1
  184.   store i64 %R1_Arg, i64* %R1_Var
  185.   %R2_Var = alloca i64, i32 1
  186.   store i64 %R2_Arg, i64* %R2_Var
  187.   %R3_Var = alloca i64, i32 1
  188.   store i64 %R3_Arg, i64* %R3_Var
  189.   %R4_Var = alloca i64, i32 1
  190.   store i64 %R4_Arg, i64* %R4_Var
  191.   %R5_Var = alloca i64, i32 1
  192.   store i64 %R5_Arg, i64* %R5_Var
  193.   %R6_Var = alloca i64, i32 1
  194.   store i64 %R6_Arg, i64* %R6_Var
  195.   %SpLim_Var = alloca i64, i32 1
  196.   store i64 %SpLim_Arg, i64* %SpLim_Var
  197.   %F1_Var = alloca float, i32 1
  198.   store float %F1_Arg, float* %F1_Var
  199.   %F2_Var = alloca float, i32 1
  200.   store float %F2_Arg, float* %F2_Var
  201.   %F3_Var = alloca float, i32 1
  202.   store float %F3_Arg, float* %F3_Var
  203.   %F4_Var = alloca float, i32 1
  204.   store float %F4_Arg, float* %F4_Var
  205.   %D1_Var = alloca double, i32 1
  206.   store double %D1_Arg, double* %D1_Var
  207.   %D2_Var = alloca double, i32 1
  208.   store double %D2_Arg, double* %D2_Var
  209.   %lcux = alloca i64, i32 1
  210.   %lnvr = load i64** %Sp_Var
  211.   %lnvs = getelementptr inbounds i64* %lnvr, i32 -2
  212.   %lnvt = ptrtoint i64* %lnvs to i64
  213.   %lnvu = load i64* %SpLim_Var
  214.   %lnvv = icmp ult i64 %lnvt, %lnvu
  215.   br i1 %lnvv, label %cvx, label %nvy
  216.  
  217. nvy:
  218.   %lnvz = load i64** %Hp_Var
  219.   %lnvA = getelementptr inbounds i64* %lnvz, i32 4
  220.   %lnvB = ptrtoint i64* %lnvA to i64
  221.   %lnvC = inttoptr i64 %lnvB to i64*
  222.   store i64* %lnvC, i64** %Hp_Var
  223.   %lnvD = load i64** %Hp_Var
  224.   %lnvE = ptrtoint i64* %lnvD to i64
  225.   %lnvF = load i64** %Base_Var
  226.   %lnvG = getelementptr inbounds i64* %lnvF, i32 18
  227.   %lnvH = bitcast i64* %lnvG to i64*
  228.   %lnvI = load i64* %lnvH, !tbaa !4
  229.   %lnvJ = icmp ugt i64 %lnvE, %lnvI
  230.   br i1 %lnvJ, label %cvL, label %nvM
  231.  
  232. nvM:
  233.   %lnvN = ptrtoint [0 x i64]* @stg_CAF_BLACKHOLE_info to i64
  234.   %lnvO = load i64** %Hp_Var
  235.   %lnvP = getelementptr inbounds i64* %lnvO, i32 -3
  236.   store i64 %lnvN, i64* %lnvP, !tbaa !2
  237.   %lnvQ = load i64** %Base_Var
  238.   %lnvR = getelementptr inbounds i64* %lnvQ, i32 20
  239.   %lnvS = bitcast i64* %lnvR to i64*
  240.   %lnvT = load i64* %lnvS, !tbaa !4
  241.   %lnvU = load i64** %Hp_Var
  242.   %lnvV = getelementptr inbounds i64* %lnvU, i32 -2
  243.   store i64 %lnvT, i64* %lnvV, !tbaa !2
  244.   %lnvW = load i64** %Base_Var
  245.   %lnvX = ptrtoint i64* %lnvW to i64
  246.   %lnvY = inttoptr i64 %lnvX to i8*
  247.   %lnvZ = load i64* %R1_Var
  248.   %lnw0 = inttoptr i64 %lnvZ to i8*
  249.   %lnw1 = load i64** %Hp_Var
  250.   %lnw2 = getelementptr inbounds i64* %lnw1, i32 -3
  251.   %lnw3 = ptrtoint i64* %lnw2 to i64
  252.   %lnw4 = inttoptr i64 %lnw3 to i8*
  253.   store i64 undef, i64* %R3_Var
  254.   store i64 undef, i64* %R4_Var
  255.   store i64 undef, i64* %R5_Var
  256.   store i64 undef, i64* %R6_Var
  257.   store float undef, float* %F1_Var
  258.   store float undef, float* %F2_Var
  259.   store float undef, float* %F3_Var
  260.   store float undef, float* %F4_Var
  261.   store double undef, double* %D1_Var
  262.   store double undef, double* %D2_Var
  263.   %lnw5 = call ccc i64 (i8*,i8*,i8*)* @newCAF( i8* %lnvY, i8* %lnw0, i8* %lnw4 ) nounwind
  264.   store i64 %lnw5, i64* %lcux
  265.   %lnw6 = load i64* %lcux
  266.   %lnw7 = icmp eq i64 %lnw6, 0
  267.   br i1 %lnw7, label %cw8, label %nw9
  268.  
  269. nw9:
  270.   br label %cwa
  271.  
  272. cvx:
  273.   %lnwb = load i64** %Base_Var
  274.   %lnwc = getelementptr inbounds i64* %lnwb, i32 -2
  275.   %lnwd = bitcast i64* %lnwc to i64*
  276.   %lnwe = load i64* %lnwd, !tbaa !4
  277.   %lnwf = inttoptr i64 %lnwe to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
  278.   %lnwg = load i64** %Base_Var
  279.   %lnwh = load i64** %Sp_Var
  280.   %lnwi = load i64** %Hp_Var
  281.   %lnwj = load i64* %R1_Var
  282.   %lnwk = load i64* %SpLim_Var
  283.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %lnwf( i64* %lnwg, i64* %lnwh, i64* %lnwi, i64 %lnwj, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %lnwk, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  284.   ret void
  285.  
  286. cvL:
  287.   %lnwl = load i64** %Base_Var
  288.   %lnwm = getelementptr inbounds i64* %lnwl, i32 24
  289.   store i64 32, i64* %lnwm, !tbaa !4
  290.   br label %cvx
  291.  
  292. cw8:
  293.   %lnwn = load i64* %R1_Var
  294.   %lnwo = inttoptr i64 %lnwn to i64*
  295.   %lnwp = load i64* %lnwo, !tbaa !3
  296.   %lnwq = inttoptr i64 %lnwp to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
  297.   %lnwr = load i64** %Base_Var
  298.   %lnws = load i64** %Sp_Var
  299.   %lnwt = load i64** %Hp_Var
  300.   %lnwu = load i64* %R1_Var
  301.   %lnwv = load i64* %SpLim_Var
  302.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %lnwq( i64* %lnwr, i64* %lnws, i64* %lnwt, i64 %lnwu, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %lnwv, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  303.   ret void
  304.  
  305. cwa:
  306.   %lnww = ptrtoint [0 x i64]* @stg_bh_upd_frame_info to i64
  307.   %lnwx = load i64** %Sp_Var
  308.   %lnwy = getelementptr inbounds i64* %lnwx, i32 -2
  309.   store i64 %lnww, i64* %lnwy, !tbaa !1
  310.   %lnwz = load i64** %Hp_Var
  311.   %lnwA = getelementptr inbounds i64* %lnwz, i32 -3
  312.   %lnwB = ptrtoint i64* %lnwA to i64
  313.   %lnwC = load i64** %Sp_Var
  314.   %lnwD = getelementptr inbounds i64* %lnwC, i32 -1
  315.   store i64 %lnwB, i64* %lnwD, !tbaa !1
  316.   %lnwE = ptrtoint void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @ssb_info to i64
  317.   %lnwF = load i64** %Hp_Var
  318.   %lnwG = getelementptr inbounds i64* %lnwF, i32 -1
  319.   store i64 %lnwE, i64* %lnwG, !tbaa !2
  320.   %lnwH = ptrtoint [0 x i64]* @base_DataziList_product_closure to i64
  321.   store i64 %lnwH, i64* %R1_Var
  322.   %lnwI = ptrtoint [0 x i64]* @base_GHCziNum_zdfNumInt_closure to i64
  323.   store i64 %lnwI, i64* %R2_Var
  324.   %lnwJ = load i64** %Hp_Var
  325.   %lnwK = getelementptr inbounds i64* %lnwJ, i32 -1
  326.   %lnwL = ptrtoint i64* %lnwK to i64
  327.   store i64 %lnwL, i64* %R3_Var
  328.   %lnwM = load i64** %Sp_Var
  329.   %lnwN = getelementptr inbounds i64* %lnwM, i32 -2
  330.   %lnwO = ptrtoint i64* %lnwN to i64
  331.   %lnwP = inttoptr i64 %lnwO to i64*
  332.   store i64* %lnwP, i64** %Sp_Var
  333.   %lnwQ = load i64** %Base_Var
  334.   %lnwR = load i64** %Sp_Var
  335.   %lnwS = load i64** %Hp_Var
  336.   %lnwT = load i64* %R1_Var
  337.   %lnwU = load i64* %R2_Var
  338.   %lnwV = load i64* %R3_Var
  339.   %lnwW = load i64* %SpLim_Var
  340.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @stg_ap_pp_fast( i64* %lnwQ, i64* %lnwR, i64* %lnwS, i64 %lnwT, i64 %lnwU, i64 %lnwV, i64 undef, i64 undef, i64 undef, i64 %lnwW, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  341.   ret void
  342.  
  343. }
  344.  
  345.  
  346. @stg_CAF_BLACKHOLE_info = external global [0 x i64]
  347.                          
  348. declare  ccc i64 @newCAF(i8*, i8*, i8*) align 8
  349.  
  350. @stg_bh_upd_frame_info = external global [0 x i64]
  351.                          
  352. declare  cc 10 void @stg_ap_pp_fast(i64* noalias nocapture, i64* noalias nocapture, i64* noalias nocapture, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double) align 8
  353.  
  354.  
  355. %sse_info_struct = type <{i64, i64, i64}>
  356. @sse_info_itable = internal constant %sse_info_struct<{i64 add (i64 sub (i64 ptrtoint (%sse_srt_struct* @sse_srt to i64),i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @sse_info to i64)),i64 0), i64 0, i64 12884901910}>, section "X98A__STRIP,__me0", align 8
  357.                    
  358. define internal cc 10 void @sse_info(i64* noalias nocapture %Base_Arg, i64* noalias nocapture %Sp_Arg, i64* noalias nocapture %Hp_Arg, i64 %R1_Arg, i64 %R2_Arg, i64 %R3_Arg, i64 %R4_Arg, i64 %R5_Arg, i64 %R6_Arg, i64 %SpLim_Arg, float %F1_Arg, float %F2_Arg, float %F3_Arg, float %F4_Arg, double %D1_Arg, double %D2_Arg) align 8 nounwind section "X98A__STRIP,__me1"
  359. {
  360. cyp:
  361.   %Base_Var = alloca i64*, i32 1
  362.   store i64* %Base_Arg, i64** %Base_Var
  363.   %Sp_Var = alloca i64*, i32 1
  364.   store i64* %Sp_Arg, i64** %Sp_Var
  365.   %Hp_Var = alloca i64*, i32 1
  366.   store i64* %Hp_Arg, i64** %Hp_Var
  367.   %R1_Var = alloca i64, i32 1
  368.   store i64 %R1_Arg, i64* %R1_Var
  369.   %R2_Var = alloca i64, i32 1
  370.   store i64 %R2_Arg, i64* %R2_Var
  371.   %R3_Var = alloca i64, i32 1
  372.   store i64 %R3_Arg, i64* %R3_Var
  373.   %R4_Var = alloca i64, i32 1
  374.   store i64 %R4_Arg, i64* %R4_Var
  375.   %R5_Var = alloca i64, i32 1
  376.   store i64 %R5_Arg, i64* %R5_Var
  377.   %R6_Var = alloca i64, i32 1
  378.   store i64 %R6_Arg, i64* %R6_Var
  379.   %SpLim_Var = alloca i64, i32 1
  380.   store i64 %SpLim_Arg, i64* %SpLim_Var
  381.   %F1_Var = alloca float, i32 1
  382.   store float %F1_Arg, float* %F1_Var
  383.   %F2_Var = alloca float, i32 1
  384.   store float %F2_Arg, float* %F2_Var
  385.   %F3_Var = alloca float, i32 1
  386.   store float %F3_Arg, float* %F3_Var
  387.   %F4_Var = alloca float, i32 1
  388.   store float %F4_Arg, float* %F4_Var
  389.   %D1_Var = alloca double, i32 1
  390.   store double %D1_Arg, double* %D1_Var
  391.   %D2_Var = alloca double, i32 1
  392.   store double %D2_Arg, double* %D2_Var
  393.   %lcxB = alloca i64, i32 1
  394.   %lnyq = load i64** %Sp_Var
  395.   %lnyr = getelementptr inbounds i64* %lnyq, i32 -2
  396.   %lnys = ptrtoint i64* %lnyr to i64
  397.   %lnyt = load i64* %SpLim_Var
  398.   %lnyu = icmp ult i64 %lnys, %lnyt
  399.   br i1 %lnyu, label %cyw, label %nyx
  400.  
  401. nyx:
  402.   %lnyy = load i64** %Hp_Var
  403.   %lnyz = getelementptr inbounds i64* %lnyy, i32 2
  404.   %lnyA = ptrtoint i64* %lnyz to i64
  405.   %lnyB = inttoptr i64 %lnyA to i64*
  406.   store i64* %lnyB, i64** %Hp_Var
  407.   %lnyC = load i64** %Hp_Var
  408.   %lnyD = ptrtoint i64* %lnyC to i64
  409.   %lnyE = load i64** %Base_Var
  410.   %lnyF = getelementptr inbounds i64* %lnyE, i32 18
  411.   %lnyG = bitcast i64* %lnyF to i64*
  412.   %lnyH = load i64* %lnyG, !tbaa !4
  413.   %lnyI = icmp ugt i64 %lnyD, %lnyH
  414.   br i1 %lnyI, label %cyK, label %nyL
  415.  
  416. nyL:
  417.   %lnyM = ptrtoint [0 x i64]* @stg_CAF_BLACKHOLE_info to i64
  418.   %lnyN = load i64** %Hp_Var
  419.   %lnyO = getelementptr inbounds i64* %lnyN, i32 -1
  420.   store i64 %lnyM, i64* %lnyO, !tbaa !2
  421.   %lnyP = load i64** %Base_Var
  422.   %lnyQ = getelementptr inbounds i64* %lnyP, i32 20
  423.   %lnyR = bitcast i64* %lnyQ to i64*
  424.   %lnyS = load i64* %lnyR, !tbaa !4
  425.   %lnyT = load i64** %Hp_Var
  426.   %lnyU = getelementptr inbounds i64* %lnyT, i32 0
  427.   store i64 %lnyS, i64* %lnyU, !tbaa !2
  428.   %lnyV = load i64** %Base_Var
  429.   %lnyW = ptrtoint i64* %lnyV to i64
  430.   %lnyX = inttoptr i64 %lnyW to i8*
  431.   %lnyY = load i64* %R1_Var
  432.   %lnyZ = inttoptr i64 %lnyY to i8*
  433.   %lnz0 = load i64** %Hp_Var
  434.   %lnz1 = getelementptr inbounds i64* %lnz0, i32 -1
  435.   %lnz2 = ptrtoint i64* %lnz1 to i64
  436.   %lnz3 = inttoptr i64 %lnz2 to i8*
  437.   store i64 undef, i64* %R3_Var
  438.   store i64 undef, i64* %R4_Var
  439.   store i64 undef, i64* %R5_Var
  440.   store i64 undef, i64* %R6_Var
  441.   store float undef, float* %F1_Var
  442.   store float undef, float* %F2_Var
  443.   store float undef, float* %F3_Var
  444.   store float undef, float* %F4_Var
  445.   store double undef, double* %D1_Var
  446.   store double undef, double* %D2_Var
  447.   %lnz4 = call ccc i64 (i8*,i8*,i8*)* @newCAF( i8* %lnyX, i8* %lnyZ, i8* %lnz3 ) nounwind
  448.   store i64 %lnz4, i64* %lcxB
  449.   %lnz5 = load i64* %lcxB
  450.   %lnz6 = icmp eq i64 %lnz5, 0
  451.   br i1 %lnz6, label %cz7, label %nz8
  452.  
  453. nz8:
  454.   br label %cz9
  455.  
  456. cyw:
  457.   %lnza = load i64** %Base_Var
  458.   %lnzb = getelementptr inbounds i64* %lnza, i32 -2
  459.   %lnzc = bitcast i64* %lnzb to i64*
  460.   %lnzd = load i64* %lnzc, !tbaa !4
  461.   %lnze = inttoptr i64 %lnzd to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
  462.   %lnzf = load i64** %Base_Var
  463.   %lnzg = load i64** %Sp_Var
  464.   %lnzh = load i64** %Hp_Var
  465.   %lnzi = load i64* %R1_Var
  466.   %lnzj = load i64* %SpLim_Var
  467.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %lnze( i64* %lnzf, i64* %lnzg, i64* %lnzh, i64 %lnzi, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %lnzj, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  468.   ret void
  469.  
  470. cyK:
  471.   %lnzk = load i64** %Base_Var
  472.   %lnzl = getelementptr inbounds i64* %lnzk, i32 24
  473.   store i64 16, i64* %lnzl, !tbaa !4
  474.   br label %cyw
  475.  
  476. cz7:
  477.   %lnzm = load i64* %R1_Var
  478.   %lnzn = inttoptr i64 %lnzm to i64*
  479.   %lnzo = load i64* %lnzn, !tbaa !3
  480.   %lnzp = inttoptr i64 %lnzo to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
  481.   %lnzq = load i64** %Base_Var
  482.   %lnzr = load i64** %Sp_Var
  483.   %lnzs = load i64** %Hp_Var
  484.   %lnzt = load i64* %R1_Var
  485.   %lnzu = load i64* %SpLim_Var
  486.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %lnzp( i64* %lnzq, i64* %lnzr, i64* %lnzs, i64 %lnzt, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %lnzu, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  487.   ret void
  488.  
  489. cz9:
  490.   %lnzv = ptrtoint [0 x i64]* @stg_bh_upd_frame_info to i64
  491.   %lnzw = load i64** %Sp_Var
  492.   %lnzx = getelementptr inbounds i64* %lnzw, i32 -2
  493.   store i64 %lnzv, i64* %lnzx, !tbaa !1
  494.   %lnzy = load i64** %Hp_Var
  495.   %lnzz = getelementptr inbounds i64* %lnzy, i32 -1
  496.   %lnzA = ptrtoint i64* %lnzz to i64
  497.   %lnzB = load i64** %Sp_Var
  498.   %lnzC = getelementptr inbounds i64* %lnzB, i32 -1
  499.   store i64 %lnzA, i64* %lnzC, !tbaa !1
  500.   %lnzD = ptrtoint [0 x i64]* @base_SystemziIO_print_closure to i64
  501.   store i64 %lnzD, i64* %R1_Var
  502.   %lnzE = ptrtoint [0 x i64]* @base_GHCziShow_zdfShowInt_closure to i64
  503.   store i64 %lnzE, i64* %R2_Var
  504.   %lnzF = load i64** %Sp_Var
  505.   %lnzG = getelementptr inbounds i64* %lnzF, i32 -2
  506.   %lnzH = ptrtoint i64* %lnzG to i64
  507.   %lnzI = inttoptr i64 %lnzH to i64*
  508.   store i64* %lnzI, i64** %Sp_Var
  509.   %lnzJ = load i64** %Base_Var
  510.   %lnzK = load i64** %Sp_Var
  511.   %lnzL = load i64** %Hp_Var
  512.   %lnzM = load i64* %R1_Var
  513.   %lnzN = load i64* %R2_Var
  514.   %lnzO = load i64* %SpLim_Var
  515.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @stg_ap_p_fast( i64* %lnzJ, i64* %lnzK, i64* %lnzL, i64 %lnzM, i64 %lnzN, i64 undef, i64 undef, i64 undef, i64 undef, i64 %lnzO, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  516.   ret void
  517.  
  518. }
  519.  
  520.  
  521. declare  cc 10 void @stg_ap_p_fast(i64* noalias nocapture, i64* noalias nocapture, i64* noalias nocapture, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double) align 8
  522.  
  523.  
  524. %Main_main_info_struct = type <{i64, i64, i64}>
  525. @Main_main_info_itable =  constant %Main_main_info_struct<{i64 add (i64 sub (i64 ptrtoint (%Main_main_srt_struct* @Main_main_srt to i64),i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @Main_main_info to i64)),i64 0), i64 0, i64 30064771094}>, section "X98A__STRIP,__me0", align 8
  526.                          
  527. define  cc 10 void @Main_main_info(i64* noalias nocapture %Base_Arg, i64* noalias nocapture %Sp_Arg, i64* noalias nocapture %Hp_Arg, i64 %R1_Arg, i64 %R2_Arg, i64 %R3_Arg, i64 %R4_Arg, i64 %R5_Arg, i64 %R6_Arg, i64 %SpLim_Arg, float %F1_Arg, float %F2_Arg, float %F3_Arg, float %F4_Arg, double %D1_Arg, double %D2_Arg) align 8 nounwind section "X98A__STRIP,__me1"
  528. {
  529. cBj:
  530.   %Base_Var = alloca i64*, i32 1
  531.   store i64* %Base_Arg, i64** %Base_Var
  532.   %Sp_Var = alloca i64*, i32 1
  533.   store i64* %Sp_Arg, i64** %Sp_Var
  534.   %Hp_Var = alloca i64*, i32 1
  535.   store i64* %Hp_Arg, i64** %Hp_Var
  536.   %R1_Var = alloca i64, i32 1
  537.   store i64 %R1_Arg, i64* %R1_Var
  538.   %R2_Var = alloca i64, i32 1
  539.   store i64 %R2_Arg, i64* %R2_Var
  540.   %R3_Var = alloca i64, i32 1
  541.   store i64 %R3_Arg, i64* %R3_Var
  542.   %R4_Var = alloca i64, i32 1
  543.   store i64 %R4_Arg, i64* %R4_Var
  544.   %R5_Var = alloca i64, i32 1
  545.   store i64 %R5_Arg, i64* %R5_Var
  546.   %R6_Var = alloca i64, i32 1
  547.   store i64 %R6_Arg, i64* %R6_Var
  548.   %SpLim_Var = alloca i64, i32 1
  549.   store i64 %SpLim_Arg, i64* %SpLim_Var
  550.   %F1_Var = alloca float, i32 1
  551.   store float %F1_Arg, float* %F1_Var
  552.   %F2_Var = alloca float, i32 1
  553.   store float %F2_Arg, float* %F2_Var
  554.   %F3_Var = alloca float, i32 1
  555.   store float %F3_Arg, float* %F3_Var
  556.   %F4_Var = alloca float, i32 1
  557.   store float %F4_Arg, float* %F4_Var
  558.   %D1_Var = alloca double, i32 1
  559.   store double %D1_Arg, double* %D1_Var
  560.   %D2_Var = alloca double, i32 1
  561.   store double %D2_Arg, double* %D2_Var
  562.   %lcAt = alloca i64, i32 1
  563.   %lnBk = load i64** %Sp_Var
  564.   %lnBl = getelementptr inbounds i64* %lnBk, i32 -2
  565.   %lnBm = ptrtoint i64* %lnBl to i64
  566.   %lnBn = load i64* %SpLim_Var
  567.   %lnBo = icmp ult i64 %lnBm, %lnBn
  568.   br i1 %lnBo, label %cBq, label %nBr
  569.  
  570. nBr:
  571.   %lnBs = load i64** %Hp_Var
  572.   %lnBt = getelementptr inbounds i64* %lnBs, i32 2
  573.   %lnBu = ptrtoint i64* %lnBt to i64
  574.   %lnBv = inttoptr i64 %lnBu to i64*
  575.   store i64* %lnBv, i64** %Hp_Var
  576.   %lnBw = load i64** %Hp_Var
  577.   %lnBx = ptrtoint i64* %lnBw to i64
  578.   %lnBy = load i64** %Base_Var
  579.   %lnBz = getelementptr inbounds i64* %lnBy, i32 18
  580.   %lnBA = bitcast i64* %lnBz to i64*
  581.   %lnBB = load i64* %lnBA, !tbaa !4
  582.   %lnBC = icmp ugt i64 %lnBx, %lnBB
  583.   br i1 %lnBC, label %cBE, label %nBF
  584.  
  585. nBF:
  586.   %lnBG = ptrtoint [0 x i64]* @stg_CAF_BLACKHOLE_info to i64
  587.   %lnBH = load i64** %Hp_Var
  588.   %lnBI = getelementptr inbounds i64* %lnBH, i32 -1
  589.   store i64 %lnBG, i64* %lnBI, !tbaa !2
  590.   %lnBJ = load i64** %Base_Var
  591.   %lnBK = getelementptr inbounds i64* %lnBJ, i32 20
  592.   %lnBL = bitcast i64* %lnBK to i64*
  593.   %lnBM = load i64* %lnBL, !tbaa !4
  594.   %lnBN = load i64** %Hp_Var
  595.   %lnBO = getelementptr inbounds i64* %lnBN, i32 0
  596.   store i64 %lnBM, i64* %lnBO, !tbaa !2
  597.   %lnBP = load i64** %Base_Var
  598.   %lnBQ = ptrtoint i64* %lnBP to i64
  599.   %lnBR = inttoptr i64 %lnBQ to i8*
  600.   %lnBS = load i64* %R1_Var
  601.   %lnBT = inttoptr i64 %lnBS to i8*
  602.   %lnBU = load i64** %Hp_Var
  603.   %lnBV = getelementptr inbounds i64* %lnBU, i32 -1
  604.   %lnBW = ptrtoint i64* %lnBV to i64
  605.   %lnBX = inttoptr i64 %lnBW to i8*
  606.   store i64 undef, i64* %R3_Var
  607.   store i64 undef, i64* %R4_Var
  608.   store i64 undef, i64* %R5_Var
  609.   store i64 undef, i64* %R6_Var
  610.   store float undef, float* %F1_Var
  611.   store float undef, float* %F2_Var
  612.   store float undef, float* %F3_Var
  613.   store float undef, float* %F4_Var
  614.   store double undef, double* %D1_Var
  615.   store double undef, double* %D2_Var
  616.   %lnBY = call ccc i64 (i8*,i8*,i8*)* @newCAF( i8* %lnBR, i8* %lnBT, i8* %lnBX ) nounwind
  617.   store i64 %lnBY, i64* %lcAt
  618.   %lnBZ = load i64* %lcAt
  619.   %lnC0 = icmp eq i64 %lnBZ, 0
  620.   br i1 %lnC0, label %cC1, label %nC2
  621.  
  622. nC2:
  623.   br label %cC3
  624.  
  625. cBq:
  626.   %lnC4 = load i64** %Base_Var
  627.   %lnC5 = getelementptr inbounds i64* %lnC4, i32 -2
  628.   %lnC6 = bitcast i64* %lnC5 to i64*
  629.   %lnC7 = load i64* %lnC6, !tbaa !4
  630.   %lnC8 = inttoptr i64 %lnC7 to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
  631.   %lnC9 = load i64** %Base_Var
  632.   %lnCa = load i64** %Sp_Var
  633.   %lnCb = load i64** %Hp_Var
  634.   %lnCc = load i64* %R1_Var
  635.   %lnCd = load i64* %SpLim_Var
  636.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %lnC8( i64* %lnC9, i64* %lnCa, i64* %lnCb, i64 %lnCc, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %lnCd, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  637.   ret void
  638.  
  639. cBE:
  640.   %lnCe = load i64** %Base_Var
  641.   %lnCf = getelementptr inbounds i64* %lnCe, i32 24
  642.   store i64 16, i64* %lnCf, !tbaa !4
  643.   br label %cBq
  644.  
  645. cC1:
  646.   %lnCg = load i64* %R1_Var
  647.   %lnCh = inttoptr i64 %lnCg to i64*
  648.   %lnCi = load i64* %lnCh, !tbaa !3
  649.   %lnCj = inttoptr i64 %lnCi to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
  650.   %lnCk = load i64** %Base_Var
  651.   %lnCl = load i64** %Sp_Var
  652.   %lnCm = load i64** %Hp_Var
  653.   %lnCn = load i64* %R1_Var
  654.   %lnCo = load i64* %SpLim_Var
  655.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %lnCj( i64* %lnCk, i64* %lnCl, i64* %lnCm, i64 %lnCn, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %lnCo, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  656.   ret void
  657.  
  658. cC3:
  659.   %lnCp = ptrtoint [0 x i64]* @stg_bh_upd_frame_info to i64
  660.   %lnCq = load i64** %Sp_Var
  661.   %lnCr = getelementptr inbounds i64* %lnCq, i32 -2
  662.   store i64 %lnCp, i64* %lnCr, !tbaa !1
  663.   %lnCs = load i64** %Hp_Var
  664.   %lnCt = getelementptr inbounds i64* %lnCs, i32 -1
  665.   %lnCu = ptrtoint i64* %lnCt to i64
  666.   %lnCv = load i64** %Sp_Var
  667.   %lnCw = getelementptr inbounds i64* %lnCv, i32 -1
  668.   store i64 %lnCu, i64* %lnCw, !tbaa !1
  669.   %lnCx = ptrtoint [0 x i64]* @base_GHCziBase_zd_closure to i64
  670.   store i64 %lnCx, i64* %R1_Var
  671.   %lnCy = ptrtoint %sse_closure_struct* @sse_closure to i64
  672.   store i64 %lnCy, i64* %R2_Var
  673.   %lnCz = ptrtoint %ssd_closure_struct* @ssd_closure to i64
  674.   store i64 %lnCz, i64* %R3_Var
  675.   %lnCA = load i64** %Sp_Var
  676.   %lnCB = getelementptr inbounds i64* %lnCA, i32 -2
  677.   %lnCC = ptrtoint i64* %lnCB to i64
  678.   %lnCD = inttoptr i64 %lnCC to i64*
  679.   store i64* %lnCD, i64** %Sp_Var
  680.   %lnCE = load i64** %Base_Var
  681.   %lnCF = load i64** %Sp_Var
  682.   %lnCG = load i64** %Hp_Var
  683.   %lnCH = load i64* %R1_Var
  684.   %lnCI = load i64* %R2_Var
  685.   %lnCJ = load i64* %R3_Var
  686.   %lnCK = load i64* %SpLim_Var
  687.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @stg_ap_pp_fast( i64* %lnCE, i64* %lnCF, i64* %lnCG, i64 %lnCH, i64 %lnCI, i64 %lnCJ, i64 undef, i64 undef, i64 undef, i64 %lnCK, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  688.   ret void
  689.  
  690. }
  691.  
  692.  
  693.  
  694. %ZCMain_main_info_struct = type <{i64, i64, i64}>
  695. @ZCMain_main_info_itable =  constant %ZCMain_main_info_struct<{i64 add (i64 sub (i64 ptrtoint (%ZCMain_main_srt_struct* @ZCMain_main_srt to i64),i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @ZCMain_main_info to i64)),i64 0), i64 0, i64 12884901910}>, section "X98A__STRIP,__me0", align 8
  696.                            
  697. define  cc 10 void @ZCMain_main_info(i64* noalias nocapture %Base_Arg, i64* noalias nocapture %Sp_Arg, i64* noalias nocapture %Hp_Arg, i64 %R1_Arg, i64 %R2_Arg, i64 %R3_Arg, i64 %R4_Arg, i64 %R5_Arg, i64 %R6_Arg, i64 %SpLim_Arg, float %F1_Arg, float %F2_Arg, float %F3_Arg, float %F4_Arg, double %D1_Arg, double %D2_Arg) align 8 nounwind section "X98A__STRIP,__me1"
  698. {
  699. cEd:
  700.   %Base_Var = alloca i64*, i32 1
  701.   store i64* %Base_Arg, i64** %Base_Var
  702.   %Sp_Var = alloca i64*, i32 1
  703.   store i64* %Sp_Arg, i64** %Sp_Var
  704.   %Hp_Var = alloca i64*, i32 1
  705.   store i64* %Hp_Arg, i64** %Hp_Var
  706.   %R1_Var = alloca i64, i32 1
  707.   store i64 %R1_Arg, i64* %R1_Var
  708.   %R2_Var = alloca i64, i32 1
  709.   store i64 %R2_Arg, i64* %R2_Var
  710.   %R3_Var = alloca i64, i32 1
  711.   store i64 %R3_Arg, i64* %R3_Var
  712.   %R4_Var = alloca i64, i32 1
  713.   store i64 %R4_Arg, i64* %R4_Var
  714.   %R5_Var = alloca i64, i32 1
  715.   store i64 %R5_Arg, i64* %R5_Var
  716.   %R6_Var = alloca i64, i32 1
  717.   store i64 %R6_Arg, i64* %R6_Var
  718.   %SpLim_Var = alloca i64, i32 1
  719.   store i64 %SpLim_Arg, i64* %SpLim_Var
  720.   %F1_Var = alloca float, i32 1
  721.   store float %F1_Arg, float* %F1_Var
  722.   %F2_Var = alloca float, i32 1
  723.   store float %F2_Arg, float* %F2_Var
  724.   %F3_Var = alloca float, i32 1
  725.   store float %F3_Arg, float* %F3_Var
  726.   %F4_Var = alloca float, i32 1
  727.   store float %F4_Arg, float* %F4_Var
  728.   %D1_Var = alloca double, i32 1
  729.   store double %D1_Arg, double* %D1_Var
  730.   %D2_Var = alloca double, i32 1
  731.   store double %D2_Arg, double* %D2_Var
  732.   %lcDp = alloca i64, i32 1
  733.   %lnEe = load i64** %Sp_Var
  734.   %lnEf = getelementptr inbounds i64* %lnEe, i32 -2
  735.   %lnEg = ptrtoint i64* %lnEf to i64
  736.   %lnEh = load i64* %SpLim_Var
  737.   %lnEi = icmp ult i64 %lnEg, %lnEh
  738.   br i1 %lnEi, label %cEk, label %nEl
  739.  
  740. nEl:
  741.   %lnEm = load i64** %Hp_Var
  742.   %lnEn = getelementptr inbounds i64* %lnEm, i32 2
  743.   %lnEo = ptrtoint i64* %lnEn to i64
  744.   %lnEp = inttoptr i64 %lnEo to i64*
  745.   store i64* %lnEp, i64** %Hp_Var
  746.   %lnEq = load i64** %Hp_Var
  747.   %lnEr = ptrtoint i64* %lnEq to i64
  748.   %lnEs = load i64** %Base_Var
  749.   %lnEt = getelementptr inbounds i64* %lnEs, i32 18
  750.   %lnEu = bitcast i64* %lnEt to i64*
  751.   %lnEv = load i64* %lnEu, !tbaa !4
  752.   %lnEw = icmp ugt i64 %lnEr, %lnEv
  753.   br i1 %lnEw, label %cEy, label %nEz
  754.  
  755. nEz:
  756.   %lnEA = ptrtoint [0 x i64]* @stg_CAF_BLACKHOLE_info to i64
  757.   %lnEB = load i64** %Hp_Var
  758.   %lnEC = getelementptr inbounds i64* %lnEB, i32 -1
  759.   store i64 %lnEA, i64* %lnEC, !tbaa !2
  760.   %lnED = load i64** %Base_Var
  761.   %lnEE = getelementptr inbounds i64* %lnED, i32 20
  762.   %lnEF = bitcast i64* %lnEE to i64*
  763.   %lnEG = load i64* %lnEF, !tbaa !4
  764.   %lnEH = load i64** %Hp_Var
  765.   %lnEI = getelementptr inbounds i64* %lnEH, i32 0
  766.   store i64 %lnEG, i64* %lnEI, !tbaa !2
  767.   %lnEJ = load i64** %Base_Var
  768.   %lnEK = ptrtoint i64* %lnEJ to i64
  769.   %lnEL = inttoptr i64 %lnEK to i8*
  770.   %lnEM = load i64* %R1_Var
  771.   %lnEN = inttoptr i64 %lnEM to i8*
  772.   %lnEO = load i64** %Hp_Var
  773.   %lnEP = getelementptr inbounds i64* %lnEO, i32 -1
  774.   %lnEQ = ptrtoint i64* %lnEP to i64
  775.   %lnER = inttoptr i64 %lnEQ to i8*
  776.   store i64 undef, i64* %R3_Var
  777.   store i64 undef, i64* %R4_Var
  778.   store i64 undef, i64* %R5_Var
  779.   store i64 undef, i64* %R6_Var
  780.   store float undef, float* %F1_Var
  781.   store float undef, float* %F2_Var
  782.   store float undef, float* %F3_Var
  783.   store float undef, float* %F4_Var
  784.   store double undef, double* %D1_Var
  785.   store double undef, double* %D2_Var
  786.   %lnES = call ccc i64 (i8*,i8*,i8*)* @newCAF( i8* %lnEL, i8* %lnEN, i8* %lnER ) nounwind
  787.   store i64 %lnES, i64* %lcDp
  788.   %lnET = load i64* %lcDp
  789.   %lnEU = icmp eq i64 %lnET, 0
  790.   br i1 %lnEU, label %cEV, label %nEW
  791.  
  792. nEW:
  793.   br label %cEX
  794.  
  795. cEk:
  796.   %lnEY = load i64** %Base_Var
  797.   %lnEZ = getelementptr inbounds i64* %lnEY, i32 -2
  798.   %lnF0 = bitcast i64* %lnEZ to i64*
  799.   %lnF1 = load i64* %lnF0, !tbaa !4
  800.   %lnF2 = inttoptr i64 %lnF1 to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
  801.   %lnF3 = load i64** %Base_Var
  802.   %lnF4 = load i64** %Sp_Var
  803.   %lnF5 = load i64** %Hp_Var
  804.   %lnF6 = load i64* %R1_Var
  805.   %lnF7 = load i64* %SpLim_Var
  806.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %lnF2( i64* %lnF3, i64* %lnF4, i64* %lnF5, i64 %lnF6, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %lnF7, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  807.   ret void
  808.  
  809. cEy:
  810.   %lnF8 = load i64** %Base_Var
  811.   %lnF9 = getelementptr inbounds i64* %lnF8, i32 24
  812.   store i64 16, i64* %lnF9, !tbaa !4
  813.   br label %cEk
  814.  
  815. cEV:
  816.   %lnFa = load i64* %R1_Var
  817.   %lnFb = inttoptr i64 %lnFa to i64*
  818.   %lnFc = load i64* %lnFb, !tbaa !3
  819.   %lnFd = inttoptr i64 %lnFc to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
  820.   %lnFe = load i64** %Base_Var
  821.   %lnFf = load i64** %Sp_Var
  822.   %lnFg = load i64** %Hp_Var
  823.   %lnFh = load i64* %R1_Var
  824.   %lnFi = load i64* %SpLim_Var
  825.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %lnFd( i64* %lnFe, i64* %lnFf, i64* %lnFg, i64 %lnFh, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %lnFi, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  826.   ret void
  827.  
  828. cEX:
  829.   %lnFj = ptrtoint [0 x i64]* @stg_bh_upd_frame_info to i64
  830.   %lnFk = load i64** %Sp_Var
  831.   %lnFl = getelementptr inbounds i64* %lnFk, i32 -2
  832.   store i64 %lnFj, i64* %lnFl, !tbaa !1
  833.   %lnFm = load i64** %Hp_Var
  834.   %lnFn = getelementptr inbounds i64* %lnFm, i32 -1
  835.   %lnFo = ptrtoint i64* %lnFn to i64
  836.   %lnFp = load i64** %Sp_Var
  837.   %lnFq = getelementptr inbounds i64* %lnFp, i32 -1
  838.   store i64 %lnFo, i64* %lnFq, !tbaa !1
  839.   %lnFr = ptrtoint [0 x i64]* @base_GHCziTopHandler_runMainIO_closure to i64
  840.   store i64 %lnFr, i64* %R1_Var
  841.   %lnFs = ptrtoint %Main_main_closure_struct* @Main_main_closure to i64
  842.   store i64 %lnFs, i64* %R2_Var
  843.   %lnFt = load i64** %Sp_Var
  844.   %lnFu = getelementptr inbounds i64* %lnFt, i32 -2
  845.   %lnFv = ptrtoint i64* %lnFu to i64
  846.   %lnFw = inttoptr i64 %lnFv to i64*
  847.   store i64* %lnFw, i64** %Sp_Var
  848.   %lnFx = load i64** %Base_Var
  849.   %lnFy = load i64** %Sp_Var
  850.   %lnFz = load i64** %Hp_Var
  851.   %lnFA = load i64* %R1_Var
  852.   %lnFB = load i64* %R2_Var
  853.   %lnFC = load i64* %SpLim_Var
  854.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @stg_ap_p_fast( i64* %lnFx, i64* %lnFy, i64* %lnFz, i64 %lnFA, i64 %lnFB, i64 undef, i64 undef, i64 undef, i64 undef, i64 %lnFC, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  855.   ret void
  856.  
  857. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement