@sml_check_flag=external local_unnamed_addr global i32
@_SMLZN13SMLSharp__OSIO6S__IFMTE=external local_unnamed_addr global i32
@_SMLZN13SMLSharp__OSIO7S__IFDIRE=external local_unnamed_addr global i32
@_SMLZN13SMLSharp__OSIO7S__IFLNKE=external local_unnamed_addr global i32
@_SMLZN13SMLSharp__OSIO7S__IRUSRE=external local_unnamed_addr global i32
@_SMLZN13SMLSharp__OSIO7S__IWUSRE=external local_unnamed_addr global i32
@_SMLZN13SMLSharp__OSIO7S__IXUSRE=external local_unnamed_addr global i32
@_SMLZN16SMLSharp__Runtime6SysErrE=external local_unnamed_addr global i8*
@_SMLZ5Match=external unnamed_addr constant i8*
@a=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN18SMLSharp__OSFileSys7openDirE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys7openDirE_173 to void(...)*),i32 -2147483647}>,align 8
@b=private unnamed_addr constant<{[4x i8],i32,[50x i8]}><{[4x i8]zeroinitializer,i32 -2147483598,[50x i8]c"src/basis/main/SMLSharp_OSFileSys.sml:50.17(1388)\00"}>,align 8
@c=private unnamed_addr constant<{[4x i8],i32,[28x i8]}><{[4x i8]zeroinitializer,i32 -2147483620,[28x i8]c"readdir on closed dirstream\00"}>,align 8
@d=private unnamed_addr constant<{[4x i8],i32,i8*,i8*,i32}><{[4x i8]zeroinitializer,i32 -805306352,i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,[28x i8]}>,<{[4x i8],i32,[28x i8]}>*@c,i32 0,i32 0,i32 0),i32 8),i8*null,i32 3}>,align 8
@e=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN18SMLSharp__OSFileSys7readDirE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys7readDirE_174 to void(...)*),i32 -2147483647}>,align 8
@f=private unnamed_addr constant<{[4x i8],i32,[50x i8]}><{[4x i8]zeroinitializer,i32 -2147483598,[50x i8]c"src/basis/main/SMLSharp_OSFileSys.sml:55.17(1559)\00"}>,align 8
@g=private unnamed_addr constant<{[4x i8],i32,[30x i8]}><{[4x i8]zeroinitializer,i32 -2147483618,[30x i8]c"rewinddir on closed dirstream\00"}>,align 8
@h=private unnamed_addr constant<{[4x i8],i32,i8*,i8*,i32}><{[4x i8]zeroinitializer,i32 -805306352,i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,[30x i8]}>,<{[4x i8],i32,[30x i8]}>*@g,i32 0,i32 0,i32 0),i32 8),i8*null,i32 3}>,align 8
@i=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(void(i8*)*@_SMLFN18SMLSharp__OSFileSys9rewindDirE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys9rewindDirE_175 to void(...)*),i32 -2147483647}>,align 8
@j=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(void(i8*)*@_SMLFN18SMLSharp__OSFileSys8closeDirE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys8closeDirE_176 to void(...)*),i32 -2147483647}>,align 8
@k=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(void(i8*)*@_SMLFN18SMLSharp__OSFileSys5chDirE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys5chDirE_177 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*(i32)*@_SMLFN18SMLSharp__OSFileSys6getDirE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys6getDirE_178 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(void(i8*)*@_SMLFN18SMLSharp__OSFileSys5mkDirE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys5mkDirE_179 to void(...)*),i32 -2147483647}>,align 8
@n=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(void(i8*)*@_SMLFN18SMLSharp__OSFileSys5rmDirE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys5rmDirE_180 to void(...)*),i32 -2147483647}>,align 8
@o=private unnamed_addr constant<{[4x i8],i32,[6x i8]}><{[4x i8]zeroinitializer,i32 -2147483642,[6x i8]c"noent\00"}>,align 8
@p=private unnamed_addr constant<{[4x i8],i32,[5x i8]}><{[4x i8]zeroinitializer,i32 -2147483643,[5x i8]c"perm\00"}>,align 8
@q=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN18SMLSharp__OSFileSys8readLinkE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys8readLinkE_182 to void(...)*),i32 -2147483647}>,align 8
@r=private unnamed_addr constant<{[4x i8],i32,[51x i8]}><{[4x i8]zeroinitializer,i32 -2147483597,[51x i8]c"src/basis/main/SMLSharp_OSFileSys.sml:132.18(3852)\00"}>,align 8
@s=private unnamed_addr constant<{[4x i8],i32,[15x i8]}><{[4x i8]zeroinitializer,i32 -2147483633,[15x i8]c"too many links\00"}>,align 8
@t=private unnamed_addr constant<{[4x i8],i32,i8*,i8*,i32}><{[4x i8]zeroinitializer,i32 -805306352,i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,[15x i8]}>,<{[4x i8],i32,[15x i8]}>*@s,i32 0,i32 0,i32 0),i32 8),i8*null,i32 3}>,align 8
@u=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN18SMLSharp__OSFileSys8fullPathE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys8fullPathE_184 to void(...)*),i32 -2147483647}>,align 8
@v=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN18SMLSharp__OSFileSys8realPathE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys8realPathE_185 to void(...)*),i32 -2147483647}>,align 8
@w=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(void(i8*)*@_SMLFN18SMLSharp__OSFileSys7setTimeE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys7setTimeE_186 to void(...)*),i32 -2147483647}>,align 8
@x=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(void(i8*)*@_SMLFN18SMLSharp__OSFileSys6removeE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys6removeE_187 to void(...)*),i32 -2147483647}>,align 8
@y=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(void(i8*)*@_SMLFN18SMLSharp__OSFileSys6renameE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys6renameE_188 to void(...)*),i32 -2147483647}>,align 8
@z=private unnamed_addr constant<{[4x i8],i32,[51x i8]}><{[4x i8]zeroinitializer,i32 -2147483597,[51x i8]c"src/basis/main/SMLSharp_OSFileSys.sml:219.29(6618)\00"}>,align 8
@A=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i32(i8*)*@_SMLFN18SMLSharp__OSFileSys6accessE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys6accessE_190 to void(...)*),i32 -2147483647}>,align 8
@B=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i32(i8*)*@_SMLFN18SMLSharp__OSFileSys4hashE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys4hashE_191 to void(...)*),i32 -2147483647}>,align 8
@C=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i32(i8*)*@_SMLFN18SMLSharp__OSFileSys7compareE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys7compareE_192 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN18SMLSharp__OSFileSys7openDirE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@a,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__OSFileSys7readDirE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@e,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__OSFileSys9rewindDirE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@i,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__OSFileSys8closeDirE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@j,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__OSFileSys5chDirE=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*)
@_SMLZN18SMLSharp__OSFileSys6getDirE=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*)
@_SMLZN18SMLSharp__OSFileSys5mkDirE=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*)
@_SMLZN18SMLSharp__OSFileSys5rmDirE=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*)
@D=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i32(i8*)*@_SMLFN18SMLSharp__OSFileSys5isDirE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys5isDirE_193 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN18SMLSharp__OSFileSys5isDirE=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*)
@E=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i32(i8*)*@_SMLFN18SMLSharp__OSFileSys6isLinkE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys6isLinkE_194 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN18SMLSharp__OSFileSys6isLinkE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@E,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__OSFileSys8readLinkE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@q,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__OSFileSys8fullPathE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@u,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__OSFileSys8realPathE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@v,i64 0,i32 2)to i8*)
@F=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN18SMLSharp__OSFileSys7modTimeE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys7modTimeE_195 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN18SMLSharp__OSFileSys7modTimeE=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*)
@G=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i32(i8*)*@_SMLFN18SMLSharp__OSFileSys8fileSizeE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys8fileSizeE_196 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN18SMLSharp__OSFileSys8fileSizeE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@G,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__OSFileSys7setTimeE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@w,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__OSFileSys6removeE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@x,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__OSFileSys6renameE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@y,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__OSFileSys6accessE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@A,i64 0,i32 2)to i8*)
@H=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32)*@_SMLFN18SMLSharp__OSFileSys7tmpNameE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN18SMLSharp__OSFileSys7tmpNameE_197 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN18SMLSharp__OSFileSys7tmpNameE=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*)
@_SMLZN18SMLSharp__OSFileSys4hashE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@B,i64 0,i32 2)to i8*)
@_SMLZN18SMLSharp__OSFileSys7compareE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@C,i64 0,i32 2)to i8*)
@_SML_ftabb802741546ad758e_SMLSharp_OSFileSys=external global i8
@I=private unnamed_addr global i8 0
@J=private unnamed_addr constant[3x i32*][i32*@_SMLZN13SMLSharp__OSIO7S__IXUSRE,i32*@_SMLZN13SMLSharp__OSIO7S__IRUSRE,i32*@_SMLZN13SMLSharp__OSIO7S__IWUSRE]
declare void@llvm.gcroot(i8**,i8*)#0
declare i32@prim_GenericOS_chdir(i8*)local_unnamed_addr
declare i32@prim_GenericOS_closedir(i8*)local_unnamed_addr
declare i8*@prim_GenericOS_getcwd()local_unnamed_addr
declare i32@prim_GenericOS_mkdir(i8*,i32)local_unnamed_addr
declare i8*@prim_GenericOS_opendir(i8*)local_unnamed_addr
declare i8*@prim_GenericOS_readdir(i8*)local_unnamed_addr
declare i8*@prim_GenericOS_readlink(i8*)local_unnamed_addr
declare void@prim_GenericOS_rewinddir(i8*)local_unnamed_addr
declare i32@prim_GenericOS_utime(i8*,i32,i32)local_unnamed_addr
declare i8*@prim_tmpName()local_unnamed_addr
declare i32@rename(i8*,i8*)local_unnamed_addr#0
declare i32@rmdir(i8*)local_unnamed_addr#0
declare i8*@sml_alloc(i32 inreg)local_unnamed_addr#0
declare void@sml_check(i32 inreg)local_unnamed_addr
declare void@sml_enter()local_unnamed_addr#0
declare void@sml_gcroot(i8*,void()*,i8*,i8*)local_unnamed_addr#0
declare void@sml_leave()local_unnamed_addr#0
declare void@sml_matchcomp_bug()local_unnamed_addr
declare i32@sml_obj_equal(i8*inreg,i8*inreg)local_unnamed_addr#0
declare i32@sml_personality(...)#0
declare void@sml_raise(i8*inreg)local_unnamed_addr#1
declare i8*@sml_unsave_exn(i8*inreg)local_unnamed_addr#0
declare i32@unlink(i8*)local_unnamed_addr#0
declare i8*@_SMLFN13SMLSharp__OSIO4statE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN13SMLSharp__OSIO5lstatE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN16SMLSharp__Runtime14str__new__optionE(i64 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN16SMLSharp__Runtime4freeE(i32 inreg,i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN16SMLSharp__Runtime8syserrorE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN16SMLSharp__Runtime9OS__SysErrE(i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN22SMLSharp__SMLNJ__OS__Path10fromStringE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i32@_SMLFN22SMLSharp__SMLNJ__OS__Path10isAbsoluteE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN22SMLSharp__SMLNJ__OS__Path10mkRelativeE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN22SMLSharp__SMLNJ__OS__Path8toStringE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN4List1_VE(i32 inreg,i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN4List3revE(i32 inreg,i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN4Time11fromSecondsE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN4Time3nowE(i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN4Time9toSecondsE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i32@_SMLFN6IntInf5toIntE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN6IntInf7fromIntE(i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_main5d4c3ea7bd6f9540_IntInf()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_main03d87556ec7f64b2_List()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_main23870d5de35409ab_Time()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_main741b333153f7e9d0_SMLSharp_OSIO()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_main00d884c96265bfea_SMLSharp_Runtime()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_maind140b1de0a56705c_os_path()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_load5d4c3ea7bd6f9540_IntInf(i8*)local_unnamed_addr
declare void@_SML_load03d87556ec7f64b2_List(i8*)local_unnamed_addr
declare void@_SML_load23870d5de35409ab_Time(i8*)local_unnamed_addr
declare void@_SML_load741b333153f7e9d0_SMLSharp_OSIO(i8*)local_unnamed_addr
declare void@_SML_load00d884c96265bfea_SMLSharp_Runtime(i8*)local_unnamed_addr
declare void@_SML_loadd140b1de0a56705c_os_path(i8*)local_unnamed_addr
define private void@_SML_tabbb802741546ad758e_SMLSharp_OSFileSys()#3{
unreachable
}
define void@_SML_loadb802741546ad758e_SMLSharp_OSFileSys(i8*%a)local_unnamed_addr#0{
%b=load i8,i8*@I,align 1
%c=icmp eq i8%b,0
br i1%c,label%e,label%d
d:
ret void
e:
store i8 1,i8*@I,align 1
tail call void@_SML_load5d4c3ea7bd6f9540_IntInf(i8*%a)#0
tail call void@_SML_load03d87556ec7f64b2_List(i8*%a)#0
tail call void@_SML_load23870d5de35409ab_Time(i8*%a)#0
tail call void@_SML_load741b333153f7e9d0_SMLSharp_OSIO(i8*%a)#0
tail call void@_SML_load00d884c96265bfea_SMLSharp_Runtime(i8*%a)#0
tail call void@_SML_loadd140b1de0a56705c_os_path(i8*%a)#0
tail call void@sml_gcroot(i8*%a,void()*@_SML_tabbb802741546ad758e_SMLSharp_OSFileSys,i8*@_SML_ftabb802741546ad758e_SMLSharp_OSFileSys,i8*null)#0
ret void
}
define void@_SML_mainb802741546ad758e_SMLSharp_OSFileSys()local_unnamed_addr#2 gc"smlsharp"{
%a=load i8,i8*@I,align 1
%b=and i8%a,2
%c=icmp eq i8%b,0
br i1%c,label%e,label%d
d:
ret void
e:
store i8 3,i8*@I,align 1
tail call void@_SML_main5d4c3ea7bd6f9540_IntInf()#2
tail call void@_SML_main03d87556ec7f64b2_List()#2
tail call void@_SML_main23870d5de35409ab_Time()#2
tail call void@_SML_main741b333153f7e9d0_SMLSharp_OSIO()#2
tail call void@_SML_main00d884c96265bfea_SMLSharp_Runtime()#2
tail call void@_SML_maind140b1de0a56705c_os_path()#2
br label%d
}
define fastcc i8*@_SMLFN18SMLSharp__OSFileSys7openDirE(i8*inreg%a)#2 gc"smlsharp"personality i32(...)*@sml_personality{
i:
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
store i8*%a,i8**%b,align 8
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
call void@sml_leave()#0
%j=invoke i8*@prim_GenericOS_opendir(i8*%h)
to label%k unwind label%J
k:
call void@sml_enter()#0
store i8*null,i8**%b,align 8
%l=icmp eq i8*%j,null
br i1%l,label%m,label%v
m:
%n=call fastcc i8*@_SMLFN16SMLSharp__Runtime9OS__SysErrE(i32 inreg 0)
store i8*%n,i8**%b,align 8
%o=call i8*@sml_alloc(i32 inreg 60)#0
%p=getelementptr inbounds i8,i8*%o,i64 -4
%q=bitcast i8*%p to i32*
store i32 1342177336,i32*%q,align 4
%r=getelementptr inbounds i8,i8*%o,i64 56
%s=bitcast i8*%r to i32*
store i32 1,i32*%s,align 4
%t=load i8*,i8**%b,align 8
%u=bitcast i8*%o to i8**
store i8*%t,i8**%u,align 8
call void@sml_raise(i8*inreg%o)#1
unreachable
v:
%w=call i8*@sml_alloc(i32 inreg 4)#0
%x=bitcast i8*%w to i32*
%y=getelementptr inbounds i8,i8*%w,i64 -4
%z=bitcast i8*%y to i32*
store i32 536870916,i32*%z,align 4
store i8*%w,i8**%b,align 8
store i32 1,i32*%x,align 4
%A=call i8*@sml_alloc(i32 inreg 20)#0
%B=getelementptr inbounds i8,i8*%A,i64 -4
%C=bitcast i8*%B to i32*
store i32 1342177296,i32*%C,align 4
%D=bitcast i8*%A to i8**
store i8*%j,i8**%D,align 8
%E=load i8*,i8**%b,align 8
%F=getelementptr inbounds i8,i8*%A,i64 8
%G=bitcast i8*%F to i8**
store i8*%E,i8**%G,align 8
%H=getelementptr inbounds i8,i8*%A,i64 16
%I=bitcast i8*%H to i32*
store i32 2,i32*%I,align 4
ret i8*%A
J:
%K=landingpad{i8*,i8*}
cleanup
%L=extractvalue{i8*,i8*}%K,1
call void@sml_enter()#0
%M=call i8*@sml_unsave_exn(i8*inreg%L)#0
resume{i8*,i8*}%K
}
define fastcc i8*@_SMLFN18SMLSharp__OSFileSys7readDirE(i8*inreg%a)#2 gc"smlsharp"personality i32(...)*@sml_personality{
j:
%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
store i8*%a,i8**%b,align 8
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%h,label%f
f:
call void@sml_check(i32 inreg%d)
%g=load i8*,i8**%b,align 8
br label%h
h:
%i=phi i8*[%g,%f],[%a,%j]
%k=getelementptr inbounds i8,i8*%i,i64 8
%l=bitcast i8*%k to i32**
%m=load i32*,i32**%l,align 8
%n=load i32,i32*%m,align 4
%o=icmp eq i32%n,0
br i1%o,label%A,label%p
p:
%q=bitcast i8*%i to i8**
%r=load i8*,i8**%q,align 8
call void@sml_leave()#0
%s=invoke i8*@prim_GenericOS_readdir(i8*%r)
to label%t unwind label%w
t:
call void@sml_enter()#0
%u=ptrtoint i8*%s to i64
%v=tail call fastcc i8*@_SMLFN16SMLSharp__Runtime14str__new__optionE(i64 inreg%u)
ret i8*%v
w:
%x=landingpad{i8*,i8*}
cleanup
%y=extractvalue{i8*,i8*}%x,1
call void@sml_enter()#0
%z=call i8*@sml_unsave_exn(i8*inreg%y)#0
resume{i8*,i8*}%x
A:
%B=load i8*,i8**@_SMLZN16SMLSharp__Runtime6SysErrE,align 8
store i8*%B,i8**%b,align 8
%C=call i8*@sml_alloc(i32 inreg 28)#0
%D=getelementptr inbounds i8,i8*%C,i64 -4
%E=bitcast i8*%D to i32*
store i32 1342177304,i32*%E,align 4
store i8*%C,i8**%c,align 8
%F=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%G=bitcast i8*%C to i8**
store i8*%F,i8**%G,align 8
%H=getelementptr inbounds i8,i8*%C,i64 8
%I=bitcast i8*%H to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[50x i8]}>,<{[4x i8],i32,[50x i8]}>*@b,i64 0,i32 2,i64 0),i8**%I,align 8
%J=getelementptr inbounds i8,i8*%C,i64 16
%K=bitcast i8*%J to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,i8*,i32}>,<{[4x i8],i32,i8*,i8*,i32}>*@d,i64 0,i32 2)to i8*),i8**%K,align 8
%L=getelementptr inbounds i8,i8*%C,i64 24
%M=bitcast i8*%L to i32*
store i32 7,i32*%M,align 4
%N=call i8*@sml_alloc(i32 inreg 60)#0
%O=getelementptr inbounds i8,i8*%N,i64 -4
%P=bitcast i8*%O to i32*
store i32 1342177336,i32*%P,align 4
%Q=getelementptr inbounds i8,i8*%N,i64 56
%R=bitcast i8*%Q to i32*
store i32 1,i32*%R,align 4
%S=load i8*,i8**%c,align 8
%T=bitcast i8*%N to i8**
store i8*%S,i8**%T,align 8
call void@sml_raise(i8*inreg%N)#1
unreachable
}
define fastcc void@_SMLFN18SMLSharp__OSFileSys9rewindDirE(i8*inreg%a)#2 gc"smlsharp"personality i32(...)*@sml_personality{
j:
%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
store i8*%a,i8**%b,align 8
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%h,label%f
f:
call void@sml_check(i32 inreg%d)
%g=load i8*,i8**%b,align 8
br label%h
h:
%i=phi i8*[%g,%f],[%a,%j]
%k=getelementptr inbounds i8,i8*%i,i64 8
%l=bitcast i8*%k to i32**
%m=load i32*,i32**%l,align 8
%n=load i32,i32*%m,align 4
%o=icmp eq i32%n,0
br i1%o,label%x,label%p
p:
%q=bitcast i8*%i to i8**
%r=load i8*,i8**%q,align 8
call void@sml_leave()#0
invoke void@prim_GenericOS_rewinddir(i8*%r)
to label%s unwind label%t
s:
call void@sml_enter()#0
ret void
t:
%u=landingpad{i8*,i8*}
cleanup
%v=extractvalue{i8*,i8*}%u,1
call void@sml_enter()#0
%w=call i8*@sml_unsave_exn(i8*inreg%v)#0
resume{i8*,i8*}%u
x:
%y=load i8*,i8**@_SMLZN16SMLSharp__Runtime6SysErrE,align 8
store i8*%y,i8**%b,align 8
%z=call i8*@sml_alloc(i32 inreg 28)#0
%A=getelementptr inbounds i8,i8*%z,i64 -4
%B=bitcast i8*%A to i32*
store i32 1342177304,i32*%B,align 4
store i8*%z,i8**%c,align 8
%C=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%D=bitcast i8*%z to i8**
store i8*%C,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%z,i64 8
%F=bitcast i8*%E to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[50x i8]}>,<{[4x i8],i32,[50x i8]}>*@f,i64 0,i32 2,i64 0),i8**%F,align 8
%G=getelementptr inbounds i8,i8*%z,i64 16
%H=bitcast i8*%G to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,i8*,i32}>,<{[4x i8],i32,i8*,i8*,i32}>*@h,i64 0,i32 2)to i8*),i8**%H,align 8
%I=getelementptr inbounds i8,i8*%z,i64 24
%J=bitcast i8*%I to i32*
store i32 7,i32*%J,align 4
%K=call i8*@sml_alloc(i32 inreg 60)#0
%L=getelementptr inbounds i8,i8*%K,i64 -4
%M=bitcast i8*%L to i32*
store i32 1342177336,i32*%M,align 4
%N=getelementptr inbounds i8,i8*%K,i64 56
%O=bitcast i8*%N to i32*
store i32 1,i32*%O,align 4
%P=load i8*,i8**%c,align 8
%Q=bitcast i8*%K to i8**
store i8*%P,i8**%Q,align 8
call void@sml_raise(i8*inreg%K)#1
unreachable
}
define fastcc void@_SMLFN18SMLSharp__OSFileSys8closeDirE(i8*inreg%a)#2 gc"smlsharp"personality i32(...)*@sml_personality{
i:
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
store i8*%a,i8**%b,align 8
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=getelementptr inbounds i8,i8*%h,i64 8
%k=bitcast i8*%j to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%b,align 8
%m=bitcast i8*%l to i32*
%n=load i32,i32*%m,align 4
%o=icmp eq i32%n,0
br i1%o,label%A,label%p
p:
%q=bitcast i8*%h to i8**
%r=load i8*,i8**%q,align 8
call void@sml_leave()#0
%s=invoke i32@prim_GenericOS_closedir(i8*%r)
to label%t unwind label%w
t:
call void@sml_enter()#0
%u=bitcast i8**%b to i32**
%v=load i32*,i32**%u,align 8
store i32 0,i32*%v,align 4
ret void
w:
%x=landingpad{i8*,i8*}
cleanup
%y=extractvalue{i8*,i8*}%x,1
call void@sml_enter()#0
%z=call i8*@sml_unsave_exn(i8*inreg%y)#0
resume{i8*,i8*}%x
A:
ret void
}
define fastcc void@_SMLFN18SMLSharp__OSFileSys5chDirE(i8*inreg%a)#2 gc"smlsharp"personality i32(...)*@sml_personality{
i:
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
store i8*%a,i8**%b,align 8
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
call void@sml_leave()#0
%j=invoke i32@prim_GenericOS_chdir(i8*%h)
to label%k unwind label%w
k:
call void@sml_enter()#0
store i8*null,i8**%b,align 8
%l=icmp sgt i32%j,-1
br i1%l,label%v,label%m
m:
%n=call fastcc i8*@_SMLFN16SMLSharp__Runtime9OS__SysErrE(i32 inreg 0)
store i8*%n,i8**%b,align 8
%o=call i8*@sml_alloc(i32 inreg 60)#0
%p=getelementptr inbounds i8,i8*%o,i64 -4
%q=bitcast i8*%p to i32*
store i32 1342177336,i32*%q,align 4
%r=getelementptr inbounds i8,i8*%o,i64 56
%s=bitcast i8*%r to i32*
store i32 1,i32*%s,align 4
%t=load i8*,i8**%b,align 8
%u=bitcast i8*%o to i8**
store i8*%t,i8**%u,align 8
call void@sml_raise(i8*inreg%o)#1
unreachable
v:
ret void
w:
%x=landingpad{i8*,i8*}
cleanup
%y=extractvalue{i8*,i8*}%x,1
call void@sml_enter()#0
%z=call i8*@sml_unsave_exn(i8*inreg%y)#0
resume{i8*,i8*}%x
}
define fastcc i8*@_SMLFN18SMLSharp__OSFileSys6getDirE(i32 inreg%a)#2 gc"smlsharp"personality i32(...)*@sml_personality{
%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=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%g,label%f
f:
call void@sml_check(i32 inreg%d)
br label%g
g:
call void@sml_leave()#0
%h=invoke i8*@prim_GenericOS_getcwd()
to label%i unwind label%L
i:
call void@sml_enter()#0
%j=ptrtoint i8*%h to i64
%k=call fastcc i8*@_SMLFN16SMLSharp__Runtime14str__new__optionE(i64 inreg%j)
%l=icmp eq i8*%k,null
br i1%l,label%m,label%v
m:
%n=call fastcc i8*@_SMLFN16SMLSharp__Runtime9OS__SysErrE(i32 inreg 0)
store i8*%n,i8**%b,align 8
%o=call i8*@sml_alloc(i32 inreg 60)#0
%p=getelementptr inbounds i8,i8*%o,i64 -4
%q=bitcast i8*%p to i32*
store i32 1342177336,i32*%q,align 4
%r=getelementptr inbounds i8,i8*%o,i64 56
%s=bitcast i8*%r to i32*
store i32 1,i32*%s,align 4
%t=load i8*,i8**%b,align 8
%u=bitcast i8*%o to i8**
store i8*%t,i8**%u,align 8
call void@sml_raise(i8*inreg%o)#1
unreachable
v:
%w=bitcast i8*%k to i8**
%x=load i8*,i8**%w,align 8
store i8*%x,i8**%b,align 8
%y=call fastcc i8*@_SMLFN16SMLSharp__Runtime4freeE(i32 inreg 0,i32 inreg 1)
%z=getelementptr inbounds i8,i8*%y,i64 16
%A=bitcast i8*%z to i8*(i8*,i8*)**
%B=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%A,align 8
%C=bitcast i8*%y to i8**
%D=load i8*,i8**%C,align 8
store i8*%D,i8**%c,align 8
%E=call i8*@sml_alloc(i32 inreg 8)#0
%F=getelementptr inbounds i8,i8*%E,i64 -4
%G=bitcast i8*%F to i32*
store i32 8,i32*%G,align 4
%H=bitcast i8*%E to i64*
store i64%j,i64*%H,align 4
%I=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%J=call fastcc i8*%B(i8*inreg%I,i8*inreg%E)
%K=load i8*,i8**%b,align 8
ret i8*%K
L:
%M=landingpad{i8*,i8*}
cleanup
%N=extractvalue{i8*,i8*}%M,1
call void@sml_enter()#0
%O=call i8*@sml_unsave_exn(i8*inreg%N)#0
resume{i8*,i8*}%M
}
define fastcc void@_SMLFN18SMLSharp__OSFileSys5mkDirE(i8*inreg%a)#2 gc"smlsharp"personality i32(...)*@sml_personality{
i:
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
store i8*%a,i8**%b,align 8
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
call void@sml_leave()#0
%j=invoke i32@prim_GenericOS_mkdir(i8*%h,i32 511)
to label%k unwind label%w
k:
call void@sml_enter()#0
store i8*null,i8**%b,align 8
%l=icmp sgt i32%j,-1
br i1%l,label%v,label%m
m:
%n=call fastcc i8*@_SMLFN16SMLSharp__Runtime9OS__SysErrE(i32 inreg 0)
store i8*%n,i8**%b,align 8
%o=call i8*@sml_alloc(i32 inreg 60)#0
%p=getelementptr inbounds i8,i8*%o,i64 -4
%q=bitcast i8*%p to i32*
store i32 1342177336,i32*%q,align 4
%r=getelementptr inbounds i8,i8*%o,i64 56
%s=bitcast i8*%r to i32*
store i32 1,i32*%s,align 4
%t=load i8*,i8**%b,align 8
%u=bitcast i8*%o to i8**
store i8*%t,i8**%u,align 8
call void@sml_raise(i8*inreg%o)#1
unreachable
v:
ret void
w:
%x=landingpad{i8*,i8*}
cleanup
%y=extractvalue{i8*,i8*}%x,1
call void@sml_enter()#0
%z=call i8*@sml_unsave_exn(i8*inreg%y)#0
resume{i8*,i8*}%x
}
define fastcc void@_SMLFN18SMLSharp__OSFileSys5rmDirE(i8*inreg%a)#2 gc"smlsharp"personality i32(...)*@sml_personality{
i:
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
store i8*%a,i8**%b,align 8
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
call void@sml_leave()#0
%j=call i32@rmdir(i8*%h)
call void@sml_enter()#0
store i8*null,i8**%b,align 8
%k=icmp sgt i32%j,-1
br i1%k,label%u,label%l
l:
%m=call fastcc i8*@_SMLFN16SMLSharp__Runtime9OS__SysErrE(i32 inreg 0)
store i8*%m,i8**%b,align 8
%n=call i8*@sml_alloc(i32 inreg 60)#0
%o=getelementptr inbounds i8,i8*%n,i64 -4
%p=bitcast i8*%o to i32*
store i32 1342177336,i32*%p,align 4
%q=getelementptr inbounds i8,i8*%n,i64 56
%r=bitcast i8*%q to i32*
store i32 1,i32*%r,align 4
%s=load i8*,i8**%b,align 8
%t=bitcast i8*%n to i8**
store i8*%s,i8**%t,align 8
call void@sml_raise(i8*inreg%n)#1
unreachable
u:
ret void
}
define fastcc i8*@_SMLFN18SMLSharp__OSFileSys8readLinkE(i8*inreg%a)#2 gc"smlsharp"personality i32(...)*@sml_personality{
i:
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
store i8*%a,i8**%b,align 8
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
call void@sml_leave()#0
%j=invoke i8*@prim_GenericOS_readlink(i8*%h)
to label%k unwind label%w
k:
call void@sml_enter()#0
store i8*null,i8**%b,align 8
%l=icmp eq i8*%j,null
br i1%l,label%m,label%v
m:
%n=call fastcc i8*@_SMLFN16SMLSharp__Runtime9OS__SysErrE(i32 inreg 0)
store i8*%n,i8**%b,align 8
%o=call i8*@sml_alloc(i32 inreg 60)#0
%p=getelementptr inbounds i8,i8*%o,i64 -4
%q=bitcast i8*%p to i32*
store i32 1342177336,i32*%q,align 4
%r=getelementptr inbounds i8,i8*%o,i64 56
%s=bitcast i8*%r to i32*
store i32 1,i32*%s,align 4
%t=load i8*,i8**%b,align 8
%u=bitcast i8*%o to i8**
store i8*%t,i8**%u,align 8
call void@sml_raise(i8*inreg%o)#1
unreachable
v:
ret i8*%j
w:
%x=landingpad{i8*,i8*}
cleanup
%y=extractvalue{i8*,i8*}%x,1
call void@sml_enter()#0
%z=call i8*@sml_unsave_exn(i8*inreg%y)#0
resume{i8*,i8*}%x
}
define internal fastcc i8*@_SMLL4walk_136(i8*inreg%a)unnamed_addr#2 gc"smlsharp"{
k:
%b=alloca i8*,align 8
%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
%h=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
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
call void@llvm.gcroot(i8**%h,i8*null)#0
store i8*%a,i8**%b,align 8
br label%i
i:
%j=phi i8*[%a,%k],[%aq,%ap]
%l=load atomic i32,i32*@sml_check_flag unordered,align 4
%m=icmp eq i32%l,0
br i1%m,label%p,label%n
n:
call void@sml_check(i32 inreg%l)
%o=load i8*,i8**%b,align 8
br label%p
p:
%q=phi i8*[%o,%n],[%j,%i]
%r=bitcast i8*%q to i32*
%s=load i32,i32*%r,align 4
%t=icmp eq i32%s,0
%u=getelementptr inbounds i8,i8*%q,i64 8
%v=bitcast i8*%u to i8**
%w=load i8*,i8**%v,align 8
br i1%t,label%bG,label%x
x:
%y=icmp eq i8*%w,null
br i1%y,label%z,label%aG
z:
%A=getelementptr inbounds i8,i8*%q,i64 16
%B=bitcast i8*%A to i8**
%C=load i8*,i8**%B,align 8
store i8*%C,i8**%b,align 8
%D=getelementptr inbounds i8,i8*%q,i64 24
%E=bitcast i8*%D to i8**
%F=load i8*,i8**%E,align 8
%G=icmp eq i8*%F,null
br i1%G,label%eZ,label%H
H:
%I=bitcast i8*%F to i8**
%J=load i8*,i8**%I,align 8
%K=getelementptr inbounds i8,i8*%J,i64 -4
%L=bitcast i8*%K to i32*
%M=load i32,i32*%L,align 4
%N=trunc i32%M to i28
switch i28%N,label%aC[
i28 1,label%ay
i28 2,label%ar
i28 3,label%O
]
O:
%P=load i8,i8*%J,align 1
%Q=icmp eq i8%P,46
br i1%Q,label%R,label%aC
R:
%S=getelementptr inbounds i8,i8*%J,i64 1
%T=load i8,i8*%S,align 1
%U=icmp eq i8%T,46
br i1%U,label%V,label%aC
V:
%W=getelementptr inbounds i8,i8*%F,i64 8
%X=bitcast i8*%W to i8**
%Y=load i8*,i8**%X,align 8
store i8*%Y,i8**%c,align 8
%Z=call i8*@sml_alloc(i32 inreg 36)#0
%aa=bitcast i8*%Z to i32*
%ab=getelementptr inbounds i8,i8*%Z,i64 -4
%ac=bitcast i8*%ab to i32*
store i32 1342177312,i32*%ac,align 4
%ad=getelementptr inbounds i8,i8*%Z,i64 4
%ae=bitcast i8*%ad to i32*
store i32 0,i32*%ae,align 1
store i32%s,i32*%aa,align 4
%af=getelementptr inbounds i8,i8*%Z,i64 8
%ag=bitcast i8*%af to i8**
store i8*null,i8**%ag,align 8
%ah=load i8*,i8**%b,align 8
%ai=getelementptr inbounds i8,i8*%Z,i64 16
%aj=bitcast i8*%ai to i8**
store i8*%ah,i8**%aj,align 8
%ak=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%al=getelementptr inbounds i8,i8*%Z,i64 24
%am=bitcast i8*%al to i8**
store i8*%ak,i8**%am,align 8
%an=getelementptr inbounds i8,i8*%Z,i64 32
%ao=bitcast i8*%an to i32*
store i32 14,i32*%ao,align 4
store i8*%Z,i8**%b,align 8
br label%ap
ap:
%aq=phi i8*[%Z,%V],[%ba,%a6],[%dC,%dt],[%d4,%dT],[%eo,%el],[%eI,%eF]
br label%i
ar:
%as=load i8,i8*%J,align 1
%at=icmp eq i8%as,46
br i1%at,label%au,label%aC
au:
%av=getelementptr inbounds i8,i8*%F,i64 8
%aw=bitcast i8*%av to i8**
%ax=load i8*,i8**%aw,align 8
br label%el
ay:
%az=getelementptr inbounds i8,i8*%F,i64 8
%aA=bitcast i8*%az to i8**
%aB=load i8*,i8**%aA,align 8
br label%eF
aC:
%aD=getelementptr inbounds i8,i8*%F,i64 8
%aE=bitcast i8*%aD to i8**
%aF=load i8*,i8**%aE,align 8
br label%b0
aG:
%aH=getelementptr inbounds i8,i8*%w,i64 8
%aI=bitcast i8*%aH to i8**
%aJ=load i8*,i8**%aI,align 8
store i8*%aJ,i8**%b,align 8
%aK=getelementptr inbounds i8,i8*%q,i64 16
%aL=bitcast i8*%aK to i8**
%aM=load i8*,i8**%aL,align 8
store i8*%aM,i8**%c,align 8
%aN=getelementptr inbounds i8,i8*%q,i64 24
%aO=bitcast i8*%aN to i8**
%aP=load i8*,i8**%aO,align 8
%aQ=icmp eq i8*%aP,null
br i1%aQ,label%aR,label%aS
aR:
store i8*null,i8**%b,align 8
store i8*null,i8**%c,align 8
br label%eZ
aS:
%aT=bitcast i8*%aP to i8**
%aU=load i8*,i8**%aT,align 8
%aV=getelementptr inbounds i8,i8*%aU,i64 -4
%aW=bitcast i8*%aV to i32*
%aX=load i32,i32*%aW,align 4
%aY=trunc i32%aX to i28
switch i28%aY,label%bC[
i28 1,label%by
i28 2,label%br
i28 3,label%aZ
]
aZ:
%a0=load i8,i8*%aU,align 1
%a1=icmp eq i8%a0,46
br i1%a1,label%a2,label%bC
a2:
%a3=getelementptr inbounds i8,i8*%aU,i64 1
%a4=load i8,i8*%a3,align 1
%a5=icmp eq i8%a4,46
br i1%a5,label%a6,label%bC
a6:
%a7=getelementptr inbounds i8,i8*%aP,i64 8
%a8=bitcast i8*%a7 to i8**
%a9=load i8*,i8**%a8,align 8
store i8*%a9,i8**%d,align 8
%ba=call i8*@sml_alloc(i32 inreg 36)#0
%bb=bitcast i8*%ba to i32*
%bc=getelementptr inbounds i8,i8*%ba,i64 -4
%bd=bitcast i8*%bc to i32*
store i32 1342177312,i32*%bd,align 4
%be=getelementptr inbounds i8,i8*%ba,i64 4
%bf=bitcast i8*%be to i32*
store i32 0,i32*%bf,align 1
store i32%s,i32*%bb,align 4
%bg=load i8*,i8**%b,align 8
%bh=getelementptr inbounds i8,i8*%ba,i64 8
%bi=bitcast i8*%bh to i8**
store i8*%bg,i8**%bi,align 8
%bj=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bk=getelementptr inbounds i8,i8*%ba,i64 16
%bl=bitcast i8*%bk to i8**
store i8*%bj,i8**%bl,align 8
%bm=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bn=getelementptr inbounds i8,i8*%ba,i64 24
%bo=bitcast i8*%bn to i8**
store i8*%bm,i8**%bo,align 8
%bp=getelementptr inbounds i8,i8*%ba,i64 32
%bq=bitcast i8*%bp to i32*
store i32 14,i32*%bq,align 4
store i8*%ba,i8**%b,align 8
br label%ap
br:
%bs=load i8,i8*%aU,align 1
%bt=icmp eq i8%bs,46
br i1%bt,label%bu,label%bC
bu:
%bv=getelementptr inbounds i8,i8*%aP,i64 8
%bw=bitcast i8*%bv to i8**
%bx=load i8*,i8**%bw,align 8
store i8*null,i8**%c,align 8
br label%el
by:
store i8*null,i8**%b,align 8
%bz=getelementptr inbounds i8,i8*%aP,i64 8
%bA=bitcast i8*%bz to i8**
%bB=load i8*,i8**%bA,align 8
store i8*null,i8**%c,align 8
br label%eF
bC:
%bD=getelementptr inbounds i8,i8*%aP,i64 8
%bE=bitcast i8*%bD to i8**
%bF=load i8*,i8**%bE,align 8
store i8*null,i8**%c,align 8
br label%b0
bG:
%bH=load i8*,i8**@_SMLZN16SMLSharp__Runtime6SysErrE,align 8
store i8*%bH,i8**%b,align 8
%bI=call i8*@sml_alloc(i32 inreg 28)#0
%bJ=getelementptr inbounds i8,i8*%bI,i64 -4
%bK=bitcast i8*%bJ to i32*
store i32 1342177304,i32*%bK,align 4
store i8*%bI,i8**%c,align 8
%bL=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%bM=bitcast i8*%bI to i8**
store i8*%bL,i8**%bM,align 8
%bN=getelementptr inbounds i8,i8*%bI,i64 8
%bO=bitcast i8*%bN to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[51x i8]}>,<{[4x i8],i32,[51x i8]}>*@r,i64 0,i32 2,i64 0),i8**%bO,align 8
%bP=getelementptr inbounds i8,i8*%bI,i64 16
%bQ=bitcast i8*%bP to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,i8*,i32}>,<{[4x i8],i32,i8*,i8*,i32}>*@t,i64 0,i32 2)to i8*),i8**%bQ,align 8
%bR=getelementptr inbounds i8,i8*%bI,i64 24
%bS=bitcast i8*%bR to i32*
store i32 7,i32*%bS,align 4
%bT=call i8*@sml_alloc(i32 inreg 60)#0
%bU=getelementptr inbounds i8,i8*%bT,i64 -4
%bV=bitcast i8*%bU to i32*
store i32 1342177336,i32*%bV,align 4
%bW=getelementptr inbounds i8,i8*%bT,i64 56
%bX=bitcast i8*%bW to i32*
store i32 1,i32*%bX,align 4
%bY=load i8*,i8**%c,align 8
%bZ=bitcast i8*%bT to i8**
store i8*%bY,i8**%bZ,align 8
call void@sml_raise(i8*inreg%bT)#1
unreachable
b0:
%b1=phi i8*[%C,%aC],[%aM,%bC]
%b2=phi i8*[%J,%aC],[%aU,%bC]
%b3=phi i8*[%aF,%aC],[%bF,%bC]
store i8*%w,i8**%b,align 8
store i8*%b1,i8**%c,align 8
store i8*%b2,i8**%d,align 8
store i8*%b3,i8**%e,align 8
%b4=call fastcc i8*@_SMLFN4List3revE(i32 inreg 1,i32 inreg 8)
%b5=getelementptr inbounds i8,i8*%b4,i64 16
%b6=bitcast i8*%b5 to i8*(i8*,i8*)**
%b7=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%b6,align 8
%b8=bitcast i8*%b4 to i8**
%b9=load i8*,i8**%b8,align 8
store i8*%b9,i8**%f,align 8
%ca=call i8*@sml_alloc(i32 inreg 20)#0
%cb=getelementptr inbounds i8,i8*%ca,i64 -4
%cc=bitcast i8*%cb to i32*
store i32 1342177296,i32*%cc,align 4
%cd=load i8*,i8**%d,align 8
%ce=bitcast i8*%ca to i8**
store i8*%cd,i8**%ce,align 8
%cf=load i8*,i8**%b,align 8
%cg=getelementptr inbounds i8,i8*%ca,i64 8
%ch=bitcast i8*%cg to i8**
store i8*%cf,i8**%ch,align 8
%ci=getelementptr inbounds i8,i8*%ca,i64 16
%cj=bitcast i8*%ci to i32*
store i32 3,i32*%cj,align 4
%ck=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%cl=call fastcc i8*%b7(i8*inreg%ck,i8*inreg%ca)
store i8*%cl,i8**%f,align 8
%cm=call i8*@sml_alloc(i32 inreg 28)#0
%cn=getelementptr inbounds i8,i8*%cm,i64 -4
%co=bitcast i8*%cn to i32*
store i32 1342177304,i32*%co,align 4
%cp=getelementptr inbounds i8,i8*%cm,i64 12
%cq=bitcast i8*%cp to i32*
store i32 0,i32*%cq,align 1
%cr=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%cs=bitcast i8*%cm to i8**
store i8*%cr,i8**%cs,align 8
%ct=getelementptr inbounds i8,i8*%cm,i64 8
%cu=bitcast i8*%ct to i32*
store i32 1,i32*%cu,align 4
%cv=load i8*,i8**%c,align 8
%cw=getelementptr inbounds i8,i8*%cm,i64 16
%cx=bitcast i8*%cw to i8**
store i8*%cv,i8**%cx,align 8
%cy=getelementptr inbounds i8,i8*%cm,i64 24
%cz=bitcast i8*%cy to i32*
store i32 5,i32*%cz,align 4
%cA=call fastcc i8*@_SMLFN22SMLSharp__SMLNJ__OS__Path8toStringE(i8*inreg%cm)
store i8*%cA,i8**%f,align 8
%cB=call fastcc i8*@_SMLFN13SMLSharp__OSIO5lstatE(i8*inreg%cA)
%cC=getelementptr inbounds i8,i8*%cB,i64 12
%cD=bitcast i8*%cC to i32*
%cE=load i32,i32*%cD,align 4
%cF=load i32,i32*@_SMLZN13SMLSharp__OSIO6S__IFMTE,align 4
%cG=and i32%cF,%cE
%cH=load i32,i32*@_SMLZN13SMLSharp__OSIO7S__IFLNKE,align 4
%cI=icmp eq i32%cG,%cH
br i1%cI,label%cJ,label%dT
cJ:
store i8*null,i8**%d,align 8
%cK=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%cL=call fastcc i8*@_SMLFN18SMLSharp__OSFileSys8readLinkE(i8*inreg%cK)
%cM=call fastcc i8*@_SMLFN22SMLSharp__SMLNJ__OS__Path10fromStringE(i8*inreg%cL)
store i8*%cM,i8**%g,align 8
%cN=bitcast i8*%cM to i8**
%cO=load i8*,i8**%cN,align 8
store i8*%cO,i8**%d,align 8
%cP=getelementptr inbounds i8,i8*%cM,i64 16
%cQ=bitcast i8*%cP to i8**
%cR=load i8*,i8**%cQ,align 8
store i8*%cR,i8**%f,align 8
%cS=call fastcc i8*@_SMLFN4List1_VE(i32 inreg 1,i32 inreg 8)
%cT=getelementptr inbounds i8,i8*%cS,i64 16
%cU=bitcast i8*%cT to i8*(i8*,i8*)**
%cV=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%cU,align 8
%cW=bitcast i8*%cS to i8**
%cX=load i8*,i8**%cW,align 8
store i8*%cX,i8**%h,align 8
%cY=call i8*@sml_alloc(i32 inreg 20)#0
%cZ=getelementptr inbounds i8,i8*%cY,i64 -4
%c0=bitcast i8*%cZ to i32*
store i32 1342177296,i32*%c0,align 4
%c1=load i8*,i8**%d,align 8
%c2=bitcast i8*%cY to i8**
store i8*%c1,i8**%c2,align 8
%c3=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%c4=getelementptr inbounds i8,i8*%cY,i64 8
%c5=bitcast i8*%c4 to i8**
store i8*%c3,i8**%c5,align 8
%c6=getelementptr inbounds i8,i8*%cY,i64 16
%c7=bitcast i8*%c6 to i32*
store i32 3,i32*%c7,align 4
%c8=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%c9=call fastcc i8*%cV(i8*inreg%c8,i8*inreg%cY)
store i8*%c9,i8**%e,align 8
%da=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%db=getelementptr inbounds i8,i8*%da,i64 8
%dc=bitcast i8*%db to i32*
%dd=load i32,i32*%dc,align 4
%de=icmp eq i32%dd,0
br i1%de,label%dm,label%df
df:
store i8*null,i8**%b,align 8
store i8*null,i8**%c,align 8
%dg=call i8*@sml_alloc(i32 inreg 20)#0
%dh=getelementptr inbounds i8,i8*%dg,i64 -4
%di=bitcast i8*%dh to i32*
store i32 1342177296,i32*%di,align 4
%dj=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%dk=bitcast i8*%dg to i8**
store i8*%dj,i8**%dk,align 8
%dl=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
br label%dt
dm:
store i8*null,i8**%d,align 8
store i8*null,i8**%f,align 8
%dn=call i8*@sml_alloc(i32 inreg 20)#0
%do=getelementptr inbounds i8,i8*%dn,i64 -4
%dp=bitcast i8*%do to i32*
store i32 1342177296,i32*%dp,align 4
%dq=load i8*,i8**%b,align 8
%dr=bitcast i8*%dn to i8**
store i8*%dq,i8**%dr,align 8
%ds=load i8*,i8**%c,align 8
br label%dt
dt:
%du=phi i8*[%dn,%dm],[%dg,%df]
%dv=phi i8*[%ds,%dm],[%dl,%df]
%dw=phi i8*[%dq,%dm],[%dj,%df]
%dx=getelementptr inbounds i8,i8*%du,i64 8
%dy=bitcast i8*%dx to i8**
store i8*%dv,i8**%dy,align 8
%dz=getelementptr inbounds i8,i8*%du,i64 16
%dA=bitcast i8*%dz to i32*
store i32 3,i32*%dA,align 4
store i8*%dw,i8**%b,align 8
store i8*%dv,i8**%c,align 8
%dB=add nsw i32%s,-1
%dC=call i8*@sml_alloc(i32 inreg 36)#0
%dD=bitcast i8*%dC to i32*
%dE=getelementptr inbounds i8,i8*%dC,i64 -4
%dF=bitcast i8*%dE to i32*
store i32 1342177312,i32*%dF,align 4
%dG=getelementptr inbounds i8,i8*%dC,i64 4
%dH=bitcast i8*%dG to i32*
store i32 0,i32*%dH,align 1
store i32%dB,i32*%dD,align 4
%dI=load i8*,i8**%b,align 8
%dJ=getelementptr inbounds i8,i8*%dC,i64 8
%dK=bitcast i8*%dJ to i8**
store i8*%dI,i8**%dK,align 8
%dL=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%dM=getelementptr inbounds i8,i8*%dC,i64 16
%dN=bitcast i8*%dM to i8**
store i8*%dL,i8**%dN,align 8
%dO=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%dP=getelementptr inbounds i8,i8*%dC,i64 24
%dQ=bitcast i8*%dP to i8**
store i8*%dO,i8**%dQ,align 8
%dR=getelementptr inbounds i8,i8*%dC,i64 32
%dS=bitcast i8*%dR to i32*
store i32 14,i32*%dS,align 4
store i8*%dC,i8**%b,align 8
br label%ap
dT:
store i8*null,i8**%f,align 8
%dU=call i8*@sml_alloc(i32 inreg 20)#0
%dV=getelementptr inbounds i8,i8*%dU,i64 -4
%dW=bitcast i8*%dV to i32*
store i32 1342177296,i32*%dW,align 4
store i8*%dU,i8**%f,align 8
%dX=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%dY=bitcast i8*%dU to i8**
store i8*%dX,i8**%dY,align 8
%dZ=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%d0=getelementptr inbounds i8,i8*%dU,i64 8
%d1=bitcast i8*%d0 to i8**
store i8*%dZ,i8**%d1,align 8
%d2=getelementptr inbounds i8,i8*%dU,i64 16
%d3=bitcast i8*%d2 to i32*
store i32 3,i32*%d3,align 4
%d4=call i8*@sml_alloc(i32 inreg 36)#0
%d5=bitcast i8*%d4 to i32*
%d6=getelementptr inbounds i8,i8*%d4,i64 -4
%d7=bitcast i8*%d6 to i32*
store i32 1342177312,i32*%d7,align 4
%d8=getelementptr inbounds i8,i8*%d4,i64 4
%d9=bitcast i8*%d8 to i32*
store i32 0,i32*%d9,align 1
store i32%s,i32*%d5,align 4
%ea=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%eb=getelementptr inbounds i8,i8*%d4,i64 8
%ec=bitcast i8*%eb to i8**
store i8*%ea,i8**%ec,align 8
%ed=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%ee=getelementptr inbounds i8,i8*%d4,i64 16
%ef=bitcast i8*%ee to i8**
store i8*%ed,i8**%ef,align 8
%eg=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%eh=getelementptr inbounds i8,i8*%d4,i64 24
%ei=bitcast i8*%eh to i8**
store i8*%eg,i8**%ei,align 8
%ej=getelementptr inbounds i8,i8*%d4,i64 32
%ek=bitcast i8*%ej to i32*
store i32 14,i32*%ek,align 4
store i8*%d4,i8**%b,align 8
br label%ap
el:
%em=phi i8*[%aM,%bu],[%C,%au]
%en=phi i8*[%bx,%bu],[%ax,%au]
store i8*%w,i8**%b,align 8
store i8*%em,i8**%c,align 8
store i8*%en,i8**%d,align 8
%eo=call i8*@sml_alloc(i32 inreg 36)#0
%ep=bitcast i8*%eo to i32*
%eq=getelementptr inbounds i8,i8*%eo,i64 -4
%er=bitcast i8*%eq to i32*
store i32 1342177312,i32*%er,align 4
%es=getelementptr inbounds i8,i8*%eo,i64 4
%et=bitcast i8*%es to i32*
store i32 0,i32*%et,align 1
store i32%s,i32*%ep,align 4
%eu=load i8*,i8**%b,align 8
%ev=getelementptr inbounds i8,i8*%eo,i64 8
%ew=bitcast i8*%ev to i8**
store i8*%eu,i8**%ew,align 8
%ex=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%ey=getelementptr inbounds i8,i8*%eo,i64 16
%ez=bitcast i8*%ey to i8**
store i8*%ex,i8**%ez,align 8
%eA=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%eB=getelementptr inbounds i8,i8*%eo,i64 24
%eC=bitcast i8*%eB to i8**
store i8*%eA,i8**%eC,align 8
%eD=getelementptr inbounds i8,i8*%eo,i64 32
%eE=bitcast i8*%eD to i32*
store i32 14,i32*%eE,align 4
store i8*%eo,i8**%b,align 8
br label%ap
eF:
%eG=phi i8*[%aM,%by],[%C,%ay]
%eH=phi i8*[%bB,%by],[%aB,%ay]
store i8*%w,i8**%b,align 8
store i8*%eG,i8**%c,align 8
store i8*%eH,i8**%d,align 8
%eI=call i8*@sml_alloc(i32 inreg 36)#0
%eJ=bitcast i8*%eI to i32*
%eK=getelementptr inbounds i8,i8*%eI,i64 -4
%eL=bitcast i8*%eK to i32*
store i32 1342177312,i32*%eL,align 4
%eM=getelementptr inbounds i8,i8*%eI,i64 4
%eN=bitcast i8*%eM to i32*
store i32 0,i32*%eN,align 1
store i32%s,i32*%eJ,align 4
%eO=load i8*,i8**%b,align 8
%eP=getelementptr inbounds i8,i8*%eI,i64 8
%eQ=bitcast i8*%eP to i8**
store i8*%eO,i8**%eQ,align 8
%eR=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%eS=getelementptr inbounds i8,i8*%eI,i64 16
%eT=bitcast i8*%eS to i8**
store i8*%eR,i8**%eT,align 8
%eU=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%eV=getelementptr inbounds i8,i8*%eI,i64 24
%eW=bitcast i8*%eV to i8**
store i8*%eU,i8**%eW,align 8
%eX=getelementptr inbounds i8,i8*%eI,i64 32
%eY=bitcast i8*%eX to i32*
store i32 14,i32*%eY,align 4
store i8*%eI,i8**%b,align 8
br label%ap
eZ:
%e0=phi i8*[%aM,%aR],[%C,%z]
store i8*%w,i8**%b,align 8
store i8*%e0,i8**%c,align 8
%e1=call fastcc i8*@_SMLFN4List3revE(i32 inreg 1,i32 inreg 8)
%e2=getelementptr inbounds i8,i8*%e1,i64 16
%e3=bitcast i8*%e2 to i8*(i8*,i8*)**
%e4=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%e3,align 8
%e5=bitcast i8*%e1 to i8**
%e6=load i8*,i8**%e5,align 8
%e7=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%e8=call fastcc i8*%e4(i8*inreg%e6,i8*inreg%e7)
store i8*%e8,i8**%b,align 8
%e9=call i8*@sml_alloc(i32 inreg 28)#0
%fa=getelementptr inbounds i8,i8*%e9,i64 -4
%fb=bitcast i8*%fa to i32*
store i32 1342177304,i32*%fb,align 4
%fc=getelementptr inbounds i8,i8*%e9,i64 12
%fd=bitcast i8*%fc to i32*
store i32 0,i32*%fd,align 1
%fe=load i8*,i8**%b,align 8
%ff=bitcast i8*%e9 to i8**
store i8*%fe,i8**%ff,align 8
%fg=getelementptr inbounds i8,i8*%e9,i64 8
%fh=bitcast i8*%fg to i32*
store i32 1,i32*%fh,align 4
%fi=load i8*,i8**%c,align 8
%fj=getelementptr inbounds i8,i8*%e9,i64 16
%fk=bitcast i8*%fj to i8**
store i8*%fi,i8**%fk,align 8
%fl=getelementptr inbounds i8,i8*%e9,i64 24
%fm=bitcast i8*%fl to i32*
store i32 5,i32*%fm,align 4
%fn=tail call fastcc i8*@_SMLFN22SMLSharp__SMLNJ__OS__Path8toStringE(i8*inreg%e9)
ret i8*%fn
}
define fastcc i8*@_SMLFN18SMLSharp__OSFileSys8fullPathE(i8*inreg%a)#2 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
%d=alloca i8*,align 8
%e=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
call void@llvm.gcroot(i8**%e,i8*null)#0
store i8*%a,i8**%b,align 8
%f=load atomic i32,i32*@sml_check_flag unordered,align 4
%g=icmp eq i32%f,0
br i1%g,label%i,label%h
h:
call void@sml_check(i32 inreg%f)
br label%i
i:
%j=call fastcc i8*@_SMLFN18SMLSharp__OSFileSys6getDirE(i32 inreg undef)
%k=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%l=call fastcc i8*@_SMLFN22SMLSharp__SMLNJ__OS__Path10fromStringE(i8*inreg%k)
%m=bitcast i8*%l to i8**
%n=load i8*,i8**%m,align 8
store i8*%n,i8**%d,align 8
%o=getelementptr inbounds i8,i8*%l,i64 8
%p=bitcast i8*%o to i32*
%q=load i32,i32*%p,align 4
%r=icmp eq i32%q,0
br i1%r,label%N,label%s
s:
%t=getelementptr inbounds i8,i8*%l,i64 16
%u=bitcast i8*%t to i8**
%v=load i8*,i8**%u,align 8
store i8*%v,i8**%b,align 8
%w=call i8*@sml_alloc(i32 inreg 36)#0
%x=bitcast i8*%w to i32*
%y=getelementptr inbounds i8,i8*%w,i64 -4
%z=bitcast i8*%y to i32*
store i32 1342177312,i32*%z,align 4
%A=getelementptr inbounds i8,i8*%w,i64 4
%B=bitcast i8*%A to i32*
store i32 0,i32*%B,align 1
store i32 64,i32*%x,align 4
%C=getelementptr inbounds i8,i8*%w,i64 8
%D=bitcast i8*%C to i8**
store i8*null,i8**%D,align 8
%E=load i8*,i8**%b,align 8
%F=getelementptr inbounds i8,i8*%w,i64 16
%G=bitcast i8*%F to i8**
store i8*%E,i8**%G,align 8
%H=load i8*,i8**%d,align 8
%I=getelementptr inbounds i8,i8*%w,i64 24
%J=bitcast i8*%I to i8**
store i8*%H,i8**%J,align 8
%K=getelementptr inbounds i8,i8*%w,i64 32
%L=bitcast i8*%K to i32*
store i32 14,i32*%L,align 4
%M=tail call fastcc i8*@_SMLL4walk_136(i8*inreg%w)
ret i8*%M
N:
%O=call fastcc i8*@_SMLFN18SMLSharp__OSFileSys6getDirE(i32 inreg undef)
%P=call fastcc i8*@_SMLFN22SMLSharp__SMLNJ__OS__Path10fromStringE(i8*inreg%O)
%Q=bitcast i8*%P to i8**
%R=load i8*,i8**%Q,align 8
store i8*%R,i8**%b,align 8
%S=getelementptr inbounds i8,i8*%P,i64 16
%T=bitcast i8*%S to i8**
%U=load i8*,i8**%T,align 8
store i8*%U,i8**%c,align 8
%V=call fastcc i8*@_SMLFN4List1_VE(i32 inreg 1,i32 inreg 8)
%W=getelementptr inbounds i8,i8*%V,i64 16
%X=bitcast i8*%W to i8*(i8*,i8*)**
%Y=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%X,align 8
%Z=bitcast i8*%V to i8**
%aa=load i8*,i8**%Z,align 8
store i8*%aa,i8**%e,align 8
%ab=call i8*@sml_alloc(i32 inreg 20)#0
%ac=getelementptr inbounds i8,i8*%ab,i64 -4
%ad=bitcast i8*%ac to i32*
store i32 1342177296,i32*%ad,align 4
%ae=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%af=bitcast i8*%ab to i8**
store i8*%ae,i8**%af,align 8
%ag=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ah=getelementptr inbounds i8,i8*%ab,i64 8
%ai=bitcast i8*%ah to i8**
store i8*%ag,i8**%ai,align 8
%aj=getelementptr inbounds i8,i8*%ab,i64 16
%ak=bitcast i8*%aj to i32*
store i32 3,i32*%ak,align 4
%al=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%am=call fastcc i8*%Y(i8*inreg%al,i8*inreg%ab)
store i8*%am,i8**%b,align 8
%an=call i8*@sml_alloc(i32 inreg 36)#0
%ao=bitcast i8*%an to i32*
%ap=getelementptr inbounds i8,i8*%an,i64 -4
%aq=bitcast i8*%ap to i32*
store i32 1342177312,i32*%aq,align 4
%ar=getelementptr inbounds i8,i8*%an,i64 4
%as=bitcast i8*%ar to i32*
store i32 0,i32*%as,align 1
store i32 64,i32*%ao,align 4
%at=getelementptr inbounds i8,i8*%an,i64 8
%au=bitcast i8*%at to i8**
store i8*null,i8**%au,align 8
%av=load i8*,i8**%c,align 8
%aw=getelementptr inbounds i8,i8*%an,i64 16
%ax=bitcast i8*%aw to i8**
store i8*%av,i8**%ax,align 8
%ay=load i8*,i8**%b,align 8
%az=getelementptr inbounds i8,i8*%an,i64 24
%aA=bitcast i8*%az to i8**
store i8*%ay,i8**%aA,align 8
%aB=getelementptr inbounds i8,i8*%an,i64 32
%aC=bitcast i8*%aB to i32*
store i32 14,i32*%aC,align 4
store i8*null,i8**%b,align 8
store i8*%ay,i8**%d,align 8
%aD=call i8*@sml_alloc(i32 inreg 36)#0
%aE=bitcast i8*%aD to i32*
%aF=getelementptr inbounds i8,i8*%aD,i64 -4
%aG=bitcast i8*%aF to i32*
store i32 1342177312,i32*%aG,align 4
%aH=getelementptr inbounds i8,i8*%aD,i64 4
%aI=bitcast i8*%aH to i32*
store i32 0,i32*%aI,align 1
store i32 64,i32*%aE,align 4
%aJ=load i8*,i8**%b,align 8
%aK=getelementptr inbounds i8,i8*%aD,i64 8
%aL=bitcast i8*%aK to i8**
store i8*%aJ,i8**%aL,align 8
%aM=load i8*,i8**%c,align 8
%aN=getelementptr inbounds i8,i8*%aD,i64 16
%aO=bitcast i8*%aN to i8**
store i8*%aM,i8**%aO,align 8
%aP=load i8*,i8**%d,align 8
%aQ=getelementptr inbounds i8,i8*%aD,i64 24
%aR=bitcast i8*%aQ to i8**
store i8*%aP,i8**%aR,align 8
%aS=getelementptr inbounds i8,i8*%aD,i64 32
%aT=bitcast i8*%aS to i32*
store i32 14,i32*%aT,align 4
%aU=tail call fastcc i8*@_SMLL4walk_136(i8*inreg%aD)
ret i8*%aU
}
define fastcc i8*@_SMLFN18SMLSharp__OSFileSys8realPathE(i8*inreg%a)#2 gc"smlsharp"{
j:
%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
store i8*%a,i8**%b,align 8
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%h,label%f
f:
call void@sml_check(i32 inreg%d)
%g=load i8*,i8**%b,align 8
br label%h
h:
%i=phi i8*[%g,%f],[%a,%j]
%k=call fastcc i32@_SMLFN22SMLSharp__SMLNJ__OS__Path10isAbsoluteE(i8*inreg%i)
%l=icmp eq i32%k,0
%m=load i8*,i8**%b,align 8
br i1%l,label%p,label%n
n:
%o=tail call fastcc i8*@_SMLFN18SMLSharp__OSFileSys8fullPathE(i8*inreg%m)
ret i8*%o
p:
store i8*null,i8**%b,align 8
%q=call fastcc i8*@_SMLFN18SMLSharp__OSFileSys8fullPathE(i8*inreg%m)
store i8*%q,i8**%b,align 8
%r=call fastcc i8*@_SMLFN18SMLSharp__OSFileSys6getDirE(i32 inreg undef)
%s=call fastcc i8*@_SMLFN18SMLSharp__OSFileSys8fullPathE(i8*inreg%r)
store i8*%s,i8**%c,align 8
%t=call i8*@sml_alloc(i32 inreg 20)#0
%u=getelementptr inbounds i8,i8*%t,i64 -4
%v=bitcast i8*%u to i32*
store i32 1342177296,i32*%v,align 4
%w=load i8*,i8**%b,align 8
%x=bitcast i8*%t to i8**
store i8*%w,i8**%x,align 8
%y=load i8*,i8**%c,align 8
%z=getelementptr inbounds i8,i8*%t,i64 8
%A=bitcast i8*%z to i8**
store i8*%y,i8**%A,align 8
%B=getelementptr inbounds i8,i8*%t,i64 16
%C=bitcast i8*%B to i32*
store i32 3,i32*%C,align 4
%D=tail call fastcc i8*@_SMLFN22SMLSharp__SMLNJ__OS__Path10mkRelativeE(i8*inreg%t)
ret i8*%D
}
define fastcc void@_SMLFN18SMLSharp__OSFileSys7setTimeE(i8*inreg%a)#2 gc"smlsharp"personality i32(...)*@sml_personality{
i:
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
store i8*%a,i8**%b,align 8
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=bitcast i8*%h to i8**
%k=load i8*,i8**%j,align 8
store i8*%k,i8**%b,align 8
%l=getelementptr inbounds i8,i8*%h,i64 8
%m=bitcast i8*%l to i8**
%n=load i8*,i8**%m,align 8
%o=icmp eq i8*%n,null
br i1%o,label%p,label%r
p:
%q=call fastcc i8*@_SMLFN4Time3nowE(i32 inreg 0)
br label%u
r:
%s=bitcast i8*%n to i8**
%t=load i8*,i8**%s,align 8
br label%u
u:
%v=phi i8*[%q,%p],[%t,%r]
%w=call fastcc i8*@_SMLFN4Time9toSecondsE(i8*inreg%v)
%x=call fastcc i32@_SMLFN6IntInf5toIntE(i8*inreg%w)
%y=load i8*,i8**%b,align 8
call void@sml_leave()#0
%z=invoke i32@prim_GenericOS_utime(i8*%y,i32%x,i32%x)
to label%A unwind label%M
A:
call void@sml_enter()#0
store i8*null,i8**%b,align 8
%B=icmp sgt i32%z,-1
br i1%B,label%L,label%C
C:
%D=call fastcc i8*@_SMLFN16SMLSharp__Runtime9OS__SysErrE(i32 inreg 0)
store i8*%D,i8**%b,align 8
%E=call i8*@sml_alloc(i32 inreg 60)#0
%F=getelementptr inbounds i8,i8*%E,i64 -4
%G=bitcast i8*%F to i32*
store i32 1342177336,i32*%G,align 4
%H=getelementptr inbounds i8,i8*%E,i64 56
%I=bitcast i8*%H to i32*
store i32 1,i32*%I,align 4
%J=load i8*,i8**%b,align 8
%K=bitcast i8*%E to i8**
store i8*%J,i8**%K,align 8
call void@sml_raise(i8*inreg%E)#1
unreachable
L:
ret void
M:
%N=landingpad{i8*,i8*}
cleanup
%O=extractvalue{i8*,i8*}%N,1
call void@sml_enter()#0
%P=call i8*@sml_unsave_exn(i8*inreg%O)#0
resume{i8*,i8*}%N
}
define fastcc void@_SMLFN18SMLSharp__OSFileSys6removeE(i8*inreg%a)#2 gc"smlsharp"personality i32(...)*@sml_personality{
i:
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
store i8*%a,i8**%b,align 8
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
call void@sml_leave()#0
%j=call i32@unlink(i8*%h)
call void@sml_enter()#0
store i8*null,i8**%b,align 8
%k=icmp sgt i32%j,-1
br i1%k,label%u,label%l
l:
%m=call fastcc i8*@_SMLFN16SMLSharp__Runtime9OS__SysErrE(i32 inreg 0)
store i8*%m,i8**%b,align 8
%n=call i8*@sml_alloc(i32 inreg 60)#0
%o=getelementptr inbounds i8,i8*%n,i64 -4
%p=bitcast i8*%o to i32*
store i32 1342177336,i32*%p,align 4
%q=getelementptr inbounds i8,i8*%n,i64 56
%r=bitcast i8*%q to i32*
store i32 1,i32*%r,align 4
%s=load i8*,i8**%b,align 8
%t=bitcast i8*%n to i8**
store i8*%s,i8**%t,align 8
call void@sml_raise(i8*inreg%n)#1
unreachable
u:
ret void
}
define fastcc void@_SMLFN18SMLSharp__OSFileSys6renameE(i8*inreg%a)#2 gc"smlsharp"personality i32(...)*@sml_personality{
j:
%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
store i8*%a,i8**%b,align 8
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%h,label%f
f:
call void@sml_check(i32 inreg%d)
%g=load i8*,i8**%b,align 8
br label%h
h:
%i=phi i8*[%g,%f],[%a,%j]
%k=bitcast i8*%i to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%b,align 8
%m=getelementptr inbounds i8,i8*%i,i64 8
%n=bitcast i8*%m to i8**
%o=load i8*,i8**%n,align 8
store i8*%o,i8**%c,align 8
call void@sml_leave()#0
%p=call i32@rename(i8*%o,i8*%l)
call void@sml_enter()#0
store i8*null,i8**%c,align 8
store i8*null,i8**%b,align 8
%q=icmp sgt i32%p,-1
br i1%q,label%A,label%r
r:
%s=call fastcc i8*@_SMLFN16SMLSharp__Runtime9OS__SysErrE(i32 inreg 0)
store i8*%s,i8**%b,align 8
%t=call i8*@sml_alloc(i32 inreg 60)#0
%u=getelementptr inbounds i8,i8*%t,i64 -4
%v=bitcast i8*%u to i32*
store i32 1342177336,i32*%v,align 4
%w=getelementptr inbounds i8,i8*%t,i64 56
%x=bitcast i8*%w to i32*
store i32 1,i32*%x,align 4
%y=load i8*,i8**%b,align 8
%z=bitcast i8*%t to i8**
store i8*%y,i8**%z,align 8
call void@sml_raise(i8*inreg%t)#1
unreachable
A:
ret void
}
define fastcc i32@_SMLFN18SMLSharp__OSFileSys6accessE(i8*inreg%a)#2 gc"smlsharp"personality i32(...)*@sml_personality{
m:
%b=alloca i8*,align 8
%c=alloca i8*,align 8
%d=alloca i8*,align 8
%e=alloca i8*,align 8
%f=alloca i8*,align 8
call void@llvm.gcroot(i8**%f,i8*null)#0
store i8*%a,i8**%f,align 8
%g=load atomic i32,i32*@sml_check_flag unordered,align 4
%h=icmp eq i32%g,0
br i1%h,label%k,label%i
i:
call void@sml_check(i32 inreg%g)
%j=load i8*,i8**%f,align 8
br label%k
k:
%l=phi i8*[%j,%i],[%a,%m]
%n=getelementptr inbounds i8,i8*%l,i64 8
%o=bitcast i8*%n to i8**
%p=load i8*,i8**%o,align 8
store i8*%p,i8**%f,align 8
%q=bitcast i8*%l to i8**
%r=load i8*,i8**%q,align 8
%s=bitcast i8**%d to i8*
call void@llvm.lifetime.start.p0i8(i64 8,i8*%s)
%t=bitcast i8**%e to i8*
call void@llvm.lifetime.start.p0i8(i64 8,i8*%t)
call void@llvm.gcroot(i8**%d,i8*null)#0
call void@llvm.gcroot(i8**%e,i8*null)#0
store i8*%r,i8**%d,align 8
%u=load atomic i32,i32*@sml_check_flag unordered,align 4
%v=icmp eq i32%u,0
br i1%v,label%y,label%w
w:
call void@sml_check(i32 inreg%u)
%x=load i8*,i8**%d,align 8
br label%y
y:
%z=phi i8*[%x,%w],[%r,%k]
store i8*null,i8**%d,align 8
%A=invoke fastcc i8*@_SMLFN13SMLSharp__OSIO4statE(i8*inreg%z)
to label%aB unwind label%B
B:
%C=landingpad{i8*,i8*}
catch i8*null
%D=extractvalue{i8*,i8*}%C,1
%E=bitcast i8*%D to i8**
%F=load i8*,i8**%E,align 8
store i8*null,i8**%d,align 8
store i8*%F,i8**%e,align 8
%G=bitcast i8*%F to i8**
%H=load i8*,i8**%G,align 8
%I=load i8*,i8**@_SMLZN16SMLSharp__Runtime6SysErrE,align 8
%J=icmp eq i8*%H,%I
br i1%J,label%K,label%as
K:
%L=getelementptr inbounds i8,i8*%F,i64 16
%M=bitcast i8*%L to i8**
%N=load i8*,i8**%M,align 8
%O=getelementptr inbounds i8,i8*%N,i64 8
%P=bitcast i8*%O to i8**
%Q=load i8*,i8**%P,align 8
store i8*%Q,i8**%d,align 8
%R=icmp eq i8*%Q,null
br i1%R,label%S,label%aa
S:
store i8*null,i8**%d,align 8
%T=call i8*@sml_alloc(i32 inreg 60)#0
%U=getelementptr inbounds i8,i8*%T,i64 -4
%V=bitcast i8*%U to i32*
store i32 1342177336,i32*%V,align 4
%W=getelementptr inbounds i8,i8*%T,i64 56
%X=bitcast i8*%W to i32*
store i32 1,i32*%X,align 4
%Y=load i8*,i8**%e,align 8
%Z=bitcast i8*%T to i8**
store i8*%Y,i8**%Z,align 8
call void@sml_raise(i8*inreg%T)#1
unreachable
aa:
%ab=call fastcc i8*@_SMLFN16SMLSharp__Runtime8syserrorE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[6x i8]}>,<{[4x i8],i32,[6x i8]}>*@o,i64 0,i32 2,i64 0))
%ac=load i8*,i8**%d,align 8
%ad=call i32@sml_obj_equal(i8*inreg%ac,i8*inreg%ab)#0
%ae=icmp eq i32%ad,0
br i1%ae,label%af,label%aA
af:
%ag=call fastcc i8*@_SMLFN16SMLSharp__Runtime8syserrorE(i8*inreg getelementptr inbounds(<{[4x i8],i32,[5x i8]}>,<{[4x i8],i32,[5x i8]}>*@p,i64 0,i32 2,i64 0))
%ah=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ai=call i32@sml_obj_equal(i8*inreg%ah,i8*inreg%ag)#0
%aj=icmp eq i32%ai,0
br i1%aj,label%ak,label%aA
ak:
%al=call i8*@sml_alloc(i32 inreg 60)#0
%am=getelementptr inbounds i8,i8*%al,i64 -4
%an=bitcast i8*%am to i32*
store i32 1342177336,i32*%an,align 4
%ao=getelementptr inbounds i8,i8*%al,i64 56
%ap=bitcast i8*%ao to i32*
store i32 1,i32*%ap,align 4
%aq=load i8*,i8**%e,align 8
%ar=bitcast i8*%al to i8**
store i8*%aq,i8**%ar,align 8
call void@sml_raise(i8*inreg%al)#1
unreachable
as:
%at=call i8*@sml_alloc(i32 inreg 60)#0
%au=getelementptr inbounds i8,i8*%at,i64 -4
%av=bitcast i8*%au to i32*
store i32 1342177336,i32*%av,align 4
%aw=getelementptr inbounds i8,i8*%at,i64 56
%ax=bitcast i8*%aw to i32*
store i32 1,i32*%ax,align 4
%ay=load i8*,i8**%e,align 8
%az=bitcast i8*%at to i8**
store i8*%ay,i8**%az,align 8
call void@sml_raise(i8*inreg%at)#1
unreachable
aA:
call void@llvm.lifetime.end.p0i8(i64 8,i8*%s)
call void@llvm.lifetime.end.p0i8(i64 8,i8*%t)
br label%aK
aB:
store i8*%A,i8**%d,align 8
%aC=call i8*@sml_alloc(i32 inreg 12)#0
%aD=getelementptr inbounds i8,i8*%aC,i64 -4
%aE=bitcast i8*%aD to i32*
store i32 1342177288,i32*%aE,align 4
%aF=load i8*,i8**%d,align 8
%aG=bitcast i8*%aC to i8**
store i8*%aF,i8**%aG,align 8
%aH=getelementptr inbounds i8,i8*%aC,i64 8
%aI=bitcast i8*%aH to i32*
store i32 1,i32*%aI,align 4
call void@llvm.lifetime.end.p0i8(i64 8,i8*%s)
call void@llvm.lifetime.end.p0i8(i64 8,i8*%t)
%aJ=icmp eq i8*%aC,null
br i1%aJ,label%aK,label%aL
aK:
ret i32 0
aL:
%aM=getelementptr inbounds i8,i8*%aF,i64 12
%aN=bitcast i8*%aM to i32*
%aO=load i32,i32*%aN,align 4
%aP=call i8*@sml_alloc(i32 inreg 20)#0
%aQ=getelementptr inbounds i8,i8*%aP,i64 -4
%aR=bitcast i8*%aQ to i32*
store i32 1342177296,i32*%aR,align 4
%aS=getelementptr inbounds i8,i8*%aP,i64 12
%aT=bitcast i8*%aS to i32*
store i32 0,i32*%aT,align 1
%aU=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%aV=bitcast i8*%aP to i8**
store i8*%aU,i8**%aV,align 8
%aW=getelementptr inbounds i8,i8*%aP,i64 8
%aX=bitcast i8*%aW to i32*
store i32 0,i32*%aX,align 4
%aY=getelementptr inbounds i8,i8*%aP,i64 16
%aZ=bitcast i8*%aY to i32*
store i32 1,i32*%aZ,align 4
%a0=bitcast i8**%b to i8*
call void@llvm.lifetime.start.p0i8(i64 8,i8*%a0)
%a1=bitcast i8**%c to i8*
call void@llvm.lifetime.start.p0i8(i64 8,i8*%a1)
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
store i8*%aP,i8**%b,align 8
%a2=load atomic i32,i32*@sml_check_flag unordered,align 4
%a3=icmp eq i32%a2,0
br i1%a3,label%bb,label%a4
a4:
call void@sml_check(i32 inreg%a2)
%a5=load i8*,i8**%b,align 8
%a6=bitcast i8*%a5 to i8**
%a7=load i8*,i8**%a6,align 8
%a8=getelementptr inbounds i8,i8*%a5,i64 8
%a9=bitcast i8*%a8 to i32*
%ba=load i32,i32*%a9,align 4
br label%bb
bb:
%bc=phi i32[%ba,%a4],[0,%aL]
%bd=phi i8*[%a7,%a4],[%aU,%aL]
%be=icmp eq i8*%bd,null
br i1%be,label%bf,label%bg
bf:
call void@llvm.lifetime.end.p0i8(i64 8,i8*%a0)
call void@llvm.lifetime.end.p0i8(i64 8,i8*%a1)
br label%bI
bg:
%bh=bitcast i8*%bd to i32*
%bi=load i32,i32*%bh,align 4
%bj=icmp ult i32%bi,3
br i1%bj,label%bC,label%bk
bk:
call void@sml_matchcomp_bug()
%bl=load i8*,i8**@_SMLZ5Match,align 8
store i8*%bl,i8**%b,align 8
%bm=call i8*@sml_alloc(i32 inreg 20)#0
%bn=getelementptr inbounds i8,i8*%bm,i64 -4
%bo=bitcast i8*%bn to i32*
store i32 1342177296,i32*%bo,align 4
store i8*%bm,i8**%c,align 8
%bp=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%bq=bitcast i8*%bm to i8**
store i8*%bp,i8**%bq,align 8
%br=getelementptr inbounds i8,i8*%bm,i64 8
%bs=bitcast i8*%br to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[51x i8]}>,<{[4x i8],i32,[51x i8]}>*@z,i64 0,i32 2,i64 0),i8**%bs,align 8
%bt=getelementptr inbounds i8,i8*%bm,i64 16
%bu=bitcast i8*%bt to i32*
store i32 3,i32*%bu,align 4
%bv=call i8*@sml_alloc(i32 inreg 60)#0
%bw=getelementptr inbounds i8,i8*%bv,i64 -4
%bx=bitcast i8*%bw to i32*
store i32 1342177336,i32*%bx,align 4
%by=getelementptr inbounds i8,i8*%bv,i64 56
%bz=bitcast i8*%by to i32*
store i32 1,i32*%bz,align 4
%bA=load i8*,i8**%c,align 8
%bB=bitcast i8*%bv to i8**
store i8*%bA,i8**%bB,align 8
call void@sml_raise(i8*inreg%bv)#1
unreachable
bC:
%bD=sext i32%bi to i64
%bE=getelementptr inbounds[3x i32*],[3x i32*]*@J,i64 0,i64%bD
%bF=load i32*,i32**%bE,align 8
%bG=load i32,i32*%bF,align 4
%bH=or i32%bG,%bc
call void@llvm.lifetime.end.p0i8(i64 8,i8*%a0)
call void@llvm.lifetime.end.p0i8(i64 8,i8*%a1)
br label%bI
bI:
%bJ=phi i32[%bc,%bf],[%bH,%bC]
%bK=and i32%bJ,%aO
%bL=icmp eq i32%bK,%bJ
%bM=zext i1%bL to i32
ret i32%bM
}
define fastcc i32@_SMLFN18SMLSharp__OSFileSys4hashE(i8*inreg%a)#4 gc"smlsharp"{
%b=getelementptr inbounds i8,i8*%a,i64 4
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=getelementptr inbounds i8,i8*%a,i64 8
%f=bitcast i8*%e to i32*
%g=load i32,i32*%f,align 4
%h=shl i32%d,16
%i=add i32%h,%g
ret i32%i
}
define fastcc i32@_SMLFN18SMLSharp__OSFileSys7compareE(i8*inreg%a)#4 gc"smlsharp"{
v:
%b=bitcast i8*%a to i8**
%c=load i8*,i8**%b,align 8
%d=getelementptr inbounds i8,i8*%c,i64 4
%e=bitcast i8*%d to i32*
%f=load i32,i32*%e,align 4
%g=getelementptr inbounds i8,i8*%c,i64 8
%h=bitcast i8*%g to i32*
%i=load i32,i32*%h,align 4
%j=getelementptr inbounds i8,i8*%a,i64 8
%k=bitcast i8*%j to i8**
%l=load i8*,i8**%k,align 8
%m=getelementptr inbounds i8,i8*%l,i64 4
%n=bitcast i8*%m to i32*
%o=load i32,i32*%n,align 4
%p=getelementptr inbounds i8,i8*%l,i64 8
%q=bitcast i8*%p to i32*
%r=load i32,i32*%q,align 4
%s=icmp ult i32%f,%o
br i1%s,label%t,label%w
t:
%u=phi i32[2,%v],[1,%w],[2,%y],[%C,%A]
ret i32%u
w:
%x=icmp ugt i32%f,%o
br i1%x,label%t,label%y
y:
%z=icmp ult i32%i,%r
br i1%z,label%t,label%A
A:
%B=icmp ugt i32%i,%r
%C=zext i1%B to i32
br label%t
}
define fastcc i32@_SMLFN18SMLSharp__OSFileSys5isDirE(i8*inreg%a)#2 gc"smlsharp"{
i:
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
store i8*%a,i8**%b,align 8
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
store i8*null,i8**%b,align 8
%j=call fastcc i8*@_SMLFN13SMLSharp__OSIO4statE(i8*inreg%h)
%k=getelementptr inbounds i8,i8*%j,i64 12
%l=bitcast i8*%k to i32*
%m=load i32,i32*%l,align 4
%n=load i32,i32*@_SMLZN13SMLSharp__OSIO6S__IFMTE,align 4
%o=and i32%n,%m
%p=load i32,i32*@_SMLZN13SMLSharp__OSIO7S__IFDIRE,align 4
%q=icmp eq i32%o,%p
%r=zext i1%q to i32
ret i32%r
}
define fastcc i32@_SMLFN18SMLSharp__OSFileSys6isLinkE(i8*inreg%a)#2 gc"smlsharp"{
i:
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
store i8*%a,i8**%b,align 8
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
store i8*null,i8**%b,align 8
%j=call fastcc i8*@_SMLFN13SMLSharp__OSIO5lstatE(i8*inreg%h)
%k=getelementptr inbounds i8,i8*%j,i64 12
%l=bitcast i8*%k to i32*
%m=load i32,i32*%l,align 4
%n=load i32,i32*@_SMLZN13SMLSharp__OSIO6S__IFMTE,align 4
%o=and i32%n,%m
%p=load i32,i32*@_SMLZN13SMLSharp__OSIO7S__IFLNKE,align 4
%q=icmp eq i32%o,%p
%r=zext i1%q to i32
ret i32%r
}
define fastcc i8*@_SMLFN18SMLSharp__OSFileSys7modTimeE(i8*inreg%a)#2 gc"smlsharp"{
i:
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
store i8*%a,i8**%b,align 8
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
store i8*null,i8**%b,align 8
%j=call fastcc i8*@_SMLFN13SMLSharp__OSIO4statE(i8*inreg%h)
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i32*
%m=load i32,i32*%l,align 4
%n=call fastcc i8*@_SMLFN6IntInf7fromIntE(i32 inreg%m)
%o=tail call fastcc i8*@_SMLFN4Time11fromSecondsE(i8*inreg%n)
ret i8*%o
}
define fastcc i32@_SMLFN18SMLSharp__OSFileSys8fileSizeE(i8*inreg%a)#2 gc"smlsharp"{
i:
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
store i8*%a,i8**%b,align 8
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
store i8*null,i8**%b,align 8
%j=call fastcc i8*@_SMLFN13SMLSharp__OSIO4statE(i8*inreg%h)
%k=getelementptr inbounds i8,i8*%j,i64 20
%l=bitcast i8*%k to i32*
%m=load i32,i32*%l,align 4
ret i32%m
}
define fastcc i8*@_SMLFN18SMLSharp__OSFileSys7tmpNameE(i32 inreg%a)#2 gc"smlsharp"personality i32(...)*@sml_personality{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%f,label%e
e:
call void@sml_check(i32 inreg%c)
br label%f
f:
call void@sml_leave()#0
%g=invoke i8*@prim_tmpName()
to label%h unwind label%x
h:
call void@sml_enter()#0
%i=getelementptr inbounds i8,i8*%g,i64 -4
%j=bitcast i8*%i to i32*
%k=load i32,i32*%j,align 4
%l=and i32%k,268435455
%m=icmp eq i32%l,1
br i1%m,label%n,label%w
n:
%o=call fastcc i8*@_SMLFN16SMLSharp__Runtime9OS__SysErrE(i32 inreg 0)
store i8*%o,i8**%b,align 8
%p=call i8*@sml_alloc(i32 inreg 60)#0
%q=getelementptr inbounds i8,i8*%p,i64 -4
%r=bitcast i8*%q to i32*
store i32 1342177336,i32*%r,align 4
%s=getelementptr inbounds i8,i8*%p,i64 56
%t=bitcast i8*%s to i32*
store i32 1,i32*%t,align 4
%u=load i8*,i8**%b,align 8
%v=bitcast i8*%p to i8**
store i8*%u,i8**%v,align 8
call void@sml_raise(i8*inreg%p)#1
unreachable
w:
ret i8*%g
x:
%y=landingpad{i8*,i8*}
cleanup
%z=extractvalue{i8*,i8*}%y,1
call void@sml_enter()#0
%A=call i8*@sml_unsave_exn(i8*inreg%z)#0
resume{i8*,i8*}%y
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys7openDirE_173(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__OSFileSys7openDirE(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys7readDirE_174(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__OSFileSys7readDirE(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys9rewindDirE_175(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
tail call fastcc void@_SMLFN18SMLSharp__OSFileSys9rewindDirE(i8*inreg%b)
%c=tail call i8*@sml_alloc(i32 inreg 4)#0
%d=bitcast i8*%c to i32*
%e=getelementptr inbounds i8,i8*%c,i64 -4
%f=bitcast i8*%e to i32*
store i32 4,i32*%f,align 4
store i32 0,i32*%d,align 4
ret i8*%c
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys8closeDirE_176(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
tail call fastcc void@_SMLFN18SMLSharp__OSFileSys8closeDirE(i8*inreg%b)
%c=tail call i8*@sml_alloc(i32 inreg 4)#0
%d=bitcast i8*%c to i32*
%e=getelementptr inbounds i8,i8*%c,i64 -4
%f=bitcast i8*%e to i32*
store i32 4,i32*%f,align 4
store i32 0,i32*%d,align 4
ret i8*%c
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys5chDirE_177(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
tail call fastcc void@_SMLFN18SMLSharp__OSFileSys5chDirE(i8*inreg%b)
%c=tail call i8*@sml_alloc(i32 inreg 4)#0
%d=bitcast i8*%c to i32*
%e=getelementptr inbounds i8,i8*%c,i64 -4
%f=bitcast i8*%e to i32*
store i32 4,i32*%f,align 4
store i32 0,i32*%d,align 4
ret i8*%c
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys6getDirE_178(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__OSFileSys6getDirE(i32 inreg undef)
ret i8*%c
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys5mkDirE_179(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
tail call fastcc void@_SMLFN18SMLSharp__OSFileSys5mkDirE(i8*inreg%b)
%c=tail call i8*@sml_alloc(i32 inreg 4)#0
%d=bitcast i8*%c to i32*
%e=getelementptr inbounds i8,i8*%c,i64 -4
%f=bitcast i8*%e to i32*
store i32 4,i32*%f,align 4
store i32 0,i32*%d,align 4
ret i8*%c
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys5rmDirE_180(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
tail call fastcc void@_SMLFN18SMLSharp__OSFileSys5rmDirE(i8*inreg%b)
%c=tail call i8*@sml_alloc(i32 inreg 4)#0
%d=bitcast i8*%c to i32*
%e=getelementptr inbounds i8,i8*%c,i64 -4
%f=bitcast i8*%e to i32*
store i32 4,i32*%f,align 4
store i32 0,i32*%d,align 4
ret i8*%c
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys8readLinkE_182(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__OSFileSys8readLinkE(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys8fullPathE_184(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__OSFileSys8fullPathE(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys8realPathE_185(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__OSFileSys8realPathE(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys7setTimeE_186(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
tail call fastcc void@_SMLFN18SMLSharp__OSFileSys7setTimeE(i8*inreg%b)
%c=tail call i8*@sml_alloc(i32 inreg 4)#0
%d=bitcast i8*%c to i32*
%e=getelementptr inbounds i8,i8*%c,i64 -4
%f=bitcast i8*%e to i32*
store i32 4,i32*%f,align 4
store i32 0,i32*%d,align 4
ret i8*%c
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys6removeE_187(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
tail call fastcc void@_SMLFN18SMLSharp__OSFileSys6removeE(i8*inreg%b)
%c=tail call i8*@sml_alloc(i32 inreg 4)#0
%d=bitcast i8*%c to i32*
%e=getelementptr inbounds i8,i8*%c,i64 -4
%f=bitcast i8*%e to i32*
store i32 4,i32*%f,align 4
store i32 0,i32*%d,align 4
ret i8*%c
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys6renameE_188(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
tail call fastcc void@_SMLFN18SMLSharp__OSFileSys6renameE(i8*inreg%b)
%c=tail call i8*@sml_alloc(i32 inreg 4)#0
%d=bitcast i8*%c to i32*
%e=getelementptr inbounds i8,i8*%c,i64 -4
%f=bitcast i8*%e to i32*
store i32 4,i32*%f,align 4
store i32 0,i32*%d,align 4
ret i8*%c
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys6accessE_190(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=tail call fastcc i32@_SMLFN18SMLSharp__OSFileSys6accessE(i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 4)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 4,i32*%g,align 4
store i32%c,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys4hashE_191(i8*inreg%a,i8*inreg%b)#4 gc"smlsharp"{
%c=getelementptr inbounds i8,i8*%b,i64 4
%d=bitcast i8*%c to i32*
%e=load i32,i32*%d,align 4
%f=getelementptr inbounds i8,i8*%b,i64 8
%g=bitcast i8*%f to i32*
%h=load i32,i32*%g,align 4
%i=shl i32%e,16
%j=add i32%i,%h
%k=tail call i8*@sml_alloc(i32 inreg 4)#0
%l=bitcast i8*%k to i32*
%m=getelementptr inbounds i8,i8*%k,i64 -4
%n=bitcast i8*%m to i32*
store i32 4,i32*%n,align 4
store i32%j,i32*%l,align 4
ret i8*%k
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys7compareE_192(i8*inreg%a,i8*inreg%b)#4 gc"smlsharp"{
%c=tail call fastcc i32@_SMLFN18SMLSharp__OSFileSys7compareE(i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 4)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 4,i32*%g,align 4
store i32%c,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys5isDirE_193(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=tail call fastcc i32@_SMLFN18SMLSharp__OSFileSys5isDirE(i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 4)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 4,i32*%g,align 4
store i32%c,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys6isLinkE_194(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=tail call fastcc i32@_SMLFN18SMLSharp__OSFileSys6isLinkE(i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 4)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 4,i32*%g,align 4
store i32%c,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys7modTimeE_195(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__OSFileSys7modTimeE(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys8fileSizeE_196(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=tail call fastcc i32@_SMLFN18SMLSharp__OSFileSys8fileSizeE(i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 4)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 4,i32*%g,align 4
store i32%c,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLN18SMLSharp__OSFileSys7tmpNameE_197(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN18SMLSharp__OSFileSys7tmpNameE(i32 inreg undef)
ret i8*%c
}
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={uwtable}
attributes#3={noreturn nounwind}
attributes#4={nounwind uwtable}
