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