Should "computeLiveTransfers" really take 10 minutes?

"Robert J. Simmons" <[email protected]> Wed, 15 Feb 2012 19:06:13 -0500
Newsgroups gmane.comp.lang.ml.mlton.devel
Message-ID <CAFbBx+jErMDPDHGcbx_54k7w3go74f4e-xnXO9zEA6Ncvmpw5A@mail.gmail.com>
I have a reasonably unsophisticated ML application (a high-level
interpreter for the C0 programming language, a safe variant of C being
used in one of our intro courses at CMU). It takes ~15 minutes to
compile with MLton 20100608 (OSX), which I accepted as a fact of life
until I compiled with -verbose 3 the other day. I'll attach the full
output at the bottom of the email, but the hierarchically relevant
portion of the trace is this: most of the time is spent in two steps:
"toMachine" right before codegen and "computeLiveTransfers" in
codegen:

	    toMachine finished in 259.36 + 0.66 (0% GC)
	 backend finished in 267.45 + 3.29 (1% GC)
      pre codegen finished in 337.52 + 46.85 (12% GC)
	    generateTransfers totals 558.65 + 5.92 (1% GC)
	       computeLiveTransfers totals 549.91 + 0.00 (0% GC)
	 outputAssembly finished in 602.52 + 12.96 (2% GC)
      amd64 code gen finished in 602.53 + 12.96 (2% GC)
   Compile SML finished in 940.07 + 59.82 (6% GC)

This was unexpected enough that I figured I'd ask if this might be a
known/unknown performance bug, and if it might have a known
workaround. Is there a good reason why these stages in particular
should be tripping us up?

Thanks,
Rob

-- Super-exhaustive MLton output follows:

$ mlton -verbose 3 -default-ann "redundantMatch error" -default-ann
"sequenceNonUnit error" -link-opt "-lpthread -ldl -rdynamic" -cc-opt
-Iinclude -default-ann "allowFFI true" -output  bin/coin-exec
coin/coin-exec.mlb bare/bare.c bare/cstr.c cymbol/sizeof.c
cymbol/extern-lib.c cymbol/extern-call.c
MLton starting
MLton 20100608 (built Tue Jun  8 16:05:08 EDT 2010 on zaphod.cs.rit.edu)
  created this file on Wed Feb 15 12:30:12 2012.
