You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(56) |
Sep
(40) |
Oct
(30) |
Nov
(144) |
Dec
(23) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(41) |
Feb
(29) |
Mar
(31) |
Apr
(39) |
May
(193) |
Jun
(45) |
Jul
(19) |
Aug
(3) |
Sep
(23) |
Oct
(83) |
Nov
(92) |
Dec
(123) |
2007 |
Jan
(90) |
Feb
(267) |
Mar
(120) |
Apr
(51) |
May
(40) |
Jun
(121) |
Jul
(109) |
Aug
(173) |
Sep
(77) |
Oct
(52) |
Nov
(121) |
Dec
(62) |
2008 |
Jan
(76) |
Feb
(53) |
Mar
(98) |
Apr
(87) |
May
(26) |
Jun
(27) |
Jul
(23) |
Aug
(136) |
Sep
(79) |
Oct
(68) |
Nov
(29) |
Dec
(14) |
2009 |
Jan
(7) |
Feb
(2) |
Mar
(11) |
Apr
(75) |
May
(1) |
Jun
(95) |
Jul
(19) |
Aug
(4) |
Sep
(8) |
Oct
(93) |
Nov
(43) |
Dec
(21) |
2010 |
Jan
(20) |
Feb
(23) |
Mar
(18) |
Apr
(6) |
May
(20) |
Jun
(23) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
(2) |
Feb
(6) |
Mar
(15) |
Apr
(5) |
May
(9) |
Jun
(14) |
Jul
(9) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
(3) |
Mar
|
Apr
|
May
(2) |
Jun
(17) |
Jul
(37) |
Aug
|
Sep
(1) |
Oct
(6) |
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
(5) |
Apr
(2) |
May
(7) |
Jun
(11) |
Jul
(8) |
Aug
|
Sep
(1) |
Oct
(2) |
Nov
|
Dec
|
2014 |
Jan
|
Feb
(2) |
Mar
(1) |
Apr
|
May
(1) |
Jun
(1) |
Jul
(7) |
Aug
(2) |
Sep
|
Oct
(5) |
Nov
(2) |
Dec
(4) |
2015 |
Jan
|
Feb
(2) |
Mar
(2) |
Apr
|
May
|
Jun
(9) |
Jul
(1) |
Aug
|
Sep
|
Oct
(4) |
Nov
(1) |
Dec
|
2016 |
Jan
(2) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
(5) |
Oct
|
Nov
|
Dec
|
2017 |
Jan
(1) |
Feb
(3) |
Mar
(3) |
Apr
(7) |
May
(2) |
Jun
(2) |
Jul
(5) |
Aug
(1) |
Sep
(2) |
Oct
(17) |
Nov
(4) |
Dec
(7) |
2018 |
Jan
(5) |
Feb
(14) |
Mar
(2) |
Apr
(5) |
May
(2) |
Jun
(5) |
Jul
|
Aug
(2) |
Sep
|
Oct
(3) |
Nov
(5) |
Dec
|
2019 |
Jan
(4) |
Feb
(2) |
Mar
(3) |
Apr
(1) |
May
(8) |
Jun
(14) |
Jul
(2) |
Aug
|
Sep
(2) |
Oct
(2) |
Nov
(15) |
Dec
(2) |
2020 |
Jan
(10) |
Feb
(3) |
Mar
(1) |
Apr
|
May
(9) |
Jun
(4) |
Jul
(16) |
Aug
(10) |
Sep
(4) |
Oct
(3) |
Nov
|
Dec
|
2021 |
Jan
(11) |
Feb
(2) |
Mar
(2) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
(5) |
Sep
|
Oct
(6) |
Nov
(4) |
Dec
(4) |
2022 |
Jan
(4) |
Feb
(2) |
Mar
(2) |
Apr
|
May
(6) |
Jun
(3) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
2023 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
(5) |
Jun
(1) |
Jul
(4) |
Aug
(1) |
Sep
|
Oct
(1) |
Nov
(13) |
Dec
|
2024 |
Jan
(1) |
Feb
|
Mar
(5) |
Apr
|
May
(10) |
Jun
|
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
(1) |
Dec
(14) |
2025 |
Jan
(3) |
Feb
|
Mar
(1) |
Apr
|
May
(2) |
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Matthew F. <no...@gi...> - 2019-11-01 10:29:33
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 90032461e416b84483cdbf4459290470f9be6a0b https://github.com/MLton/mlton/commit/90032461e416b84483cdbf4459290470f9be6a0b Author: Matthew Fluet <mat...@gm...> Date: 2019-10-29 (Tue, 29 Oct 2019) Changed paths: M .travis.yml Log Message: ----------- Fix build config validation info messages Commit: efbcea95e7be28401f58781d7d7a53d4468ad3c6 https://github.com/MLton/mlton/commit/efbcea95e7be28401f58781d7d7a53d4468ad3c6 Author: Matthew Fluet <mat...@gm...> Date: 2019-10-29 (Tue, 29 Oct 2019) Changed paths: M .travis.yml Log Message: ----------- Explicitly set `arch: amd64` in `.travis.yml` Commit: ac7730c57cbde117a9564d76a73ac904b79fc755 https://github.com/MLton/mlton/commit/ac7730c57cbde117a9564d76a73ac904b79fc755 Author: Matthew Fluet <Mat...@gm...> Date: 2019-11-01 (Fri, 01 Nov 2019) Changed paths: M .travis.yml Log Message: ----------- Merge pull request #337 from MatthewFluet/travis-ci-updates Updates for TravisCI build config validation See https://docs.travis-ci.com/user/build-config-validation Compare: https://github.com/MLton/mlton/compare/09dbffa31d3f...ac7730c57cbd |
From: Matthew F. <no...@gi...> - 2019-10-29 09:42:28
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 30aa6ab426b0c91bb16447c22be14fe19f1cdcf0 https://github.com/MLton/mlton/commit/30aa6ab426b0c91bb16447c22be14fe19f1cdcf0 Author: Matthew Fluet <mat...@gm...> Date: 2019-10-28 (Mon, 28 Oct 2019) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun M mlton/xml/sxml-simplify.fun M mlton/xml/xml-simplify.fun Log Message: ----------- Avoid capturing IR-specific closures in global list of control flags See MLton/mlton#334, 85148aa, and 2b7a560. After converting from one IR to the next, all global data associated with the previous IR should be dead. However, it was observed that the tables used for hash-consing of types were retained after converting from the corresponding IR. Similarly, some properties attached to `Ssa2.Tycon.t`, `Ssa2.Con.t`, and `Ssa2.Type.t` during `PackedRepresentation` were not dead after converting to RSSA. The `ControlFlags.optimizationPasses` reference was retaining references to the IR-specific data, because it contained closures that references IR_specific optimization passes. Moreover, the `ControlFlags.optimizationPasses` reference was retained by the global `list ref` used to implement `Control.all()`. This commit refactors the implementation of the optimization passes controls so that the IR-specific closures are not retained by the global list of control flags. Commit: 22e118b3111b21f63572e07077cc65a1a9289fcb https://github.com/MLton/mlton/commit/22e118b3111b21f63572e07077cc65a1a9289fcb Author: Matthew Fluet <mat...@gm...> Date: 2019-10-28 (Mon, 28 Oct 2019) Changed paths: M mlton/backend/packed-representation.fun M mlton/backend/representation.sig M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Revert "Clear/Destroy properties used by `PackedRepresentation`" This reverts commit 2b7a560ffdd20ec4db23360b5543df92269ea37d. Commit: 492a10bbfaae6e40b1ed22c278c9d92328a49f8e https://github.com/MLton/mlton/commit/492a10bbfaae6e40b1ed22c278c9d92328a49f8e Author: Matthew Fluet <mat...@gm...> Date: 2019-10-28 (Mon, 28 Oct 2019) Changed paths: M lib/mlton/basic/hash-set.sig M lib/mlton/basic/hash-set.sml M mlton/atoms/hash-type.fun M mlton/atoms/hash-type.sig M mlton/backend/ssa2-to-rssa.fun M mlton/closure-convert/closure-convert.fun M mlton/ssa/ssa-to-ssa2.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig Log Message: ----------- Revert "Reset table for hash-consing of {{,S}XML,SSA{,2}} types" This reverts commit 85148aaa64cac207c12459faedbb7ad456060a3d. Commit: 09dbffa31d3f91a97992fdb74cf1cb194ab05f28 https://github.com/MLton/mlton/commit/09dbffa31d3f91a97992fdb74cf1cb194ab05f28 Author: Matthew Fluet <Mat...@gm...> Date: 2019-10-29 (Tue, 29 Oct 2019) Changed paths: M lib/mlton/basic/hash-set.sig M lib/mlton/basic/hash-set.sml M mlton/atoms/hash-type.fun M mlton/atoms/hash-type.sig M mlton/backend/packed-representation.fun M mlton/backend/representation.sig M mlton/backend/ssa2-to-rssa.fun M mlton/closure-convert/closure-convert.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun M mlton/ssa/ssa-to-ssa2.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig M mlton/xml/sxml-simplify.fun M mlton/xml/xml-simplify.fun Log Message: ----------- Merge pull request #336 from MatthewFluet/mlton-space-leak Avoid capturing IR-specific closures in global list of control flags See MLton/mlton#334, 85148aa, and 2b7a560. After converting from one IR to the next, all global data associated with the previous IR should be dead. However, it was observed that the tables used for hash-consing of types were retained after converting from the corresponding IR. Similarly, some properties attached to `Ssa2.Tycon.t`, `Ssa2.Con.t`, and `Ssa2.Type.t` during `PackedRepresentation` were not dead after converting to RSSA. The `ControlFlags.optimizationPasses` reference was retaining references to the IR-specific data, because it contained closures that references IR_specific optimization passes. Moreover, the `ControlFlags.optimizationPasses` reference was retained by the global `{name: string, value: (unit -> string)} list ref` used to implement `Control.all()`. This PR refactors the implementation of the optimization passes controls so that the IR-specific closures are not retained by the global list of control flags. It then reverts 85148aa (Reset table for hash-consing of {{,S}XML,SSA{,2}} types) and 2b7a560 (Clear/Destroy properties used by `PackedRepresentation`), demonstrating that the space leaks have been closed. MLton 20191028.200511-g492a10bbf starting control flags: align: 8 atMLtons: (@MLton, --) bounceRssaLimit: Some 8 bounceRssaLiveCutoff: Some 12 bounceRssaLoopCutoff: Some 40 bounceRssaUsageCutoff: Some 15 chunkBatch: 32768 chunkify: per function chunkTailCall: true closureConvertGlobalize: true closureConvertShrink: true codegen: amd64 contifyIntoMain: false debug: false defaultChar: char8 defaultWideChar: widechar32 defaultInt: int32 defaultReal: real64 defaultWord: word32 diag passes: [] execute passes: [] elaborate allowConstant (default): false elaborate allowConstant (enabled): true elaborate allowFFI (default): false elaborate allowFFI (enabled): true elaborate allowPrim (default): false elaborate allowPrim (enabled): true elaborate allowOverload (default): false elaborate allowOverload (enabled): true elaborate allowRedefineSpecialIds (default): false elaborate allowRedefineSpecialIds (enabled): true elaborate allowSpecifySpecialIds (default): false elaborate allowSpecifySpecialIds (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 nonexhaustiveBind (default): warn elaborate nonexhaustiveBind (enabled): true elaborate nonexhaustiveExnBind (default): default elaborate nonexhaustiveExnBind (enabled): true elaborate redundantBind (default): warn elaborate redundantBind (enabled): true elaborate nonexhaustiveMatch (default): warn elaborate nonexhaustiveMatch (enabled): true elaborate nonexhaustiveExnMatch (default): default elaborate nonexhaustiveExnMatch (enabled): true elaborate redundantMatch (default): warn elaborate redundantMatch (enabled): true elaborate nonexhaustiveRaise (default): ignore elaborate nonexhaustiveRaise (enabled): true elaborate nonexhaustiveExnRaise (default): ignore elaborate nonexhaustiveExnRaise (enabled): true elaborate redundantRaise (default): warn elaborate redundantRaise (enabled): true elaborate resolveScope (default): strdec elaborate resolveScope (enabled): true elaborate sequenceNonUnit (default): warn elaborate sequenceNonUnit (enabled): true elaborate valrecConstr (default): warn elaborate valrecConstr (enabled): true elaborate warnUnused (default): true elaborate warnUnused (enabled): true elaborate allowDoDecls (default): false elaborate allowDoDecls (enabled): true elaborate allowExtendedNumConsts (default): false elaborate allowExtendedNumConsts (enabled): true elaborate allowExtendedTextConsts (default): false elaborate allowExtendedTextConsts (enabled): true elaborate allowLineComments (default): false elaborate allowLineComments (enabled): true elaborate allowOptBar (default): false elaborate allowOptBar (enabled): true elaborate allowOptSemicolon (default): false elaborate allowOptSemicolon (enabled): true elaborate allowOrPats (default): false elaborate allowOrPats (enabled): true elaborate allowRecordPunExps (default): false elaborate allowRecordPunExps (enabled): true elaborate allowSigWithtype (default): false elaborate allowSigWithtype (enabled): true elaborate allowVectorExps (default): false elaborate allowVectorExps (enabled): true elaborate allowVectorPats (default): false elaborate allowVectorPats (enabled): true emit main: true export header: None exn history: false generated output format: executable gc check: Limit globalize arrays: false globalize refs: true globalize int-inf as small type): true globalize small type: 1 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: mlton keep AST: false 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_: false lib dir: /home/mtf/devel/mlton/mlton.sulfur-space-leaks.git-wt/build/lib/mlton lib target dir: /home/mtf/devel/mlton/mlton.sulfur-space-leaks.git-wt/build/lib/mlton/targets/self llvmTBAA: none loop unrolling limit: 150 loop unswitching limit: 300 mark cards: true max function size: 10000 mlb path vars: [{var = SML_LIB, path = $(LIB_MLTON_DIR)/sml}] native commented: 0 elim AL redundant: true 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 optFuel: None optimizationPasses: [] polyvariance: Some {hofo = true, rounds = 2, small = 30, product = 300} prefer abs paths: false prof passes: [] profile: None profile block: false 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 basis compact: false show basis def: true show basis flat: true show def-use: None show types: true staticAllocInternalPtrs: Static staticInitArrays: true staticAllocArrays: true staticInitObjects: Some false staticAllocObjects: true staticAllocWordVectorConsts: true bool type splitting method: smart stop passes: [] target: self target arch: AMD64 target OS: Linux type check: false verbosity: Detail warn unrecognized annotation: true warn deprecated features: true zone cut depth: 100 Compile SML starting frontend starting parseAndElaborate starting processDefUse starting processDefUse finished in 0.45 + 1.33 (75% GC) parseAndElaborate.post stats coreML program size = 519,054,832 bytes property list numPeeks = 78470245 property list maxLength = 3 property list average position = 0.256 hash set numPeeks = 511339 hash set average position = 1.033 live data = 520,033,568 bytes parseAndElaborate finished in 18.27 + 6.80 (27% GC) deadCode starting deadCode.post stats coreML program size = 479,158,536 bytes property list numPeeks = 78852085 property list maxLength = 3 property list average position = 0.256 hash set numPeeks = 511339 hash set average position = 1.033 live data = 480,159,024 bytes deadCode finished in 2.29 + 0.00 (0% GC) defunctorize starting defunctorize.post stats xml program size = 254,285,416 bytes num primexps in program = 476412 num types in program = 685804 num types in hash table = 700475 types hash table size = 142,161,800 bytes property list numPeeks = 85828950 property list maxLength = 4 property list average position = 0.276 hash set numPeeks = 1407843 hash set average position = 0.605 live data = 314,821,448 bytes defunctorize finished in 4.13 + 0.00 (0% GC) frontend.post stats xml program size = 254,285,416 bytes num primexps in program = 476412 num types in program = 685804 num types in hash table = 700475 types hash table size = 142,161,800 bytes property list numPeeks = 87442710 property list maxLength = 4 property list average position = 0.271 hash set numPeeks = 1407843 hash set average position = 0.605 live data = 314,821,448 bytes frontend finished in 27.17 + 6.80 (20% GC) xmlSimplify starting xmlTypeCheck starting xmlTypeCheck finished in 0.92 + 0.00 (0% GC) xmlShrink starting xmlShrink.post stats xml program size = 192,970,128 bytes num primexps in program = 271752 num types in program = 671789 num types in hash table = 703562 types hash table size = 132,691,952 bytes property list numPeeks = 101870605 property list maxLength = 4 property list average position = 0.235 hash set numPeeks = 2444197 hash set average position = 0.798 live data = 278,232,072 bytes xmlShrink finished in 2.88 + 0.01 (0% GC) xmlSimplifyTypes starting xmlSimplifyTypes.post stats xml program size = 275,020,904 bytes num primexps in program = 271752 num types in program = 671751 num types in hash table = 703581 types hash table size = 198,207,360 bytes property list numPeeks = 106494456 property list maxLength = 4 property list average position = 0.237 hash set numPeeks = 3115965 hash set average position = 0.859 live data = 360,296,808 bytes xmlSimplifyTypes finished in 3.30 + 0.00 (0% GC) xmlTypeCheck starting xmlTypeCheck finished in 0.80 + 0.00 (0% GC) xmlSimplify.post stats xml program size = 249,673,536 bytes num primexps in program = 271752 num types in program = 671751 num types in hash table = 703592 types hash table size = 186,440,992 bytes property list numPeeks = 113584468 property list maxLength = 4 property list average position = 0.260 hash set numPeeks = 4080235 hash set average position = 0.908 live data = 334,950,904 bytes xmlSimplify finished in 10.52 + 0.01 (0% GC) monomorphise starting monomorphise.post stats sxml program size = 214,088,712 bytes num primexps in program = 801683 num types in program = 100798 num types in hash table = 803195 types hash table size = 200,703,040 bytes property list numPeeks = 125674637 property list maxLength = 4 property list average position = 0.264 hash set numPeeks = 7265158 hash set average position = 0.927 live data = 434,320,704 bytes monomorphise finished in 4.55 + 0.00 (0% GC) sxmlSimplify starting sxmlTypeCheck starting sxmlTypeCheck finished in 0.68 + 0.00 (0% GC) sxmlShrink1 starting sxmlShrink1.post stats sxml program size = 142,723,384 bytes num primexps in program = 553397 num types in program = 40090 num types in hash table = 809136 types hash table size = 201,511,016 bytes property list numPeeks = 142311157 property list maxLength = 4 property list average position = 0.240 hash set numPeeks = 7551504 hash set average position = 0.930 live data = 370,650,720 bytes sxmlShrink1 finished in 4.33 + 0.00 (0% GC) implementSuffix starting implementSuffix.post stats sxml program size = 142,725,968 bytes num primexps in program = 553404 num types in program = 40090 num types in hash table = 809136 types hash table size = 201,511,016 bytes property list numPeeks = 143042346 property list maxLength = 4 property list average position = 0.239 hash set numPeeks = 7551509 hash set average position = 0.930 live data = 370,653,192 bytes implementSuffix finished in 3.10 + 0.00 (0% GC) sxmlShrink2 starting sxmlShrink2.post stats sxml program size = 139,270,832 bytes num primexps in program = 539179 num types in program = 38488 num types in hash table = 809136 types hash table size = 201,511,016 bytes property list numPeeks = 150763144 property list maxLength = 4 property list average position = 0.228 hash set numPeeks = 7551509 hash set average position = 0.930 live data = 367,375,656 bytes sxmlShrink2 finished in 3.99 + 0.00 (0% GC) implementExceptions starting implementExceptions.post stats sxml program size = 145,588,864 bytes num primexps in program = 567720 num types in program = 39070 num types in hash table = 809704 types hash table size = 201,588,256 bytes property list numPeeks = 151632168 property list maxLength = 4 property list average position = 0.226 hash set numPeeks = 7560249 hash set average position = 0.930 live data = 373,705,560 bytes implementExceptions finished in 3.22 + 0.00 (0% GC) sxmlShrink3 starting sxmlShrink3.post stats sxml program size = 143,490,568 bytes num primexps in program = 557233 num types in program = 39051 num types in hash table = 809704 types hash table size = 201,588,256 bytes property list numPeeks = 159564241 property list maxLength = 4 property list average position = 0.215 hash set numPeeks = 7560249 hash set average position = 0.930 live data = 350,383,984 bytes sxmlShrink3 finished in 3.46 + 1.40 (29% GC) polyvariance starting duplicate1 starting duplicate1.post stats sxml program size = 161,077,696 bytes num primexps in program = 641428 num types in program = 32069 num types in hash table = 809704 types hash table size = 201,588,096 bytes property list numPeeks = 176767647 property list maxLength = 4 property list average position = 0.196 hash set numPeeks = 7560249 hash set average position = 0.930 live data = 368,773,016 bytes duplicate1 finished in 3.83 + 0.00 (0% GC) duplicate2 starting duplicate2.post stats sxml program size = 160,973,144 bytes num primexps in program = 640957 num types in program = 31993 num types in hash table = 809704 types hash table size = 201,588,096 bytes property list numPeeks = 188842383 property list maxLength = 4 property list average position = 0.184 hash set numPeeks = 7560249 hash set average position = 0.930 live data = 368,677,376 bytes duplicate2 finished in 3.51 + 0.00 (0% GC) polyvariance.post stats sxml program size = 160,973,144 bytes num primexps in program = 640957 num types in program = 31993 num types in hash table = 809704 types hash table size = 201,588,096 bytes property list numPeeks = 189650957 property list maxLength = 4 property list average position = 0.183 hash set numPeeks = 7560249 hash set average position = 0.930 live data = 368,677,312 bytes polyvariance finished in 9.86 + 0.00 (0% GC) sxmlShrink4 starting sxmlShrink4.post stats sxml program size = 160,973,144 bytes num primexps in program = 640957 num types in program = 31993 num types in hash table = 809704 types hash table size = 201,588,096 bytes property list numPeeks = 198637344 property list maxLength = 4 property list average position = 0.175 hash set numPeeks = 7560249 hash set average position = 0.930 live data = 369,250,640 bytes sxmlShrink4 finished in 3.64 + 0.69 (16% GC) sxmlTypeCheck starting sxmlTypeCheck finished in 0.42 + 0.00 (0% GC) sxmlSimplify.post stats sxml program size = 160,973,144 bytes num primexps in program = 640957 num types in program = 31993 num types in hash table = 809985 types hash table size = 201,626,312 bytes property list numPeeks = 203111526 property list maxLength = 4 property list average position = 0.174 hash set numPeeks = 7799730 hash set average position = 0.933 live data = 369,287,696 bytes sxmlSimplify finished in 35.34 + 2.09 (6% GC) closureConvert starting flow analysis starting flow analysis finished in 0.81 + 0.00 (0% GC) free variables starting free variables finished in 0.24 + 0.00 (0% GC) globalize starting globalize finished in 0.14 + 0.00 (0% GC) convert starting convert finished in 1.68 + 2.27 (57% GC) closureConvert.post stats ssa program size = 301,525,480 bytes num globals = 157140 num vars in main = 18060 num blocks in main = 7837 num functions in program = 37888 num blocks in program = 510116 num statements in program = 535192 num types in program = 39050 num types in hash table = 76377 types hash table size = 17,015,504 bytes property list numPeeks = 225445256 property list maxLength = 4 property list average position = 0.159 hash set numPeeks = 8001993 hash set average position = 0.927 live data = 320,999,536 bytes closureConvert finished in 4.85 + 2.27 (32% GC) ssaSimplify starting ssaTypeCheck starting checkScopes starting checkScopes finished in 0.90 + 0.00 (0% GC) ssaTypeCheck finished in 1.54 + 0.00 (0% GC) removeUnused1 starting removeUnused1.post stats ssa program size = 229,747,312 bytes num globals = 114650 num vars in main = 14805 num blocks in main = 5238 num functions in program = 35911 num blocks in program = 377062 num statements in program = 468084 num types in program = 35690 num types in hash table = 77873 types hash table size = 29,831,824 bytes property list numPeeks = 264354386 property list maxLength = 4 property list average position = 0.151 hash set numPeeks = 8765627 hash set average position = 0.898 live data = 263,631,152 bytes removeUnused1 finished in 4.16 + 0.00 (0% GC) introduceLoops1 starting introduceLoops1.post stats ssa program size = 234,093,320 bytes num globals = 114650 num vars in main = 14805 num blocks in main = 5238 num functions in program = 35911 num blocks in program = 394198 num statements in program = 468084 num types in program = 35690 num types in hash table = 77873 types hash table size = 29,831,824 bytes property list numPeeks = 265126386 property list maxLength = 4 property list average position = 0.151 hash set numPeeks = 8765627 hash set average position = 0.898 live data = 267,977,104 bytes introduceLoops1 finished in 2.04 + 0.00 (0% GC) loopInvariant1 starting loopInvariant1.post stats ssa program size = 231,401,560 bytes num globals = 114650 num vars in main = 14804 num blocks in main = 5214 num functions in program = 35911 num blocks in program = 381935 num statements in program = 467956 num types in program = 35690 num types in hash table = 77873 types hash table size = 29,831,824 bytes property list numPeeks = 273708831 property list maxLength = 4 property list average position = 0.153 hash set numPeeks = 8765627 hash set average position = 0.898 live data = 265,285,288 bytes loopInvariant1 finished in 2.77 + 0.00 (0% GC) inlineLeaf1 starting inlineLeaf1.post stats ssa program size = 219,015,160 bytes num globals = 114650 num vars in main = 13772 num blocks in main = 3317 num functions in program = 25181 num blocks in program = 336319 num statements in program = 505893 num types in program = 34775 num types in hash table = 77873 types hash table size = 29,831,824 bytes property list numPeeks = 283675187 property list maxLength = 4 property list average position = 0.151 hash set numPeeks = 8765627 hash set average position = 0.898 live data = 252,984,024 bytes inlineLeaf1 finished in 2.99 + 0.00 (0% GC) inlineLeaf2 starting inlineLeaf2.post stats ssa program size = 220,754,824 bytes num globals = 114650 num vars in main = 13829 num blocks in main = 2923 num functions in program = 22935 num blocks in program = 332441 num statements in program = 541508 num types in program = 33356 num types in hash table = 77873 types hash table size = 29,831,824 bytes property list numPeeks = 293015600 property list maxLength = 4 property list average position = 0.148 hash set numPeeks = 8765627 hash set average position = 0.898 live data = 246,498,104 bytes inlineLeaf2 finished in 2.03 + 0.93 (31% GC) contify1 starting initReachCallerCallees starting initReachCallerCallees finished in 0.04 + 0.00 (0% GC) analyzeDom starting buildGraph starting buildGraph finished in 0.06 + 0.00 (0% GC) computeDominators starting computeDominators finished in 0.05 + 0.00 (0% GC) compute ADom starting compute ADom finished in 0.02 + 0.00 (0% GC) analyzeDom finished in 0.14 + 0.00 (0% GC) transform starting transform finished in 0.55 + 0.00 (0% GC) contify1.post stats ssa program size = 201,686,896 bytes num globals = 114650 num vars in main = 13828 num blocks in main = 2921 num functions in program = 8769 num blocks in program = 301891 num statements in program = 512473 num types in program = 28934 num types in hash table = 77873 types hash table size = 29,831,824 bytes property list numPeeks = 300870773 property list maxLength = 4 property list average position = 0.146 hash set numPeeks = 8765627 hash set average position = 0.898 live data = 227,910,328 bytes contify1 finished in 1.92 + 0.00 (0% GC) localFlatten1 starting localFlatten1.post stats ssa program size = 196,877,584 bytes num globals = 114650 num vars in main = 13828 num blocks in main = 2921 num functions in program = 8769 num blocks in program = 299317 num statements in program = 478616 num types in program = 25907 num types in hash table = 77873 types hash table size = 29,831,824 bytes property list numPeeks = 308751989 property list maxLength = 4 property list average position = 0.145 hash set numPeeks = 8765627 hash set average position = 0.898 live data = 223,429,072 bytes localFlatten1 finished in 1.80 + 0.00 (0% GC) constantPropagation starting fixed point starting fixed point finished in 0.67 + 0.00 (0% GC) constantPropagation.post stats ssa program size = 157,989,776 bytes num globals = 38143 num vars in main = 11248 num blocks in main = 2826 num functions in program = 8769 num blocks in program = 249689 num statements in program = 331918 num types in program = 23555 num types in hash table = 77873 types hash table size = 29,831,824 bytes property list numPeeks = 320661435 property list maxLength = 4 property list average position = 0.144 hash set numPeeks = 9237747 hash set average position = 0.909 live data = 184,542,816 bytes constantPropagation finished in 3.16 + 0.00 (0% GC) duplicateGlobals1 skipped splitTypes1 starting splitTypes1.post stats ssa program size = 326,405,288 bytes num globals = 38143 num vars in main = 11248 num blocks in main = 2826 num functions in program = 8769 num blocks in program = 249689 num statements in program = 331918 num types in program = 30418 num types in hash table = 125484 types hash table size = 37,180,456 bytes property list numPeeks = 324277905 property list maxLength = 4 property list average position = 0.143 hash set numPeeks = 12409809 hash set average position = 3.808 live data = 355,558,816 bytes splitTypes1 finished in 4.52 + 0.00 (0% GC) useless starting useless.post stats ssa program size = 151,323,424 bytes num globals = 18611 num vars in main = 9984 num blocks in main = 2771 num functions in program = 8769 num blocks in program = 249382 num statements in program = 301738 num types in program = 22110 num types in hash table = 128170 types hash table size = 37,634,824 bytes property list numPeeks = 333346565 property list maxLength = 4 property list average position = 0.144 hash set numPeeks = 12972620 hash set average position = 3.687 live data = 185,974,072 bytes useless finished in 3.64 + 2.36 (39% GC) loopUnroll1 skipped removeUnused2 starting removeUnused2.post stats ssa program size = 139,361,136 bytes num globals = 18369 num vars in main = 9953 num blocks in main = 2756 num functions in program = 8260 num blocks in program = 235377 num statements in program = 290777 num types in program = 18984 num types in hash table = 128170 types hash table size = 48,958,200 bytes property list numPeeks = 343026686 property list maxLength = 4 property list average position = 0.140 hash set numPeeks = 12982842 hash set average position = 3.685 live data = 187,265,608 bytes removeUnused2 finished in 1.94 + 0.00 (0% GC) duplicateGlobals2 starting duplicateGlobals2.post stats ssa program size = 144,020,320 bytes num globals = 59972 num vars in main = 9953 num blocks in main = 2756 num functions in program = 8260 num blocks in program = 235377 num statements in program = 332380 num types in program = 18984 num types in hash table = 128170 types hash table size = 48,958,200 bytes property list numPeeks = 343511655 property list maxLength = 4 property list average position = 0.140 hash set numPeeks = 13726013 hash set average position = 3.501 live data = 191,924,976 bytes duplicateGlobals2 finished in 1.22 + 0.00 (0% GC) splitTypes2 starting splitTypes2.post stats ssa program size = 294,194,352 bytes num globals = 59972 num vars in main = 9953 num blocks in main = 2756 num functions in program = 8260 num blocks in program = 235377 num statements in program = 332380 num types in program = 30668 num types in hash table = 158683 types hash table size = 57,468,328 bytes property list numPeeks = 346864007 property list maxLength = 4 property list average position = 0.139 hash set numPeeks = 16398536 hash set average position = 7.527 live data = 347,026,616 bytes splitTypes2 finished in 7.33 + 0.00 (0% GC) simplifyTypes starting simplifyTypes.post stats ssa program size = 125,498,936 bytes num globals = 58130 num vars in main = 7536 num blocks in main = 2451 num functions in program = 8260 num blocks in program = 192232 num statements in program = 314101 num types in program = 15166 num types in hash table = 166043 types hash table size = 60,306,080 bytes property list numPeeks = 354827491 property list maxLength = 4 property list average position = 0.139 hash set numPeeks = 16415662 hash set average position = 7.519 live data = 185,313,880 bytes simplifyTypes finished in 1.97 + 0.00 (0% GC) polyEqual starting polyEqual.post stats ssa program size = 130,770,840 bytes num globals = 58130 num vars in main = 7572 num blocks in main = 2524 num functions in program = 8281 num blocks in program = 213220 num statements in program = 314145 num types in program = 15166 num types in hash table = 166043 types hash table size = 60,306,080 bytes property list numPeeks = 355461824 property list maxLength = 4 property list average position = 0.138 hash set numPeeks = 16415706 hash set average position = 7.519 live data = 190,585,360 bytes polyEqual finished in 1.32 + 0.00 (0% GC) polyHash starting polyHash.post stats ssa program size = 130,770,840 bytes num globals = 58130 num vars in main = 7572 num blocks in main = 2524 num functions in program = 8281 num blocks in program = 213220 num statements in program = 314145 num types in program = 15166 num types in hash table = 166043 types hash table size = 60,306,080 bytes property list numPeeks = 355908386 property list maxLength = 4 property list average position = 0.138 hash set numPeeks = 16415707 hash set average position = 7.519 live data = 190,584,760 bytes polyHash finished in 1.30 + 0.00 (0% GC) introduceLoops2 starting introduceLoops2.post stats ssa program size = 130,776,864 bytes num globals = 58130 num vars in main = 7572 num blocks in main = 2524 num functions in program = 8281 num blocks in program = 213244 num statements in program = 314145 num types in program = 15166 num types in hash table = 166043 types hash table size = 60,306,080 bytes property list numPeeks = 356342422 property list maxLength = 4 property list average position = 0.138 hash set numPeeks = 16415707 hash set average position = 7.519 live data = 190,590,728 bytes introduceLoops2 finished in 1.25 + 0.00 (0% GC) loopInvariant2 starting loopInvariant2.post stats ssa program size = 125,660,048 bytes num globals = 58130 num vars in main = 7536 num blocks in main = 2452 num functions in program = 8281 num blocks in program = 193430 num statements in program = 313837 num types in program = 15164 num types in hash table = 166043 types hash table size = 60,306,080 bytes property list numPeeks = 361393815 property list maxLength = 4 property list average position = 0.139 hash set numPeeks = 16415707 hash set average position = 7.519 live data = 185,474,048 bytes loopInvariant2 finished in 1.62 + 0.00 (0% GC) loopUnswitch1 skipped knownCase1 skipped contify2 starting initReachCallerCallees starting initReachCallerCallees finished in 0.03 + 0.00 (0% GC) analyzeDom starting buildGraph starting buildGraph finished in 0.04 + 0.00 (0% GC) computeDominators starting computeDominators finished in 0.03 + 0.00 (0% GC) compute ADom starting compute ADom finished in 0.01 + 0.00 (0% GC) analyzeDom finished in 0.09 + 0.00 (0% GC) transform starting transform finished in 0.34 + 0.00 (0% GC) contify2.post stats ssa program size = 124,377,264 bytes num globals = 58130 num vars in main = 7536 num blocks in main = 2452 num functions in program = 7435 num blocks in program = 192140 num statements in program = 310951 num types in program = 14843 num types in hash table = 166043 types hash table size = 60,306,080 bytes property list numPeeks = 365792404 property list maxLength = 4 property list average position = 0.138 hash set numPeeks = 16415707 hash set average position = 7.519 live data = 184,229,408 bytes contify2 finished in 1.63 + 0.00 (0% GC) inlineNonRecursive starting inlineNonRecursive.post stats ssa program size = 189,353,288 bytes num globals = 58130 num vars in main = 22700 num blocks in main = 10627 num functions in program = 2232 num blocks in program = 312752 num statements in program = 518231 num types in program = 13391 num types in hash table = 166043 types hash table size = 60,306,080 bytes property list numPeeks = 375564081 property list maxLength = 4 property list average position = 0.136 hash set numPeeks = 16415707 hash set average position = 7.519 live data = 249,908,408 bytes inlineNonRecursive finished in 2.19 + 0.61 (22% GC) localFlatten2 starting localFlatten2.post stats ssa program size = 186,667,112 bytes num globals = 58130 num vars in main = 21759 num blocks in main = 9675 num functions in program = 2232 num blocks in program = 302964 num statements in program = 512677 num types in program = 13152 num types in hash table = 166043 types hash table size = 60,306,080 bytes property list numPeeks = 383594355 property list maxLength = 4 property list average position = 0.135 hash set numPeeks = 16415707 hash set average position = 7.519 live data = 247,151,840 bytes localFlatten2 finished in 1.53 + 0.34 (18% GC) removeUnused3 starting removeUnused3.post stats ssa program size = 186,381,872 bytes num globals = 51550 num vars in main = 21543 num blocks in main = 9484 num functions in program = 2232 num blocks in program = 301618 num statements in program = 504921 num types in program = 13078 num types in hash table = 166043 types hash table size = 60,532,192 bytes property list numPeeks = 397216010 property list maxLength = 4 property list average position = 0.131 hash set numPeeks = 16424762 hash set average position = 7.516 live data = 247,128,936 bytes removeUnused3 finished in 2.06 + 0.00 (0% GC) contify3 starting initReachCallerCallees starting initReachCallerCallees finished in 0.02 + 0.00 (0% GC) analyzeDom starting buildGraph starting buildGraph finished in 0.03 + 0.00 (0% GC) computeDominators starting computeDominators finished in 0.02 + 0.00 (0% GC) compute ADom starting compute ADom finished in 0.00 + 0.00 (0% GC) analyzeDom finished in 0.06 + 0.00 (0% GC) transform starting transform finished in 0.38 + 0.00 (0% GC) contify3.post stats ssa program size = 186,314,328 bytes num globals = 51550 num vars in main = 21530 num blocks in main = 9427 num functions in program = 2225 num blocks in program = 301414 num statements in program = 504867 num types in program = 13076 num types in hash table = 166043 types hash table size = 60,532,192 bytes property list numPeeks = 403416049 property list maxLength = 4 property list average position = 0.130 hash set numPeeks = 16424762 hash set average position = 7.516 live data = 247,061,408 bytes contify3 finished in 1.70 + 0.00 (0% GC) introduceLoops3 starting introduceLoops3.post stats ssa program size = 186,331,152 bytes num globals = 51550 num vars in main = 21530 num blocks in main = 9427 num functions in program = 2225 num blocks in program = 301486 num statements in program = 504867 num types in program = 13076 num types in hash table = 166043 types hash table size = 60,532,192 bytes property list numPeeks = 404073141 property list maxLength = 4 property list average position = 0.129 hash set numPeeks = 16424762 hash set average position = 7.516 live data = 247,078,144 bytes introduceLoops3 finished in 1.24 + 0.00 (0% GC) loopInvariant3 starting loopInvariant3.post stats ssa program size = 185,984,360 bytes num globals = 51550 num vars in main = 20718 num blocks in main = 9423 num functions in program = 2225 num blocks in program = 301421 num statements in program = 504863 num types in program = 13076 num types in hash table = 166043 types hash table size = 60,532,192 bytes property list numPeeks = 411787379 property list maxLength = 4 property list average position = 0.131 hash set numPeeks = 16424762 hash set average position = 7.516 live data = 246,083,056 bytes loopInvariant3 finished in 1.67 + 0.36 (18% GC) localRef starting multi starting multi finished in 0.20 + 0.00 (0% GC) localRef.post stats ssa program size = 185,654,368 bytes num globals = 51546 num vars in main = 20610 num blocks in main = 9369 num functions in program = 2225 num blocks in program = 301523 num statements in program = 502534 num types in program = 12936 num types in hash table = 166043 types hash table size = 60,532,192 bytes property list numPeeks = 423430682 property list maxLength = 4 property list average position = 0.140 hash set numPeeks = 16427725 hash set average position = 7.515 live data = 246,133,480 bytes localRef finished in 2.38 + 0.00 (0% GC) flatten starting flatten.post stats ssa program size = 175,187,832 bytes num globals = 51546 num vars in main = 18142 num blocks in main = 9369 num functions in program = 2225 num blocks in program = 301634 num statements in program = 369664 num types in program = 8171 num types in hash table = 166043 types hash table size = 60,532,192 bytes property list numPeeks = 432891617 property list maxLength = 4 property list average position = 0.139 hash set numPeeks = 16427725 hash set average position = 7.515 live data = 236,569,696 bytes flatten finished in 1.83 + 0.42 (19% GC) localFlatten3 starting localFlatten3.post stats ssa program size = 175,144,784 bytes num globals = 51546 num vars in main = 18142 num blocks in main = 9369 num functions in program = 2225 num blocks in program = 301416 num statements in program = 369606 num types in program = 8159 num types in hash table = 166043 types hash table size = 60,532,192 bytes property list numPeeks = 440310809 property list maxLength = 4 property list average position = 0.139 hash set numPeeks = 16427725 hash set average position = 7.515 live data = 236,527,600 bytes localFlatten3 finished in 1.59 + 0.00 (0% GC) combineConversions starting combineConversions.post stats ssa program size = 175,516,832 bytes num globals = 51546 num vars in main = 18134 num blocks in main = 9369 num functions in program = 2225 num blocks in program = 301404 num statements in program = 369510 num types in program = 8159 num types in hash table = 166043 types hash table size = 60,532,192 bytes property list numPeeks = 446224369 property list maxLength = 4 property list average position = 0.138 hash set numPeeks = 16427725 hash set average position = 7.515 live data = 236,899,568 bytes combineConversions finished in 1.53 + 0.00 (0% GC) commonArg starting commonArg.post stats ssa program size = 173,713,504 bytes num globals = 51546 num vars in main = 17954 num blocks in main = 9173 num functions in program = 2225 num blocks in program = 297682 num statements in program = 369245 num types in program = 8157 num types in hash table = 166043 types hash table size = 60,532,192 bytes property list numPeeks = 455909215 property list maxLength = 4 property list average position = 0.137 hash set numPeeks = 16427725 hash set average position = 7.515 live data = 234,233,840 bytes commonArg finished in 1.85 + 0.53 (22% GC) commonSubexp1 starting commonSubexp1.post stats ssa program size = 165,034,776 bytes num globals = 19329 num vars in main = 16508 num blocks in main = 9147 num functions in program = 2225 num blocks in program = 297344 num statements in program = 314516 num types in program = 8155 num types in hash table = 166043 types hash table size = 60,532,192 bytes property list numPeeks = 467129465 property list maxLength = 4 property list average position = 0.142 hash set numPeeks = 16748961 hash set average position = 7.377 live data = 226,326,960 bytes commonSubexp1 finished in 2.05 + 0.00 (0% GC) commonBlock starting commonBlock.post stats ssa program size = 160,723,840 bytes num globals = 19329 num vars in main = 16494 num blocks in main = 8924 num functions in program = 2225 num blocks in program = 272022 num statements in program = 314504 num types in program = 8155 num types in hash table = 166043 types hash table size = 60,532,192 bytes property list numPeeks = 471749637 property list maxLength = 4 property list average position = 0.141 hash set numPeeks = 16748961 hash set average position = 7.377 live data = 222,015,944 bytes commonBlock finished in 1.49 + 0.00 (0% GC) shareZeroVec starting shareZeroVec.post stats ssa program size = 165,809,904 bytes num globals = 19762 num vars in main = 16548 num blocks in main = 9008 num functions in program = 2225 num blocks in program = 276107 num statements in program = 316295 num types in program = 8155 num types in hash table = 166043 types hash table size = 60,532,192 bytes property list numPeeks = 474260482 property list maxLength = 4 property list average position = 0.140 hash set numPeeks = 16751122 hash set average position = 7.377 live data = 227,101,872 bytes shareZeroVec finished in 1.30 + 0.00 (0% GC) redundantTests starting redundantTests.post stats ssa program size = 161,424,592 bytes num globals = 19764 num vars in main = 16510 num blocks in main = 8942 num functions in program = 2225 num blocks in program = 274445 num statements in program = 314818 num types in program = 8155 num types in hash table = 166043 types hash table size = 60,532,192 bytes property list numPeeks = 484393406 property list maxLength = 4 property list average position = 0.143 hash set numPeeks = 16751122 hash set average position = 7.377 live data = 221,965,248 bytes redundantTests finished in 1.42 + 0.24 (14% GC) redundant starting redundant.post stats ssa program size = 161,409,392 bytes num globals = 19764 num vars in main = 16510 num blocks in main = 8942 num functions in program = 2225 num blocks in program = 274445 num statements in program = 314818 num types in program = 8155 num types in hash table = 166043 types hash table size = 60,532,192 bytes property list numPeeks = 488944635 property list maxLength = 4 property list average position = 0.144 hash set numPeeks = 16751122 hash set average position = 7.377 live data = 221,949,912 bytes redundant finished in 1.28 + 0.00 (0% GC) loopUnswitch2 skipped knownCase2 starting knownCase2.post stats ssa program size = 177,549,592 bytes num globals = 19764 num vars in main = 21211 num blocks in main = 11132 num functions in program = 2225 num blocks in program = 309079 num statements in program = 309953 num types in program = 7812 num types in hash table = 166043 types hash table size = 60,532,192 bytes property list numPeeks = 513362887 property list maxLength = 4 property list average position = 0.153 hash set numPeeks = 16819952 hash set average position = 7.347 live data = 238,074,448 bytes knownCase2 finished in 2.47 + 0.27 (10% GC) loopUnroll2 skipped commonSubexp2 skipped removeUnused4 starting removeUnused4.post stats ssa program size = 170,259,808 bytes num globals = 16805 num vars in main = 18285 num blocks in main = 10005 num functions in program = 2225 num blocks in program = 295769 num statements in program = 305913 num types in program = 7758 num types in hash table = 166043 types hash table size = 60,898,664 bytes property list numPeeks = 526549364 property list maxLength = 4 property list average position = 0.150 hash set numPeeks = 16824089 hash set average position = 7.346 live data = 232,002,944 bytes removeUnused4 finished in 2.89 + 0.00 (0% GC) ssaOrderFunctions starting ssaOrderFunctions.post stats ssa program size = 170,259,808 bytes num globals = 16805 num vars in main = 18285 num blocks in main = 10005 num functions in program = 2225 num blocks in program = 295769 num statements in program = 305913 num types in program = 7758 num types in hash table = 1... [truncated message content] |
From: Matthew F. <no...@gi...> - 2019-10-25 17:02:37
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: fd0d28fd871319e29909fadfe1d04cb379ed046a https://github.com/MLton/mlton/commit/fd0d28fd871319e29909fadfe1d04cb379ed046a Author: Matthew Fluet <mat...@gm...> Date: 2019-09-23 (Mon, 23 Sep 2019) Changed paths: M basis-library/mlton/mlton.sig M basis-library/mlton/mlton.sml M doc/examples/size/size.sml M doc/guide/src/MLtonStructure.adoc M lib/stubs/mlton-stubs-for-polyml/mlton.sml M lib/stubs/mlton-stubs-for-smlnj/mlton.sml M lib/stubs/mlton-stubs/mlton.sig M lib/stubs/mlton-stubs/mlton.sml M mlton/atoms/con-.fun M mlton/atoms/tycon.fun M mlton/control/control.sml M mlton/elaborate/elaborate-env.fun M regression/mlton.share.sml M regression/size.sml M regression/thread-switch-size.sml Log Message: ----------- Change `MLton.size`'s type to `'a -> IntInf.int` With 64-bit systems, the size of a single object can exceed that representable by a signed 32-bit integer. Commit: ec6fd6b08dbb907dc7345950ea8b33923a90d28f https://github.com/MLton/mlton/commit/ec6fd6b08dbb907dc7345950ea8b33923a90d28f Author: Matthew Fluet <mat...@gm...> Date: 2019-09-23 (Mon, 23 Sep 2019) Changed paths: M runtime/gc/dfs-mark.c M runtime/gc/dfs-mark.h M runtime/gc/gc_state.h M runtime/gc/mark-compact.c M runtime/gc/share.c M runtime/gc/size.c Log Message: ----------- Refactor `dfsMark` to avoid special-purpose functions Use a global `GC_markState markState` to communicate parameters to `dfsMark`. This avoid the need for special-purpose functions that call `dfsMarkByMode` with particular arguments. Commit: 541989f0b6b4a8ae8084bbe43680f7982d36e7d7 https://github.com/MLton/mlton/commit/541989f0b6b4a8ae8084bbe43680f7982d36e7d7 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-23 (Mon, 23 Sep 2019) Changed paths: M basis-library/mlton/mlton.sig M basis-library/mlton/mlton.sml M basis-library/primitive/prim-mlton.sml M doc/guide/src/MLtonStructure.adoc M runtime/gc/size.c M runtime/gc/size.h Log Message: ----------- Add `MLton.sizeAll: unit -> IntInf.int` `MLton.sizeAll` returns the size of reachable live data, computed using DFS marking (and unmarking). Thus, it takes time proportional to live data, but should be cheaper than a major copying GC and much cheaper than a major mark-compact GC. Commit: b83e6df0e4f255155d068ab237d6a08f8087efa6 https://github.com/MLton/mlton/commit/b83e6df0e4f255155d068ab237d6a08f8087efa6 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-23 (Mon, 23 Sep 2019) Changed paths: M lib/stubs/mlton-stubs/mlton.sig M lib/stubs/mlton-stubs/mlton.sml M mlton/control/control.sml Log Message: ----------- Report `live data = ??? bytes` at `-verbose 3` Commit: 967845479d81b06258ef27435591d091bb0ee0a0 https://github.com/MLton/mlton/commit/967845479d81b06258ef27435591d091bb0ee0a0 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-24 (Tue, 24 Sep 2019) Changed paths: M mlton/atoms/hash-type.fun Log Message: ----------- Fix `types hash table size = ??? bytes" for XML/SXML Commit: 3faad1bccfefe5e3d0da6b7616155085255e8cca https://github.com/MLton/mlton/commit/3faad1bccfefe5e3d0da6b7616155085255e8cca Author: Matthew Fluet <mat...@gm...> Date: 2019-09-25 (Wed, 25 Sep 2019) Changed paths: M Makefile Log Message: ----------- Augment `MLTON_NAME` for {debugged,traced,profiled-{alloc,count,time}} targets Commit: ef22d74f44a87eef0018ef087d0be519f33ec049 https://github.com/MLton/mlton/commit/ef22d74f44a87eef0018ef087d0be519f33ec049 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-26 (Thu, 26 Sep 2019) Changed paths: M mlton/xml/xml-tree.fun M mlton/xml/xml-tree.sig Log Message: ----------- Add `XmlTree.Program.dropProfile` Commit: 7731e9fa7645882bc6cc0083c48dc22c03baafb7 https://github.com/MLton/mlton/commit/7731e9fa7645882bc6cc0083c48dc22c03baafb7 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-26 (Thu, 26 Sep 2019) Changed paths: M mlton/core-ml/core-ml.fun M mlton/core-ml/core-ml.sig Log Message: ----------- Add `CoreML.Program.dropProfile` Commit: 41e2a29cdd7068936589c423d33dd7e77c5a475a https://github.com/MLton/mlton/commit/41e2a29cdd7068936589c423d33dd7e77c5a475a Author: Matthew Fluet <mat...@gm...> Date: 2019-09-27 (Fri, 27 Sep 2019) Changed paths: M mlton/ssa/shrink.fun M mlton/ssa/shrink2.fun Log Message: ----------- Shrink non-tail return with eta-raise handle Simplify a `Return.NonTail {cont, handler = Handler.Handle hnd}` where the `hnd` block is an eta-raise block (but the `cont` block is not an eta-return block) to `Return.NonTail {cont = cont, handler = Handler.Caller}`. Commit: a5e349db7a949e34e1225a05d42c01bd8bd2136f https://github.com/MLton/mlton/commit/a5e349db7a949e34e1225a05d42c01bd8bd2136f Author: Matthew Fluet <mat...@gm...> Date: 2019-09-27 (Fri, 27 Sep 2019) Changed paths: M mlton/xml/shrink.fun Log Message: ----------- Simplify `e handle exn => raise exn` to `e` in `xmlShrink` Commit: b9da6689852f47a0485983464fa7301a28b356ca https://github.com/MLton/mlton/commit/b9da6689852f47a0485983464fa7301a28b356ca Author: Matthew Fluet <mat...@gm...> Date: 2019-09-28 (Sat, 28 Sep 2019) Changed paths: M mlton/xml/polyvariance.fun Log Message: ----------- Demark rounds of `duplicate` in `polyvariance` diagnostics Commit: 4d9f4420511ad04228be4a4de324fc5ec4123ee1 https://github.com/MLton/mlton/commit/4d9f4420511ad04228be4a4de324fc5ec4123ee1 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-30 (Mon, 30 Sep 2019) Changed paths: M mlton/atoms/cases.fun M mlton/atoms/cases.sig Log Message: ----------- Add `Cases.exists` Commit: f585511f4bec5b44086eaf069e8770b00090ce47 https://github.com/MLton/mlton/commit/f585511f4bec5b44086eaf069e8770b00090ce47 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-30 (Mon, 30 Sep 2019) Changed paths: M mlton/xml/xml-tree.fun Log Message: ----------- Update `XmlTree.Exp.enterLeave` to avoid handler for non-raising The `XmlTee.Exp.enterLeave` function is used to add profiling information to XML expressions; it transforms an expression of the form: let ... decs ... in res end to let val z = let Enter ... decs ... Leave in res end handle exn => let Leave val x = raise exn in x end in z end The `handler` wrapper is unnecessary when the original expression cannot raise; in particular, for a curried function, the body of the outer function does not need a `handler` wrapper. This avoids unnecessarily perturbing the program (relative to the program without profiling). For an expression that does not raise, it now simply transforms to: let Enter ... decs ... Leave in res end Commit: f47cde6ae20e2cb07193253cf9ce49e874bc7130 https://github.com/MLton/mlton/commit/f47cde6ae20e2cb07193253cf9ce49e874bc7130 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-30 (Mon, 30 Sep 2019) Changed paths: M mlton/Makefile Log Message: ----------- Ensure `./mlton/control/version.sml` is created for `def-use` target Commit: ddfbf61526952ed4ce50999a52b69d9854225f95 https://github.com/MLton/mlton/commit/ddfbf61526952ed4ce50999a52b69d9854225f95 Author: Matthew Fluet <mat...@gm...> Date: 2019-10-01 (Tue, 01 Oct 2019) Changed paths: M mlton/xml/polyvariance.fun Log Message: ----------- Tweak `Polyvariance.lambdaSize` to ignore eta-handlers added by profiling Commit: 29f85947775aa80da01a1966c7a30c79c6a6046c https://github.com/MLton/mlton/commit/29f85947775aa80da01a1966c7a30c79c6a6046c Author: Matthew Fluet <mat...@gm...> Date: 2019-10-01 (Tue, 01 Oct 2019) Changed paths: M mlton/ssa/profile.fun M mlton/ssa/profile2.fun Log Message: ----------- Handle jumps to start block in `Ssa{,2}.Profile.addProfileFunction` If an SSA{,2} function has an internal jump to the start block, then adding an `Enter <f>` profile statement to the start block will result in mis-matched sources. When entering the function, the source list for the start block will be empty, but when jumping to the start block from within the function, the source list will be the singleton `[<f>]`. When an SSA{,2} function has an internal jump to the start block, then create a new start block for the `Enter <f>` profile statement. Commit: 69b70f20579747d8284177cba7800ca6f4a8e4aa https://github.com/MLton/mlton/commit/69b70f20579747d8284177cba7800ca6f4a8e4aa Author: Matthew Fluet <mat...@gm...> Date: 2019-10-01 (Tue, 01 Oct 2019) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/profile.fun M mlton/ssa/profile2.fun Log Message: ----------- Add `-profile-block {false|true}` expert option Control whether or not to add `Enter`/`Leave` statements for each block when profiling SSA{,2}. Commit: 01b87480a3ebf9b49087d1c01173cda87c3812f3 https://github.com/MLton/mlton/commit/01b87480a3ebf9b49087d1c01173cda87c3812f3 Author: Matthew Fluet <mat...@gm...> Date: 2019-10-03 (Thu, 03 Oct 2019) Changed paths: M mlton/ssa/simplify2.fun Log Message: ----------- Disable `Zone` pass by default See MLton/mlton#334. When self-compiling with `Zone` enabled, the resulting compiler (when self-compiling) has over 2GB live data at the end of `amd64Codegen`. However, the should be very little live data at the end of `amd64Codegen`, because the IR program is no longer live. The `Zone` pass is known to not be safe-for-space. The `Zone` pass only transforms SSA2 functions with over 10000 blocks. MLton's `main` SSA2 function only recently crossed the threshold that results in the `Zone` pass transforming the `main` SSA2 function, which is why this space leak only recently became a problem. Commit: d39e63e8a78e98bd33563a1fa4460bf3911e015a https://github.com/MLton/mlton/commit/d39e63e8a78e98bd33563a1fa4460bf3911e015a Author: Matthew Fluet <mat...@gm...> Date: 2019-10-04 (Fri, 04 Oct 2019) Changed paths: M Makefile.config M mlton/Makefile Log Message: ----------- Disable `Zone` pass for bootstrap See MLton/mlton#334. When self-compiling with `Zone` enabled, the resulting compiler (when self-compiling) has over 2GB live data at the end of `amd64Codegen`. However, the should be very little live data at the end of `amd64Codegen`, because the IR program is no longer live. The `Zone` pass is known to not be safe-for-space. The `Zone` pass only transforms SSA2 functions with over 10000 blocks. MLton's `main` SSA2 function only recently crossed the threshold that results in the `Zone` pass transforming the `main` SSA2 function, which is why this space leak only recently became a problem. Commit: 6009c5e577267cac803c4d3822ed9c857f5210f3 https://github.com/MLton/mlton/commit/6009c5e577267cac803c4d3822ed9c857f5210f3 Author: Matthew Fluet <mat...@gm...> Date: 2019-10-11 (Fri, 11 Oct 2019) Changed paths: M mlton/backend/bounce-vars.fun M mlton/backend/rssa-restore.fun M mlton/backend/rssa-restore.sig Log Message: ----------- Refactor `RssaRestore` Change type of `RssaRestore.restoreFunction` from `{main:Function.t} -> Function.t -> Function.t` to `{main:Function.t} -> {main:Function.t, restore: Function.t -> Function.t}`. Also, restore the `main` function. Commit: 4fd9d2856d225f8be91355479a31e56b8161aa71 https://github.com/MLton/mlton/commit/4fd9d2856d225f8be91355479a31e56b8161aa71 Author: Matthew Fluet <mat...@gm...> Date: 2019-10-11 (Fri, 11 Oct 2019) Changed paths: M mlton/backend/rssa-live.sig A mlton/backend/rssa-shrink.fun A mlton/backend/rssa-shrink.sig M mlton/backend/rssa-simplify.fun M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig M mlton/backend/rssa.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb Log Message: ----------- Refactor `RssaTree.Program.shrink` to separate module Commit: 5e33ab307bdf49486a8d95e4604ba32b1a946b0f https://github.com/MLton/mlton/commit/5e33ab307bdf49486a8d95e4604ba32b1a946b0f Author: Matthew Fluet <mat...@gm...> Date: 2019-10-11 (Fri, 11 Oct 2019) Changed paths: M mlton/backend/rssa-shrink.sig M mlton/backend/rssa-simplify.fun M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig A mlton/backend/rssa-type-check.fun A mlton/backend/rssa-type-check.sig M mlton/backend/rssa.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb M mlton/main/compile.fun Log Message: ----------- Refactor `RssaTree.Program.typeCheck` to separate module Commit: 3da3bcdfa963d7e3a8b39461d76c1384e35102f1 https://github.com/MLton/mlton/commit/3da3bcdfa963d7e3a8b39461d76c1384e35102f1 Author: Matthew Fluet <mat...@gm...> Date: 2019-10-11 (Fri, 11 Oct 2019) Changed paths: M mlton/backend/rssa-shrink.fun M mlton/backend/rssa-shrink.sig Log Message: ----------- Refactor `RssaShrink.shrinkFunction` Now perform copy propagation and jump chaining in one pass and allow shrinking to be performed per-function, rather than only per-program. Commit: 6bac20e9ae36adfe8972a381daaf37b8f96d2c1d https://github.com/MLton/mlton/commit/6bac20e9ae36adfe8972a381daaf37b8f96d2c1d Author: Matthew Fluet <mat...@gm...> Date: 2019-10-11 (Fri, 11 Oct 2019) Changed paths: M mlton/backend/bounce-vars.fun Log Message: ----------- Perform per-function shrinking in `BounceVars` See MLton/mlton#334. This addresses an issue where the program size spikes at `bounceVars`, through `implementHandlers`, until `rssaShrink2`. Commit: f3e95a0efa7d87799cf70cdbe4deda2fa4a91311 https://github.com/MLton/mlton/commit/f3e95a0efa7d87799cf70cdbe4deda2fa4a91311 Author: Matthew Fluet <mat...@gm...> Date: 2019-10-14 (Mon, 14 Oct 2019) Changed paths: M runtime/gc/call-stack.c M runtime/gc/call-stack.h M runtime/gc/cheney-copy.c M runtime/gc/dfs-mark.c M runtime/gc/dfs-mark.h M runtime/gc/foreach.c M runtime/gc/foreach.h M runtime/gc/forward.c M runtime/gc/forward.h M runtime/gc/gc_state.h M runtime/gc/init.c M runtime/gc/invariant.c M runtime/gc/invariant.h M runtime/gc/mark-compact.c M runtime/gc/mark-compact.h M runtime/gc/profiling.c M runtime/gc/profiling.h M runtime/gc/size.c M runtime/gc/translate.c M runtime/gc/translate.h Log Message: ----------- Refactor GC `foreach{Objptr,StackFrame}` functions to use closures Avoids polluting `GC_state` with per-function state. Commit: 304cfbf35968f341c91243a01ae9dc36a2879d16 https://github.com/MLton/mlton/commit/304cfbf35968f341c91243a01ae9dc36a2879d16 Author: Matthew Fluet <mat...@gm...> Date: 2019-10-14 (Mon, 14 Oct 2019) Changed paths: M mlton/backend/bounce-vars.fun Log Message: ----------- Share `Property` definitions for variables in `BounceVars` See MLton/mlton#334. This was meant to addresses an issue where the during `bounceVars`, the `property list maxLength` jumped from 4 to 761 during `bounceVars` on a self-compile. (Although, it didn't seem to negatively effect property list accesses, since the `property list average position` only jumped from 0.148 to 0.172.) However, it does not actually reduce the `property list maxLength` jump, which seems to be coming from a different pass. Commit: c9c85e6ebb3ce2c8caad59a995898cc09be916f7 https://github.com/MLton/mlton/commit/c9c85e6ebb3ce2c8caad59a995898cc09be916f7 Author: Matthew Fluet <mat...@gm...> Date: 2019-10-14 (Mon, 14 Oct 2019) Changed paths: M mlton/backend/rssa-live.fun Log Message: ----------- Destroy `Property` for variables in `RssaLive` See MLton/mlton#334. This addresses an issue where the during `bounceVars`, the `property list maxLength` jumped from 4 to 761 during `bounceVars` on a self-compile. (Although, it didn't seem to negatively effect property list accesses, since the `property list average position` only jumped from 0.148 to 0.172.) For `RssaLive.Live.live` invoked from `BounceVars`, all variables, including "global" variables defined in the `main` function, are considered; thus, a "global" variable has the `RssaLive.varInfo` property created for each RSSA function in which it appears. (For `RssaLive.Live.live` invoked from `Backend`, "global" variables are not considered, so `property list maxLength` does not increase.) Commit: 21b1026adf3150c2af2422c2cdb8a4831a860458 https://github.com/MLton/mlton/commit/21b1026adf3150c2af2422c2cdb8a4831a860458 Author: Matthew Fluet <mat...@gm...> Date: 2019-10-14 (Mon, 14 Oct 2019) Changed paths: M mlton/backend/rssa-restore.fun M mlton/ssa/restore.fun M mlton/ssa/restore2.fun Log Message: ----------- Reuse `Function.dominatorTree` result in `Restore` for SSA,SSA2,RSSA This is not strictly required for SSA and SSA2, which memoize the dominator tree computation for a function, but RSSA does not memoize the dominator tree computation. Commit: 21761d3d7140bc6936b504b018ae4b16e4c1d146 https://github.com/MLton/mlton/commit/21761d3d7140bc6936b504b018ae4b16e4c1d146 Author: Matthew Fluet <mat...@gm...> Date: 2019-10-14 (Mon, 14 Oct 2019) Changed paths: M mlton/backend/rssa-tree.fun Log Message: ----------- Destroy `Property` for labels in `RssaTree.Function.{dominatorTree,loopForest}` Commit: 86dd7d40d1e677dc562c968d3943ce613bc0911d https://github.com/MLton/mlton/commit/86dd7d40d1e677dc562c968d3943ce613bc0911d Author: Matthew Fluet <mat...@gm...> Date: 2019-10-14 (Mon, 14 Oct 2019) Changed paths: M runtime/gc/call-stack.c M runtime/gc/call-stack.h M runtime/gc/foreach.c M runtime/gc/foreach.h M runtime/gc/profiling.c M runtime/gc/profiling.h Log Message: ----------- Extend `foreachStackFrame` to pass `frameInfo` and `frameTop` Commit: 8b8ac88ffe6626a36847733ab2a5c211f6a680d8 https://github.com/MLton/mlton/commit/8b8ac88ffe6626a36847733ab2a5c211f6a680d8 Author: Matthew Fluet <mat...@gm...> Date: 2019-10-14 (Mon, 14 Oct 2019) Changed paths: M runtime/gc/dfs-mark.c M runtime/gc/dfs-mark.h M runtime/gc/gc_state.h M runtime/gc/mark-compact.c M runtime/gc/share.c M runtime/gc/size.c Log Message: ----------- Refactor `dfsMark` to take a `GC_markState` parameter Along with the refactoring of `foreachObjptr` to use closures, this eliminates the need for a global `struct GC_markState markState` to communicate parameters to `dfsMark`. This avoid the need for special-purpose functions that call `dfsMarkByMode` with particular arguments. Commit: 0ff4011b28b409edd69d7da9b3ed532e3467f106 https://github.com/MLton/mlton/commit/0ff4011b28b409edd69d7da9b3ed532e3467f106 Author: Matthew Fluet <mat...@gm...> Date: 2019-10-15 (Tue, 15 Oct 2019) Changed paths: M runtime/gc/call-stack.c M runtime/gc/call-stack.h Log Message: ----------- Simplify `GC_numStackFrames` Commit: 2c8873063a43667c05f039c928a7309e0976481f https://github.com/MLton/mlton/commit/2c8873063a43667c05f039c928a7309e0976481f Author: Matthew Fluet <mat...@gm...> Date: 2019-10-15 (Tue, 15 Oct 2019) Changed paths: M runtime/gc/call-stack.c M runtime/gc/call-stack.h Log Message: ----------- Tweak `struct GC_callStackState` for `GC_callStack` Commit: 85148aaa64cac207c12459faedbb7ad456060a3d https://github.com/MLton/mlton/commit/85148aaa64cac207c12459faedbb7ad456060a3d Author: Matthew Fluet <mat...@gm...> Date: 2019-10-15 (Tue, 15 Oct 2019) Changed paths: M lib/mlton/basic/hash-set.sig M lib/mlton/basic/hash-set.sml M mlton/atoms/hash-type.fun M mlton/atoms/hash-type.sig M mlton/backend/ssa2-to-rssa.fun M mlton/closure-convert/closure-convert.fun M mlton/ssa/ssa-to-ssa2.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig Log Message: ----------- Reset table for hash-consing of {{,S}XML,SSA{,2}} types See MLton/mlton#334 After converting from one IR to the next, all global data associated with the previous IR should be dead. However, it is observed that the tables used for hash-consing of types seem to be retained after converting from the corresponding IR. It is unclear whether this is a space-safety bug in the compiler or whether the code structure of the compiler happens to keep those tables live in closures that are reachable (but unused). A draft version of this commit used val table: t HashSet.t option ref = ref (SOME (HashSet.new {hash = hash})) fun lookup (hash, tr) = HashSet.lookup (valOf (!table), hash, ..., ...) fun resetTable () = table := NONE which would have an `Option` exception if the table were actually used after it was reset; no such exception was observed in a self-compile. Commit: ee85ae382bba3fa0fb289531bfec55e5346529b1 https://github.com/MLton/mlton/commit/ee85ae382bba3fa0fb289531bfec55e5346529b1 Author: Matthew Fluet <mat...@gm...> Date: 2019-10-15 (Tue, 15 Oct 2019) Changed paths: M mlton/ssa/redundant.fun Log Message: ----------- Reset work-list reference in `Redundant` pass See MLton/mlton#334 Although the `Redundant` pass does not significantly change the SSA program size or SSA types hash table size, there was an increase in live data size, due to the `val todo : Refinement.t list ref` used to initialize the work-list. redundantTests starting redundantTests.post stats ssa program size = 161,653,032 bytes num globals = 19730 num vars in main = 16498 num blocks in main = 8931 num functions in program = 2224 num blocks in program = 274907 num statements in program = 315083 num types in program = 8143 num types in hash table = 166174 types hash table size = 60,607,896 bytes property list numPeeks = 485191925 property list maxLength = 4 property list average position = 0.143 hash set numPeeks = 16776220 hash set average position = 7.383 live data = 222,993,504 bytes redundantTests finished in 2.88 + 0.00 (0% GC) redundant starting redundant.post stats ssa program size = 161,637,832 bytes num globals = 19730 num vars in main = 16498 num blocks in main = 8931 num functions in program = 2224 num blocks in program = 274907 num statements in program = 315083 num types in program = 8143 num types in hash table = 166174 types hash table size = 60,607,896 bytes property list numPeeks = 489730576 property list maxLength = 4 property list average position = 0.144 hash set numPeeks = 16776220 hash set average position = 7.383 live data = 241,562,088 bytes redundant finished in 3.14 + 0.00 (0% GC) This would be a correctness bug if the `Redundant` pass were executed multiple times, because the `todo` list would grow with each execution. Commit: 2b7a560ffdd20ec4db23360b5543df92269ea37d https://github.com/MLton/mlton/commit/2b7a560ffdd20ec4db23360b5543df92269ea37d Author: Matthew Fluet <mat...@gm...> Date: 2019-10-16 (Wed, 16 Oct 2019) Changed paths: M mlton/backend/packed-representation.fun M mlton/backend/representation.sig M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Clear/Destroy properties used by `PackedRepresentation` See MLton/mlton#334 Prior to this commit, a self-compile exhibits: toRssa starting toRssa.post stats rssa program size = 386,962,520 bytes num functions in program = 2226 num blocks in program = 612244 num statements in program = 968472 num object types in program = 14906 property list numPeeks = 634609194 property list maxLength = 4 property list average position = 0.146 hash set numPeeks = 22115585 hash set average position = 6.302 live data = 408,692,624 bytes toRssa finished in 2.36 + 0.31 (12% GC) rssaSimplify starting rssaShrink1 starting rssaShrink1.post stats rssa program size = 243,869,480 bytes num functions in program = 2226 num blocks in program = 315219 num statements in program = 691949 num object types in program = 14906 property list numPeeks = 642833459 property list maxLength = 4 property list average position = 0.148 hash set numPeeks = 22115585 hash set average position = 6.302 live data = 265,777,584 bytes rssaShrink1 finished in 2.20 + 0.00 (0% GC) ... rssaSimplify.post stats rssa program size = 331,162,064 bytes num functions in program = 2226 num blocks in program = 436046 num statements in program = 833391 num object types in program = 14906 property list numPeeks = 706614833 property list maxLength = 4 property list average position = 0.165 hash set numPeeks = 22562271 hash set average position = 6.197 live data = 353,484,800 bytes rssaSimplify finished in 17.73 + 0.90 (5% GC) backend starting backend.post stats machine program size = 753,229,520 bytes num chunks in program = 2226 num blocks in program = 438272 num statements in program = 1487072 num object types in program = 14906 property list numPeeks = 759893641 property list maxLength = 4 property list average position = 0.172 hash set numPeeks = 22686397 hash set average position = 6.167 live data = 774,617,720 bytes backend finished in 10.92 + 1.76 (14% GC) machineSimplify starting machineShuffle skipped machineSimplify.post stats machine program size = 753,229,520 bytes num chunks in program = 2226 num blocks in program = 438272 num statements in program = 1487072 num object types in program = 14906 property list numPeeks = 759893641 property list maxLength = 4 property list average position = 0.172 hash set numPeeks = 22686397 hash set average position = 6.167 live data = 774,616,888 bytes machineSimplify finished in 2.67 + 0.00 (0% GC) where the live data at `toRssa.post` is approximately 22Mb larger than the rssa program size, which persists through the rest of the compilation. Now, a self-compile exhibits: toRssa starting toRssa.post stats rssa program size = 386,995,416 bytes num functions in program = 2226 num blocks in program = 612276 num statements in program = 968563 num object types in program = 14909 property list numPeeks = 634648330 property list maxLength = 4 property list average position = 0.146 hash set numPeeks = 22117807 hash set average position = 6.249 live data = 388,136,000 bytes toRssa finished in 2.35 + 0.32 (12% GC) rssaSimplify starting rssaShrink1 starting rssaShrink1.post stats rssa program size = 243,897,056 bytes num functions in program = 2226 num blocks in program = 315234 num statements in program = 692020 num object types in program = 14909 property list numPeeks = 642873098 property list maxLength = 4 property list average position = 0.148 hash set numPeeks = 22117807 hash set average position = 6.249 live data = 245,037,584 bytes rssaShrink1 finished in 2.18 + 0.00 (0% GC) ... rssaSimplify.post stats rssa program size = 331,193,616 bytes num functions in program = 2226 num blocks in program = 436067 num statements in program = 833466 num object types in program = 14909 property list numPeeks = 706661702 property list maxLength = 4 property list average position = 0.165 hash set numPeeks = 22564514 hash set average position = 6.145 live data = 332,750,056 bytes rssaSimplify finished in 17.36 + 0.84 (5% GC) backend starting backend.post stats machine program size = 753,410,904 bytes num chunks in program = 2226 num blocks in program = 438293 num statements in program = 1487168 num object types in program = 14909 property list numPeeks = 759953737 property list maxLength = 4 property list average position = 0.172 hash set numPeeks = 22688644 hash set average position = 6.116 live data = 754,030,232 bytes backend finished in 10.16 + 1.25 (11% GC) machineSimplify starting machineShuffle skipped machineSimplify.post stats machine program size = 753,410,904 bytes num chunks in program = 2226 num blocks in program = 438293 num statements in program = 1487168 num object types in program = 14909 property list numPeeks = 759953737 property list maxLength = 4 property list average position = 0.172 hash set numPeeks = 22688644 hash set average position = 6.116 live data = 754,029,360 bytes machineSimplify finished in 2.66 + 0.00 (0% GC) where the live data at `toRssa.post` is only slightly larger than the rssa program size and the live data at `machineSimplify.post` is only slightly larger than the machine program size. It is possible that this is a space-safety bug in the compiler. Note that after the conversion to RSSA, there are no references to `Ssa2.Tycon.t`, `Ssa2.Con.t`, or `Ssa2.Type.t` in the RSSA IL program. Hence, it shouldn't be necessary to clear these property lists -- the property lists should be unreachable when the SSA2 IL program is unreachable. Moreover, the extraneous live data remains if any one of the `Tycon.clear`, `Con.clear`, or `destroyTypeRep` is omitted. Commit: b9d31150f3d5969e172ad813790dc85ba7eb9798 https://github.com/MLton/mlton/commit/b9d31150f3d5969e172ad813790dc85ba7eb9798 Author: Matthew Fluet <Mat...@gm...> Date: 2019-10-25 (Fri, 25 Oct 2019) Changed paths: M Makefile M Makefile.config M basis-library/mlton/mlton.sig M basis-library/mlton/mlton.sml M basis-library/primitive/prim-mlton.sml M doc/examples/size/size.sml M doc/guide/src/MLtonStructure.adoc M lib/mlton/basic/hash-set.sig M lib/mlton/basic/hash-set.sml M lib/stubs/mlton-stubs-for-polyml/mlton.sml M lib/stubs/mlton-stubs-for-smlnj/mlton.sml M lib/stubs/mlton-stubs/mlton.sig M lib/stubs/mlton-stubs/mlton.sml M mlton/Makefile M mlton/atoms/cases.fun M mlton/atoms/cases.sig M mlton/atoms/con-.fun M mlton/atoms/hash-type.fun M mlton/atoms/hash-type.sig M mlton/atoms/tycon.fun M mlton/backend/bounce-vars.fun M mlton/backend/packed-representation.fun M mlton/backend/representation.sig M mlton/backend/rssa-live.fun M mlton/backend/rssa-live.sig M mlton/backend/rssa-restore.fun M mlton/backend/rssa-restore.sig A mlton/backend/rssa-shrink.fun A mlton/backend/rssa-shrink.sig M mlton/backend/rssa-simplify.fun M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig A mlton/backend/rssa-type-check.fun A mlton/backend/rssa-type-check.sig M mlton/backend/rssa.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb M mlton/backend/ssa2-to-rssa.fun M mlton/closure-convert/closure-convert.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/control/control.sml M mlton/core-ml/core-ml.fun M mlton/core-ml/core-ml.sig M mlton/elaborate/elaborate-env.fun M mlton/main/compile.fun M mlton/main/main.fun M mlton/ssa/profile.fun M mlton/ssa/profile2.fun M mlton/ssa/redundant.fun M mlton/ssa/restore.fun M mlton/ssa/restore2.fun M mlton/ssa/shrink.fun M mlton/ssa/shrink2.fun M mlton/ssa/simplify2.fun M mlton/ssa/ssa-to-ssa2.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig M mlton/xml/polyvariance.fun M mlton/xml/shrink.fun M mlton/xml/xml-tree.fun M mlton/xml/xml-tree.sig M regression/mlton.share.sml M regression/size.sml M regression/thread-switch-size.sml M runtime/gc/call-stack.c M runtime/gc/call-stack.h M runtime/gc/cheney-copy.c M runtime/gc/dfs-mark.c M runtime/gc/dfs-mark.h M runtime/gc/foreach.c M runtime/gc/foreach.h M runtime/gc/forward.c M runtime/gc/forward.h M runtime/gc/gc_state.h M runtime/gc/init.c M runtime/gc/invariant.c M runtime/gc/invariant.h M runtime/gc/mark-compact.c M runtime/gc/mark-compact.h M runtime/gc/profiling.c M runtime/gc/profiling.h M runtime/gc/share.c M runtime/gc/size.c M runtime/gc/size.h M runtime/gc/translate.c M runtime/gc/translate.h Log Message: ----------- Merge pull request #335 from MatthewFluet/mlton-space-leak Fix excessive live data during self-compile Closes MLton/mlton#334. It was observed that self-compiles have recently had significantly larger `max bytes live` on the second round of compilation (using the just built compiler) than on the first round (using an "old" `mlton`). Further investigation revealed that the size of live data during a self-compile typically exceeded the size of the IR program. This PR "fixes" those space leaks, although it is not clear whether or not any of them corresponds to space-safety bugs in the compiler proper. Highlights: * fd0d28fd8: Change `MLton.size`'s type to `'a -> IntInf.int` * 541989f0b: Add `MLton.sizeAll: unit -> IntInf.int` * b83e6df0e: Report `live data = ??? bytes` at `-verbose 3` * 41e2a29cd, a5e349db7, f585511f4, ddfbf6152: Better "cleanup" of handlers introduced by profiling; not directly related to the space issues, but observed during investigation. * 01b87480a, d39e63e8a: Disable `Zone` SSA optimization pass. When self-compiling with `Zone` enabled, the resulting compiler (when self-compiling) has over 2GB live data at the end of `amd64Codegen`. However, the should be very little live data at the end of `amd64Codegen`, because the IR program is no longer live. The `Zone` pass is known to not be safe-for-space. The `Zone` pass only transforms SSA2 functions with over 10000 blocks. MLton's `main` SSA2 function only recently crossed the threshold that results in the `Zone` pass transforming the `main` SSA2 function, which is why this space leak only recently became a problem. * 6009c5e57, 4fd9d2856, 3da3bcdfa, 6bac20e9a: Perform per-function shrinking in `BounceVars` * c9c85e6eb: Destroy `Property` for variables in `RssaLive`; this addresses an issue where the during `bounceVars`, the `property list maxLength` jumped from 4 to 761 during `bounceVars` on a self-compile. * 85148aaa6: Reset table for hash-consing of {{,S}XML,SSA{,2}} types After converting from one IR to the next, all global data associated with the previous IR should be dead. However, it is observed that the tables used for hash-consing of types seem to be retained after converting from the corresponding IR. It is unclear whether this is a space-safety bug in the compiler or whether the code structure of the compiler happens to keep those tables live in closures that are reachable (but unused). * ee85ae382: Reset work-list reference in `Redundant` pass * 2b7a560ff: Clear/Destroy properties used by `PackedRepresentation` It is possible that this is a space-safety bug in the compiler. Note that after the conversion to RSSA, there are no references to `Ssa2.Tycon.t`, `Ssa2.Con.t`, or `Ssa2.Type.t` in the RSSA IL program. Hence, it shouldn't be necessary to clear these property lists -- the property lists should be unreachable when the SSA2 IL program is unreachable. Moreover, the extraneous live data remains if any one of the `Tycon.clear`, `Con.clear`, or `destroyTypeRep` is omitted. As noted above, 85148aaa6 and 2b7a560ff explicitly make data unreachable in order to reduce the live data. However, in both of these cases, it seems that the data being made unreachable should not actually be reachable --- it is data corresponding to the previous IR that should no longer be live. Here are detailed logs (reporting `live data = ??? bytes` at `-verbose 3` for a self-compile, comparing the space behavior before and after the fixes. Note that `max bytes live` goes from `3,059,306,552 bytes` to `998,351,352 bytes` with a corresponding decrease in `max heap size`. ## Before ``` text MLton 20190924.180253-g967845479 starting control flags: align: 8 atMLtons: (@MLton, --) bounceRssaLimit: Some 8 bounceRssaLiveCutoff: Some 12 bounceRssaLoopCutoff: Some 40 bounceRssaUsageCutoff: Some 15 chunkBatch: 32768 chunkify: per function chunkTailCall: true closureConvertGlobalize: true closureConvertShrink: true codegen: amd64 contifyIntoMain: false debug: false defaultChar: char8 defaultWideChar: widechar32 defaultInt: int32 defaultReal: real64 defaultWord: word32 diag passes: [] execute passes: [] elaborate allowConstant (default): false elaborate allowConstant (enabled): true elaborate allowFFI (default): false elaborate allowFFI (enabled): true elaborate allowPrim (default): false elaborate allowPrim (enabled): true elaborate allowOverload (default): false elaborate allowOverload (enabled): true elaborate allowRedefineSpecialIds (default): false elaborate allowRedefineSpecialIds (enabled): true elaborate allowSpecifySpecialIds (default): false elaborate allowSpecifySpecialIds (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 nonexhaustiveBind (default): warn elaborate nonexhaustiveBind (enabled): true elaborate nonexhaustiveExnBind (default): default elaborate nonexhaustiveExnBind (enabled): true elaborate redundantBind (default): warn elaborate redundantBind (enabled): true elaborate nonexhaustiveMatch (default): warn elaborate nonexhaustiveMatch (enabled): true elaborate nonexhaustiveExnMatch (default): default elaborate nonexhaustiveExnMatch (enabled): true elaborate redundantMatch (default): warn elaborate redundantMatch (enabled): true elaborate nonexhaustiveRaise (default): ignore elaborate nonexhaustiveRaise (enabled): true elaborate nonexhaustiveExnRaise (default): ignore elaborate nonexhaustiveExnRaise (enabled): true elaborate redundantRaise (default): warn elaborate redundantRaise (enabled): true elaborate resolveScope (default): strdec elaborate resolveScope (enabled): true elaborate sequenceNonUnit (default): ignore elaborate sequenceNonUnit (enabled): true elaborate valrecConstr (default): warn elaborate valrecConstr (enabled): true elaborate warnUnused (default): false elaborate warnUnused (enabled): true elaborate allowDoDecls (default): false elaborate allowDoDecls (enabled): true elaborate allowExtendedNumConsts (default): false elaborate allowExtendedNumConsts (enabled): true elaborate allowExtendedTextConsts (default): false elaborate allowExtendedTextConsts (enabled): true elaborate allowLineComments (default): false elaborate allowLineComments (enabled): true elaborate allowOptBar (default): false elaborate allowOptBar (enabled): true elaborate allowOptSemicolon (default): false elaborate allowOptSemicolon (enabled): true elaborate allowOrPats (default): false elaborate allowOrPats (enabled): true elaborate allowRecordPunExps (default): false elaborate allowRecordPunExps (enabled): true elaborate allowSigWithtype (default): false elaborate allowSigWithtype (enabled): true elaborate allowVectorExps (default): false elaborate allowVectorExps (enabled): true elaborate allowVectorPats (default): false elaborate allowVectorPats (enabled): true emit main: true export header: None exn history: false generated output format: executable gc check: Limit globalize arrays: false globalize refs: true globalize int-inf as small type): true globalize small type: 1 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: mlton keep AST: false 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_: false lib dir: /home/mtf/devel/mlton/builds/gc29256f9c/lib/mlton lib target dir: /home/mtf/devel/mlton/builds/gc29256f9c/lib/mlton/targets/self llvmTBAA: none loop unrolling limit: 150 loop unswitching limit: 300 mark cards: true max function size: 10000 mlb path vars: [{var = SML_LIB, path = $(LIB_MLTON_DIR)/sml}] native commented: 0 elim AL redundant: true 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 optFuel: None 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 basis compact: false show basis def: true show basis flat: true show def-use: None show types: true staticAllocInternalPtrs: Static staticInitArrays: true staticAllocArrays: true staticInitObjects: Some false staticAllocObjects: true staticAllocWordVectorConsts: true bool type splitting method: smart stop passes: [] target: self target arch: AMD64 target OS: Linux type check: false verbosity: Detail warn unrecognized annotation: true warn deprecated features: true zone cut depth: 100 Compile SML starting frontend starting parseAndElaborate starting processDefUse starting processDefUse finished in 0.45 + 0.00 (0% GC) parseAndElaborate.post stats coreML program size = 519,142,624 bytes property list numPeeks = 78481004 property list maxLength = 3 property list average position = 0.256 hash set numPeeks = 511431 hash set average position = 1.033 live data = 527,419,640 bytes parseAndElaborate finished in 19.65 + 6.14 (24% GC) deadCode starting deadCode.post stats coreML program size = 479,246,704 bytes property list numPeeks = 78862914 property list maxLength = 3 property list average position = 0.256 hash set numPeeks = 511431 hash set average position = 1.033 live data = 488,109,056 bytes deadCode finished in 3.38 + 0.00 (0% GC) defunctorize starting defunctorize.post stats xml program size = 254,316,832 bytes num primexps in program = 476517 num types in program = 685834 num types in hash table = 700513 types hash table size = 142,166,456 bytes property list numPeeks = 85840813 property list maxLength = 4 property list average position = 0.276 hash set numPeeks = 1408027 hash set average position = 0.603 live data = 328,824,528 bytes defunctorize finished in 4.56 + 0.00 (0% GC) frontend.post stats xml program size = 254,316,832 bytes num primexps in program = 476517 num types in program = 685834 num types in hash table = 700513 types hash table size = 142,166,456 bytes property list numPeeks = 87454737 property list maxLength = 4 property list average position = 0.271 hash set numPeeks = 1408027 hash set average position = 0.603 live data = 328,824,528 bytes frontend finished in 30.25 + 6.14 (17% GC) xmlSimplify starting xmlTypeCheck starting xmlTypeCheck finished in 0.96 + 1.10 (54% GC) xmlShrink starting xmlShrink.post stats xml program size = 192,995,408 bytes num primexps in program = 271827 num types in program = 671817 num types in hash table = 703601 types hash table size = 132,697,384 bytes property list numPeeks = 101885130 property list maxLength = 4 property list average position = 0.235 hash set numPeeks = 2444526 hash set average position = 0.802 live data = 295,262,472 bytes xmlShrink finished in 3.29 + 0.02 (0% GC) xmlSimplifyTypes starting xmlSimplifyTypes.post stats xml program size = 275,049,312 bytes num primexps in program = 271827 num types in program = 671779 num types in hash table = 703620 types hash table size = 198,215,416 bytes property list numPeeks = 106509415 property list maxLength = 4 property list average position = 0.237 hash set numPeeks = 3116322 hash set average position = 0.862 live data = 377,330,416 bytes xmlSimplifyTypes finished in 4.06 + 0.00 (0% GC) xmlTypeCheck starting xmlTypeCheck finished in 1.00 + 0.00 (0% GC) xmlSimplify.post stats xml program size = 249,701,320 bytes num primexps in program = 271827 num types in program = 671779 num types in hash table = 703631 types hash table size = 186,448,664 bytes property list numPeeks = 113600658 property list maxLength = 4 property list average position = 0.260 hash set numPeeks = 4080737 hash set average position = 0.913 live data = 351,983,928 bytes xmlSimplify finished in 12.52 + 1.12 (8% GC) monomorphise starting monomorphise.post stats sxml program size = 214,148,096 bytes num primexps in program = 801910 num types in program = 100833 num types in hash table = 803270 types hash table size = 200,715,848 bytes property list numPeeks = 125694968 property list maxLength = 4 property list average position = 0.264 hash set numPeeks = 7266759 hash set average position = 0.933 live data = 415,856,256 bytes monomorphise finished in 3.99 + 0.72 (15% GC) sxmlSimplify starting sxmlTypeCheck starting sxmlTypeCheck finished in 0.64 + 0.00 (0% GC) sxmlShrink1 starting sxmlShrink1.post stats sxml program size = 142,749,176 bytes num primexps in program = 553515 num types in program = 40094 num types in hash table = 809212 types hash table size = 201,523,960 bytes property list numPeeks = 142336741 property list maxLength = 4 property list average position = 0.240 hash set numPeeks = 7553198 hash set average position = 0.936 live data = 366,601,664 bytes sxmlShrink1 finished in 3.82 + 0.00 (0% GC) implementSuffix starting implementSuffix.post stats sxml program size = 142,751,760 bytes num primexps in program = 553522 num types in program = 40094 num types in hash table = 809212 types hash table size = 201,523,960 bytes property list numPeeks = 143068056 property list maxLength = 4 property list average position = 0.239 hash set numPeeks = 7553203 hash set average position = 0.936 live data = 366,604,248 bytes implementSuffix finished in 2.72 + 0.00 (0% GC) sxmlShrink2 starting sxmlShrink2.post stats sxml program size = 139,296,624 bytes num primexps in program = 539297 num types in program = 38492 num types in hash table = 809212 types hash table size = 201,523,960 bytes property list numPeeks = 150790231 property list maxLength = 4 property list average position = 0.228 hash set numPeeks = 7553203 hash set average position = 0.936 live data = 363,327,848 bytes sxmlShrink2 finished in 3.56 + 0.00 (0% GC) implementExceptions starting implementExceptions.post stats sxml program size = 145,614,320 bytes num primexps in program = 567836 num types in program = 39074 num types in hash table = 809780 types hash table size = 201,601,200 bytes property list numPeeks = 151659372 property list maxLength = 4 property list average position = 0.226 hash set numPeeks = 7561943 hash set average position = 0.936 live data = 369,657,656 bytes implementExceptions finished in 2.86 + 0.00 (0% GC) sxmlShrink3 starting sxmlShrink3.post stats sxml program size = 143,516,192 bytes num primexps in program = 557350 num types in program = 39055 num types in hash table = 809780 types hash table size = 201,601,200 bytes property list numPeeks = 159592801 property list maxLength = 4 property list average position = 0.215 hash set numPeeks = 7561943 hash set average position = 0.936 live data = 361,376,872 bytes sxmlShrink3 finished in 3.68 + 0.67 (15% GC) polyvariance starting duplicate1 starting duplicate1.post stats sxml program size = 161,106,840 bytes num primexps in program = 641544 num types in program = 32076 num types in hash table = 809780 types hash table size = 201,601,040 bytes property list numPeeks = 176797895 property list maxLength = 4 property list average position = 0.196 hash set numPeeks = 7561943 hash set average position = 0.936 live data = 379,815,024 bytes duplicate1 finished in 4.08 + 0.00 (0% GC) duplicate2 starting duplicate2.post stats sxml program size = 161,002,288 bytes num primexps in program = 641073 num types in program = 32000 num types in hash table = 809780 types hash table size = 201,601,040 bytes property list numPeeks = 188874665 property list maxLength = 4 property list average position = 0.184 hash set numPeeks = 7561943 hash set average position = 0.936 live data = 379,720,240 bytes duplicate2 finished in 3.71 + 0.00 (0% GC) polyvariance.post stats sxml program size = 161,002,288 bytes num primexps in program = 641073 num types in program = 32000 num types in hash table = 809780 types hash table size = 201,601,040 bytes property list numPeeks = 189683382 property list maxLength = 4 property list average position = 0.183 hash set numPeeks = 7561943 hash set average position = 0.936 live data = 379,720,200 bytes polyvariance finished in 10.31 + 0.00 (0% GC) sxmlShrink4 starting sxmlShrink4.post stats sxml program size = 161,002,288 bytes num primexps in program = 641073 num types in program = 32000 num types in hash table = 809780 types hash table size = 201,601,040 bytes property list numPeeks = 198671271 property list maxLength = 4 property list average position = 0.175 hash set numPeeks = 7561943 hash set average position = 0.936 live data = 379,965,960 bytes sxmlShrink4 finished in 3.69 + 0.64 (15% GC) sxmlTypeCheck starting sxmlTypeCheck finished in 0.49 + 0.00 (0% GC) sxmlSimplify.post stats sxml program size = 161,002,288 bytes num primexps in program = 641073 num types in program = 32000 num types in hash table = 810061 types hash table size = 201,639,256 bytes property list numPeeks = 203146260 property list maxLength = 4 property list average position = 0.174 hash set numPeeks = 7801466 hash set average position = 0.938 live data = 380,004,176 bytes sxmlSimplify finished in 34.38 + 1.31 (4% GC) closureConvert starting flow analysis starting flow analysis finished in 0.86 + 0.00 (0% GC) free variables starting free variables finished in 0.26 + 0.00 (0% GC) globalize starting globalize finished in 0.15 + 0.00 (0% GC) convert starting convert finished in 2.06 + 2.12 (51% GC) closureConvert.post stats ssa program size = 301,602,112 bytes num globals = 157190 num vars in main = 18077 num blocks in main = 7845 num functions in program = 37899 num blocks in program = 510249 num statements in program = 535295 num types in program = 39058 num types in hash table = 76397 types hash table size = 17,019,128 bytes property list numPeeks = 225484795 property list maxLength = 4 property list average position = 0.159 hash set numPeeks = 8003794 hash set average position = 0.932 live data = 855,724,864 bytes closureConvert finished in 6.91 + 2.12 (24% GC) ssaSimplify starting ssaTypeCheck starting checkScopes starting checkScopes finished in 0.77 + 0.00 (0% GC) ssaTypeCheck finished in 1.35 + 0.00 (0% GC) removeUnused1 starting removeUnused1.post stats ssa program size = 229,797,016 bytes num globals = 114691 num vars in main = 14818 num blocks in main = 5242 num functions in program = 35922 num blocks in program = 377139 num statements in program = 468174 num types in program = 35698 num types in hash table = 77893 types hash table size = 29,837,224 bytes prop... [truncated message content] |
From: Matthew F. <no...@gi...> - 2019-09-20 16:24:37
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 2343d9acbdcb12d99d4ae1e1f2d16afd381944d2 https://github.com/MLton/mlton/commit/2343d9acbdcb12d99d4ae1e1f2d16afd381944d2 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-19 (Thu, 19 Sep 2019) Changed paths: M .travis.yml Log Message: ----------- Use `osx_image: xcode11` for Travis CI Older `osx_image`s have an outdated Homebrew. Commit: cf172cae355af4e1beb2b820605c9ab9683c0c46 https://github.com/MLton/mlton/commit/cf172cae355af4e1beb2b820605c9ab9683c0c46 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-19 (Thu, 19 Sep 2019) Changed paths: M .travis.yml Log Message: ----------- Use Ubuntu Bionic (18.04) for Travis CI Commit: 800a91a25e2811410c98f59f217559c67cd18ef5 https://github.com/MLton/mlton/commit/800a91a25e2811410c98f59f217559c67cd18ef5 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-19 (Thu, 19 Sep 2019) Changed paths: M .travis.yml Log Message: ----------- Move `dist: bionic` and `osx_image: xcode11` entries Commit: 530e010a18925129584968950e058a202846b054 https://github.com/MLton/mlton/commit/530e010a18925129584968950e058a202846b054 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-19 (Thu, 19 Sep 2019) Changed paths: M .travis.yml Log Message: ----------- Use `language: minimal` for Travis CI Commit: e97e380a63064a296f120dc67ddf24c2b47a47c9 https://github.com/MLton/mlton/commit/e97e380a63064a296f120dc67ddf24c2b47a47c9 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-20 (Fri, 20 Sep 2019) Changed paths: M mlton/Makefile Log Message: ----------- Give `*_XARGS` precedence over `_ARGS` in `mlton/Makefile` Commit: db6e11b26902b1aa0cd53addecbd3fb74f1492b5 https://github.com/MLton/mlton/commit/db6e11b26902b1aa0cd53addecbd3fb74f1492b5 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-20 (Fri, 20 Sep 2019) Changed paths: M bin/travis-ci Log Message: ----------- Use more RAM for self-compiles for Travis CI Commit: 2a5a5fde5b792239c5bd49cc21159d02c5643ac9 https://github.com/MLton/mlton/commit/2a5a5fde5b792239c5bd49cc21159d02c5643ac9 Author: Matthew Fluet <Mat...@gm...> Date: 2019-09-20 (Fri, 20 Sep 2019) Changed paths: M .travis.yml M bin/travis-ci M mlton/Makefile Log Message: ----------- Merge pull request #333 from MatthewFluet/travis-ci-updates Travis CI updates Compare: https://github.com/MLton/mlton/compare/57c9c94d419d...2a5a5fde5b79 |
From: Matthew F. <no...@gi...> - 2019-09-20 02:23:13
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 61de3a4faf3f04f059ff54324cbb606891a68788 https://github.com/MLton/mlton/commit/61de3a4faf3f04f059ff54324cbb606891a68788 Author: Jason Carr <jca...@gm...> Date: 2019-07-03 (Wed, 03 Jul 2019) Changed paths: M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/sources.mlb A mlton/backend/static.fun A mlton/backend/static.sig Log Message: ----------- Add Static structure Commit: e4017ec4758108c3518e5f8c87a243b8f82c5fd3 https://github.com/MLton/mlton/commit/e4017ec4758108c3518e5f8c87a243b8f82c5fd3 Author: Jason Carr <jca...@gm...> Date: 2019-07-03 (Wed, 03 Jul 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/rssa-tree.sig M mlton/backend/sources.cm M mlton/backend/ssa2-to-rssa.fun M mlton/codegen/amd64-codegen/amd64-codegen.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/x86-codegen/x86-codegen.fun Log Message: ----------- Use statics in Machine Commit: 318d16b19009e09806002cc6f16622f0edd9044b https://github.com/MLton/mlton/commit/318d16b19009e09806002cc6f16622f0edd9044b Author: Jason Carr <jca...@gm...> Date: 2019-07-08 (Mon, 08 Jul 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Optional global for statics, reorder reals/statics to (data, global [option]) Commit: 063fe520b40e3cf2a4b709e8bd982a3677777201 https://github.com/MLton/mlton/commit/063fe520b40e3cf2a4b709e8bd982a3677777201 Author: Jason Carr <jca...@gm...> Date: 2019-07-08 (Mon, 08 Jul 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig M mlton/backend/static.fun M mlton/backend/static.sig Log Message: ----------- Add statics to rssa Commit: 04f5a1981666c47da40721a1997796ce3f6d62d3 https://github.com/MLton/mlton/commit/04f5a1981666c47da40721a1997796ce3f6d62d3 Author: Jason Carr <jca...@gm...> Date: 2019-07-16 (Tue, 16 Jul 2019) Changed paths: M mlton/atoms/word-x-vector.fun M mlton/atoms/word-x-vector.sig M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/rssa-tree.fun M mlton/backend/static.fun M mlton/backend/static.sig M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Add enough static support to recreate vector initialization This will be inconsistent with objects since VectorInitElem has not been changed so header support is not yet present Commit: 76c35a44df8ddfc6fddd93031bcbc46094f93a5a https://github.com/MLton/mlton/commit/76c35a44df8ddfc6fddd93031bcbc46094f93a5a Author: Jason Carr <jca...@gm...> Date: 2019-07-16 (Tue, 16 Jul 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Small cleanups on c-codegen for static changes Commit: 27734becf216af0382a9634b3eb25a89d56126eb https://github.com/MLton/mlton/commit/27734becf216af0382a9634b3eb25a89d56126eb Author: Jason Carr <jca...@gm...> Date: 2019-07-16 (Tue, 16 Jul 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Remove macro-indirection on vector inits and rename The macro indirection is a bit out of place next to the other initializations via vectors Commit: 5e1837e45015e39c5e7196d423bf925c389a0d40 https://github.com/MLton/mlton/commit/5e1837e45015e39c5e7196d423bf925c389a0d40 Author: Jason Carr <jca...@gm...> Date: 2019-07-16 (Tue, 16 Jul 2019) Changed paths: M mlton/backend/backend-atoms.fun M mlton/backend/backend-atoms.sig M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig M mlton/backend/sources.mlb M mlton/backend/static.fun M mlton/backend/static.sig M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Move Static to BackendAtoms, make Static.t polymorphic instead of functorial over the index Commit: 3c63f0eb46fdb181cc26fd85e762e0da1923f438 https://github.com/MLton/mlton/commit/3c63f0eb46fdb181cc26fd85e762e0da1923f438 Author: Jason Carr <jca...@gm...> Date: 2019-07-18 (Thu, 18 Jul 2019) Changed paths: M include/c-chunk.h M mlton/backend/backend-atoms.sig M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Add statics support to backend, Machine.Operand.Static operand No support yet in codegens. No support for accessing via a global except for heap objects (which are copied) because that requires extra support in c decls to assign the global Used M as the signifier because S, T, C, and X are taken; it could be taken to mean Memory or syMbol Commit: 5625df3802234fd940c27fbe1f81cf80af1d5f16 https://github.com/MLton/mlton/commit/5625df3802234fd940c27fbe1f81cf80af1d5f16 Author: Jason Carr <jca...@gm...> Date: 2019-07-18 (Thu, 18 Jul 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/limit-check.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Machine.Operand.isLocation -> isDestination, fix odd backend behaviour Backend doesn't generate Binds for destinations that were turned into constants. As it happens, idempotency for existing constants turned any such binds to self-moves, which although were ill-typed (e.g. it could in theory include a move from the constant 3 into itself), were eliminated to Noops by the move function isLocation conflated two meanings: the ability to point to something, and the ability to be a destination for moves. Statics are constant pointers, and such are only in the latter class. The former is not needed, and can be recovered from the type Commit: 2e24412dcb4bd41a1177075c6fedbc12ac508631 https://github.com/MLton/mlton/commit/2e24412dcb4bd41a1177075c6fedbc12ac508631 Author: Jason Carr <jca...@gm...> Date: 2019-07-18 (Thu, 18 Jul 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Add static support in the C codegen Commit: 035d556572db596e97b1885a51595e610f230a10 https://github.com/MLton/mlton/commit/035d556572db596e97b1885a51595e610f230a10 Author: Jason Carr <jca...@gm...> Date: 2019-07-18 (Thu, 18 Jul 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Correctly offset static accesses in C codegen by header size Commit: 7a52cb38b618ad4228f2cbf5758a5340edf40188 https://github.com/MLton/mlton/commit/7a52cb38b618ad4228f2cbf5758a5340edf40188 Author: Jason Carr <jca...@gm...> Date: 2019-07-21 (Sun, 21 Jul 2019) Changed paths: M mlton/backend/packed-representation.fun M mlton/backend/representation.sig M mlton/backend/ssa2-to-rssa.fun M mlton/backend/static.sig Log Message: ----------- Add static construction to PackedRepresentation, allow non-pointer-sized words in Static.Data This will require codegen changes which are not present, as the non-pointer-sized words require a different structure layout (packed with several fields) ssa2-to-rssa does not take advantage of these changes in this patch Commit: b98ebc45cb46bf7eefc67ade8085f1f7036d040b https://github.com/MLton/mlton/commit/b98ebc45cb46bf7eefc67ade8085f1f7036d040b Author: Jason Carr <jca...@gm...> Date: 2019-07-21 (Sun, 21 Jul 2019) Changed paths: M mlton/backend/packed-representation.fun M mlton/backend/representation.sig M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Add preliminary Static creation to ssa2-to-rssa With the previous changes to statics, this isn't quite supported in any codegen yet as it requires the more complicated struct types. Commit: ff52fae7ab21fb0ede9e807970d0d30167972103 https://github.com/MLton/mlton/commit/ff52fae7ab21fb0ede9e807970d0d30167972103 Author: Jason Carr <jca...@gm...> Date: 2019-07-21 (Sun, 21 Jul 2019) Changed paths: M mlton/backend/machine.fun M mlton/backend/rssa-tree.fun M mlton/backend/static.fun Log Message: ----------- Improve layout of statics in rssa/machine Commit: 8be3094d747adf138e267cfad5ccef7fcdbaf480 https://github.com/MLton/mlton/commit/8be3094d747adf138e267cfad5ccef7fcdbaf480 Author: Jason Carr <jca...@gm...> Date: 2019-07-21 (Sun, 21 Jul 2019) Changed paths: M mlton/backend/packed-representation.fun Log Message: ----------- Pad Static.Object components from PackedRepresentation to prim Commit: f4a3b3d1db7714cfe2e3b8d8686f46e0670ad80f https://github.com/MLton/mlton/commit/f4a3b3d1db7714cfe2e3b8d8686f46e0670ad80f Author: Jason Carr <jca...@gm...> Date: 2019-07-22 (Mon, 22 Jul 2019) Changed paths: M mlton/backend/packed-representation.fun M mlton/backend/representation.sig M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Return any elem from PackedRepresentation, not just word Commit: a103b66bc5e8c4c686cc33f13c4c1bcc375e616c https://github.com/MLton/mlton/commit/a103b66bc5e8c4c686cc33f13c4c1bcc375e616c Author: Jason Carr <jca...@gm...> Date: 2019-07-22 (Mon, 22 Jul 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Fix order of statics in backend Commit: 46cfaa89a9740105f94412de9f2677f530f6a3b1 https://github.com/MLton/mlton/commit/46cfaa89a9740105f94412de9f2677f530f6a3b1 Author: Jason Carr <jca...@gm...> Date: 2019-07-22 (Mon, 22 Jul 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Fix offsets for statics in c codegen Commit: 189c902e284c547aa4550a6f9e5c0a1e1a0007be https://github.com/MLton/mlton/commit/189c902e284c547aa4550a6f9e5c0a1e1a0007be Author: Jason Carr <jca...@gm...> Date: 2019-07-22 (Mon, 22 Jul 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Fix static struct organization in c-codegen Commit: 9f26780f22b7dbda5c5a9293a6f741d68e6297e7 https://github.com/MLton/mlton/commit/9f26780f22b7dbda5c5a9293a6f741d68e6297e7 Author: Jason Carr <jca...@gm...> Date: 2019-07-22 (Mon, 22 Jul 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Fix static macro in c-chunk.h Commit: 463ecb4b75bde7e89da2ed6ab631a72c59d0d08f https://github.com/MLton/mlton/commit/463ecb4b75bde7e89da2ed6ab631a72c59d0d08f Author: Jason Carr <jca...@gm...> Date: 2019-07-22 (Mon, 22 Jul 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Add packed attribute to static structures Commit: 9aebf23cc76fc43c86539e28cc7cc56f746a073c https://github.com/MLton/mlton/commit/9aebf23cc76fc43c86539e28cc7cc56f746a073c Author: Jason Carr <jca...@gm...> Date: 2019-07-22 (Mon, 22 Jul 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Ensure that static offsets are taken after casting to pointer in c codegen Commit: 945d416c1c0a9dd386c05c40e33096783df5ea88 https://github.com/MLton/mlton/commit/945d416c1c0a9dd386c05c40e33096783df5ea88 Author: Jason Carr <jca...@gm...> Date: 2019-07-22 (Mon, 22 Jul 2019) Changed paths: M runtime/gc/invariant.c Log Message: ----------- Remove GC invariant that all object pointers point into heap Commit: 46bf90a1c1e5fe9f2fc3bfb1d8f82c29081b3701 https://github.com/MLton/mlton/commit/46bf90a1c1e5fe9f2fc3bfb1d8f82c29081b3701 Author: Jason Carr <jca...@gm...> Date: 2019-07-22 (Mon, 22 Jul 2019) Changed paths: M runtime/gc/cheney-copy.c M runtime/gc/forward.c M runtime/gc/forward.h Log Message: ----------- Only forward object pointers in heap on major cheney copy Commit: 82f841d09b2c9b64a748030c9318f15940362068 https://github.com/MLton/mlton/commit/82f841d09b2c9b64a748030c9318f15940362068 Author: Jason Carr <jca...@gm...> Date: 2019-07-24 (Wed, 24 Jul 2019) Changed paths: M mlton/backend/backend-atoms.fun M mlton/backend/backend-atoms.sig M mlton/backend/backend.fun M mlton/backend/packed-representation.fun M mlton/backend/static.fun M mlton/backend/static.sig Log Message: ----------- Add object/vector creation helpers in Static Commit: 2be850aee49292c0a7ed06113b2cb1bac033bbce https://github.com/MLton/mlton/commit/2be850aee49292c0a7ed06113b2cb1bac033bbce Author: Jason Carr <jca...@gm...> Date: 2019-07-25 (Thu, 25 Jul 2019) Changed paths: M runtime/gc/translate.c M runtime/gc/translate.h Log Message: ----------- Only translate addresses in the from space for gc translate Commit: ec2a3afa2bba157819fd59171d3e127360b681ea https://github.com/MLton/mlton/commit/ec2a3afa2bba157819fd59171d3e127360b681ea Author: Jason Carr <jca...@gm...> Date: 2019-07-25 (Thu, 25 Jul 2019) Changed paths: M runtime/gc/dfs-mark.c M runtime/gc/heap.h M runtime/gc/heap_predicates.c Log Message: ----------- Only follow pointers into heap in dfs-mark Commit: d43f54de26e00c6db98333068426093e2a45a8fd https://github.com/MLton/mlton/commit/d43f54de26e00c6db98333068426093e2a45a8fd Author: Jason Carr <jca...@gm...> Date: 2019-07-25 (Thu, 25 Jul 2019) Changed paths: M runtime/gc/dfs-mark.c Log Message: ----------- dfs mark returns immediately if root is not in heap Commit: 466e98e0365d62d54029b6bd1505cb4d75555df4 https://github.com/MLton/mlton/commit/466e98e0365d62d54029b6bd1505cb4d75555df4 Author: Jason Carr <jca...@gm...> Date: 2019-07-25 (Thu, 25 Jul 2019) Changed paths: M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Fix typo not allocating static arrays correctly Commit: c6aae5465c11e3eb023d4a004616151c78310730 https://github.com/MLton/mlton/commit/c6aae5465c11e3eb023d4a004616151c78310730 Author: Jason Carr <jca...@gm...> Date: 2019-07-25 (Thu, 25 Jul 2019) Changed paths: M mlton/backend/packed-representation.fun Log Message: ----------- Ensure padding is always present for static objects In particular if a Word32 precedes an Objptr, no padding would have been added. That pointer could even be a Word64 if it is just a tag. Commit: 8d51b9a17e718f5ebd3b0f80362bef46e6aee789 https://github.com/MLton/mlton/commit/8d51b9a17e718f5ebd3b0f80362bef46e6aee789 Author: Jason Carr <jca...@gm...> Date: 2019-07-29 (Mon, 29 Jul 2019) Changed paths: M mlton/backend/packed-representation.fun Log Message: ----------- Correctly pad static tags to the width of the representation, if less than an object pointer Commit: 5c63c1e2faa25d40583bfa47ed9e24f7437ca52e https://github.com/MLton/mlton/commit/5c63c1e2faa25d40583bfa47ed9e24f7437ca52e Author: Jason Carr <jca...@gm...> Date: 2019-07-29 (Mon, 29 Jul 2019) Changed paths: M mlton/backend/packed-representation.fun Log Message: ----------- Also set the width for ShiftAndTag correctly Commit: 893778145b87a19ce473310f23ec3b5ada5f0bbd https://github.com/MLton/mlton/commit/893778145b87a19ce473310f23ec3b5ada5f0bbd Author: Jason Carr <jca...@gm...> Date: 2019-07-30 (Tue, 30 Jul 2019) Changed paths: M mlton/backend/packed-representation.fun Log Message: ----------- Fix WordRep.staticTuple resizing too late Commit: 7a259c922b29b92dd3b6d9fbdd5abee99d0ed991 https://github.com/MLton/mlton/commit/7a259c922b29b92dd3b6d9fbdd5abee99d0ed991 Author: Jason Carr <jca...@gm...> Date: 2019-07-30 (Tue, 30 Jul 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Add offset field to Machine.Operand.Static for easier codegen Reading the statics field to translate the operand would require unnecessary effort for x86/amd64 codegens. Commit: d83a292e2a0e483e3dcae49e9e66efe6e2bdcdd9 https://github.com/MLton/mlton/commit/d83a292e2a0e483e3dcae49e9e66efe6e2bdcdd9 Author: Jason Carr <jca...@gm...> Date: 2019-07-30 (Tue, 30 Jul 2019) Changed paths: M mlton/codegen/amd64-codegen/amd64-mlton-basic.fun M mlton/codegen/amd64-codegen/amd64-mlton-basic.sig M mlton/codegen/amd64-codegen/amd64-translate.fun Log Message: ----------- Add preliminary statics support to amd64 codegen Commit: 4ab8daa585e9b2336ba77aac0e085503b4ae976c https://github.com/MLton/mlton/commit/4ab8daa585e9b2336ba77aac0e085503b4ae976c Author: Jason Carr <jca...@gm...> Date: 2019-08-01 (Thu, 01 Aug 2019) Changed paths: M mlton/codegen/x86-codegen/x86-mlton-basic.fun M mlton/codegen/x86-codegen/x86-mlton-basic.sig M mlton/codegen/x86-codegen/x86-translate.fun Log Message: ----------- Mirror amd64 changes to x86 codegen Commit: 317ea1ced6300b3891af4b0115f0677d17ee7f60 https://github.com/MLton/mlton/commit/317ea1ced6300b3891af4b0115f0677d17ee7f60 Author: Jason Carr <jca...@gm...> Date: 2019-08-01 (Thu, 01 Aug 2019) Changed paths: M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/x86-codegen/x86-translate.fun Log Message: ----------- Use Heap class in native codegens for statics Potential unsoundness since an objptr that looks like it's on the heap to the code might point to a static Commit: 6f9d88d2a0a2b9098e34e3a5ec8318c3c906f872 https://github.com/MLton/mlton/commit/6f9d88d2a0a2b9098e34e3a5ec8318c3c906f872 Author: Jason Carr <jca...@gm...> Date: 2019-08-02 (Fri, 02 Aug 2019) Changed paths: M include/amd64-main.h M include/c-main.h M include/common-main.h M include/x86-main.h M mlton/codegen/c-codegen/c-codegen.fun M runtime/gc/gc_state.h M runtime/gc/init-world.c M runtime/gc/init-world.h Log Message: ----------- Update static initialization for heap objects and empty inits Commit: e4f20303e7075ae204359c8a258355d272e54656 https://github.com/MLton/mlton/commit/e4f20303e7075ae204359c8a258355d272e54656 Author: Jason Carr <jca...@gm...> Date: 2019-08-05 (Mon, 05 Aug 2019) Changed paths: M mlton/backend/packed-representation.fun Log Message: ----------- Fix the shift amount in static ShiftAndTag Commit: 1c5e44fedb61b338c6091f588d21fb3489e92f7e https://github.com/MLton/mlton/commit/1c5e44fedb61b338c6091f588d21fb3489e92f7e Author: Jason Carr <jca...@gm...> Date: 2019-08-05 (Mon, 05 Aug 2019) Changed paths: M runtime/gc/init-world.c Log Message: ----------- Ensure alignment with GC initObjects Commit: 8030aed870feb9748ce570a44da21b4044420e7c https://github.com/MLton/mlton/commit/8030aed870feb9748ce570a44da21b4044420e7c Author: Jason Carr <jca...@gm...> Date: 2019-08-12 (Mon, 12 Aug 2019) Changed paths: M mlton/backend/ssa2-to-rssa.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add some flags to control how static allocation occurs Commit: 28a4b66a9433dcbc6a7680deaaf9ce52ab1e9420 https://github.com/MLton/mlton/commit/28a4b66a9433dcbc6a7680deaaf9ce52ab1e9420 Author: Jason Carr <jca...@gm...> Date: 2019-08-12 (Mon, 12 Aug 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Add LLVM support for Statics Commit: 90255a7b07cb3e47d2b5bfd34c951b8c8fbfc45e https://github.com/MLton/mlton/commit/90255a7b07cb3e47d2b5bfd34c951b8c8fbfc45e Author: Jason Carr <jca...@gm...> Date: 2019-08-12 (Mon, 12 Aug 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/bounce-vars.fun M mlton/backend/limit-check.fun M mlton/backend/packed-representation.fun M mlton/backend/rssa-restore.fun M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Replace isMutable in Rssa binds with pinned A pinned variable in Rssa is created by splitting live ranges in bounce-vars, and so the only difference is that it will not be copy-propagated as a variable (but may be once it is allocated to a location in backend). The alternative would require that copy propagation calculate complicated liveness information every time to determine if a variable can be safely merged with another. Commit: 9b8ccecbcc282ddb55d9ac9b0bbaaa86c22ab055 https://github.com/MLton/mlton/commit/9b8ccecbcc282ddb55d9ac9b0bbaaa86c22ab055 Author: Jason Carr <jca...@gm...> Date: 2019-08-12 (Mon, 12 Aug 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/packed-representation.fun M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/x86-codegen/x86-translate.fun Log Message: ----------- Cleanup unused variables Commit: 2c2a6fb57e51dba293c9d0e93b305562dabd9e2b https://github.com/MLton/mlton/commit/2c2a6fb57e51dba293c9d0e93b305562dabd9e2b Author: Jason Carr <jca...@gm...> Date: 2019-08-12 (Mon, 12 Aug 2019) Changed paths: M benchmark/main.sml M lib/mlton/basic/counter.sig M lib/mlton/basic/counter.sml M lib/mlton/basic/directed-graph.sml M lib/mlton/basic/directed-sub-graph.sml M lib/mlton/basic/hash-table.sig M lib/mlton/basic/hash-table.sml M lib/mlton/basic/regexp.sml M lib/mlton/basic/string.sml M mlton/atoms/c-function.fun M mlton/atoms/ffi.fun M mlton/atoms/id.fun M mlton/atoms/prim.fun M mlton/atoms/profile-label.fun M mlton/atoms/real-size.fun M mlton/atoms/real-size.sig M mlton/atoms/source-info.fun M mlton/atoms/symbol.fun M mlton/atoms/symbol.sig M mlton/atoms/word-size.fun M mlton/atoms/word-size.sig M mlton/backend/backend.fun M mlton/backend/implement-profiling.fun M mlton/backend/machine.fun M mlton/backend/objptr-tycon.fun M mlton/backend/objptr-tycon.sig M mlton/backend/rep-type.fun M mlton/backend/rep-type.sig M mlton/backend/rssa-restore.fun M mlton/backend/ssa2-to-rssa.fun M mlton/codegen/amd64-codegen/amd64-liveness.fun M mlton/codegen/amd64-codegen/amd64.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-generate-transfers.fun M mlton/codegen/x86-codegen/x86-liveness.fun M mlton/codegen/x86-codegen/x86.fun M mlton/control/bits.sml M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-mlbs.fun M mlton/elaborate/type-env.fun M mlton/front-end/mlb-front-end.fun M mlton/main/lookup-constant.fun M mlton/main/main.fun M mlton/ssa/common-subexp.fun M mlton/ssa/duplicate-globals.fun M mlton/ssa/global.fun M mlton/ssa/loop-unroll.fun M mlton/ssa/restore.fun M mlton/ssa/restore2.fun M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun M mlton/ssa/type-check.fun M mlton/ssa/type-check2.fun M mlton/xml/monomorphise.fun M mlton/xml/sxml-simplify.fun M mlton/xml/xml-simplify.fun Log Message: ----------- Merge branch 'master' into static-alloc Commit: cfe230f05ccc8ba38fbe79d2e63cbcd43d86f3a9 https://github.com/MLton/mlton/commit/cfe230f05ccc8ba38fbe79d2e63cbcd43d86f3a9 Author: Jason Carr <jca...@gm...> Date: 2019-08-12 (Mon, 12 Aug 2019) Changed paths: M mlton/atoms/sources.mlb M mlton/backend/backend-atoms.fun M mlton/backend/backend-atoms.sig M mlton/backend/packed-representation.fun M mlton/backend/ssa2-to-rssa.fun M mlton/backend/static.fun M mlton/backend/static.sig M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Allow Statics to contain RealX entries as well as WordXs Commit: 22eb8642cd415864f9757b521cc8d1c94e624bad https://github.com/MLton/mlton/commit/22eb8642cd415864f9757b521cc8d1c94e624bad Author: Jason Carr <jca...@gm...> Date: 2019-08-12 (Mon, 12 Aug 2019) Changed paths: M mlton/backend/packed-representation.fun Log Message: ----------- Correctly handle reals in packed tuples and disable when CF is disallowed Commit: 55d20f2f9a5b252526f7831a7871ee7424fde3ef https://github.com/MLton/mlton/commit/55d20f2f9a5b252526f7831a7871ee7424fde3ef Author: Jason Carr <jca...@gm...> Date: 2019-08-12 (Mon, 12 Aug 2019) Changed paths: M mlton/backend/machine.fun Log Message: ----------- Fix Machine.typeCheck rejecting uses of static 0 Commit: d0cfeadb53fb67751062b863f925b16879068a07 https://github.com/MLton/mlton/commit/d0cfeadb53fb67751062b863f925b16879068a07 Author: Jason Carr <jca...@gm...> Date: 2019-08-14 (Wed, 14 Aug 2019) Changed paths: M mlton/atoms/real-x.sig M mlton/backend/packed-representation.fun M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Fix disappearing commit content Commit: 2d46cc122d93de2fe95c3f143d79baf8043dbb3b https://github.com/MLton/mlton/commit/2d46cc122d93de2fe95c3f143d79baf8043dbb3b Author: Jason Carr <jca...@gm...> Date: 2019-08-14 (Wed, 14 Aug 2019) Changed paths: M runtime/gc/dfs-mark.c Log Message: ----------- Fix issue introduced while attempting to handle statics in DFS Mark (I wasn't a careful reader, isPointerInHeap checks that something is in the heap when it is a pointer, not that it is a pointer which is in the heap) Commit: 086b4a6dfd2ff5a940ee875eee01d217aa63b8c1 https://github.com/MLton/mlton/commit/086b4a6dfd2ff5a940ee875eee01d217aa63b8c1 Author: Jason Carr <jca...@gm...> Date: 2019-08-14 (Wed, 14 Aug 2019) Changed paths: M mlton/atoms/sources.cm Log Message: ----------- Add REAL_X to atoms/sources.cm Commit: 702872ce4ccf01cd8a71e43c5802a135a4f4a84a https://github.com/MLton/mlton/commit/702872ce4ccf01cd8a71e43c5802a135a4f4a84a Author: Jason Carr <jca...@gm...> Date: 2019-08-14 (Wed, 14 Aug 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Regrettably return bogus ops to strange offsets in backend Conceptually, machine shouldn't be restricted from offsets into constant words. Codegens other than the native ones handle it fine, but the burden to support and test it on the native codegens isn't worth it and in practice we have no simplifying passes for machine. Commit: 2d4849399230d628f80e8df662c078c3d4270be8 https://github.com/MLton/mlton/commit/2d4849399230d628f80e8df662c078c3d4270be8 Author: Jason Carr <jca...@gm...> Date: 2019-08-14 (Wed, 14 Aug 2019) Changed paths: M runtime/gc/mark-compact.c Log Message: ----------- Ensure mark-compact does not forward pointers found in an object if they aren't in the heap Unfortunately, I tried and failed to find stronger assertions, as many non-heap pointers take part in threading. Commit: 8b14340e4f93ecc9d8076f45b6c561d1ecab609f https://github.com/MLton/mlton/commit/8b14340e4f93ecc9d8076f45b6c561d1ecab609f Author: Matthew Fluet <mat...@gm...> Date: 2019-09-02 (Mon, 02 Sep 2019) Changed paths: M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/x86-codegen/x86-translate.fun Log Message: ----------- Minimize diff with `master` Avoid inducing a white space change across a 200 line function. Commit: 7d58c831445618e33e97d5a77b0c8b1ba638a250 https://github.com/MLton/mlton/commit/7d58c831445618e33e97d5a77b0c8b1ba638a250 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-02 (Mon, 02 Sep 2019) Changed paths: M mlton/backend/sources.cm Log Message: ----------- Organize files in `backend/sources.cm` as in `backend/sources.mlb` Commit: f2ef44c1b3f6c911351bdc0e2fc7c0c27abebf98 https://github.com/MLton/mlton/commit/f2ef44c1b3f6c911351bdc0e2fc7c0c27abebf98 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-02 (Mon, 02 Sep 2019) Changed paths: M include/common-main.h Log Message: ----------- Alphabetize lines in `include/common-main.h` Commit: 38fa7ade74be718741f2f836c6a2019cd18267cf https://github.com/MLton/mlton/commit/38fa7ade74be718741f2f836c6a2019cd18267cf Author: Matthew Fluet <mat...@gm...> Date: 2019-09-02 (Mon, 02 Sep 2019) Changed paths: M mlton/backend/backend-atoms.sig Log Message: ----------- Simplify `sharing` constraints in `backend/backend-atoms.sig` Commit: 729f0081580ea1f1d543a480a5a783c3d89cc4c1 https://github.com/MLton/mlton/commit/729f0081580ea1f1d543a480a5a783c3d89cc4c1 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-02 (Mon, 02 Sep 2019) Changed paths: M mlton/backend/static.sig Log Message: ----------- Alphabetize structures in `backend/static.sig` Commit: 4aa8a7133afe66edd76e4e10d8695ca2d501c191 https://github.com/MLton/mlton/commit/4aa8a7133afe66edd76e4e10d8695ca2d501c191 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-02 (Mon, 02 Sep 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/packed-representation.fun M mlton/backend/rep-type.fun M mlton/backend/rssa-tree.sig M mlton/backend/ssa2-to-rssa.fun M mlton/backend/static.fun M mlton/codegen/amd64-codegen/amd64-mlton-basic.fun M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Fixup whitespace and formatting Commit: 8100d8d0b56b74fe71bdfe8e573ffb987579806b https://github.com/MLton/mlton/commit/8100d8d0b56b74fe71bdfe8e573ffb987579806b Author: Matthew Fluet <mat...@gm...> Date: 2019-09-02 (Mon, 02 Sep 2019) Changed paths: M runtime/gc/heap.h M runtime/gc/heap_predicates.c Log Message: ----------- Alphabetize/organize `is{Objptr,Pointer}In{FromSpace,Heap,Nursery,OldGen}` functions Commit: caccf2fba02bf919bb42154f3e8ab53c3255ba44 https://github.com/MLton/mlton/commit/caccf2fba02bf919bb42154f3e8ab53c3255ba44 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-02 (Mon, 02 Sep 2019) Changed paths: M runtime/gc/forward.h Log Message: ----------- Alphabetize `forwardObjptrIfIn{Heap,Nursery}` function declarations Commit: a1a81be099cecbb4526b710044dc6065410f24cb https://github.com/MLton/mlton/commit/a1a81be099cecbb4526b710044dc6065410f24cb Author: Matthew Fluet <mat...@gm...> Date: 2019-09-02 (Mon, 02 Sep 2019) Changed paths: M runtime/gc/forward.c Log Message: ----------- Exit `forwardObjptrIfInNursery` if `p > s->frontier` A objptr to a static object will usually have a lower address than that of the heap, but it is not guaranteed. Commit: 13a993751e46d01995d27b3ec9be2b5a5a8c37dd https://github.com/MLton/mlton/commit/13a993751e46d01995d27b3ec9be2b5a5a8c37dd Author: Matthew Fluet <mat...@gm...> Date: 2019-09-02 (Mon, 02 Sep 2019) Changed paths: M runtime/gc/invariant.c Log Message: ----------- Restore, but disable, `IsObjptrInFromSpace` checks in `invariantForGC` These are useful checks. It would be good to restore them if an efficient `isObjptrStatic` predicate were available. Commit: b455bf3bd637d55aed6ed3665690e3652c09d4e5 https://github.com/MLton/mlton/commit/b455bf3bd637d55aed6ed3665690e3652c09d4e5 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-04 (Wed, 04 Sep 2019) Changed paths: M mlton/backend/packed-representation.fun M mlton/backend/representation.sig M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Eliminate unnecessary polymorphism in `signature REPRESENTATION` Commit: 575d00aff3a8165cb07724781be813179779fb72 https://github.com/MLton/mlton/commit/575d00aff3a8165cb07724781be813179779fb72 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-05 (Thu, 05 Sep 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Fix typo in comment Commit: e98bbf87a0713d106c5d0450f723f5c03be1c90c https://github.com/MLton/mlton/commit/e98bbf87a0713d106c5d0450f723f5c03be1c90c Author: Matthew Fluet <mat...@gm...> Date: 2019-09-05 (Thu, 05 Sep 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Update `#define M` in `c-chunk.h` The static's are imported with the type `PointerAux` (`unsigned char`) and the offset is a byte offset. It may be the case that `M` is only every used with `Objptr` (which is defined as `PointerAux*`), but it is more proper to first offset then cast. Commit: 7182739bc417b0c906fd8696825b91e3935ec6ce https://github.com/MLton/mlton/commit/7182739bc417b0c906fd8696825b91e3935ec6ce Author: Matthew Fluet <mat...@gm...> Date: 2019-09-05 (Thu, 05 Sep 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Replace `{Real,Word}Size.toC` with `{Real,Word}Size.toString` Commit: bcbb88fdb2121a3e45bb7c6f4cc808922a1ad178 https://github.com/MLton/mlton/commit/bcbb88fdb2121a3e45bb7c6f4cc808922a1ad178 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-05 (Thu, 05 Sep 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Tweak formatting of generated `static_<n>` declarations Commit: 5d6621a9a65dca4494312d7f433ce20fe253ebd6 https://github.com/MLton/mlton/commit/5d6621a9a65dca4494312d7f433ce20fe253ebd6 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-05 (Thu, 05 Sep 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Don't declare `Heap` statics in `.c` and `.ll` files defining `Chunk<N>` fns `Heap` statics are declared `const static` in the "main" `.c` file and will not be linkable from the `.c` and `.ll` files defining `Chunk<N>` functions. In practice, there won't be any references to `Heap` statics from a `Chunk<N>` function (they will be referenced as global objptrs into the heap) and the symbol won't appear in the to-be-linked object file. Nonetheless, it is easy to skip emitting declarations for `Heap` statics that are known not to be referenced. Commit: 6b058ca6b1cc4116d0d2755be9fe3d36a14db63f https://github.com/MLton/mlton/commit/6b058ca6b1cc4116d0d2755be9fe3d36a14db63f Author: Matthew Fluet <mat...@gm...> Date: 2019-09-05 (Thu, 05 Sep 2019) Changed paths: M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Fix `Error.bug` string in `translateGlobalStatics.getObjptrTycon` Commit: 6bcc988e23dcbdfc2382e6e4e75c9179bb0cbe39 https://github.com/MLton/mlton/commit/6bcc988e23dcbdfc2382e6e4e75c9179bb0cbe39 Author: Jason Carr <jca...@gm...> Date: 2019-09-05 (Thu, 05 Sep 2019) Changed paths: M mlton/backend/static.fun M mlton/backend/static.sig Log Message: ----------- Add Static.sequence Commit: 1c98551c8c3d44aae299c7deeea9e606fbed54f5 https://github.com/MLton/mlton/commit/1c98551c8c3d44aae299c7deeea9e606fbed54f5 Author: Jason Carr <jca...@gm...> Date: 2019-09-05 (Thu, 05 Sep 2019) Changed paths: M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Eliminate duplicate functionality in ssa2-to-rssa Commit: 4a2af6d96dc48961fe82e93f2c13986a02f8a4ed https://github.com/MLton/mlton/commit/4a2af6d96dc48961fe82e93f2c13986a02f8a4ed Author: Jason Carr <jca...@gm...> Date: 2019-09-05 (Thu, 05 Sep 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/limit-check.fun M mlton/backend/static.fun M mlton/backend/static.sig M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Static.header -> metadata Commit: 13012fc3ab517b2b86e2e247486c5ee944ee3b7c https://github.com/MLton/mlton/commit/13012fc3ab517b2b86e2e247486c5ee944ee3b7c Author: Jason Carr <jca...@gm...> Date: 2019-09-05 (Thu, 05 Sep 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/limit-check.fun M mlton/backend/packed-representation.fun M mlton/backend/representation.sig M mlton/backend/ssa2-to-rssa.fun M mlton/backend/static.fun M mlton/backend/static.sig M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Change extra datatypes in statics to own structs (e.g. location -> Location.t) Commit: d40c73825b36973a806980cdbc1598a0f09a4d22 https://github.com/MLton/mlton/commit/d40c73825b36973a806980cdbc1598a0f09a4d22 Author: Jason Carr <jca...@gm...> Date: 2019-09-05 (Thu, 05 Sep 2019) Changed paths: M runtime/gc/init-world.c Log Message: ----------- Remove erroneous GC_SEQUENCE_METADATA_SIZE factor from objectInits Commit: 6cb98b633fd5bc79ed81b3d911f819c478658b5e https://github.com/MLton/mlton/commit/6cb98b633fd5bc79ed81b3d911f819c478658b5e Author: Jason Carr <jca...@gm...> Date: 2019-09-05 (Thu, 05 Sep 2019) Changed paths: M mlton/backend/static.fun Log Message: ----------- Fix bad cases from 13012fc3 Commit: 3e563a7b2179374a5f1786128eadb8498ddd77f3 https://github.com/MLton/mlton/commit/3e563a7b2179374a5f1786128eadb8498ddd77f3 Author: Jason Carr <jca...@gm...> Date: 2019-09-05 (Thu, 05 Sep 2019) Changed paths: M mlton/backend/machine.fun Log Message: ----------- isDestination GCState changed to false Commit: 82c2000a20a16b103df401044c6aea8dbda98736 https://github.com/MLton/mlton/commit/82c2000a20a16b103df401044c6aea8dbda98736 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-07 (Sat, 07 Sep 2019) Changed paths: M mlton/backend/packed-representation.fun M mlton/backend/representation.sig M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Change result type of `static` function to `StaticOrElem.t option` A static element that requires casting a `Real<N>` to `Word<N>` cannot be supported when `RealX.disableCF()`, such as when using SML/NJ. Rather than guard calls to `static`, return an `option` to signal that the static element could not be created. Commit: 0c1d396ba6cb7c0f4703ecd11380061a6dd440b2 https://github.com/MLton/mlton/commit/0c1d396ba6cb7c0f4703ecd11380061a6dd440b2 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-07 (Sat, 07 Sep 2019) Changed paths: M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Don't use `RealX.disableCF()` to guard creating a static object With 82c2000a2 (Change result type of `static` function to `StaticOrElem.t option` static-alloc), it is not necessary to guard the call to `static` by `RealX.disableCF()`. This allows objects with "pure reals" (e.g., a `Real32.real * Real32.real * Real32.real`), that don't require casting to words for packing into larger components, to be created even if `RealX.disableCF()`, such as when using SML/NJ. Commit: 9ba316506497cad3810a39bb1af1495302f06d71 https://github.com/MLton/mlton/commit/9ba316506497cad3810a39bb1af1495302f06d71 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-07 (Sat, 07 Sep 2019) Changed paths: M mlton/atoms/real-x.sig Log Message: ----------- Don't export `REALX.disableCF` Commit: 10cd2f57622b02c4c8792c136b014280fb8664c3 https://github.com/MLton/mlton/commit/10cd2f57622b02c4c8792c136b014280fb8664c3 Author: Jason Carr <jca...@gm...> Date: 2019-09-08 (Sun, 08 Sep 2019) Changed paths: M mlton/backend/limit-check.fun Log Message: ----------- Construct a new object type in limit-check instead of using a headerless boolean Commit: eacb8997a0c4433f7dd441fdd7c1c7d25914b4ef https://github.com/MLton/mlton/commit/eacb8997a0c4433f7dd441fdd7c1c7d25914b4ef Author: Matthew Fluet <mat...@gm...> Date: 2019-09-09 (Mon, 09 Sep 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/static.fun M mlton/backend/static.sig M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Change `metadata: WordXVector.t` field of `Static.T` to `metadata: WordX.t list` The metadata of an object need not have all fields of the same size. In particular, a sequence object's metadata is comprised of a counter field (of `WordSize.seqIndex` size), a length field (also of `WordSize.seqIndex` size), and a header. We happen to use 64-bit sequence indices and 64-bit headers on 64-bit platforms, but that is not required. (Albeit, it is also not tested.) Commit: 7b8f8853655115b9172ecf33b952c3bedc0c8d79 https://github.com/MLton/mlton/commit/7b8f8853655115b9172ecf33b952c3bedc0c8d79 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-09 (Mon, 09 Sep 2019) Changed paths: M mlton/atoms/word-x-vector.fun M mlton/atoms/word-x-vector.sig Log Message: ----------- Eliminate unused `WordXVector.size: t -> Bytes.t` Commit: 36c4d172af916ec884aff1fe95c45b034e3d46d8 https://github.com/MLton/mlton/commit/36c4d172af916ec884aff1fe95c45b034e3d46d8 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-09 (Mon, 09 Sep 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Share code for metadata declaration and initialization in `c-codgen.fun` Commit: 765d16254aeee33677ecc4366746e8641239902e https://github.com/MLton/mlton/commit/765d16254aeee33677ecc4366746e8641239902e Author: Matthew Fluet <mat...@gm...> Date: 2019-09-17 (Tue, 17 Sep 2019) Changed paths: M mlton/backend/static.fun M mlton/backend/static.sig Log Message: ----------- Implement `Static.{data,location,metadata}` selector functions Commit: 4a49d4d88ab1775a02958f4744090814056477d2 https://github.com/MLton/mlton/commit/4a49d4d88ab1775a02958f4744090814056477d2 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-17 (Tue, 17 Sep 2019) Changed paths: M mlton/backend/ssa2-to-rssa.fun M mlton/backend/static.fun M mlton/backend/static.sig M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Refactor static alloc/init controls New controls are: * `-static-alloc-wordvector-consts {true|false}` Controls whether or not `WordXVector` constants are converted to statics (with `ImmStatic` location) at `Ssa2ToRssa`. * `-static-init-arrays {true|false}` Controls whether or not `Array_alloc` primitives are converted to statics (with `MutStatic` or `Heap` location) at `Ssa2ToRssa`. * `-static-init-objects {none|staticAllocOnly|all}` Controls whether or not `Object` expressions are converted to statics at `Ssa2ToRssa`. If `staticAllocOnly`, then an object that would be converted to a static with `Heap` location is not converted to a static. Commit: b13f7a805cfdf2655a3abb2d736844338af1fc06 https://github.com/MLton/mlton/commit/b13f7a805cfdf2655a3abb2d736844338af1fc06 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-17 (Tue, 17 Sep 2019) Changed paths: M mlton/backend/static.fun M mlton/backend/static.sig M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Add `Static.dataSize: 'a t -> Bytes.t` And eliminate `Static.Data.size: 'a Static.Data.t -> WordSize.t * int`. Commit: b3873f1d8bbf9113af7003b57646baa4ed431e1e https://github.com/MLton/mlton/commit/b3873f1d8bbf9113af7003b57646baa4ed431e1e Author: Matthew Fluet <mat...@gm...> Date: 2019-09-17 (Tue, 17 Sep 2019) Changed paths: M mlton/backend/backend.fun M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Allocate WordXVector constants created by RSSA according to `!Control.staticAllocWordVectorConsts` Commit: deb60810a13f79ab8816f6848d227f7b2f738b4a https://github.com/MLton/mlton/commit/deb60810a13f79ab8816f6848d227f7b2f738b4a Author: Matthew Fluet <mat...@gm...> Date: 2019-09-17 (Tue, 17 Sep 2019) Changed paths: M mlton/backend/ssa2-to-rssa.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Additional static alloc/init controls New controls are: * `-static-alloc-arrays {true|false}` Controls whether or not `Array_alloc` primitives that can be statically initialized are forced to `Heap` location. * `-static-alloc-objects {true|false}` Controls whether or not `Object` expressions that can be statically initialized are forced to `Heap` location. Commit: 80ffc2c108c07689c3f2a952fe20d00cab5878bf https://github.com/MLton/mlton/commit/80ffc2c108c07689c3f2a952fe20d00cab5878bf Author: Matthew Fluet <mat...@gm...> Date: 2019-09-17 (Tue, 17 Sep 2019) Changed paths: M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Fix bug introduced by 4a49d4d88 Commit: 8ced4920efb42ed10e69c75da4d9d77363401010 https://github.com/MLton/mlton/commit/8ced4920efb42ed10e69c75da4d9d77363401010 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-17 (Tue, 17 Sep 2019) Changed paths: M runtime/gc/init-world.c Log Message: ----------- Fixup whitespace Commit: 606fb853f208c97cb17034257914886dc59c9ed9 https://github.com/MLton/mlton/commit/606fb853f208c97cb17034257914886dc59c9ed9 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-17 (Tue, 17 Sep 2019) Changed paths: M runtime/gc/init-world.c Log Message: ----------- Ensure that `sizeofInitialBytesLive` returns a non-zero size With b3873f1d8, a program can have an empty `objectInits[]` to be allocated in the initial dynamic heap. With an empty `objectInits[]`, `sizeofInitialBytesLive` would return 0. Attempting to create a heap of zero bytes would fail (the specified SUSv3 behavior of `mmap`), triggering a backoff computed as: highSize = newSize - s->sysvals.pageSize; newSize = align((factor-1) * (highSize / factor) + (lowSize / factor), s->sysvals.pageSize); However, `newSize - s->sysval.pageSize` (with `newSize` equals 0), wraps to nearly 2^64. Successive backoffs eventually bring the requested size down to one that can be satisfied, but the size is generally much larger than required. Moreover, the heap won't be resized until a subsequent GC, which may not occur during the run of the program, due to the heap being so large. Many regression tests run, but most that fork fail with `unhandled exception: SysErr: Cannot allocate memory [nomem]`, because both the parent has allocated a very large heap and the child is requesting to allocate a very large heap. Now, `sizeofInitialBytesLive` also includes the size of the initial thread/stack to be created, ensuring that it is always non-zero. Commit: 65c455f328ac6fa7f17d294188ba16b2faea16c3 https://github.com/MLton/mlton/commit/65c455f328ac6fa7f17d294188ba16b2faea16c3 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-17 (Tue, 17 Sep 2019) Changed paths: M regression/size.sml Log Message: ----------- Tweak `size.sml` regression to not use a static string Commit: 1e91cd9a289536563a02d5b2cbcb5fd5b6aae943 https://github.com/MLton/mlton/commit/1e91cd9a289536563a02d5b2cbcb5fd5b6aae943 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-17 (Tue, 17 Sep 2019) Changed paths: M regression/mlton.share.sml Log Message: ----------- Tweak `mlton.share.sml` regression to not use static strings/objects Commit: a9d897b839ea8bb7785342d641b570db8253eabe https://github.com/MLton/mlton/commit/a9d897b839ea8bb7785342d641b570db8253eabe Author: Matthew Fluet <mat...@gm...> Date: 2019-09-18 (Wed, 18 Sep 2019) Changed paths: M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Treat `MLton_bogus` as a const for static alloc/init Commit: 10c407829ec7e7ef8a34651dbb6e4ccb0c63463d https://github.com/MLton/mlton/commit/10c407829ec7e7ef8a34651dbb6e4ccb0c63463d Author: Matthew Fluet <mat...@gm...> Date: 2019-09-18 (Wed, 18 Sep 2019) Changed paths: M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Allow objects with no representation to be considered static Objects without a representation (e.g., `unit`) may participate in the construction of other objects (e.g., `unit ref`). (* Globals: *) val x_0: unit = obj () ... val global_441: (unit mut) tuple = obj (x_0 (*obj ()*)) However, objects without a representation were not registered as being static, thus preventing subsequent objects constructed with them from being made static. Commit: 30252b58fae4e236332a2e2e6d3f397e7d380659 https://github.com/MLton/mlton/commit/30252b58fae4e236332a2e2e6d3f397e7d380659 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-18 (Wed, 18 Sep 2019) Changed paths: M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Refactor functions in `translateGlobalStatics` Commit: e47f7e02bfeb0363ecfa96e6fdb33dc026dd445c https://github.com/MLton/mlton/commit/e47f7e02bfeb0363ecfa96e6fdb33dc026dd445c Author: Matthew Fluet <mat...@gm...> Date: 2019-09-19 (Thu, 19 Sep 2019) Changed paths: M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Recognize `Const.IntInf` and `Const.Null` as statics Commit: f39f8115fc5e39575ea340ec4207cdd60662167d https://github.com/MLton/mlton/commit/f39f8115fc5e39575ea340ec4207cdd60662167d Author: Matthew Fluet <mat...@gm...> Date: 2019-09-19 (Thu, 19 Sep 2019) Changed paths: M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Recognize that `Array_toVector` preserves staticness Commit: bc389037c57b73c5e740e56362d53410c4f8ccc0 https://github.com/MLton/mlton/commit/bc389037c57b73c5e740e56362d53410c4f8ccc0 Author: Matthew Fluet <mat...@gm...> Date: 2019-09-19 (Thu, 19 Sep 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Avoid constant propagating `Heap` statics in backend Commit: 57c9c94d419dbdbe900398ee08b5e129f0f480b4 https://github.com/MLton/mlton/commit/57c9c94d419dbdbe900398ee08b5e129f0f480b4 Author: Matthew Fluet <Mat...@gm...> Date: 2019-09-19 (Thu, 19 Sep 2019) Changed paths: M include/amd64-main.h M include/c-chunk.h M include/c-main.h M include/common-main.h M include/x86-main.h M mlton/atoms/sources.cm M mlton/atoms/sources.mlb M mlton/backend/backend-atoms.fun M mlton/backend/backend-atoms.sig M mlton/backend/backend.fun M mlton/backend/bounce-vars.fun M mlton/backend/limit-check.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/packed-representation.fun M mlton/backend/rep-type.fun M mlton/backend/representation.sig M mlton/backend/rssa-restore.fun M mlton/backend/rssa-tree.fun M mlton/backend/rssa-tree.sig M mlton/backend/sources.cm M mlton/backend/sources.mlb M mlton/backend/ssa2-to-rssa.fun A mlton/backend/static.fun A mlton/backend/static.sig M mlton/codegen/amd64-codegen/amd64-codegen.fun M mlton/codegen/amd64-codegen/amd64-mlton-basic.fun M mlton/codegen/amd64-codegen/amd64-mlton-basic.sig M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-codegen.fun M mlton/codegen/x86-codegen/x86-mlton-basic.fun M mlton/codegen/x86-codegen/x86-mlton-basic.sig M mlton/codegen/x86-codegen/x86-translate.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M regression/mlton.share.sml M regression/size.sml M runtime/gc/cheney-copy.c M runtime/gc/dfs-mark.c M runtime/gc/forward.c M runtime/gc/forward.h M runtime/gc/gc_state.h M runtime/gc/heap.h M runtime/gc/heap_predicates.c M runtime/gc/init-world.c M runtime/gc/init-world.h M runtime/gc/invariant.c M runtime/gc/mark-compact.c M runtime/gc/translate.c M runtime/gc/translate.h Log Message: ----------- Merge pull request #328 from jasoncarr0/static-alloc Static allocation/initialization of objects in backend The main benefits are that code size and compile time are improved across the board, particularly for larger programs. Runtime sometimes improves, but should only affect programs which had hot code accessing globals, as it removes one level of indirection. Garbage collections might be marginally faster, as globals are now mostly skipped. Statically allocated and initialized objects are created in the main `.c` file, where they will be placed in the data segment of the executable: const struct {Word64 meta_0; Word64 meta_1; Word64 meta_2; Word8 data[9];} static_20 = {(Word64)(0x0ull), (Word64)(0x9ull), (Word64)(0x7ull), "addrinuse"}; const struct {Word64 meta_0; Word32 data_0; Word32 data_1; Pointer data_2; } static_21 = {(Word64)(0x29ull), (Word32)(0x62ull), (Word32)(0x0ull), ((Pointer)(&static_20) + 24)}; Note that these are proper ML objects, with metadata and data. References to statically allocated objects are via pointers to the first data field (e.g., `&static20 + 24`). Note also that `WordXVector` (e.g., strings) are a special case of statically allocated and initialized objects. Statically allocated and initialized objects can be both immutable and mutable, although the latter should be restricted to objects with non-`Objptr` mutable fields. A special case of statically allocated objects are arrays, whose contents will be dynamically initialized by the mutator. These are also created in the main `.c` file, but are placed in the bss segment of the executable (decreasing the size of the executable) and proper metadata is written by initialization code: struct {Word64 meta_0; Word64 meta_1; Word64 meta_2; Word8 data[800000];} static_26; struct {Word64 meta_0; Word64 meta_1; Word64 meta_2; Word8 data[0];} static_31; static void static_Init() { memcpy (&static_26, &((struct {Word64 meta_0; Word64 meta_1; Word64 meta_2}){(Word64)(0x0ull), (Word64)(0x186A0ull), (Word64)(0x11ull)}), 24); memcpy (&static_31, &((struct {Word64 meta_0; Word64 meta_1; Word64 meta_2}){(Word64)(0x0ull), (Word64)(0x0ull), (Word64)(0x13ull)}), 24); }; Finally, dynamically allocated but statically initialized objects have their initialization data in the main `.c` file along with information to copy that data to the initial dynamic heap during `initWorld`: const static struct {Word64 meta_0; Word64 data_0; } static_9819 = {(Word64)(0x79Dull), (Word64)(0x1ull)}; const static struct {Word64 meta_0; Word64 data_0; } static_9820 = {(Word64)(0x79Dull), (Word64)(0x1ull)}; static struct GC_objectInit objectInits[] = { { 11, 8, 16, ((Pointer) &static_9819) }, { 12, 8, 16, ((Pointer) &static_9820) }, ... } By default (with `-static-init-objects staticAllocOnly`), no such objects are created. With `-static-init-objects all`, global objects with `Objptr` mutable fields would be dynamically allocated but statically initialized. But, such global objects are rare. For example, a `(int * int) ref` could be space-safely globalized and would be an object with a mutable `Objptr` field. However, it is also likely that such a tuple would be `RefFlatten`ed. With `-globalize-small-type 4` (see MLton/mlton#288 and 752467c48), an `(int * int, int * int) either ref` could be globalized and represented as an object with a mutable `Objptr` field. Similarly, an `IntInf.int ref` can also be globalized and would be represented as an object with a mutable `Objptr` field. With `-static-alloc-objects false -static-init-objects all`, all global objects will be dynamically allocated but statically initialized (and no global objects will be statically allocated). Similarly, with `-static-alloc-wordvector-consts false`, string constants will be dynamically allocated but statically initialized; this corresponds to the previous MLton behavior with respect to string constants. A number of controls have been added to control static allocation/initialization: * `-static-alloc-internal-ptrs {static|all|none}` Controls which kinds of objects can be statically allocated: * `static`: only objects with all fields either immutable or non-`Objptr` * `none`: only objects with no fields * `all`: all objects The `all` setting is incompatible with the current GC for two reasons. First, statically allocated objects are not traced by the GC; a statically-allocated object that is updated with an `Objptr` to an object in the heap should be considered a root. Second, a statically-allocated object that is updated with an `Objptr` would trigger a card marking, but the address of a statically-allocated object would not map to a valid card slot. * `-static-alloc-wordvector-consts {true|false}` Controls whether or not `WordXVector` constants are converted to statics (with `ImmStatic` location) at `Ssa2ToRssa`. * `-static-init-arrays {true|false}` Controls whether or not `Array_alloc` primitives are converted to statics (with `MutStatic` or `Heap` location) at `Ssa2ToRssa`. * `-static-alloc-arrays {true|false}` Controls whether or not `Array_alloc` primitives that can be statically initialized are forced to `Heap` location. * `-static-init-objects {none|staticAllocOnly|all}` Controls whether or not `Object` expressions are converted to statics at `Ssa2ToRssa`. If `staticAllocOnly`, then an object that would be converted to a static with `Heap` location is not converted to a static. * `-static-alloc-objects {true|false}` Controls whether or not `Object` expressions that can be statically initialized are forced to `Heap` location. Compare: https://github.com/MLton/mlton/compare/a1faf761bdb2...57c9c94d419d |
From: Matthew F. <no...@gi...> - 2019-07-18 23:47:35
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 0e65349759ec31fe877633b9f7f4c7ac955b4eed https://github.com/MLton/mlton/commit/0e65349759ec31fe877633b9f7f4c7ac955b4eed Author: Jason Carr <jca...@gm...> Date: 2019-06-06 (Thu, 06 Jun 2019) Changed paths: M mlton/backend/objptr-tycon.fun M mlton/backend/objptr-tycon.sig M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Output alias.scope and noalias metadata for all objptr load/stores in llvm Does not yet include metadata, so this version will not compile Commit: 37c69880870428a910ec73c9516cf54e965ae8d9 https://github.com/MLton/mlton/commit/37c69880870428a910ec73c9516cf54e965ae8d9 Author: Jason Carr <jca...@gm...> Date: 2019-06-06 (Thu, 06 Jun 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Add all metadata for object types Commit: 9a556667f60098ac5b6110611df3dfa6dc0a5a0f https://github.com/MLton/mlton/commit/9a556667f60098ac5b6110611df3dfa6dc0a5a0f Author: Jason Carr <jca...@gm...> Date: 2019-06-06 (Thu, 06 Jun 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Change comment on noalias sets to be more useful Commit: 548c304b2b1a98112138f66e4433dda8de165ab5 https://github.com/MLton/mlton/commit/548c304b2b1a98112138f66e4433dda8de165ab5 Author: Jason Carr <jca...@gm...> Date: 2019-06-06 (Thu, 06 Jun 2019) Changed paths: M mlton/backend/rep-type.fun M mlton/backend/rep-type.sig M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Fix cherry-pick-related issues Commit: 255830f52b6b9ce0154fda5f7f83c5539198cd8a https://github.com/MLton/mlton/commit/255830f52b6b9ce0154fda5f7f83c5539198cd8a Author: Jason Carr <jca...@gm...> Date: 2019-06-09 (Sun, 09 Jun 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Try progressing on tbaa Commit: a6e2224bb84f48902c4cef76e3791f48ae4d3886 https://github.com/MLton/mlton/commit/a6e2224bb84f48902c4cef76e3791f48ae4d3886 Author: Jason Carr <jca...@gm...> Date: 2019-06-21 (Fri, 21 Jun 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Change to only including operand scoping based on location Commit: 783bc3fdaedad357d110df66ae832dda4d48e00a https://github.com/MLton/mlton/commit/783bc3fdaedad357d110df66ae832dda4d48e00a Author: Jason Carr <jca...@gm...> Date: 2019-06-21 (Fri, 21 Jun 2019) Changed paths: M CHANGELOG.adoc M LICENSE M Makefile A Makefile.config M README.adoc M basis-library/Makefile M basis-library/mlton/call-stack.sml M basis-library/mlton/cont.sml M basis-library/mlton/exit.sml M basis-library/mlton/gc.sml M basis-library/mlton/profile.sml M basis-library/mlton/rusage.sml M basis-library/mlton/signal.sml M basis-library/mlton/thread.sml M basis-library/mlton/world.sml M basis-library/primitive/basis-ffi.sml M basis-library/primitive/prim-mlton.sml M basis-library/primitive/prim2.sml M benchmark/Makefile M bin/mlton-script M include/amd64-main.h M include/c-chunk.h M include/c-common.h M include/c-main.h M include/common-main.h M include/x86-main.h M lib/mlton/basic/directed-graph.sig M lib/mlton/basic/directed-graph.sml M lib/mlton/basic/hash-table.sig M lib/mlton/basic/hash-table.sml M lib/mlton/basic/hash.sig M lib/mlton/basic/hash.sml M lib/mlton/basic/vector.sig A lib/mlton/lattice/flat-lattice.fun A lib/mlton/lattice/flat-lattice.sig A lib/mlton/lattice/n-point-lattice.fun A lib/mlton/lattice/n-point-lattice.sig A lib/mlton/lattice/powerset-lattice.fun A lib/mlton/lattice/powerset-lattice.sig A lib/mlton/lattice/sources.cm A lib/mlton/lattice/sources.mlb A lib/mlton/lattice/three-point-lattice.fun A lib/mlton/lattice/three-point-lattice.sig A lib/mlton/lattice/two-point-lattice.fun A lib/mlton/lattice/two-point-lattice.sig M lib/mlton/sources.cm M lib/mlton/sources.mlb M mllex/Makefile M mlnlffigen/Makefile M mlprof/Makefile M mlton/.gitignore M mlton/Makefile M mlton/atoms/atoms.fun M mlton/atoms/atoms.sig M mlton/atoms/c-function.fun M mlton/atoms/c-function.sig M mlton/atoms/cases.fun M mlton/atoms/cases.sig M mlton/atoms/ffi.fun M mlton/atoms/ffi.sig A mlton/atoms/handler.fun A mlton/atoms/handler.sig M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/atoms/profile-label.fun M mlton/atoms/profile-label.sig A mlton/atoms/return.fun A mlton/atoms/return.sig A mlton/atoms/source-maps.fun A mlton/atoms/source-maps.sig M mlton/atoms/sources.cm M mlton/atoms/sources.mlb M mlton/backend/allocate-registers.fun M mlton/backend/allocate-registers.sig A mlton/backend/backend-atoms.fun A mlton/backend/backend-atoms.sig M mlton/backend/backend.fun M mlton/backend/backend.sig A mlton/backend/bounce-vars.fun M mlton/backend/chunkify.fun M mlton/backend/chunkify.sig M mlton/backend/equivalence-graph.fun M mlton/backend/implement-handlers.fun M mlton/backend/implement-profiling.fun R mlton/backend/implement-profiling.sig M mlton/backend/limit-check.fun R mlton/backend/live.fun R mlton/backend/live.sig M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/packed-representation.fun M mlton/backend/rep-type.fun M mlton/backend/rep-type.sig M mlton/backend/representation.sig A mlton/backend/rssa-live.fun A mlton/backend/rssa-live.sig A mlton/backend/rssa-restore.fun A mlton/backend/rssa-restore.sig A mlton/backend/rssa-simplify.fun A mlton/backend/rssa-simplify.sig M mlton/backend/rssa-transform.sig A mlton/backend/rssa-tree.fun A mlton/backend/rssa-tree.sig M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/backend/runtime.fun M mlton/backend/runtime.sig R mlton/backend/scale.fun R mlton/backend/scale.sig M mlton/backend/signal-check.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb R mlton/backend/ssa-to-rssa.fun R mlton/backend/ssa-to-rssa.sig A mlton/backend/ssa2-to-rssa.fun A mlton/backend/ssa2-to-rssa.sig M mlton/codegen/amd64-codegen/amd64-codegen.fun M mlton/codegen/amd64-codegen/amd64-entry-transfer.fun M mlton/codegen/amd64-codegen/amd64-generate-transfers.fun M mlton/codegen/amd64-codegen/amd64-jump-info.fun M mlton/codegen/amd64-codegen/amd64-live-transfers.fun M mlton/codegen/amd64-codegen/amd64-loop-info.fun M mlton/codegen/amd64-codegen/amd64-mlton-basic.fun M mlton/codegen/amd64-codegen/amd64-mlton-basic.sig M mlton/codegen/amd64-codegen/amd64-mlton.fun M mlton/codegen/amd64-codegen/amd64-mlton.sig M mlton/codegen/amd64-codegen/amd64-pseudo.sig M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/amd64-codegen/amd64-translate.sig M mlton/codegen/amd64-codegen/amd64.fun M mlton/codegen/amd64-codegen/amd64.sig M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/c-codegen/c-codegen.sig M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-codegen.fun M mlton/codegen/x86-codegen/x86-entry-transfer.fun M mlton/codegen/x86-codegen/x86-generate-transfers.fun M mlton/codegen/x86-codegen/x86-jump-info.fun M mlton/codegen/x86-codegen/x86-live-transfers.fun M mlton/codegen/x86-codegen/x86-loop-info.fun M mlton/codegen/x86-codegen/x86-mlton-basic.fun M mlton/codegen/x86-codegen/x86-mlton-basic.sig M mlton/codegen/x86-codegen/x86-mlton.fun M mlton/codegen/x86-codegen/x86-mlton.sig M mlton/codegen/x86-codegen/x86-pseudo.sig M mlton/codegen/x86-codegen/x86-translate.fun M mlton/codegen/x86-codegen/x86-translate.sig M mlton/codegen/x86-codegen/x86.fun M mlton/codegen/x86-codegen/x86.sig M mlton/control/bits.sml M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/control/control.sig M mlton/control/control.sml A mlton/control/scale.sml M mlton/control/sources.cm M mlton/control/sources.mlb M mlton/control/version_sml.src M mlton/core-ml/core-ml.fun M mlton/core-ml/core-ml.sig M mlton/defunctorize/defunctorize.fun M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-env.sig M mlton/elaborate/elaborate-modules.fun R mlton/front-end/Makefile M mlton/main/compile.fun M mlton/main/compile.sig M mlton/main/lookup-constant.fun M mlton/main/main.fun M mlton/match-compile/match-compile.fun M mlton/match-compile/match-compile.sig M mlton/ssa/direct-exp.fun R mlton/ssa/flat-lattice.fun R mlton/ssa/flat-lattice.sig M mlton/ssa/loop-unroll.fun M mlton/ssa/loop-unswitch.fun R mlton/ssa/n-point-lattice.fun R mlton/ssa/n-point-lattice.sig M mlton/ssa/shrink.fun M mlton/ssa/shrink2.fun M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun M mlton/ssa/sources.cm M mlton/ssa/sources.mlb M mlton/ssa/ssa-to-ssa2.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig R mlton/ssa/three-point-lattice.fun R mlton/ssa/three-point-lattice.sig R mlton/ssa/two-point-lattice.fun R mlton/ssa/two-point-lattice.sig M mlton/ssa/type-check.fun M mlton/ssa/type-check2.fun M mlton/xml/polyvariance.fun M mlton/xml/shrink.fun M mlton/xml/sxml-simplify.fun M mlton/xml/sxml.fun M mlton/xml/type-check.fun M mlton/xml/xml-simplify.fun M mlton/xml/xml-tree.fun M mlton/xml/xml-tree.sig M mlyacc/Makefile M package/debian/rules M runtime/Makefile M runtime/basis-ffi.h M runtime/basis/MLton/Rusage/rusage.c M runtime/basis/Posix/Process/fork.c M runtime/basis/Posix/Signal.c R runtime/basis/Real/Math-fns.h R runtime/basis/Real/Math.c M runtime/basis/Real/Real-ops.h M runtime/gc.h M runtime/gc/call-stack.c M runtime/gc/dfs-mark.c M runtime/gc/foreach.c M runtime/gc/frame.c M runtime/gc/frame.h M runtime/gc/gc_state.c M runtime/gc/gc_state.h M runtime/gc/handler.c M runtime/gc/handler.h M runtime/gc/init.c M runtime/gc/invariant.c M runtime/gc/profiling.c M runtime/gc/profiling.h M runtime/gc/signals.c M runtime/gc/signals.h M runtime/gc/sources.c M runtime/gc/sources.h M runtime/gc/stack.c M runtime/gc/stack.h M runtime/gen/basis-ffi.def M runtime/gen/basis-ffi.h M runtime/gen/basis-ffi.sml M runtime/platform.h Log Message: ----------- Merge branch 'master' into llvm-location-aliasing Commit: 19fb54865751866158bb26ac2301d605a5500781 https://github.com/MLton/mlton/commit/19fb54865751866158bb26ac2301d605a5500781 Author: Jason Carr <jca...@gm...> Date: 2019-06-21 (Fri, 21 Jun 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Add missing metadata from bad merge Commit: a4f9ef577e404d13c4589606680af104e43841b6 https://github.com/MLton/mlton/commit/a4f9ef577e404d13c4589606680af104e43841b6 Author: Jason Carr <jca...@gm...> Date: 2019-06-21 (Fri, 21 Jun 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Change aliasing information to not include offsets, only stack/heap/sequence Giving too much information causes unbearable slowdown in llvm, as the representation has n^2 size. There may be unforeseen correctness issues with aliasing. Commit: daa98a4d0918034fdf82accafb3df2f7302f3e95 https://github.com/MLton/mlton/commit/daa98a4d0918034fdf82accafb3df2f7302f3e95 Author: Jason Carr <jca...@gm...> Date: 2019-06-23 (Sun, 23 Jun 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Clean up unused portions of llvm-codegen Commit: fb9a449518d3f7bc4aebc6bcd7d69e55ff18f658 https://github.com/MLton/mlton/commit/fb9a449518d3f7bc4aebc6bcd7d69e55ff18f658 Author: Jason Carr <jca...@gm...> Date: 2019-06-25 (Tue, 25 Jun 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Use tbaa instead of alias.scope and return to detailed information Commit: ab7e2165e792eb9979ea971210fb3232b6867d33 https://github.com/MLton/mlton/commit/ab7e2165e792eb9979ea971210fb3232b6867d33 Author: Jason Carr <jca...@gm...> Date: 2019-06-26 (Wed, 26 Jun 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Check base type for Offset/SequenceOffset Commit: b2054be4cca2012764d04694e8d5a14c9c0106cf https://github.com/MLton/mlton/commit/b2054be4cca2012764d04694e8d5a14c9c0106cf Author: Jason Carr <jca...@gm...> Date: 2019-07-03 (Wed, 03 Jul 2019) Changed paths: R doc/guide/src/AllocateRegisters.adoc A doc/guide/src/AllocateVariables.adoc M doc/guide/src/CommonArg.adoc M doc/guide/src/IntermediateLanguage.adoc M doc/guide/src/Machine.adoc M doc/guide/src/ToMachine.adoc M lib/mlton/basic/parse.sig M lib/mlton/basic/parse.sml M mlton/atoms/id.fun R mlton/backend/allocate-registers.fun R mlton/backend/allocate-registers.sig A mlton/backend/allocate-variables.fun A mlton/backend/allocate-variables.sig M mlton/backend/backend.fun M mlton/backend/bounce-vars.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/parallel-move.fun M mlton/backend/parallel-move.sig M mlton/backend/sources.cm M mlton/backend/sources.mlb M mlton/codegen/amd64-codegen/amd64-codegen.fun M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-codegen.fun M mlton/codegen/x86-codegen/x86-translate.fun M mlton/main/compile.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/xml/xml-tree.fun Log Message: ----------- Merge 'master' into llvm-location-aliasing Commit: 8137a9207ca23d3302cc7d488f3af593469b29d5 https://github.com/MLton/mlton/commit/8137a9207ca23d3302cc7d488f3af593469b29d5 Author: Jason Carr <jca...@gm...> Date: 2019-07-05 (Fri, 05 Jul 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add flag to control whether to include llvm aliasing information Commit: 357a284408c4925e9bbda8e31e04cb1d9ecf7361 https://github.com/MLton/mlton/commit/357a284408c4925e9bbda8e31e04cb1d9ecf7361 Author: Jason Carr <jca...@gm...> Date: 2019-07-08 (Mon, 08 Jul 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- includeLLVMAlisingInfo -> llvmIncludeAliasingInfo Commit: 95e8e376a187c9e1755f5329887034e51ad977ad https://github.com/MLton/mlton/commit/95e8e376a187c9e1755f5329887034e51ad977ad Author: Jason Carr <jca...@gm...> Date: 2019-07-11 (Thu, 11 Jul 2019) Changed paths: M mlton/atoms/real-size.fun M mlton/atoms/real-size.sig M mlton/atoms/word-size.fun M mlton/atoms/word-size.sig M mlton/backend/rep-type.fun M mlton/backend/rep-type.sig M mlton/control/bits.sml Log Message: ----------- Add {RepType,WordSize,RealSize,Bits}.hash Commit: f9119debbddbd7fb175d8a4aa0194cf4748cf623 https://github.com/MLton/mlton/commit/f9119debbddbd7fb175d8a4aa0194cf4748cf623 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-17 (Wed, 17 Jul 2019) Changed paths: M mlton/backend/rep-type.fun Log Message: ----------- Quell unused variable warning Commit: 2911bd1f594b2436643ebfcefc62e7aec0c05935 https://github.com/MLton/mlton/commit/2911bd1f594b2436643ebfcefc62e7aec0c05935 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-17 (Wed, 17 Jul 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Quell unused variable warning Commit: c6aba7e6a7f9adabbb5cb79307f49580611b49bd https://github.com/MLton/mlton/commit/c6aba7e6a7f9adabbb5cb79307f49580611b49bd Author: Matthew Fluet <mat...@gm...> Date: 2019-07-17 (Wed, 17 Jul 2019) Changed paths: M mlton/backend/machine.fun Log Message: ----------- Refactor `Machine.Statement.object` Change the object allocation sequence from CW(Frontier) = header; dst = Frontier + NORMAL_METADATA_SIZE; Frontier += size; to dst = Frontier + NORMAL_METADATA_SIZE; OW(dst, ~GC_HEADER_SIZE) = header; Frontier += size; This ensures that the write to the heap is through an `Offset` operand with an `Objptr` base, so that the LLVM tbaa will treat the store as one into the heap. Commit: b787e91020c7798e20acdbc2f44dc86bd82c83ea https://github.com/MLton/mlton/commit/b787e91020c7798e20acdbc2f44dc86bd82c83ea Author: Matthew Fluet <mat...@gm...> Date: 2019-07-17 (Wed, 17 Jul 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Use `String.concatWith` for `LLVM.MetaData.defineNode` Commit: 1252d6f33eb9e07e2800ebb05eeef0cb27660cb6 https://github.com/MLton/mlton/commit/1252d6f33eb9e07e2800ebb05eeef0cb27660cb6 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-18 (Thu, 18 Jul 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Change `-llvm-include-aliasing-info {true|false}` to `-llvm-aamd {tbaa|none}` Commit: 96cb3c82b9d7bdc52a47a13533fa7369aae4d080 https://github.com/MLton/mlton/commit/96cb3c82b9d7bdc52a47a13533fa7369aae4d080 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-18 (Thu, 18 Jul 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Omit emitting any tbaa metadata with `-llvm-aamd none` Commit: 44b63d0793151fd491531f9b4381df8234e5ed81 https://github.com/MLton/mlton/commit/44b63d0793151fd491531f9b4381df8234e5ed81 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-18 (Thu, 18 Jul 2019) Changed paths: M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Change `-llvm-aamd` default from `tbaa` to `none` Commit: 596737e342cfcd7da36a6e9d7fda5053aba41745 https://github.com/MLton/mlton/commit/596737e342cfcd7da36a6e9d7fda5053aba41745 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-18 (Thu, 18 Jul 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Tweak formatting of generated .ll file with tbaa metadata Commit: a1faf761bdb211a81b0f6a95f5a749698b6891fa https://github.com/MLton/mlton/commit/a1faf761bdb211a81b0f6a95f5a749698b6891fa Author: Matthew Fluet <Mat...@gm...> Date: 2019-07-18 (Thu, 18 Jul 2019) Changed paths: M mlton/atoms/real-size.fun M mlton/atoms/real-size.sig M mlton/atoms/word-size.fun M mlton/atoms/word-size.sig M mlton/backend/machine.fun M mlton/backend/objptr-tycon.fun M mlton/backend/objptr-tycon.sig M mlton/backend/rep-type.fun M mlton/backend/rep-type.sig M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/control/bits.sml M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Merge pull request #324 from jasoncarr0/llvm-location-aliasing LLVM alias analysis metadata Add `-llvm-aamd {none|tbaa}` to control including alias-analysis metadata when compiling with LLVM. The `tbaa` option uses LLVM's type-based alias analysis metadata (which, while named "type-based", suffices to encode any hierarchical aliasing information). Unfortunately, there doesn't seem to be significant run-time performance improvements due to the aliasing information and there is some small compile-time performance penalty. Some notes for future improvements to the alias-analysis metadada: * The `{X86,AMD64}.MemLoc.Class.t` is used by the native codegens for (very rudimentary) may-alias analysis, where distinct classes are assumed to be disjoint. It uses `Heap`, `Stack`, `Locals` (for `Operand.Register`), `Globals`, and `GCState`. * According to the LLVM language reference, TBAA metadata should be an access tag, which references a type descriptor, but the TBAA metadata emitted by the LLVM codegen is just the type descriptor. That is, rather than %x = load i64, i64* %p, !tbaa !1 !0 = !{!"operRoot"} !1 = !{!"Stack 8", !0, i64 0} it should be %x = load i64, i64* %p, !tbaa !2 !0 = !{!"operRoot"} !1 = !{!"Stack 8", !0} !2 = !{!1, !1, i64 0} However, LLVM `opt` seems to recognize the former and translate it to the later. * The cost/benefit of including indices in the alias domains has not been fully investigated/justified. For example, rather than datatype t = Stack of int | Offset of int | SequenceOffset | Other the simpler datatype t = Heap | Stack | Other or, the more sophisticated datatype t = Object of ObjptrTycon.t option * int | Stack of int | Other There is one known complication with using `ObjptrTycon.t` for greater precision: a sequence may be accessed at two distinct `ObjptrTycon.t`s, once as an `array` and then as a `vector`, due to `Array_toVector`. However, such `ObjptrTycon.t`s would only differ in the `hasIdentity` component of their `OBJECT_TYPE.Sequence`, so it might suffice to map the two such corresponding `ObjptrTycon.t`s to a canonical representative for the purposes of assigning an aliasing domain. * There is a slight unsoundness with exception raising. With MLton/mlton#321, we now raise exception values via the ML stack. The key interaction with respect to aliasing information is at: https://github.com/MLton/mlton/pull/321/files#diff-bb88a6ee07c8d914cad73fe2a7bdee26R850 Essentially, we compute the new stack top in a temporary, then write via that temporary with an `Operand.Offset`, then (in the codegen implementation of `Machine.Transfer.Raise`), set the new stack top. So, this is a situation where we use `Operand.Offset` of a `CPointer`, but are actually writing to the ML stack. One possible "fix" might be to change | Stack of StackOffset.t to | Stack of {base: t option, offset: StackOffset.t} or even | Stack of {base: t, offset: StackOffset.t} Most of the time, `base` would be `NONE` or `StackTop`, but for the exception raising, we would use the temporary operand. In either case, we would know that the aliasing scope of a Stack operand was Stack. Compare: https://github.com/MLton/mlton/compare/4ea4dc6b61aa...a1faf761bdb2 |
From: Matthew F. <no...@gi...> - 2019-07-12 17:24:56
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 7fda3058cf023e9a075b8f55fabd4b03c7fcfd8f https://github.com/MLton/mlton/commit/7fda3058cf023e9a075b8f55fabd4b03c7fcfd8f Author: Jason Carr <jca...@gm...> Date: 2019-07-10 (Wed, 10 Jul 2019) Changed paths: M benchmark/main.sml M lib/mlton/basic/counter.sig M lib/mlton/basic/counter.sml M lib/mlton/basic/directed-graph.sml M lib/mlton/basic/directed-sub-graph.sml M lib/mlton/basic/regexp.sml M mlton/atoms/c-function.fun M mlton/atoms/ffi.fun M mlton/atoms/id.fun M mlton/atoms/profile-label.fun M mlton/backend/backend.fun M mlton/backend/implement-profiling.fun M mlton/backend/objptr-tycon.fun M mlton/backend/rssa-restore.fun M mlton/codegen/amd64-codegen/amd64-liveness.fun M mlton/codegen/amd64-codegen/amd64.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-liveness.fun M mlton/codegen/x86-codegen/x86.fun M mlton/elaborate/elaborate-env.fun M mlton/elaborate/type-env.fun M mlton/main/main.fun M mlton/ssa/common-subexp.fun M mlton/ssa/restore.fun M mlton/ssa/restore2.fun M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun M mlton/xml/sxml-simplify.fun M mlton/xml/xml-simplify.fun Log Message: ----------- Add Counter.generator for simple cases, and use Counter more often in code Commit: 8b5960b8d0605e73d34a635dbcbd8d0ec6d20b3f https://github.com/MLton/mlton/commit/8b5960b8d0605e73d34a635dbcbd8d0ec6d20b3f Author: Jason Carr <jca...@gm...> Date: 2019-07-10 (Wed, 10 Jul 2019) Changed paths: M lib/mlton/basic/hash-table.sig M lib/mlton/basic/hash-table.sml M lib/mlton/basic/string.sml M mlton/atoms/ffi.fun M mlton/atoms/id.fun M mlton/atoms/prim.fun M mlton/backend/backend.fun M mlton/backend/ssa2-to-rssa.fun M mlton/codegen/x86-codegen/x86-generate-transfers.fun M mlton/elaborate/elaborate-mlbs.fun M mlton/front-end/mlb-front-end.fun M mlton/main/lookup-constant.fun M mlton/ssa/loop-unroll.fun M mlton/xml/monomorphise.fun Log Message: ----------- Expand hash-table and use in more places Commit: ff6a758b91e72834e4dec903199989ade2d3a9f8 https://github.com/MLton/mlton/commit/ff6a758b91e72834e4dec903199989ade2d3a9f8 Author: Jason Carr <jca...@gm...> Date: 2019-07-10 (Wed, 10 Jul 2019) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Use Counters in ssa/loop-unroll.fun Commit: c29ce8672ee828e08b64908358a8ae3adde13735 https://github.com/MLton/mlton/commit/c29ce8672ee828e08b64908358a8ae3adde13735 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-11 (Thu, 11 Jul 2019) Changed paths: M mlton/atoms/source-info.fun Log Message: ----------- Use `HashTable.t` rather than `HashSet.t` Commit: a345199bf631a4df4e55b5528eba339358c93079 https://github.com/MLton/mlton/commit/a345199bf631a4df4e55b5528eba339358c93079 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-11 (Thu, 11 Jul 2019) Changed paths: M mlton/atoms/symbol.fun M mlton/atoms/symbol.sig Log Message: ----------- Use `HashTable.t` rather than `HashSet.t` Commit: 5129f2918cff1a5d78257a74c4a4f0816d8f9498 https://github.com/MLton/mlton/commit/5129f2918cff1a5d78257a74c4a4f0816d8f9498 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-12 (Fri, 12 Jul 2019) Changed paths: M mlton/ssa/global.fun M mlton/ssa/restore.fun M mlton/ssa/restore2.fun Log Message: ----------- Use `HashTable.t` rather than `HashSet.t` Commit: 080c04a218cf11f806c3dbf07f0da09dbc9b4073 https://github.com/MLton/mlton/commit/080c04a218cf11f806c3dbf07f0da09dbc9b4073 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-12 (Fri, 12 Jul 2019) Changed paths: M mlton/ssa/type-check.fun M mlton/ssa/type-check2.fun Log Message: ----------- Use `HashTable.t` rather than `HashSet.t` Commit: fd5b40b73894274ddfa89335dc6598238a7a5399 https://github.com/MLton/mlton/commit/fd5b40b73894274ddfa89335dc6598238a7a5399 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-12 (Fri, 12 Jul 2019) Changed paths: M mlton/ssa/duplicate-globals.fun Log Message: ----------- Use `HashTable.t` rather than `HashSet.t` Commit: 2a169dab97c1c402ad154f224836ed5660be1910 https://github.com/MLton/mlton/commit/2a169dab97c1c402ad154f224836ed5660be1910 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-12 (Fri, 12 Jul 2019) Changed paths: M mlton/backend/implement-profiling.fun M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Use more descriptive variable names One downside of replacing val c = Counter.new 0 ... Counter.next c ... with val c = Counter.generator 0 ... c () ... is that former is more clear that a counter is being incremented. When the `val c = Counter.generator 0` and the `c ()` are relatively close together, then it is may not be difficult to understand the meaning of the `c ()`. But, when they are far apart, it can be difficult to understand the meaning of `c ()`. One way to mitigate is to choose better variable names: val nextThing = Counter.generator 0 ... nextThing () ... Commit: 7c4f61fb501c3276016457a5f856d00e0f38f905 https://github.com/MLton/mlton/commit/7c4f61fb501c3276016457a5f856d00e0f38f905 Author: Matthew Fluet <mat...@gm...> Date: 2019-07-12 (Fri, 12 Jul 2019) Changed paths: M mlton/atoms/id.fun Log Message: ----------- Revert to using `Counter.t`, rather than `unit -> int` Commit: 4ea4dc6b61aac03d12043d796ba6e86945af6dbf https://github.com/MLton/mlton/commit/4ea4dc6b61aac03d12043d796ba6e86945af6dbf Author: Matthew Fluet <Mat...@gm...> Date: 2019-07-12 (Fri, 12 Jul 2019) Changed paths: M benchmark/main.sml M lib/mlton/basic/counter.sig M lib/mlton/basic/counter.sml M lib/mlton/basic/directed-graph.sml M lib/mlton/basic/directed-sub-graph.sml M lib/mlton/basic/hash-table.sig M lib/mlton/basic/hash-table.sml M lib/mlton/basic/regexp.sml M lib/mlton/basic/string.sml M mlton/atoms/c-function.fun M mlton/atoms/ffi.fun M mlton/atoms/id.fun M mlton/atoms/prim.fun M mlton/atoms/profile-label.fun M mlton/atoms/source-info.fun M mlton/atoms/symbol.fun M mlton/atoms/symbol.sig M mlton/backend/backend.fun M mlton/backend/implement-profiling.fun M mlton/backend/objptr-tycon.fun M mlton/backend/rssa-restore.fun M mlton/backend/ssa2-to-rssa.fun M mlton/codegen/amd64-codegen/amd64-liveness.fun M mlton/codegen/amd64-codegen/amd64.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-generate-transfers.fun M mlton/codegen/x86-codegen/x86-liveness.fun M mlton/codegen/x86-codegen/x86.fun M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-mlbs.fun M mlton/elaborate/type-env.fun M mlton/front-end/mlb-front-end.fun M mlton/main/lookup-constant.fun M mlton/main/main.fun M mlton/ssa/common-subexp.fun M mlton/ssa/duplicate-globals.fun M mlton/ssa/global.fun M mlton/ssa/loop-unroll.fun M mlton/ssa/restore.fun M mlton/ssa/restore2.fun M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun M mlton/ssa/type-check.fun M mlton/ssa/type-check2.fun M mlton/xml/monomorphise.fun M mlton/xml/sxml-simplify.fun M mlton/xml/xml-simplify.fun Log Message: ----------- Merge pull request #327 from jasoncarr0/sw-engineering Add `val Counter.generator: int -> (unit -> int)` for the common case of needing a unique value generator without `reset` and/or `peek`. Replace several uses of `Counter.new`/`Counter.next` with `Counter.generator`. Replace some uses of `int ref`s with `Counter.new` or `Counter.generator`. Replace some uses of `HashSet.t` with `HashTable.t`. Compare: https://github.com/MLton/mlton/compare/18e460af5879...4ea4dc6b61aa |
From: Matthew F. <no...@gi...> - 2019-06-27 16:37:51
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 7731566937305b9bd5d6009b23ed74f84a827c48 https://github.com/MLton/mlton/commit/7731566937305b9bd5d6009b23ed74f84a827c48 Author: Jason Carr <jca...@gm...> Date: 2019-06-21 (Fri, 21 Jun 2019) Changed paths: M mlton/backend/allocate-registers.fun M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/codegen/amd64-codegen/amd64-codegen.fun M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-codegen.fun M mlton/codegen/x86-codegen/x86-translate.fun Log Message: ----------- Rename Register -> Temporary (and similar) in machine.fun and codegens Commit: 3cd378abbb725adaa9e4f4f1a846ab1313415e8d https://github.com/MLton/mlton/commit/3cd378abbb725adaa9e4f4f1a846ab1313415e8d Author: Jason Carr <jca...@gm...> Date: 2019-06-21 (Fri, 21 Jun 2019) Changed paths: R mlton/backend/allocate-registers.fun R mlton/backend/allocate-registers.sig A mlton/backend/allocate-variables.fun A mlton/backend/allocate-variables.sig M mlton/backend/backend.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb Log Message: ----------- Change AllocateRegisters to AllocateVariables Since there are an infinite number of temporaries and stack slots, and we use only a simple greedy algorithm for this, the name AllocateRegisters (resp. AllocateTemporaries) is a bit of a misnomer. Rather than assign each temporary or stack slot to a variable, we assign to each variable a stack slot or temporary with no limit to the amount available. Commit: 6b83dc1d7bfcbcac9d62a1868a1ec53950408891 https://github.com/MLton/mlton/commit/6b83dc1d7bfcbcac9d62a1868a1ec53950408891 Author: Jason Carr <jca...@gm...> Date: 2019-06-21 (Fri, 21 Jun 2019) Changed paths: M mlton/backend/allocate-variables.fun M mlton/backend/allocate-variables.sig M mlton/backend/backend.fun M mlton/backend/bounce-vars.fun M mlton/backend/parallel-move.fun M mlton/backend/parallel-move.sig Log Message: ----------- Update additional comments and variables names to use temporaries Commit: 4018ddabaf0275428a16d7fbb02e781fbb22dbcf https://github.com/MLton/mlton/commit/4018ddabaf0275428a16d7fbb02e781fbb22dbcf Author: Jason Carr <jca...@gm...> Date: 2019-06-21 (Fri, 21 Jun 2019) Changed paths: M doc/guide/src/AllocateRegisters.adoc Log Message: ----------- Change documentation content for AllocateRegisters Commit: fa0f3943fce93e03dece48d19905115a73c32813 https://github.com/MLton/mlton/commit/fa0f3943fce93e03dece48d19905115a73c32813 Author: Jason Carr <jca...@gm...> Date: 2019-06-21 (Fri, 21 Jun 2019) Changed paths: R doc/guide/src/AllocateRegisters.adoc A doc/guide/src/AllocateVariables.adoc M doc/guide/src/CommonArg.adoc M doc/guide/src/ToMachine.adoc Log Message: ----------- Update documentation for register -> temporary rename. "Abstract register" is unchanged where it appears, but technical details use temporary. Commit: ec2e15ca8e6401184d4fc6cf94e0b8a9576bce5b https://github.com/MLton/mlton/commit/ec2e15ca8e6401184d4fc6cf94e0b8a9576bce5b Author: Jason Carr <jca...@gm...> Date: 2019-06-25 (Tue, 25 Jun 2019) Changed paths: M mlton/backend/allocate-variables.fun Log Message: ----------- Fix incorrectly renamed variable Commit: cff62e1faaabe1595ec1d543d00296caa2ad64bb https://github.com/MLton/mlton/commit/cff62e1faaabe1595ec1d543d00296caa2ad64bb Author: Jason Carr <jca...@gm...> Date: 2019-06-25 (Tue, 25 Jun 2019) Changed paths: M mlton/backend/allocate-variables.fun M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-translate.fun Log Message: ----------- Fix ordering and more variable names for Temporaries Commit: 66c9a0b13071f0348f69dbe20183499b5f318f37 https://github.com/MLton/mlton/commit/66c9a0b13071f0348f69dbe20183499b5f318f37 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-27 (Thu, 27 Jun 2019) Changed paths: M doc/guide/src/AllocateVariables.adoc M doc/guide/src/IntermediateLanguage.adoc M doc/guide/src/Machine.adoc Log Message: ----------- Eliminate additional references to `registers` in documentation Commit: be55e84d982f03a6e07f30353204ddc039023c46 https://github.com/MLton/mlton/commit/be55e84d982f03a6e07f30353204ddc039023c46 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-27 (Thu, 27 Jun 2019) Changed paths: M mlton/backend/machine.fun Log Message: ----------- Update `Machine.Temporary.layout` to use `"T"` (rather than `"R"`) Commit: fd96bdcdf2fab775e19b4e38ad91bb7850b0c67f https://github.com/MLton/mlton/commit/fd96bdcdf2fab775e19b4e38ad91bb7850b0c67f Author: Matthew Fluet <mat...@gm...> Date: 2019-06-27 (Thu, 27 Jun 2019) Changed paths: M mlton/backend/allocate-variables.fun Log Message: ----------- Fix `Error.bug` and `Trace.trace<n>` names in `AllocateVariables` Commit: 252b70f442736e0bd3d8e5092a0450a1b01b0909 https://github.com/MLton/mlton/commit/252b70f442736e0bd3d8e5092a0450a1b01b0909 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-27 (Thu, 27 Jun 2019) Changed paths: M mlton/backend/machine.fun M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-translate.fun Log Message: ----------- Alphabetize `case` expressions using `Temporary` Commit: 1ff180958ea1a744f1b3865234321634faf61689 https://github.com/MLton/mlton/commit/1ff180958ea1a744f1b3865234321634faf61689 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-27 (Thu, 27 Jun 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Rename `*reg` variables to `*temp` variables in `LLVMCodegen` Commit: 18e460af587932723a74d297eaab78fa4439a288 https://github.com/MLton/mlton/commit/18e460af587932723a74d297eaab78fa4439a288 Author: Matthew Fluet <Mat...@gm...> Date: 2019-06-27 (Thu, 27 Jun 2019) Changed paths: R doc/guide/src/AllocateRegisters.adoc A doc/guide/src/AllocateVariables.adoc M doc/guide/src/CommonArg.adoc M doc/guide/src/IntermediateLanguage.adoc M doc/guide/src/Machine.adoc M doc/guide/src/ToMachine.adoc R mlton/backend/allocate-registers.fun R mlton/backend/allocate-registers.sig A mlton/backend/allocate-variables.fun A mlton/backend/allocate-variables.sig M mlton/backend/backend.fun M mlton/backend/bounce-vars.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/parallel-move.fun M mlton/backend/parallel-move.sig M mlton/backend/sources.cm M mlton/backend/sources.mlb M mlton/codegen/amd64-codegen/amd64-codegen.fun M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-codegen.fun M mlton/codegen/x86-codegen/x86-translate.fun Log Message: ----------- Merge pull request #325 from jasoncarr0/rename-register Rename `functor AllocateRegisters` to `functor AllocateVariables`. Rename `structure Machine.Register` to `structure Machine.Temporary`. Rename `register/reg/r` variables to `temporary/temp/t` variables. Since there are an infinite number of temporaries and stack slots, and we use only a simple greedy algorithm for this, the name `AllocateRegisters` (resp. `AllocateTemporaries`) is a bit of a misnomer. Compare: https://github.com/MLton/mlton/compare/df2f58107fc4...18e460af5879 |
From: Matthew F. <no...@gi...> - 2019-06-21 18:43:43
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: eb5843458dcf17a86b3f8ebd00797db9b9a8c17f https://github.com/MLton/mlton/commit/eb5843458dcf17a86b3f8ebd00797db9b9a8c17f Author: Jason Carr <jca...@gm...> Date: 2019-06-09 (Sun, 09 Jun 2019) Changed paths: M lib/mlton/basic/parse.sml Log Message: ----------- Begin changing types for lib/mlton/basic/parse.sml to be more efficient There are three changes: Instead of using a thunked char stream datastructure, use StreamIO.instream; Include first-character information when available (many monadic uses are guarded by one character); Remove failCut, as it was only used for end of file (Which can be easily handled by the parsing function to the same effect) Commit: 8ee50d89c42fd95c48484ecf4c6e44f68028a61a https://github.com/MLton/mlton/commit/8ee50d89c42fd95c48484ecf4c6e44f68028a61a Author: Jason Carr <jca...@gm...> Date: 2019-06-09 (Sun, 09 Jun 2019) Changed paths: M lib/mlton/basic/parse.sml Log Message: ----------- Update some more primitives in lib/mlton/basic/parse.sml Commit: 481d2adb8dfb807d96f010b9e632a295969446e2 https://github.com/MLton/mlton/commit/481d2adb8dfb807d96f010b9e632a295969446e2 Author: Jason Carr <jca...@gm...> Date: 2019-06-10 (Mon, 10 Jun 2019) Changed paths: M lib/mlton/basic/parse.sml Log Message: ----------- Make more updates to parse.sml Commit: 8a47b3ca8b9b2d84d3529eef0dcff71d2e69a1a5 https://github.com/MLton/mlton/commit/8a47b3ca8b9b2d84d3529eef0dcff71d2e69a1a5 Author: Jason Carr <jca...@gm...> Date: 2019-06-10 (Mon, 10 Jun 2019) Changed paths: M lib/mlton/basic/parse.sml Log Message: ----------- Continue making progress on parse changes Commit: 4931489822dcbf111e708757d74a8fee63e9808e https://github.com/MLton/mlton/commit/4931489822dcbf111e708757d74a8fee63e9808e Author: Jason Carr <jca...@gm...> Date: 2019-06-10 (Mon, 10 Jun 2019) Changed paths: M lib/mlton/basic/parse.sml Log Message: ----------- Fix remaining type errors with parse implementations Commit: 5b19bc9ccd0fc421bf89ef221d5d962ed9fad3bf https://github.com/MLton/mlton/commit/5b19bc9ccd0fc421bf89ef221d5d962ed9fad3bf Author: Jason Carr <jca...@gm...> Date: 2019-06-10 (Mon, 10 Jun 2019) Changed paths: M lib/mlton/basic/parse.sig M lib/mlton/basic/parse.sml Log Message: ----------- Update parse.sig to remove cuts Commit: 40e053e420766644365d95b92d3cc71da3a99145 https://github.com/MLton/mlton/commit/40e053e420766644365d95b92d3cc71da3a99145 Author: Jason Carr <jca...@gm...> Date: 2019-06-11 (Tue, 11 Jun 2019) Changed paths: M lib/mlton/basic/parse.sig Log Message: ----------- Remove Parse.compose There are a couple issues with the existing Parse.compose: 1. It acts incorrectly if the second parser fails to consume all input from the first: The remainder of the output from parser 1 will be left in the state, and be processed again. This is unproblematic in our particular usage: removing comments at the top-level of a program parse. 2. It is very difficult to implement efficiently. Since the parsers now work on vectors, it seems difficult to efficiently produce the vectors desired by the second parser. Since the only usage present was by comment removal, and this only produced a space, single character, or string (that may contain comment delimeters), it will be integrated into other methods consuming spaces or strings, which is also a simplification. This means that some parse errors are different: namely, data(* a comment *)type will give an error upon reaching the first '(', whereas compose would have produced 'data type', which could give an error at the space or the start of type. Commit: d1888f724fc6fabadd7de336456031c129acab70 https://github.com/MLton/mlton/commit/d1888f724fc6fabadd7de336456031c129acab70 Author: Jason Carr <jca...@gm...> Date: 2019-06-11 (Tue, 11 Jun 2019) Changed paths: M lib/mlton/basic/parse.sig M lib/mlton/basic/parse.sml Log Message: ----------- Add mlComment and mlSpaces to Parse mlSpaces parses any number of spaces or comments Commit: 03753463a11cdfcb0b51634aba351bef91c0ca5a https://github.com/MLton/mlton/commit/03753463a11cdfcb0b51634aba351bef91c0ca5a Author: Jason Carr <jca...@gm...> Date: 2019-06-11 (Tue, 11 Jun 2019) Changed paths: M lib/mlton/basic/parse.sml Log Message: ----------- Add parse{File/Stream/String} functions to parse.sml Commit: 1a4ae77971d0a0d2d7d142bea4f59780ecb13a0c https://github.com/MLton/mlton/commit/1a4ae77971d0a0d2d7d142bea4f59780ecb13a0c Author: Jason Carr <jca...@gm...> Date: 2019-06-11 (Tue, 11 Jun 2019) Changed paths: M lib/mlton/basic/parse.sml Log Message: ----------- Fix remaining case errors in Parse.sml Commit: 051a6131f4705ffec0b8328185aaf04d4751f28f https://github.com/MLton/mlton/commit/051a6131f4705ffec0b8328185aaf04d4751f28f Author: Jason Carr <jca...@gm...> Date: 2019-06-11 (Tue, 11 Jun 2019) Changed paths: M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/xml/xml-tree.fun Log Message: ----------- Change all parsePrograms to use modified parse Commit: 51ad78b123f43fb53bd78d613e9a8bcabf2ba564 https://github.com/MLton/mlton/commit/51ad78b123f43fb53bd78d613e9a8bcabf2ba564 Author: Jason Carr <jca...@gm...> Date: 2019-06-11 (Tue, 11 Jun 2019) Changed paths: M lib/mlton/basic/parse.sml Log Message: ----------- Consistently use String instead of Vector for non-mlton builds Commit: 1b7d89ffc93f0b671c8f22ff3fc45b10ad6406bb https://github.com/MLton/mlton/commit/1b7d89ffc93f0b671c8f22ff3fc45b10ad6406bb Author: Jason Carr <jca...@gm...> Date: 2019-06-11 (Tue, 11 Jun 2019) Changed paths: M lib/mlton/basic/parse.sml Log Message: ----------- Make a few fixes to parse.sml Commit: 557b658d9f09520edf15f975c497e83af74d7fbc https://github.com/MLton/mlton/commit/557b658d9f09520edf15f975c497e83af74d7fbc Author: Jason Carr <jca...@gm...> Date: 2019-06-12 (Wed, 12 Jun 2019) Changed paths: M lib/mlton/basic/parse.sig M lib/mlton/basic/parse.sml M mlton/atoms/id.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- Fix locations in new parse Commit: 31bd99430b7d6fb63196c33c496df7c8296f01a3 https://github.com/MLton/mlton/commit/31bd99430b7d6fb63196c33c496df7c8296f01a3 Author: Jason Carr <jca...@gm...> Date: 2019-06-12 (Wed, 12 Jun 2019) Changed paths: M lib/mlton/basic/parse.sml M mlton/atoms/id.fun Log Message: ----------- Fix some issues with parsing Commit: df15b93ff088624c7b7f6a45ccb8263ec1e2d418 https://github.com/MLton/mlton/commit/df15b93ff088624c7b7f6a45ccb8263ec1e2d418 Author: Jason Carr <jca...@gm...> Date: 2019-06-14 (Fri, 14 Jun 2019) Changed paths: M lib/mlton/basic/parse.sml Log Message: ----------- Union names together in parsers instead of concatenating Commit: 69921ce8749ce9c9157afad4b8c4a7233a3430b6 https://github.com/MLton/mlton/commit/69921ce8749ce9c9157afad4b8c4a7233a3430b6 Author: Jason Carr <jca...@gm...> Date: 2019-06-14 (Fri, 14 Jun 2019) Changed paths: M lib/mlton/basic/parse.sml Log Message: ----------- Convert any to better handle first sets Commit: fa16e1bfdec154156b59416c8393a1fddfdad5fc https://github.com/MLton/mlton/commit/fa16e1bfdec154156b59416c8393a1fddfdad5fc Author: Jason Carr <jca...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M lib/mlton/basic/parse.sml Log Message: ----------- Change parse stream back to simple char stream Commit: 91158418e9352b6dd23ecae65407a0adccc29575 https://github.com/MLton/mlton/commit/91158418e9352b6dd23ecae65407a0adccc29575 Author: Jason Carr <jca...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/xml/xml-tree.fun Log Message: ----------- Add names to remaining IRs, slowing them down some Commit: bb535bde34373e5da4c30f820481d28dadc8051b https://github.com/MLton/mlton/commit/bb535bde34373e5da4c30f820481d28dadc8051b Author: Jason Carr <jca...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M lib/mlton/basic/parse.sml Log Message: ----------- Change parse state type to include furthest error information Commit: 4b6ea99b244ebbeee93f8da419e9f32962852d52 https://github.com/MLton/mlton/commit/4b6ea99b244ebbeee93f8da419e9f32962852d52 Author: Jason Carr <jca...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M lib/mlton/basic/parse.sml Log Message: ----------- Add lastError and stack to parse state lastError allows us to possibly give better messages when we have a case like `many x *> y`, so that the error reported comes from trying to parse x rather than y (which we expect to fail more easily). It is not fully functional in this commit. Putting the stack in the parse state should improve the performance of adding to the stack versus stacking closures Commit: c5b2cecbb4a143f9e6d73e895138d5c9d556a9cd https://github.com/MLton/mlton/commit/c5b2cecbb4a143f9e6d73e895138d5c9d556a9cd Author: Jason Carr <jca...@gm...> Date: 2019-06-19 (Wed, 19 Jun 2019) Changed paths: M lib/mlton/basic/parse.sml Log Message: ----------- Fix Parse lastError Commit: 1c09ab7817baed21bf8ed4cd104e14b54ce0bbbd https://github.com/MLton/mlton/commit/1c09ab7817baed21bf8ed4cd104e14b54ce0bbbd Author: Jason Carr <jca...@gm...> Date: 2019-06-19 (Wed, 19 Jun 2019) Changed paths: M lib/mlton/basic/parse.sig M lib/mlton/basic/parse.sml M mlton/main/compile.fun Log Message: ----------- Use error locations and Layout.t for IR parsing errors Commit: da60d871128c14a87d27431700c9e38d2c5f8a00 https://github.com/MLton/mlton/commit/da60d871128c14a87d27431700c9e38d2c5f8a00 Author: Jason Carr <jca...@gm...> Date: 2019-06-20 (Thu, 20 Jun 2019) Changed paths: M lib/mlton/basic/parse.sml Log Message: ----------- Use lastError correctly in Parse.any Commit: 5101db94337c99a6a8ab8a0ea9cb0eb2616077e6 https://github.com/MLton/mlton/commit/5101db94337c99a6a8ab8a0ea9cb0eb2616077e6 Author: Jason Carr <jca...@gm...> Date: 2019-06-20 (Thu, 20 Jun 2019) Changed paths: M lib/mlton/basic/parse.sml Log Message: ----------- Remove stack from Parse Commit: 59da77bb10bf10d2cdc89f5ca90749be1ebaa4f3 https://github.com/MLton/mlton/commit/59da77bb10bf10d2cdc89f5ca90749be1ebaa4f3 Author: Jason Carr <jca...@gm...> Date: 2019-06-20 (Thu, 20 Jun 2019) Changed paths: M mlton/xml/xml-tree.fun Log Message: ----------- Make some optimizations to SXML parse Commit: 03d7e211ff98afe820bd47900c32a07476a9554e https://github.com/MLton/mlton/commit/03d7e211ff98afe820bd47900c32a07476a9554e Author: Jason Carr <jca...@gm...> Date: 2019-06-21 (Fri, 21 Jun 2019) Changed paths: M mlton/xml/xml-tree.fun Log Message: ----------- Use "con" instead of "new" for ConApps in XML/SXML, for consistency with SSA/SSA2 Commit: 56c01e505b075092492c1157fe44a08289a5245a https://github.com/MLton/mlton/commit/56c01e505b075092492c1157fe44a08289a5245a Author: Jason Carr <jca...@gm...> Date: 2019-06-21 (Fri, 21 Jun 2019) Changed paths: M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- Remove names in ssa and ssa2 Commit: b41414baa4e6b96470b760236966e7914624a31d https://github.com/MLton/mlton/commit/b41414baa4e6b96470b760236966e7914624a31d Author: Jason Carr <jca...@gm...> Date: 2019-06-21 (Fri, 21 Jun 2019) Changed paths: M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/xml/xml-tree.fun Log Message: ----------- Parse spaces before any [kw ... ,kw ...] for minor performance impact via first sets Commit: dca8771786377f04b65468b419f67a0847abcfe2 https://github.com/MLton/mlton/commit/dca8771786377f04b65468b419f67a0847abcfe2 Author: Jason Carr <jca...@gm...> Date: 2019-06-21 (Fri, 21 Jun 2019) Changed paths: M CHANGELOG.adoc M LICENSE M Makefile A Makefile.config M README.adoc M basis-library/Makefile M basis-library/mlton/call-stack.sml M basis-library/mlton/cont.sml M basis-library/mlton/exit.sml M basis-library/mlton/gc.sml M basis-library/mlton/profile.sml M basis-library/mlton/rusage.sml M basis-library/mlton/signal.sml M basis-library/mlton/thread.sml M basis-library/mlton/world.sml M basis-library/primitive/basis-ffi.sml M basis-library/primitive/prim-mlton.sml M basis-library/primitive/prim2.sml M benchmark/Makefile M bin/mlton-script M include/amd64-main.h M include/c-chunk.h M include/c-common.h M include/c-main.h M include/common-main.h M include/x86-main.h M lib/mlton/basic/directed-graph.sig M lib/mlton/basic/directed-graph.sml M lib/mlton/basic/hash-table.sig M lib/mlton/basic/hash-table.sml M lib/mlton/basic/hash.sig M lib/mlton/basic/hash.sml M lib/mlton/basic/vector.sig A lib/mlton/lattice/flat-lattice.fun A lib/mlton/lattice/flat-lattice.sig A lib/mlton/lattice/n-point-lattice.fun A lib/mlton/lattice/n-point-lattice.sig A lib/mlton/lattice/powerset-lattice.fun A lib/mlton/lattice/powerset-lattice.sig A lib/mlton/lattice/sources.cm A lib/mlton/lattice/sources.mlb A lib/mlton/lattice/three-point-lattice.fun A lib/mlton/lattice/three-point-lattice.sig A lib/mlton/lattice/two-point-lattice.fun A lib/mlton/lattice/two-point-lattice.sig M lib/mlton/sources.cm M lib/mlton/sources.mlb M mllex/Makefile M mlnlffigen/Makefile M mlprof/Makefile M mlton/.gitignore M mlton/Makefile M mlton/atoms/atoms.fun M mlton/atoms/atoms.sig M mlton/atoms/c-function.fun M mlton/atoms/c-function.sig M mlton/atoms/cases.fun M mlton/atoms/cases.sig M mlton/atoms/ffi.fun M mlton/atoms/ffi.sig A mlton/atoms/handler.fun A mlton/atoms/handler.sig M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/atoms/profile-label.fun M mlton/atoms/profile-label.sig A mlton/atoms/return.fun A mlton/atoms/return.sig A mlton/atoms/source-maps.fun A mlton/atoms/source-maps.sig M mlton/atoms/sources.cm M mlton/atoms/sources.mlb M mlton/backend/allocate-registers.fun M mlton/backend/allocate-registers.sig A mlton/backend/backend-atoms.fun A mlton/backend/backend-atoms.sig M mlton/backend/backend.fun M mlton/backend/backend.sig A mlton/backend/bounce-vars.fun M mlton/backend/chunkify.fun M mlton/backend/chunkify.sig M mlton/backend/equivalence-graph.fun M mlton/backend/implement-handlers.fun M mlton/backend/implement-profiling.fun R mlton/backend/implement-profiling.sig M mlton/backend/limit-check.fun R mlton/backend/live.fun R mlton/backend/live.sig M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/packed-representation.fun M mlton/backend/rep-type.fun M mlton/backend/rep-type.sig M mlton/backend/representation.sig A mlton/backend/rssa-live.fun A mlton/backend/rssa-live.sig A mlton/backend/rssa-restore.fun A mlton/backend/rssa-restore.sig A mlton/backend/rssa-simplify.fun A mlton/backend/rssa-simplify.sig M mlton/backend/rssa-transform.sig A mlton/backend/rssa-tree.fun A mlton/backend/rssa-tree.sig M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/backend/runtime.fun M mlton/backend/runtime.sig R mlton/backend/scale.fun R mlton/backend/scale.sig M mlton/backend/signal-check.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb R mlton/backend/ssa-to-rssa.fun R mlton/backend/ssa-to-rssa.sig A mlton/backend/ssa2-to-rssa.fun A mlton/backend/ssa2-to-rssa.sig M mlton/codegen/amd64-codegen/amd64-codegen.fun M mlton/codegen/amd64-codegen/amd64-entry-transfer.fun M mlton/codegen/amd64-codegen/amd64-generate-transfers.fun M mlton/codegen/amd64-codegen/amd64-jump-info.fun M mlton/codegen/amd64-codegen/amd64-live-transfers.fun M mlton/codegen/amd64-codegen/amd64-loop-info.fun M mlton/codegen/amd64-codegen/amd64-mlton-basic.fun M mlton/codegen/amd64-codegen/amd64-mlton-basic.sig M mlton/codegen/amd64-codegen/amd64-mlton.fun M mlton/codegen/amd64-codegen/amd64-mlton.sig M mlton/codegen/amd64-codegen/amd64-pseudo.sig M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/amd64-codegen/amd64-translate.sig M mlton/codegen/amd64-codegen/amd64.fun M mlton/codegen/amd64-codegen/amd64.sig M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/c-codegen/c-codegen.sig M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-codegen.fun M mlton/codegen/x86-codegen/x86-entry-transfer.fun M mlton/codegen/x86-codegen/x86-generate-transfers.fun M mlton/codegen/x86-codegen/x86-jump-info.fun M mlton/codegen/x86-codegen/x86-live-transfers.fun M mlton/codegen/x86-codegen/x86-loop-info.fun M mlton/codegen/x86-codegen/x86-mlton-basic.fun M mlton/codegen/x86-codegen/x86-mlton-basic.sig M mlton/codegen/x86-codegen/x86-mlton.fun M mlton/codegen/x86-codegen/x86-mlton.sig M mlton/codegen/x86-codegen/x86-pseudo.sig M mlton/codegen/x86-codegen/x86-translate.fun M mlton/codegen/x86-codegen/x86-translate.sig M mlton/codegen/x86-codegen/x86.fun M mlton/codegen/x86-codegen/x86.sig M mlton/control/bits.sml M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/control/control.sig M mlton/control/control.sml A mlton/control/scale.sml M mlton/control/sources.cm M mlton/control/sources.mlb M mlton/control/version_sml.src M mlton/core-ml/core-ml.fun M mlton/core-ml/core-ml.sig M mlton/defunctorize/defunctorize.fun M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-env.sig M mlton/elaborate/elaborate-modules.fun R mlton/front-end/Makefile M mlton/main/compile.fun M mlton/main/compile.sig M mlton/main/lookup-constant.fun M mlton/main/main.fun M mlton/match-compile/match-compile.fun M mlton/match-compile/match-compile.sig M mlton/ssa/direct-exp.fun R mlton/ssa/flat-lattice.fun R mlton/ssa/flat-lattice.sig M mlton/ssa/loop-unroll.fun M mlton/ssa/loop-unswitch.fun R mlton/ssa/n-point-lattice.fun R mlton/ssa/n-point-lattice.sig M mlton/ssa/shrink.fun M mlton/ssa/shrink2.fun M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun M mlton/ssa/sources.cm M mlton/ssa/sources.mlb M mlton/ssa/ssa-to-ssa2.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig R mlton/ssa/three-point-lattice.fun R mlton/ssa/three-point-lattice.sig R mlton/ssa/two-point-lattice.fun R mlton/ssa/two-point-lattice.sig M mlton/ssa/type-check.fun M mlton/ssa/type-check2.fun M mlton/xml/polyvariance.fun M mlton/xml/shrink.fun M mlton/xml/sxml-simplify.fun M mlton/xml/sxml.fun M mlton/xml/type-check.fun M mlton/xml/xml-simplify.fun M mlton/xml/xml-tree.fun M mlton/xml/xml-tree.sig M mlyacc/Makefile M package/debian/rules M runtime/Makefile M runtime/basis-ffi.h M runtime/basis/MLton/Rusage/rusage.c M runtime/basis/Posix/Process/fork.c M runtime/basis/Posix/Signal.c R runtime/basis/Real/Math-fns.h R runtime/basis/Real/Math.c M runtime/basis/Real/Real-ops.h M runtime/gc.h M runtime/gc/call-stack.c M runtime/gc/dfs-mark.c M runtime/gc/foreach.c M runtime/gc/frame.c M runtime/gc/frame.h M runtime/gc/gc_state.c M runtime/gc/gc_state.h M runtime/gc/handler.c M runtime/gc/handler.h M runtime/gc/init.c M runtime/gc/invariant.c M runtime/gc/profiling.c M runtime/gc/profiling.h M runtime/gc/signals.c M runtime/gc/signals.h M runtime/gc/sources.c M runtime/gc/sources.h M runtime/gc/stack.c M runtime/gc/stack.h M runtime/gen/basis-ffi.def M runtime/gen/basis-ffi.h M runtime/gen/basis-ffi.sml M runtime/platform.h Log Message: ----------- Merge branch 'master' into efficient-ir-parsing Commit: b21675c42a492ce460abb45e11f334476deb018e https://github.com/MLton/mlton/commit/b21675c42a492ce460abb45e11f334476deb018e Author: Jason Carr <jca...@gm...> Date: 2019-06-21 (Fri, 21 Jun 2019) Changed paths: M mlton/main/compile.fun Log Message: ----------- Fix merge from master Commit: b43ac857bdbe2769483468384433e342168c68ab https://github.com/MLton/mlton/commit/b43ac857bdbe2769483468384433e342168c68ab Author: Matthew Fluet <mat...@gm...> Date: 2019-06-21 (Fri, 21 Jun 2019) Changed paths: M lib/mlton/basic/parse.sig Log Message: ----------- Move `ml{Comment,Spaces}` specs above comment for other parsers Commit: a9f6765d2aa54dec272f1e13b42746dd2e644fd8 https://github.com/MLton/mlton/commit/a9f6765d2aa54dec272f1e13b42746dd2e644fd8 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-21 (Fri, 21 Jun 2019) Changed paths: M mlton/main/compile.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- Cleanup whitespace Commit: df2f58107fc4c67221492446d3f3c49df0386256 https://github.com/MLton/mlton/commit/df2f58107fc4c67221492446d3f3c49df0386256 Author: Matthew Fluet <Mat...@gm...> Date: 2019-06-21 (Fri, 21 Jun 2019) Changed paths: M lib/mlton/basic/parse.sig M lib/mlton/basic/parse.sml M mlton/atoms/id.fun M mlton/main/compile.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/xml/xml-tree.fun Log Message: ----------- Merge pull request #323 from jasoncarr0/efficient-ir-parsing Improved IR parsing efficiency and error locations The parsing library in `lib/mlton/basic/parse.{sig,sml}` was changed: - Parsers now record some static information about their first sets, so that parsers like `any` can prune options more effectively, reducing time and space requirements. - Removed `compose`, due to correctness and potential performance issues. - Added `mlComment` and `mlSpaces`. The former parses arbitrarily nested ML comments. The latter parses any number of spaces or comments. Since the old comments turned into a space, this is effectively inlining it. This simplifies the logic by not requiring the comment parser to be aware of strings, although in some cases error messages may be changed. - Backtracking parsers, when they fail to parse, will record the furthest error received. This error will be reported if it is farther in the file then the error received after backtracking. So for example, this will mean that `many x *> y`, will report the error while parsing `x` if it is further in the file than the attempted parse of `y` from the start of `x`. This is particular important for (S)XML errors, as the recursive nature often runs into this issue. - The location of the error is now reported correctly in the frontend, rather than just the failure message. - In {,S}XML ILs, `new` is changed to `con` for consistency with SSA{,2} ILs. Also, `val rec` is changed to `fun` to enable better backtracking (a small speedup, on the order of a few percent). Parse functions are not changed significantly. In some of the `functor <IL>Tree` parsers, `mlSpaces` are sometimes read before large `any` cases, to improve the accuracy of first sets. Most monadic uses are guarded by static strings, and seem to be optimized well, so there appears to be little performance impact to switching to more applicative combinator uses. This improves the speed of parsing by around 2-3 times. This still doesn't bring it into a great range for larger files, but is sensible. Parsing speed is best for the SSA IL. Compare: https://github.com/MLton/mlton/compare/dff7cfe9d33d...df2f58107fc4 |
From: Matthew F. <no...@gi...> - 2019-06-21 00:45:55
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 25c13ace232c2cc2b4037ef3fc192b940099be15 https://github.com/MLton/mlton/commit/25c13ace232c2cc2b4037ef3fc192b940099be15 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-20 (Thu, 20 Jun 2019) Changed paths: M mlton/Makefile Log Message: ----------- Exclude `control/version.sml` as a dependency of `mlton-stubs.mlb` Commit: af63c9c2219ebdcce5a67e7baa07491977e3c628 https://github.com/MLton/mlton/commit/af63c9c2219ebdcce5a67e7baa07491977e3c628 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-20 (Thu, 20 Jun 2019) Changed paths: M mlton/Makefile Log Message: ----------- Targets generated by `mlton -stop f` only depend on the `.mlb` files Commit: f9e3afece17a7359cd510cf6221e1853493178f8 https://github.com/MLton/mlton/commit/f9e3afece17a7359cd510cf6221e1853493178f8 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-20 (Thu, 20 Jun 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Comment to accommodate poor font-locking of string escapes Commit: 19c57236d35515fcac673ec5824f1cb589e36e43 https://github.com/MLton/mlton/commit/19c57236d35515fcac673ec5824f1cb589e36e43 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-20 (Thu, 20 Jun 2019) Changed paths: M mlton/backend/rep-type.fun Log Message: ----------- Reorder functions in `functor RepType` Put constructors for nodes first, before derived types. Commit: bcd373e146e1de5146e8ccf486d48a6777806fb2 https://github.com/MLton/mlton/commit/bcd373e146e1de5146e8ccf486d48a6777806fb2 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-20 (Thu, 20 Jun 2019) Changed paths: M mlton/control/control-flags.sml Log Message: ----------- Simplify initialization of default MLB path map Commit: fcaf0daeb92afdde625d8d7034bcf2ff0f3d97a1 https://github.com/MLton/mlton/commit/fcaf0daeb92afdde625d8d7034bcf2ff0f3d97a1 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-20 (Thu, 20 Jun 2019) Changed paths: M runtime/gc/profiling.h Log Message: ----------- Trailing whitespace Commit: a3ba94d18bf7f3443fe7c892bb15ef38fdf8e7f1 https://github.com/MLton/mlton/commit/a3ba94d18bf7f3443fe7c892bb15ef38fdf8e7f1 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-20 (Thu, 20 Jun 2019) Changed paths: M include/common-main.h Log Message: ----------- Whitespace Commit: dff7cfe9d33dcb69e9e5040df0bfd9967c9c562a https://github.com/MLton/mlton/commit/dff7cfe9d33dcb69e9e5040df0bfd9967c9c562a Author: Matthew Fluet <Mat...@gm...> Date: 2019-06-20 (Thu, 20 Jun 2019) Changed paths: M include/common-main.h M mlton/Makefile M mlton/backend/rep-type.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/control/control-flags.sml M runtime/gc/profiling.h Log Message: ----------- Merge pull request #322 from MatthewFluet/misc-cleanups Miscellaneous cleanups Compare: https://github.com/MLton/mlton/compare/65f2aa4409c1...dff7cfe9d33d |
From: Matthew F. <no...@gi...> - 2019-06-19 19:53:27
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 83da3e8e2ec5bc32b475ca01a406be8cb3dfdb03 https://github.com/MLton/mlton/commit/83da3e8e2ec5bc32b475ca01a406be8cb3dfdb03 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Rename and generalize `callReturnStackOffsets` to `paramOffsets` Commit: 4e3b615284e6b60f2181746e9e34583b3385b0fb https://github.com/MLton/mlton/commit/4e3b615284e6b60f2181746e9e34583b3385b0fb Author: Matthew Fluet <mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M mlton/backend/allocate-registers.fun M mlton/backend/allocate-registers.sig M mlton/backend/backend.fun Log Message: ----------- Rename and generalize `formalsStackOffsets` to `paramOffsets` Commit: d2af0f8809e0b9d37b75b2aa8befd7fa6e30a514 https://github.com/MLton/mlton/commit/d2af0f8809e0b9d37b75b2aa8befd7fa6e30a514 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/allocate-registers.fun M mlton/backend/backend.fun Log Message: ----------- Do not force function args to stack Although function arguments are passed via the stack, they could be allocated as registers. In practice, because of the stack limit check at the beginning of every function, all function args will be stack allocated, but that may be relaxed in the future. Commit: 0d072dd8fdc9c54158e311e74b7d71a45b69212f https://github.com/MLton/mlton/commit/0d072dd8fdc9c54158e311e74b7d71a45b69212f Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Update comments in `backend.fun` for Handler and ExnStack statements Commit: 6f9331cbc1fbfa31a3cf861aa4f0935fd7f7c163 https://github.com/MLton/mlton/commit/6f9331cbc1fbfa31a3cf861aa4f0935fd7f7c163 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Clarify `{return,raise}{Lives,Operands}` in `backend.fun` Commit: ec043833af576b4967277f516ffc2ebc2329c110 https://github.com/MLton/mlton/commit/ec043833af576b4967277f516ffc2ebc2329c110 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/machine.fun Log Message: ----------- Add comments on `Machine.Statement.object` Commit: 3709a423e63e4c2b10676fdeb77c4c7f7637edb1 https://github.com/MLton/mlton/commit/3709a423e63e4c2b10676fdeb77c4c7f7637edb1 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/machine.fun Log Message: ----------- Code formatting Commit: 2ca3a27e6374f5a04eddb9e0cdeb068a0594ffbf https://github.com/MLton/mlton/commit/2ca3a27e6374f5a04eddb9e0cdeb068a0594ffbf Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig Log Message: ----------- Rename `handles` field of `Machine.Kind.Handler` to `args` Commit: d3dc82729357d63dc3b4863130d7c5b853e194e8 https://github.com/MLton/mlton/commit/d3dc82729357d63dc3b4863130d7c5b853e194e8 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add `-raise-style {globals}` expert compile-time option Commit: ad4017eff38e49d74fa0884cbb491470d7344e31 https://github.com/MLton/mlton/commit/ad4017eff38e49d74fa0884cbb491470d7344e31 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/allocate-registers.fun M mlton/backend/machine.fun M mlton/control/bits.sml Log Message: ----------- Check that frame sizes are sufficiently aligned Commit: 108ed7128ccb4328a43c81c7fc63c1ab65e74979 https://github.com/MLton/mlton/commit/108ed7128ccb4328a43c81c7fc63c1ab65e74979 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/allocate-registers.fun Log Message: ----------- Reorganize code in `functor AllocateRegisters` Commit: fb8cd3b8bdf5cf17fc40f1cbc39113f82400836b https://github.com/MLton/mlton/commit/fb8cd3b8bdf5cf17fc40f1cbc39113f82400836b Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/allocate-registers.fun Log Message: ----------- Ensure that handlerOffset is sufficiently aligned Commit: d445edfe4a95876c21ed776c1641d64fbd4041b5 https://github.com/MLton/mlton/commit/d445edfe4a95876c21ed776c1641d64fbd4041b5 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/allocate-registers.fun M mlton/backend/allocate-registers.sig M mlton/backend/backend.fun Log Message: ----------- Rename `handlerLinkOffset` to `handlersInfo` in `functor AllocateRegisters` Commit: af87f0cb2c4a75f5550e9dac03b6a19205143100 https://github.com/MLton/mlton/commit/af87f0cb2c4a75f5550e9dac03b6a19205143100 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add `stack` to `-raise-style` compile-time option Commit: 6e42660ce80432cc4c6056ae6f9811334b6a5ab6 https://github.com/MLton/mlton/commit/6e42660ce80432cc4c6056ae6f9811334b6a5ab6 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/allocate-registers.fun Log Message: ----------- Reserve stack slots for handler arguments when `RaiseStyle.ViaStack` Commit: 0b1d353cde2c45069b6556c751abb47bc199a925 https://github.com/MLton/mlton/commit/0b1d353cde2c45069b6556c751abb47bc199a925 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/machine.fun M mlton/backend/rep-type.fun Log Message: ----------- Allow `Offset` operand of `CPointer` base in Machine IL Commit: a47db84927690f9576af7b3136fd2d811a165506 https://github.com/MLton/mlton/commit/a47db84927690f9576af7b3136fd2d811a165506 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/machine.fun Log Message: ----------- Fix `Machine.Statement.layout` (extra space before `=`) Commit: 6f502952f895383bdabad668caa6691323993818 https://github.com/MLton/mlton/commit/6f502952f895383bdabad668caa6691323993818 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/machine.fun Log Message: ----------- Add `Machine.Block.layoutHeader` Commit: 9fe15b3f5b64ab2f90a3145a075f8d95238b3e57 https://github.com/MLton/mlton/commit/9fe15b3f5b64ab2f90a3145a075f8d95238b3e57 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/machine.fun Log Message: ----------- Trace `Machine.Program.typeCheck.{liveIsOk,goto}` Commit: 7a8978ed31cd1a864918836145c0c975fe708f01 https://github.com/MLton/mlton/commit/7a8978ed31cd1a864918836145c0c975fe708f01 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/machine.fun Log Message: ----------- Add tracing of `raises` and `returns` in `Machine.Program.typeCheck.transferOk` Commit: ee84308e495240e804cf50e82cc90f99879a1bbb https://github.com/MLton/mlton/commit/ee84308e495240e804cf50e82cc90f99879a1bbb Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/machine.fun Log Message: ----------- Add `args` to allocation at beginning of `Handler` blocks Commit: de894f65845e8912ff10b5b182dd897797f96f3b https://github.com/MLton/mlton/commit/de894f65845e8912ff10b5b182dd897797f96f3b Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/machine.fun Log Message: ----------- Code formatting Commit: fc84c928b02030a7bf2ed926b89eb0c79bc7ce2f https://github.com/MLton/mlton/commit/fc84c928b02030a7bf2ed926b89eb0c79bc7ce2f Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/machine.fun Log Message: ----------- Rename `live` to `handlerLive` for checking is subset of `contLive` Commit: d7811ed31577968a29c535260bd5d0999b58b53c https://github.com/MLton/mlton/commit/d7811ed31577968a29c535260bd5d0999b58b53c Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/machine.fun Log Message: ----------- Check that `Handler` block's frame size is less than `Cont` block's Commit: 48f6ede27b7e6477fa369bb0a72a237ca91e60f8 https://github.com/MLton/mlton/commit/48f6ede27b7e6477fa369bb0a72a237ca91e60f8 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/x86-codegen/x86-translate.fun Log Message: ----------- Initialize `live` field of `Entry.Handler` in x86 & amd64 codegens Commit: 57390358b99580b326ad5d9fa5a4ff89b06db021 https://github.com/MLton/mlton/commit/57390358b99580b326ad5d9fa5a4ff89b06db021 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Rename variable Commit: 69eec2d4d840db9a76e92e91d6d81dc0efb3e5a4 https://github.com/MLton/mlton/commit/69eec2d4d840db9a76e92e91d6d81dc0efb3e5a4 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun Log Message: ----------- Raise values via stack with `-raise-style stack` With `-raise-style globals`, raised arguments are communicated from the raiser to the handler via (non-root) globals. This leads to the confusing `globalObjptrNonRoot`. Moreover, it has been a source of bugs in the CMU MultiMLton project, where parallel threads that raise at the same time can interfere through the race on the handler globals. With the new `-raise-style stack`, raised arguments are communicated from the raiser to the handler via the ML stack. Sufficient space for raised values are reserved in the handler frame immediately above the handler label. At a raise, the raiser stores the raised values at offsets of `stackBottom + exnStack` and the handler copies the values from the adjusted offsets to its argument locations. (Thus, a `Handler` block executes in the same manner as a `Cont` block.) The downside of this strategy is that every stack frame with an installed handler requires an additional 8 bytes (on a 64-bit platform) for the raised value, which is above the 16 bytes for the handler label and the exception stack link. (In theory, more space could be required if earlier optimizations flattened the `raises` of an SSA/SSA2/RSSA function, which could happen with the `SplitTypes` optimization that separates distinct "uses" of exceptions. However, in practice, the only "raise" convention has been a single `objptr`.) A different strategy would be for the raiser to store the raised values in its frame and then communicate the address of the raiser's frame to the handler. However, this would require an additional global to communicate the address of the raiser's frame. Commit: ea71ba30a21b5dad241c282824601d591f101dd9 https://github.com/MLton/mlton/commit/ea71ba30a21b5dad241c282824601d591f101dd9 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-18 (Tue, 18 Jun 2019) Changed paths: M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Make `stack` default for `-raise-style` Commit: 481e3dba8d6683ee3f70576f671c380b11da8668 https://github.com/MLton/mlton/commit/481e3dba8d6683ee3f70576f671c380b11da8668 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-19 (Wed, 19 Jun 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Omit calculating `StackBottom + ExnStack` when no values are raised Commit: 2b7c59ba195e75fc9fd6a52eb0c76da83300753f https://github.com/MLton/mlton/commit/2b7c59ba195e75fc9fd6a52eb0c76da83300753f Author: Matthew Fluet <mat...@gm...> Date: 2019-06-19 (Wed, 19 Jun 2019) Changed paths: M mlton/backend/allocate-registers.fun Log Message: ----------- Update comments in `AllocateRegisters` Commit: f42dfefa8a5e3c0248c19192f562526d1e6040fc https://github.com/MLton/mlton/commit/f42dfefa8a5e3c0248c19192f562526d1e6040fc Author: Matthew Fluet <mat...@gm...> Date: 2019-06-19 (Wed, 19 Jun 2019) Changed paths: M mlton/backend/allocate-registers.fun M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Remove `-raise-style {globals}` expert compile-time option Commit: 03f52105d5ef56284c5bc8298ad39a95db866f57 https://github.com/MLton/mlton/commit/03f52105d5ef56284c5bc8298ad39a95db866f57 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-19 (Wed, 19 Jun 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun Log Message: ----------- Remove unused variables Commit: c4e7964ca425c0e2ff3d733113308632f8f6c2d6 https://github.com/MLton/mlton/commit/c4e7964ca425c0e2ff3d733113308632f8f6c2d6 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-19 (Wed, 19 Jun 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Share code to generate prelude for Cont and Handler blocks Commit: 477b61de5b44ff5ea0debc634ce6a7e776279539 https://github.com/MLton/mlton/commit/477b61de5b44ff5ea0debc634ce6a7e776279539 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-19 (Wed, 19 Jun 2019) Changed paths: M include/c-chunk.h M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/codegen/amd64-codegen/amd64-mlton-basic.fun M mlton/codegen/amd64-codegen/amd64-mlton-basic.sig M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-mlton-basic.fun M mlton/codegen/x86-codegen/x86-mlton-basic.sig M mlton/codegen/x86-codegen/x86-translate.fun Log Message: ----------- Eliminate non-root globals Commit: 0b02293c231ce9869d6c5e7bc6e8d7c07342c7c2 https://github.com/MLton/mlton/commit/0b02293c231ce9869d6c5e7bc6e8d7c07342c7c2 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-19 (Wed, 19 Jun 2019) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Remove `-raise-style {stack}` expert compile-time option Commit: 65f2aa4409c1520b6222b671dd9ca43a461e3b79 https://github.com/MLton/mlton/commit/65f2aa4409c1520b6222b671dd9ca43a461e3b79 Author: Matthew Fluet <Mat...@gm...> Date: 2019-06-19 (Wed, 19 Jun 2019) Changed paths: M include/c-chunk.h M mlton/backend/allocate-registers.fun M mlton/backend/allocate-registers.sig M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/rep-type.fun M mlton/codegen/amd64-codegen/amd64-mlton-basic.fun M mlton/codegen/amd64-codegen/amd64-mlton-basic.sig M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-mlton-basic.fun M mlton/codegen/x86-codegen/x86-mlton-basic.sig M mlton/codegen/x86-codegen/x86-translate.fun M mlton/control/bits.sml Log Message: ----------- Merge pull request #321 from MatthewFluet/raise-via-stack Raise values via stack Previously, raised values are communicated from the raiser to the handler via (non-root) globals. This leads to the confusing `globalObjptrNonRoot`. Moreover, it has been a source of bugs in the CMU MultiMLton project, where parallel threads that raise at the same time can interfere through the race on the handler globals. With this PR, raised values can be communicated from the raiser to the handler via the ML stack. Sufficient space for raised values are reserved in the handler frame immediately above the handler label. At a raise, the raiser stores the raised values at offsets of `stackBottom + exnStack`, the stack is truncated to `stackBottom + exnStack` and control is transfered to the handler, and the handler copies the values to its argument locations. (Thus, a `Handler` block executes in the same manner as a `Cont` block.) The downside of this strategy is that every stack frame with an installed handler requires an additional 8 bytes (on a 64-bit platform) for the raised value, which is above the 16 bytes for the handler label and the exception stack link. (In theory, more space could be required if earlier optimizations flattened the `raises` of an SSA/SSA2/RSSA function, which could happen with the `SplitTypes` optimization that separates distinct "uses" of exceptions. However, in practice, the only observed "raising" convention has been a single `objptr`.) A different strategy would be for the raiser to store the raised values in its frame and then communicate the address of the raiser's frame to the handler. However, this would require an additional global to communicate the address of the raiser's frame. ## Benchmark results (sulfur) Specs: * 2 x Intel(R) Xeon(R) CPU E5-2637 v3 @ 3.50GHz (8 physical cores; 16 logical cores) * Ubuntu 16.04.6 LTS * gcc: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11) ``` text config command C00 /home/mtf/devel/mlton/builds/ga02ac1f5e/bin/mlton @MLton -- C01 /home/mtf/devel/mlton/builds/g69eec2d4d/bin/mlton @MLton -- C02 /home/mtf/devel/mlton/builds/gea71ba30a/bin/mlton @MLton -- C03 /home/mtf/devel/mlton/builds/ga02ac1f5e/bin/mlton @MLton -- -codegen c C04 /home/mtf/devel/mlton/builds/g69eec2d4d/bin/mlton @MLton -- -codegen c C05 /home/mtf/devel/mlton/builds/gea71ba30a/bin/mlton @MLton -- -codegen c ``` ### Run-Time Ratio ``` text program `C01/C00` `C02/C00` `C04/C03` `C05/C03` barnes-hut 1.021 1.032 0.9883 1.031 boyer 0.9616 0.9992 0.9804 1.005 checksum 0.9962 0.9922 0.9908 0.9939 count-graphs 1.007 1.020 1.009 1.023 DLXSimulator 1.011 1.004 0.9962 0.9976 even-odd 1.003 1.002 0.9948 0.9940 fft 1.010 1.019 1.001 0.9851 fib 1.001 0.9039 0.9917 1.005 flat-array 1.030 1.050 0.9571 0.9940 hamlet 1.010 1.066 0.9999 1.057 imp-for 1.002 0.9951 0.9250 0.9260 knuth-bendix 1.011 1.016 1.029 1.067 lexgen 0.9917 1.001 0.9459 0.9801 life 1.017 1.024 1.004 0.9926 logic 1.029 1.026 1.003 0.9835 mandelbrot 0.9986 0.9981 0.9734 0.9693 matrix-multiply 1.024 1.026 0.9997 1.014 md5 0.9990 1.018 1.000 1.001 merge 1.004 0.9875 0.9845 0.9644 mlyacc 1.037 0.9868 1.012 0.9841 model-elimination 1.015 1.011 0.9899 1.020 mpuz 0.9901 0.9817 1.008 1.011 nucleic 1.011 1.034 0.9914 0.9967 output1 1.008 0.9974 1.009 1.002 peek 0.9957 0.9984 0.9996 1.012 pidigits 1.010 1.017 1.016 0.9939 psdes-random 1.016 1.019 1.007 1.004 ratio-regions 0.9900 0.9783 1.041 1.017 ray 0.9756 0.9999 1.012 0.9621 raytrace 0.9857 0.9847 1.039 1.018 simple 0.9879 1.050 1.007 1.031 smith-normal-form 1.017 0.9531 1.030 0.9971 string-concat 1.016 1.005 0.9950 0.9993 tailfib 1.008 1.000 0.9874 0.9918 tailmerge 1.005 0.9837 1.025 0.9892 tak 0.9929 1.061 1.016 1.013 tensor 1.001 0.9975 0.9964 0.9933 tsp 1.004 0.9858 1.069 1.026 tyan 0.9888 1.007 1.008 1.013 vector32-concat 0.9841 0.9867 0.9764 0.9810 vector64-concat 1.026 1.051 1.048 0.9761 vector-rev 1.013 1.019 1.023 1.020 vliw 1.011 0.9732 0.9941 1.018 wc-input1 0.9887 0.9828 1.007 0.9930 wc-scanStream 0.9907 1.070 0.9290 0.9823 zebra 0.9993 1.003 1.005 0.9955 zern 0.9815 1.007 0.9989 1.020 MIN 0.9616 0.9039 0.9250 0.9260 GMEAN 1.004 1.006 1.0000 1.001 MAX 1.037 1.070 1.069 1.067 ``` Notes: * The expectation is that `C01/C00` and `C04/C03` should both be `1.0`, since those configurations correspond to infrastructure changes, but does not switch the raising convention. The minor changes include swapping the positions of the handler label and the exception stack link on the handler frame and ensuring proper alignment of the handler label (although the latter should have no effect on amd64, which defaults to `-align 8` and uses 64-bit (with 8 byte alignment) code labels). * On (geometric) average, there is no significant slowdown due to the alternate raising convention, although there are some negative outliers. * Also, note that there is little correlation between `Run-Time Ratio` and `Max Stack Size Ratio` (see below). This suggests that performance changes are likely due to low-level effects such as cache, not due to the increased total stack size. ### Max Stack Size Ratio (run-time) ``` text program `C01/C00` `C02/C00` `C04/C03` `C05/C03` barnes-hut 1 1.035 1 1.038 boyer 1 1.048 1 1.048 checksum 1 1.065 1 1.065 count-graphs 1 1.045 1 1.045 DLXSimulator 1 1.032 1 1.032 even-odd 1 1.067 1 1.067 fft 1 1.043 1 1.043 fib 1 1.067 1 1.067 flat-array 1 1.065 1 1.065 hamlet 1 1.016 1 1.016 imp-for 1 1.067 1 1.067 knuth-bendix 1 1.042 1 1.042 lexgen 1 1.02 1 1.02 life 1 1.062 1 1.062 logic 1 1 1 1 mandelbrot 1 1.067 1 1.067 matrix-multiply 1 1.065 1 1.065 md5 1 1.047 1 1.047 merge 1 1.065 1 1.065 mlyacc 1 1.007 1 1.007 model-elimination 1 1.021 1 1.021 mpuz 1 1.062 1 1.062 nucleic 1 1 1 1 output1 1 1.05 1 1.05 peek 1 1.067 1 1.067 pidigits 1 1.048 1 1.048 psdes-random 1 1.067 1 1.067 ratio-regions 1 1.027 1 1.027 ray 1 0.9886 1 0.9886 raytrace 1 1.018 1 1.018 simple 1 0.9430 1 0.9430 smith-normal-form 1 1.039 1 1.039 string-concat 1 1.061 1 1.061 tailfib 1 1.067 1 1.067 tailmerge 1 1.065 1 1.065 tak 1 1.067 1 1.067 tensor 1 1.027 1 1.027 tsp 1 1.045 1 1.045 tyan 1 1.017 1 1.017 vector32-concat 1 1.065 1 1.065 vector64-concat 1 1.065 1 1.065 vector-rev 1 1.065 1 1.065 vliw 1 1 1 1 wc-input1 1 1.044 1 1.044 wc-scanStream 1 1.041 1 1.041 zebra 1 2.071 1 2.071 zern 1 1.039 1 1.039 MIN 1 0.9430 1 0.9430 GMEAN 1 1.057 1 1.057 MAX 1 2.071 1 2.071 ``` Notes: * As expected, there is a slight increase in the maximum stack size due to the space reserved for raised values. However, note that the maximum stack size corresponds to the largest stack space reserved by the runtime system, not the largest stack space used by the mutator. The default stack sizing policy is to double the stack space reserved each time the stack is grown, which explains the maximum ratio of `2.071`. Similarly, this stack sizing policy explains how the ratio can be less than `1.0`, when early stack growth with larger frames suffices for the maximum used stack, while early stack growth with smaller frames requires additional later growth for the maximum used stack. Moreover, `zebra` has a very small stack: `C00`&`C01`&`C03`&`C04` are 3584 and `C02`&`C05` are 7424. ### Max Stack Size Ratio (compile-time) ``` text program `C01/C00` `C02/C00` `C04/C03` `C05/C03` barnes-hut 1.001 1.003 1.001 1.003 boyer 1.001 2.005 1.001 2.005 checksum 1.001 1.003 1.001 1.003 count-graphs 1.001 1.003 1.001 1.003 DLXSimulator 1.001 1.003 1.001 1.003 even-odd 1.001 1.003 1.001 1.003 fft 1.001 1.003 1.001 1.003 fib 1.001 1.003 1.001 1.003 flat-array 1.001 1.003 1.001 1.003 hamlet 1.001 1.003 1.001 1.003 imp-for 1.001 1.003 1.001 1.003 knuth-bendix 1.001 1.003 1.001 1.003 lexgen 1.001 1.003 1.001 1.003 life 1.001 1.003 1.001 1.003 logic 1.001 1.003 1.001 1.003 mandelbrot 1.001 1.003 1.001 1.003 matrix-multiply 1.001 1.003 1.001 1.003 md5 1.001 1.003 1.001 1.003 merge 1.001 1.003 1.001 1.003 mlyacc 0.9644 0.9839 0.9644 0.9839 model-elimination 0.9820 0.9679 0.9828 0.9679 mpuz 1.001 1.003 1.001 1.003 nucleic 1.001 1.003 1.001 1.003 output1 1.001 1.003 1.001 1.003 peek 1.001 1.003 1.001 1.003 pidigits 1.001 1.003 1.001 1.003 psdes-random 1.001 1.003 1.001 1.003 ratio-regions 1.001 1.003 1.001 1.003 ray 1.001 1.003 1.001 1.003 raytrace 1.001 1.055 1.001 1.055 simple 1.001 1.003 1.001 1.003 smith-normal-form 1.001 1.003 1.001 1.003 string-concat 1.001 1.003 1.001 1.003 tailfib 1.001 1.003 1.001 1.003 tailmerge 1.001 1.003 1.001 1.003 tak 1.001 1.003 1.001 1.003 tensor 1.001 1.003 1.001 1.003 tsp 1.001 1.003 1.001 1.003 tyan 1.001 1.003 1.001 1.003 vector32-concat 1.001 1.003 1.001 1.003 vector64-concat 1.001 1.003 1.001 1.003 vector-rev 1.001 1.003 1.001 1.003 vliw 1.001 1.003 1.001 1.003 wc-input1 1.001 1.003 1.001 1.003 wc-scanStream 1.001 1.003 1.001 1.003 zebra 1.001 1.003 1.001 1.003 zern 1.001 1.003 1.001 1.003 MIN 0.9644 0.9679 0.9644 0.9679 GMEAN 1.000 1.018 1.000 1.018 MAX 1.001 2.005 1.001 2.005 ``` Note: * The effect of the larger frames is less pronounced in the compiler proper, although the `2.005` outlier does appear. ## Self-compile results (sulfur) Specs: * 2 x Intel(R) Xeon(R) CPU E5-2637 v3 @ 3.50GHz (8 physical cores; 16 logical cores) * Ubuntu 16.04.6 LTS * gcc: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11) ``` text MLton 20190618.195743-g69eec2d4d finished in 202.23 + 26.50 (12% GC) GC type time ms number bytes bytes/sec ------------- ------- ------- --------------- --------------- copying 24,960 32 16,223,789,408 649,991,548 mark-compact 0 0 0 - minor 0 68 56,768 - total time: 222,664 ms total GC time: 26,504 ms (11.9%) max pause time: 2,732 ms total bytes allocated: 173,669,514,440 bytes max bytes live: 1,568,690,392 bytes max heap size: 12,549,611,520 bytes max stack size: 24,412,160 bytes num cards marked: 198 bytes scanned: 4,550,744 bytes bytes hash consed: 0 bytes MLton 20190618.221106-gea71ba30a finished in 193.37 + 27.39 (12% GC) GC type time ms number bytes bytes/sec ------------- ------- ------- --------------- --------------- copying 24,972 33 17,227,509,912 689,873,048 mark-compact 0 0 0 - minor 0 67 61,616 - total time: 215,532 ms total GC time: 27,396 ms (12.7%) max pause time: 3,320 ms total bytes allocated: 174,112,963,256 bytes max bytes live: 1,520,008,000 bytes max heap size: 12,160,098,304 bytes max stack size: 24,444,928 bytes num cards marked: 195 bytes scanned: 6,078,928 bytes bytes hash consed: 0 bytes ``` Notes: * On (fully-bootstraped) self-compile, the max stack size ratio is only `1.001`. Compare: https://github.com/MLton/mlton/compare/a02ac1f5e878...65f2aa4409c1 |
From: Matthew F. <no...@gi...> - 2019-06-17 19:43:31
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: e9d8fddfd3280afaab91e5c6efa3acc5919ef077 https://github.com/MLton/mlton/commit/e9d8fddfd3280afaab91e5c6efa3acc5919ef077 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-14 (Fri, 14 Jun 2019) Changed paths: M Makefile Log Message: ----------- Add `compiler-clean` target to simplify bootstrap in `all` target Commit: b9d55eaf32cb19f1cd6d642a22a6bf19bc3300c6 https://github.com/MLton/mlton/commit/b9d55eaf32cb19f1cd6d642a22a6bf19bc3300c6 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-14 (Fri, 14 Jun 2019) Changed paths: M Makefile M bin/mlton-script M mlton/Makefile M mlton/control/version_sml.src Log Message: ----------- Extend `Makefile` to use `MLTON` variable for output name Commit: 25b25487e57817b3efbc2056a0e0f6532cc0bf97 https://github.com/MLton/mlton/commit/25b25487e57817b3efbc2056a0e0f6532cc0bf97 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-14 (Fri, 14 Jun 2019) Changed paths: M mlton/.gitignore Log Message: ----------- Update `mlton/.gitignore` Commit: a0d50166ed1e439d3a1285e74ee1ea9d6e7c94e5 https://github.com/MLton/mlton/commit/a0d50166ed1e439d3a1285e74ee1ea9d6e7c94e5 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-14 (Fri, 14 Jun 2019) Changed paths: M Makefile A Makefile.config M basis-library/Makefile M mllex/Makefile M mlnlffigen/Makefile M mlprof/Makefile M mlton/Makefile M mlyacc/Makefile M runtime/Makefile Log Message: ----------- Introduce `Makefile.config` for common makefile configuration Commit: 39cfcbfa746e0b61860b8fd8a2e2eedd2b561d38 https://github.com/MLton/mlton/commit/39cfcbfa746e0b61860b8fd8a2e2eedd2b561d38 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-14 (Fri, 14 Jun 2019) Changed paths: M mlton/front-end/Makefile Log Message: ----------- Use `Makefile.config` in `mlton/front-end/Makefile` Commit: f4235463fe0c2ca5bbc8297c2c67ff706590551e https://github.com/MLton/mlton/commit/f4235463fe0c2ca5bbc8297c2c67ff706590551e Author: Matthew Fluet <mat...@gm...> Date: 2019-06-14 (Fri, 14 Jun 2019) Changed paths: M Makefile M Makefile.config M mlton/Makefile Log Message: ----------- Configure `make` with `MLTON_FORK` and `BOOTSTRAP_STYLE` `MLTON_FORK` allows for a single change to identify a fork, qualifying the built compiler name and the version string. `BOOTSTRAP_STYLE` allows for configuring the "degree" of bootstrapping: 0 -- Use $(BOOTSTRAP_MLTON) for round1 (and stop) 1 -- Use $(BIN)/$(MLTON) for round1 (and stop); default if $(BIN)/$(MLTON) exists 2 -- Use $(BOOTSTRAP_MLTON) for round1; use $(BIN)/$(MLTON) for round2; default if $(BIN)/$(MLTON) does not exist 3 -- Use $(BOOTSTRAP_MLTON) or use $(BIN)/$(MLTON) for round1; use $(BIN)/$(MLTON) for round2; use $(BIN)/$(MLTON) for round3 (and check fixpoint) Commit: e6342b63bd4df88d1ceea4badc20b3012dd498dc https://github.com/MLton/mlton/commit/e6342b63bd4df88d1ceea4badc20b3012dd498dc Author: Matthew Fluet <mat...@gm...> Date: 2019-06-15 (Sat, 15 Jun 2019) Changed paths: M Makefile.config M README.adoc M mlton/Makefile M package/debian/rules Log Message: ----------- Rename `BOOTSTRAP_MLTON` to `OLD_MLTON` Commit: 04ef2f6cdfd19d4a1f6d566213f0269989130381 https://github.com/MLton/mlton/commit/04ef2f6cdfd19d4a1f6d566213f0269989130381 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-15 (Sat, 15 Jun 2019) Changed paths: M Makefile.config M mlton/Makefile Log Message: ----------- Rename `MLTON_ACTUAL` to `RUN_MLTON` and move to `Makefile.config` Commit: 9255d4c6d6ca4a12858d17d660c40ed430005020 https://github.com/MLton/mlton/commit/9255d4c6d6ca4a12858d17d660c40ed430005020 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-15 (Sat, 15 Jun 2019) Changed paths: M mllex/Makefile M mlnlffigen/Makefile M mlprof/Makefile M mlyacc/Makefile Log Message: ----------- Use `RUN_MLTON` to build tools Commit: 2643ac76f8d5c796343ce44a76d6af2a37bbe04a https://github.com/MLton/mlton/commit/2643ac76f8d5c796343ce44a76d6af2a37bbe04a Author: Matthew Fluet <mat...@gm...> Date: 2019-06-16 (Sun, 16 Jun 2019) Changed paths: M Makefile Log Message: ----------- Add `show-vars` target Commit: dc586971359ef6b83e46dfb501ad2adef59b7b49 https://github.com/MLton/mlton/commit/dc586971359ef6b83e46dfb501ad2adef59b7b49 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M Makefile Log Message: ----------- Add more Makefile variables to `show-vars` target Commit: 0ba23c12223512b95cc21c3f76adf357a4ee5227 https://github.com/MLton/mlton/commit/0ba23c12223512b95cc21c3f76adf357a4ee5227 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M Makefile Log Message: ----------- Rename `show-vars` target to `show-config` Commit: faeb0a03e432e1e9c38feb5fbfd9464253e14e58 https://github.com/MLton/mlton/commit/faeb0a03e432e1e9c38feb5fbfd9464253e14e58 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M basis-library/Makefile Log Message: ----------- Use `$(BIN)/$(MLTON)` in `basis-library/Makefile` Commit: 6519a98147a1ed1803321e39586a417d1ef75fd1 https://github.com/MLton/mlton/commit/6519a98147a1ed1803321e39586a417d1ef75fd1 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M Makefile.config Log Message: ----------- Simplify `$(BIN)/$(MLTON)` existence check in `Makefile.config` Commit: 0b10d29772c1a92918f4e3797baa4738c1043b52 https://github.com/MLton/mlton/commit/0b10d29772c1a92918f4e3797baa4738c1043b52 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M Makefile.config Log Message: ----------- Define `RUN_{MLLEX,MLYACC}` in `Makefile.config` Commit: 442ef65d59689ce71f93e578f038e3c7a6872753 https://github.com/MLton/mlton/commit/442ef65d59689ce71f93e578f038e3c7a6872753 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M mlton/front-end/Makefile M mlyacc/Makefile Log Message: ----------- Use `RUN_{MLLEX,MLYACC}` in `mlton/front-end/Makefile` and `mlyacc/Makefile` Commit: 25309345d8f63a6586c3e8d9f4e23091f7cda38a https://github.com/MLton/mlton/commit/25309345d8f63a6586c3e8d9f4e23091f7cda38a Author: Matthew Fluet <mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M runtime/Makefile Log Message: ----------- Use `RUN_MLTON` in `runtime/Makefile` Commit: 74bf5ca936e4b365414539792472fae1f501c004 https://github.com/MLton/mlton/commit/74bf5ca936e4b365414539792472fae1f501c004 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M Makefile.config Log Message: ----------- Warn in `Makefile.config` if `mlton`, `mllex`, or `mlyacc` not found Commit: aa12113f7d1094e7db1d32fbfb60f712431eb07d https://github.com/MLton/mlton/commit/aa12113f7d1094e7db1d32fbfb60f712431eb07d Author: Matthew Fluet <mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M mlton/Makefile Log Message: ----------- Use `RUN_MLTON` for `mlton-stubs.mlb` in `mlton/Makefile` Commit: 2d856b18869dd33c53da3ad1c5638d4963a5ff55 https://github.com/MLton/mlton/commit/2d856b18869dd33c53da3ad1c5638d4963a5ff55 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M mlton/Makefile Log Message: ----------- Whitespace in `mlton/Makefile` Commit: 537b2b8b050cf2ea2b19cdbfb7d9b60ff711ff22 https://github.com/MLton/mlton/commit/537b2b8b050cf2ea2b19cdbfb7d9b60ff711ff22 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M Makefile.config Log Message: ----------- Don't add `$(BIN)` to `PATH` in `Makefile.config` Commit: 8b12c38908094746c0d65a7758e1a2c11ef50980 https://github.com/MLton/mlton/commit/8b12c38908094746c0d65a7758e1a2c11ef50980 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M benchmark/Makefile Log Message: ----------- Use `Makefile.config` in `benchmark/Makefile` Commit: 5d864948f890e900675151fa5578544c4958d7b9 https://github.com/MLton/mlton/commit/5d864948f890e900675151fa5578544c4958d7b9 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M Makefile Log Message: ----------- Reorganize `Makefile` Commit: 2f462256df14911eeadd3505b7df9c96f49ac34c https://github.com/MLton/mlton/commit/2f462256df14911eeadd3505b7df9c96f49ac34c Author: Matthew Fluet <mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M Makefile M Makefile.config Log Message: ----------- Introduce `MK_SHOW_CONFIG` in `Makefile.config` for making `show-config` target Commit: e0d757d4059cdf2bc103cad95699c14aff6b9c77 https://github.com/MLton/mlton/commit/e0d757d4059cdf2bc103cad95699c14aff6b9c77 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M mlton/Makefile R mlton/front-end/Makefile Log Message: ----------- Reorganize `mlton/Makefile` and delete `mlton/front-end/Makefile` Commit: 2f4980c77f718204e06d7c0cfd4a509654730919 https://github.com/MLton/mlton/commit/2f4980c77f718204e06d7c0cfd4a509654730919 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M Makefile M basis-library/Makefile M mllex/Makefile M mlnlffigen/Makefile M mlprof/Makefile M mlton/Makefile M mlyacc/Makefile Log Message: ----------- Use `$(SRC)/bin/clean` for `Makefile`s that include `Makefile.config` Commit: d696da8b72ec65289f189e6adea54445e12684a1 https://github.com/MLton/mlton/commit/d696da8b72ec65289f189e6adea54445e12684a1 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M Makefile.config Log Message: ----------- Only warn in `Makefile.config` if tools not found at top-level Commit: a02ac1f5e878f6cc405bff5e75711513980d09cd https://github.com/MLton/mlton/commit/a02ac1f5e878f6cc405bff5e75711513980d09cd Author: Matthew Fluet <Mat...@gm...> Date: 2019-06-17 (Mon, 17 Jun 2019) Changed paths: M Makefile A Makefile.config M README.adoc M basis-library/Makefile M benchmark/Makefile M bin/mlton-script M mllex/Makefile M mlnlffigen/Makefile M mlprof/Makefile M mlton/.gitignore M mlton/Makefile M mlton/control/version_sml.src R mlton/front-end/Makefile M mlyacc/Makefile M package/debian/rules M runtime/Makefile Log Message: ----------- Merge pull request #320 from MatthewFluet/makefile-updates Makefile updates Various updates to `Makefile`s. Introduce `Makefile.config` for common configuration, make it easier to configure `OLD_MLTON` (and `OLD_MLLEX` and `OLD_MLYACC`), easier to configure the `BOOTSTRAP_STYLE` (e.g., `BOOTSTRAP_STYLE=0` always uses "old" `mlton`, even if "new" `mlton` exists), easier to configure a `MLTON_FORK` (which induces a different `mlton` script name). Compare: https://github.com/MLton/mlton/compare/dff6893e17d0...a02ac1f5e878 |
From: Matthew F. <no...@gi...> - 2019-06-14 14:23:42
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 7cc22f34ff18d3433c17f4f9089e4d8b6d48f063 https://github.com/MLton/mlton/commit/7cc22f34ff18d3433c17f4f9089e4d8b6d48f063 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-14 (Fri, 14 Jun 2019) Changed paths: M basis-library/mlton/thread.sml M basis-library/primitive/prim-mlton.sml M include/amd64-main.h M include/c-main.h M include/x86-main.h M mlton/atoms/ffi.fun M runtime/gc/gc_state.c M runtime/gc/gc_state.h Log Message: ----------- Eliminate global `MLton_FFI_opArgsResPtr` Instead, introduce a `pointer callFromCOpArgsResPtr` field in `struct GC_state`. This makes the value per gcState, which minimizes the diff between MLton and the CMU MultiMLton project. Commit: dff6893e17d0ca512d4bccdbbb33b42cf39906b5 https://github.com/MLton/mlton/commit/dff6893e17d0ca512d4bccdbbb33b42cf39906b5 Author: Matthew Fluet <Mat...@gm...> Date: 2019-06-14 (Fri, 14 Jun 2019) Changed paths: M basis-library/mlton/thread.sml M basis-library/primitive/prim-mlton.sml M include/amd64-main.h M include/c-main.h M include/x86-main.h M mlton/atoms/ffi.fun M runtime/gc/gc_state.c M runtime/gc/gc_state.h Log Message: ----------- Merge pull request #319 from MatthewFluet/call-from-c-op-args-res-ptr-per-gc_state Eliminate global `MLton_FFI_opArgsResPtr` Compare: https://github.com/MLton/mlton/compare/1672f09db33d...dff6893e17d0 |
From: Matthew F. <no...@gi...> - 2019-06-14 10:37:55
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: e0cbba9d28cd0c95640bc331d18ab85465e55be9 https://github.com/MLton/mlton/commit/e0cbba9d28cd0c95640bc331d18ab85465e55be9 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-12 (Wed, 12 Jun 2019) Changed paths: M mlton/backend/rep-type.fun M mlton/backend/runtime.fun M mlton/backend/runtime.sig M mlton/main/compile.fun M mlton/main/lookup-constant.fun Log Message: ----------- Eliminate unused `Runtime.MaxFrameSize` Commit: 6a0a2320645df9c751647a0539bc619b37239828 https://github.com/MLton/mlton/commit/6a0a2320645df9c751647a0539bc619b37239828 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-12 (Wed, 12 Jun 2019) Changed paths: M mlton/backend/rep-type.fun M mlton/backend/runtime.fun M mlton/backend/runtime.sig M mlton/main/compile.fun M mlton/main/lookup-constant.fun Log Message: ----------- Eliminate unused `Runtime.CurrentThread` Commit: d49793585c48b711f914c56c115782b4b43a7ff2 https://github.com/MLton/mlton/commit/d49793585c48b711f914c56c115782b4b43a7ff2 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-12 (Wed, 12 Jun 2019) Changed paths: M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/backend/rep-type.fun M mlton/backend/ssa2-to-rssa.fun Log Message: ----------- Introduce `GC_state` primitive, translated to `GCState` RSSA operand This primitive will replace the use of `_symbol "gcStateAddress"` in the Basis Library implementation. One motivation is that it eliminates two "names" for the same thing; the RSSA `GCState` operand and the pointer fetched from `gcStateAddress`. Another motivation is that the CMU MultiMLton compiler cannot use `_symbol "gcStateAddress"`, because this fetches the primary (aka, pthread0) `gcState` address once at the beginning of the evaluation of the Basis Library, but each use of the value should actually be with respect to the `gcState` of the executing pthread. In the Basis Library, the type of `Primitive.MLton.GCState.t` is `Pointer.t` (which is the primitive type `cpointer`, which becomes the RSSA IL type `CPointer`), but in the RSSA IL, the type of the `GCState` operand is `GCState`. One option would be to introduce a new primitive type `gcstate` to become the RSSA `GCState` type; however, this would affect all of the intermediate ILs. Moreover, the RSSA type checking of `GCState` is somewhat weak, so it seems simpler to simply replace the RSSA `GCState` type with the RSSA `CPointer` type. (Similarly, we replace the RSSA `ExnStack` type with the RSSA `Word` type of the appropriate size.) Commit: 4fe198c2525b8224d0d3aaa673a52b67b78bf6d6 https://github.com/MLton/mlton/commit/4fe198c2525b8224d0d3aaa673a52b67b78bf6d6 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-12 (Wed, 12 Jun 2019) Changed paths: M basis-library/mlton/call-stack.sml M basis-library/mlton/cont.sml M basis-library/mlton/gc.sml M basis-library/mlton/profile.sml M basis-library/mlton/thread.sml M basis-library/mlton/world.sml M basis-library/primitive/prim-mlton.sml Log Message: ----------- Use `GC_state` primitive instead of `_symbol "gcStateAddress"` One motivation is that it eliminates two "names" for the same thing; the RSSA `GCState` operand and the pointer fetched from `gcStateAddress`. Another motivation is that the CMU MultiMLton compiler cannot use `_symbol "gcStateAddress"`, because this fetches the primary (aka, pthread0) `gcState` address once at the beginning of the evaluation of the Basis Library, but each use of the value should actually be with respect to the `gcState` of the executing pthread. Commit: 92b532131a8f4b27e9f50b80d889ce0ddb309508 https://github.com/MLton/mlton/commit/92b532131a8f4b27e9f50b80d889ce0ddb309508 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-12 (Wed, 12 Jun 2019) Changed paths: M include/common-main.h Log Message: ----------- Eliminate global `gcStateAddress` Commit: 521bbf49235d7cd9b33ea53ef3eea56a67e6b192 https://github.com/MLton/mlton/commit/521bbf49235d7cd9b33ea53ef3eea56a67e6b192 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-13 (Thu, 13 Jun 2019) Changed paths: M runtime/platform.h Log Message: ----------- Make `GCState_t` visible when including `basis-ffi.h` Commit: b4425634e84f9481f1555cbdc3ca3174b7d0c5ab https://github.com/MLton/mlton/commit/b4425634e84f9481f1555cbdc3ca3174b7d0c5ab Author: Matthew Fluet <mat...@gm...> Date: 2019-06-13 (Thu, 13 Jun 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Translate `Word_rndToReal` primitive to `CCall` for C codegen When `Word<N>_rndToReal<M>` is treated as a primitive in the C codegen, then the function is not declared with a prototype. Currently, the prototype is picked up by `#include "basis-ffi.h"` in `c-chunk.h`, but that will be removed in the next commit. Commit: 21ea126e74cabc01fc5959f7b0e40f046eb647d7 https://github.com/MLton/mlton/commit/21ea126e74cabc01fc5959f7b0e40f046eb647d7 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-13 (Thu, 13 Jun 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Omit `#include "basis-ffi.h"` in c-chunk.h Commit: 4bcae43ee4320ef314e920ef6408f0d9a7484305 https://github.com/MLton/mlton/commit/4bcae43ee4320ef314e920ef6408f0d9a7484305 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-13 (Thu, 13 Jun 2019) Changed paths: M basis-library/mlton/rusage.sml M basis-library/primitive/basis-ffi.sml M basis-library/primitive/prim-mlton.sml M runtime/basis-ffi.h M runtime/basis/MLton/Rusage/rusage.c M runtime/gen/basis-ffi.def M runtime/gen/basis-ffi.h M runtime/gen/basis-ffi.sml Log Message: ----------- Eliminate `extern struct GC_state gcState` in `MLton/Rusage/rusage.c` Commit: f7b0d35f1b8f949b116f14eb4d036937a73c6d26 https://github.com/MLton/mlton/commit/f7b0d35f1b8f949b116f14eb4d036937a73c6d26 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-13 (Thu, 13 Jun 2019) Changed paths: M basis-library/mlton/signal.sml M basis-library/primitive/basis-ffi.sml M runtime/basis-ffi.h M runtime/basis/Posix/Signal.c M runtime/gen/basis-ffi.def M runtime/gen/basis-ffi.h M runtime/gen/basis-ffi.sml Log Message: ----------- Almost eliminate `extern struct GC_state gcState` in `Posix/signal.c` Commit: 55cba62f114c4abde2873523843bd2b02711f585 https://github.com/MLton/mlton/commit/55cba62f114c4abde2873523843bd2b02711f585 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-13 (Thu, 13 Jun 2019) Changed paths: M runtime/basis/Posix/Process/fork.c M runtime/gc/signals.c M runtime/gc/signals.h Log Message: ----------- Eliminate `extern struct GC_state gcState` in `MLton/Posix/fork.c` It is still the case that on Darwin, a forked process does not inherit the alternate signal stack; Commit: 7483eb66e1365489ea739655e6f1a6eca50d76da https://github.com/MLton/mlton/commit/7483eb66e1365489ea739655e6f1a6eca50d76da Author: Matthew Fluet <mat...@gm...> Date: 2019-06-13 (Thu, 13 Jun 2019) Changed paths: M runtime/gc/signals.c Log Message: ----------- Simplify `initSignalStack`. Commit: 080daa8f5833b83c2698ade8f51c2de909076dd8 https://github.com/MLton/mlton/commit/080daa8f5833b83c2698ade8f51c2de909076dd8 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-13 (Thu, 13 Jun 2019) Changed paths: M include/amd64-main.h M include/c-main.h M include/common-main.h M include/x86-main.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Move declaration of global `gcState` to `<cg>-main.h`. Commit: 0444115a9c94aaeeaf2215ad975a50748a799e01 https://github.com/MLton/mlton/commit/0444115a9c94aaeeaf2215ad975a50748a799e01 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-13 (Thu, 13 Jun 2019) Changed paths: M include/amd64-main.h M include/c-main.h M include/x86-main.h M runtime/gc/gc_state.h Log Message: ----------- Introduce `GC_state MLton_gcState()` to fetch the global gcState `MLton_gcState` is used to fetch the global gcState in contexts where it is not easily available; in particular, during program initialization (MLton_main, LIB_OPEN), program termination (LIB_CLOSE), program reentry (MLton_callFromC), and signal handlers (GC_handler). This will allow the global gcState to be a static variable allocated by `<cg>-main.h`. This will also help the CMU MultiMLton project (help to minimize the diff with MLton), where `MLton_gcState` will fetch the pthread specific `gcState`. Commit: ad3d221e620f9abffd181fd00ac9d5c6a5869e8c https://github.com/MLton/mlton/commit/ad3d221e620f9abffd181fd00ac9d5c6a5869e8c Author: Matthew Fluet <mat...@gm...> Date: 2019-06-13 (Thu, 13 Jun 2019) Changed paths: M runtime/basis/Posix/Signal.c M runtime/gc/handler.c M runtime/gc/handler.h Log Message: ----------- Eliminate `extern struct GC_state gcState` in `Posix/signal.c` Use `MLton_gcState` in `GC_handler` to fetch the global gcState. Commit: f12937beeae958d9ba4ea901cd698036980476e2 https://github.com/MLton/mlton/commit/f12937beeae958d9ba4ea901cd698036980476e2 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-13 (Thu, 13 Jun 2019) Changed paths: M include/c-main.h Log Message: ----------- Make `gcState` a static local var of `MLton_gcState` in C and LLVM codegens Commit: 1672f09db33d1120a693d7d54c076ecf76b3a75e https://github.com/MLton/mlton/commit/1672f09db33d1120a693d7d54c076ecf76b3a75e Author: Matthew Fluet <Mat...@gm...> Date: 2019-06-14 (Fri, 14 Jun 2019) Changed paths: M basis-library/mlton/call-stack.sml M basis-library/mlton/cont.sml M basis-library/mlton/gc.sml M basis-library/mlton/profile.sml M basis-library/mlton/rusage.sml M basis-library/mlton/signal.sml M basis-library/mlton/thread.sml M basis-library/mlton/world.sml M basis-library/primitive/basis-ffi.sml M basis-library/primitive/prim-mlton.sml M include/amd64-main.h M include/c-chunk.h M include/c-main.h M include/common-main.h M include/x86-main.h M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/backend/rep-type.fun M mlton/backend/runtime.fun M mlton/backend/runtime.sig M mlton/backend/ssa2-to-rssa.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/main/compile.fun M mlton/main/lookup-constant.fun M runtime/basis-ffi.h M runtime/basis/MLton/Rusage/rusage.c M runtime/basis/Posix/Process/fork.c M runtime/basis/Posix/Signal.c M runtime/gc/gc_state.h M runtime/gc/handler.c M runtime/gc/handler.h M runtime/gc/signals.c M runtime/gc/signals.h M runtime/gen/basis-ffi.def M runtime/gen/basis-ffi.h M runtime/gen/basis-ffi.sml M runtime/platform.h Log Message: ----------- Merge pull request #318 from MatthewFluet/gcstate-fields-and-prim Update use of global `struct GC_state` in compiler and Basis Library Simplify how the compiler proper and the Basis Library use the global `struct GC_state`. One motivation for these changes is to minimize the diff between MLton and the CMU MultiMLton project. Highlights: * Eliminate unused `Runtime.CurrentThread` and `Runtime.MaxFrameSize` in `structure BackendAtoms` (e0cbba9d2, 6a0a23206). * Introduce `GC_state` primitive, translated to `GCState` RSSA operand (d49793585), which is used instead of `_symbol "gcStateAddress"` in the Basis Library implementation (4fe198c25, 92b532131). * Eliminate `extern struct GC_state gcState` in `runtime/basis/` (4bcae43ee, f7b0d35f1, 55cba62f1, ad3d221e6). * Introduce `GC_state MLton_gcState()` to fetch the global `struct GC_state` (0444115a9). Compare: https://github.com/MLton/mlton/compare/324b32c16865...1672f09db33d |
From: Matthew F. <no...@gi...> - 2019-06-10 15:05:43
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 6ac37e58d62d25a482e937ebb5d1be610019dacd https://github.com/MLton/mlton/commit/6ac37e58d62d25a482e937ebb5d1be610019dacd Author: Matthew Fluet <mat...@gm...> Date: 2019-06-10 (Mon, 10 Jun 2019) Changed paths: M mlton/ssa/ssa-tree.fun Log Message: ----------- Fixup `Ssa.Transfer.equals` (broken in 9c5082f6) Commit: 324b32c16865ed41b36b5a4e99ac6c38114a679e https://github.com/MLton/mlton/commit/324b32c16865ed41b36b5a4e99ac6c38114a679e Author: Matthew Fluet <Mat...@gm...> Date: 2019-06-10 (Mon, 10 Jun 2019) Changed paths: M mlton/ssa/ssa-tree.fun Log Message: ----------- Merge pull request #317 from MatthewFluet/ssa-transfer-equals-fixup Fixup `Ssa.Transfer.equals` (broken in 9c5082f6) Compare: https://github.com/MLton/mlton/compare/ec7712667983...324b32c16865 |
From: Matthew F. <no...@gi...> - 2019-06-09 20:30:00
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 527516780ec147e8fbbefac75e883c51caad9492 https://github.com/MLton/mlton/commit/527516780ec147e8fbbefac75e883c51caad9492 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-09 (Sun, 09 Jun 2019) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Fixup `Ssa2.Program.toFile` suffix Commit: ec771266798313e5ec8f5837cbc766b8b84847f6 https://github.com/MLton/mlton/commit/ec771266798313e5ec8f5837cbc766b8b84847f6 Author: Matthew Fluet <Mat...@gm...> Date: 2019-06-09 (Sun, 09 Jun 2019) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Merge pull request #316 from MatthewFluet/ssa2-toFile-fixup Fixup `Ssa2.Program.toFile` suffix Compare: https://github.com/MLton/mlton/compare/642a2f56f4a1...ec7712667983 |
From: Matthew F. <no...@gi...> - 2019-06-08 01:38:41
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 474a071e8fcd27539bb9ce3059ffeca080dc2714 https://github.com/MLton/mlton/commit/474a071e8fcd27539bb9ce3059ffeca080dc2714 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/backend/rssa.fun Log Message: ----------- Fixup `functor RSSA` Commit: 642a2f56f4a1e8cfd522ff7f4af69fcaa6faf2ec https://github.com/MLton/mlton/commit/642a2f56f4a1e8cfd522ff7f4af69fcaa6faf2ec Author: Matthew Fluet <Mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/backend/rssa.fun Log Message: ----------- Merge pull request #315 from MatthewFluet/rssa-fixup Fixup `functor RSSA` Compare: https://github.com/MLton/mlton/compare/1f3c6fa37e99...642a2f56f4a1 |
From: Matthew F. <no...@gi...> - 2019-06-08 01:23:16
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: baf74ef67594354f91cf817ed74414da19aa7fb8 https://github.com/MLton/mlton/commit/baf74ef67594354f91cf817ed74414da19aa7fb8 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M LICENSE Log Message: ----------- Update copyright date in license Commit: dd6225e97fabf8d1a5abb73d316d52ca9a7fc447 https://github.com/MLton/mlton/commit/dd6225e97fabf8d1a5abb73d316d52ca9a7fc447 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M CHANGELOG.adoc Log Message: ----------- Update CHANGELOG.adoc Commit: 1f3c6fa37e993a236564fe74767f2aa0ae61e538 https://github.com/MLton/mlton/commit/1f3c6fa37e993a236564fe74767f2aa0ae61e538 Author: Matthew Fluet <Mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M CHANGELOG.adoc M LICENSE Log Message: ----------- Merge pull request #314 from MatthewFluet/doc-updates Update copyright date in license and update CHANGELOG.adoc Compare: https://github.com/MLton/mlton/compare/5afdfec9e6e3...1f3c6fa37e99 |
From: Matthew F. <no...@gi...> - 2019-06-08 00:37:35
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 3e203f30f3c7afbab5a7d327026d1b0b6d443c87 https://github.com/MLton/mlton/commit/3e203f30f3c7afbab5a7d327026d1b0b6d443c87 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-04 (Tue, 04 Jun 2019) Changed paths: M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/core-ml/core-ml.fun M mlton/core-ml/core-ml.sig M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig M mlton/xml/sxml.fun M mlton/xml/xml-tree.fun M mlton/xml/xml-tree.sig Log Message: ----------- Add `Program.toFile` to ILs to consolidate `Control.saveToFile` args Commit: 204b916f3561074cf08c012337ea1eecee9b6316 https://github.com/MLton/mlton/commit/204b916f3561074cf08c012337ea1eecee9b6316 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-04 (Tue, 04 Jun 2019) Changed paths: M mlton/backend/backend.fun M mlton/control/control.sig M mlton/control/control.sml M mlton/main/compile.fun M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/xml/polyvariance.fun M mlton/xml/sxml-simplify.fun M mlton/xml/xml-simplify.fun Log Message: ----------- Use `toFile` in `Control.{maybeSaveToFile,pass,passTypeCheck,saveToFile}` Commit: e32588cc63b0f401069e1a868baa7e9dc58edbcb https://github.com/MLton/mlton/commit/e32588cc63b0f401069e1a868baa7e9dc58edbcb Author: Matthew Fluet <mat...@gm...> Date: 2019-06-04 (Tue, 04 Jun 2019) Changed paths: M mlton/control/control.sig M mlton/control/control.sml Log Message: ----------- Add `Control.simplePass` This captures the common case of a pass that respects `-keep-pass` and `-{enable,disable}-pass` flags. In the future, we may extend this to respect a `-stop-pass` flag. Commit: 7bc8145987dab7881e297f7bae9c1c7c94a2482f https://github.com/MLton/mlton/commit/7bc8145987dab7881e297f7bae9c1c7c94a2482f Author: Matthew Fluet <mat...@gm...> Date: 2019-06-04 (Tue, 04 Jun 2019) Changed paths: M mlton/control/control.sig M mlton/control/control.sml Log Message: ----------- Add `Control.simplePasses` This captures the common case of a simplify pass that executes a sequence of passes. Commit: 5d3d0c6077f0e41f50cb283bd8f8c446168bc01d https://github.com/MLton/mlton/commit/5d3d0c6077f0e41f50cb283bd8f8c446168bc01d Author: Matthew Fluet <mat...@gm...> Date: 2019-06-04 (Tue, 04 Jun 2019) Changed paths: M mlton/ssa/simplify.fun Log Message: ----------- Implement `SSA.simplify` with `Control.simplePasses` Commit: d8e4e2e3efcefe9f5f30544e0098554a8677e9de https://github.com/MLton/mlton/commit/d8e4e2e3efcefe9f5f30544e0098554a8677e9de Author: Matthew Fluet <mat...@gm...> Date: 2019-06-04 (Tue, 04 Jun 2019) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/simplify.fun Log Message: ----------- Remove `-loop-ssa-passes <n>` expert option Commit: 8df74630cf36b4b92e5291cbafafe28c0543bd64 https://github.com/MLton/mlton/commit/8df74630cf36b4b92e5291cbafafe28c0543bd64 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-04 (Tue, 04 Jun 2019) Changed paths: M mlton/ssa/simplify2.fun Log Message: ----------- Implement `SSA2.simplify` with `Control.simplePasses` Commit: db3cfc61c0d022f6ac0fafd5c2fcdb830fdaf327 https://github.com/MLton/mlton/commit/db3cfc61c0d022f6ac0fafd5c2fcdb830fdaf327 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-04 (Tue, 04 Jun 2019) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/simplify2.fun Log Message: ----------- Remove `-loop-ssa-passes <n>` expert option Commit: 8b210333976187e8e81455a73519396836928c02 https://github.com/MLton/mlton/commit/8b210333976187e8e81455a73519396836928c02 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-04 (Tue, 04 Jun 2019) Changed paths: M mlton/xml/sxml-simplify.fun Log Message: ----------- Implement `Sxml.simplify` with `Control.simplePasses` Commit: c8461cb184e806b214ff2ea7afe667f8f8066a52 https://github.com/MLton/mlton/commit/c8461cb184e806b214ff2ea7afe667f8f8066a52 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-04 (Tue, 04 Jun 2019) Changed paths: M mlton/xml/xml-simplify.fun Log Message: ----------- Implement `Xml.simplify` with `Control.simplePasses` Commit: 45ce6b3bcdfef4e320b8fec23d7980f5a58482a7 https://github.com/MLton/mlton/commit/45ce6b3bcdfef4e320b8fec23d7980f5a58482a7 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-04 (Tue, 04 Jun 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Implement `rssaSimplify` with `Control.simplePasses` Commit: 0f72cfc58db54d1aeebd8d48468c0f06f6691aa9 https://github.com/MLton/mlton/commit/0f72cfc58db54d1aeebd8d48468c0f06f6691aa9 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-04 (Tue, 04 Jun 2019) Changed paths: M mlton/backend/rssa.fun M mlton/control/control.sml M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun M mlton/ssa/type-check.fun M mlton/ssa/type-check2.fun M mlton/xml/sxml-simplify.fun M mlton/xml/type-check.fun M mlton/xml/xml-simplify.fun Log Message: ----------- Eliminate redundant `typeCheck` tracing Commit: 26d0181a97338f48751705384ddf42b211fb26ec https://github.com/MLton/mlton/commit/26d0181a97338f48751705384ddf42b211fb26ec Author: Matthew Fluet <mat...@gm...> Date: 2019-06-04 (Tue, 04 Jun 2019) Changed paths: M mlton/backend/backend.fun M mlton/main/compile.fun Log Message: ----------- Implement `{xml,sxml,ssa,ssa2,rssa}Simplify` passes with `Control.simplePass` Commit: b916394bd15edcb149418857ce9dadc288861a0e https://github.com/MLton/mlton/commit/b916394bd15edcb149418857ce9dadc288861a0e Author: Matthew Fluet <mat...@gm...> Date: 2019-06-05 (Wed, 05 Jun 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig Log Message: ----------- Separate `machineSimplify` pass from `toMachine` pass Commit: ca2eaa77e56c2f7935a1fe34e18ea047b9d624dd https://github.com/MLton/mlton/commit/ca2eaa77e56c2f7935a1fe34e18ea047b9d624dd Author: Matthew Fluet <mat...@gm...> Date: 2019-06-05 (Wed, 05 Jun 2019) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/elaborate/elaborate-env.fun M mlton/main/compile.fun M mlton/main/main.fun Log Message: ----------- Eliminate `ControlFlags.elaborateOnly` The `elaborateOnly` flag was initialized by stop = Place.TypeCheck andalso not (warnMatch) andalso not (!keepDefUse) However, in order for `warnMatch` to be `false`, all of the match warnings must be ignored and disabled, which is not typical. Similarly, in order for `!keepDefUse` to be `false`, the `warnUnused` annotation must be disabled, which is not typical. It seems that there is little to be gained by trying to optimize the `elaborateOnly` path. Commit: c94abd1e18f5e634f480c0bee5786b54c868eac7 https://github.com/MLton/mlton/commit/c94abd1e18f5e634f480c0bee5786b54c868eac7 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-05 (Wed, 05 Jun 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/rssa.fun Log Message: ----------- Incorporate `Rssa.Program.checkHandlers` into `Rssa.Program.typeCheck` Commit: 50180c8e0c685ca9b6705a2476c07c83635409c1 https://github.com/MLton/mlton/commit/50180c8e0c685ca9b6705a2476c07c83635409c1 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-05 (Wed, 05 Jun 2019) Changed paths: M mlton/control/control.sml M mlton/main/main.fun Log Message: ----------- Avoid redundant exception history when tracing passes Commit: ba64a743591549c89a9b6f2b303311459d3996fa https://github.com/MLton/mlton/commit/ba64a743591549c89a9b6f2b303311459d3996fa Author: Matthew Fluet <mat...@gm...> Date: 2019-06-05 (Wed, 05 Jun 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/control/control.sig M mlton/control/control.sml M mlton/main/compile.fun M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun M mlton/xml/sxml-simplify.fun M mlton/xml/xml-simplify.fun Log Message: ----------- Rename `Control.simplePass{,es}` to `Control.simplifyPass{,es}` Commit: c317c1154fcf265a6dba7742d43d3a83d25c1ac2 https://github.com/MLton/mlton/commit/c317c1154fcf265a6dba7742d43d3a83d25c1ac2 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-05 (Wed, 05 Jun 2019) Changed paths: M mlton/control/control.sig M mlton/control/control.sml Log Message: ----------- Add `Control.translatePass` Commit: 023cc5fd527286b35ed2e21e6be4db5c099016e6 https://github.com/MLton/mlton/commit/023cc5fd527286b35ed2e21e6be4db5c099016e6 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-05 (Wed, 05 Jun 2019) Changed paths: M mlton/control/control.sml Log Message: ----------- Move `save`, `typeCheck`, and `stats` messages into pass trace Commit: 1b119b1490b73ad0a190bfe776d29ed02208211d https://github.com/MLton/mlton/commit/1b119b1490b73ad0a190bfe776d29ed02208211d Author: Matthew Fluet <mat...@gm...> Date: 2019-06-05 (Wed, 05 Jun 2019) Changed paths: M mlton/backend/backend.fun M mlton/control/control.sig M mlton/control/control.sml M mlton/main/compile.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- Only display `save <file>.dot` messages at `-verbose 3` Commit: e3b244653e9288d5282b38e76d83f053c744c66d https://github.com/MLton/mlton/commit/e3b244653e9288d5282b38e76d83f053c744c66d Author: Matthew Fluet <mat...@gm...> Date: 2019-06-05 (Wed, 05 Jun 2019) Changed paths: M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun M mlton/xml/sxml-simplify.fun M mlton/xml/xml-simplify.fun Log Message: ----------- Distinguish type-checking of initial and final {XML,SXML,SSA,SSA2} programs Commit: a8f458f95c7e66548e037e77e6578ec66e5c1a08 https://github.com/MLton/mlton/commit/a8f458f95c7e66548e037e77e6578ec66e5c1a08 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-05 (Wed, 05 Jun 2019) Changed paths: M mlton/control/control.sig M mlton/control/control.sml Log Message: ----------- Make `Control.translatePass`'s `tgtTypeCheck` field optional Commit: 42d216e595fbc5a6d354e4a72f0454ec3b38d09c https://github.com/MLton/mlton/commit/42d216e595fbc5a6d354e4a72f0454ec3b38d09c Author: Matthew Fluet <mat...@gm...> Date: 2019-06-05 (Wed, 05 Jun 2019) Changed paths: M mlton/control/control.sig M mlton/control/control.sml Log Message: ----------- Add `Control.composeToFile` Commit: a473e18eb42801b249a7e9a2ca39a4b175614970 https://github.com/MLton/mlton/commit/a473e18eb42801b249a7e9a2ca39a4b175614970 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-05 (Wed, 05 Jun 2019) Changed paths: M mlton/core-ml/core-ml.fun Log Message: ----------- Tweak `CoreML.Program.layouts` Commit: 9857bcdce31a8a2087f41845822c3a1cd34838ce https://github.com/MLton/mlton/commit/9857bcdce31a8a2087f41845822c3a1cd34838ce Author: Matthew Fluet <mat...@gm...> Date: 2019-06-05 (Wed, 05 Jun 2019) Changed paths: M mlton/xml/polyvariance.fun Log Message: ----------- Use `Control.simplifyPass` for "duplicate<n>" pass of polyvariance Commit: 4e34c3e5c0c361eb5f4f2000be30828f986bd978 https://github.com/MLton/mlton/commit/4e34c3e5c0c361eb5f4f2000be30828f986bd978 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-05 (Wed, 05 Jun 2019) Changed paths: M mlton/backend/backend.fun M mlton/main/compile.fun Log Message: ----------- Replace uses of `Control.passTypeCheck` with `Control.translatePass` Commit: 2d83e1752e76dba86a723ca6d720f94d23095f5e https://github.com/MLton/mlton/commit/2d83e1752e76dba86a723ca6d720f94d23095f5e Author: Matthew Fluet <mat...@gm...> Date: 2019-06-06 (Thu, 06 Jun 2019) Changed paths: M mlton/control/control.sig M mlton/control/control.sml M mlton/main/compile.fun M mlton/main/main.fun Log Message: ----------- Distinguish different kinds of pass termination Commit: 5d9ffe930ae80eb6b944e3c51dd65f8f66e33730 https://github.com/MLton/mlton/commit/5d9ffe930ae80eb6b944e3c51dd65f8f66e33730 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-06 (Thu, 06 Jun 2019) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/control/control.sml M mlton/main/main.fun Log Message: ----------- Add `-stop-pass <pass>` compile-time argument to stop after pass Commit: 6b17a4ee89da35931e42d003c364d768b2818b30 https://github.com/MLton/mlton/commit/6b17a4ee89da35931e42d003c364d768b2818b30 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-06 (Thu, 06 Jun 2019) Changed paths: M mlton/elaborate/elaborate-env.sig Log Message: ----------- Alphabetize specs in `signature ELABORATE_ENV` Commit: c338a573637012d2f7f261eb16291b8eb5ffe678 https://github.com/MLton/mlton/commit/c338a573637012d2f7f261eb16291b8eb5ffe678 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-06 (Thu, 06 Jun 2019) Changed paths: M mlton/elaborate/elaborate-env.fun Log Message: ----------- Trace `processDefUse` at `-verbose 3` Commit: 2bc54718b788cd4b6a3265dc6387f0c204baf5f2 https://github.com/MLton/mlton/commit/2bc54718b788cd4b6a3265dc6387f0c204baf5f2 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-06 (Thu, 06 Jun 2019) Changed paths: M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-env.sig M mlton/elaborate/elaborate-modules.fun M mlton/main/compile.fun Log Message: ----------- Add `ElaborateEnv.showBasis` to replace `ElaborateEnv.output` Commit: 6144fd1bd81f7927bf598b4c8ba61dbe3a6960d8 https://github.com/MLton/mlton/commit/6144fd1bd81f7927bf598b4c8ba61dbe3a6960d8 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-06 (Thu, 06 Jun 2019) Changed paths: M mlton/main/compile.fun Log Message: ----------- Perform `showBasis` and `processDefUse` within `parseAndElaborateMLB` Commit: 23baeef04a1e53bff4ddc70c4ca991c7f4ecb391 https://github.com/MLton/mlton/commit/23baeef04a1e53bff4ddc70c4ca991c7f4ecb391 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-06 (Thu, 06 Jun 2019) Changed paths: M mlton/atoms/ffi.fun M mlton/atoms/ffi.sig M mlton/main/compile.fun Log Message: ----------- Perform `exportHeader` within `parseAndElaborateMLB` Commit: a96bbb76c2239dd3bead7acaf48a79227cf8c735 https://github.com/MLton/mlton/commit/a96bbb76c2239dd3bead7acaf48a79227cf8c735 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-06 (Thu, 06 Jun 2019) Changed paths: M mlton/main/compile.fun Log Message: ----------- Simplify `Compile.elaborate` Commit: 97f399a552b36d5470caa799522e63f231b180d1 https://github.com/MLton/mlton/commit/97f399a552b36d5470caa799522e63f231b180d1 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/main/compile.fun Log Message: ----------- Refactor conversion from input file names to `MLBString.t`s Commit: 9f9925fb851ce1699be33d289e1ae2e097b5030a https://github.com/MLton/mlton/commit/9f9925fb851ce1699be33d289e1ae2e097b5030a Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/main/compile.fun Log Message: ----------- Consolidate calls of `setupConstants` in `makeMachine` Runtime constants only need to be set for backend passes. Commit: d2dcf2774b52b9040db85a0fcfc4af9e8c670958 https://github.com/MLton/mlton/commit/d2dcf2774b52b9040db85a0fcfc4af9e8c670958 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/main/compile.fun Log Message: ----------- Tweak codegen pass names Commit: e4fea33a41ba4f49cf40d73c3d073fa02184f498 https://github.com/MLton/mlton/commit/e4fea33a41ba4f49cf40d73c3d073fa02184f498 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/rssa.fun M mlton/control/control.sig M mlton/control/control.sml M mlton/core-ml/core-ml.fun M mlton/core-ml/core-ml.sig M mlton/main/compile.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/xml/sxml.fun M mlton/xml/xml-tree.fun M mlton/xml/xml-tree.sig Log Message: ----------- Make `tgtStats` and `tgtToFile` optional in `Control.translatePass` Also, move display of IL program sizes to corresponding `layoutStats` functions. Makes it cleaner to distinguish tgts that have no reasonable size. Commit: 6547f3a933a09b2961016897bf34c6603a6f2ab9 https://github.com/MLton/mlton/commit/6547f3a933a09b2961016897bf34c6603a6f2ab9 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/control/control.sig M mlton/control/control.sml Log Message: ----------- Eliminate unused `Control.NoDisplay` Commit: b0a30b954ee2288014bcff4c8cb762eb6e3bf432 https://github.com/MLton/mlton/commit/b0a30b954ee2288014bcff4c8cb762eb6e3bf432 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/main/compile.fun M mlton/main/compile.sig Log Message: ----------- Begin to simplify `Compile: COMPILE` interface for IL frontends Commit: d6ac0b5540f73f030c3c13296f46e126f8180349 https://github.com/MLton/mlton/commit/d6ac0b5540f73f030c3c13296f46e126f8180349 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/main/main.fun Log Message: ----------- Eliminate special case of show Basis Library basis on no inputs Commit: 5ba39d6cd1b626318b237fd615f96ce0d587a258 https://github.com/MLton/mlton/commit/5ba39d6cd1b626318b237fd615f96ce0d587a258 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/main/compile.fun M mlton/main/compile.sig M mlton/main/main.fun Log Message: ----------- Propagate assumption that compilation is always of a single SML file Commit: 061614e3d89bcd8d5cdc2ad59ae05121bdffd143 https://github.com/MLton/mlton/commit/061614e3d89bcd8d5cdc2ad59ae05121bdffd143 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/main/compile.fun M mlton/main/compile.sig Log Message: ----------- Continue to simplify `Compile: COMPILE` interface for IL frontends Commit: 857930b6ec8a2b18c81a09a55c10627e574c6cfa https://github.com/MLton/mlton/commit/857930b6ec8a2b18c81a09a55c10627e574c6cfa Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/main/main.fun Log Message: ----------- Use simplified interface to `Compile: COMPILE` in `Main: MAIN` Commit: d690eb607973acfcad77b3c67042a47938d6a565 https://github.com/MLton/mlton/commit/d690eb607973acfcad77b3c67042a47938d6a565 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/main/compile.fun M mlton/main/compile.sig Log Message: ----------- Remove superseded interface in `Compile: COMPILE` Commit: 4877088f570edab4e8f8b918caab48423b9b405f https://github.com/MLton/mlton/commit/4877088f570edab4e8f8b918caab48423b9b405f Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/control/control.sig M mlton/control/control.sml Log Message: ----------- Eliminate unused `Control.pass{,TypeCheck}` Commit: b59a520e228148cd90ef8de6b1123b067b1044aa https://github.com/MLton/mlton/commit/b59a520e228148cd90ef8de6b1123b067b1044aa Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/backend/backend.fun M mlton/control/control.sig M mlton/control/control.sml M mlton/main/compile.fun M mlton/xml/polyvariance.fun Log Message: ----------- Incorporate keeping of (final) IL into `Control.{translate,simplify}Pass` Commit: 9bbf5328c30794a1ec69ab280e0f8575cb8d3b64 https://github.com/MLton/mlton/commit/9bbf5328c30794a1ec69ab280e0f8575cb8d3b64 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: A mlton/backend/backend-atoms.fun A mlton/backend/backend-atoms.sig M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/sources.cm M mlton/backend/sources.mlb M mlton/main/compile.fun Log Message: ----------- Introduce `BackendAtoms: BACKEND_ATOMS` This initiates a refactoring to break up the monolithic `functor Backend`. Commit: dccf9415b3d4e10a6665924f6e868539f48d7639 https://github.com/MLton/mlton/commit/dccf9415b3d4e10a6665924f6e868539f48d7639 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/backend/allocate-registers.fun M mlton/backend/backend-atoms.sig M mlton/backend/backend.fun M mlton/backend/bounce-vars.fun M mlton/backend/implement-handlers.fun M mlton/backend/implement-profiling.fun M mlton/backend/limit-check.fun R mlton/backend/live.fun R mlton/backend/live.sig M mlton/backend/machine.fun M mlton/backend/machine.sig R mlton/backend/restore.fun R mlton/backend/restore.sig A mlton/backend/rssa-live.fun A mlton/backend/rssa-live.sig A mlton/backend/rssa-restore.fun A mlton/backend/rssa-restore.sig A mlton/backend/rssa-simplify.fun A mlton/backend/rssa-simplify.sig M mlton/backend/rssa-transform.sig A mlton/backend/rssa-tree.fun A mlton/backend/rssa-tree.sig M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/backend/signal-check.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb Log Message: ----------- Refactor RSSA IL along the lines of the SSA and SSA2 ILs Commit: 182620eb9bada919d11f2769b5a3975fdca35f4a https://github.com/MLton/mlton/commit/182620eb9bada919d11f2769b5a3975fdca35f4a Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/backend/allocate-registers.sig M mlton/backend/backend-atoms.sig M mlton/backend/backend.fun M mlton/backend/backend.sig M mlton/backend/sources.cm M mlton/backend/sources.mlb M mlton/main/compile.fun Log Message: ----------- Split monolithic `Backend.backend` pass Now, `Compile.compile` separately invokes `toRssa`, `rssaSimplify`, `backend` (aka, `toMachine`), `machineSimplicy`. Commit: 64f7467e0178af6352e786621f7b28e558e6874e https://github.com/MLton/mlton/commit/64f7467e0178af6352e786621f7b28e558e6874e Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/control/control.sig M mlton/control/control.sml Log Message: ----------- Eliminate unused `Control.composeToFile` Commit: 15be9a97ea18ba6532a17c4b63cc4f1beeb5f715 https://github.com/MLton/mlton/commit/15be9a97ea18ba6532a17c4b63cc4f1beeb5f715 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/control/control.sig M mlton/control/control.sml Log Message: ----------- Simplify `Control.maybeSaveToFile`. Commit: 1f2e1eaf7072661a1b8d265694be987ff5fcb27b https://github.com/MLton/mlton/commit/1f2e1eaf7072661a1b8d265694be987ff5fcb27b Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/control/control.sml Log Message: ----------- Extend `-keep-pass <re>` to check against `<name>{,pre,post}` For example, `-keep-pass polyEqual.post` will only save `z.polyEqual.post.ssa`, without also saving `z.polyEqual.pre.ssa`. Commit: 7cc0d6d21144a645b382b5dc5a4f9945464814f5 https://github.com/MLton/mlton/commit/7cc0d6d21144a645b382b5dc5a4f9945464814f5 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/control/control.sml Log Message: ----------- Respect `-keep <il>` and `-stop-pass <re>` with `-disable-pass <re>` Commit: 93f671daa56c7bc306d8120571f4ed7d61030555 https://github.com/MLton/mlton/commit/93f671daa56c7bc306d8120571f4ed7d61030555 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/control/control.sml Log Message: ----------- Code formatting Commit: 03f8d39b8adab21b9a90ffbe65af5444efa68a77 https://github.com/MLton/mlton/commit/03f8d39b8adab21b9a90ffbe65af5444efa68a77 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/backend/packed-representation.fun M mlton/backend/representation.sig M mlton/backend/sources.cm M mlton/backend/sources.mlb R mlton/backend/ssa-to-rssa.fun R mlton/backend/ssa-to-rssa.sig A mlton/backend/ssa2-to-rssa.fun A mlton/backend/ssa2-to-rssa.sig M mlton/main/compile.fun Log Message: ----------- Rename `SsaToRssa` to `Ssa2ToRssa` Commit: 5afdfec9e6e3572b5ac69b66eef8e2603df3947f https://github.com/MLton/mlton/commit/5afdfec9e6e3572b5ac69b66eef8e2603df3947f Author: Matthew Fluet <Mat...@gm...> Date: 2019-06-07 (Fri, 07 Jun 2019) Changed paths: M mlton/atoms/ffi.fun M mlton/atoms/ffi.sig M mlton/backend/allocate-registers.fun M mlton/backend/allocate-registers.sig A mlton/backend/backend-atoms.fun A mlton/backend/backend-atoms.sig M mlton/backend/backend.fun M mlton/backend/backend.sig M mlton/backend/bounce-vars.fun M mlton/backend/implement-handlers.fun M mlton/backend/implement-profiling.fun M mlton/backend/limit-check.fun R mlton/backend/live.fun R mlton/backend/live.sig M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/packed-representation.fun M mlton/backend/representation.sig R mlton/backend/restore.fun R mlton/backend/restore.sig A mlton/backend/rssa-live.fun A mlton/backend/rssa-live.sig A mlton/backend/rssa-restore.fun A mlton/backend/rssa-restore.sig A mlton/backend/rssa-simplify.fun A mlton/backend/rssa-simplify.sig M mlton/backend/rssa-transform.sig A mlton/backend/rssa-tree.fun A mlton/backend/rssa-tree.sig M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/backend/signal-check.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb R mlton/backend/ssa-to-rssa.fun R mlton/backend/ssa-to-rssa.sig A mlton/backend/ssa2-to-rssa.fun A mlton/backend/ssa2-to-rssa.sig M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/control/control.sig M mlton/control/control.sml M mlton/core-ml/core-ml.fun M mlton/core-ml/core-ml.sig M mlton/elaborate/elaborate-env.fun M mlton/elaborate/elaborate-env.sig M mlton/elaborate/elaborate-modules.fun M mlton/main/compile.fun M mlton/main/compile.sig M mlton/main/main.fun M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig M mlton/ssa/type-check.fun M mlton/ssa/type-check2.fun M mlton/xml/polyvariance.fun M mlton/xml/sxml-simplify.fun M mlton/xml/sxml.fun M mlton/xml/type-check.fun M mlton/xml/xml-simplify.fun M mlton/xml/xml-tree.fun M mlton/xml/xml-tree.sig Log Message: ----------- Merge pull request #313 from MatthewFluet/pass-refactor Refactor pass infrastructure and backend. Highlights: * Extend `-keep-pass <pass>` and `-disable-pass <pass>` to more passes; for example, the former can be applied to `closureConvert` and both can be applied to `ssaSimplify`. * Avoid redundant exception history when tracing passes (50180c8e0). * Distinguish different kinds of pass termination (2d83e1752). * Add `-stop-pass <pass>` to terminate compilation after a pass (5d9ffe930). * Simplify `structure Compile: COMPILE` interface for IL frontend (b0a30b954, 061614e3d, 857930b6e). * Split monolithic `Backend.backend` pass; now, `Compile.compile` separately invokes `toRssa`, `rssaSimplify`, `backend` (aka, `toMachine`), `machineSimplify` (182620eb9). * Other improvements to pass tracing messages. Compare: https://github.com/MLton/mlton/compare/908e25d59e03...5afdfec9e6e3 |
From: Matthew F. <no...@gi...> - 2019-06-03 16:54:42
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: a784d69b3b441543ec7d05fbef977f23638a521b https://github.com/MLton/mlton/commit/a784d69b3b441543ec7d05fbef977f23638a521b Author: Matthew Fluet <mat...@gm...> Date: 2019-06-02 (Sun, 02 Jun 2019) Changed paths: A lib/mlton/lattice/flat-lattice.fun A lib/mlton/lattice/flat-lattice.sig A lib/mlton/lattice/n-point-lattice.fun A lib/mlton/lattice/n-point-lattice.sig A lib/mlton/lattice/sources.cm A lib/mlton/lattice/sources.mlb A lib/mlton/lattice/three-point-lattice.fun A lib/mlton/lattice/three-point-lattice.sig A lib/mlton/lattice/two-point-lattice.fun A lib/mlton/lattice/two-point-lattice.sig M lib/mlton/sources.cm M lib/mlton/sources.mlb R mlton/ssa/flat-lattice.fun R mlton/ssa/flat-lattice.sig R mlton/ssa/n-point-lattice.fun R mlton/ssa/n-point-lattice.sig M mlton/ssa/sources.cm M mlton/ssa/sources.mlb R mlton/ssa/three-point-lattice.fun R mlton/ssa/three-point-lattice.sig R mlton/ssa/two-point-lattice.fun R mlton/ssa/two-point-lattice.sig Log Message: ----------- Move various Lattice functors to MLton Library Commit: 256e19185efdd27fed2597c4dc7c695dbc4cb3bf https://github.com/MLton/mlton/commit/256e19185efdd27fed2597c4dc7c695dbc4cb3bf Author: Matthew Fluet <mat...@gm...> Date: 2019-06-02 (Sun, 02 Jun 2019) Changed paths: A lib/mlton/lattice/powerset-lattice.fun A lib/mlton/lattice/powerset-lattice.sig M lib/mlton/lattice/sources.cm M lib/mlton/lattice/sources.mlb M lib/mlton/sources.cm M lib/mlton/sources.mlb Log Message: ----------- Add `POWERSET_LATTICE` signature and functors to MLton Library Commit: 8d049c65962d3b02c2f42a05286c44219e3cf8a5 https://github.com/MLton/mlton/commit/8d049c65962d3b02c2f42a05286c44219e3cf8a5 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-03 (Mon, 03 Jun 2019) Changed paths: M mlton/backend/chunkify.fun Log Message: ----------- Use `PowerSetLattice` to implement `Chunkify.returnsTo` Commit: 908e25d59e03821500ea2759601362e3ba099d2b https://github.com/MLton/mlton/commit/908e25d59e03821500ea2759601362e3ba099d2b Author: Matthew Fluet <Mat...@gm...> Date: 2019-06-03 (Mon, 03 Jun 2019) Changed paths: A lib/mlton/lattice/flat-lattice.fun A lib/mlton/lattice/flat-lattice.sig A lib/mlton/lattice/n-point-lattice.fun A lib/mlton/lattice/n-point-lattice.sig A lib/mlton/lattice/powerset-lattice.fun A lib/mlton/lattice/powerset-lattice.sig A lib/mlton/lattice/sources.cm A lib/mlton/lattice/sources.mlb A lib/mlton/lattice/three-point-lattice.fun A lib/mlton/lattice/three-point-lattice.sig A lib/mlton/lattice/two-point-lattice.fun A lib/mlton/lattice/two-point-lattice.sig M lib/mlton/sources.cm M lib/mlton/sources.mlb M mlton/backend/chunkify.fun R mlton/ssa/flat-lattice.fun R mlton/ssa/flat-lattice.sig R mlton/ssa/n-point-lattice.fun R mlton/ssa/n-point-lattice.sig M mlton/ssa/sources.cm M mlton/ssa/sources.mlb R mlton/ssa/three-point-lattice.fun R mlton/ssa/three-point-lattice.sig R mlton/ssa/two-point-lattice.fun R mlton/ssa/two-point-lattice.sig Log Message: ----------- Merge pull request #311 from MatthewFluet/lattice-library Lattice functors in MLton Library Move the various Lattice functors to MLton Library (from SSA IR) and implement a `POWERSET_LATTICE` signature and functors. Compare: https://github.com/MLton/mlton/compare/609b33382255...908e25d59e03 |
From: Matthew F. <no...@gi...> - 2019-06-02 22:55:00
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: eea538a84f968674daefbf9cac0ab6c4eb99b230 https://github.com/MLton/mlton/commit/eea538a84f968674daefbf9cac0ab6c4eb99b230 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-02 (Sun, 02 Jun 2019) Changed paths: M mlton/atoms/atoms.fun M mlton/atoms/atoms.sig A mlton/atoms/handler.fun A mlton/atoms/handler.sig A mlton/atoms/return.fun A mlton/atoms/return.sig M mlton/atoms/sources.cm M mlton/atoms/sources.mlb M mlton/backend/backend.fun M mlton/backend/rssa.sig M mlton/main/compile.fun M mlton/ssa/sources.cm M mlton/ssa/sources.mlb M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig Log Message: ----------- Move `Handler: HANDLER` and `Return: RETURN` into `Atoms: ATOMS` The `Handler.t` and `Return.t` types are used by the SSA, SSA2, and RSSA IRs. Previously, `functor SsaTree` and `functor SsaTree2` duplicated the code for `structure Handler: HANDLER` and `structure Return: RETURN`. Commit: 65ec9d17ef008a28a23682ec1c3090ec00ab9c45 https://github.com/MLton/mlton/commit/65ec9d17ef008a28a23682ec1c3090ec00ab9c45 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-02 (Sun, 02 Jun 2019) Changed paths: R mlton/atoms/cases.fun R mlton/atoms/cases.sig Log Message: ----------- Delete unused files `atoms/cases.{sig,fun}` Commit: 4d5e670e2af78b49ad136b9a278db92595624a6f https://github.com/MLton/mlton/commit/4d5e670e2af78b49ad136b9a278db92595624a6f Author: Matthew Fluet <mat...@gm...> Date: 2019-06-02 (Sun, 02 Jun 2019) Changed paths: M mlton/atoms/atoms.fun M mlton/atoms/atoms.sig A mlton/atoms/cases.fun A mlton/atoms/cases.sig M mlton/atoms/sources.cm M mlton/atoms/sources.mlb M mlton/backend/ssa-to-rssa.fun M mlton/defunctorize/defunctorize.fun M mlton/match-compile/match-compile.fun M mlton/match-compile/match-compile.sig M mlton/ssa/loop-unswitch.fun M mlton/ssa/shrink.fun M mlton/ssa/shrink2.fun M mlton/ssa/ssa-to-ssa2.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig M mlton/xml/shrink.fun M mlton/xml/xml-tree.fun M mlton/xml/xml-tree.sig Log Message: ----------- Move `Cases: CASES` into `Atoms: ATOMS` The `Cases.t` type is used by the XML, SSA, and SSA2 IRS. Previously, `functor XmlTree`, `functor SsaTree`, and `functor SsaTree2` duplicated the code for `structure Cases: CASES`. Commit: 9459f7b5bb690c81fc971582850f79c34a0e0323 https://github.com/MLton/mlton/commit/9459f7b5bb690c81fc971582850f79c34a0e0323 Author: Matthew Fluet <mat...@gm...> Date: 2019-06-02 (Sun, 02 Jun 2019) Changed paths: M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/rep-type.sig M mlton/backend/rssa.sig R mlton/backend/scale.fun R mlton/backend/scale.sig M mlton/backend/sources.cm M mlton/backend/sources.mlb A mlton/control/scale.sml M mlton/control/sources.cm M mlton/control/sources.mlb Log Message: ----------- Move `Scale: SCALE` to `./mlton/control/` The `Scale.t` type is used by RSSA, Machine, and the codegens. Furthermore, `Scale.t` is similar in spirit to `Bits.t` and `Bytes.t`, which are also found in `./mlton/control/`. Commit: 609b3338225501f237962f1fefd41ace0502abea https://github.com/MLton/mlton/commit/609b3338225501f237962f1fefd41ace0502abea Author: Matthew Fluet <Mat...@gm...> Date: 2019-06-02 (Sun, 02 Jun 2019) Changed paths: M mlton/atoms/atoms.fun M mlton/atoms/atoms.sig M mlton/atoms/cases.fun M mlton/atoms/cases.sig A mlton/atoms/handler.fun A mlton/atoms/handler.sig A mlton/atoms/return.fun A mlton/atoms/return.sig M mlton/atoms/sources.cm M mlton/atoms/sources.mlb M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/rep-type.sig M mlton/backend/rssa.sig R mlton/backend/scale.fun R mlton/backend/scale.sig M mlton/backend/sources.cm M mlton/backend/sources.mlb M mlton/backend/ssa-to-rssa.fun A mlton/control/scale.sml M mlton/control/sources.cm M mlton/control/sources.mlb M mlton/defunctorize/defunctorize.fun M mlton/main/compile.fun M mlton/match-compile/match-compile.fun M mlton/match-compile/match-compile.sig M mlton/ssa/loop-unswitch.fun M mlton/ssa/shrink.fun M mlton/ssa/shrink2.fun M mlton/ssa/sources.cm M mlton/ssa/sources.mlb M mlton/ssa/ssa-to-ssa2.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig M mlton/xml/shrink.fun M mlton/xml/xml-tree.fun M mlton/xml/xml-tree.sig Log Message: ----------- Merge pull request #310 from MatthewFluet/atoms-updates Relocate structures shared by multiple IRs Compare: https://github.com/MLton/mlton/compare/9ccfb06a97a0...609b33382255 |
From: Matthew F. <no...@gi...> - 2019-05-31 17:35:32
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: c4b95b54cb59515d658b16b589336572432bbf37 https://github.com/MLton/mlton/commit/c4b95b54cb59515d658b16b589336572432bbf37 Author: Jason Carr <jca...@gm...> Date: 2019-01-22 (Tue, 22 Jan 2019) Changed paths: M lib/mlton/basic/directed-graph.sig M lib/mlton/basic/directed-graph.sml M mlton/backend/limit-check.fun M mlton/backend/signal-check.fun M mlton/codegen/amd64-codegen/amd64-loop-info.fun M mlton/codegen/x86-codegen/x86-loop-info.fun M mlton/ssa/loop-unroll.fun M mlton/ssa/loop-unswitch.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- Change LoopForest to contain data rather than (necessarily) nodes The interface matches Tree.t more now This can simplify some iteration that's just passing the nodes back through a plist by putting that iteration inside the tree creator. So interfaces don't have to work with Nodes and we can sometimes GC the graph a bit sooner Commit: 55fa1649cdba14160329f52b9f65fb5709533b18 https://github.com/MLton/mlton/commit/55fa1649cdba14160329f52b9f65fb5709533b18 Author: Jason Carr <jca...@gm...> Date: 2019-01-22 (Tue, 22 Jan 2019) Changed paths: M mlton/backend/rssa.fun M mlton/backend/rssa.sig Log Message: ----------- Add public loopForest method to rssa Commit: 2ba849c84931d8789dcf2c76f063a261d64f8a34 https://github.com/MLton/mlton/commit/2ba849c84931d8789dcf2c76f063a261d64f8a34 Author: Jason Carr <jca...@gm...> Date: 2019-01-22 (Tue, 22 Jan 2019) Changed paths: M mlton/backend/rssa.fun M mlton/backend/rssa.sig Log Message: ----------- Make loopForest less specific about the kind of transfer Commit: 2c1545a2ac4b8a682487d7e751f0b1257ab783b1 https://github.com/MLton/mlton/commit/2c1545a2ac4b8a682487d7e751f0b1257ab783b1 Author: Jason Carr <jca...@gm...> Date: 2019-01-22 (Tue, 22 Jan 2019) Changed paths: M mlton/backend/rssa.fun M mlton/backend/rssa.sig Log Message: ----------- Fix Rssa.Function.loopForest to use Blocks in the predicate Commit: 4c52e0deafca992297d660cfe3ec3ce34abdb680 https://github.com/MLton/mlton/commit/4c52e0deafca992297d660cfe3ec3ce34abdb680 Author: Jason Carr <jca...@gm...> Date: 2019-01-22 (Tue, 22 Jan 2019) Changed paths: A mlton/backend/separate-vars.fun Log Message: ----------- Create separate-vars.fun rssa pass and move loop detection code Commit: dbb2c2c6c7d5ee044131d30b5cfb5b88a53516be https://github.com/MLton/mlton/commit/dbb2c2c6c7d5ee044131d30b5cfb5b88a53516be Author: Jason Carr <jca...@gm...> Date: 2019-01-22 (Tue, 22 Jan 2019) Changed paths: A mlton/backend/restore.fun M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/backend/sources.cm M mlton/backend/sources.mlb M mlton/ssa/sources.mlb Log Message: ----------- Initial version of restore rssa Commit: c1bb15c2dcb3e6a42cdcefbb5508c47306be8034 https://github.com/MLton/mlton/commit/c1bb15c2dcb3e6a42cdcefbb5508c47306be8034 Author: Jason Carr <jca...@gm...> Date: 2019-01-22 (Tue, 22 Jan 2019) Changed paths: M mlton/backend/restore.fun M mlton/backend/separate-vars.fun Log Message: ----------- Cleanup unused variables and disable separate-vars Commit: 51a89b83a77d8d9d7e8305ed6a8444a03f9bec27 https://github.com/MLton/mlton/commit/51a89b83a77d8d9d7e8305ed6a8444a03f9bec27 Author: Jason Carr <jca...@gm...> Date: 2019-01-22 (Tue, 22 Jan 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/restore.fun Log Message: ----------- Add RestoreR structure. restoreR does not reverse function order Commit: 6a6a96ad9a64ed0e3120fe211a0d7cc8ec995eee https://github.com/MLton/mlton/commit/6a6a96ad9a64ed0e3120fe211a0d7cc8ec995eee Author: Jason Carr <jca...@gm...> Date: 2019-01-22 (Tue, 22 Jan 2019) Changed paths: M mlton/backend/restore.fun M mlton/ssa/sources.cm Log Message: ----------- Fix restoreFunction to take an argument again, preventing it from accidentally having functor-level global state Commit: 2694e79e559409e7d00967c92c02d46f7897dee7 https://github.com/MLton/mlton/commit/2694e79e559409e7d00967c92c02d46f7897dee7 Author: Jason Carr <jca...@gm...> Date: 2019-01-22 (Tue, 22 Jan 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/restore.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb Log Message: ----------- Add signature & copyright for RestoreR Commit: 40539ff123981c1b8760d914a3445b11ae14bad6 https://github.com/MLton/mlton/commit/40539ff123981c1b8760d914a3445b11ae14bad6 Author: Jason Carr <jca...@gm...> Date: 2019-01-22 (Tue, 22 Jan 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Clean up unfixed rebase conflicts in separate-vars Commit: b89b913f2fdc7e7fbc800e431893096624704cf6 https://github.com/MLton/mlton/commit/b89b913f2fdc7e7fbc800e431893096624704cf6 Author: Jason Carr <jca...@gm...> Date: 2019-01-22 (Tue, 22 Jan 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/restore.fun M mlton/backend/separate-vars.fun Log Message: ----------- Fix RestoreR functor signature Commit: 59c746c9e6ebc4638aa19263ab7cef63551b4008 https://github.com/MLton/mlton/commit/59c746c9e6ebc4638aa19263ab7cef63551b4008 Author: Jason Carr <jca...@gm...> Date: 2019-01-22 (Tue, 22 Jan 2019) Changed paths: M mlton/backend/sources.cm M mlton/backend/sources.mlb Log Message: ----------- Add restore & separate-vars to sources Commit: 194ba5a0ae1f70fa4b10e308ef445760f21c1535 https://github.com/MLton/mlton/commit/194ba5a0ae1f70fa4b10e308ef445760f21c1535 Author: Jason Carr <jca...@gm...> Date: 2019-01-22 (Tue, 22 Jan 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/separate-vars.fun Log Message: ----------- Rework separate-vars a bit and start on new implementation Commit: 0efeac23c542bd61bead23af59fdfc4890ed9588 https://github.com/MLton/mlton/commit/0efeac23c542bd61bead23af59fdfc4890ed9588 Author: Jason Carr <jca...@gm...> Date: 2019-01-28 (Mon, 28 Jan 2019) Changed paths: M mlton/backend/rssa.sig M mlton/backend/separate-vars.fun Log Message: ----------- Make progress on separate-vars Commit: ef33e23b249a862a2e7435e261ee82c70c332a02 https://github.com/MLton/mlton/commit/ef33e23b249a862a2e7435e261ee82c70c332a02 Author: Jason Carr <jca...@gm...> Date: 2019-01-31 (Thu, 31 Jan 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Add a messy separate-vars that adds appropriate moves Commit: ce9877574c0ee1f98d0433325017314f2f2e92a7 https://github.com/MLton/mlton/commit/ce9877574c0ee1f98d0433325017314f2f2e92a7 Author: Jason Carr <jca...@gm...> Date: 2019-01-31 (Thu, 31 Jan 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Fix seperateVars to create binds instead of moves Commit: c92c4b3c48a6b4f86f26247bcd70816852d4380c https://github.com/MLton/mlton/commit/c92c4b3c48a6b4f86f26247bcd70816852d4380c Author: Jason Carr <jca...@gm...> Date: 2019-02-03 (Sun, 03 Feb 2019) Changed paths: M mlton/backend/restore.fun M mlton/backend/separate-vars.fun Log Message: ----------- Set types of all global variables in restoreR Commit: f5e5158990b13874674dc2d8aff3e3b8a27b92de https://github.com/MLton/mlton/commit/f5e5158990b13874674dc2d8aff3e3b8a27b92de Author: Jason Carr <jca...@gm...> Date: 2019-02-04 (Mon, 04 Feb 2019) Changed paths: M mlton/backend/rssa.fun M mlton/backend/switch.fun M mlton/backend/switch.sig Log Message: ----------- Fix a latent missing case in Rssa.replaceLabels Commit: d4ae458227cf0aaaf3b182c27787cb098b9175c7 https://github.com/MLton/mlton/commit/d4ae458227cf0aaaf3b182c27787cb098b9175c7 Author: Jason Carr <jca...@gm...> Date: 2019-02-04 (Mon, 04 Feb 2019) Changed paths: M mlton/backend/restore.fun Log Message: ----------- Use HashTable instead of HashSet in restoreR Commit: 071d6349b4b223bb663e7c99b352eec3ccfd7b8c https://github.com/MLton/mlton/commit/071d6349b4b223bb663e7c99b352eec3ccfd7b8c Author: Jason Carr <jca...@gm...> Date: 2019-02-04 (Mon, 04 Feb 2019) Changed paths: M mlton/backend/restore.fun Log Message: ----------- Factor out rewrites of var defs and add addPost to transfer Commit: 6c65cfb07c751c03daa4624a47087363b97aa59c https://github.com/MLton/mlton/commit/6c65cfb07c751c03daa4624a47087363b97aa59c Author: Jason Carr <jca...@gm...> Date: 2019-02-04 (Mon, 04 Feb 2019) Changed paths: M mlton/backend/restore.fun Log Message: ----------- Add handling for Arith defs in restoreR Commit: 3c6a9254135afaa40b105bb536b581c8bd8cbda3 https://github.com/MLton/mlton/commit/3c6a9254135afaa40b105bb536b581c8bd8cbda3 Author: Jason Carr <jca...@gm...> Date: 2019-02-04 (Mon, 04 Feb 2019) Changed paths: M mlton/backend/restore.fun Log Message: ----------- Add some almost-correct Cont/Handler routing to restoreR Commit: 611203c58e2bd7033e94bc00df01d01ceadfecfd https://github.com/MLton/mlton/commit/611203c58e2bd7033e94bc00df01d01ceadfecfd Author: Jason Carr <jca...@gm...> Date: 2019-02-08 (Fri, 08 Feb 2019) Changed paths: A mlton/backend/restore.sig Log Message: ----------- Add missing restore.sig Commit: 9c93b8d4dd8c8eeac9ef5b880049ef03308e7a91 https://github.com/MLton/mlton/commit/9c93b8d4dd8c8eeac9ef5b880049ef03308e7a91 Author: Jason Carr <jca...@gm...> Date: 2019-02-11 (Mon, 11 Feb 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Handle join points correctly in separate-vars Commit: 5d8a9f292e2910d2950e515febd1fb934e114e0f https://github.com/MLton/mlton/commit/5d8a9f292e2910d2950e515febd1fb934e114e0f Author: Jason Carr <jca...@gm...> Date: 2019-02-11 (Mon, 11 Feb 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Move separate vars to before implementHandlers Commit: e16241bd1b52c4833897e684574f8055c75e9d6f https://github.com/MLton/mlton/commit/e16241bd1b52c4833897e684574f8055c75e9d6f Author: Jason Carr <jca...@gm...> Date: 2019-02-11 (Mon, 11 Feb 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/restore.fun M mlton/backend/separate-vars.fun Log Message: ----------- Do some slight cleanup of separate-vars/restore Commit: fee896f50ebdf3d4405797fcc5dd76ef577f3ebc https://github.com/MLton/mlton/commit/fee896f50ebdf3d4405797fcc5dd76ef577f3ebc Author: Jason Carr <jca...@gm...> Date: 2019-02-11 (Mon, 11 Feb 2019) Changed paths: M mlton/backend/separate-vars.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add options for controlling when separate-vars bounces variables Commit: c92db327636f1d72812772bd4f9da766450c80d7 https://github.com/MLton/mlton/commit/c92db327636f1d72812772bd4f9da766450c80d7 Author: Jason Carr <jca...@gm...> Date: 2019-02-11 (Mon, 11 Feb 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Block loops only with SML calls, not C Commit: f0d49f63194cb9e701d3951c00d684c93649bd4c https://github.com/MLton/mlton/commit/f0d49f63194cb9e701d3951c00d684c93649bd4c Author: Jason Carr <jca...@gm...> Date: 2019-02-14 (Thu, 14 Feb 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Use isMutable on bounced vars Commit: e5fa8f794c3cb4ab9b3b826d7b6ab53924908fb4 https://github.com/MLton/mlton/commit/e5fa8f794c3cb4ab9b3b826d7b6ab53924908fb4 Author: Jason Carr <jca...@gm...> Date: 2019-02-18 (Mon, 18 Feb 2019) Changed paths: M mlton/backend/separate-vars.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add bounce-rssa-limit for naiive limitation of bounced vars Commit: 3b52a3b831daad1c3d76bff7b98464232736bc1a https://github.com/MLton/mlton/commit/3b52a3b831daad1c3d76bff7b98464232736bc1a Author: Jason Carr <jca...@gm...> Date: 2019-02-20 (Wed, 20 Feb 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Add a preliminary simplified separate-vars Commit: e51472f91cb298ec8997455e0230d79320118923 https://github.com/MLton/mlton/commit/e51472f91cb298ec8997455e0230d79320118923 Author: Jason Carr <jca...@gm...> Date: 2019-02-20 (Wed, 20 Feb 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Rewrite blocks from separateVars online; Fix avoided locations Commit: 53a8d3f2476010dac4bc62dace46015e10926cb3 https://github.com/MLton/mlton/commit/53a8d3f2476010dac4bc62dace46015e10926cb3 Author: Jason Carr <jca...@gm...> Date: 2019-02-25 (Mon, 25 Feb 2019) Changed paths: M mlton/backend/rssa.fun M mlton/backend/rssa.sig Log Message: ----------- Add an ad-hoc bit of code to Rssa loopForest to prevent disconnectedness; Commit: 4c8c109cd1fba6efa9df07ef7ca0406e69e9811e https://github.com/MLton/mlton/commit/4c8c109cd1fba6efa9df07ef7ca0406e69e9811e Author: Jason Carr <jca...@gm...> Date: 2019-02-25 (Mon, 25 Feb 2019) Changed paths: M mlton/backend/restore.fun Log Message: ----------- Fix RestoreR to handle Cont blocks with Handler better Commit: 2e8589cadb8cd89bc5d5fd00c4026957f4aa249f https://github.com/MLton/mlton/commit/2e8589cadb8cd89bc5d5fd00c4026957f4aa249f Author: Jason Carr <jca...@gm...> Date: 2019-03-12 (Tue, 12 Mar 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Broken - Bounce vars at loop entrance/exits Commit: 739915259131e7ed6ccc1c045f081708c84b7493 https://github.com/MLton/mlton/commit/739915259131e7ed6ccc1c045f081708c84b7493 Author: Jason Carr <jca...@gm...> Date: 2019-03-12 (Tue, 12 Mar 2019) Changed paths: M mlton/backend/restore.fun M mlton/backend/separate-vars.fun Log Message: ----------- Instead, bounce vars to the same name, and fix restoreR to deal with handlers correctly Commit: c6a9e47b584429cd62f3b3c3e0d22b4c467f6fa4 https://github.com/MLton/mlton/commit/c6a9e47b584429cd62f3b3c3e0d22b4c467f6fa4 Author: Jason Carr <jca...@gm...> Date: 2019-03-12 (Tue, 12 Mar 2019) Changed paths: M mlton/backend/allocate-registers.fun M mlton/backend/separate-vars.fun Log Message: ----------- Add support for bounce-rssa-limit w/ weighting Commit: 6ef5fc526b0cdb1973f53cac806fc4f6dfe72b6d https://github.com/MLton/mlton/commit/6ef5fc526b0cdb1973f53cac806fc4f6dfe72b6d Author: Jason Carr <jca...@gm...> Date: 2019-03-14 (Thu, 14 Mar 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Only consider variables that are live over a bouncing location Commit: be3b3305fd7629fc24db3bc5fddf1e8818eab693 https://github.com/MLton/mlton/commit/be3b3305fd7629fc24db3bc5fddf1e8818eab693 Author: Jason Carr <jca...@gm...> Date: 2019-03-14 (Thu, 14 Mar 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Add diagnostics and fuel for rewrites Commit: 45c82772e4105faebe6bd0086d8c9ca57868c68f https://github.com/MLton/mlton/commit/45c82772e4105faebe6bd0086d8c9ca57868c68f Author: Jason Carr <jca...@gm...> Date: 2019-03-14 (Thu, 14 Mar 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Improve diagnostics and accuracy of limit flag Commit: ddb4c113bd3b34887526cdc32132a4a2a9f413ac https://github.com/MLton/mlton/commit/ddb4c113bd3b34887526cdc32132a4a2a9f413ac Author: Jason Carr <jca...@gm...> Date: 2019-03-19 (Tue, 19 Mar 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Avoid bouncing at only blocks that force args to stack Commit: 9e3b2771326ce22ec8a42e93f9d3e4883acf214b https://github.com/MLton/mlton/commit/9e3b2771326ce22ec8a42e93f9d3e4883acf214b Author: Jason Carr <jca...@gm...> Date: 2019-03-28 (Thu, 28 Mar 2019) Changed paths: M mlton/backend/machine.fun M mlton/backend/separate-vars.fun Log Message: ----------- Machine layout now includes chunk information Commit: cc4efa56e0b05d6044ab38e9d4aaa4b090a51971 https://github.com/MLton/mlton/commit/cc4efa56e0b05d6044ab38e9d4aaa4b090a51971 Author: Jason Carr <jca...@gm...> Date: 2019-03-28 (Thu, 28 Mar 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Record definition for separate-vars and add a much worse selection heuristic Commit: 4e1d5a2c4574ffb6e8eca5ccb12225f60dc6385a https://github.com/MLton/mlton/commit/4e1d5a2c4574ffb6e8eca5ccb12225f60dc6385a Author: Jason Carr <jca...@gm...> Date: 2019-03-28 (Thu, 28 Mar 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Fixup the order to make it slightly less terrible Commit: 564e59a17bb104faee19170d348ee6a025778cc3 https://github.com/MLton/mlton/commit/564e59a17bb104faee19170d348ee6a025778cc3 Author: Jason Carr <ja...@ri...> Date: 2019-04-08 (Mon, 08 Apr 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Add more info about loops Commit: a48c5606f234d749fb41583621bc1147cd2dd24b https://github.com/MLton/mlton/commit/a48c5606f234d749fb41583621bc1147cd2dd24b Author: Jason Carr <ja...@ri...> Date: 2019-04-14 (Sun, 14 Apr 2019) Changed paths: M mlton/backend/machine.fun M mlton/backend/separate-vars.fun Log Message: ----------- Merge branch 'register-allocation-refactor' of github.com:jasoncarr0/mlton into register-allocation-refactor Commit: 9d67dd5dbec2a6585f4fb2d1dc2d49d35f80d15f https://github.com/MLton/mlton/commit/9d67dd5dbec2a6585f4fb2d1dc2d49d35f80d15f Author: Jason Carr <jca...@gm...> Date: 2019-05-14 (Tue, 14 May 2019) Changed paths: M basis-library/primitive/basis-ffi.sml M basis-library/primitive/prim-basis.sml M basis-library/primitive/prim-int.sml M basis-library/primitive/prim1.sml M bin/regression M doc/guide/src/Users.adoc M include/c-chunk.h M lib/mlton/basic/char.sig M lib/mlton/basic/char0.sig M lib/mlton/basic/parse.sig M lib/mlton/basic/parse.sml M lib/mlton/basic/real.sig M lib/mlton/basic/vector.fun M lib/mlton/basic/vector.sig M mlton/atoms/c-function.fun M mlton/atoms/c-function.sig M mlton/atoms/c-type.fun M mlton/atoms/c-type.sig M mlton/atoms/const.fun M mlton/atoms/const.sig M mlton/atoms/id.fun M mlton/atoms/id.sig M mlton/atoms/prim-cons.fun M mlton/atoms/prim-cons.sig M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/atoms/real-x.fun M mlton/atoms/real-x.sig M mlton/atoms/word-size.fun M mlton/atoms/word-size.sig M mlton/atoms/word-x-vector.fun M mlton/atoms/word-x-vector.sig M mlton/atoms/word-x.fun M mlton/atoms/word-x.sig M mlton/backend/backend.fun M mlton/backend/chunkify.fun M mlton/backend/implement-profiling.fun M mlton/backend/limit-check.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/packed-representation.fun M mlton/backend/rep-type.fun M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/backend/signal-check.fun M mlton/backend/ssa-to-rssa.fun M mlton/backend/switch.fun M mlton/closure-convert/closure-convert.fun M mlton/closure-convert/globalize.fun M mlton/closure-convert/lambda-free.fun M mlton/closure-convert/lambda-free.sig M mlton/codegen/amd64-codegen/amd64-mlton.fun M mlton/codegen/amd64-codegen/amd64-mlton.sig M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/amd64-codegen/amd64.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-mlton.fun M mlton/codegen/x86-codegen/x86-mlton.sig M mlton/codegen/x86-codegen/x86-translate.fun M mlton/codegen/x86-codegen/x86.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/control/control.sml M mlton/defunctorize/defunctorize.fun M mlton/main/compile.fun M mlton/main/compile.sig M mlton/main/main.fun M mlton/match-compile/match-compile.fun M mlton/match-compile/match-compile.sig M mlton/ssa/analyze.fun M mlton/ssa/analyze2.fun M mlton/ssa/common-arg.fun M mlton/ssa/common-subexp.fun M mlton/ssa/constant-propagation.fun M mlton/ssa/direct-exp.fun M mlton/ssa/direct-exp.sig M mlton/ssa/direct-exp2.fun M mlton/ssa/direct-exp2.sig M mlton/ssa/duplicate-globals.fun M mlton/ssa/local-flatten.fun M mlton/ssa/loop-unroll.fun R mlton/ssa/parse-ssa.fun R mlton/ssa/parse-ssa.sig R mlton/ssa/parse-ssa2.fun R mlton/ssa/parse-ssa2.sig M mlton/ssa/redundant-tests.fun M mlton/ssa/redundant.fun M mlton/ssa/remove-unused.fun M mlton/ssa/remove-unused2.fun M mlton/ssa/shrink.fun M mlton/ssa/shrink2.fun M mlton/ssa/simplify-types.fun M mlton/ssa/simplify.fun M mlton/ssa/simplify2.fun M mlton/ssa/sources.cm M mlton/ssa/sources.mlb M mlton/ssa/ssa-to-ssa2.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig M mlton/ssa/type-check.fun M mlton/ssa/type-check2.fun M mlton/ssa/useless.fun M mlton/xml/cps-transform.fun M mlton/xml/implement-exceptions.fun M mlton/xml/implement-suffix.fun M mlton/xml/monomorphise.fun R mlton/xml/parse-sxml.fun R mlton/xml/parse-sxml.sig M mlton/xml/polyvariance.fun M mlton/xml/scc-funs.fun M mlton/xml/shrink.fun M mlton/xml/simplify-types.fun M mlton/xml/sources.cm M mlton/xml/sources.mlb M mlton/xml/sxml-simplify.fun M mlton/xml/type-check.fun M mlton/xml/xml-simplify.fun M mlton/xml/xml-tree.fun M mlton/xml/xml-tree.sig A regression/gc-collect2.ok A regression/gc-collect2.sml M runtime/Makefile M runtime/basis-ffi.h R runtime/basis/Word/Word-check.h R runtime/basis/Word/Word-consts.h M runtime/basis/Word/Word-ops.h M runtime/basis/Word/Word.c M runtime/gen/basis-ffi.def M runtime/gen/basis-ffi.h M runtime/gen/basis-ffi.sml M runtime/platform.h Log Message: ----------- Merge branch 'master' into register-allocation-refactor Commit: 1b97811f99b64f8ccfb2d001f7f16d86760d02f1 https://github.com/MLton/mlton/commit/1b97811f99b64f8ccfb2d001f7f16d86760d02f1 Author: Jason Carr <jca...@gm...> Date: 2019-05-14 (Tue, 14 May 2019) Changed paths: M mlton/backend/restore.fun M mlton/backend/rssa.fun M mlton/backend/rssa.sig Log Message: ----------- Merge-related fixes Commit: 4767f56081712e94e5e84a1f83c4ea85233c5471 https://github.com/MLton/mlton/commit/4767f56081712e94e5e84a1f83c4ea85233c5471 Author: Jason Carr <jca...@gm...> Date: 2019-05-14 (Tue, 14 May 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Remove unused loopId field Commit: 78fc6765ee5ce67ae0a4e9d4e2090d86c11a33d9 https://github.com/MLton/mlton/commit/78fc6765ee5ce67ae0a4e9d4e2090d86c11a33d9 Author: Jason Carr <jca...@gm...> Date: 2019-05-14 (Tue, 14 May 2019) Changed paths: M mlton/backend/rssa.fun Log Message: ----------- Remove duplicate replaceLabels definition from merging Commit: 6530cb6c4d13c215786a1a0c197a43435def87a4 https://github.com/MLton/mlton/commit/6530cb6c4d13c215786a1a0c197a43435def87a4 Author: Jason Carr <jca...@gm...> Date: 2019-05-14 (Tue, 14 May 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Remove loop depth which never appeared in practice Commit: b9ef8edae7ec51a7daafc11b31317fc37c202da2 https://github.com/MLton/mlton/commit/b9ef8edae7ec51a7daafc11b31317fc37c202da2 Author: Jason Carr <jca...@gm...> Date: 2019-05-14 (Tue, 14 May 2019) Changed paths: M mlton/backend/restore.fun M mlton/backend/separate-vars.fun Log Message: ----------- Remove now-unused vars Commit: 06149771cf3a288643d9481c53c120d0c3994d46 https://github.com/MLton/mlton/commit/06149771cf3a288643d9481c53c120d0c3994d46 Author: Jason Carr <jca...@gm...> Date: 2019-05-14 (Tue, 14 May 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Merge Local and LoopLocal definition location designators Commit: e327d86725cfb20ccdb53e2793ed6754a36bb5b4 https://github.com/MLton/mlton/commit/e327d86725cfb20ccdb53e2793ed6754a36bb5b4 Author: Jason Carr <jca...@gm...> Date: 2019-05-14 (Tue, 14 May 2019) Changed paths: M mlton/control/control-flags.sml Log Message: ----------- Remove unused bounceRssaLoops/Locations options Commit: c9501cdd00f3a1fad420f66d66afe7253352fad8 https://github.com/MLton/mlton/commit/c9501cdd00f3a1fad420f66d66afe7253352fad8 Author: Jason Carr <jca...@gm...> Date: 2019-05-14 (Tue, 14 May 2019) Changed paths: M mlton/control/control-flags.sml Log Message: ----------- Default bounceRssaLimit to 2 instead of 8, it's conservative but quite effective Commit: cfc73f43ebadca04bac11ad65b0ce80638643199 https://github.com/MLton/mlton/commit/cfc73f43ebadca04bac11ad65b0ce80638643199 Author: Jason Carr <jca...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/control/control-flags.sig M mlton/main/main.fun Log Message: ----------- Fix bounce rssa flags left in signature/main Commit: a4200bf0d1276db5916616970a2fd91b15e9ed53 https://github.com/MLton/mlton/commit/a4200bf0d1276db5916616970a2fd91b15e9ed53 Author: Jason Carr <jca...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/rssa.fun Log Message: ----------- Merge branch 'rssa-shrink-fix' into register-allocation-refactor Commit: 25e1d3ef1b52327942186bfe9bc478f6fd5a73d5 https://github.com/MLton/mlton/commit/25e1d3ef1b52327942186bfe9bc478f6fd5a73d5 Author: Jason Carr <jca...@gm...> Date: 2019-05-20 (Mon, 20 May 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Skip bouncing at locations which have a large number of variables to bounce Commit: 06b3d3a47a0b9d96c63c942fec4dc50e3673fcb2 https://github.com/MLton/mlton/commit/06b3d3a47a0b9d96c63c942fec4dc50e3673fcb2 Author: Jason Carr <jca...@gm...> Date: 2019-05-20 (Mon, 20 May 2019) Changed paths: M mlton/control/control-flags.sml Log Message: ----------- Fix default bounce limit and remove unused flag structure Commit: f9cd0dc063da583b6c9d9af9984422af82dff640 https://github.com/MLton/mlton/commit/f9cd0dc063da583b6c9d9af9984422af82dff640 Author: Jason Carr <jca...@gm...> Date: 2019-05-20 (Mon, 20 May 2019) Changed paths: M mlton/backend/separate-vars.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Support configurability of the cutoff for bounce locations Commit: 75209071716fb3e700269a0ceb7c4bd66c88acef https://github.com/MLton/mlton/commit/75209071716fb3e700269a0ceb7c4bd66c88acef Author: Jason Carr <jca...@gm...> Date: 2019-05-20 (Mon, 20 May 2019) Changed paths: M mlton/backend/separate-vars.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Support configurability of other bounce-rssa cutoffs Commit: df5569afe9fc52860f561f90c239093a744b8c99 https://github.com/MLton/mlton/commit/df5569afe9fc52860f561f90c239093a744b8c99 Author: Jason Carr <jca...@gm...> Date: 2019-05-26 (Sun, 26 May 2019) Changed paths: M mlton/control/control-flags.sml Log Message: ----------- Fix control flags names Commit: b610a50a073a013a1995f4e20b6817326acbf2d2 https://github.com/MLton/mlton/commit/b610a50a073a013a1995f4e20b6817326acbf2d2 Author: Jason Carr <jca...@gm...> Date: 2019-05-26 (Sun, 26 May 2019) Changed paths: M mlton/backend/restore.fun M mlton/backend/restore.sig M mlton/backend/separate-vars.fun Log Message: ----------- RESTORE_R/RestoreR -> RESTORE_RSSA/RestoreRssa Commit: 60e4f9679b56989594bc1b5444ce6756b03cf48f https://github.com/MLton/mlton/commit/60e4f9679b56989594bc1b5444ce6756b03cf48f Author: Jason Carr <jca...@gm...> Date: 2019-05-29 (Wed, 29 May 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Cleanup separate-vars a bit, fix issue with unlimited loop size Commit: 6774d29c7025a86f8763ba95351392c558f1efad https://github.com/MLton/mlton/commit/6774d29c7025a86f8763ba95351392c558f1efad Author: Jason Carr <jca...@gm...> Date: 2019-05-29 (Wed, 29 May 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Change bounce weights to be the sum of 1/loopSize for each use in a loop Commit: d2a8467aae6964a3a7bd4f6f0d7e4bcb3694551b https://github.com/MLton/mlton/commit/d2a8467aae6964a3a7bd4f6f0d7e4bcb3694551b Author: Jason Carr <jca...@gm...> Date: 2019-05-29 (Wed, 29 May 2019) Changed paths: M mlton/backend/separate-vars.fun Log Message: ----------- Change bounce weights to intInfs to prevent overflow Commit: b7faf7abf7c6ab2fa7f2967f95578d625e360de2 https://github.com/MLton/mlton/commit/b7faf7abf7c6ab2fa7f2967f95578d625e360de2 Author: Jason Carr <jca...@gm...> Date: 2019-05-30 (Thu, 30 May 2019) Changed paths: M mlton/backend/backend.fun A mlton/backend/bounce-vars.fun R mlton/backend/separate-vars.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb Log Message: ----------- Move SeparateVars -> BounceVars Commit: d168722b9ca247b4f5a448f65f3202b1b6d206ba https://github.com/MLton/mlton/commit/d168722b9ca247b4f5a448f65f3202b1b6d206ba Author: Jason Carr <jca...@gm...> Date: 2019-05-30 (Thu, 30 May 2019) Changed paths: M mlton/backend/bounce-vars.fun Log Message: ----------- Improve clarity for bounce rssa pass Commit: b5702fd2dce4d196d55296ef7a2838bfa1123460 https://github.com/MLton/mlton/commit/b5702fd2dce4d196d55296ef7a2838bfa1123460 Author: Jason Carr <jca...@gm...> Date: 2019-05-30 (Thu, 30 May 2019) Changed paths: M mlton/backend/bounce-vars.fun Log Message: ----------- Fix logic errors with bounce point cutoffs Commit: 37bf7bac0ae34f31dca66be3fbd3de410fc44249 https://github.com/MLton/mlton/commit/37bf7bac0ae34f31dca66be3fbd3de410fc44249 Author: Jason Carr <jca...@gm...> Date: 2019-05-30 (Thu, 30 May 2019) Changed paths: M mlton/backend/bounce-vars.fun Log Message: ----------- More comment and control flow simplications for bounce-vars Commit: 2c618977ae05cbcff08f0fd7ac4d655f293cd07f https://github.com/MLton/mlton/commit/2c618977ae05cbcff08f0fd7ac4d655f293cd07f Author: Jason Carr <jca...@gm...> Date: 2019-05-30 (Thu, 30 May 2019) Changed paths: M mlton/backend/bounce-vars.fun Log Message: ----------- Elaborate on isMutable setting on bounced variables Commit: a353d785106207dbc44376f7d07e4679994f3857 https://github.com/MLton/mlton/commit/a353d785106207dbc44376f7d07e4679994f3857 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-30 (Thu, 30 May 2019) Changed paths: M basis-library/mlton/exit.sml M basis-library/primitive/prim-mlton.sml M basis-library/primitive/prim2.sml M bin/mlton-script M include/amd64-main.h M include/c-chunk.h M include/c-common.h M include/c-main.h M include/common-main.h M include/x86-main.h M lib/mlton/basic/hash-table.sig M lib/mlton/basic/hash-table.sml M lib/mlton/basic/hash.sig M lib/mlton/basic/hash.sml M lib/mlton/basic/vector.sig M mlton/atoms/atoms.fun M mlton/atoms/atoms.sig M mlton/atoms/c-function.fun M mlton/atoms/c-function.sig M mlton/atoms/ffi.fun M mlton/atoms/profile-label.fun M mlton/atoms/profile-label.sig A mlton/atoms/source-maps.fun A mlton/atoms/source-maps.sig M mlton/atoms/sources.cm M mlton/atoms/sources.mlb M mlton/backend/allocate-registers.fun M mlton/backend/backend.fun M mlton/backend/bounce-vars.fun M mlton/backend/chunkify.fun M mlton/backend/chunkify.sig M mlton/backend/equivalence-graph.fun M mlton/backend/implement-handlers.fun M mlton/backend/implement-profiling.fun R mlton/backend/implement-profiling.sig M mlton/backend/limit-check.fun M mlton/backend/live.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/packed-representation.fun M mlton/backend/rep-type.fun M mlton/backend/restore.fun M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/backend/runtime.fun M mlton/backend/runtime.sig M mlton/backend/signal-check.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb M mlton/backend/ssa-to-rssa.fun M mlton/codegen/amd64-codegen/amd64-codegen.fun M mlton/codegen/amd64-codegen/amd64-entry-transfer.fun M mlton/codegen/amd64-codegen/amd64-generate-transfers.fun M mlton/codegen/amd64-codegen/amd64-jump-info.fun M mlton/codegen/amd64-codegen/amd64-live-transfers.fun M mlton/codegen/amd64-codegen/amd64-loop-info.fun M mlton/codegen/amd64-codegen/amd64-mlton.fun M mlton/codegen/amd64-codegen/amd64-mlton.sig M mlton/codegen/amd64-codegen/amd64-pseudo.sig M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/amd64-codegen/amd64-translate.sig M mlton/codegen/amd64-codegen/amd64.fun M mlton/codegen/amd64-codegen/amd64.sig M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/c-codegen/c-codegen.sig M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-codegen.fun M mlton/codegen/x86-codegen/x86-entry-transfer.fun M mlton/codegen/x86-codegen/x86-generate-transfers.fun M mlton/codegen/x86-codegen/x86-jump-info.fun M mlton/codegen/x86-codegen/x86-live-transfers.fun M mlton/codegen/x86-codegen/x86-loop-info.fun M mlton/codegen/x86-codegen/x86-mlton.fun M mlton/codegen/x86-codegen/x86-mlton.sig M mlton/codegen/x86-codegen/x86-pseudo.sig M mlton/codegen/x86-codegen/x86-translate.fun M mlton/codegen/x86-codegen/x86-translate.sig M mlton/codegen/x86-codegen/x86.fun M mlton/codegen/x86-codegen/x86.sig M mlton/control/bits.sml M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/compile.fun M mlton/main/lookup-constant.fun M mlton/main/main.fun M mlton/ssa/direct-exp.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig M runtime/Makefile R runtime/basis/Real/Math-fns.h R runtime/basis/Real/Math.c M runtime/basis/Real/Real-ops.h M runtime/gc.h M runtime/gc/call-stack.c M runtime/gc/dfs-mark.c M runtime/gc/foreach.c M runtime/gc/frame.c M runtime/gc/frame.h M runtime/gc/gc_state.h M runtime/gc/init.c M runtime/gc/invariant.c M runtime/gc/profiling.c M runtime/gc/sources.c M runtime/gc/sources.h M runtime/gc/stack.c M runtime/gc/stack.h M runtime/platform.h Log Message: ----------- Merge branch 'master' of github.com:MLton/mlton into register-allocation-refactor Commit: ebe0ef79f635249a8d64adb8cbe1eee8222b07f0 https://github.com/MLton/mlton/commit/ebe0ef79f635249a8d64adb8cbe1eee8222b07f0 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-31 (Fri, 31 May 2019) Changed paths: M lib/mlton/basic/directed-graph.sig M lib/mlton/basic/directed-graph.sml M mlton/backend/allocate-registers.fun M mlton/backend/limit-check.fun M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/backend/signal-check.fun M mlton/codegen/amd64-codegen/amd64-loop-info.fun M mlton/codegen/x86-codegen/x86-loop-info.fun M mlton/control/control-flags.sml M mlton/ssa/loop-unroll.fun M mlton/ssa/loop-unswitch.fun Log Message: ----------- Code style cleanup (minor) Commit: 9ccfb06a97a0b50bee0e50181f0adf9346cf86b9 https://github.com/MLton/mlton/commit/9ccfb06a97a0b50bee0e50181f0adf9346cf86b9 Author: Matthew Fluet <Mat...@gm...> Date: 2019-05-31 (Fri, 31 May 2019) Changed paths: M lib/mlton/basic/directed-graph.sig M lib/mlton/basic/directed-graph.sml M mlton/backend/allocate-registers.fun M mlton/backend/backend.fun A mlton/backend/bounce-vars.fun M mlton/backend/limit-check.fun M mlton/backend/machine.fun A mlton/backend/restore.fun A mlton/backend/restore.sig M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/backend/signal-check.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb M mlton/codegen/amd64-codegen/amd64-loop-info.fun M mlton/codegen/x86-codegen/x86-loop-info.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/loop-unroll.fun M mlton/ssa/loop-unswitch.fun M mlton/ssa/sources.cm M mlton/ssa/sources.mlb M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- Merge pull request #299 from jasoncarr0/register-allocation-refactor Bounce variables around forced stack allocations in RSSA loops See MLton/mlton#218. In the translation from RSSA to Machine, each RSSA variable is assigned a location: either a stack slot or a register (i.e., local). An RSSA variable is assigned to a stack slot if it is live across a non-tail call or a `mayGC` ccall. Assigning an RSSA variable to a stack slot has a potential cost, because stack-slot accesses appear as memory reads and writes to the codegens and are not easily realized by hardware registers. This cost is multiplied when the stack-slot accesses are within a loop. For example, consider the tail recursive `revapp`: ``` standard-ml fun revapp (l, acc) = case l of [] => acc | h::t => revapp (t, h::acc) ``` This will be realized as an intraprocedural loop; however, due to the `h::acc` allocation in the loop, there will be a potential GC that forces `l` and `acc` to be assigned to stack slots (assuming the GC check occurs at the loop header). It would seem to be more efficient to assign `l` and `acc` to registers, moving them to and from stack slots at the GC, because a GC should occur on only a small fraction of the loop iterations. A new `BounceVars` RSSA pass attempts to split the live ranges of RSSA variables that are used within loops so that the within-loop instances of the variables are assigned registers (possibly being moved to and from stack slots around a GC). Unfortunately, it has not been easy to find good heuristics. The current defaults are biased towards not degrading performance. ## Benchmark results (cadmium) Specs: * 4 x AMD Opteron(tm) Processor 6172 (2.1GHz; 48 physical cores) * Ubuntu 16.04.6 LTS * gcc: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11) * gcc-8: gcc version 8.3.0 (Homebrew GCC 8.3.0) * llvm: LLVM version 8.0.0 ``` text config command C00 /home/mtf/devel/mlton/builds/g9ba73ad1e/bin/mlton -codegen amd64 C01 /home/mtf/devel/mlton/builds/g9ba73ad1e/bin/mlton -codegen c C02 /home/mtf/devel/mlton/builds/g9ba73ad1e/bin/mlton -codegen c -cc gcc-8 C03 /home/mtf/devel/mlton/builds/g9ba73ad1e/bin/mlton -codegen llvm C04 /home/mtf/devel/mlton/builds/ga353d7851/bin/mlton -codegen amd64 C05 /home/mtf/devel/mlton/builds/ga353d7851/bin/mlton -codegen c C06 /home/mtf/devel/mlton/builds/ga353d7851/bin/mlton -codegen c -cc gcc-8 C07 /home/mtf/devel/mlton/builds/ga353d7851/bin/mlton -codegen llvm ``` ### Run-Time Ratio ``` text program `C04/C00` `C05/C01` `C06/C02` `C07/C03` barnes-hut 1.050 1.004 0.9939 0.9724 boyer 1.020 0.9547 0.9826 0.9940 checksum 1.007 1.034 0.9795 1.003 count-graphs 0.9735 1.008 0.9826 0.9722 DLXSimulator 0.9397 0.9566 0.9553 0.8925 even-odd 0.9185 1.019 1.000 0.9754 fft 1.061 1.041 1.039 1.021 fib 1.013 1.046 1.040 0.9884 flat-array 1.064 0.9138 0.9901 0.9247 hamlet 0.9442 0.9713 0.9664 0.9955 imp-for 1.040 0.9223 0.8787 1.005 knuth-bendix 0.9967 1.007 0.9924 0.9744 lexgen 1.005 1.025 0.9892 0.9574 life 0.9805 0.9813 0.9779 1.012 logic 1.062 0.9721 1.002 0.9641 mandelbrot 0.9995 1.003 1.005 1.000 matrix-multiply 0.9424 1.028 1.040 0.9958 md5 0.9946 0.9913 0.9929 1.053 merge 0.9942 0.9397 0.9797 0.9558 mlyacc 0.9956 0.9558 1.021 1.026 model-elimination 0.9816 0.9842 1.000 0.9769 mpuz 0.6748 0.8899 0.9354 1.084 nucleic 0.9955 0.9901 1.008 0.9746 output1 0.9880 0.8836 0.8840 0.9090 peek 1.010 1.075 0.9669 1.000 pidigits 0.9778 1.055 0.9936 1.018 psdes-random 0.9905 0.9943 1.054 1.000 ratio-regions 1.030 1.071 0.9943 0.9448 ray 1.016 0.9944 0.9993 1.030 raytrace 1.024 1.009 0.9994 1.017 simple 0.9900 1.017 1.019 1.032 smith-normal-form 1.015 1.017 1.080 1.061 string-concat 0.9619 1.004 0.9863 1.173 tailfib 0.9867 1.056 1.001 0.9989 tailmerge 1.005 1.002 0.9844 0.9697 tak 0.9886 1.025 0.9999 1.013 tensor 1.015 0.9728 1.006 0.9927 tsp 1.028 0.9878 0.9956 0.9745 tyan 1.029 1.011 1.012 0.9404 vector32-concat 0.7653 0.6395 0.8281 1.003 vector64-concat 0.8517 0.7782 0.8571 0.9619 vector-rev 0.9514 0.9847 0.8541 0.9161 vliw 1.028 0.9368 1.017 1.011 wc-input1 0.9170 0.9157 0.9084 0.9240 wc-scanStream 0.9929 1.007 1.146 1.038 zebra 0.9984 1.008 1.008 0.9941 zern 1.026 0.9929 1.005 0.9942 MIN 0.6748 0.6395 0.8281 0.8925 GMEAN 0.9811 0.9771 0.9846 0.9912 MAX 1.064 1.075 1.146 1.173 ``` Notes: * Overall, there is less run-time improvements than were hoped, although there are some "big" wins and no "big" losses. * The LLVM codegen seems to benefit the least; it may be that LLVM is able to realizes some stack-slot accesses as hardware registers (although it is unclear how it justifies doing so --- LLVM should not be able to "see" that the access of stack slots and heap objects do not alias). * The speedups with `vector32-concat` and `vector64-concat` may be related to the observation made in MLton/mlton#288, where it was observed that moving a sequence from a register to a global had a significant slowdown (since the access through the global required an additional level of indirection). In this case, a sequence may be moving from a stack slot to a register, eliminating a level of indirection. ### Compile-Time Ratio ``` text program `C04/C00` `C05/C01` `C06/C02` `C07/C03` barnes-hut 0.9721 0.9760 0.9171 0.9393 boyer 0.9054 0.9675 0.9988 1.024 checksum 0.9636 0.9630 0.9753 1.016 count-graphs 0.9822 1.002 0.9862 0.9151 DLXSimulator 0.9205 0.9248 0.9340 0.9704 even-odd 0.9808 0.9600 0.9705 1.015 fft 0.9938 0.9644 0.9817 0.9656 fib 0.9670 0.9777 0.9750 0.9473 flat-array 0.9781 0.9758 1.013 0.9805 hamlet 0.9942 1.104 1.029 1.000 imp-for 0.9380 0.9764 0.9429 0.9979 knuth-bendix 0.9409 0.9584 0.8814 0.8520 lexgen 0.9317 0.8911 0.8933 0.9525 life 0.9598 0.9610 0.9812 0.9046 logic 0.9704 0.9620 0.9474 0.9856 mandelbrot 0.9370 0.9926 1.011 0.9694 matrix-multiply 0.9510 0.9425 0.9634 0.9497 md5 0.9568 0.9609 0.9473 0.9282 merge 0.9896 0.9517 0.9780 0.9987 mlyacc 1.124 1.076 1.161 1.150 model-elimination 0.9912 0.9493 1.093 0.9879 mpuz 0.9568 0.9690 1.006 0.9763 nucleic 0.9010 0.9169 0.9384 1.079 output1 0.9668 0.9896 0.9598 0.9086 peek 0.9713 0.9736 0.9840 0.9626 pidigits 0.9720 0.9686 0.9494 0.9379 psdes-random 0.9761 1.004 1.002 0.9435 ratio-regions 0.9844 0.9421 0.9679 0.9262 ray 0.9605 0.8728 0.8533 0.8406 raytrace 0.9130 0.9501 0.8719 1.029 simple 0.8696 0.9130 0.9537 0.9602 smith-normal-form 0.9000 0.9400 0.9632 1.167 string-concat 0.9667 0.9934 0.9466 1.000 tailfib 0.9807 0.9598 0.9779 0.9713 tailmerge 0.9848 0.9871 0.9878 0.9870 tak 0.9720 1.0000 0.9728 0.9968 tensor 0.9739 0.9348 0.9057 0.8996 tsp 0.9955 1.001 0.9283 0.9518 tyan 0.9734 0.9536 0.9052 0.9488 vector32-concat 0.9527 0.9997 0.9673 0.9471 vector64-concat 0.9617 0.9722 0.9921 0.9885 vector-rev 0.9809 0.9846 0.9625 0.9955 vliw 1.020 1.004 1.111 1.086 wc-input1 0.9345 1.002 0.9502 0.9549 wc-scanStream 0.9890 0.9830 1.027 1.028 zebra 0.9712 0.9204 1.101 0.9702 zern 0.9416 1.013 1.098 0.8998 MIN 0.8696 0.8728 0.8533 0.8406 GMEAN 0.9635 0.9691 0.9740 0.9727 MAX 1.124 1.104 1.161 1.167 ``` Notes: * One concern with assigning more RSSA variables to registers is that increases the burden on the codegen (hardware) register allocator. * With the exception of `mlyacc`, there is a general improvement in compile time. Note that configs C04, C05, C06, and C07 are using a MLton compiled with `BounceVars` to compile programs with `BounceVars`. It isn't clear how much of the benefit is due to the effect of `BounceVars` on the compiled MLton and how much is due to the effect of `BounceVars` on the IR of the compiled programs. In any case, it seems that `BounceVars` "pays for itself", although the greatest improvements are not on the largest benchmark programs (`hamlet`, `mlyacc`, `model-elimination`, `nucleic`, `vliw`). ### Executable-Size Ratio ``` text program `C04/C00` `C05/C01` `C06/C02` `C07/C03` barnes-hut 1.005 1.005 1.009 0.9982 boyer 1.002 0.9940 0.9967 0.9972 checksum 1.005 1.001 1.001 1.000 count-graphs 1.007 1.004 1.005 1.001 DLXSimulator 1.015 1.005 1.006 1.007 even-odd 1.005 1.001 0.9999 1.0000 fft 1.009 1.006 1.004 1.003 fib 1.005 1.001 0.9998 1.000 flat-array 1.005 1.001 1.001 0.9993 hamlet 1.002 1.003 1.004 0.9999 imp-for 1.005 1.001 1.001 0.9991 knuth-bendix 1.004 0.9990 1.003 1.001 lexgen 1.025 1.001 1.002 1.004 life 1.003 0.9999 1.000 0.9999 logic 1.004 1.003 1.001 1.002 mandelbrot 1.005 1.001 1.001 0.9994 matrix-multiply 1.005 1.000 1.002 0.9993 md5 1.005 1.002 1.002 1.007 merge 1.004 1.000 0.9994 0.9995 mlyacc 1.176 1.154 1.183 1.180 model-elimination 1.006 1.009 1.011 1.003 mpuz 1.006 0.9998 1.001 1.001 nucleic 1.000 0.9996 0.9998 0.9985 output1 1.006 1.002 1.002 1.006 peek 1.005 1.001 1.001 0.9996 pidigits 1.003 0.9998 1.001 1.005 psdes-random 1.005 1.001 1.002 0.9976 ratio-regions 1.020 1.008 1.007 1.009 ray 1.023 1.021 1.018 1.013 raytrace 1.008 1.003 1.003 1.011 simple 1.009 1.033 1.034 1.055 smith-normal-form 1.005 1.005 1.006 1.003 string-concat 1.004 0.9997 1.002 0.9980 tailfib 1.005 1.000 1.000 0.9998 tak 1.005 1.001 0.9997 0.9999 tensor 1.019 1.019 1.018 1.020 tsp 1.005 1.002 1.004 1.007 tyan 1.034 1.026 1.025 1.030 vector32-concat 1.005 1.000 1.001 0.9984 vector64-concat 1.005 1.000 1.001 0.9982 vector-rev 1.005 1.001 1.001 0.9988 vliw 1.033 1.010 1.012 1.027 wc-input1 1.012 1.009 1.008 1.010 wc-scanStream 1.011 1.006 1.007 1.007 zebra 1.004 1.001 1.002 1.005 zern 1.006 1.003 1.001 1.002 MIN 1.000 0.9940 0.9967 0.9972 GMEAN 1.012 1.007 1.008 1.008 MAX 1.176 1.154 1.183 1.180 ``` Notes: * Consistent with the increase in compile-time for `mlyacc`, there is an increase in code size for `mlyacc`. * Otherwise, there is little change in code size. ## Benchmark results (sulfur) Specs: * 2 x Intel(R) Xeon(R) CPU E5-2637 v3 @ 3.50GHz (8 physical cores; 16 logical cores) * Ubuntu 16.04.6 LTS * gcc: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11) * gcc-8: gcc version 8.3.0 (Homebrew GCC 8.3.0) * llvm: LLVM version 8.0.0 ``` text config command C00 /home/mtf/devel/mlton/builds/g9ba73ad1e/bin/mlton -codegen amd64 C01 /home/mtf/devel/mlton/builds/g9ba73ad1e/bin/mlton -codegen c C02 /home/mtf/devel/mlton/builds/g9ba73ad1e/bin/mlton -codegen c -cc gcc-8 C03 /home/mtf/devel/mlton/builds/g9ba73ad1e/bin/mlton -codegen llvm C04 /home/mtf/devel/mlton/builds/ga353d7851/bin/mlton -codegen amd64 C05 /home/mtf/devel/mlton/builds/ga353d7851/bin/mlton -codegen c C06 /home/mtf/devel/mlton/builds/ga353d7851/bin/mlton -codegen c -cc gcc-8 C07 /home/mtf/devel/mlton/builds/ga353d7851/bin/mlton -codegen llvm ``` ### Run-Time Ratio ``` text program `C04/C00` `C05/C01` `C06/C02` `C07/C03` barnes-hut 1.066 1.004 0.9963 0.8840 boyer 0.9890 0.9917 0.9902 0.9567 checksum 1.065 1.001 0.9935 0.9681 count-graphs 0.9580 0.9805 0.9665 0.9672 DLXSimulator 0.7266 0.7235 0.7374 0.7496 even-odd 1.009 0.9903 0.9873 0.9845 fft 0.9930 0.9983 0.9710 0.9682 fib 1.108 1.023 1.0000 0.9724 flat-array 0.9638 0.9581 0.9604 0.9620 hamlet 0.8991 0.9415 0.9295 0.9544 imp-for 0.9688 0.9359 0.9240 1.123 knuth-bendix 1.005 0.9915 1.025 1.005 lexgen 1.001 0.9954 0.9583 0.9974 life 0.9659 1.003 0.9652 0.9923 logic 0.9887 0.9938 0.9702 0.9919 mandelbrot 0.9989 1.015 1.024 1.008 matrix-multiply 1.017 0.9927 1.014 0.9881 md5 0.9846 1.006 0.9868 1.026 merge 1.071 1.077 1.039 1.074 mlyacc 0.9994 0.9986 1.012 1.011 model-elimination 0.9850 0.9656 0.9885 0.9879 mpuz 0.7695 0.8649 0.9525 1.018 nucleic 0.9267 0.9614 0.9359 0.9804 output1 0.9453 0.8869 0.8673 0.8782 peek 0.9988 1.000 1.011 0.9938 pidigits 0.9734 0.9961 1.003 0.9986 psdes-random 0.9902 0.9998 1.016 0.9956 ratio-regions 1.107 0.9887 0.9315 0.9852 ray 0.9905 0.9674 0.9930 0.9931 raytrace 1.008 1.032 1.005 1.057 simple 0.9659 0.9692 0.9842 0.9648 smith-normal-form 0.9858 0.9876 0.9712 0.9615 string-concat 0.9901 1.001 1.007 0.9731 tailfib 0.9968 1.015 1.000 0.9936 tailmerge 0.9893 0.9932 0.9810 0.8081 tak 0.9724 1.058 0.9762 0.9693 tensor 1.005 0.9982 0.9914 1.006 tsp 1.030 1.049 1.037 1.032 tyan 1.007 0.9887 0.9850 1.002 vector32-concat 0.3328 0.3212 0.6566 1.029 vector64-concat 0.3983 0.3806 0.7111 0.9922 vector-rev 0.9282 1.032 0.9473 0.9013 vliw 0.9068 0.8996 0.8662 0.9419 wc-input1 1.396 0.9463 1.120 1.348 wc-scanStream 0.9928 1.015 1.117 0.9642 zebra 0.9957 0.9966 0.9974 0.9967 zern 0.9958 1.013 1.000 0.9743 MIN 0.3328 0.3212 0.6566 0.7496 GMEAN 0.9468 0.9393 0.9640 0.9827 MAX 1.396 1.077 1.120 1.348 ``` Notes: * Again, there are some "big" wins and no "big" losses. * Interestingly, compared to `cadmium`, `vector32-concat` and `vector64-concat` see greater speedups, though `mpuz` sees a smaller speedup. ### Compile-Time Ratio ``` text program `C04/C00` `C05/C01` `C06/C02` `C07/C03` barnes-hut 0.9401 0.9632 1.013 1.006 boyer 0.9659 1.000 0.9725 0.9629 checksum 1.022 0.9911 0.9966 0.9967 count-graphs 1.005 1.042 1.004 1.011 DLXSimulator 0.9910 0.9526 0.9833 0.9914 even-odd 0.9654 0.9591 1.009 0.9795 fft 0.9841 0.9713 0.9885 0.9923 fib 0.9417 0.9946 1.000 0.9976 flat-array 1.002 1.049 0.9716 1.012 hamlet 1.103 1.018 0.9917 0.9781 imp-for 0.9586 1.041 0.9824 1.032 knuth-bendix 0.9690 1.007 1.034 0.9347 lexgen 1.049 0.9718 0.9930 1.029 life 0.9490 0.9798 1.023 1.018 logic 0.9936 0.9303 0.9768 0.9715 mandelbrot 0.9959 0.9518 0.9339 0.9740 matrix-multiply 1.117 1.060 1.013 0.9176 md5 1.007 0.9454 0.9904 0.9973 merge 0.9922 0.9493 0.9793 1.015 mlyacc 1.113 1.125 1.136 1.143 model-elimination 0.9702 1.030 1.025 1.017 mpuz 1.015 0.9249 1.053 0.9401 nucleic 0.9813 1.007 0.9919 1.043 output1 0.9285 0.9746 0.9603 1.049 peek 0.9547 0.9915 0.9410 0.9543 pidigits 0.9569 0.9757 0.9745 0.9973 psdes-random 0.9687 0.9835 1.006 0.9596 ratio-regions 0.9640 1.021 1.019 1.036 ray 1.079 0.9156 0.9577 0.9714 raytrace 1.008 0.9028 1.010 1.052 simple 1.025 1.154 0.9570 1.068 smith-normal-form 0.9611 0.9399 0.9215 0.9196 string-concat 1.023 0.9968 0.9789 1.072 tailfib 0.9869 0.9748 0.9711 1.001 tailmerge 0.9812 0.9766 0.9731 0.9051 tak 0.9694 0.9863 0.9719 0.9681 tensor 0.9759 1.061 0.9847 1.030 tsp 0.9818 1.094 0.9497 1.066 tyan 1.018 1.004 0.9927 1.011 vector32-concat 0.9783 0.9755 0.9766 0.9792 vector64-concat 0.9820 0.9876 0.9830 0.9607 vector-rev 0.9648 0.9215 1.066 1.002 vliw 1.075 1.045 1.035 1.052 wc-input1 1.012 1.025 1.005 0.9931 wc-scanStream 0.9747 0.9883 0.9940 0.9761 zebra 0.9838 0.9624 0.9758 1.003 zern 0.8921 0.9604 0.9794 0.9880 MIN 0.8921 0.9028 0.9215 0.9051 GMEAN 0.9921 0.9920 0.9919 0.9985 MAX 1.117 1.154 1.136 1.143 ``` Notes: * Compared to `cadmium`, there is less general improvement in compile time, though (with the exception of `mlyacc`), no "across the board" slowdowns. ### Executable-Size Ratio ``` text program `C04/C00` `C05/C01` `C06/C02` `C07/C03` barnes-hut 1.005 1.005 1.009 0.9983 boyer 1.002 0.9940 0.9967 0.9972 checksum 1.005 1.001 1.001 1.000 count-graphs 1.007 1.004 1.005 1.001 DLXSimulator 1.015 1.005 1.006 1.008 even-odd 1.005 1.001 0.9999 0.9999 fft 1.009 1.006 1.004 1.003 fib 1.005 1.001 0.9998 1.000 flat-array 1.005 1.001 1.001 0.9995 hamlet 1.002 1.003 1.004 0.9999 imp-for 1.005 1.001 1.001 0.9991 knuth-bendix 1.004 0.9989 1.003 1.000 lexgen 1.025 1.001 1.002 1.004 life 1.003 0.9998 1.000 0.9997 logic 1.004 1.003 1.001 0.9997 mandelbrot 1.005 1.001 1.001 0.9994 matrix-multiply 1.005 1.000 1.002 0.9996 md5 1.005 1.002 1.002 1.007 merge 1.004 1.000 0.9993 0.9994 mlyacc 1.176 1.154 1.183 1.179 mo... [truncated message content] |
From: Matthew F. <no...@gi...> - 2019-05-31 01:46:48
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: c253f1bfc6c520cd2279059271e97ae415ba1a30 https://github.com/MLton/mlton/commit/c253f1bfc6c520cd2279059271e97ae415ba1a30 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-25 (Sat, 25 May 2019) Changed paths: M mlton/atoms/atoms.fun M mlton/atoms/atoms.sig A mlton/atoms/profile-info.fun A mlton/atoms/profile-info.sig M mlton/atoms/sources.cm M mlton/atoms/sources.mlb M mlton/backend/machine.fun M mlton/backend/machine.sig Log Message: ----------- Move `ProfileInfo` to `atoms` to facilitate sharing between RSSA and Machine Commit: 40f8e6788b5c425b248f66c609e547612840d7ce https://github.com/MLton/mlton/commit/40f8e6788b5c425b248f66c609e547612840d7ce Author: Matthew Fluet <mat...@gm...> Date: 2019-05-25 (Sat, 25 May 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/implement-profiling.fun M mlton/backend/implement-profiling.sig Log Message: ----------- Drop `structure Machine` from `functor ImplementProfiling` Commit: 9f8b548b4adab5b5eb0b94ccb4b832f1946a4c96 https://github.com/MLton/mlton/commit/9f8b548b4adab5b5eb0b94ccb4b832f1946a4c96 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-25 (Sat, 25 May 2019) Changed paths: M mlton/atoms/profile-info.fun M mlton/atoms/profile-info.sig M mlton/backend/implement-profiling.fun M mlton/backend/machine.fun M mlton/backend/rep-type.fun M mlton/backend/runtime.fun M mlton/backend/runtime.sig M mlton/codegen/c-codegen/c-codegen.fun M mlton/main/compile.fun M mlton/main/lookup-constant.fun M runtime/gc/profiling.c M runtime/gc/sources.c M runtime/gc/sources.h Log Message: ----------- Unify fields of `structure ProfileInfo.T` and `struct GC_sourceMaps` Commit: 09268743e3c9e501f164b868f4affcd6a523104d https://github.com/MLton/mlton/commit/09268743e3c9e501f164b868f4affcd6a523104d Author: Matthew Fluet <mat...@gm...> Date: 2019-05-25 (Sat, 25 May 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/implement-handlers.fun M mlton/backend/implement-profiling.fun R mlton/backend/implement-profiling.sig M mlton/backend/limit-check.fun M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/backend/signal-check.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb M mlton/backend/ssa-to-rssa.fun Log Message: ----------- Move `makeProfileInfo` into `Rssa.Program.T` Simplifies `rssaSimplify` pass. Commit: 09d1c1866632b06710a0754e97d7e85692f8eb3a https://github.com/MLton/mlton/commit/09d1c1866632b06710a0754e97d7e85692f8eb3a Author: Matthew Fluet <mat...@gm...> Date: 2019-05-25 (Sat, 25 May 2019) Changed paths: M mlton/backend/implement-profiling.fun Log Message: ----------- Replace `HashSet` with `HashTable` in `ImplementProfiling` Commit: 19958ba8335c094ac80a2dcd441f90d7b99c635d https://github.com/MLton/mlton/commit/19958ba8335c094ac80a2dcd441f90d7b99c635d Author: Matthew Fluet <mat...@gm...> Date: 2019-05-26 (Sun, 26 May 2019) Changed paths: M mlton/backend/implement-profiling.fun Log Message: ----------- Use HashTable for Label to sourceSeqIndex map in ImplementProfiling First infrastructure change to moving the runtime representation the frame to sourceSeqIndex mapping into the frame info. Commit: b9c3f9fa79e48f200cec8c89899634ceced9b088 https://github.com/MLton/mlton/commit/b9c3f9fa79e48f200cec8c89899634ceced9b088 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-28 (Tue, 28 May 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/implement-profiling.fun M mlton/backend/rssa.fun M mlton/backend/rssa.sig Log Message: ----------- Export `getFrameSourceSeqIndex` as part of `makeProfileInfo` in RSSA `Program.T` Commit: d0edfb52605f6a3fa17dde075ca5d08b23aed915 https://github.com/MLton/mlton/commit/d0edfb52605f6a3fa17dde075ca5d08b23aed915 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-28 (Tue, 28 May 2019) Changed paths: M include/common-main.h M mlton/backend/machine.fun M mlton/codegen/amd64-codegen/amd64-generate-transfers.fun M mlton/codegen/amd64-codegen/amd64-pseudo.sig M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/amd64-codegen/amd64.fun M mlton/codegen/amd64-codegen/amd64.sig M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/x86-codegen/x86-generate-transfers.fun M mlton/codegen/x86-codegen/x86-pseudo.sig M mlton/codegen/x86-codegen/x86-translate.fun M mlton/codegen/x86-codegen/x86.fun M mlton/codegen/x86-codegen/x86.sig M runtime/gc.h M runtime/gc/dfs-mark.c M runtime/gc/foreach.c M runtime/gc/frame.c M runtime/gc/frame.h M runtime/gc/gc_state.h M runtime/gc/invariant.c M runtime/gc/profiling.c M runtime/gc/sources.h M runtime/gc/stack.c M runtime/gc/stack.h Log Message: ----------- Rename `frameLayout{,s}` to `frameInfo{,s}` in runtime Commit: 2bdf6650d2bcae5bb642e7dc9e3ae53fdc8340b2 https://github.com/MLton/mlton/commit/2bdf6650d2bcae5bb642e7dc9e3ae53fdc8340b2 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-28 (Tue, 28 May 2019) Changed paths: M lib/mlton/basic/hash.sig M lib/mlton/basic/hash.sml Log Message: ----------- Add `Hash.option{,Map}` to MLton Library Commit: 01ca92f87407dd8b205353f57fbfa405b523c438 https://github.com/MLton/mlton/commit/01ca92f87407dd8b205353f57fbfa405b523c438 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-28 (Tue, 28 May 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/implement-profiling.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/codegen/c-codegen/c-codegen.fun M runtime/gc/frame.h Log Message: ----------- Add `sourceSeqIndex` to `Machine.FrameInfo.T`/`struct GC_frameInfo` By including the `sourceSeqIndex` in the frame info, frames that share their sourceSeqIndex and all other frame info fields are automatically shared. With defunctorization and monomorphisation and inlining, it is quite possible for distinct blocks of the final RSSA IR program to nontheless correspond to the same source location. This avoids unnecessarily creating extraneous frame infos and simplifies the logic of when to create unique frame infos. Commit: 151a835d24ac66c1e6cece672b994c5225e507ef https://github.com/MLton/mlton/commit/151a835d24ac66c1e6cece672b994c5225e507ef Author: Matthew Fluet <mat...@gm...> Date: 2019-05-28 (Tue, 28 May 2019) Changed paths: M include/common-main.h M mlton/codegen/c-codegen/c-codegen.fun M runtime/gc/call-stack.c M runtime/gc/init.c M runtime/gc/profiling.c M runtime/gc/sources.c M runtime/gc/sources.h Log Message: ----------- Use `s->frameInfos[fi].sourceSeqIndex` rather than `s->sourceMaps.frameSources[fi]` Commit: 1cc3b0c54e1d5342bb83ae2bd33eea2059451ea5 https://github.com/MLton/mlton/commit/1cc3b0c54e1d5342bb83ae2bd33eea2059451ea5 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-28 (Tue, 28 May 2019) Changed paths: M mlton/atoms/profile-info.fun M mlton/atoms/profile-info.sig M mlton/backend/backend.fun M mlton/backend/implement-handlers.fun M mlton/backend/implement-profiling.fun M mlton/backend/limit-check.fun M mlton/backend/machine.fun M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/backend/signal-check.fun M mlton/backend/ssa-to-rssa.fun M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Eliminate `frameSources` field of `ProfileInfo.T` Commit: b48edf789250f99eb5807d89fd3fc1fa415b7d88 https://github.com/MLton/mlton/commit/b48edf789250f99eb5807d89fd3fc1fa415b7d88 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-29 (Wed, 29 May 2019) Changed paths: M include/common-main.h M mlton/atoms/profile-info.fun M mlton/atoms/profile-info.sig M mlton/backend/implement-profiling.fun M mlton/backend/machine.fun M mlton/codegen/c-codegen/c-codegen.fun M runtime/gc/profiling.c M runtime/gc/sources.c M runtime/gc/sources.h Log Message: ----------- Rename `sourceLabel` to `profileLabelInfo` Commit: 8219dd673eecac795c60d95e6be758f032716338 https://github.com/MLton/mlton/commit/8219dd673eecac795c60d95e6be758f032716338 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-29 (Wed, 29 May 2019) Changed paths: M runtime/gc/profiling.c M runtime/gc/sources.c M runtime/gc/sources.h Log Message: ----------- Rename macros in `sources.h` Commit: 50e54cd6eec60827eb8217a26703fd5563fed40f https://github.com/MLton/mlton/commit/50e54cd6eec60827eb8217a26703fd5563fed40f Author: Matthew Fluet <mat...@gm...> Date: 2019-05-29 (Wed, 29 May 2019) Changed paths: M mlton/backend/ssa-to-rssa.fun Log Message: ----------- Drop `MLton_touch` applied to unit during SSA to RSSA Commit: 11014af8dbc2d383d00ef1212df9033033dcbca3 https://github.com/MLton/mlton/commit/11014af8dbc2d383d00ef1212df9033033dcbca3 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-29 (Wed, 29 May 2019) Changed paths: M mlton/atoms/profile-info.fun M mlton/atoms/profile-info.sig M mlton/atoms/profile-label.fun M mlton/atoms/profile-label.sig M mlton/backend/backend.fun M mlton/backend/implement-profiling.fun M mlton/backend/machine.fun M mlton/backend/rssa.fun M mlton/backend/rssa.sig Log Message: ----------- Additional checking of ProfileInfo in RSSA and Machine IR Commit: dac1962ed8d714f30091e5100136ed427987726f https://github.com/MLton/mlton/commit/dac1962ed8d714f30091e5100136ed427987726f Author: Matthew Fluet <mat...@gm...> Date: 2019-05-30 (Thu, 30 May 2019) Changed paths: M mlton/main/main.fun Log Message: ----------- `-profile-stack true` is incompatible with `-const 'Exn.keepHistory true'` Commit: 076ac441a5cf274ef09d4277be69870ce473ea5e https://github.com/MLton/mlton/commit/076ac441a5cf274ef09d4277be69870ce473ea5e Author: Matthew Fluet <mat...@gm...> Date: 2019-05-30 (Thu, 30 May 2019) Changed paths: M mlton/atoms/atoms.fun M mlton/atoms/atoms.sig R mlton/atoms/profile-info.fun R mlton/atoms/profile-info.sig A mlton/atoms/source-maps.fun A mlton/atoms/source-maps.sig M mlton/atoms/sources.cm M mlton/atoms/sources.mlb M mlton/backend/backend.fun M mlton/backend/implement-profiling.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/codegen/amd64-codegen/amd64-codegen.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/x86-codegen/x86-codegen.fun Log Message: ----------- Rename `ProfileInfo` to `SourceMaps` to match `sources.h` Commit: 2a6f3398f7fa58bd2417d3de2180527bb758c6fa https://github.com/MLton/mlton/commit/2a6f3398f7fa58bd2417d3de2180527bb758c6fa Author: Matthew Fluet <mat...@gm...> Date: 2019-05-30 (Thu, 30 May 2019) Changed paths: M mlton/codegen/amd64-codegen/amd64-codegen.fun M mlton/codegen/x86-codegen/x86-codegen.fun Log Message: ----------- Add more robust handling of sourceMaps data in x86/amd64 codegens Commit: 060897304cefb98f52a5e687c7f2142b4a1be3d3 https://github.com/MLton/mlton/commit/060897304cefb98f52a5e687c7f2142b4a1be3d3 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-30 (Thu, 30 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Simplify printing of static arrays in C codegen Commit: 738bb11d8d6382622ad3d1f76bd51a2562efe368 https://github.com/MLton/mlton/commit/738bb11d8d6382622ad3d1f76bd51a2562efe368 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-30 (Thu, 30 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Emit `main` function on one line Commit: 9ba73ad1e15839afbf0b306a32b344499e462007 https://github.com/MLton/mlton/commit/9ba73ad1e15839afbf0b306a32b344499e462007 Author: Matthew Fluet <Mat...@gm...> Date: 2019-05-30 (Thu, 30 May 2019) Changed paths: M include/common-main.h M lib/mlton/basic/hash.sig M lib/mlton/basic/hash.sml M mlton/atoms/atoms.fun M mlton/atoms/atoms.sig M mlton/atoms/profile-label.fun M mlton/atoms/profile-label.sig A mlton/atoms/source-maps.fun A mlton/atoms/source-maps.sig M mlton/atoms/sources.cm M mlton/atoms/sources.mlb M mlton/backend/backend.fun M mlton/backend/implement-handlers.fun M mlton/backend/implement-profiling.fun R mlton/backend/implement-profiling.sig M mlton/backend/limit-check.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/rep-type.fun M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/backend/runtime.fun M mlton/backend/runtime.sig M mlton/backend/signal-check.fun M mlton/backend/sources.cm M mlton/backend/sources.mlb M mlton/backend/ssa-to-rssa.fun M mlton/codegen/amd64-codegen/amd64-codegen.fun M mlton/codegen/amd64-codegen/amd64-generate-transfers.fun M mlton/codegen/amd64-codegen/amd64-pseudo.sig M mlton/codegen/amd64-codegen/amd64-translate.fun M mlton/codegen/amd64-codegen/amd64.fun M mlton/codegen/amd64-codegen/amd64.sig M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/x86-codegen/x86-codegen.fun M mlton/codegen/x86-codegen/x86-generate-transfers.fun M mlton/codegen/x86-codegen/x86-pseudo.sig M mlton/codegen/x86-codegen/x86-translate.fun M mlton/codegen/x86-codegen/x86.fun M mlton/codegen/x86-codegen/x86.sig M mlton/main/compile.fun M mlton/main/lookup-constant.fun M mlton/main/main.fun M runtime/gc.h M runtime/gc/call-stack.c M runtime/gc/dfs-mark.c M runtime/gc/foreach.c M runtime/gc/frame.c M runtime/gc/frame.h M runtime/gc/gc_state.h M runtime/gc/init.c M runtime/gc/invariant.c M runtime/gc/profiling.c M runtime/gc/sources.c M runtime/gc/sources.h M runtime/gc/stack.c M runtime/gc/stack.h Log Message: ----------- Merge pull request #308 from MatthewFluet/profile-info-updates Some small updates to profiling/source information. Highlights: * Move profiling information into RSSA IR `Program.T`, avoiding the need for `ImplementProfiling` to return information out of band. * Move frame to source sequence index mapping from a separate `frameSources` array into the `frameInfos` array. By including the `sourceSeqIndex` in the frame info, frames that share their `sourceSeqIndex` and all other frame info fields are automatically shared. With defunctorization and monomorphisation and inlining, it is quite possible for distinct blocks of the final RSSA IR program to nontheless correspond to the same source location. This avoids unnecessarily creating extraneous frame infos and simplifies the logic of when to create unique frame infos. Compare: https://github.com/MLton/mlton/compare/8f69c3893122...9ba73ad1e158 |
From: Matthew F. <no...@gi...> - 2019-05-31 01:36:56
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: bf9426bebb6508cec0073f680b566183b1a72168 https://github.com/MLton/mlton/commit/bf9426bebb6508cec0073f680b566183b1a72168 Author: Jason Carr <jca...@gm...> Date: 2019-05-30 (Thu, 30 May 2019) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Change mutability keyword for SSA2 IR from 'ref' to 'mut'. Ref may imply that the field is separately boxed, whereas in the SSA2 IR, boxing is separate from mutability, and is instead indicated by 'tuple' or another object type. Commit: 8f69c38931222a059cc7acb1aa818c1f5f8c75a5 https://github.com/MLton/mlton/commit/8f69c38931222a059cc7acb1aa818c1f5f8c75a5 Author: Matthew Fluet <Mat...@gm...> Date: 2019-05-30 (Thu, 30 May 2019) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Merge pull request #309 from jasoncarr0/ssa2-layout-mut Change mutability keyword for SSA2 IR from 'ref' to 'mut'. Compare: https://github.com/MLton/mlton/compare/c3fdc5ace92a...8f69c3893122 |
From: Matthew F. <no...@gi...> - 2019-05-28 14:53:47
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 06f8833f69792eea9bf058cff4168ba5f7235a00 https://github.com/MLton/mlton/commit/06f8833f69792eea9bf058cff4168ba5f7235a00 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-28 (Tue, 28 May 2019) Changed paths: M include/c-common.h Log Message: ----------- Fix `Chunk<N>` prototype The `stackTop` and `frontier` arguments should be `CPointer`, not `Pointer`. Commit: c3fdc5ace92adaec2077b9ae298943c57555a02f https://github.com/MLton/mlton/commit/c3fdc5ace92adaec2077b9ae298943c57555a02f Author: Matthew Fluet <Mat...@gm...> Date: 2019-05-28 (Tue, 28 May 2019) Changed paths: M include/c-common.h Log Message: ----------- Merge pull request #307 from MatthewFluet/fix-chunk-prototype Fix `Chunk<N>` prototype Compare: https://github.com/MLton/mlton/compare/1dac1fa61a3f...c3fdc5ace92a |