@sml_check_flag=external local_unnamed_addr global i32
@_SMLZ9Subscript=external unnamed_addr constant i8*
@a=private unnamed_addr constant<{[4x i8],i32,[13x i8]}><{[4x i8]zeroinitializer,i32 -2147483635,[13x i8]c"LrTable.Goto\00"}>,align 8
@b=private unnamed_addr constant<{[4x i8],i32,i8*,i32,[4x i8],i32}><{[4x i8]zeroinitializer,i32 -805306352,i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,[13x i8]}>,<{[4x i8],i32,[13x i8]}>*@a,i32 0,i32 0,i32 0),i32 8),i32 0,[4x i8]zeroinitializer,i32 1}>,align 8
@_SMLDL57=private constant<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1879048184,i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*,i32,[4x i8],i32}>,<{[4x i8],i32,i8*,i32,[4x i8],i32}>*@b,i32 0,i32 0,i32 0),i32 8)}>,align 8
@c=private unnamed_addr constant<{[4x i8],i32,[39x i8]}><{[4x i8]zeroinitializer,i32 -2147483609,[39x i8]c"src/ml-yacc/lib/lrtable.sml:23.35(811)\00"}>,align 8
@d=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN7LrTable15describeActionsE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN7LrTable15describeActionsE_89 to void(...)*),i32 -2147483647}>,align 8
@e=private unnamed_addr constant<{[4x i8],i32,[39x i8]}><{[4x i8]zeroinitializer,i32 -2147483609,[39x i8]c"src/ml-yacc/lib/lrtable.sml:26.33(901)\00"}>,align 8
@f=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN7LrTable12describeGotoE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN7LrTable12describeGotoE_90 to void(...)*),i32 -2147483647}>,align 8
@g=private unnamed_addr constant<{[4x i8],i32,[40x i8]}><{[4x i8]zeroinitializer,i32 -2147483608,[40x i8]c"src/ml-yacc/lib/lrtable.sml:45.35(1454)\00"}>,align 8
@h=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN7LrTable6actionE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN7LrTable6actionE_93 to void(...)*),i32 -2147483647}>,align 8
@i=private unnamed_addr constant<{[4x i8],i32,[40x i8]}><{[4x i8]zeroinitializer,i32 -2147483608,[40x i8]c"src/ml-yacc/lib/lrtable.sml:50.35(1618)\00"}>,align 8
@j=private unnamed_addr constant<{[4x i8],i32,[40x i8]}><{[4x i8]zeroinitializer,i32 -2147483608,[40x i8]c"src/ml-yacc/lib/lrtable.sml:52.23(1680)\00"}>,align 8
@k=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN7LrTable4gotoE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN7LrTable4gotoE_94 to void(...)*),i32 -2147483647}>,align 8
@l=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN7LrTable9mkLrTableE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN7LrTable9mkLrTableE_95 to void(...)*),i32 -2147483647}>,align 8
@m=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i32(i8*)*@_SMLFN7LrTable9numStatesE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN7LrTable9numStatesE_96 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN7LrTable9numStatesE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@m,i64 0,i32 2)to i8*)
@n=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i32(i8*)*@_SMLFN7LrTable8numRulesE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN7LrTable8numRulesE_97 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN7LrTable8numRulesE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@n,i64 0,i32 2)to i8*)
@_SMLZN7LrTable15describeActionsE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@d,i64 0,i32 2)to i8*)
@_SMLZN7LrTable12describeGotoE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@f,i64 0,i32 2)to i8*)
@_SMLZN7LrTable6actionE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@h,i64 0,i32 2)to i8*)
@_SMLZN7LrTable4gotoE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@k,i64 0,i32 2)to i8*)
@o=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN7LrTable12initialStateE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN7LrTable12initialStateE_98 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN7LrTable12initialStateE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@o,i64 0,i32 2)to i8*)
@_SMLZN7LrTable4GotoE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL57,i64 0,i32 2)to i8*)
@_SMLZN7LrTable9mkLrTableE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@l,i64 0,i32 2)to i8*)
@_SML_ftabd48915586b5da876_lrtable=external global i8
@p=internal unnamed_addr global i1 false
declare void@llvm.gcroot(i8**,i8*)#0
declare i8*@sml_alloc(i32 inreg)local_unnamed_addr#0
declare void@sml_check(i32 inreg)local_unnamed_addr
declare void@sml_gcroot(i8*,void()*,i8*,i8*)local_unnamed_addr#0
declare void@sml_raise(i8*inreg)local_unnamed_addr#1
define private void@_SML_tabbd48915586b5da876_lrtable()#2{
unreachable
}
define void@_SML_loadd48915586b5da876_lrtable(i8*%a)local_unnamed_addr#0{
%b=load i1,i1*@p,align 1
br i1%b,label%c,label%d
c:
ret void
d:
store i1 true,i1*@p,align 1
tail call void@sml_gcroot(i8*%a,void()*@_SML_tabbd48915586b5da876_lrtable,i8*@_SML_ftabd48915586b5da876_lrtable,i8*null)#0
ret void
}
define void@_SML_maind48915586b5da876_lrtable()local_unnamed_addr#3 gc"smlsharp"{
ret void
}
define internal fastcc i8*@_SMLLN7LrTable15describeActionsE_59(i8*inreg%a,i8*inreg%b)#4 gc"smlsharp"{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
%e=bitcast i8*%b to i32*
%f=load i32,i32*%e,align 4
%g=icmp slt i32%f,0
br i1%g,label%w,label%h
h:
%i=bitcast i8*%a to i32**
%j=load i32*,i32**%i,align 8
%k=getelementptr inbounds i32,i32*%j,i64 -1
%l=load i32,i32*%k,align 4
%m=lshr i32%l,3
%n=and i32%m,33554431
%o=icmp slt i32%f,%n
br i1%o,label%p,label%w
p:
%q=bitcast i32*%j to i8*
%r=shl i32%f,3
%s=sext i32%r to i64
%t=getelementptr inbounds i8,i8*%q,i64%s
%u=bitcast i8*%t to i8**
%v=load i8*,i8**%u,align 8
ret i8*%v
w:
%x=load i8*,i8**@_SMLZ9Subscript,align 8
store i8*%x,i8**%c,align 8
%y=call i8*@sml_alloc(i32 inreg 20)#0
%z=getelementptr inbounds i8,i8*%y,i64 -4
%A=bitcast i8*%z to i32*
store i32 1342177296,i32*%A,align 4
store i8*%y,i8**%d,align 8
%B=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%C=bitcast i8*%y to i8**
store i8*%B,i8**%C,align 8
%D=getelementptr inbounds i8,i8*%y,i64 8
%E=bitcast i8*%D to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[39x i8]}>,<{[4x i8],i32,[39x i8]}>*@c,i64 0,i32 2,i64 0),i8**%E,align 8
%F=getelementptr inbounds i8,i8*%y,i64 16
%G=bitcast i8*%F to i32*
store i32 3,i32*%G,align 4
%H=call i8*@sml_alloc(i32 inreg 60)#0
%I=getelementptr inbounds i8,i8*%H,i64 -4
%J=bitcast i8*%I to i32*
store i32 1342177336,i32*%J,align 4
%K=getelementptr inbounds i8,i8*%H,i64 56
%L=bitcast i8*%K to i32*
store i32 1,i32*%L,align 4
%M=load i8*,i8**%d,align 8
%N=bitcast i8*%H to i8**
store i8*%M,i8**%N,align 8
call void@sml_raise(i8*inreg%H)#1
unreachable
}
define fastcc i8*@_SMLFN7LrTable15describeActionsE(i8*inreg%a)#3 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=bitcast i8*%a to i8**
%e=load i8*,i8**%d,align 8
store i8*%e,i8**%b,align 8
%f=call i8*@sml_alloc(i32 inreg 12)#0
%g=getelementptr inbounds i8,i8*%f,i64 -4
%h=bitcast i8*%g to i32*
store i32 1342177288,i32*%h,align 4
store i8*%f,i8**%c,align 8
%i=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%j=bitcast i8*%f to i8**
store i8*%i,i8**%j,align 8
%k=getelementptr inbounds i8,i8*%f,i64 8
%l=bitcast i8*%k to i32*
store i32 1,i32*%l,align 4
%m=call i8*@sml_alloc(i32 inreg 28)#0
%n=getelementptr inbounds i8,i8*%m,i64 -4
%o=bitcast i8*%n to i32*
store i32 1342177304,i32*%o,align 4
%p=load i8*,i8**%c,align 8
%q=bitcast i8*%m to i8**
store i8*%p,i8**%q,align 8
%r=getelementptr inbounds i8,i8*%m,i64 8
%s=bitcast i8*%r to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN7LrTable15describeActionsE_59 to void(...)*),void(...)**%s,align 8
%t=getelementptr inbounds i8,i8*%m,i64 16
%u=bitcast i8*%t to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN7LrTable15describeActionsE_59 to void(...)*),void(...)**%u,align 8
%v=getelementptr inbounds i8,i8*%m,i64 24
%w=bitcast i8*%v to i32*
store i32 -2147483647,i32*%w,align 4
ret i8*%m
}
define internal fastcc i8*@_SMLLN7LrTable12describeGotoE_63(i8*inreg%a,i8*inreg%b)#4 gc"smlsharp"{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
%e=bitcast i8*%b to i32*
%f=load i32,i32*%e,align 4
%g=icmp slt i32%f,0
br i1%g,label%w,label%h
h:
%i=bitcast i8*%a to i32**
%j=load i32*,i32**%i,align 8
%k=getelementptr inbounds i32,i32*%j,i64 -1
%l=load i32,i32*%k,align 4
%m=lshr i32%l,3
%n=and i32%m,33554431
%o=icmp slt i32%f,%n
br i1%o,label%p,label%w
p:
%q=bitcast i32*%j to i8*
%r=shl i32%f,3
%s=sext i32%r to i64
%t=getelementptr inbounds i8,i8*%q,i64%s
%u=bitcast i8*%t to i8**
%v=load i8*,i8**%u,align 8
ret i8*%v
w:
%x=load i8*,i8**@_SMLZ9Subscript,align 8
store i8*%x,i8**%c,align 8
%y=call i8*@sml_alloc(i32 inreg 20)#0
%z=getelementptr inbounds i8,i8*%y,i64 -4
%A=bitcast i8*%z to i32*
store i32 1342177296,i32*%A,align 4
store i8*%y,i8**%d,align 8
%B=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%C=bitcast i8*%y to i8**
store i8*%B,i8**%C,align 8
%D=getelementptr inbounds i8,i8*%y,i64 8
%E=bitcast i8*%D to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[39x i8]}>,<{[4x i8],i32,[39x i8]}>*@e,i64 0,i32 2,i64 0),i8**%E,align 8
%F=getelementptr inbounds i8,i8*%y,i64 16
%G=bitcast i8*%F to i32*
store i32 3,i32*%G,align 4
%H=call i8*@sml_alloc(i32 inreg 60)#0
%I=getelementptr inbounds i8,i8*%H,i64 -4
%J=bitcast i8*%I to i32*
store i32 1342177336,i32*%J,align 4
%K=getelementptr inbounds i8,i8*%H,i64 56
%L=bitcast i8*%K to i32*
store i32 1,i32*%L,align 4
%M=load i8*,i8**%d,align 8
%N=bitcast i8*%H to i8**
store i8*%M,i8**%N,align 8
call void@sml_raise(i8*inreg%H)#1
unreachable
}
define fastcc i8*@_SMLFN7LrTable12describeGotoE(i8*inreg%a)#3 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=getelementptr inbounds i8,i8*%a,i64 8
%e=bitcast i8*%d to i8**
%f=load i8*,i8**%e,align 8
store i8*%f,i8**%b,align 8
%g=call i8*@sml_alloc(i32 inreg 12)#0
%h=getelementptr inbounds i8,i8*%g,i64 -4
%i=bitcast i8*%h to i32*
store i32 1342177288,i32*%i,align 4
store i8*%g,i8**%c,align 8
%j=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%k=bitcast i8*%g to i8**
store i8*%j,i8**%k,align 8
%l=getelementptr inbounds i8,i8*%g,i64 8
%m=bitcast i8*%l to i32*
store i32 1,i32*%m,align 4
%n=call i8*@sml_alloc(i32 inreg 28)#0
%o=getelementptr inbounds i8,i8*%n,i64 -4
%p=bitcast i8*%o to i32*
store i32 1342177304,i32*%p,align 4
%q=load i8*,i8**%c,align 8
%r=bitcast i8*%n to i8**
store i8*%q,i8**%r,align 8
%s=getelementptr inbounds i8,i8*%n,i64 8
%t=bitcast i8*%s to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN7LrTable12describeGotoE_63 to void(...)*),void(...)**%t,align 8
%u=getelementptr inbounds i8,i8*%n,i64 16
%v=bitcast i8*%u to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN7LrTable12describeGotoE_63 to void(...)*),void(...)**%v,align 8
%w=getelementptr inbounds i8,i8*%n,i64 24
%x=bitcast i8*%w to i32*
store i32 -2147483647,i32*%x,align 4
ret i8*%n
}
define internal fastcc i8*@_SMLL4find_66(i8*inreg%a,i8*inreg%b)#4 gc"smlsharp"{
g:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%c,align 8
br label%e
e:
%f=phi i8*[%H,%E],[%b,%g]
store i8*%f,i8**%d,align 8
%h=load atomic i32,i32*@sml_check_flag unordered,align 4
%i=icmp eq i32%h,0
br i1%i,label%l,label%j
j:
call void@sml_check(i32 inreg%h)
%k=load i8*,i8**%d,align 8
br label%l
l:
%m=phi i8*[%k,%j],[%f,%e]
%n=icmp eq i8*%m,null
br i1%n,label%o,label%v
o:
%p=bitcast i8**%c to i8***
%q=load i8**,i8***%p,align 8
%r=load i8*,i8**%q,align 8
%s=getelementptr inbounds i8,i8*%r,i64 16
%t=bitcast i8*%s to i8**
%u=load i8*,i8**%t,align 8
ret i8*%u
v:
%w=bitcast i8*%m to i32**
%x=load i32*,i32**%w,align 8
%y=load i32,i32*%x,align 4
%z=load i8*,i8**%c,align 8
%A=getelementptr inbounds i8,i8*%z,i64 8
%B=bitcast i8*%A to i32*
%C=load i32,i32*%B,align 4
%D=icmp slt i32%y,%C
br i1%D,label%E,label%I
E:
%F=getelementptr inbounds i8,i8*%m,i64 16
%G=bitcast i8*%F to i8**
%H=load i8*,i8**%G,align 8
br label%e
I:
%J=icmp eq i32%y,%C
br i1%J,label%K,label%O
K:
%L=getelementptr inbounds i8,i8*%m,i64 8
%M=bitcast i8*%L to i8**
%N=load i8*,i8**%M,align 8
ret i8*%N
O:
%P=bitcast i8*%z to i8**
%Q=load i8*,i8**%P,align 8
%R=getelementptr inbounds i8,i8*%Q,i64 16
%S=bitcast i8*%R to i8**
%T=load i8*,i8**%S,align 8
ret i8*%T
}
define internal fastcc i8*@_SMLL4find_69(i8*inreg%a,i8*inreg%b)#4 gc"smlsharp"{
h:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%c,align 8
%e=bitcast i8**%c to i32**
br label%f
f:
%g=phi i8*[%A,%x],[%b,%h]
store i8*%g,i8**%d,align 8
%i=load atomic i32,i32*@sml_check_flag unordered,align 4
%j=icmp eq i32%i,0
br i1%j,label%m,label%k
k:
call void@sml_check(i32 inreg%i)
%l=load i8*,i8**%d,align 8
br label%m
m:
%n=phi i8*[%l,%k],[%g,%f]
%o=icmp eq i8*%n,null
br i1%o,label%p,label%q
p:
ret i8*null
q:
%r=bitcast i8*%n to i32**
%s=load i32*,i32**%r,align 8
%t=load i32,i32*%s,align 4
%u=load i32*,i32**%e,align 8
%v=load i32,i32*%u,align 4
%w=icmp slt i32%t,%v
br i1%w,label%x,label%B
x:
%y=getelementptr inbounds i8,i8*%n,i64 16
%z=bitcast i8*%y to i8**
%A=load i8*,i8**%z,align 8
br label%f
B:
%C=icmp eq i32%t,%v
br i1%C,label%D,label%p
D:
%E=getelementptr inbounds i8,i8*%n,i64 8
%F=bitcast i8*%E to i8**
%G=load i8*,i8**%F,align 8
store i8*%G,i8**%c,align 8
%H=call i8*@sml_alloc(i32 inreg 12)#0
%I=getelementptr inbounds i8,i8*%H,i64 -4
%J=bitcast i8*%I to i32*
store i32 1342177288,i32*%J,align 4
%K=load i8*,i8**%c,align 8
%L=bitcast i8*%H to i8**
store i8*%K,i8**%L,align 8
%M=getelementptr inbounds i8,i8*%H,i64 8
%N=bitcast i8*%M to i32*
store i32 1,i32*%N,align 4
ret i8*%H
}
define internal fastcc i8*@_SMLLN7LrTable6actionE_73(i8*inreg%a,i8*inreg%b)#4 gc"smlsharp"{
n:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
%e=alloca i8*,align 8
%f=alloca i8*,align 8
%g=alloca i8*,align 8
call void@llvm.gcroot(i8**%e,i8*null)#0
call void@llvm.gcroot(i8**%f,i8*null)#0
call void@llvm.gcroot(i8**%g,i8*null)#0
store i8*%a,i8**%e,align 8
store i8*%b,i8**%f,align 8
%h=load atomic i32,i32*@sml_check_flag unordered,align 4
%i=icmp eq i32%h,0
br i1%i,label%l,label%j
j:
call void@sml_check(i32 inreg%h)
%k=load i8*,i8**%f,align 8
br label%l
l:
%m=phi i8*[%k,%j],[%b,%n]
%o=bitcast i8*%m to i32**
%p=load i32*,i32**%o,align 8
%q=load i32,i32*%p,align 4
%r=getelementptr inbounds i8,i8*%m,i64 8
%s=bitcast i8*%r to i8**
%t=load i8*,i8**%s,align 8
store i8*%t,i8**%g,align 8
%u=icmp slt i32%q,0
br i1%u,label%aP,label%v
v:
%w=bitcast i8**%e to i32***
%x=load i32**,i32***%w,align 8
%y=load i32*,i32**%x,align 8
%z=getelementptr inbounds i32,i32*%y,i64 -1
%A=load i32,i32*%z,align 4
%B=lshr i32%A,3
%C=and i32%B,33554431
%D=icmp slt i32%q,%C
br i1%D,label%E,label%aP
E:
%F=bitcast i32*%y to i8*
%G=shl i32%q,3
%H=sext i32%G to i64
%I=getelementptr inbounds i8,i8*%F,i64%H
%J=bitcast i8*%I to i8**
%K=load i8*,i8**%J,align 8
%L=bitcast i8*%K to i8**
%M=load i8*,i8**%L,align 8
store i8*%M,i8**%e,align 8
%N=getelementptr inbounds i8,i8*%K,i64 8
%O=bitcast i8*%N to i8**
%P=load i8*,i8**%O,align 8
store i8*%P,i8**%f,align 8
%Q=call i8*@sml_alloc(i32 inreg 28)#0
%R=getelementptr inbounds i8,i8*%Q,i64 -4
%S=bitcast i8*%R to i32*
store i32 1342177304,i32*%S,align 4
%T=load i8*,i8**%g,align 8
%U=bitcast i8*%Q to i8**
store i8*%T,i8**%U,align 8
%V=load i8*,i8**%e,align 8
%W=getelementptr inbounds i8,i8*%Q,i64 8
%X=bitcast i8*%W to i8**
store i8*%V,i8**%X,align 8
%Y=load i8*,i8**%f,align 8
%Z=getelementptr inbounds i8,i8*%Q,i64 16
%aa=bitcast i8*%Z to i8**
store i8*%Y,i8**%aa,align 8
%ab=getelementptr inbounds i8,i8*%Q,i64 24
%ac=bitcast i8*%ab to i32*
store i32 7,i32*%ac,align 4
%ad=bitcast i8**%c to i8*
call void@llvm.lifetime.start.p0i8(i64 8,i8*%ad)
%ae=bitcast i8**%d to i8*
call void@llvm.lifetime.start.p0i8(i64 8,i8*%ae)
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%Q,i8**%c,align 8
%af=load atomic i32,i32*@sml_check_flag unordered,align 4
%ag=icmp eq i32%af,0
br i1%ag,label%ah,label%aj
ah:
%ai=bitcast i8*%T to i32*
br label%an
aj:
call void@sml_check(i32 inreg%af)
%ak=bitcast i8**%c to i32***
%al=load i32**,i32***%ak,align 8
%am=load i32*,i32**%al,align 8
br label%an
an:
%ao=phi i32*[%am,%aj],[%ai,%ah]
%ap=load i32,i32*%ao,align 4
%aq=call i8*@sml_alloc(i32 inreg 20)#0
%ar=getelementptr inbounds i8,i8*%aq,i64 -4
%as=bitcast i8*%ar to i32*
store i32 1342177296,i32*%as,align 4
store i8*%aq,i8**%d,align 8
%at=load i8*,i8**%c,align 8
%au=bitcast i8*%aq to i8**
store i8*%at,i8**%au,align 8
%av=getelementptr inbounds i8,i8*%aq,i64 8
%aw=bitcast i8*%av to i32*
store i32%ap,i32*%aw,align 4
%ax=getelementptr inbounds i8,i8*%aq,i64 16
%ay=bitcast i8*%ax to i32*
store i32 1,i32*%ay,align 4
%az=call i8*@sml_alloc(i32 inreg 28)#0
%aA=getelementptr inbounds i8,i8*%az,i64 -4
%aB=bitcast i8*%aA to i32*
store i32 1342177304,i32*%aB,align 4
%aC=load i8*,i8**%d,align 8
%aD=bitcast i8*%az to i8**
store i8*%aC,i8**%aD,align 8
%aE=getelementptr inbounds i8,i8*%az,i64 8
%aF=bitcast i8*%aE to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLL4find_66 to void(...)*),void(...)**%aF,align 8
%aG=getelementptr inbounds i8,i8*%az,i64 16
%aH=bitcast i8*%aG to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLL4find_66 to void(...)*),void(...)**%aH,align 8
%aI=getelementptr inbounds i8,i8*%az,i64 24
%aJ=bitcast i8*%aI to i32*
store i32 -2147483647,i32*%aJ,align 4
%aK=load i8*,i8**%c,align 8
%aL=getelementptr inbounds i8,i8*%aK,i64 8
%aM=bitcast i8*%aL to i8**
%aN=load i8*,i8**%aM,align 8
%aO=tail call fastcc i8*@_SMLL4find_66(i8*inreg%aC,i8*inreg%aN)
call void@llvm.lifetime.end.p0i8(i64 8,i8*%ad)
call void@llvm.lifetime.end.p0i8(i64 8,i8*%ae)
ret i8*%aO
aP:
store i8*null,i8**%g,align 8
%aQ=load i8*,i8**@_SMLZ9Subscript,align 8
store i8*%aQ,i8**%e,align 8
%aR=call i8*@sml_alloc(i32 inreg 20)#0
%aS=getelementptr inbounds i8,i8*%aR,i64 -4
%aT=bitcast i8*%aS to i32*
store i32 1342177296,i32*%aT,align 4
store i8*%aR,i8**%f,align 8
%aU=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aV=bitcast i8*%aR to i8**
store i8*%aU,i8**%aV,align 8
%aW=getelementptr inbounds i8,i8*%aR,i64 8
%aX=bitcast i8*%aW to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[40x i8]}>,<{[4x i8],i32,[40x i8]}>*@g,i64 0,i32 2,i64 0),i8**%aX,align 8
%aY=getelementptr inbounds i8,i8*%aR,i64 16
%aZ=bitcast i8*%aY to i32*
store i32 3,i32*%aZ,align 4
%a0=call i8*@sml_alloc(i32 inreg 60)#0
%a1=getelementptr inbounds i8,i8*%a0,i64 -4
%a2=bitcast i8*%a1 to i32*
store i32 1342177336,i32*%a2,align 4
%a3=getelementptr inbounds i8,i8*%a0,i64 56
%a4=bitcast i8*%a3 to i32*
store i32 1,i32*%a4,align 4
%a5=load i8*,i8**%f,align 8
%a6=bitcast i8*%a0 to i8**
store i8*%a5,i8**%a6,align 8
call void@sml_raise(i8*inreg%a0)#1
unreachable
}
define fastcc i8*@_SMLFN7LrTable6actionE(i8*inreg%a)#3 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=bitcast i8*%a to i8**
%e=load i8*,i8**%d,align 8
store i8*%e,i8**%b,align 8
%f=call i8*@sml_alloc(i32 inreg 12)#0
%g=getelementptr inbounds i8,i8*%f,i64 -4
%h=bitcast i8*%g to i32*
store i32 1342177288,i32*%h,align 4
store i8*%f,i8**%c,align 8
%i=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%j=bitcast i8*%f to i8**
store i8*%i,i8**%j,align 8
%k=getelementptr inbounds i8,i8*%f,i64 8
%l=bitcast i8*%k to i32*
store i32 1,i32*%l,align 4
%m=call i8*@sml_alloc(i32 inreg 28)#0
%n=getelementptr inbounds i8,i8*%m,i64 -4
%o=bitcast i8*%n to i32*
store i32 1342177304,i32*%o,align 4
%p=load i8*,i8**%c,align 8
%q=bitcast i8*%m to i8**
store i8*%p,i8**%q,align 8
%r=getelementptr inbounds i8,i8*%m,i64 8
%s=bitcast i8*%r to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN7LrTable6actionE_73 to void(...)*),void(...)**%s,align 8
%t=getelementptr inbounds i8,i8*%m,i64 16
%u=bitcast i8*%t to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN7LrTable6actionE_73 to void(...)*),void(...)**%u,align 8
%v=getelementptr inbounds i8,i8*%m,i64 24
%w=bitcast i8*%v to i32*
store i32 -2147483647,i32*%w,align 4
ret i8*%m
}
define internal fastcc i8*@_SMLLN7LrTable4gotoE_78(i8*inreg%a,i8*inreg%b)#4 gc"smlsharp"{
n:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
%e=alloca i8*,align 8
%f=alloca i8*,align 8
%g=alloca i8*,align 8
call void@llvm.gcroot(i8**%e,i8*null)#0
call void@llvm.gcroot(i8**%f,i8*null)#0
call void@llvm.gcroot(i8**%g,i8*null)#0
store i8*%a,i8**%f,align 8
store i8*%b,i8**%e,align 8
%h=load atomic i32,i32*@sml_check_flag unordered,align 4
%i=icmp eq i32%h,0
br i1%i,label%l,label%j
j:
call void@sml_check(i32 inreg%h)
%k=load i8*,i8**%e,align 8
br label%l
l:
%m=phi i8*[%k,%j],[%b,%n]
%o=bitcast i8*%m to i32**
%p=load i32*,i32**%o,align 8
%q=load i32,i32*%p,align 4
%r=getelementptr inbounds i8,i8*%m,i64 8
%s=bitcast i8*%r to i8**
%t=load i8*,i8**%s,align 8
store i8*%t,i8**%g,align 8
%u=icmp slt i32%q,0
br i1%u,label%aG,label%v
v:
%w=bitcast i8**%f to i32***
%x=load i32**,i32***%w,align 8
%y=load i32*,i32**%x,align 8
%z=getelementptr inbounds i32,i32*%y,i64 -1
%A=load i32,i32*%z,align 4
%B=lshr i32%A,3
%C=and i32%B,33554431
%D=icmp slt i32%q,%C
br i1%D,label%E,label%aG
E:
%F=bitcast i32**%x to i8**
store i8*null,i8**%f,align 8
%G=load i8*,i8**%F,align 8
%H=shl i32%q,3
%I=sext i32%H to i64
%J=getelementptr inbounds i8,i8*%G,i64%I
%K=bitcast i8*%J to i8**
%L=load i8*,i8**%K,align 8
store i8*%L,i8**%f,align 8
%M=call i8*@sml_alloc(i32 inreg 20)#0
%N=getelementptr inbounds i8,i8*%M,i64 -4
%O=bitcast i8*%N to i32*
store i32 1342177296,i32*%O,align 4
%P=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%Q=bitcast i8*%M to i8**
store i8*%P,i8**%Q,align 8
%R=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%S=getelementptr inbounds i8,i8*%M,i64 8
%T=bitcast i8*%S to i8**
store i8*%R,i8**%T,align 8
%U=getelementptr inbounds i8,i8*%M,i64 16
%V=bitcast i8*%U to i32*
store i32 3,i32*%V,align 4
%W=bitcast i8**%c to i8*
call void@llvm.lifetime.start.p0i8(i64 8,i8*%W)
%X=bitcast i8**%d to i8*
call void@llvm.lifetime.start.p0i8(i64 8,i8*%X)
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%M,i8**%c,align 8
%Y=load atomic i32,i32*@sml_check_flag unordered,align 4
%Z=icmp eq i32%Y,0
br i1%Z,label%aa,label%ac
aa:
%ab=bitcast i8*%P to i32*
br label%ag
ac:
call void@sml_check(i32 inreg%Y)
%ad=bitcast i8**%c to i32***
%ae=load i32**,i32***%ad,align 8
%af=load i32*,i32**%ae,align 8
br label%ag
ag:
%ah=phi i32*[%af,%ac],[%ab,%aa]
%ai=load i32,i32*%ah,align 4
%aj=call i8*@sml_alloc(i32 inreg 12)#0
%ak=bitcast i8*%aj to i32*
%al=getelementptr inbounds i8,i8*%aj,i64 -4
%am=bitcast i8*%al to i32*
store i32 1342177288,i32*%am,align 4
store i8*%aj,i8**%d,align 8
store i32%ai,i32*%ak,align 4
%an=getelementptr inbounds i8,i8*%aj,i64 8
%ao=bitcast i8*%an to i32*
store i32 0,i32*%ao,align 4
%ap=call i8*@sml_alloc(i32 inreg 28)#0
%aq=getelementptr inbounds i8,i8*%ap,i64 -4
%ar=bitcast i8*%aq to i32*
store i32 1342177304,i32*%ar,align 4
%as=load i8*,i8**%d,align 8
%at=bitcast i8*%ap to i8**
store i8*%as,i8**%at,align 8
%au=getelementptr inbounds i8,i8*%ap,i64 8
%av=bitcast i8*%au to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLL4find_69 to void(...)*),void(...)**%av,align 8
%aw=getelementptr inbounds i8,i8*%ap,i64 16
%ax=bitcast i8*%aw to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLL4find_69 to void(...)*),void(...)**%ax,align 8
%ay=getelementptr inbounds i8,i8*%ap,i64 24
%az=bitcast i8*%ay to i32*
store i32 -2147483647,i32*%az,align 4
%aA=load i8*,i8**%c,align 8
%aB=getelementptr inbounds i8,i8*%aA,i64 8
%aC=bitcast i8*%aB to i8**
%aD=load i8*,i8**%aC,align 8
%aE=call fastcc i8*@_SMLL4find_69(i8*inreg%as,i8*inreg%aD)
call void@llvm.lifetime.end.p0i8(i64 8,i8*%W)
call void@llvm.lifetime.end.p0i8(i64 8,i8*%X)
%aF=icmp eq i8*%aE,null
br i1%aF,label%aY,label%bh
aG:
store i8*null,i8**%g,align 8
store i8*null,i8**%f,align 8
%aH=load i8*,i8**@_SMLZ9Subscript,align 8
store i8*%aH,i8**%e,align 8
%aI=call i8*@sml_alloc(i32 inreg 20)#0
%aJ=getelementptr inbounds i8,i8*%aI,i64 -4
%aK=bitcast i8*%aJ to i32*
store i32 1342177296,i32*%aK,align 4
store i8*%aI,i8**%f,align 8
%aL=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aM=bitcast i8*%aI to i8**
store i8*%aL,i8**%aM,align 8
%aN=getelementptr inbounds i8,i8*%aI,i64 8
%aO=bitcast i8*%aN to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[40x i8]}>,<{[4x i8],i32,[40x i8]}>*@i,i64 0,i32 2,i64 0),i8**%aO,align 8
%aP=getelementptr inbounds i8,i8*%aI,i64 16
%aQ=bitcast i8*%aP to i32*
store i32 3,i32*%aQ,align 4
%aR=call i8*@sml_alloc(i32 inreg 60)#0
%aS=getelementptr inbounds i8,i8*%aR,i64 -4
%aT=bitcast i8*%aS to i32*
store i32 1342177336,i32*%aT,align 4
%aU=getelementptr inbounds i8,i8*%aR,i64 56
%aV=bitcast i8*%aU to i32*
store i32 1,i32*%aV,align 4
%aW=load i8*,i8**%f,align 8
%aX=bitcast i8*%aR to i8**
store i8*%aW,i8**%aX,align 8
call void@sml_raise(i8*inreg%aR)#1
unreachable
aY:
%aZ=call i8*@sml_alloc(i32 inreg 28)#0
%a0=getelementptr inbounds i8,i8*%aZ,i64 -4
%a1=bitcast i8*%a0 to i32*
store i32 1342177304,i32*%a1,align 4
store i8*%aZ,i8**%f,align 8
%a2=bitcast i8*%aZ to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL57,i64 0,i32 2)to i8*),i8**%a2,align 8
%a3=getelementptr inbounds i8,i8*%aZ,i64 8
%a4=bitcast i8*%a3 to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[40x i8]}>,<{[4x i8],i32,[40x i8]}>*@j,i64 0,i32 2,i64 0),i8**%a4,align 8
%a5=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%a6=getelementptr inbounds i8,i8*%aZ,i64 16
%a7=bitcast i8*%a6 to i8**
store i8*%a5,i8**%a7,align 8
%a8=getelementptr inbounds i8,i8*%aZ,i64 24
%a9=bitcast i8*%a8 to i32*
store i32 7,i32*%a9,align 4
%ba=call i8*@sml_alloc(i32 inreg 60)#0
%bb=getelementptr inbounds i8,i8*%ba,i64 -4
%bc=bitcast i8*%bb to i32*
store i32 1342177336,i32*%bc,align 4
%bd=getelementptr inbounds i8,i8*%ba,i64 56
%be=bitcast i8*%bd to i32*
store i32 1,i32*%be,align 4
%bf=load i8*,i8**%f,align 8
%bg=bitcast i8*%ba to i8**
store i8*%bf,i8**%bg,align 8
call void@sml_raise(i8*inreg%ba)#1
unreachable
bh:
%bi=bitcast i8*%aE to i8**
%bj=load i8*,i8**%bi,align 8
ret i8*%bj
}
define fastcc i8*@_SMLFN7LrTable4gotoE(i8*inreg%a)#3 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=getelementptr inbounds i8,i8*%a,i64 8
%e=bitcast i8*%d to i8**
%f=load i8*,i8**%e,align 8
store i8*%f,i8**%b,align 8
%g=call i8*@sml_alloc(i32 inreg 12)#0
%h=getelementptr inbounds i8,i8*%g,i64 -4
%i=bitcast i8*%h to i32*
store i32 1342177288,i32*%i,align 4
store i8*%g,i8**%c,align 8
%j=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%k=bitcast i8*%g to i8**
store i8*%j,i8**%k,align 8
%l=getelementptr inbounds i8,i8*%g,i64 8
%m=bitcast i8*%l to i32*
store i32 1,i32*%m,align 4
%n=call i8*@sml_alloc(i32 inreg 28)#0
%o=getelementptr inbounds i8,i8*%n,i64 -4
%p=bitcast i8*%o to i32*
store i32 1342177304,i32*%p,align 4
%q=load i8*,i8**%c,align 8
%r=bitcast i8*%n to i8**
store i8*%q,i8**%r,align 8
%s=getelementptr inbounds i8,i8*%n,i64 8
%t=bitcast i8*%s to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN7LrTable4gotoE_78 to void(...)*),void(...)**%t,align 8
%u=getelementptr inbounds i8,i8*%n,i64 16
%v=bitcast i8*%u to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN7LrTable4gotoE_78 to void(...)*),void(...)**%v,align 8
%w=getelementptr inbounds i8,i8*%n,i64 24
%x=bitcast i8*%w to i32*
store i32 -2147483647,i32*%x,align 4
ret i8*%n
}
define fastcc i8*@_SMLFN7LrTable9mkLrTableE(i8*inreg%a)#3 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
%e=bitcast i8*%a to i8**
%f=load i8*,i8**%e,align 8
store i8*%f,i8**%b,align 8
%g=getelementptr inbounds i8,i8*%a,i64 8
%h=bitcast i8*%g to i8**
%i=load i8*,i8**%h,align 8
store i8*%i,i8**%c,align 8
%j=getelementptr inbounds i8,i8*%a,i64 16
%k=bitcast i8*%j to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%d,align 8
%m=getelementptr inbounds i8,i8*%a,i64 24
%n=bitcast i8*%m to i32*
%o=load i32,i32*%n,align 4
%p=getelementptr inbounds i8,i8*%a,i64 28
%q=bitcast i8*%p to i32*
%r=load i32,i32*%q,align 4
%s=call i8*@sml_alloc(i32 inreg 36)#0
%t=getelementptr inbounds i8,i8*%s,i64 -4
%u=bitcast i8*%t to i32*
store i32 1342177312,i32*%u,align 4
%v=load i8*,i8**%b,align 8
%w=bitcast i8*%s to i8**
store i8*%v,i8**%w,align 8
%x=load i8*,i8**%c,align 8
%y=getelementptr inbounds i8,i8*%s,i64 8
%z=bitcast i8*%y to i8**
store i8*%x,i8**%z,align 8
%A=load i8*,i8**%d,align 8
%B=getelementptr inbounds i8,i8*%s,i64 16
%C=bitcast i8*%B to i8**
store i8*%A,i8**%C,align 8
%D=getelementptr inbounds i8,i8*%s,i64 24
%E=bitcast i8*%D to i32*
store i32%o,i32*%E,align 4
%F=getelementptr inbounds i8,i8*%s,i64 28
%G=bitcast i8*%F to i32*
store i32%r,i32*%G,align 4
%H=getelementptr inbounds i8,i8*%s,i64 32
%I=bitcast i8*%H to i32*
store i32 7,i32*%I,align 4
ret i8*%s
}
define fastcc i32@_SMLFN7LrTable9numStatesE(i8*inreg%a)#3 gc"smlsharp"{
%b=getelementptr inbounds i8,i8*%a,i64 28
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
ret i32%d
}
define fastcc i32@_SMLFN7LrTable8numRulesE(i8*inreg%a)#3 gc"smlsharp"{
%b=getelementptr inbounds i8,i8*%a,i64 24
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
ret i32%d
}
define fastcc i8*@_SMLFN7LrTable12initialStateE(i8*inreg%a)#3 gc"smlsharp"{
%b=getelementptr inbounds i8,i8*%a,i64 16
%c=bitcast i8*%b to i8**
%d=load i8*,i8**%c,align 8
ret i8*%d
}
define internal fastcc i8*@_SMLLN7LrTable15describeActionsE_89(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN7LrTable15describeActionsE(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLN7LrTable12describeGotoE_90(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN7LrTable12describeGotoE(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLN7LrTable6actionE_93(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN7LrTable6actionE(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLN7LrTable4gotoE_94(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN7LrTable4gotoE(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLN7LrTable9mkLrTableE_95(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN7LrTable9mkLrTableE(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLN7LrTable9numStatesE_96(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=getelementptr inbounds i8,i8*%b,i64 28
%d=bitcast i8*%c to i32*
%e=load i32,i32*%d,align 4
%f=tail call i8*@sml_alloc(i32 inreg 4)#0
%g=bitcast i8*%f to i32*
%h=getelementptr inbounds i8,i8*%f,i64 -4
%i=bitcast i8*%h to i32*
store i32 4,i32*%i,align 4
store i32%e,i32*%g,align 4
ret i8*%f
}
define internal fastcc i8*@_SMLLN7LrTable8numRulesE_97(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=getelementptr inbounds i8,i8*%b,i64 24
%d=bitcast i8*%c to i32*
%e=load i32,i32*%d,align 4
%f=tail call i8*@sml_alloc(i32 inreg 4)#0
%g=bitcast i8*%f to i32*
%h=getelementptr inbounds i8,i8*%f,i64 -4
%i=bitcast i8*%h to i32*
store i32 4,i32*%i,align 4
store i32%e,i32*%g,align 4
ret i8*%f
}
define internal fastcc i8*@_SMLLN7LrTable12initialStateE_98(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=getelementptr inbounds i8,i8*%b,i64 16
%d=bitcast i8*%c to i8**
%e=load i8*,i8**%d,align 8
ret i8*%e
}
declare void@llvm.lifetime.start.p0i8(i64,i8*)#0
declare void@llvm.lifetime.end.p0i8(i64,i8*)#0
attributes#0={nounwind}
attributes#1={noreturn}
attributes#2={noreturn nounwind}
attributes#3={nounwind uwtable}
attributes#4={uwtable}