Do not edit this file.
Flag settings:
   align: 8
   atMLtons: (bin/coin-exec, @MLton, --)
   chunk: chunk per function
   closureConvertGlobalize: true
   closureConvertShrink: true
   codegen: amd64
   contifyIntoMain: false
   debug: false
   defaultChar: char8
   defaultWideChar: widechar32
   defaultInt: int32
   defaultReal: real64
   defaultWord: word32
   diag passes: []
   drop passes: []
   elaborate allowConstant (default): false
   elaborate allowConstant (enabled): true
   elaborate allowFFI (default): true
   elaborate allowFFI (enabled): true
   elaborate allowPrim (default): false
   elaborate allowPrim (enabled): true
   elaborate allowOverload (default): false
   elaborate allowOverload (enabled): true
   elaborate allowRebindEquals (default): false
   elaborate allowRebindEquals (enabled): true
   elaborate deadCode (default): false
   elaborate deadCode (enabled): true
   elaborate forceUsed (default): false
   elaborate forceUsed (enabled): true
   elaborate ffiStr (default):
   elaborate ffiStr (enabled): true
   elaborate nonexhaustiveExnMatch (default): default
   elaborate nonexhaustiveExnMatch (enabled): true
   elaborate nonexhaustiveMatch (default): warn
   elaborate nonexhaustiveMatch (enabled): true
   elaborate redundantMatch (default): error
   elaborate redundantMatch (enabled): true
   elaborate sequenceNonUnit (default): error
   elaborate sequenceNonUnit (enabled): true
   elaborate warnUnused (default): false
   elaborate warnUnused (enabled): true
   elaborate only: false
   emit main: true
   export header: None
   exn history: false
   generated output format: executable
   gc check: Limit
   indentation: 3
   inlineIntoMain: true
   inlineLeafA: {loops = true, repeat = true, size = Some 20}
   inlineLeafB: {loops = true, repeat = true, size = Some 40}
   inlineNonRec: {small = 60, product = 320}
   input file: coin-exec
   keep CoreML: false
   keep def use: true
   keep dot: false
   keep Machine: false
   keep passes: []
   keep RSSA: false
   keep SSA: false
   keep SSA2: false
   keep SXML: false
   keep XML: false
   extra_: true
   lib dir: /usr/local/lib/mlton
   lib target dir: /usr/local/lib/mlton/targets/self
   loop passes: 1
   mark cards: true
   max function size: 10000
   mlb path vars: [{var = MLTON_ROOT, path = $(LIB_MLTON_DIR)/sml},
{var = SML_LIB, path = $(LIB_MLTON_DIR)/sml}, {var = SMACKAGE, path =
/Users/rjsimmon/.smackage/lib}]
   native commented: 0
   native live stack: false
   native optimize: 1
   native move hoist: true
   native copy prop: true
   native copy prop cutoff: 1000
   native cutoff: 100
   native live transfer: 8
   native shuffle: true
   native ieee fp: false
   native split: Some 20000
   optimizationPasses: [<ssa2::default>, <ssa::default>,
<sxml::default>, <xml::default>]
   polyvariance: Some {hofo = true, rounds = 2, small = 30, product = 300}
   prefer abs paths: false
   prof passes: []
   profile: None
   profile branch: false
   profile C: []
   profile IL: ProfileSource
   profile include/exclude: [(Seq [Star [.], Or [Seq [Seq [[$], [(],
[S], [M], [L], [_], [L], [I], [B], [)]]]], Star [.]], false)]
   profile raise: false
   profile stack: false
   profile val: false
   show basis: None
   show def-use: None
   show types: true
   target: self
   target arch: AMD64
   target OS: Darwin
   type check: false
   verbosity: Detail
   warn unrecognized annotation: true
   warn deprecated features: true
   zone cut depth: 100
   Compile SML starting
      pre codegen starting
	 parseAndElaborate starting
	 parseAndElaborate finished in 4.76 + 2.21 (32% GC)
	 parseAndElaborate stats
	    core-ml size = 217,743,360 bytes
	    property list numPeeks = 8374544
	    property list maxLength = 3
	    property list average position = 0.348
	    hash set numPeeks = 183863
	    hash set average position = 1.019
	 deadCode starting
	 deadCode finished in 0.05 + 0.00 (0% GC)
	 deadCode stats
	    core-ml size = 192,523,576 bytes
	    property list numPeeks = 8468133
	    property list maxLength = 3
	    property list average position = 0.349
	    hash set numPeeks = 183863
	    hash set average position = 1.019
	 defunctorize starting
	 defunctorize finished in 3.13 + 12.33 (80% GC)
	 defunctorize stats
	    xml size = 251,726,696 bytes
	    num primexps in program = 408943
	    num types in program = 23746
	    num types in hash table = 26559
	    types hash table size = 0 bytes
	    property list numPeeks = 18873060
	    property list maxLength = 6
	    property list average position = 0.171
	    hash set numPeeks = 253168
	    hash set average position = 0.965
	 xmlSimplify starting
	    typeCheck starting
	    typeCheck finished in 0.36 + 0.26 (42% GC)
	    xmlShrink starting
	    xmlShrink finished in 0.78 + 1.16 (60% GC)
	    xmlShrink stats
	       post.xml size = 76,081,456 bytes
	       num primexps in program = 297229
	       num types in program = 17602
	       num types in hash table = 28018
	       types hash table size = 0 bytes
	       property list numPeeks = 27581295
	       property list maxLength = 6
	       property list average position = 0.119
	       hash set numPeeks = 378700
	       hash set average position = 1.086
	    xmlSimplifyTypes starting
	    xmlSimplifyTypes finished in 0.17 + 0.38 (69% GC)
	    xmlSimplifyTypes stats
	       post.xml size = 84,746,552 bytes
	       num primexps in program = 297229
	       num types in program = 17602
	       num types in hash table = 28018
	       types hash table size = 0 bytes
	       property list numPeeks = 29129804
	       property list maxLength = 6
	       property list average position = 0.114
	       hash set numPeeks = 396320
	       hash set average position = 1.088
	    typeCheck starting
	    typeCheck finished in 0.34 + 0.26 (44% GC)
	 xmlSimplify finished in 2.48 + 2.06 (45% GC)
	 xmlSimplify stats
	    xml size = 84,236,368 bytes
	    num primexps in program = 297229
	    num types in program = 17602
	    num types in hash table = 28021
	    types hash table size = 0 bytes
	    property list numPeeks = 31721323
	    property list maxLength = 6
	    property list average position = 0.133
	    hash set numPeeks = 501087
	    hash set average position = 1.135
	 monomorphise starting
	 monomorphise finished in 0.39 + 2.87 (88% GC)
	 monomorphise stats
	    sxml size = 76,406,464 bytes
	    num primexps in program = 282608
	    num types in program = 3723
	    num types in hash table = 31127
	    types hash table size = 0 bytes
	    property list numPeeks = 34814594
	    property list maxLength = 6
	    property list average position = 0.143
	    hash set numPeeks = 1345794
	    hash set average position = 1.513
	 sxmlSimplify starting
	    typeCheck starting
	    typeCheck finished in 0.26 + 0.00 (0% GC)
	    sxmlShrink1 starting
	    sxmlShrink1 finished in 0.68 + 0.80 (54% GC)
	    sxmlShrink1 stats
	       post.sxml size = 67,799,888 bytes
	       num primexps in program = 274061
	       num types in program = 2142
	       num types in hash table = 31375
	       types hash table size = 0 bytes
	       property list numPeeks = 41420555
	       property list maxLength = 6
	       property list average position = 0.129
	       hash set numPeeks = 1397166
	       hash set average position = 1.500
	    implementSuffix starting
	    implementSuffix finished in 0.04 + 0.00 (0% GC)
	    implementSuffix stats
	       post.sxml size = 67,802,544 bytes
	       num primexps in program = 274068
	       num types in program = 2143
	       num types in hash table = 31376
	       types hash table size = 0 bytes
	       property list numPeeks = 41751990
	       property list maxLength = 6
	       property list average position = 0.128
	       hash set numPeeks = 1397171
	       hash set average position = 1.500
	    sxmlShrink2 starting
	    sxmlShrink2 finished in 0.70 + 0.40 (36% GC)
	    sxmlShrink2 stats
	       post.sxml size = 67,728,184 bytes
	       num primexps in program = 273808
	       num types in program = 2062
	       num types in hash table = 31376
	       types hash table size = 0 bytes
	       property list numPeeks = 46369172
	       property list maxLength = 6
	       property list average position = 0.115
	       hash set numPeeks = 1397171
	       hash set average position = 1.500
	    implementExceptions starting
	    implementExceptions finished in 0.09 + 0.00 (0% GC)
	    implementExceptions stats
	       post.sxml size = 68,014,160 bytes
	       num primexps in program = 275033
	       num types in program = 2080
	       num types in hash table = 31391
	       types hash table size = 0 bytes
	       property list numPeeks = 46759133
	       property list maxLength = 6
	       property list average position = 0.114
	       hash set numPeeks = 1397489
	       hash set average position = 1.501
	    sxmlShrink3 starting
	    sxmlShrink3 finished in 0.67 + 0.59 (47% GC)
	    sxmlShrink3 stats
	       post.sxml size = 67,827,120 bytes
	       num primexps in program = 274032
	       num types in program = 2080
	       num types in hash table = 31391
	       types hash table size = 0 bytes
	       property list numPeeks = 51386735
	       property list maxLength = 6
	       property list average position = 0.104
	       hash set numPeeks = 1397489
	       hash set average position = 1.501
	    polyvariance starting
	       duplicate1 starting
	       duplicate1 finished in 0.84 + 0.73 (47% GC)
	       duplicate1 stats
		  post.xml size = 67,754,016 bytes
		  num primexps in program = 274232
		  num types in program = 1763
		  num types in hash table = 31391
		  types hash table size = 0 bytes
		  property list numPeeks = 57765225
		  property list maxLength = 6
		  property list average position = 0.093
		  hash set numPeeks = 1397489
		  hash set average position = 1.501
	       duplicate2 starting
	       duplicate2 finished in 0.80 + 0.65 (45% GC)
	       duplicate2 stats
		  post.xml size = 67,694,432 bytes
		  num primexps in program = 273984
		  num types in program = 1756
		  num types in hash table = 31391
		  types hash table size = 0 bytes
		  property list numPeeks = 63912776
		  property list maxLength = 6
		  property list average position = 0.084
		  hash set numPeeks = 1397489
		  hash set average position = 1.501
	    polyvariance finished in 2.34 + 1.67 (42% GC)
	    polyvariance stats
	       post.sxml size = 67,694,432 bytes
	       num primexps in program = 273984
	       num types in program = 1756
	       num types in hash table = 31391
	       types hash table size = 0 bytes
	       property list numPeeks = 64242975
	       property list maxLength = 6
	       property list average position = 0.083
	       hash set numPeeks = 1397489
	       hash set average position = 1.501
	    sxmlShrink4 starting
	    sxmlShrink4 finished in 0.53 + 0.30 (36% GC)
	    sxmlShrink4 stats
	       post.sxml size = 67,694,432 bytes
	       num primexps in program = 273984
	       num types in program = 1756
	       num types in hash table = 31391
	       types hash table size = 0 bytes
	       property list numPeeks = 68860907
	       property list maxLength = 6
	       property list average position = 0.078
	       hash set numPeeks = 1397489
	       hash set average position = 1.501
	    typeCheck starting
	    typeCheck finished in 0.23 + 0.28 (55% GC)
	 sxmlSimplify finished in 8.09 + 4.04 (33% GC)
	 sxmlSimplify stats
	    sxml size = 67,694,432 bytes
	    num primexps in program = 273984
	    num types in program = 1756
	    num types in hash table = 31400
	    types hash table size = 0 bytes
	    property list numPeeks = 71009130
	    property list maxLength = 6
	    property list average position = 0.080
	    hash set numPeeks = 1445534
	    hash set average position = 1.490
	 closureConvert starting
	    flow analysis starting
	    flow analysis finished in 0.11 + 0.08 (42% GC)
	    free variables starting
	    free variables finished in 0.13 + 0.00 (0% GC)
	    globalize starting
	    globalize finished in 0.07 + 0.00 (0% GC)
	    convert starting
	    convert finished in 1.52 + 4.67 (75% GC)
	 closureConvert finished in 1.94 + 4.75 (71% GC)
	 closureConvert stats
	    ssa size = 83,704,536 bytes
	    num vars in main = 3378
	    num blocks in main = 2291
	    num functions in program = 1885
	    num blocks in program = 210000
	    num statements in program = 129807
	    num types in program = 2019
	    num types in hash table = 3385
	    types hash table size = 705,712 bytes
	    property list numPeeks = 79138367
	    property list maxLength = 6
	    property list average position = 0.072
	    hash set numPeeks = 1456531
	    hash set average position = 1.484
	 ssaSimplify starting
	    typeCheck starting
	       checkScopes starting
	       checkScopes finished in 0.74 + 0.48 (39% GC)
	    typeCheck finished in 1.13 + 0.48 (30% GC)
	    removeUnused1 starting
	    removeUnused1 finished in 1.41 + 1.10 (44% GC)
	    removeUnused1 stats
	       post.ssa size = 60,980,872 bytes
	       num vars in main = 2122
	       num blocks in main = 1450
	       num functions in program = 1707
	       num blocks in program = 153844
	       num statements in program = 125971
	       num types in program = 1793
	       num types in hash table = 3418
	       types hash table size = 1,161,640 bytes
	       property list numPeeks = 96436771
	       property list maxLength = 6
	       property list average position = 0.075
	       hash set numPeeks = 1516326
	       hash set average position = 1.466
	    introduceLoops1 starting
	    introduceLoops1 finished in 0.01 + 0.00 (0% GC)
	    introduceLoops1 stats
	       post.ssa size = 61,160,248 bytes
	       num vars in main = 2122
	       num blocks in main = 1450
	       num functions in program = 1707
	       num blocks in program = 154534
	       num statements in program = 125971
	       num types in program = 1793
	       num types in hash table = 3418
	       types hash table size = 1,161,640 bytes
	       property list numPeeks = 96624799
	       property list maxLength = 6
	       property list average position = 0.075
	       hash set numPeeks = 1516326
	       hash set average position = 1.466
	    loopInvariant1 starting
	    loopInvariant1 finished in 0.88 + 0.00 (0% GC)
	    loopInvariant1 stats
	       post.ssa size = 61,057,144 bytes
	       num vars in main = 2122
	       num blocks in main = 1431
	       num functions in program = 1707
	       num blocks in program = 154040
	       num statements in program = 125971
	       num types in program = 1793
	       num types in hash table = 3418
	       types hash table size = 1,161,640 bytes
	       property list numPeeks = 99457307
	       property list maxLength = 6
	       property list average position = 0.079
	       hash set numPeeks = 1516326
	       hash set average position = 1.466
	    inlineLeaf1 starting
	    inlineLeaf1 finished in 0.90 + 0.64 (41% GC)
	    inlineLeaf1 stats
	       post.ssa size = 60,505,056 bytes
	       num vars in main = 1505
	       num blocks in main = 560
	       num functions in program = 1113
	       num blocks in program = 150014
	       num statements in program = 127461
	       num types in program = 1605
	       num types in hash table = 3418
	       types hash table size = 1,161,640 bytes
	       property list numPeeks = 102912028
	       property list maxLength = 6
	       property list average position = 0.081
	       hash set numPeeks = 1516336
	       hash set average position = 1.466
	    inlineLeaf2 starting
	    inlineLeaf2 finished in 0.69 + 0.00 (0% GC)
	    inlineLeaf2 stats
	       post.ssa size = 60,362,512 bytes
	       num vars in main = 1435
	       num blocks in main = 379
	       num functions in program = 942
	       num blocks in program = 149293
	       num statements in program = 128832
	       num types in program = 1528
	       num types in hash table = 3418
	       types hash table size = 1,161,640 bytes
	       property list numPeeks = 105547896
	       property list maxLength = 6
	       property list average position = 0.081
	       hash set numPeeks = 1516336
	       hash set average position = 1.466
	    contify1 starting
	       initReachCallerCallees starting
	       initReachCallerCallees finished in 0.02 + 0.00 (0% GC)
	       analyzeDom starting
		  buildGraph starting
		  buildGraph finished in 0.02 + 0.00 (0% GC)
		  computeDominators starting
		  computeDominators finished in 0.01 + 0.00 (0% GC)
		  compute ADom starting
		  compute ADom finished in 0.00 + 0.00 (nan% GC)
	       analyzeDom finished in 0.03 + 0.00 (0% GC)
	       transform starting
	       transform finished in 0.54 + 0.00 (0% GC)
	    contify1 finished in 0.59 + 0.00 (0% GC)
	    contify1 stats
	       post.ssa size = 59,581,696 bytes
	       num vars in main = 1435
	       num blocks in main = 376
	       num functions in program = 449
	       num blocks in program = 148549
	       num statements in program = 128201
	       num types in program = 1429
	       num types in hash table = 3418
	       types hash table size = 1,161,640 bytes
	       property list numPeeks = 107800173
	       property list maxLength = 6
	       property list average position = 0.079
	       hash set numPeeks = 1516336
	       hash set average position = 1.466
	    localFlatten1 starting
	    localFlatten1 finished in 0.90 + 0.41 (31% GC)
	    localFlatten1 stats
	       post.ssa size = 53,354,360 bytes
	       num vars in main = 1432
	       num blocks in main = 376
	       num functions in program = 449
	       num blocks in program = 148499
	       num statements in program = 91651
	       num types in program = 1251
	       num types in hash table = 3418
	       types hash table size = 1,161,640 bytes
	       property list numPeeks = 111611396
	       property list maxLength = 6
	       property list average position = 0.080
	       hash set numPeeks = 1516336
	       hash set average position = 1.466
	    constantPropagation starting
	       fixed point starting
	       fixed point finished in 0.32 + 0.00 (0% GC)
	    constantPropagation finished in 1.31 + 0.00 (0% GC)
	    constantPropagation stats
	       post.ssa size = 52,016,496 bytes
	       num vars in main = 898
	       num blocks in main = 351
	       num functions in program = 449
	       num blocks in program = 146989
	       num statements in program = 86913
	       num types in program = 1251
	       num types in hash table = 3421
	       types hash table size = 1,162,136 bytes
	       property list numPeeks = 116210696
	       property list maxLength = 6
	       property list average position = 0.082
	       hash set numPeeks = 1552311
	       hash set average position = 1.457
	    useless starting
	    useless finished in 1.45 + 0.41 (22% GC)
	    useless stats
	       post.ssa size = 51,348,728 bytes
	       num vars in main = 772
	       num blocks in main = 351
	       num functions in program = 449
	       num blocks in program = 146929
	       num statements in program = 84662
	       num types in program = 854
	       num types in hash table = 3552
	       types hash table size = 1,182,176 bytes
	       property list numPeeks = 120360702
	       property list maxLength = 6
	       property list average position = 0.083
	       hash set numPeeks = 1720101
	       hash set average position = 1.413
	    removeUnused2 starting
	    removeUnused2 finished in 0.95 + 0.00 (0% GC)
	    removeUnused2 stats
	       post.ssa size = 51,038,224 bytes
	       num vars in main = 772
	       num blocks in main = 348
	       num functions in program = 446
	       num blocks in program = 146847
	       num statements in program = 84502
	       num types in program = 839
	       num types in hash table = 3552
	       types hash table size = 1,794,120 bytes
	       property list numPeeks = 128859830
	       property list maxLength = 6
	       property list average position = 0.078
	       hash set numPeeks = 1720536
	       hash set average position = 1.413
	    simplifyTypes starting
	    simplifyTypes finished in 0.78 + 0.32 (29% GC)
	    simplifyTypes stats
	       post.ssa size = 50,291,736 bytes
	       num vars in main = 556
	       num blocks in main = 346
	       num functions in program = 446
	       num blocks in program = 145350
	       num statements in program = 83756
	       num types in program = 557
	       num types in hash table = 3727
	       types hash table size = 1,969,880 bytes
	       property list numPeeks = 132094289
	       property list maxLength = 6
	       property list average position = 0.078
	       hash set numPeeks = 1720974
	       hash set average position = 1.413
	    polyEqual starting
	    polyEqual finished in 0.06 + 0.00 (0% GC)
	    polyEqual stats
	       post.ssa size = 50,481,408 bytes
	       num vars in main = 600
	       num blocks in main = 443
	       num functions in program = 450
	       num blocks in program = 146103
	       num statements in program = 83741
	       num types in program = 557
	       num types in hash table = 3727
	       types hash table size = 1,969,880 bytes
	       property list numPeeks = 132259482
	       property list maxLength = 6
	       property list average position = 0.078
	       hash set numPeeks = 1720983
	       hash set average position = 1.413
	    polyHash starting
	    polyHash finished in 0.05 + 0.00 (0% GC)
	    polyHash stats
	       post.ssa size = 50,481,408 bytes
	       num vars in main = 600
	       num blocks in main = 443
	       num functions in program = 450
	       num blocks in program = 146103
	       num statements in program = 83741
	       num types in program = 557
	       num types in hash table = 3727
	       types hash table size = 1,969,880 bytes
	       property list numPeeks = 132398372
	       property list maxLength = 6
	       property list average position = 0.078
	       hash set numPeeks = 1720984
	       hash set average position = 1.413
	    introduceLoops2 starting
	    introduceLoops2 finished in 0.00 + 0.00 (0% GC)
	    introduceLoops2 stats
	       post.ssa size = 50,484,128 bytes
	       num vars in main = 600
	       num blocks in main = 443
	       num functions in program = 450
	       num blocks in program = 146113
	       num statements in program = 83741
	       num types in program = 557
	       num types in hash table = 3727
	       types hash table size = 1,969,880 bytes
	       property list numPeeks = 132536694
	       property list maxLength = 6
	       property list average position = 0.078
	       hash set numPeeks = 1720984
	       hash set average position = 1.413
	    loopInvariant2 starting
	    loopInvariant2 finished in 0.70 + 0.00 (0% GC)
	    loopInvariant2 stats
	       post.ssa size = 50,295,472 bytes
	       num vars in main = 556
	       num blocks in main = 355
	       num functions in program = 450
	       num blocks in program = 145435
	       num statements in program = 83725
	       num types in program = 557
	       num types in hash table = 3727
	       types hash table size = 1,969,880 bytes
	       property list numPeeks = 135476974
	       property list maxLength = 6
	       property list average position = 0.082
	       hash set numPeeks = 1720984
	       hash set average position = 1.413
	    contify2 starting
	       initReachCallerCallees starting
	       initReachCallerCallees finished in 0.01 + 0.00 (0% GC)
	       analyzeDom starting
		  buildGraph starting
		  buildGraph finished in 0.01 + 0.00 (0% GC)
		  computeDominators starting
		  computeDominators finished in 0.00 + 0.00 (0% GC)
		  compute ADom starting
		  compute ADom finished in 0.00 + 0.00 (nan% GC)
	       analyzeDom finished in 0.02 + 0.00 (0% GC)
	       transform starting
	       transform finished in 0.46 + 0.00 (0% GC)
	    contify2 finished in 0.49 + 0.00 (0% GC)
	    contify2 stats
	       post.ssa size = 50,289,816 bytes
	       num vars in main = 556
	       num blocks in main = 355
	       num functions in program = 446
	       num blocks in program = 145427
	       num statements in program = 83713
	       num types in program = 556
	       num types in hash table = 3727
	       types hash table size = 1,969,880 bytes
	       property list numPeeks = 137306606
	       property list maxLength = 6
	       property list average position = 0.082
	       hash set numPeeks = 1720984
	       hash set average position = 1.413
	    inlineNonRecursive starting
	    inlineNonRecursive finished in 0.52 + 0.43 (46% GC)
	    inlineNonRecursive stats
	       post.ssa size = 53,222,896 bytes
	       num vars in main = 3091
	       num blocks in main = 1616
	       num functions in program = 147
	       num blocks in program = 151448
	       num statements in program = 92241
	       num types in program = 478
	       num types in hash table = 3727
	       types hash table size = 1,969,880 bytes
	       property list numPeeks = 139376824
	       property list maxLength = 6
	       property list average position = 0.082
	       hash set numPeeks = 1720987
	       hash set average position = 1.413
	    localFlatten2 starting
	    localFlatten2 finished in 0.74 + 0.00 (0% GC)
	    localFlatten2 stats
	       post.ssa size = 53,113,456 bytes
	       num vars in main = 3031
	       num blocks in main = 1570
	       num functions in program = 147
	       num blocks in program = 151123
	       num statements in program = 91743
	       num types in program = 462
	       num types in hash table = 3727
	       types hash table size = 1,969,880 bytes
	       property list numPeeks = 142342316
	       property list maxLength = 6
	       property list average position = 0.084
	       hash set numPeeks = 1720988
	       hash set average position = 1.413
	    removeUnused3 starting
	    removeUnused3 finished in 0.98 + 0.54 (35% GC)
	    removeUnused3 stats
	       post.ssa size = 53,118,296 bytes
	       num vars in main = 2975
	       num blocks in main = 1565
	       num functions in program = 147
	       num blocks in program = 151110
	       num statements in program = 91623
	       num types in program = 461
	       num types in hash table = 3727
	       types hash table size = 1,976,888 bytes
	       property list numPeeks = 151015890
	       property list maxLength = 6
	       property list average position = 0.080
	       hash set numPeeks = 1721321
	       hash set average position = 1.413
	    contify3 starting
	       initReachCallerCallees starting
	       initReachCallerCallees finished in 0.01 + 0.00 (0% GC)
	       analyzeDom starting
		  buildGraph starting
		  buildGraph finished in 0.01 + 0.00 (0% GC)
		  computeDominators starting
		  computeDominators finished in 0.00 + 0.00 (0% GC)
		  compute ADom starting
		  compute ADom finished in 0.00 + 0.00 (nan% GC)
	       analyzeDom finished in 0.02 + 0.00 (0% GC)
	       transform starting
	       transform finished in 0.47 + 0.00 (0% GC)
	    contify3 finished in 0.50 + 0.00 (0% GC)
	    contify3 stats
	       post.ssa size = 53,117,656 bytes
	       num vars in main = 2973
	       num blocks in main = 1565
	       num functions in program = 147
	       num blocks in program = 151110
	       num statements in program = 91621
	       num types in program = 461
	       num types in hash table = 3727
	       types hash table size = 1,976,888 bytes
	       property list numPeeks = 152933773
	       property list maxLength = 6
	       property list average position = 0.080
	       hash set numPeeks = 1721321
	       hash set average position = 1.413
	    introduceLoops3 starting
	    introduceLoops3 finished in 0.01 + 0.00 (0% GC)
	    introduceLoops3 stats
	       post.ssa size = 53,117,656 bytes
	       num vars in main = 2973
	       num blocks in main = 1565
	       num functions in program = 147
	       num blocks in program = 151110
	       num statements in program = 91621
	       num types in program = 461
	       num types in hash table = 3727
	       types hash table size = 1,976,888 bytes
	       property list numPeeks = 153082174
	       property list maxLength = 6
	       property list average position = 0.080
	       hash set numPeeks = 1721321
	       hash set average position = 1.413
	    loopInvariant3 starting
	    loopInvariant3 finished in 0.80 + 0.58 (42% GC)
	    loopInvariant3 stats
	       post.ssa size = 53,094,920 bytes
	       num vars in main = 2934
	       num blocks in main = 1563
	       num functions in program = 147
	       num blocks in program = 151108
	       num statements in program = 91621
	       num types in program = 461
	       num types in hash table = 3727
	       types hash table size = 1,976,888 bytes
	       property list numPeeks = 156156454
	       property list maxLength = 6
	       property list average position = 0.083
	       hash set numPeeks = 1721321
	       hash set average position = 1.413
	    localRef starting
	       multi starting
	       multi finished in 0.15 + 0.00 (0% GC)
	    localRef finished in 0.71 + 0.00 (0% GC)
	    localRef stats
	       post.ssa size = 53,086,816 bytes
	       num vars in main = 2914
	       num blocks in main = 1553
	       num functions in program = 147
	       num blocks in program = 151098
	       num statements in program = 91586
	       num types in program = 459
	       num types in hash table = 3727
	       types hash table size = 1,976,888 bytes
	       property list numPeeks = 158857581
	       property list maxLength = 6
	       property list average position = 0.089
	       hash set numPeeks = 1721479
	       hash set average position = 1.413
	    flatten starting
	    flatten finished in 0.83 + 0.38 (31% GC)
	    flatten stats
	       post.ssa size = 50,303,680 bytes
	       num vars in main = 2619
	       num blocks in main = 1549
	       num functions in program = 147
	       num blocks in program = 151094
	       num statements in program = 60715
	       num types in program = 279
	       num types in hash table = 3727
	       types hash table size = 1,976,888 bytes
	       property list numPeeks = 162255875
	       property list maxLength = 6
	       property list average position = 0.091
	       hash set numPeeks = 1721479
	       hash set average position = 1.413
	    localFlatten3 starting
	    localFlatten3 finished in 0.75 + 0.00 (0% GC)
	    localFlatten3 stats
	       post.ssa size = 50,306,488 bytes
	       num vars in main = 2619
	       num blocks in main = 1549
	       num functions in program = 147
	       num blocks in program = 151088
	       num statements in program = 60737
	       num types in program = 279
	       num types in hash table = 3727
	       types hash table size = 1,976,888 bytes
	       property list numPeeks = 165135233
	       property list maxLength = 6
	       property list average position = 0.093
	       hash set numPeeks = 1721479
	       hash set average position = 1.413
	    combineConversions starting
	    combineConversions finished in 0.57 + 0.40 (41% GC)
	    combineConversions stats
	       post.ssa size = 50,308,552 bytes
	       num vars in main = 2609
	       num blocks in main = 1549
	       num functions in program = 147
	       num blocks in program = 151088
	       num statements in program = 60710
	       num types in program = 279
	       num types in hash table = 3727
	       types hash table size = 1,976,888 bytes
	       property list numPeeks = 167325848
	       property list maxLength = 6
	       property list average position = 0.093
	       hash set numPeeks = 1721479
	       hash set average position = 1.413
	    commonArg starting
	    commonArg finished in 0.86 + 0.00 (0% GC)
	    commonArg stats
	       post.ssa size = 49,462,864 bytes
	       num vars in main = 2538
	       num blocks in main = 1451
	       num functions in program = 147
	       num blocks in program = 150609
	       num statements in program = 60696
	       num types in program = 278
	       num types in hash table = 3727
	       types hash table size = 1,976,888 bytes
	       property list numPeeks = 171317607
	       property list maxLength = 6
	       property list average position = 0.094
	       hash set numPeeks = 1721479
	       hash set average position = 1.413
	    commonSubexp starting
	    commonSubexp finished in 0.92 + 0.43 (32% GC)
	    commonSubexp stats
	       post.ssa size = 49,250,368 bytes
	       num vars in main = 2280
	       num blocks in main = 1384
	       num functions in program = 147
	       num blocks in program = 150485
	       num statements in program = 59607
	       num types in program = 278
	       num types in hash table = 3727
	       types hash table size = 1,976,888 bytes
	       property list numPeeks = 175579059
	       property list maxLength = 6
	       property list average position = 0.099
	       hash set numPeeks = 1783062
	       hash set average position = 1.372
	    commonBlock starting
	    commonBlock finished in 0.40 + 0.00 (0% GC)
	    commonBlock stats
	       post.ssa size = 40,935,808 bytes
	       num vars in main = 2280
	       num blocks in main = 1376
	       num functions in program = 147
	       num blocks in program = 101024
	       num statements in program = 59607
	       num types in program = 278
	       num types in hash table = 3727
	       types hash table size = 1,976,888 bytes
	       property list numPeeks = 177123251
	       property list maxLength = 6
	       property list average position = 0.099
	       hash set numPeeks = 1783062
	       hash set average position = 1.372
	    redundantTests starting
	    redundantTests finished in 0.58 + 0.54 (48% GC)
	    redundantTests stats
	       post.ssa size = 40,940,472 bytes
	       num vars in main = 2280
	       num blocks in main = 1376
	       num functions in program = 147
	       num blocks in program = 101004
	       num statements in program = 59661
	       num types in program = 278
	       num types in hash table = 3727
	       types hash table size = 1,976,888 bytes
	       property list numPeeks = 180415203
	       property list maxLength = 6
	       property list average position = 0.102
	       hash set numPeeks = 1783114
	       hash set average position = 1.372
	    redundant starting
	    redundant finished in 0.34 + 0.67 (66% GC)
	    redundant stats
	       post.ssa size = 40,935,064 bytes
	       num vars in main = 2280
	       num blocks in main = 1376
	       num functions in program = 147
	       num blocks in program = 101004
	       num statements in program = 59661
	       num types in program = 278
	       num types in hash table = 3727
	       types hash table size = 1,976,888 bytes
	       property list numPeeks = 181862808
	       property list maxLength = 6
	       property list average position = 0.102
	       hash set numPeeks = 1783114
	       hash set average position = 1.372
	    knownCase starting
	    knownCase finished in 1.42 + 1.19 (46% GC)
	    knownCase stats
	       post.ssa size = 42,408,760 bytes
	       num vars in main = 2701
	       num blocks in main = 1531
	       num functions in program = 147
	       num blocks in program = 103838
	       num statements in program = 59628
	       num types in program = 277
	       num types in hash table = 3727
	       types hash table size = 1,976,888 bytes
	       property list numPeeks = 187687713
	       property list maxLength = 6
	       property list average position = 0.111
	       hash set numPeeks = 1787915
	       hash set average position = 1.369
	    removeUnused4 starting
	    removeUnused4 finished in 0.75 + 0.56 (43% GC)
	    removeUnused4 stats
	       post.ssa size = 41,901,912 bytes
	       num vars in main = 2452
	       num blocks in main = 1431
	       num functions in program = 147
	       num blocks in program = 103118
	       num statements in program = 59308
	       num types in program = 275
	       num types in hash table = 3727
	       types hash table size = 1,979,072 bytes
	       property list numPeeks = 195663900
	       property list maxLength = 6
	       property list average position = 0.107
	       hash set numPeeks = 1788065
	       hash set average position = 1.369
	    orderFunctions1 starting
	    orderFunctions1 finished in 0.16 + 0.00 (0% GC)
	    orderFunctions1 stats
	       post.ssa size = 41,901,912 bytes
	       num vars in main = 2452
	       num blocks in main = 1431
	       num functions in program = 147
	       num blocks in program = 103118
	       num statements in program = 59308
	       num types in program = 275
	       num types in hash table = 3727
	       types hash table size = 1,979,072 bytes
	       property list numPeeks = 196397559
	       property list maxLength = 6
	       property list average position = 0.107
	       hash set numPeeks = 1788065
	       hash set average position = 1.369
	    typeCheck starting
	       checkScopes starting
	       checkScopes finished in 0.35 + 0.23 (40% GC)
	    typeCheck finished in 0.51 + 0.23 (31% GC)
	 ssaSimplify finished in 35.81 + 9.70 (21% GC)
	 ssaSimplify stats
	    ssa size = 41,929,776 bytes
	    num vars in main = 2452
	    num blocks in main = 1431
	    num functions in program = 147
	    num blocks in program = 103118
	    num statements in program = 59308
	    num types in program = 275
	    num types in hash table = 3727
	    types hash table size = 1,979,072 bytes
	    property list numPeeks = 200550911
	    property list maxLength = 6
	    property list average position = 0.108
	    hash set numPeeks = 1853283
	    hash set average position = 1.359
	 toSsa2 starting
	 toSsa2 finished in 0.53 + 0.57 (52% GC)
	 toSsa2 stats
	    ssa2 size = 51,906,376 bytes
	    num vars in main = 2966
	    num blocks in main = 1479
	    num functions in program = 147
	    num blocks in program = 103562
	    num statements in program = 128223
	    num types in program = 495
	    num types in hash table = 786
	    types hash table size = 185,872 bytes
	    property list numPeeks = 202943109
	    property list maxLength = 6
	    property list average position = 0.108
	    hash set numPeeks = 1854066
	    hash set average position = 1.358
	 ssa2Simplify starting
	    typeCheck starting
	       checkScopes starting
	       checkScopes finished in 0.35 + 2.74 (89% GC)
	    typeCheck finished in 0.47 + 2.74 (85% GC)
	    deepFlatten starting
	    deepFlatten finished in 0.76 + 0.45 (37% GC)
	    deepFlatten stats
	       post.ssa2 size = 52,091,816 bytes
	       num vars in main = 2965
	       num blocks in main = 1479
	       num functions in program = 147
	       num blocks in program = 103562
	       num statements in program = 128176
	       num types in program = 494
	       num types in hash table = 820
	       types hash table size = 319,312 bytes
	       property list numPeeks = 211385378
	       property list maxLength = 6
	       property list average position = 0.110
	       hash set numPeeks = 1915348
	       hash set average position = 1.352
	    refFlatten starting
	    refFlatten finished in 0.87 + 0.36 (29% GC)
	    refFlatten stats
	       post.ssa2 size = 52,271,904 bytes
	       num vars in main = 2964
	       num blocks in main = 1479
	       num functions in program = 147
	       num blocks in program = 103562
	       num statements in program = 128173
	       num types in program = 493
	       num types in hash table = 854
	       types hash table size = 429,616 bytes
	       property list numPeeks = 215609467
	       property list maxLength = 6
	       property list average position = 0.112
	       hash set numPeeks = 1921190
	       hash set average position = 1.352
	    removeUnused5 starting
	    removeUnused5 finished in 0.74 + 0.46 (38% GC)
	    removeUnused5 stats
	       post.ssa2 size = 51,919,992 bytes
	       num vars in main = 2950
	       num blocks in main = 1479
	       num functions in program = 147
	       num blocks in program = 103315
	       num statements in program = 128109
	       num types in program = 493
	       num types in hash table = 972
	       types hash table size = 451,272 bytes
	       property list numPeeks = 224317480
	       property list maxLength = 6
	       property list average position = 0.108
	       hash set numPeeks = 1921962
	       hash set average position = 1.352
	    zone starting
	    zone finished in 0.36 + 0.53 (60% GC)
	    zone stats
	       post.ssa2 size = 138,038,408 bytes
	       num vars in main = 2950
	       num blocks in main = 1479
	       num functions in program = 147
	       num blocks in program = 103315
	       num statements in program = 128109
	       num types in program = 493
	       num types in hash table = 972
	       types hash table size = 451,272 bytes
	       property list numPeeks = 226854317
	       property list maxLength = 6
	       property list average position = 0.111
	       hash set numPeeks = 1921962
	       hash set average position = 1.352
	    orderFunctions2 starting
	    orderFunctions2 finished in 0.15 + 0.00 (0% GC)
	    orderFunctions2 stats
	       post.ssa2 size = 138,038,408 bytes
	       num vars in main = 2950
	       num blocks in main = 1479
	       num functions in program = 147
	       num blocks in program = 103315
	       num statements in program = 128109
	       num types in program = 493
	       num types in hash table = 972
	       types hash table size = 451,272 bytes
	       property list numPeeks = 227637403
	       property list maxLength = 6
	       property list average position = 0.112
	       hash set numPeeks = 1921962
	       hash set average position = 1.352
	    typeCheck starting
	       checkScopes starting
	       checkScopes finished in 0.40 + 0.38 (49% GC)
	    typeCheck finished in 0.56 + 0.38 (41% GC)
	 ssa2Simplify finished in 6.02 + 4.92 (45% GC)
	 ssa2Simplify stats
	    ssa2 size = 51,947,888 bytes
	    num vars in main = 2950
	    num blocks in main = 1479
	    num functions in program = 147
	    num blocks in program = 103315
	    num statements in program = 128109
	    num types in program = 493
	    num types in hash table = 972
	    types hash table size = 451,272 bytes
	    property list numPeeks = 232299157
	    property list maxLength = 6
	    property list average position = 0.115
	    hash set numPeeks = 1977367
	    hash set average position = 1.347
	 backend starting
	    toRssa starting
	    toRssa finished in 0.50 + 0.69 (58% GC)
	    toRssa stats
	       rssa size = 129,721,336 bytes
	       num functions in program = 148
	       num blocks in program = 250543
	       num statements in program = 227403
	       num object types in program = 341
	       property list numPeeks = 234413088
	       property list maxLength = 6
	       property list average position = 0.115
	       hash set numPeeks = 1977369
	       hash set average position = 1.347
	    rssaSimplify starting
	       rssaShrink1 starting
	       rssaShrink1 finished in 0.57 + 0.54 (49% GC)
	       rssaShrink1 stats
		  post.rssa size = 96,832,256 bytes
		  num functions in program = 148
		  num blocks in program = 154290
		  num statements in program = 210480
		  num object types in program = 341
		  property list numPeeks = 236754138
		  property list maxLength = 6
		  property list average position = 0.113
		  hash set numPeeks = 1977369
		  hash set average position = 1.347
	       insertLimitChecks starting
	       insertLimitChecks finished in 0.70 + 1.39 (67% GC)
	       insertLimitChecks stats
		  post.rssa size = 98,882,600 bytes
		  num functions in program = 148
		  num blocks in program = 158704
		  num statements in program = 211990
		  num object types in program = 341
		  property list numPeeks = 239999997
		  property list maxLength = 6
		  property list average position = 0.120
		  hash set numPeeks = 1977369
		  hash set average position = 1.347
	       insertSignalChecks starting
	       insertSignalChecks finished in 0.00 + 0.00 (nan% GC)
	       insertSignalChecks stats
		  post.rssa size = 98,882,600 bytes
		  num functions in program = 148
		  num blocks in program = 158704
		  num statements in program = 211990
		  num object types in program = 341
		  property list numPeeks = 239999997
		  property list maxLength = 6
		  property list average position = 0.120
		  hash set numPeeks = 1977369
		  hash set average position = 1.347
	       implementHandlers starting
	       implementHandlers finished in 0.05 + 0.00 (0% GC)
	       implementHandlers stats
		  post.rssa size = 98,891,656 bytes
		  num functions in program = 148
		  num blocks in program = 158716
		  num statements in program = 212278
		  num object types in program = 341
		  property list numPeeks = 240102136
		  property list maxLength = 6
		  property list average position = 0.120
		  hash set numPeeks = 1977369
		  hash set average position = 1.347
	       rssaShrink2 starting
	       rssaShrink2 finished in 0.62 + 0.00 (0% GC)
	       rssaShrink2 stats
		  post.rssa size = 99,196,408 bytes
		  num functions in program = 148
		  num blocks in program = 158663
		  num statements in program = 212278
		  num object types in program = 341
		  property list numPeeks = 241844630
		  property list maxLength = 6
		  property list average position = 0.119
		  hash set numPeeks = 1977369
		  hash set average position = 1.347
	       implementProfiling starting
	       implementProfiling finished in 0.00 + 0.00 (nan% GC)
	       implementProfiling stats
		  post.rssa size = 99,196,432 bytes
		  num functions in program = 148
		  num blocks in program = 158663
		  num statements in program = 212278
		  num object types in program = 341
		  property list numPeeks = 242508190
		  property list maxLength = 6
		  property list average position = 0.119
		  hash set numPeeks = 1977369
		  hash set average position = 1.347
	       rssaOrderFunctions starting
	       rssaOrderFunctions finished in 0.33 + 0.00 (0% GC)
	       rssaOrderFunctions stats
		  post.rssa size = 99,196,408 bytes
		  num functions in program = 148
		  num blocks in program = 158663
		  num statements in program = 212278
		  num object types in program = 341
		  property list numPeeks = 243377126
		  property list maxLength = 6
		  property list average position = 0.118
		  hash set numPeeks = 1977369
		  hash set average position = 1.347
	    rssaSimplify finished in 5.87 + 1.94 (25% GC)
	    rssaSimplify stats
	       rssa size = 99,196,432 bytes
	       num functions in program = 148
	       num blocks in program = 158663
	       num statements in program = 212278
	       num object types in program = 341
	       property list numPeeks = 243377126
	       property list maxLength = 6
	       property list average position = 0.118
	       hash set numPeeks = 1977369
	       hash set average position = 1.347
	    toMachine starting
	    toMachine finished in 259.36 + 0.66 (0% GC)
	    toMachine stats
	       machine size = 124,753,432 bytes
	       property list numPeeks = 251905208
	       property list maxLength = 6
	       property list average position = 0.133
	       hash set numPeeks = 2142658
	       hash set average position = 1.322
	 backend finished in 267.45 + 3.29 (1% GC)
	 backend stats
	    machine size = 124,753,432 bytes
	    property list numPeeks = 251905208
	    property list maxLength = 6
	    property list average position = 0.133
	    hash set numPeeks = 2142658
	    hash set average position = 1.322
      pre codegen finished in 337.52 + 46.85 (12% GC)
      amd64 code gen starting
	 outputAssembly starting
	    translateChunk totals 6.24 + 1.13 (15% GC)
	    simplify totals 8.76 + 2.69 (23% GC)
	       completeLiveInfo totals 1.80 + 1.50 (46% GC)
	       completeJumpInfo totals 0.07 + 0.00 (0% GC)
	       elimGoto totals 0.78 + 0.00 (0% GC)
		  elimIff: 164 / 164
		  elimSwitchTest: 0 / 0
		  elimSwitchCases: 0 / 0
		  elimSimpleGoto totals 0.19 + 0.00 (0% GC)
		  elimComplexGoto totals 0.20 + 0.00 (0% GC)
		  elimBlocks totals 0.31 + 0.00 (0% GC)
	       verifyJumpInfo totals 0.00 + 0.00 (0% GC)
	       verifyEntryTransfer totals 0.00 + 0.00 (0% GC)
	       peepholeBlock_pre totals 0.39 + 0.00 (0% GC)
		  commuteBinALMD: 347 / 347
		  elimAddSub1: 836 / 836
		  elimMDPow2: 5 / 5
	       toLivenessBlock totals 0.59 + 0.00 (0% GC)
	       moveHoist totals 0.62 + 0.00 (0% GC)
	       peepholeLivenessBlock totals 0.81 + 0.61 (43% GC)
		  elimALCopy: 13402 / 52128
		  elimSSEASCopy: 0 / 0
		  elimDeadDsts: 44832 / 44835
		  elimSelfMove: 4407 / 4407
		  elimSSESSelfMove: 0 / 0
		  commuteBinALMD: 42 / 49661
		  commuteSSEBinAS: 0 / 0
		  conditionalJump: 2955 / 2960
	       copyPropagate totals 0.43 + 0.00 (0% GC)
	       peepholeLivenessBlock_minor totals 0.31 + 0.00 (0% GC)
		  elimDeadDsts_minor: 0 / 3
		  elimSelfMove_minor: 0 / 0
		  elimSSESSelfMove_minor: 0 / 0
	       verifyLivenessBlock totals 0.00 + 0.00 (0% GC)
	       toBlock totals 0.25 + 0.00 (0% GC)
	       peepholeBlock_post totals 0.42 + 0.00 (0% GC)
		  elimBinALMDDouble: 25 / 80502
		  elimSSEBinASDouble: 0 / 0
		  elimCMPTEST: 164 / 142118
		  elimCMP0: 24519 / 24519
		  elimALTEST: 24258 / 24267
	    generateTransfers totals 558.65 + 5.92 (1% GC)
	       verifyLiveInfo totals 0.00 + 0.00 (0% GC)
	       verifyJumpInfo totals 0.00 + 0.00 (0% GC)
	       verifyEntryTransfer totals 0.00 + 0.00 (0% GC)
	       createLoopInfo totals 0.45 + 0.00 (0% GC)
	       computeLiveTransfers totals 549.91 + 0.00 (0% GC)
	    allocateRegisters totals 27.32 + 3.15 (10% GC)
	       toLiveness totals 2.23 + 0.94 (30% GC)
	       toNoLiveness totals 0.00 + 0.00 (nan% GC)
	       Assembly.allocateRegisters totals 24.31 + 2.20 (8% GC)
		  Instruction.allocateRegisters totals 12.82 + 1.95 (13% GC)
		     pre totals 2.24 + 0.91 (29% GC)
		     post totals 1.82 + 0.35 (16% GC)
		     allocateOperand totals 3.47 + 0.66 (16% GC)
		     allocateXmmOperand totals 0.00 + 0.00 (0% GC)
		  Directive.allocateRegisters totals 7.36 + 0.17 (2% GC)
	 outputAssembly finished in 602.52 + 12.96 (2% GC)
	 outputC starting
	 outputC finished in 0.01 + 0.00 (0% GC)
      amd64 code gen finished in 602.53 + 12.96 (2% GC)
      property list numPeeks = 273415086
      property list maxLength = 6
      property list average position = 0.210
      hash set numPeeks = 18811779
      hash set average position = 2.470
   Compile SML finished in 940.07 + 59.82 (6% GC)
   Compile and Assemble starting
      gcc -std=gnu99 -c -fPIC -DPIC \
          -I/usr/local/lib/mlton/targets/self/include \
          -I/usr/local/lib/mlton/include -O1 -fno-common -fno-strict-aliasing \
          -fomit-frame-pointer -w -m64 -I/usr/local/include \
          -I/opt/local/include -I/sw/include -Iinclude -o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/file9pFzdZ.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/filedabYHa.10.c
      gcc -c -m64 -o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileJwS8i0.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileyysCK5.9.s
      gcc -c -m64 -o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/filenbfhbc.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/filen0VV7r.8.s
      gcc -c -m64 -o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileamnF4C.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileXqk93i.7.s
      gcc -c -m64 -o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/filebyVxJK.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileh5kQxy.6.s
      gcc -c -m64 -o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileo1n8zN.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileA3IF4L.5.s
      gcc -c -m64 -o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/file9p2mvO.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/file45q5Js.4.s
      gcc -c -m64 -o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileeU5CA4.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileTVy6wS.3.s
      gcc -c -m64 -o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileXuGS7x.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/filedlAKdH.2.s
      gcc -c -m64 -o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/file7oV0UO.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileYDAOMl.1.s
      gcc -c -m64 -o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/filefpUbDo.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileozPi0h.0.s
      gcc -std=gnu99 -c -fPIC -DPIC \
          -I/usr/local/lib/mlton/targets/self/include \
          -I/usr/local/lib/mlton/include -O1 -fno-common -fno-strict-aliasing \
          -fomit-frame-pointer -w -m64 -I/usr/local/include \
          -I/opt/local/include -I/sw/include -Iinclude -o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/file6v9oXP.o \
          bare/bare.c
      gcc -std=gnu99 -c -fPIC -DPIC \
          -I/usr/local/lib/mlton/targets/self/include \
          -I/usr/local/lib/mlton/include -O1 -fno-common -fno-strict-aliasing \
          -fomit-frame-pointer -w -m64 -I/usr/local/include \
          -I/opt/local/include -I/sw/include -Iinclude -o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileOqf5Bl.o \
          bare/cstr.c
      gcc -std=gnu99 -c -fPIC -DPIC \
          -I/usr/local/lib/mlton/targets/self/include \
          -I/usr/local/lib/mlton/include -O1 -fno-common -fno-strict-aliasing \
          -fomit-frame-pointer -w -m64 -I/usr/local/include \
          -I/opt/local/include -I/sw/include -Iinclude -o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileLc8gHp.o \
          cymbol/sizeof.c
      gcc -std=gnu99 -c -fPIC -DPIC \
          -I/usr/local/lib/mlton/targets/self/include \
          -I/usr/local/lib/mlton/include -O1 -fno-common -fno-strict-aliasing \
          -fomit-frame-pointer -w -m64 -I/usr/local/include \
          -I/opt/local/include -I/sw/include -Iinclude -o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/file5gdqIs.o \
          cymbol/extern-lib.c
      gcc -std=gnu99 -c -fPIC -DPIC \
          -I/usr/local/lib/mlton/targets/self/include \
          -I/usr/local/lib/mlton/include -O1 -fno-common -fno-strict-aliasing \
          -fomit-frame-pointer -w -m64 -I/usr/local/include \
          -I/opt/local/include -I/sw/include -Iinclude -o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileDLTuz3.o \
          cymbol/extern-call.c
   Compile and Assemble finished in 3.62 + 0.00 (0% GC)
   Link starting
      gcc -o bin/coin-exec \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/file9pFzdZ.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileJwS8i0.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/filenbfhbc.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileamnF4C.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/filebyVxJK.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileo1n8zN.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/file9p2mvO.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileeU5CA4.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileXuGS7x.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/file7oV0UO.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/filefpUbDo.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/file6v9oXP.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileOqf5Bl.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileLc8gHp.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/file5gdqIs.o \
          /var/folders/T1/T1YnOG4EE1yYXCXAYkUaK++++TI/-Tmp-/fileDLTuz3.o \
          -L/usr/local/lib/mlton/targets/self -lmlton-pic -lgdtoa-pic -lm \
          -lgmp -m64 -L/usr/local/lib -L/opt/local/lib -lpthread -ldl -rdynamic
   Link finished in 2.25 + 0.00 (0% GC)
MLton finished in 946.14 + 60.19 (6% GC)

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/