x86-allocate-registers bug
Stephen Weeks
MLton@sourcelight.com
Wed, 12 Sep 2001 18:44:54 -0700
> I am now making G0 from an old MLton.
G0 succeeded. G1 did not. Here is a snippet of the log.
Compiling mlton (takes a while)
time mlton @MLton -- -v2 -o mlton-compile mlton.cm
MLton starting
MLton VERSION (built Wed Sep 12 17:19:17 2001 on starlinux)
created this file on Wed Sep 12 18:22:39 2001.
Do not edit this file.
Flag settings:
chunk: chunk per function
debug: false
defines: [NODEBUG,MLton_safe=TRUE,MLton_detectOverflow=TRUE]
detect overflow: true
drop passes: []
fixed heap: None
indentation: 3
includes: [mlton.h]
inline: NonRecursive {product = 320,small = 60}
input file: mlton
instrument: false
instrument Sxml: false
keepCps: false
keep diagnostics: []
keep dot: false
keep passes: []
native: true
native commented: 0
native live stack: false
native optimize: 1
native move hoist: true
native copy prop: true
native cutoff: 100
native live transfer: true
native future: 64
native ieee fp: false
native split: Some (20000)
polyvariance: Some ({rounds = 2,small = 30,product = 300})
print at fun entry: false
profile: false
safe: true
show types: false
static: false
type check: false
use basis library: true
verbosity: Pass
Compile SML starting
pre codegen starting
...
pre codegen finished in 94.96 + 133.55 (58% GC)
x86 code gen starting
outputC starting
outputC finished in 0.51 + 0.0 (0.0% GC)
outputAssembly starting
handling respill intoRegisterMemLoc
entries:
%esi MEM<l>{GCStateHold}[((gcState+12))+(0*4)] 1978 true NO
%edi MEM<l>{GCStateHold}[((gcState+40))+(0*4)] 924 true NO
%esp MEM<l>{Temp}[(indexTemp)+(0*4)] 1039 true NO
%edx MEM<l>{Locals}[(localpointer)+(5*4)] 1019 true NO
%ebp MEM<l>{Locals}[(localpointer)+(4*4)] 979 true NO
%eax MEM<l>{Temp}[(indexTemp)+(0*4)] 1019 true NO
reserved:
%eax
fltstack:
# directive: Cache: caches: MEM<l>{Temp}[(indexTemp)+(0*4)] -> %eax
entries:
%esi MEM<l>{GCStateHold}[((gcState+12))+(0*4)] 1978 false NO
%edi MEM<l>{GCStateHold}[((gcState+40))+(0*4)] 924 false NO
%ebp MEM<l>{Locals}[(localpointer)+(4*4)] 979 false NO
%eax MEM<l>{Temp}[(indexTemp)+(0*4)] 1019 true NO
%edx MEM<l>{Locals}[(localpointer)+(5*4)] 1019 false NO
%esp MEM<l>{Temp}[(indexTemp)+(0*4)] 1039 false NO
reserved:
%eax
fltstack:
.p2align 2
future (post): FUSE MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(2*4)])+(4*1)]
future (post): FUSE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FDEF MEM<l>{Stack}[(MEM<l>{GCStateHold}[((gcState+40))+(0*4)])+(52*1)]
future (post): FUSE MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(2*4)])+(8*1)]
future (post): FDEF MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FDEAD MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
future (post): FUSE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(5*4)])+(0*1)]
future (post): FDEF MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSEDEF MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
future (post): FLIVE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(4*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+12))+(0*4)]
future (post): FUSE MEM<l>{Code}[(jumpTable_62)+(MEM<l>{Temp}[(indexTemp)+(0*4)]*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FDEAD MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
hint: MEM<l>{Temp}[(indexTemp)+(0*4)] -> %eax
L_23930:
future (post): FUSE MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(2*4)])+(4*1)]
future (post): FUSE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FDEF MEM<l>{Stack}[(MEM<l>{GCStateHold}[((gcState+40))+(0*4)])+(52*1)]
future (post): FUSE MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(2*4)])+(8*1)]
future (post): FDEF MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FDEAD MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
future (post): FUSE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(5*4)])+(0*1)]
future (post): FDEF MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSEDEF MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
future (post): FLIVE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(4*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+12))+(0*4)]
future (post): FUSE MEM<l>{Code}[(jumpTable_62)+(MEM<l>{Temp}[(indexTemp)+(0*4)]*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FDEAD MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
hint: MEM<l>{Temp}[(indexTemp)+(0*4)] -> %eax
# directive: Assume: assumes: MEM<l>{GCStateHold}[((gcState+12))+(0*4)] -> %esi MEM<l>{GCStateHold}[((gcState+40))+(0*4)] -> %edi
future (post): FUSE MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(2*4)])+(4*1)]
future (post): FUSE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FDEF MEM<l>{Stack}[(MEM<l>{GCStateHold}[((gcState+40))+(0*4)])+(52*1)]
future (post): FUSE MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(2*4)])+(8*1)]
future (post): FDEF MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FDEAD MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
future (post): FUSE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(5*4)])+(0*1)]
future (post): FDEF MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSEDEF MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
future (post): FLIVE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(4*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+12))+(0*4)]
future (post): FUSE MEM<l>{Code}[(jumpTable_62)+(MEM<l>{Temp}[(indexTemp)+(0*4)]*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FDEAD MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
hint: MEM<l>{Temp}[(indexTemp)+(0*4)] -> %eax
# directive: FltAssume: assumes:
future (post): FUSE MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(2*4)])+(4*1)]
future (post): FUSE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FDEF MEM<l>{Stack}[(MEM<l>{GCStateHold}[((gcState+40))+(0*4)])+(52*1)]
future (post): FUSE MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(2*4)])+(8*1)]
future (post): FDEF MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FDEAD MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
future (post): FUSE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(5*4)])+(0*1)]
future (post): FDEF MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSEDEF MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
future (post): FLIVE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(4*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+12))+(0*4)]
future (post): FUSE MEM<l>{Code}[(jumpTable_62)+(MEM<l>{Temp}[(indexTemp)+(0*4)]*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FDEAD MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
hint: MEM<l>{Temp}[(indexTemp)+(0*4)] -> %eax
# directive: RestoreRegAlloc: live: MEM<l>{Locals}[(localpointer)+(4*4)] MEM<l>{Locals}[(localpointer)+(2*4)] MEM<l>{GCStateHold}[((gcState+40))+(0*4)] MEM<l>{GCStateHold}[((gcState+12))+(0*4)] RegAlloc9593
future (post): FUSE MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(2*4)])+(4*1)]
future (post): FUSE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FDEF MEM<l>{Stack}[(MEM<l>{GCStateHold}[((gcState+40))+(0*4)])+(52*1)]
future (post): FUSE MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(2*4)])+(8*1)]
future (post): FDEF MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FDEAD MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
future (post): FUSE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(5*4)])+(0*1)]
future (post): FDEF MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSEDEF MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
future (post): FLIVE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(4*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+12))+(0*4)]
future (post): FUSE MEM<l>{Code}[(jumpTable_62)+(MEM<l>{Temp}[(indexTemp)+(0*4)]*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FDEAD MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
hint: MEM<l>{Temp}[(indexTemp)+(0*4)] -> %eax
L_24008:
future (post): FUSE MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(2*4)])+(4*1)]
future (post): FUSE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FDEF MEM<l>{Stack}[(MEM<l>{GCStateHold}[((gcState+40))+(0*4)])+(52*1)]
future (post): FUSE MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(2*4)])+(8*1)]
future (post): FDEF MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FDEAD MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
future (post): FUSE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(5*4)])+(0*1)]
future (post): FDEF MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSEDEF MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
future (post): FLIVE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(4*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+12))+(0*4)]
future (post): FUSE MEM<l>{Code}[(jumpTable_62)+(MEM<l>{Temp}[(indexTemp)+(0*4)]*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FDEAD MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
hint: MEM<l>{Temp}[(indexTemp)+(0*4)] -> %eax
movl MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(2*4)])+(4*1)],MEM<l>{Stack}[(MEM<l>{GCStateHold}[((gcState+40))+(0*4)])+(52*1)]
remove: MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(2*4)])+(4*1)]
remove: MEM<l>{Stack}[(MEM<l>{GCStateHold}[((gcState+40))+(0*4)])+(52*1)]
future (post): FUSE MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(2*4)])+(8*1)]
future (post): FDEF MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FDEAD MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
future (post): FUSE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(5*4)])+(0*1)]
future (post): FDEF MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSEDEF MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
future (post): FLIVE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(4*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+12))+(0*4)]
future (post): FUSE MEM<l>{Code}[(jumpTable_62)+(MEM<l>{Temp}[(indexTemp)+(0*4)]*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FDEAD MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
hint: MEM<l>{Temp}[(indexTemp)+(0*4)] -> %eax
movl MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(2*4)])+(8*1)],MEM<l>{Locals}[(localpointer)+(5*4)]
dead: MEM<l>{Locals}[(localpointer)+(2*4)]
remove: MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(2*4)])+(8*1)]
future (post): FDEAD MEM<l>{Locals}[(localpointer)+(2*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
future (post): FUSE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(5*4)])+(0*1)]
future (post): FDEF MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSEDEF MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
future (post): FLIVE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(4*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+12))+(0*4)]
future (post): FUSE MEM<l>{Code}[(jumpTable_62)+(MEM<l>{Temp}[(indexTemp)+(0*4)]*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FDEAD MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
hint: MEM<l>{Temp}[(indexTemp)+(0*4)] -> %eax
# directive: Force: commit_memlocs: commit_classes: remove_memlocs: remove_classes: dead_memlocs: MEM<l>{Locals}[(localpointer)+(2*4)] dead_classes:
future (post): FUSE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FUSE MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(5*4)])+(0*1)]
future (post): FDEF MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSEDEF MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
future (post): FLIVE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(4*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+12))+(0*4)]
future (post): FUSE MEM<l>{Code}[(jumpTable_62)+(MEM<l>{Temp}[(indexTemp)+(0*4)]*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FDEAD MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
hint: MEM<l>{Temp}[(indexTemp)+(0*4)] -> %eax
movl MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(5*4)])+(0*1)],MEM<l>{Temp}[(indexTemp)+(0*4)]
remove: MEM<l>{Heap}[(MEM<l>{Locals}[(localpointer)+(5*4)])+(0*1)]
future (post): FUSEDEF MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
future (post): FLIVE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(4*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+12))+(0*4)]
future (post): FUSE MEM<l>{Code}[(jumpTable_62)+(MEM<l>{Temp}[(indexTemp)+(0*4)]*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FDEAD MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
hint: MEM<l>{Temp}[(indexTemp)+(0*4)] -> %eax
subl $1,MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
future (post): FLIVE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(4*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+12))+(0*4)]
future (post): FUSE MEM<l>{Code}[(jumpTable_62)+(MEM<l>{Temp}[(indexTemp)+(0*4)]*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FDEAD MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
hint: MEM<l>{Temp}[(indexTemp)+(0*4)] -> %eax
# directive: Force: commit_memlocs: commit_classes: ThreadStack IntInfRes GCState CStatic Globals Stack Heap Code CStack remove_memlocs: remove_classes: dead_memlocs: dead_classes:
future (post): FLIVE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(4*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+12))+(0*4)]
future (post): FUSE MEM<l>{Code}[(jumpTable_62)+(MEM<l>{Temp}[(indexTemp)+(0*4)]*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FDEAD MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
hint: MEM<l>{Temp}[(indexTemp)+(0*4)] -> %eax
# directive: Cache: caches: MEM<l>{Temp}[(indexTemp)+(0*4)] -> %eax
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(4*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+12))+(0*4)]
future (post): FUSE MEM<l>{Code}[(jumpTable_62)+(MEM<l>{Temp}[(indexTemp)+(0*4)]*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FDEAD MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
hint: MEM<l>{Temp}[(indexTemp)+(0*4)] -> %eax
cmpl $31,MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(4*4)]
future (post): FLIVE MEM<l>{Locals}[(localpointer)+(5*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+40))+(0*4)]
future (post): FLIVE MEM<l>{GCStateHold}[((gcState+12))+(0*4)]
future (post): FUSE MEM<l>{Code}[(jumpTable_62)+(MEM<l>{Temp}[(indexTemp)+(0*4)]*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FDEAD MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
# directive: SaveRegAlloc: live: MEM<l>{Locals}[(localpointer)+(4*4)] MEM<l>{Locals}[(localpointer)+(5*4)] MEM<l>{GCStateHold}[((gcState+40))+(0*4)] MEM<l>{GCStateHold}[((gcState+12))+(0*4)] RegAlloc9594
future (post): FUSE MEM<l>{Code}[(jumpTable_62)+(MEM<l>{Temp}[(indexTemp)+(0*4)]*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FDEAD MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
jae L_23960
future (post): FUSE MEM<l>{Code}[(jumpTable_62)+(MEM<l>{Temp}[(indexTemp)+(0*4)]*4)]
future (post): FUSE MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FDEAD MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
jmp *MEM<l>{Code}[(jumpTable_62)+(MEM<l>{Temp}[(indexTemp)+(0*4)]*4)]
dead: MEM<l>{Temp}[(indexTemp)+(0*4)]
remove: MEM<l>{Code}[(jumpTable_62)+(MEM<l>{Temp}[(indexTemp)+(0*4)]*4)]
future (post): FDEAD MEM<l>{Temp}[(indexTemp)+(0*4)]
future (post): FCOMMITP
future (post): FREMOVEP
future (post): FDEADP
# directive: Force: commit_memlocs: commit_classes: remove_memlocs: remove_classes: dead_memlocs: MEM<l>{Temp}[(indexTemp)+(0*4)] dead_classes:
.data
.p2align 2
jumpTable_62:
.long L_23961,L_23962,L_23963,L_23964,L_23965,L_23966,L_23967,L_23968,L_23969,L_23970,L_23971,L_23972,L_23973,L_23974,L_23975,L_23976,L_23977,L_23978,L_23979,L_23980,L_23981,L_23982,L_23983,L_23984,L_23985,L_23986,L_23987,L_23988,L_23989,L_23990,L_23991
.text
outputAssembly raised in 22.76 + 20.42 (47% GC)
x86 code gen raised in 23.34 + 20.42 (47% GC)
Compile SML raised in 118.30 + 153.97 (57% GC)
MLton raised in 118.39 + 153.97 (57% GC)
mlton: x86AllocateRegister.allocateRegisters::toRegisterMemLoc:reSpill
make[1]: Leaving directory `/home/sweeks/mlton/src/mlton'
Command exited with non-zero status 1
268.97user 3.45system 4:44.39elapsed 95%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (4844major+881583minor)pagefaults 0swaps
make[1]: *** [mlton-compile] Error 1