Advertisement
reversyn

Untitled

Mar 24th, 2014
2,620
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
LLVM 45.23 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. %Main_zdwfactorial_closure_struct = type <{i64}>
  24. @Main_zdwfactorial_closure =  global %Main_zdwfactorial_closure_struct<{i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @Main_zdwfactorial_info to i64)}>
  25.                              
  26. %Main_factorial_closure_struct = type <{i64}>
  27. @Main_factorial_closure =  global %Main_factorial_closure_struct<{i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @Main_factorial_info to i64)}>
  28.                          
  29. %Main_main2_closure_struct = type <{i64, i64, i64, i64}>
  30. @Main_main2_closure =  global %Main_main2_closure_struct<{i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @Main_main2_info to i64), i64 0, i64 0, i64 0}>
  31.                      
  32. %Main_main1_srt_struct = type <{i64, i64, i64}>
  33. @Main_main1_srt = internal constant %Main_main1_srt_struct<{i64 ptrtoint ([0 x i64]* @base_GHCziIOziHandleziText_hPutStr2_closure to i64), i64 ptrtoint ([0 x i64]* @base_GHCziIOziHandleziFD_stdout_closure to i64), i64 ptrtoint (%Main_main2_closure_struct* @Main_main2_closure to i64)}>
  34.                  
  35.                                                
  36.                                            
  37. %Main_main1_closure_struct = type <{i64, i64}>
  38. @Main_main1_closure =  global %Main_main1_closure_struct<{i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @Main_main1_info to i64), i64 0}>
  39.                      
  40. %Main_main_srt_struct = type <{i64}>
  41. @Main_main_srt = internal constant %Main_main_srt_struct<{i64 ptrtoint (%Main_main1_closure_struct* @Main_main1_closure to i64)}>
  42.                  
  43. %Main_main_closure_struct = type <{i64, i64}>
  44. @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}>
  45.                      
  46. %Main_main3_srt_struct = type <{i64, i64}>
  47. @Main_main3_srt = internal constant %Main_main3_srt_struct<{i64 ptrtoint ([0 x i64]* @base_GHCziTopHandler_runMainIO1_closure to i64), i64 ptrtoint (%Main_main1_closure_struct* @Main_main1_closure to i64)}>
  48.                  
  49.                                            
  50. %Main_main3_closure_struct = type <{i64, i64}>
  51. @Main_main3_closure =  global %Main_main3_closure_struct<{i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @Main_main3_info to i64), i64 0}>
  52.                      
  53. %ZCMain_main_srt_struct = type <{i64}>
  54. @ZCMain_main_srt = internal constant %ZCMain_main_srt_struct<{i64 ptrtoint (%Main_main3_closure_struct* @Main_main3_closure to i64)}>
  55.                    
  56. %ZCMain_main_closure_struct = type <{i64, i64}>
  57. @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}>
  58.                        
  59.  
  60. %s1Ip_ret_struct = type <{i64, i64}>
  61. @s1Ip_info_itable = internal constant %s1Ip_ret_struct<{i64 65, i64 32}>, section "X98A__STRIP,__me0", align 8
  62.                    
  63. define internal cc 10 void @s1Ip_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"
  64. {
  65. c1JJ:
  66.   %Base_Var = alloca i64*, i32 1
  67.   store i64* %Base_Arg, i64** %Base_Var
  68.   %Sp_Var = alloca i64*, i32 1
  69.   store i64* %Sp_Arg, i64** %Sp_Var
  70.   %Hp_Var = alloca i64*, i32 1
  71.   store i64* %Hp_Arg, i64** %Hp_Var
  72.   %R1_Var = alloca i64, i32 1
  73.   store i64 %R1_Arg, i64* %R1_Var
  74.   %R2_Var = alloca i64, i32 1
  75.   store i64 %R2_Arg, i64* %R2_Var
  76.   %R3_Var = alloca i64, i32 1
  77.   store i64 %R3_Arg, i64* %R3_Var
  78.   %R4_Var = alloca i64, i32 1
  79.   store i64 %R4_Arg, i64* %R4_Var
  80.   %R5_Var = alloca i64, i32 1
  81.   store i64 %R5_Arg, i64* %R5_Var
  82.   %R6_Var = alloca i64, i32 1
  83.   store i64 %R6_Arg, i64* %R6_Var
  84.   %SpLim_Var = alloca i64, i32 1
  85.   store i64 %SpLim_Arg, i64* %SpLim_Var
  86.   %F1_Var = alloca float, i32 1
  87.   store float %F1_Arg, float* %F1_Var
  88.   %F2_Var = alloca float, i32 1
  89.   store float %F2_Arg, float* %F2_Var
  90.   %F3_Var = alloca float, i32 1
  91.   store float %F3_Arg, float* %F3_Var
  92.   %F4_Var = alloca float, i32 1
  93.   store float %F4_Arg, float* %F4_Var
  94.   %D1_Var = alloca double, i32 1
  95.   store double %D1_Arg, double* %D1_Var
  96.   %D2_Var = alloca double, i32 1
  97.   store double %D2_Arg, double* %D2_Var
  98.   %lc1Jm = alloca i64, i32 1
  99.   %ln1JK = load i64** %Sp_Var
  100.   %ln1JL = getelementptr inbounds i64* %ln1JK, i32 1
  101.   %ln1JM = bitcast i64* %ln1JL to i64*
  102.   %ln1JN = load i64* %ln1JM, !tbaa !1
  103.   %ln1JO = load i64* %R1_Var
  104.   %ln1JP = mul i64 %ln1JN, %ln1JO
  105.   store i64 %ln1JP, i64* %lc1Jm
  106.   %ln1JQ = load i64* %lc1Jm
  107.   store i64 %ln1JQ, i64* %R1_Var
  108.   %ln1JR = load i64** %Sp_Var
  109.   %ln1JS = getelementptr inbounds i64* %ln1JR, i32 2
  110.   %ln1JT = ptrtoint i64* %ln1JS to i64
  111.   %ln1JU = inttoptr i64 %ln1JT to i64*
  112.   store i64* %ln1JU, i64** %Sp_Var
  113.   %ln1JV = load i64** %Sp_Var
  114.   %ln1JW = getelementptr inbounds i64* %ln1JV, i32 0
  115.   %ln1JX = bitcast i64* %ln1JW to i64*
  116.   %ln1JY = load i64* %ln1JX, !tbaa !1
  117.   %ln1JZ = inttoptr i64 %ln1JY to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
  118.   %ln1K0 = load i64** %Base_Var
  119.   %ln1K1 = load i64** %Sp_Var
  120.   %ln1K2 = load i64** %Hp_Var
  121.   %ln1K3 = load i64* %R1_Var
  122.   %ln1K4 = load i64* %SpLim_Var
  123.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %ln1JZ( i64* %ln1K0, i64* %ln1K1, i64* %ln1K2, i64 %ln1K3, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1K4, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  124.   ret void
  125.  
  126. }
  127.  
  128.  
  129.  
  130. %Main_zdwfactorial_info_struct = type <{i64, i64, i64}>
  131. @Main_zdwfactorial_info_itable =  constant %Main_zdwfactorial_info_struct<{i64 4294967300, i64 0, i64 15}>, section "X98A__STRIP,__me0", align 8
  132.                                  
  133. define  cc 10 void @Main_zdwfactorial_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"
  134. {
  135. c1KV:
  136.   %Base_Var = alloca i64*, i32 1
  137.   store i64* %Base_Arg, i64** %Base_Var
  138.   %Sp_Var = alloca i64*, i32 1
  139.   store i64* %Sp_Arg, i64** %Sp_Var
  140.   %Hp_Var = alloca i64*, i32 1
  141.   store i64* %Hp_Arg, i64** %Hp_Var
  142.   %R1_Var = alloca i64, i32 1
  143.   store i64 %R1_Arg, i64* %R1_Var
  144.   %R2_Var = alloca i64, i32 1
  145.   store i64 %R2_Arg, i64* %R2_Var
  146.   %R3_Var = alloca i64, i32 1
  147.   store i64 %R3_Arg, i64* %R3_Var
  148.   %R4_Var = alloca i64, i32 1
  149.   store i64 %R4_Arg, i64* %R4_Var
  150.   %R5_Var = alloca i64, i32 1
  151.   store i64 %R5_Arg, i64* %R5_Var
  152.   %R6_Var = alloca i64, i32 1
  153.   store i64 %R6_Arg, i64* %R6_Var
  154.   %SpLim_Var = alloca i64, i32 1
  155.   store i64 %SpLim_Arg, i64* %SpLim_Var
  156.   %F1_Var = alloca float, i32 1
  157.   store float %F1_Arg, float* %F1_Var
  158.   %F2_Var = alloca float, i32 1
  159.   store float %F2_Arg, float* %F2_Var
  160.   %F3_Var = alloca float, i32 1
  161.   store float %F3_Arg, float* %F3_Var
  162.   %F4_Var = alloca float, i32 1
  163.   store float %F4_Arg, float* %F4_Var
  164.   %D1_Var = alloca double, i32 1
  165.   store double %D1_Arg, double* %D1_Var
  166.   %D2_Var = alloca double, i32 1
  167.   store double %D2_Arg, double* %D2_Var
  168.   %ls1Im = alloca i64, i32 1
  169.   %ls1IE = alloca i64, i32 1
  170.   %ln1KW = load i64** %Sp_Var
  171.   %ln1KX = getelementptr inbounds i64* %ln1KW, i32 -2
  172.   %ln1KY = ptrtoint i64* %ln1KX to i64
  173.   %ln1KZ = load i64* %SpLim_Var
  174.   %ln1L0 = icmp ult i64 %ln1KY, %ln1KZ
  175.   br i1 %ln1L0, label %c1L2, label %n1L3
  176.  
  177. n1L3:
  178.   %ln1L4 = load i64* %R2_Var
  179.   store i64 %ln1L4, i64* %ls1Im
  180.   %ln1L5 = load i64* %ls1Im
  181.   %ln1L6 = icmp ne i64 %ln1L5, 0
  182.   br i1 %ln1L6, label %c1L8, label %n1L9
  183.  
  184. n1L9:
  185.   store i64 1, i64* %R1_Var
  186.   %ln1La = load i64** %Sp_Var
  187.   %ln1Lb = getelementptr inbounds i64* %ln1La, i32 0
  188.   %ln1Lc = bitcast i64* %ln1Lb to i64*
  189.   %ln1Ld = load i64* %ln1Lc, !tbaa !1
  190.   %ln1Le = inttoptr i64 %ln1Ld to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
  191.   %ln1Lf = load i64** %Base_Var
  192.   %ln1Lg = load i64** %Sp_Var
  193.   %ln1Lh = load i64** %Hp_Var
  194.   %ln1Li = load i64* %R1_Var
  195.   %ln1Lj = load i64* %SpLim_Var
  196.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %ln1Le( i64* %ln1Lf, i64* %ln1Lg, i64* %ln1Lh, i64 %ln1Li, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1Lj, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  197.   ret void
  198.  
  199. c1L2:
  200.   %ln1Lk = ptrtoint %Main_zdwfactorial_closure_struct* @Main_zdwfactorial_closure to i64
  201.   store i64 %ln1Lk, i64* %R1_Var
  202.   %ln1Ll = load i64** %Base_Var
  203.   %ln1Lm = getelementptr inbounds i64* %ln1Ll, i32 -1
  204.   %ln1Ln = bitcast i64* %ln1Lm to i64*
  205.   %ln1Lo = load i64* %ln1Ln, !tbaa !4
  206.   %ln1Lp = inttoptr i64 %ln1Lo to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
  207.   %ln1Lq = load i64** %Base_Var
  208.   %ln1Lr = load i64** %Sp_Var
  209.   %ln1Ls = load i64** %Hp_Var
  210.   %ln1Lt = load i64* %R1_Var
  211.   %ln1Lu = load i64* %R2_Var
  212.   %ln1Lv = load i64* %SpLim_Var
  213.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %ln1Lp( i64* %ln1Lq, i64* %ln1Lr, i64* %ln1Ls, i64 %ln1Lt, i64 %ln1Lu, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1Lv, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  214.   ret void
  215.  
  216. c1L8:
  217.   %ln1Lw = load i64* %ls1Im
  218.   %ln1Lx = sub i64 %ln1Lw, 1
  219.   store i64 %ln1Lx, i64* %ls1IE
  220.   %ln1Ly = load i64* %ls1Im
  221.   %ln1Lz = load i64** %Sp_Var
  222.   %ln1LA = getelementptr inbounds i64* %ln1Lz, i32 -1
  223.   store i64 %ln1Ly, i64* %ln1LA, !tbaa !1
  224.   %ln1LB = load i64* %ls1IE
  225.   store i64 %ln1LB, i64* %R2_Var
  226.   %ln1LC = ptrtoint void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @s1Ip_info to i64
  227.   %ln1LD = load i64** %Sp_Var
  228.   %ln1LE = getelementptr inbounds i64* %ln1LD, i32 -2
  229.   store i64 %ln1LC, i64* %ln1LE, !tbaa !1
  230.   %ln1LF = load i64** %Sp_Var
  231.   %ln1LG = getelementptr inbounds i64* %ln1LF, i32 -2
  232.   %ln1LH = ptrtoint i64* %ln1LG to i64
  233.   %ln1LI = inttoptr i64 %ln1LH to i64*
  234.   store i64* %ln1LI, i64** %Sp_Var
  235.   %ln1LJ = load i64** %Base_Var
  236.   %ln1LK = load i64** %Sp_Var
  237.   %ln1LL = load i64** %Hp_Var
  238.   %ln1LM = load i64* %R1_Var
  239.   %ln1LN = load i64* %R2_Var
  240.   %ln1LO = load i64* %SpLim_Var
  241.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @Main_zdwfactorial_info( i64* %ln1LJ, i64* %ln1LK, i64* %ln1LL, i64 %ln1LM, i64 %ln1LN, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1LO, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  242.   ret void
  243.  
  244. }
  245.  
  246.  
  247.  
  248. %s1Iw_ret_struct = type <{i64, i64}>
  249. @s1Iw_info_itable = internal constant %s1Iw_ret_struct<{i64 0, i64 32}>, section "X98A__STRIP,__me0", align 8
  250.                    
  251. define internal cc 10 void @s1Iw_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"
  252. {
  253. c1MG:
  254.   %Base_Var = alloca i64*, i32 1
  255.   store i64* %Base_Arg, i64** %Base_Var
  256.   %Sp_Var = alloca i64*, i32 1
  257.   store i64* %Sp_Arg, i64** %Sp_Var
  258.   %Hp_Var = alloca i64*, i32 1
  259.   store i64* %Hp_Arg, i64** %Hp_Var
  260.   %R1_Var = alloca i64, i32 1
  261.   store i64 %R1_Arg, i64* %R1_Var
  262.   %R2_Var = alloca i64, i32 1
  263.   store i64 %R2_Arg, i64* %R2_Var
  264.   %R3_Var = alloca i64, i32 1
  265.   store i64 %R3_Arg, i64* %R3_Var
  266.   %R4_Var = alloca i64, i32 1
  267.   store i64 %R4_Arg, i64* %R4_Var
  268.   %R5_Var = alloca i64, i32 1
  269.   store i64 %R5_Arg, i64* %R5_Var
  270.   %R6_Var = alloca i64, i32 1
  271.   store i64 %R6_Arg, i64* %R6_Var
  272.   %SpLim_Var = alloca i64, i32 1
  273.   store i64 %SpLim_Arg, i64* %SpLim_Var
  274.   %F1_Var = alloca float, i32 1
  275.   store float %F1_Arg, float* %F1_Var
  276.   %F2_Var = alloca float, i32 1
  277.   store float %F2_Arg, float* %F2_Var
  278.   %F3_Var = alloca float, i32 1
  279.   store float %F3_Arg, float* %F3_Var
  280.   %F4_Var = alloca float, i32 1
  281.   store float %F4_Arg, float* %F4_Var
  282.   %D1_Var = alloca double, i32 1
  283.   store double %D1_Arg, double* %D1_Var
  284.   %D2_Var = alloca double, i32 1
  285.   store double %D2_Arg, double* %D2_Var
  286.   %ln1MH = load i64** %Hp_Var
  287.   %ln1MI = getelementptr inbounds i64* %ln1MH, i32 2
  288.   %ln1MJ = ptrtoint i64* %ln1MI to i64
  289.   %ln1MK = inttoptr i64 %ln1MJ to i64*
  290.   store i64* %ln1MK, i64** %Hp_Var
  291.   %ln1ML = load i64** %Hp_Var
  292.   %ln1MM = ptrtoint i64* %ln1ML to i64
  293.   %ln1MN = load i64** %Base_Var
  294.   %ln1MO = getelementptr inbounds i64* %ln1MN, i32 18
  295.   %ln1MP = bitcast i64* %ln1MO to i64*
  296.   %ln1MQ = load i64* %ln1MP, !tbaa !4
  297.   %ln1MR = icmp ugt i64 %ln1MM, %ln1MQ
  298.   br i1 %ln1MR, label %c1MX, label %n1MY
  299.  
  300. n1MY:
  301.   %ln1MZ = ptrtoint [0 x i64]* @ghczmprim_GHCziTypes_Izh_con_info to i64
  302.   %ln1N0 = load i64** %Hp_Var
  303.   %ln1N1 = getelementptr inbounds i64* %ln1N0, i32 -1
  304.   store i64 %ln1MZ, i64* %ln1N1, !tbaa !2
  305.   %ln1N2 = load i64* %R1_Var
  306.   %ln1N3 = load i64** %Hp_Var
  307.   %ln1N4 = getelementptr inbounds i64* %ln1N3, i32 0
  308.   store i64 %ln1N2, i64* %ln1N4, !tbaa !2
  309.   %ln1N5 = load i64** %Hp_Var
  310.   %ln1N6 = ptrtoint i64* %ln1N5 to i64
  311.   %ln1N7 = add i64 %ln1N6, -7
  312.   store i64 %ln1N7, i64* %R1_Var
  313.   %ln1N8 = load i64** %Sp_Var
  314.   %ln1N9 = getelementptr inbounds i64* %ln1N8, i32 1
  315.   %ln1Na = ptrtoint i64* %ln1N9 to i64
  316.   %ln1Nb = inttoptr i64 %ln1Na to i64*
  317.   store i64* %ln1Nb, i64** %Sp_Var
  318.   %ln1Nc = load i64** %Sp_Var
  319.   %ln1Nd = getelementptr inbounds i64* %ln1Nc, i32 0
  320.   %ln1Ne = bitcast i64* %ln1Nd to i64*
  321.   %ln1Nf = load i64* %ln1Ne, !tbaa !1
  322.   %ln1Ng = inttoptr i64 %ln1Nf to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
  323.   %ln1Nh = load i64** %Base_Var
  324.   %ln1Ni = load i64** %Sp_Var
  325.   %ln1Nj = load i64** %Hp_Var
  326.   %ln1Nk = load i64* %R1_Var
  327.   %ln1Nl = load i64* %SpLim_Var
  328.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %ln1Ng( i64* %ln1Nh, i64* %ln1Ni, i64* %ln1Nj, i64 %ln1Nk, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1Nl, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  329.   ret void
  330.  
  331. c1Nm:
  332.   %ln1Nn = load i64** %Base_Var
  333.   %ln1No = load i64** %Sp_Var
  334.   %ln1Np = load i64** %Hp_Var
  335.   %ln1Nq = load i64* %R1_Var
  336.   %ln1Nr = load i64* %SpLim_Var
  337.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @stg_gc_unbx_r1( i64* %ln1Nn, i64* %ln1No, i64* %ln1Np, i64 %ln1Nq, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1Nr, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  338.   ret void
  339.  
  340. c1MX:
  341.   %ln1Ns = load i64** %Base_Var
  342.   %ln1Nt = getelementptr inbounds i64* %ln1Ns, i32 24
  343.   store i64 16, i64* %ln1Nt, !tbaa !4
  344.   br label %c1Nm
  345.  
  346. }
  347.  
  348.  
  349. @ghczmprim_GHCziTypes_Izh_con_info = external global [0 x i64]
  350.                                      
  351. declare  cc 10 void @stg_gc_unbx_r1(i64* noalias nocapture, i64* noalias nocapture, i64* noalias nocapture, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double) align 8
  352.  
  353.  
  354. %s1IR_ret_struct = type <{i64, i64}>
  355. @s1IR_info_itable = internal constant %s1IR_ret_struct<{i64 0, i64 32}>, section "X98A__STRIP,__me0", align 8
  356.                    
  357. define internal cc 10 void @s1IR_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"
  358. {
  359. c1NI:
  360.   %Base_Var = alloca i64*, i32 1
  361.   store i64* %Base_Arg, i64** %Base_Var
  362.   %Sp_Var = alloca i64*, i32 1
  363.   store i64* %Sp_Arg, i64** %Sp_Var
  364.   %Hp_Var = alloca i64*, i32 1
  365.   store i64* %Hp_Arg, i64** %Hp_Var
  366.   %R1_Var = alloca i64, i32 1
  367.   store i64 %R1_Arg, i64* %R1_Var
  368.   %R2_Var = alloca i64, i32 1
  369.   store i64 %R2_Arg, i64* %R2_Var
  370.   %R3_Var = alloca i64, i32 1
  371.   store i64 %R3_Arg, i64* %R3_Var
  372.   %R4_Var = alloca i64, i32 1
  373.   store i64 %R4_Arg, i64* %R4_Var
  374.   %R5_Var = alloca i64, i32 1
  375.   store i64 %R5_Arg, i64* %R5_Var
  376.   %R6_Var = alloca i64, i32 1
  377.   store i64 %R6_Arg, i64* %R6_Var
  378.   %SpLim_Var = alloca i64, i32 1
  379.   store i64 %SpLim_Arg, i64* %SpLim_Var
  380.   %F1_Var = alloca float, i32 1
  381.   store float %F1_Arg, float* %F1_Var
  382.   %F2_Var = alloca float, i32 1
  383.   store float %F2_Arg, float* %F2_Var
  384.   %F3_Var = alloca float, i32 1
  385.   store float %F3_Arg, float* %F3_Var
  386.   %F4_Var = alloca float, i32 1
  387.   store float %F4_Arg, float* %F4_Var
  388.   %D1_Var = alloca double, i32 1
  389.   store double %D1_Arg, double* %D1_Var
  390.   %D2_Var = alloca double, i32 1
  391.   store double %D2_Arg, double* %D2_Var
  392.   %ln1NJ = load i64* %R1_Var
  393.   %ln1NK = add i64 %ln1NJ, 7
  394.   %ln1NL = inttoptr i64 %ln1NK to i64*
  395.   %ln1NM = load i64* %ln1NL, !tbaa !3
  396.   store i64 %ln1NM, i64* %R2_Var
  397.   %ln1NN = ptrtoint void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @s1Iw_info to i64
  398.   %ln1NO = load i64** %Sp_Var
  399.   %ln1NP = getelementptr inbounds i64* %ln1NO, i32 0
  400.   store i64 %ln1NN, i64* %ln1NP, !tbaa !1
  401.   %ln1NQ = load i64** %Base_Var
  402.   %ln1NR = load i64** %Sp_Var
  403.   %ln1NS = load i64** %Hp_Var
  404.   %ln1NT = load i64* %R1_Var
  405.   %ln1NU = load i64* %R2_Var
  406.   %ln1NV = load i64* %SpLim_Var
  407.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @Main_zdwfactorial_info( i64* %ln1NQ, i64* %ln1NR, i64* %ln1NS, i64 %ln1NT, i64 %ln1NU, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1NV, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  408.   ret void
  409.  
  410. }
  411.  
  412.  
  413.  
  414. %Main_factorial_info_struct = type <{i64, i64, i64}>
  415. @Main_factorial_info_itable =  constant %Main_factorial_info_struct<{i64 4294967301, i64 0, i64 15}>, section "X98A__STRIP,__me0", align 8
  416.                              
  417. define  cc 10 void @Main_factorial_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"
  418. {
  419. c1OF:
  420.   %Base_Var = alloca i64*, i32 1
  421.   store i64* %Base_Arg, i64** %Base_Var
  422.   %Sp_Var = alloca i64*, i32 1
  423.   store i64* %Sp_Arg, i64** %Sp_Var
  424.   %Hp_Var = alloca i64*, i32 1
  425.   store i64* %Hp_Arg, i64** %Hp_Var
  426.   %R1_Var = alloca i64, i32 1
  427.   store i64 %R1_Arg, i64* %R1_Var
  428.   %R2_Var = alloca i64, i32 1
  429.   store i64 %R2_Arg, i64* %R2_Var
  430.   %R3_Var = alloca i64, i32 1
  431.   store i64 %R3_Arg, i64* %R3_Var
  432.   %R4_Var = alloca i64, i32 1
  433.   store i64 %R4_Arg, i64* %R4_Var
  434.   %R5_Var = alloca i64, i32 1
  435.   store i64 %R5_Arg, i64* %R5_Var
  436.   %R6_Var = alloca i64, i32 1
  437.   store i64 %R6_Arg, i64* %R6_Var
  438.   %SpLim_Var = alloca i64, i32 1
  439.   store i64 %SpLim_Arg, i64* %SpLim_Var
  440.   %F1_Var = alloca float, i32 1
  441.   store float %F1_Arg, float* %F1_Var
  442.   %F2_Var = alloca float, i32 1
  443.   store float %F2_Arg, float* %F2_Var
  444.   %F3_Var = alloca float, i32 1
  445.   store float %F3_Arg, float* %F3_Var
  446.   %F4_Var = alloca float, i32 1
  447.   store float %F4_Arg, float* %F4_Var
  448.   %D1_Var = alloca double, i32 1
  449.   store double %D1_Arg, double* %D1_Var
  450.   %D2_Var = alloca double, i32 1
  451.   store double %D2_Arg, double* %D2_Var
  452.   %ln1OG = load i64** %Sp_Var
  453.   %ln1OH = getelementptr inbounds i64* %ln1OG, i32 -1
  454.   %ln1OI = ptrtoint i64* %ln1OH to i64
  455.   %ln1OJ = load i64* %SpLim_Var
  456.   %ln1OK = icmp ult i64 %ln1OI, %ln1OJ
  457.   br i1 %ln1OK, label %c1OM, label %n1ON
  458.  
  459. n1ON:
  460.   %ln1OO = load i64* %R2_Var
  461.   store i64 %ln1OO, i64* %R1_Var
  462.   %ln1OP = ptrtoint void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @s1IR_info to i64
  463.   %ln1OQ = load i64** %Sp_Var
  464.   %ln1OR = getelementptr inbounds i64* %ln1OQ, i32 -1
  465.   store i64 %ln1OP, i64* %ln1OR, !tbaa !1
  466.   %ln1OS = load i64** %Sp_Var
  467.   %ln1OT = getelementptr inbounds i64* %ln1OS, i32 -1
  468.   %ln1OU = ptrtoint i64* %ln1OT to i64
  469.   %ln1OV = inttoptr i64 %ln1OU to i64*
  470.   store i64* %ln1OV, i64** %Sp_Var
  471.   %ln1OW = load i64* %R1_Var
  472.   %ln1OX = and i64 %ln1OW, 7
  473.   %ln1OY = icmp ne i64 %ln1OX, 0
  474.   br i1 %ln1OY, label %c1P1, label %n1P2
  475.  
  476. n1P2:
  477.   %ln1P3 = load i64* %R1_Var
  478.   %ln1P4 = inttoptr i64 %ln1P3 to i64*
  479.   %ln1P5 = load i64* %ln1P4, !tbaa !3
  480.   %ln1P6 = inttoptr i64 %ln1P5 to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
  481.   %ln1P7 = load i64** %Base_Var
  482.   %ln1P8 = load i64** %Sp_Var
  483.   %ln1P9 = load i64** %Hp_Var
  484.   %ln1Pa = load i64* %R1_Var
  485.   %ln1Pb = 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)* %ln1P6( i64* %ln1P7, i64* %ln1P8, i64* %ln1P9, i64 %ln1Pa, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1Pb, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  487.   ret void
  488.  
  489. c1OM:
  490.   %ln1Pc = ptrtoint %Main_factorial_closure_struct* @Main_factorial_closure to i64
  491.   store i64 %ln1Pc, i64* %R1_Var
  492.   %ln1Pd = load i64** %Base_Var
  493.   %ln1Pe = getelementptr inbounds i64* %ln1Pd, i32 -1
  494.   %ln1Pf = bitcast i64* %ln1Pe to i64*
  495.   %ln1Pg = load i64* %ln1Pf, !tbaa !4
  496.   %ln1Ph = inttoptr i64 %ln1Pg to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
  497.   %ln1Pi = load i64** %Base_Var
  498.   %ln1Pj = load i64** %Sp_Var
  499.   %ln1Pk = load i64** %Hp_Var
  500.   %ln1Pl = load i64* %R1_Var
  501.   %ln1Pm = load i64* %R2_Var
  502.   %ln1Pn = load i64* %SpLim_Var
  503.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %ln1Ph( i64* %ln1Pi, i64* %ln1Pj, i64* %ln1Pk, i64 %ln1Pl, i64 %ln1Pm, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1Pn, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  504.   ret void
  505.  
  506. c1P1:
  507.   %ln1Po = load i64** %Base_Var
  508.   %ln1Pp = load i64** %Sp_Var
  509.   %ln1Pq = load i64** %Hp_Var
  510.   %ln1Pr = load i64* %R1_Var
  511.   %ln1Ps = load i64* %SpLim_Var
  512.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @s1IR_info( i64* %ln1Po, i64* %ln1Pp, i64* %ln1Pq, i64 %ln1Pr, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1Ps, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  513.   ret void
  514.  
  515. }
  516.  
  517.  
  518.  
  519. %s1Iy_ret_struct = type <{i64, i64}>
  520. @s1Iy_info_itable = internal constant %s1Iy_ret_struct<{i64 0, i64 32}>, section "X98A__STRIP,__me0", align 8
  521.                    
  522. define internal cc 10 void @s1Iy_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"
  523. {
  524. c1PR:
  525.   %Base_Var = alloca i64*, i32 1
  526.   store i64* %Base_Arg, i64** %Base_Var
  527.   %Sp_Var = alloca i64*, i32 1
  528.   store i64* %Sp_Arg, i64** %Sp_Var
  529.   %Hp_Var = alloca i64*, i32 1
  530.   store i64* %Hp_Arg, i64** %Hp_Var
  531.   %R1_Var = alloca i64, i32 1
  532.   store i64 %R1_Arg, i64* %R1_Var
  533.   %R2_Var = alloca i64, i32 1
  534.   store i64 %R2_Arg, i64* %R2_Var
  535.   %R3_Var = alloca i64, i32 1
  536.   store i64 %R3_Arg, i64* %R3_Var
  537.   %R4_Var = alloca i64, i32 1
  538.   store i64 %R4_Arg, i64* %R4_Var
  539.   %R5_Var = alloca i64, i32 1
  540.   store i64 %R5_Arg, i64* %R5_Var
  541.   %R6_Var = alloca i64, i32 1
  542.   store i64 %R6_Arg, i64* %R6_Var
  543.   %SpLim_Var = alloca i64, i32 1
  544.   store i64 %SpLim_Arg, i64* %SpLim_Var
  545.   %F1_Var = alloca float, i32 1
  546.   store float %F1_Arg, float* %F1_Var
  547.   %F2_Var = alloca float, i32 1
  548.   store float %F2_Arg, float* %F2_Var
  549.   %F3_Var = alloca float, i32 1
  550.   store float %F3_Arg, float* %F3_Var
  551.   %F4_Var = alloca float, i32 1
  552.   store float %F4_Arg, float* %F4_Var
  553.   %D1_Var = alloca double, i32 1
  554.   store double %D1_Arg, double* %D1_Var
  555.   %D2_Var = alloca double, i32 1
  556.   store double %D2_Arg, double* %D2_Var
  557.   store i64 0, i64* %R2_Var
  558.   %ln1PS = load i64* %R1_Var
  559.   store i64 %ln1PS, i64* %R3_Var
  560.   %ln1PT = ptrtoint [0 x i64]* @ghczmprim_GHCziTypes_ZMZN_closure to i64
  561.   %ln1PU = add i64 %ln1PT, 1
  562.   store i64 %ln1PU, i64* %R4_Var
  563.   %ln1PV = load i64** %Sp_Var
  564.   %ln1PW = getelementptr inbounds i64* %ln1PV, i32 1
  565.   %ln1PX = ptrtoint i64* %ln1PW to i64
  566.   %ln1PY = inttoptr i64 %ln1PX to i64*
  567.   store i64* %ln1PY, i64** %Sp_Var
  568.   %ln1PZ = load i64** %Base_Var
  569.   %ln1Q0 = load i64** %Sp_Var
  570.   %ln1Q1 = load i64** %Hp_Var
  571.   %ln1Q2 = load i64* %R1_Var
  572.   %ln1Q3 = load i64* %R2_Var
  573.   %ln1Q4 = load i64* %R3_Var
  574.   %ln1Q5 = load i64* %R4_Var
  575.   %ln1Q6 = load i64* %SpLim_Var
  576.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @base_GHCziShow_zdwshowSignedInt_info( i64* %ln1PZ, i64* %ln1Q0, i64* %ln1Q1, i64 %ln1Q2, i64 %ln1Q3, i64 %ln1Q4, i64 %ln1Q5, i64 undef, i64 undef, i64 %ln1Q6, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  577.   ret void
  578.  
  579. }
  580.  
  581.  
  582. @ghczmprim_GHCziTypes_ZMZN_closure = external global [0 x i64]
  583.                                      
  584. declare  cc 10 void @base_GHCziShow_zdwshowSignedInt_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
  585.  
  586.  
  587. %Main_main2_info_struct = type <{i64, i64}>
  588. @Main_main2_info_itable =  constant %Main_main2_info_struct<{i64 0, i64 22}>, section "X98A__STRIP,__me0", align 8
  589.                          
  590. define  cc 10 void @Main_main2_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"
  591. {
  592. c1Ru:
  593.   %Base_Var = alloca i64*, i32 1
  594.   store i64* %Base_Arg, i64** %Base_Var
  595.   %Sp_Var = alloca i64*, i32 1
  596.   store i64* %Sp_Arg, i64** %Sp_Var
  597.   %Hp_Var = alloca i64*, i32 1
  598.   store i64* %Hp_Arg, i64** %Hp_Var
  599.   %R1_Var = alloca i64, i32 1
  600.   store i64 %R1_Arg, i64* %R1_Var
  601.   %R2_Var = alloca i64, i32 1
  602.   store i64 %R2_Arg, i64* %R2_Var
  603.   %R3_Var = alloca i64, i32 1
  604.   store i64 %R3_Arg, i64* %R3_Var
  605.   %R4_Var = alloca i64, i32 1
  606.   store i64 %R4_Arg, i64* %R4_Var
  607.   %R5_Var = alloca i64, i32 1
  608.   store i64 %R5_Arg, i64* %R5_Var
  609.   %R6_Var = alloca i64, i32 1
  610.   store i64 %R6_Arg, i64* %R6_Var
  611.   %SpLim_Var = alloca i64, i32 1
  612.   store i64 %SpLim_Arg, i64* %SpLim_Var
  613.   %F1_Var = alloca float, i32 1
  614.   store float %F1_Arg, float* %F1_Var
  615.   %F2_Var = alloca float, i32 1
  616.   store float %F2_Arg, float* %F2_Var
  617.   %F3_Var = alloca float, i32 1
  618.   store float %F3_Arg, float* %F3_Var
  619.   %F4_Var = alloca float, i32 1
  620.   store float %F4_Arg, float* %F4_Var
  621.   %D1_Var = alloca double, i32 1
  622.   store double %D1_Arg, double* %D1_Var
  623.   %D2_Var = alloca double, i32 1
  624.   store double %D2_Arg, double* %D2_Var
  625.   %lc1QH = alloca i64, i32 1
  626.   %ln1Rv = load i64** %Sp_Var
  627.   %ln1Rw = getelementptr inbounds i64* %ln1Rv, i32 -3
  628.   %ln1Rx = ptrtoint i64* %ln1Rw to i64
  629.   %ln1Ry = load i64* %SpLim_Var
  630.   %ln1Rz = icmp ult i64 %ln1Rx, %ln1Ry
  631.   br i1 %ln1Rz, label %c1RB, label %n1RC
  632.  
  633. n1RC:
  634.   %ln1RD = load i64** %Hp_Var
  635.   %ln1RE = getelementptr inbounds i64* %ln1RD, i32 2
  636.   %ln1RF = ptrtoint i64* %ln1RE to i64
  637.   %ln1RG = inttoptr i64 %ln1RF to i64*
  638.   store i64* %ln1RG, i64** %Hp_Var
  639.   %ln1RH = load i64** %Hp_Var
  640.   %ln1RI = ptrtoint i64* %ln1RH to i64
  641.   %ln1RJ = load i64** %Base_Var
  642.   %ln1RK = getelementptr inbounds i64* %ln1RJ, i32 18
  643.   %ln1RL = bitcast i64* %ln1RK to i64*
  644.   %ln1RM = load i64* %ln1RL, !tbaa !4
  645.   %ln1RN = icmp ugt i64 %ln1RI, %ln1RM
  646.   br i1 %ln1RN, label %c1RP, label %n1RQ
  647.  
  648. n1RQ:
  649.   %ln1RR = ptrtoint [0 x i64]* @stg_CAF_BLACKHOLE_info to i64
  650.   %ln1RS = load i64** %Hp_Var
  651.   %ln1RT = getelementptr inbounds i64* %ln1RS, i32 -1
  652.   store i64 %ln1RR, i64* %ln1RT, !tbaa !2
  653.   %ln1RU = load i64** %Base_Var
  654.   %ln1RV = getelementptr inbounds i64* %ln1RU, i32 20
  655.   %ln1RW = bitcast i64* %ln1RV to i64*
  656.   %ln1RX = load i64* %ln1RW, !tbaa !4
  657.   %ln1RY = load i64** %Hp_Var
  658.   %ln1RZ = getelementptr inbounds i64* %ln1RY, i32 0
  659.   store i64 %ln1RX, i64* %ln1RZ, !tbaa !2
  660.   %ln1S0 = load i64** %Base_Var
  661.   %ln1S1 = ptrtoint i64* %ln1S0 to i64
  662.   %ln1S2 = inttoptr i64 %ln1S1 to i8*
  663.   %ln1S3 = load i64* %R1_Var
  664.   %ln1S4 = inttoptr i64 %ln1S3 to i8*
  665.   %ln1S5 = load i64** %Hp_Var
  666.   %ln1S6 = getelementptr inbounds i64* %ln1S5, i32 -1
  667.   %ln1S7 = ptrtoint i64* %ln1S6 to i64
  668.   %ln1S8 = inttoptr i64 %ln1S7 to i8*
  669.   store i64 undef, i64* %R3_Var
  670.   store i64 undef, i64* %R4_Var
  671.   store i64 undef, i64* %R5_Var
  672.   store i64 undef, i64* %R6_Var
  673.   store float undef, float* %F1_Var
  674.   store float undef, float* %F2_Var
  675.   store float undef, float* %F3_Var
  676.   store float undef, float* %F4_Var
  677.   store double undef, double* %D1_Var
  678.   store double undef, double* %D2_Var
  679.   %ln1S9 = call ccc i64 (i8*,i8*,i8*)* @newCAF( i8* %ln1S2, i8* %ln1S4, i8* %ln1S8 ) nounwind
  680.   store i64 %ln1S9, i64* %lc1QH
  681.   %ln1Sa = load i64* %lc1QH
  682.   %ln1Sb = icmp eq i64 %ln1Sa, 0
  683.   br i1 %ln1Sb, label %c1Sc, label %n1Sd
  684.  
  685. n1Sd:
  686.   br label %c1Se
  687.  
  688. c1RB:
  689.   %ln1Sf = load i64** %Base_Var
  690.   %ln1Sg = getelementptr inbounds i64* %ln1Sf, i32 -2
  691.   %ln1Sh = bitcast i64* %ln1Sg to i64*
  692.   %ln1Si = load i64* %ln1Sh, !tbaa !4
  693.   %ln1Sj = inttoptr i64 %ln1Si to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
  694.   %ln1Sk = load i64** %Base_Var
  695.   %ln1Sl = load i64** %Sp_Var
  696.   %ln1Sm = load i64** %Hp_Var
  697.   %ln1Sn = load i64* %R1_Var
  698.   %ln1So = load i64* %SpLim_Var
  699.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %ln1Sj( i64* %ln1Sk, i64* %ln1Sl, i64* %ln1Sm, i64 %ln1Sn, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1So, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  700.   ret void
  701.  
  702. c1RP:
  703.   %ln1Sp = load i64** %Base_Var
  704.   %ln1Sq = getelementptr inbounds i64* %ln1Sp, i32 24
  705.   store i64 16, i64* %ln1Sq, !tbaa !4
  706.   br label %c1RB
  707.  
  708. c1Sc:
  709.   %ln1Sr = load i64* %R1_Var
  710.   %ln1Ss = inttoptr i64 %ln1Sr to i64*
  711.   %ln1St = load i64* %ln1Ss, !tbaa !3
  712.   %ln1Su = inttoptr i64 %ln1St to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
  713.   %ln1Sv = load i64** %Base_Var
  714.   %ln1Sw = load i64** %Sp_Var
  715.   %ln1Sx = load i64** %Hp_Var
  716.   %ln1Sy = load i64* %R1_Var
  717.   %ln1Sz = load i64* %SpLim_Var
  718.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %ln1Su( i64* %ln1Sv, i64* %ln1Sw, i64* %ln1Sx, i64 %ln1Sy, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1Sz, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  719.   ret void
  720.  
  721. c1Se:
  722.   %ln1SA = ptrtoint [0 x i64]* @stg_bh_upd_frame_info to i64
  723.   %ln1SB = load i64** %Sp_Var
  724.   %ln1SC = getelementptr inbounds i64* %ln1SB, i32 -2
  725.   store i64 %ln1SA, i64* %ln1SC, !tbaa !1
  726.   %ln1SD = load i64** %Hp_Var
  727.   %ln1SE = getelementptr inbounds i64* %ln1SD, i32 -1
  728.   %ln1SF = ptrtoint i64* %ln1SE to i64
  729.   %ln1SG = load i64** %Sp_Var
  730.   %ln1SH = getelementptr inbounds i64* %ln1SG, i32 -1
  731.   store i64 %ln1SF, i64* %ln1SH, !tbaa !1
  732.   store i64 10, i64* %R2_Var
  733.   %ln1SI = ptrtoint void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @s1Iy_info to i64
  734.   %ln1SJ = load i64** %Sp_Var
  735.   %ln1SK = getelementptr inbounds i64* %ln1SJ, i32 -3
  736.   store i64 %ln1SI, i64* %ln1SK, !tbaa !1
  737.   %ln1SL = load i64** %Sp_Var
  738.   %ln1SM = getelementptr inbounds i64* %ln1SL, i32 -3
  739.   %ln1SN = ptrtoint i64* %ln1SM to i64
  740.   %ln1SO = inttoptr i64 %ln1SN to i64*
  741.   store i64* %ln1SO, i64** %Sp_Var
  742.   %ln1SP = load i64** %Base_Var
  743.   %ln1SQ = load i64** %Sp_Var
  744.   %ln1SR = load i64** %Hp_Var
  745.   %ln1SS = load i64* %R1_Var
  746.   %ln1ST = load i64* %R2_Var
  747.   %ln1SU = load i64* %SpLim_Var
  748.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @Main_zdwfactorial_info( i64* %ln1SP, i64* %ln1SQ, i64* %ln1SR, i64 %ln1SS, i64 %ln1ST, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1SU, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  749.   ret void
  750.  
  751. }
  752.  
  753.  
  754. @stg_CAF_BLACKHOLE_info = external global [0 x i64]
  755.                          
  756. declare  ccc i64 @newCAF(i8*, i8*, i8*) align 8
  757.  
  758. @stg_bh_upd_frame_info = external global [0 x i64]
  759.                          
  760.  
  761. %Main_main1_info_struct = type <{i64, i64, i64, i64}>
  762. @Main_main1_info_itable =  constant %Main_main1_info_struct<{i64 add (i64 sub (i64 ptrtoint (%Main_main1_srt_struct* @Main_main1_srt to i64),i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @Main_main1_info to i64)),i64 0), i64 4294967299, i64 0, i64 30064771087}>, section "X98A__STRIP,__me0", align 8
  763.                          
  764. define  cc 10 void @Main_main1_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"
  765. {
  766. c1Tb:
  767.   %Base_Var = alloca i64*, i32 1
  768.   store i64* %Base_Arg, i64** %Base_Var
  769.   %Sp_Var = alloca i64*, i32 1
  770.   store i64* %Sp_Arg, i64** %Sp_Var
  771.   %Hp_Var = alloca i64*, i32 1
  772.   store i64* %Hp_Arg, i64** %Hp_Var
  773.   %R1_Var = alloca i64, i32 1
  774.   store i64 %R1_Arg, i64* %R1_Var
  775.   %R2_Var = alloca i64, i32 1
  776.   store i64 %R2_Arg, i64* %R2_Var
  777.   %R3_Var = alloca i64, i32 1
  778.   store i64 %R3_Arg, i64* %R3_Var
  779.   %R4_Var = alloca i64, i32 1
  780.   store i64 %R4_Arg, i64* %R4_Var
  781.   %R5_Var = alloca i64, i32 1
  782.   store i64 %R5_Arg, i64* %R5_Var
  783.   %R6_Var = alloca i64, i32 1
  784.   store i64 %R6_Arg, i64* %R6_Var
  785.   %SpLim_Var = alloca i64, i32 1
  786.   store i64 %SpLim_Arg, i64* %SpLim_Var
  787.   %F1_Var = alloca float, i32 1
  788.   store float %F1_Arg, float* %F1_Var
  789.   %F2_Var = alloca float, i32 1
  790.   store float %F2_Arg, float* %F2_Var
  791.   %F3_Var = alloca float, i32 1
  792.   store float %F3_Arg, float* %F3_Var
  793.   %F4_Var = alloca float, i32 1
  794.   store float %F4_Arg, float* %F4_Var
  795.   %D1_Var = alloca double, i32 1
  796.   store double %D1_Arg, double* %D1_Var
  797.   %D2_Var = alloca double, i32 1
  798.   store double %D2_Arg, double* %D2_Var
  799.   %ln1Tc = ptrtoint [0 x i64]* @base_GHCziIOziHandleziFD_stdout_closure to i64
  800.   store i64 %ln1Tc, i64* %R2_Var
  801.   %ln1Td = ptrtoint %Main_main2_closure_struct* @Main_main2_closure to i64
  802.   store i64 %ln1Td, i64* %R3_Var
  803.   %ln1Te = ptrtoint [0 x i64]* @ghczmprim_GHCziTypes_True_closure to i64
  804.   %ln1Tf = add i64 %ln1Te, 2
  805.   store i64 %ln1Tf, i64* %R4_Var
  806.   %ln1Tg = load i64** %Base_Var
  807.   %ln1Th = load i64** %Sp_Var
  808.   %ln1Ti = load i64** %Hp_Var
  809.   %ln1Tj = load i64* %R1_Var
  810.   %ln1Tk = load i64* %R2_Var
  811.   %ln1Tl = load i64* %R3_Var
  812.   %ln1Tm = load i64* %R4_Var
  813.   %ln1Tn = load i64* %SpLim_Var
  814.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @base_GHCziIOziHandleziText_hPutStr2_info( i64* %ln1Tg, i64* %ln1Th, i64* %ln1Ti, i64 %ln1Tj, i64 %ln1Tk, i64 %ln1Tl, i64 %ln1Tm, i64 undef, i64 undef, i64 %ln1Tn, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  815.   ret void
  816.  
  817. }
  818.  
  819.  
  820. @ghczmprim_GHCziTypes_True_closure = external global [0 x i64]
  821.                                      
  822. declare  cc 10 void @base_GHCziIOziHandleziText_hPutStr2_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
  823.  
  824.  
  825. %Main_main_info_struct = type <{i64, i64, i64, i64}>
  826. @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 4294967299, i64 0, i64 4294967311}>, section "X98A__STRIP,__me0", align 8
  827.                          
  828. 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"
  829. {
  830. c1Tx:
  831.   %Base_Var = alloca i64*, i32 1
  832.   store i64* %Base_Arg, i64** %Base_Var
  833.   %Sp_Var = alloca i64*, i32 1
  834.   store i64* %Sp_Arg, i64** %Sp_Var
  835.   %Hp_Var = alloca i64*, i32 1
  836.   store i64* %Hp_Arg, i64** %Hp_Var
  837.   %R1_Var = alloca i64, i32 1
  838.   store i64 %R1_Arg, i64* %R1_Var
  839.   %R2_Var = alloca i64, i32 1
  840.   store i64 %R2_Arg, i64* %R2_Var
  841.   %R3_Var = alloca i64, i32 1
  842.   store i64 %R3_Arg, i64* %R3_Var
  843.   %R4_Var = alloca i64, i32 1
  844.   store i64 %R4_Arg, i64* %R4_Var
  845.   %R5_Var = alloca i64, i32 1
  846.   store i64 %R5_Arg, i64* %R5_Var
  847.   %R6_Var = alloca i64, i32 1
  848.   store i64 %R6_Arg, i64* %R6_Var
  849.   %SpLim_Var = alloca i64, i32 1
  850.   store i64 %SpLim_Arg, i64* %SpLim_Var
  851.   %F1_Var = alloca float, i32 1
  852.   store float %F1_Arg, float* %F1_Var
  853.   %F2_Var = alloca float, i32 1
  854.   store float %F2_Arg, float* %F2_Var
  855.   %F3_Var = alloca float, i32 1
  856.   store float %F3_Arg, float* %F3_Var
  857.   %F4_Var = alloca float, i32 1
  858.   store float %F4_Arg, float* %F4_Var
  859.   %D1_Var = alloca double, i32 1
  860.   store double %D1_Arg, double* %D1_Var
  861.   %D2_Var = alloca double, i32 1
  862.   store double %D2_Arg, double* %D2_Var
  863.   %ln1Ty = load i64** %Base_Var
  864.   %ln1Tz = load i64** %Sp_Var
  865.   %ln1TA = load i64** %Hp_Var
  866.   %ln1TB = load i64* %R1_Var
  867.   %ln1TC = load i64* %SpLim_Var
  868.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @Main_main1_info( i64* %ln1Ty, i64* %ln1Tz, i64* %ln1TA, i64 %ln1TB, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1TC, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  869.   ret void
  870.  
  871. }
  872.  
  873.  
  874.  
  875. %Main_main3_info_struct = type <{i64, i64, i64, i64}>
  876. @Main_main3_info_itable =  constant %Main_main3_info_struct<{i64 add (i64 sub (i64 ptrtoint (%Main_main3_srt_struct* @Main_main3_srt to i64),i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @Main_main3_info to i64)),i64 0), i64 4294967299, i64 0, i64 12884901903}>, section "X98A__STRIP,__me0", align 8
  877.                          
  878. define  cc 10 void @Main_main3_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"
  879. {
  880. c1TP:
  881.   %Base_Var = alloca i64*, i32 1
  882.   store i64* %Base_Arg, i64** %Base_Var
  883.   %Sp_Var = alloca i64*, i32 1
  884.   store i64* %Sp_Arg, i64** %Sp_Var
  885.   %Hp_Var = alloca i64*, i32 1
  886.   store i64* %Hp_Arg, i64** %Hp_Var
  887.   %R1_Var = alloca i64, i32 1
  888.   store i64 %R1_Arg, i64* %R1_Var
  889.   %R2_Var = alloca i64, i32 1
  890.   store i64 %R2_Arg, i64* %R2_Var
  891.   %R3_Var = alloca i64, i32 1
  892.   store i64 %R3_Arg, i64* %R3_Var
  893.   %R4_Var = alloca i64, i32 1
  894.   store i64 %R4_Arg, i64* %R4_Var
  895.   %R5_Var = alloca i64, i32 1
  896.   store i64 %R5_Arg, i64* %R5_Var
  897.   %R6_Var = alloca i64, i32 1
  898.   store i64 %R6_Arg, i64* %R6_Var
  899.   %SpLim_Var = alloca i64, i32 1
  900.   store i64 %SpLim_Arg, i64* %SpLim_Var
  901.   %F1_Var = alloca float, i32 1
  902.   store float %F1_Arg, float* %F1_Var
  903.   %F2_Var = alloca float, i32 1
  904.   store float %F2_Arg, float* %F2_Var
  905.   %F3_Var = alloca float, i32 1
  906.   store float %F3_Arg, float* %F3_Var
  907.   %F4_Var = alloca float, i32 1
  908.   store float %F4_Arg, float* %F4_Var
  909.   %D1_Var = alloca double, i32 1
  910.   store double %D1_Arg, double* %D1_Var
  911.   %D2_Var = alloca double, i32 1
  912.   store double %D2_Arg, double* %D2_Var
  913.   %ln1TQ = ptrtoint %Main_main1_closure_struct* @Main_main1_closure to i64
  914.   %ln1TR = add i64 %ln1TQ, 1
  915.   store i64 %ln1TR, i64* %R2_Var
  916.   %ln1TS = load i64** %Base_Var
  917.   %ln1TT = load i64** %Sp_Var
  918.   %ln1TU = load i64** %Hp_Var
  919.   %ln1TV = load i64* %R1_Var
  920.   %ln1TW = load i64* %R2_Var
  921.   %ln1TX = load i64* %SpLim_Var
  922.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @base_GHCziTopHandler_runMainIO1_info( i64* %ln1TS, i64* %ln1TT, i64* %ln1TU, i64 %ln1TV, i64 %ln1TW, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1TX, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  923.   ret void
  924.  
  925. }
  926.  
  927.  
  928. declare  cc 10 void @base_GHCziTopHandler_runMainIO1_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
  929.  
  930.  
  931. %ZCMain_main_info_struct = type <{i64, i64, i64, i64}>
  932. @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 4294967299, i64 0, i64 4294967311}>, section "X98A__STRIP,__me0", align 8
  933.                            
  934. 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"
  935. {
  936. c1U7:
  937.   %Base_Var = alloca i64*, i32 1
  938.   store i64* %Base_Arg, i64** %Base_Var
  939.   %Sp_Var = alloca i64*, i32 1
  940.   store i64* %Sp_Arg, i64** %Sp_Var
  941.   %Hp_Var = alloca i64*, i32 1
  942.   store i64* %Hp_Arg, i64** %Hp_Var
  943.   %R1_Var = alloca i64, i32 1
  944.   store i64 %R1_Arg, i64* %R1_Var
  945.   %R2_Var = alloca i64, i32 1
  946.   store i64 %R2_Arg, i64* %R2_Var
  947.   %R3_Var = alloca i64, i32 1
  948.   store i64 %R3_Arg, i64* %R3_Var
  949.   %R4_Var = alloca i64, i32 1
  950.   store i64 %R4_Arg, i64* %R4_Var
  951.   %R5_Var = alloca i64, i32 1
  952.   store i64 %R5_Arg, i64* %R5_Var
  953.   %R6_Var = alloca i64, i32 1
  954.   store i64 %R6_Arg, i64* %R6_Var
  955.   %SpLim_Var = alloca i64, i32 1
  956.   store i64 %SpLim_Arg, i64* %SpLim_Var
  957.   %F1_Var = alloca float, i32 1
  958.   store float %F1_Arg, float* %F1_Var
  959.   %F2_Var = alloca float, i32 1
  960.   store float %F2_Arg, float* %F2_Var
  961.   %F3_Var = alloca float, i32 1
  962.   store float %F3_Arg, float* %F3_Var
  963.   %F4_Var = alloca float, i32 1
  964.   store float %F4_Arg, float* %F4_Var
  965.   %D1_Var = alloca double, i32 1
  966.   store double %D1_Arg, double* %D1_Var
  967.   %D2_Var = alloca double, i32 1
  968.   store double %D2_Arg, double* %D2_Var
  969.   %ln1U8 = load i64** %Base_Var
  970.   %ln1U9 = load i64** %Sp_Var
  971.   %ln1Ua = load i64** %Hp_Var
  972.   %ln1Ub = load i64* %R1_Var
  973.   %ln1Uc = load i64* %SpLim_Var
  974.   tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @Main_main3_info( i64* %ln1U8, i64* %ln1U9, i64* %ln1Ua, i64 %ln1Ub, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1Uc, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
  975.   ret void
  976.  
  977. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement