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-05-28 14:03:16
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 1eb3ca2b4e4b0ded1540d619c7484cc37724b6f1 https://github.com/MLton/mlton/commit/1eb3ca2b4e4b0ded1540d619c7484cc37724b6f1 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-27 (Mon, 27 May 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Trace `Backend.varOperand` Commit: 428321adb92b17c1a955eeb43191c3cdce1833dc https://github.com/MLton/mlton/commit/428321adb92b17c1a955eeb43191c3cdce1833dc Author: Matthew Fluet <mat...@gm...> Date: 2019-05-28 (Tue, 28 May 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Omit copying unused args of `Jump` blocks at a `Goto` transfer Fixes a bug that was introduced by 136f3573c. The intended purpose of 136f3573c was to omit copying values returned via the ML stack on non-tail calls to `Cont` (normal return) and `Handle` (exceptional return) blocks and to omit copying a result returned from a `CCall` to a `CReturn` block; essentially, the receiving block is required to accept those arguments due to calling convention, but the argument may not be otherwise used, so the copies are extraneous. The implementation of 136f3573c simply omitted allocating a location (Machine IR stack slot or register (local)) for any unused argument of any block. The assumption was that only `Cont`, `Handle`, and `CReturn` blocks could have unused arguments; it was assumed that previous optimizations would eliminate any argument of a `Jump` block that was unused. However, with RedPRL, there is (at least one) `Jump` block with an unused argument; that argument is not assigned a location, so the `Option` exception is raised when trying to implement a `Goto` transfer that copies the actual operands to the formal arguments (and the corresponding formal argument doesn't exist). The fix is straight forward: only copy the actual arguments that correspond to formal arguments that are used; this is essentially the same filtering that is used to implement the prologue of `Cont` and `Handle` blocks. Closes MLton/mlton#305. Commit: 78fffc480aa56612b7deb3d187450fe1f3cabf45 https://github.com/MLton/mlton/commit/78fffc480aa56612b7deb3d187450fe1f3cabf45 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-28 (Tue, 28 May 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Simplify code to generate prologue of `Cont` and `Handler` blocks f2b08b921 (Omit copying unused args of Cont and Handler blocks from stack) introduced code to check whether or not a `Cont` or `Handler` block argument was used by inspecting the `live` set. Then 136f3573c (Omit allocating registers for unused args of Cont, CReturn, and Handler blocks) introduced code to check whether or not a `Cont` or `Handler` block argument was assigned a location. However, `Cont` or `Handler` block argument is not assigned a location exactly when it is not a member of the `live` set. Hence, the original code to check whether or not a `Cont` or `Handler` block argument was used by inspecting the `live` set is redundant; the code to check whether or not a `Cont` or `Handler` block argument was assigned a location suffices. Commit: 1dac1fa61a3fd26a500f5317c24aa845e1834e60 https://github.com/MLton/mlton/commit/1dac1fa61a3fd26a500f5317c24aa845e1834e60 Author: Matthew Fluet <Mat...@gm...> Date: 2019-05-28 (Tue, 28 May 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Merge pull request #306 from MatthewFluet/bug-305 Fix MLton/mlton#305 Compare: https://github.com/MLton/mlton/compare/a81b56a567e7...1dac1fa61a3f |
From: Matthew F. <no...@gi...> - 2019-05-25 03:00:08
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: aa007938351366c9da6b5706c37cf0e7fbd9c8a2 https://github.com/MLton/mlton/commit/aa007938351366c9da6b5706c37cf0e7fbd9c8a2 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h M include/c-common.h M include/c-main.h M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Simplify C and LLVM codegen trampoline Previously, a chunk had the prototype `struct cont ChunkN(void)`, a global `uintptr_t nextFun` contained the index of the next block to execute, while a `structure cont { void* nextChunk; }` contained the next chunk to execute, so the trampoline looked like: cont=(*(struct cont(*)(void))cont.nextChunk)(); Returning the next block index via a global seems inefficient (and does not work in the CMU MultiMLton project). Now, a chunk has the prototype `uintptr_t ChunkN(uinptr_t)`, where the argument is the index of the next block to execute and the result is the index of the next block to execute, so the trampoline looks like: nextChunk = nextChunks[nextBlock]; nextBlock = (*nextChunk)(nextBlock); In addition, the global `int returnToC`, used to signal the termination of a call to an exported SML function, is eliminated. Instead, the special block index `(uintptr_t)-1` is used to terminate the trampoline. One minor inefficiency is that the known destination chunk of a call cannot be exploited. Commit: 589c30a19cb0cf39abffbf55138d2d0ca6576d05 https://github.com/MLton/mlton/commit/589c30a19cb0cf39abffbf55138d2d0ca6576d05 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Remove unused `frameIndex` component of `labelInfo` in C & LLVM codegens Commit: 9cb1adc2b9342fd10b3dce84e96d64bfa949a94b https://github.com/MLton/mlton/commit/9cb1adc2b9342fd10b3dce84e96d64bfa949a94b Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Remove unused `layedOut` component of `labelInfo` in LLVM codegen Commit: 7c7b5ca1102b3331163d4b94790aa69701a0e5d0 https://github.com/MLton/mlton/commit/7c7b5ca1102b3331163d4b94790aa69701a0e5d0 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Remove unused `block` component of `labelInfo` in LLVM codegen Commit: 05b1f6f82ded29ad66c40caca0e53f29cefa47e7 https://github.com/MLton/mlton/commit/05b1f6f82ded29ad66c40caca0e53f29cefa47e7 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Simplify C-codegen by leaving code layout to C compiler Simplify C-codegen by emitting basic blocks that always explicitly transfer, dispensing with fall-thru control-flow. Avoids the intermingling of the top-level case dispatch with the basic block code. Commit: 6ddee49bb2beb4c5f8a9d16d1c41733656b167f7 https://github.com/MLton/mlton/commit/6ddee49bb2beb4c5f8a9d16d1c41733656b167f7 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/rep-type.fun Log Message: ----------- Fix warnings with C codegen In the C and LLVM codegens, a return label is `uintptr_t`, not `void *`. Commit: ce010c834379b5ccb8c942b83bf2ac483eaf73f1 https://github.com/MLton/mlton/commit/ce010c834379b5ccb8c942b83bf2ac483eaf73f1 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Use `uintptr_t` rather than `void*` for size of return address See runtime/gc/frame.h for the defn of `GC_returnAddress`, but that header is not included in c-chunk.h. Commit: 3edda85300cd69d894b4dc651278a47007fdad54 https://github.com/MLton/mlton/commit/3edda85300cd69d894b4dc651278a47007fdad54 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Fix warnings with C codegen `memcpy` is used by coercion `<ty>_castTo<ty>` functions (`basis/coerce.h`) and by misaligned `<ty>_fetch`, `<ty>_store`, and `<ty>_move` functions (`basis/Real/Real-ops.h` and `basis/Word/Word-ops.h`). Commit: 9fb392194ee82bc032e427e67e5971a95a54426f https://github.com/MLton/mlton/commit/9fb392194ee82bc032e427e67e5971a95a54426f Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h M runtime/basis/Real/Math-fns.h M runtime/platform.h Log Message: ----------- Fix warnings with C codegen Math functions used by `Real<n>_f` functions (`basis/Real/Real-ops.h` and `basis/Real/Math-fns.h`). Commit: 5535dc8169e21162a141811c7895bbd844667c1e https://github.com/MLton/mlton/commit/5535dc8169e21162a141811c7895bbd844667c1e Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h M runtime/Makefile R runtime/basis/Real/Math-fns.h R runtime/basis/Real/Math.c M runtime/basis/Real/Real-ops.h Log Message: ----------- Consolidate `Math-fns.h` into `Real-ops.h` Commit: a6bb878afae541ee70aee221a96c62ce62f667f5 https://github.com/MLton/mlton/commit/a6bb878afae541ee70aee221a96c62ce62f667f5 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Eliminate `while (1) { ... }` wrapper in `c-chunk.h` Commit: 110ee20537ca8c7c6012363c3e2680d167b1bec8 https://github.com/MLton/mlton/commit/110ee20537ca8c7c6012363c3e2680d167b1bec8 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Tweak formatting of generated .c files Commit: 29a5b4627097768a7b40dd0f61cb6c2c8a68f16c https://github.com/MLton/mlton/commit/29a5b4627097768a7b40dd0f61cb6c2c8a68f16c Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 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/atoms/ffi.fun M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Fix C compiler warnings in generated main .c file The C compiler warns about `static void MLton_callFromC ()` defined but never used. Only define the `MLton_callFromC` function if the program has exports. Commit: 477986878dbf2fa715813b80198365b8d5405ecf https://github.com/MLton/mlton/commit/477986878dbf2fa715813b80198365b8d5405ecf Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.sig M mlton/main/compile.fun Log Message: ----------- Remove `declareFFI` from `signature C_CODEGEN` Commit: b1c972f4262990dbe45dfdfa0dd8acc6c2bd56b0 https://github.com/MLton/mlton/commit/b1c972f4262990dbe45dfdfa0dd8acc6c2bd56b0 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Fix warnings with C codegen The BZ and BNZ macros can be used with words of all sizes. Commit: 1d579c12a18a800ad8fa796a2bb93b32a10b8da5 https://github.com/MLton/mlton/commit/1d579c12a18a800ad8fa796a2bb93b32a10b8da5 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Remove unused macro Commit: e9809baa4fa9984a84ae28c7d244b67e226c24ab https://github.com/MLton/mlton/commit/e9809baa4fa9984a84ae28c7d244b67e226c24ab Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Add parens to `S` macro in `c-chunk.h`; matching other macros Commit: b418d6b61e4619eef5a2772393385a3212cb0bfa https://github.com/MLton/mlton/commit/b418d6b61e4619eef5a2772393385a3212cb0bfa Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Drop special case making frontier and stackTop registers Commit: a768347f69eabaee04892273359da5516713a3d2 https://github.com/MLton/mlton/commit/a768347f69eabaee04892273359da5516713a3d2 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Reorganize `c-chunk.h` Commit: 797405ed0ca77aaf653b85fee1de41b0ef1b8efd https://github.com/MLton/mlton/commit/797405ed0ca77aaf653b85fee1de41b0ef1b8efd Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Mark CCall functions with no CReturn block as `noreturn` Previously, the C compiler could warn about uninitialized variables: hello.1.c: In function ‘Chunk0’: hello.1.c:2195:6: warning: ‘P_0’ may be used uninitialized in this function [-Wmaybe-uninitialized] P_2 = O(Objptr, P_0, 0); ^ due to code like: L_543: FlushFrontier(); FlushStackTop(); MLton_halt (GCState, S(Word32, 0)); CacheFrontier(); CacheStackTop(); /* NoReturn(); */ L_529: P_1 = O(Objptr, P_0, 8); P_2 = O(Objptr, P_0, 0); S(Objptr, 8) = P_1; P_0 = P_2; goto L_530; Since `MLton_halt` does not return, there is no CReturn block to jump to after the call. To the C compiler, it appears that control can fall thru from `L_543` into `L_529` block and there are transfers to `L_543` that do not intialize `P_0`. Commit: 23e3f9babfa7a682a515616d5bd660ff249ae409 https://github.com/MLton/mlton/commit/23e3f9babfa7a682a515616d5bd660ff249ae409 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/ssa-to-rssa.fun Log Message: ----------- Fix warnings with C codegen A `MLton_eq` primitive applied to `Objptr` type is translated to a `Word<N>_equal` primitive, but makes an integer from pointer without a cast: In file included from poly-equal.1.c:2:0: poly-equal.1.c: In function ‘Chunk0’: /home/mtf/devel/mlton/mlton.sulfur.git-wt/build/lib/mlton/include/c-chunk.h:83:18: warning: passing argument 1 of ‘Word64_equal’ makes integer from pointer without a cast [-Wint-conversion] #define S(ty, i) (*(ty*)(StackTop + (i))) ^ poly-equal.1.c:3121:24: note: in expansion of macro ‘S’ W32_0 = Word64_equal (S(Objptr, 8), S(Objptr, 0)); ^ In file included from /home/mtf/devel/mlton/mlton.sulfur.git-wt/build/lib/mlton/include/c-chunk.h:198:0, from poly-equal.1.c:2: /home/mtf/devel/mlton/mlton.sulfur.git-wt/build/lib/mlton/include/basis/Word/Word-ops.h:40:8: note: expected ‘Word64 {aka long unsigned int}’ but argument is of type ‘Objptr {aka unsigned char *}’ Bool Word##kind##_##name (Word##kind w1, Word##kind w2) { \ ^ /home/mtf/devel/mlton/mlton.sulfur.git-wt/build/lib/mlton/include/basis/Word/Word-ops.h:109:1: note: in expansion of macro ‘compare’ compare (size, equal, ==) \ ^ /home/mtf/devel/mlton/mlton.sulfur.git-wt/build/lib/mlton/include/basis/Word/Word-ops.h:142:1: note: in expansion of macro ‘all’ all (64) ^ This commit inserts the appropriate casts, although it would also be reasonable to introduce a new `Objptr_equals` primitive to perform the comparison without a cast. Commit: ba4ab71d054ce4afc5acf0b2c1b9c1b5d6311b65 https://github.com/MLton/mlton/commit/ba4ab71d054ce4afc5acf0b2c1b9c1b5d6311b65 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Cosmetic improvements to C codegen output Commit: 30d5690c98d6bba3a73036d229cdf8ecce3457f8 https://github.com/MLton/mlton/commit/30d5690c98d6bba3a73036d229cdf8ecce3457f8 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Translate more Switch transfers to BNZ statements in C codegen Commit: dc9f71b957d02e9b883555026c2c5e81a473882c https://github.com/MLton/mlton/commit/dc9f71b957d02e9b883555026c2c5e81a473882c Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Convert last Switch case to default, rather than first Commit: 663d60e83c3ff5f4186ebf73586963078ca80eb9 https://github.com/MLton/mlton/commit/663d60e83c3ff5f4186ebf73586963078ca80eb9 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Simplify Switch translation in LLVM codegen Unlike gcc at -O1, llvm-opt at -O1 will optimize a switch with cases for only 0:w32 and 1:w32 to br. Commit: 949e5c8a38923f0a8623bab54792c5f1a2c56f99 https://github.com/MLton/mlton/commit/949e5c8a38923f0a8623bab54792c5f1a2c56f99 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Make `CReturn<ty>` variables chunk local Previously, the `CReturn<ty>` variables were globals, declared in the "main" .c file and `extern` imported into the chunk .c and .ll files. This is unnecessary (and does not work in the CMU MultiMLton project); in particular, it requires the c compiler to write the result to memory and, depending on the intervening code, to read the result from memory, although the result value is likely to have been returned via a register. Now, the `CReturn<ty>` variables are chunk local. They are marked `__attribute__ ((unused))` to suppress compiler warnings. Although it would be possible to examine the set of CCalls in the chunk (as is done to declare the FFI calls) and only generate variables that correspond to return types of called functions, even this does not suffice, because a CReturn block can ignore the result and the `CReturn<ty>` variable is unused. Commit: a1f3e95df810604b012e7112e2aeadf59ed85987 https://github.com/MLton/mlton/commit/a1f3e95df810604b012e7112e2aeadf59ed85987 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/atoms/c-function.fun M mlton/atoms/c-function.sig M mlton/backend/implement-profiling.fun M mlton/backend/limit-check.fun M mlton/backend/rep-type.fun M mlton/backend/signal-check.fun M mlton/backend/ssa-to-rssa.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/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-jump-info.fun M mlton/codegen/x86-codegen/x86-live-transfers.fun Log Message: ----------- Split CFunction.Kind.Runtime maySwitchThreads field into maySwitchThreads{From,To} maySwitchThreadsFrom indicates that the C function may switch ML threads; at the return from the C function, the mutator should jump to the block indicated by the return address on the top of the now current ML stack. Examples are Thread_switchTo and GC_collect (with signals). maySwitchThreadsTo indicates that the C function's return block may be switched to, in the sense that that block may be indicated by the return address on the top of a stack seen by a `maySwitchThreadsFrom` function. Examples are Thread_switchTo, GC_collect (with signals), GC_copyCurrent, and GC_saveWorld; note that these last two functions will always return and resume execution with the C function's return block (the ML thread is not switched by these functions), but explicit thread switching or world resumption will also begin execution at the C functions' return block. Note that maySwitchThreadsFrom implies maySwitchThreadsTo. This change is in preparation for a change to the C and LLVM codegens to treat `maySwitchThreadsTo` as the indicator of an entry, rather than `mayGC`. Commit: 7d9ce4f17d9e39e162a323e677995c2fd5544381 https://github.com/MLton/mlton/commit/7d9ce4f17d9e39e162a323e677995c2fd5544381 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Require `maySwitchThreadsTo`, rather than `mayGC`, for CReturn entry Treating a block as an entry requires that the block have an index in the `ChunkSwitch`. However, it is unnecessary for `mayGC=true` but `maySwitchThreadsTo=false` to be entries. Furthermore, it can lead to C compiler warnings, due to the following: ChunkSwitch (0) ... case 5: goto L_45; ... EndChunkSwitch L_44: S(Word64, 56) = /* L_45 */ 5; Push (64); FlushFrontier (); FlushStackTop (); CReturnP = GC_sequenceAllocate (GCState, (Word64)(0x0ull), (Word64)(0x21ull), (Word64)(0x1Bull)); CacheFrontier (); CacheStackTop (); goto L_45; L_45: Push (-64); S(Objptr, 56) = CReturnP; W64_0 = (Word64)(0x0ull); goto loop_6; `GC_arrayAllocate` has `mayGC=true` and `maySwitchThreadsTo=false`. Making `L_45` an entry block makes it appear that control can enter the chunk and transfer to `L_45`, without assigning `CReturnP`. Now, `L_45` is not treated as an entry block and the only path to `L_45` is from the `GC_arrayAllocate` call. Commit: 815bc39de484d2ea0918335ff7fdc4bc1bcf9707 https://github.com/MLton/mlton/commit/815bc39de484d2ea0918335ff7fdc4bc1bcf9707 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M basis-library/primitive/prim-mlton.sml M basis-library/primitive/prim2.sml Log Message: ----------- Use MLton_bug primitive, rather than c function, in Basis Library Commit: 100fda06fd24fa7a7737a18dd3604ce9f193413c https://github.com/MLton/mlton/commit/100fda06fd24fa7a7737a18dd3604ce9f193413c Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/ssa-to-rssa.fun Log Message: ----------- Translate `MLton_bug` prim to RSSA `CCall` transfer with `return=NONE` Commit: 023fe78ca821d7ced68c1f08ab895b3e2860d818 https://github.com/MLton/mlton/commit/023fe78ca821d7ced68c1f08ab895b3e2860d818 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Mark CCall functions with no CReturn blocks as `noreturn` in LLVM codegen Commit: b21b9b0e5c15448d91cb19993028851446196006 https://github.com/MLton/mlton/commit/b21b9b0e5c15448d91cb19993028851446196006 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: 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: ----------- Fix comment regarding SSA `Runtime` transfer return Nothing checks that a `Runtime` transfer has a nullary return, although currently the only `Runtime` transfers are `MLton_halt` and `Thread_copyCurrent`; the former does not return (and has a `unit` result type) and the latter cannot directly return the copied thread (because switching to the copied thread will not return a value; see comment in `basis-library/primitive/prim-mlton.sml`). Commit: 55b03f469084f7dee012e0a2fb736ef511fd6d41 https://github.com/MLton/mlton/commit/55b03f469084f7dee012e0a2fb736ef511fd6d41 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/ssa-to-rssa.fun Log Message: ----------- Set `mayGC=true` for `MLton_halt` C function Setting `mayGC=true` for `MLton_halt` ensures that the mutator stack invariant holds, which would allow for stronger assertion checking at program exit. Commit: 4c3a7122d2305186549757f5381da538418bbe99 https://github.com/MLton/mlton/commit/4c3a7122d2305186549757f5381da538418bbe99 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/ssa-to-rssa.fun M mlton/ssa/direct-exp.fun Log Message: ----------- Treat `MLton_halt` as a normal (non-runtime) primitive Don't translate `MLton_halt` to a SSA `Runtime` transfer; the only use of `Runtime` transfer is to identify `Thread_copyCurrent`. Also, don't translate `MLton_halt` to an RSSA `CCall` with `return=NONE`. Omitting the return label does not push a return address to the ML stack, which does not allow `MLton_halt` to trace the stack. Commit: 2f94a9ec396602ba5e6946336a40178e8c7ed623 https://github.com/MLton/mlton/commit/2f94a9ec396602ba5e6946336a40178e8c7ed623 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M basis-library/mlton/exit.sml M basis-library/primitive/prim2.sml Log Message: ----------- Tweak use of `MLton_halt` and `MLton_bug` primitives in Basis Library Commit: f950e10fe9eae3a13e8e1a23beb9885eb7b3e480 https://github.com/MLton/mlton/commit/f950e10fe9eae3a13e8e1a23beb9885eb7b3e480 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/ssa/direct-exp.fun Log Message: ----------- Sequence `MLton_bug` prim with `Bug` transfer in SSA `DirectExp` Commit: 2aa478a0f1c1c2ba223287cb80ae88a56a89e123 https://github.com/MLton/mlton/commit/2aa478a0f1c1c2ba223287cb80ae88a56a89e123 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Cosmetic updates to `c-chunk.h` Commit: d77333c04241869a09dc4e1b84ee8f4384ec2055 https://github.com/MLton/mlton/commit/d77333c04241869a09dc4e1b84ee8f4384ec2055 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- C codegen implements signed `Word_{quot,rem}` Commit: 93b08ab0e39adab26a6446e463e92e1963e3a228 https://github.com/MLton/mlton/commit/93b08ab0e39adab26a6446e463e92e1963e3a228 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Note dst chunk in `FarCall` Commit: b9a0c070da4c0ee0c3d70f9bab6cb9b576707e1f https://github.com/MLton/mlton/commit/b9a0c070da4c0ee0c3d70f9bab6cb9b576707e1f Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/machine.sig Log Message: ----------- Update comments in `signature MACHINE` Commit: 6219e0139b59a223082c0885c80c67f379aa6832 https://github.com/MLton/mlton/commit/6219e0139b59a223082c0885c80c67f379aa6832 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: 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/c-codegen/c-codegen.fun M mlton/codegen/x86-codegen/x86-codegen.fun Log Message: ----------- Introduce `structure FrameOffsets` and `structure FrameLayout` in Machine IR Commit: 9def00547973ff02fb42295774a878a09318cbd6 https://github.com/MLton/mlton/commit/9def00547973ff02fb42295774a878a09318cbd6 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Remove unused code in RSSA to Machine IR conversion Commit: 9a6d796ea1c590822ed183031ad1c91eb8702f48 https://github.com/MLton/mlton/commit/9a6d796ea1c590822ed183031ad1c91eb8702f48 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Simplify construction of final `frameLayouts` and `frameOffsets` Commit: fca2dd2b842f957f2c6fbb3f4a85aca50c7bff51 https://github.com/MLton/mlton/commit/fca2dd2b842f957f2c6fbb3f4a85aca50c7bff51 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Use abbreviated long identifiers Commit: 5ea88a9a78d30138e8b60967242af5ef0a4e4848 https://github.com/MLton/mlton/commit/5ea88a9a78d30138e8b60967242af5ef0a4e4848 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/control/bits.sml Log Message: ----------- Export `val Bytes.hash: Bytes.t -> word` Commit: b8772508d2bfc8dee4a4171ed3cb914e5cf7bccb https://github.com/MLton/mlton/commit/b8772508d2bfc8dee4a4171ed3cb914e5cf7bccb Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Replace `IntSet` with `ByteSet` Avoid unnecessary conversions between `Int.t` and `Bytes.t` Commit: 170ca4064a007ad6a207740d3d6286bae8c03795 https://github.com/MLton/mlton/commit/170ca4064a007ad6a207740d3d6286bae8c03795 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 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/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: ----------- Allocate a "frame" for `Func` blocks in Machine IR Frames serve a number of distinct purposes. One purpose is to serve as the unique index for "entry" blocks in the C and LLVM codegens. `Func` blocks are "entry" blocks and, previously, were assigned indices after all of the frame indices of existing blocks. This has the disadvantage of making the `Func` entry indices disjoint from the other block indices, possibly inhibiting turning the chunk entry switch into a jump table. Moreover, with 6bc091d, the set of entry blocks for a chunk was reduced for `CReturn` blocks from those that have `mayGC=true` to those that have `maySwitchThreadsTo=true`. This further fragments the chunk entry switch. To facilitate making the chunk entry switch a dense switch, `Func` blocks are assigned frames. This frame is never used by the runtime system, since a `Func` label is never the stack top. (Note: `Handler` blocks are also assigned frames, and this frame is also never used by the runtime system, since a `Handler` label is never the stack top. On the other hand, the "size" of a `Handler` frame is used to pop the stack.) Hence, the frame is assigned the empty list of live offsets and a size of 0. This means that, for the native codegen, all `Func` blocks will share the same frame layout and we only "waste" one entry in the `frameLayouts` array (and, potentially, one entry in the `frameOffsets` array, if the empty list of offsets is not otherwise created). For the C and LLVM codegens, we will create a distinct entry in the `frameLayouts` array for each `Func` block; since there are an order of magnitude more `Cont`, `Handler`, and `CReturn` blocks than `Func` blocks, this should not be significant in code size. Commit: 46d4df640a389fcb1e27687a5d6594821c17cb2d https://github.com/MLton/mlton/commit/46d4df640a389fcb1e27687a5d6594821c17cb2d Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Refactor to use `Option.app` Commit: 6360a518bbd08ed27f69c9b8b4960fef348c2a40 https://github.com/MLton/mlton/commit/6360a518bbd08ed27f69c9b8b4960fef348c2a40 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Initialize index for chunks during initial traversal Commit: 3e79aa7d55f58f780c88596ed152927b976a1b31 https://github.com/MLton/mlton/commit/3e79aa7d55f58f780c88596ed152927b976a1b31 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Emit chunks before main in C codegen This makes `Chunk<n>` appear in `file.<n>.c`. Commit: 791576554daed70436f435f250b75b0e03b04489 https://github.com/MLton/mlton/commit/791576554daed70436f435f250b75b0e03b04489 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/codegen/amd64-codegen/amd64-entry-transfer.fun M mlton/codegen/amd64-codegen/amd64-generate-transfers.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.fun M mlton/codegen/amd64-codegen/amd64.sig M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-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-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.fun M mlton/codegen/x86-codegen/x86.sig Log Message: ----------- Include (optional) frame size in Machine IR CCall transfer The codegens only need the frame size at a CCall, not the full frameInfo. Removing this use of frameInfo in a transfer will simplify the implementation of a Machine IR transformation that ensures that all entry labels of a chunk have consecutive indices. Commit: a800025497e337f3a61ba86d3644773faf4d5d9b https://github.com/MLton/mlton/commit/a800025497e337f3a61ba86d3644773faf4d5d9b Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/amd64-codegen/amd64-generate-transfers.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.fun M mlton/codegen/amd64-codegen/amd64.sig Log Message: ----------- Drop `frameInfo` from `CCall` transfers in amd64 codegen Commit: 9e2c9eec137592945e9b6c0468906f8d2b6739a3 https://github.com/MLton/mlton/commit/9e2c9eec137592945e9b6c0468906f8d2b6739a3 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/x86-codegen/x86-generate-transfers.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.fun M mlton/codegen/x86-codegen/x86.sig Log Message: ----------- Drop `frameInfo` from `CCall` transfers in x86 codegen Commit: cdd927a2183080482edeb721cf5553826c4fbaee https://github.com/MLton/mlton/commit/cdd927a2183080482edeb721cf5553826c4fbaee Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: 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: ----------- Drop `frameInfo` from `CCall` transfer in Machine IR Commit: 8f439d8118bb2ef18ff422e95850bfefb47e07e0 https://github.com/MLton/mlton/commit/8f439d8118bb2ef18ff422e95850bfefb47e07e0 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/allocate-registers.fun M mlton/backend/backend.fun M mlton/backend/live.fun M mlton/backend/rssa.fun M mlton/backend/rssa.sig Log Message: ----------- Eliminate fold and foreach over defs of RSSA Transfers With the elimination of RSSA `Transfer.Arith`, no RSSA transfer has a define. Commit: 8b3ea4493ebed086871be2ec5656fbf31c789d69 https://github.com/MLton/mlton/commit/8b3ea4493ebed086871be2ec5656fbf31c789d69 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Print lengths of static arrays in generated C Commit: ac986162e0b75c5af60ce82444a1fdd8716894a3 https://github.com/MLton/mlton/commit/ac986162e0b75c5af60ce82444a1fdd8716894a3 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Tweak DEBUG_CCODEGEN diagnostics Commit: f96a0f12e639157e58762b181e7abe3a43165075 https://github.com/MLton/mlton/commit/f96a0f12e639157e58762b181e7abe3a43165075 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Print indices of static arrays in generated C Commit: 4cb9cbc9080c1f0400978fc08dbc51f06163bcb6 https://github.com/MLton/mlton/commit/4cb9cbc9080c1f0400978fc08dbc51f06163bcb6 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Add `Machine.Kind.isEntry` Commit: c9038e1c4a5314becbeb644bb14a2bf148b217b9 https://github.com/MLton/mlton/commit/c9038e1c4a5314becbeb644bb14a2bf148b217b9 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/backend.fun M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Share `frameLayouts` of non-entry frames in C and LLVM codegens It is only necessary for entry frames to have distinct `frameLayouts` indices, becaue the index will be used for the trampoline. Non-entry frames may share `frameLayouts` indices. For the `hamlet` benchmark, this reduces the size of the `frameLayouts` array from 5830 entries to 4064 entries. Commit: 0129d52bf7b048553b7718daf8fb402b9aeaadd5 https://github.com/MLton/mlton/commit/0129d52bf7b048553b7718daf8fb402b9aeaadd5 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M lib/mlton/basic/hash-table.sig M lib/mlton/basic/hash-table.sml M mlton/backend/backend.fun Log Message: ----------- Simplify hash tables for uniquifying globals Commit: a6e7e4e54b6f12f6cf458f75987a715fc9f58e8d https://github.com/MLton/mlton/commit/a6e7e4e54b6f12f6cf458f75987a715fc9f58e8d Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/machine.fun M mlton/backend/machine.sig Log Message: ----------- Move `structure Frame{Offsets,Layout,Info}` in `machine.{sig,fun}` Commit: 55d641799250da06eee37eec92d294f5237d5b38 https://github.com/MLton/mlton/commit/55d641799250da06eee37eec92d294f5237d5b38 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 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: ----------- Make `FrameOffsets` self indexing Commit: 5acb1c4c47ac60fa2045596d2d99fe99650995a1 https://github.com/MLton/mlton/commit/5acb1c4c47ac60fa2045596d2d99fe99650995a1 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 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: ----------- Refactor `frameOffsetsIndex: int` to `frameOffsets: FrameOffsets.t` Commit: a720d049d4b06a38869b73a768ee005915b80b5a https://github.com/MLton/mlton/commit/a720d049d4b06a38869b73a768ee005915b80b5a Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/machine.sig Log Message: ----------- Use `HashTable.t` rather than `HashSet.t` to allocate frame layouts Commit: 111016025bab02e935dde7989ca1fd13edb29aa9 https://github.com/MLton/mlton/commit/111016025bab02e935dde7989ca1fd13edb29aa9 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 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: ----------- Make `FrameLayout` self indexing Commit: 66a8736a70f88ea4a0680c54b73e18c4eff4e82c https://github.com/MLton/mlton/commit/66a8736a70f88ea4a0680c54b73e18c4eff4e82c Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: 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/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-codegen.fun Log Message: ----------- Unify `structure FrameLayout` and `structure FrameInfo` Commit: 30cfa725cae94c5b7096a61156eb9002604de49f https://github.com/MLton/mlton/commit/30cfa725cae94c5b7096a61156eb9002604de49f Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/amd64-codegen/amd64-codegen.fun 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-translate.sig M mlton/codegen/x86-codegen/x86-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-translate.sig Log Message: ----------- Simplify native codegens using inline FrameInfo Commit: 653733815d4c53164b2dd0996d732091b47a1237 https://github.com/MLton/mlton/commit/653733815d4c53164b2dd0996d732091b47a1237 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/machine.fun M mlton/backend/machine.sig Log Message: ----------- Add `FrameInfo.setIndex` to support re-indexing of frame layouts Commit: 067237a5596af75fe1c60b060ab117188e40e483 https://github.com/MLton/mlton/commit/067237a5596af75fe1c60b060ab117188e40e483 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Whitespace fixup Commit: 685a036ca65d9da1c5d958ab862e04fc5f4d9050 https://github.com/MLton/mlton/commit/685a036ca65d9da1c5d958ab862e04fc5f4d9050 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/implement-profiling.fun M mlton/backend/implement-profiling.sig Log Message: ----------- Reindex frame infos for C and LLVM codegens Adjust the frameInfo indices to ensure that the entries of each chunk are consecutive and all entry indices precede all non-entry indices. The former ensures that the C compiler can use a jump table for the chunk switch. The latter will allow the `nextChunks` array to avoid including non-entry entries and, consequently, be much smaller. Commit: f0bc5af9a42a0faea793f1cde6489d1011a7226e https://github.com/MLton/mlton/commit/f0bc5af9a42a0faea793f1cde6489d1011a7226e Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M lib/mlton/basic/vector.sig Log Message: ----------- Alphabetize `val first` in `signature VECTOR` Commit: 75b0db728161fcb3ef1be11cc21c8b10de87145e https://github.com/MLton/mlton/commit/75b0db728161fcb3ef1be11cc21c8b10de87145e Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Omit non-entry frames from `nextChunks` array Commit: 9053451c27a1d838b91daacadd6eb623e8987d02 https://github.com/MLton/mlton/commit/9053451c27a1d838b91daacadd6eb623e8987d02 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h M mlton/codegen/c-codegen/c-codegen.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Experiment with using tail calls for interchunk transfers Commit: e8a242a2acaa1d1668c74343c2319d4e045a03db https://github.com/MLton/mlton/commit/e8a242a2acaa1d1668c74343c2319d4e045a03db Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Experiment with using tail calls for interchunk transfers (LLVM) Commit: 2bd7e47e7519e8bb9cc8d10783f30bb55260e737 https://github.com/MLton/mlton/commit/2bd7e47e7519e8bb9cc8d10783f30bb55260e737 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-main.h Log Message: ----------- Roll trampoline Commit: e0c88658c8396e4b1e68c831abff4b3defd090f3 https://github.com/MLton/mlton/commit/e0c88658c8396e4b1e68c831abff4b3defd090f3 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Don't emit global arrays of size 0 Commit: 558c064896e875f5d8cba0a49c6e399fbb1112a2 https://github.com/MLton/mlton/commit/558c064896e875f5d8cba0a49c6e399fbb1112a2 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-main.h Log Message: ----------- Tweaks to `c-main.h` Use `GC_state s = &gcState;`. Eliminate `uinptr_t (*nextChunk)(uintptr_t)` temporary. Commit: acdede14a4f6223a99922dc9c9ab314ade2a21be https://github.com/MLton/mlton/commit/acdede14a4f6223a99922dc9c9ab314ade2a21be Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Remove debug diagnostics for checking tail call optimization Commit: cf55f6940e1da0ee6237fd712e6f21f41f9f67c1 https://github.com/MLton/mlton/commit/cf55f6940e1da0ee6237fd712e6f21f41f9f67c1 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h M include/c-common.h M include/c-main.h M mlton/codegen/c-codegen/c-codegen.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Experiment passing stackTop and frontier as chunk arguments With `-chunk-tail-call true`, this avoids writing and reading of `stackTop` and `frontier` to/from the global `gcState`, because `stackTop` and `frontier` will typically be registers within a chunk and will typically be passed in registers according to the calling convention. With `-chunk-tail-call false`, the reading of `stackTop` and `frontier` from the global `gcState` occurs in the trampoline. Commit: 089d8cbd60d487a1e10e2e69d46f01293a25a543 https://github.com/MLton/mlton/commit/089d8cbd60d487a1e10e2e69d46f01293a25a543 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Fix warning with C codegen Commit: f459eafd1117c273ad38ebc08f03e690b0376de9 https://github.com/MLton/mlton/commit/f459eafd1117c273ad38ebc08f03e690b0376de9 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Refactor C codegen to support multiple chunks in one .c file Commit: 7e975677911761465a4d1f59daf7719105ecf737 https://github.com/MLton/mlton/commit/7e975677911761465a4d1f59daf7719105ecf737 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Batch multiple chunks into one .c file Commit: 64a32de114df07eddd9f91b625ab75bc25d09db4 https://github.com/MLton/mlton/commit/64a32de114df07eddd9f91b625ab75bc25d09db4 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/packed-representation.fun Log Message: ----------- Omit extracting the header for case of objptrs when no tests It is not necessary to extract the header when case analyzing a set of objptrs if there is only a default. This fixes a warning with the C codegen. Commit: e32b498b1ffc7fee4e5daf46e2a4f33197b7a415 https://github.com/MLton/mlton/commit/e32b498b1ffc7fee4e5daf46e2a4f33197b7a415 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/machine.fun Log Message: ----------- Simpler pretty-print of Global operands in Machine Commit: a0bda4fef257b00f83700982f135a3562feb31e2 https://github.com/MLton/mlton/commit/a0bda4fef257b00f83700982f135a3562feb31e2 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/machine.fun Log Message: ----------- Simplify Machine.Program.typeCheck.transferIsOk Commit: f2b08b9213fc1c9c1f1b23a611e5fecc838cf0b0 https://github.com/MLton/mlton/commit/f2b08b9213fc1c9c1f1b23a611e5fecc838cf0b0 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Omit copying unused args of Cont and Handler blocks from stack It is not necessary to copy unused arguments of Cont and Handler blocks from the stack. (Note that although the Cont and Handler arguments are unused, they cannot be removed; they are required to satisfy the calling convention.) This fixes warnings with the C codegen. Commit: 136f3573c7a9b93dce80a80dd435406cd0b96af0 https://github.com/MLton/mlton/commit/136f3573c7a9b93dce80a80dd435406cd0b96af0 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/allocate-registers.fun M mlton/backend/backend.fun Log Message: ----------- Omit allocating registers for unused args of Cont, CReturn, and Handler blocks It is not necessary to allocate registers for unused args of Cont, CReturn, and Handler blocks. This fixes unused variable warnings with the C codegen. Commit: 5cbac19c0670ae2f0edb71a1817dc0c5f5bd6712 https://github.com/MLton/mlton/commit/5cbac19c0670ae2f0edb71a1817dc0c5f5bd6712 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/packed-representation.fun Log Message: ----------- Omit masking by tagBits for case of small object when no tests It is not necessary to mask by tagBits when case analyzing a set of small objects if none of the cases correspond to a tagged representation. This fixes a warning with the C codegen. Commit: cb0119dab724d106c86ad024815c85e98cf9e115 https://github.com/MLton/mlton/commit/cb0119dab724d106c86ad024815c85e98cf9e115 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/rssa.fun M mlton/backend/rssa.sig Log Message: ----------- Introduce RSSAShuffle pass, disabled by default A new RSSAShuffle pass can be run after simplifying the RSSA IR program. This pass simply shuffles the list of functions within the program and shuffles the vector of blocks within a function. The motivation of RSSAShuffle is that `-chunkify coalesce<n>` has a (small) dependency on the order of functions and blocks. Commit: 668aba5ce9b0c29bd8dac5eb516f4b89a291f643 https://github.com/MLton/mlton/commit/668aba5ce9b0c29bd8dac5eb516f4b89a291f643 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/control/control-flags.sml Log Message: ----------- Raise `-chunk-batch <N>` default Commit: a52f029c526806f2231cb86830bacbb8e4990cae https://github.com/MLton/mlton/commit/a52f029c526806f2231cb86830bacbb8e4990cae Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/equivalence-graph.fun Log Message: ----------- Don't combine unrelated classes in `EquivalenceGraph.coarsen` When used by `Chunkify.coalesce`, combining unrelated classes has the effect of putting blocks that never transfer to one another into the same chunk. While this may have been helpful for compile time, due to reducing the number of .c files generated, with `-chunk-batch <n>`, small chunks will be placed in the same .c file. Commit: d1fd47151ba0a5cbeb0ab61d9436ad346ad12198 https://github.com/MLton/mlton/commit/d1fd47151ba0a5cbeb0ab61d9436ad346ad12198 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Remove printf-debugging from LLVM codegen output Commit: fe8b9a5d8cb78945c1a129c3ebcc627b300c69c7 https://github.com/MLton/mlton/commit/fe8b9a5d8cb78945c1a129c3ebcc627b300c69c7 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/machine.fun M mlton/backend/machine.sig Log Message: ----------- Add Machine.Chunk.chunkLabel function Commit: f79601251015836198b010150e3fe846924f7865 https://github.com/MLton/mlton/commit/f79601251015836198b010150e3fe846924f7865 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Batch multiple chunks into one .ll file Commit: a38a90ad9c63d8be8037115f933b97792de530af https://github.com/MLton/mlton/commit/a38a90ad9c63d8be8037115f933b97792de530af Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Reset LLVM register numbers for each chunk function Commit: 74d270ee6dd9473fde233ffaf8aaae5d6cc753ae https://github.com/MLton/mlton/commit/74d270ee6dd9473fde233ffaf8aaae5d6cc753ae Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Replace ambiguous identifier `label` with `#label main` Commit: acc9725ac3ec6413aab489f1712e1620fa62dcbf https://github.com/MLton/mlton/commit/acc9725ac3ec6413aab489f1712e1620fa62dcbf Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.sig Log Message: ----------- Export small subset of C pretty-printing functions Commit: 57d0a5ad3d1c8ddb97c3a2ebe04d2077edfd4bf7 https://github.com/MLton/mlton/commit/57d0a5ad3d1c8ddb97c3a2ebe04d2077edfd4bf7 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Refactor some LLVM codegen code to match C codegen Commit: cf0b78f9a494b316d87bd2ebb37f9888ae233959 https://github.com/MLton/mlton/commit/cf0b78f9a494b316d87bd2ebb37f9888ae233959 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/rep-type.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Fix type of return label in LLVM codegen Commit: 5e5dbb61b7b71688adc6a7c7f165701956603804 https://github.com/MLton/mlton/commit/5e5dbb61b7b71688adc6a7c7f165701956603804 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/chunkify.fun M mlton/backend/chunkify.sig M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Light refactoring of chunkify options Commit: 22517c91339dd8783c26854b91c42a8b6fe48d40 https://github.com/MLton/mlton/commit/22517c91339dd8783c26854b91c42a8b6fe48d40 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M bin/mlton-script M runtime/Makefile Log Message: ----------- Drop `-fomit-frame-pointer`, because implied by `-O1` Commit: 49e04a852a1a7e9ba6ad748ffcaadb882430f196 https://github.com/MLton/mlton/commit/49e04a852a1a7e9ba6ad748ffcaadb882430f196 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-16 (Thu, 16 May 2019) Changed paths: M bin/mlton-script M runtime/Makefile Log Message: ----------- Drop C compiler options for x86 The corresponding options for amd64 don't have a significant effect on performance. Commit: a1fc315f843642a3d57263d89e68eb74006c31e3 https://github.com/MLton/mlton/commit/a1fc315f843642a3d57263d89e68eb74006c31e3 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-16 (Thu, 16 May 2019) Changed paths: M runtime/Makefile Log Message: ----------- Simplify `WARNXCFLAGS` in `runtime/Makefile` Commit: 6fdeccc8ade1572ec4fc41e2ae974a0cfabf1a53 https://github.com/MLton/mlton/commit/6fdeccc8ade1572ec4fc41e2ae974a0cfabf1a53 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-16 (Thu, 16 May 2019) Changed paths: M runtime/Makefile Log Message: ----------- Assume C compiler supports `-fvisibility=hidden` in `runtime/Makefile` Commit: 993867e2fc08a240a51727a6180c276a0a6aef64 https://github.com/MLton/mlton/commit/993867e2fc08a240a51727a6180c276a0a6aef64 Author: Matthew Fluet <mat...@gm...> Date: 2019-05-16 (Thu, 16 May 2019) Changed paths: M bin/mlton-script M mlton/control/control-flags.sml Log Message: ----------- Make `-chunk-tail-call` default to `true` Commit: 5e8584da300bceb29a5ac13b12ef7b546466794e https://github.com/MLton/mlton/commit/5e8584da300bceb29a5ac13b12ef7b546466794e Author: Matthew Fluet <mat...@gm...> Date: 2019-05-16 (Thu, 16 May 2019) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Simplify C codegen translation of `Switch` Commit: 8ad343af1425de5d1d68ce36098c529f437add4b https://github.com/MLton/mlton/commit/8ad343... [truncated message content] |
From: Matthew F. <no...@gi...> - 2019-05-15 19:02:29
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 48e3c1cdb1b541c224394aa416ee72a8211accb1 https://github.com/MLton/mlton/commit/48e3c1cdb1b541c224394aa416ee72a8211accb1 Author: Jason Carr <jca...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/rssa.fun Log Message: ----------- Fix the rare case of the start block being replaced by rssaShrink Commit: 05004a0376242f09ca5fadf4b070910ca96ca4da https://github.com/MLton/mlton/commit/05004a0376242f09ca5fadf4b070910ca96ca4da Author: Matthew Fluet <Mat...@gm...> Date: 2019-05-15 (Wed, 15 May 2019) Changed paths: M mlton/backend/rssa.fun Log Message: ----------- Merge pull request #303 from jasoncarr0/rssa-shrink-fix Fix the rare case of the `start` block being replaced; see #298. Compare: https://github.com/MLton/mlton/compare/953fd02745eb...05004a037624 |
From: Matthew F. <no...@gi...> - 2019-05-13 20:42:12
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 9f89135b345fc95801e53d8aef765669a392409a https://github.com/MLton/mlton/commit/9f89135b345fc95801e53d8aef765669a392409a Author: Jason Carr <jca...@gm...> Date: 2019-05-13 (Mon, 13 May 2019) Changed paths: M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/backend/switch.fun M mlton/backend/switch.sig Log Message: ----------- Add {Switch,Transfer}.replaceLabels Commit: d16a8e6afc8b044cea8d500f7b6c340dd316f4dc https://github.com/MLton/mlton/commit/d16a8e6afc8b044cea8d500f7b6c340dd316f4dc Author: Jason Carr <jca...@gm...> Date: 2019-05-13 (Mon, 13 May 2019) Changed paths: M mlton/backend/rssa.fun Log Message: ----------- Skip dead blocks in Rssa.shrink Commit: e17777b98d7ab7ed706a933588a0f935be9c7891 https://github.com/MLton/mlton/commit/e17777b98d7ab7ed706a933588a0f935be9c7891 Author: Jason Carr <jca...@gm...> Date: 2019-05-13 (Mon, 13 May 2019) Changed paths: M mlton/backend/rssa.fun Log Message: ----------- Replace blocks which do nothing but immediately pass their arguments to another block Commit: b52b651481ea669cd0d7a6ae3d908da8dac597f6 https://github.com/MLton/mlton/commit/b52b651481ea669cd0d7a6ae3d908da8dac597f6 Author: Jason Carr <jca...@gm...> Date: 2019-05-13 (Mon, 13 May 2019) Changed paths: M mlton/backend/rssa.fun Log Message: ----------- Also delete blocks which have been replaced Commit: 4e0cd75566c178a285af469084e1017ee08589f9 https://github.com/MLton/mlton/commit/4e0cd75566c178a285af469084e1017ee08589f9 Author: Jason Carr <jca...@gm...> Date: 2019-05-13 (Mon, 13 May 2019) Changed paths: M mlton/backend/rssa.fun Log Message: ----------- Fix rssa shrink replacements to chain as necessary Commit: 953fd02745eb41472f71e1e44fb0991b3e2525e7 https://github.com/MLton/mlton/commit/953fd02745eb41472f71e1e44fb0991b3e2525e7 Author: Matthew Fluet <Mat...@gm...> Date: 2019-05-13 (Mon, 13 May 2019) Changed paths: M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/backend/switch.fun M mlton/backend/switch.sig Log Message: ----------- Merge pull request #298 from jasoncarr0/improved-rssa-shrink Slightly improve RSSA shrink All blocks with 0 occurences are deleted. All blocks which do nothing but pass their arguments to another block are replaced by jumping to the target block. The main motivation is to improve the readability of RSSA IR programs. Perhaps surprisingly, there are some non-trivial improvements in run time and code size: MLton0 -- ~/builds/master/bin/mlton MLton1 -- ~/builds/shrink/bin/mlton MLton2 -- ~/builds/master/bin/mlton -codegen c MLton3 -- ~/builds/shrink/bin/mlton -codegen c run time ratio benchmark MLton0 MLton1 MLton2 MLton3 barnes-hut 1.00 1.01 1.03 1.02 boyer 1.00 0.63 1.01 0.62 checksum 1.00 1.00 0.96 0.97 count-graphs 1.00 0.96 0.77 0.82 DLXSimulator 1.00 1.01 1.02 1.01 even-odd 1.00 1.00 1.22 1.27 fft 1.00 0.98 0.93 0.88 fib 1.00 1.23 1.45 1.42 flat-array 1.00 1.00 2.27 2.29 hamlet 1.00 0.98 2.43 2.30 imp-for 1.00 0.98 0.93 0.72 knuth-bendix 1.00 1.00 1.29 1.20 lexgen 1.00 0.99 0.92 0.87 life 1.00 1.09 1.05 1.01 logic 1.00 0.98 1.09 1.08 mandelbrot 1.00 1.00 0.37 0.37 matrix-multiply 1.00 1.00 0.56 0.72 md5 1.00 0.99 1.27 1.21 merge 1.00 1.00 1.00 0.99 mlyacc 1.00 0.98 1.13 1.10 model-elimination 1.00 1.03 1.56 1.46 mpuz 1.00 1.01 0.83 0.84 nucleic 1.00 0.94 0.87 0.86 output1 1.00 1.00 1.12 1.12 peek 1.00 0.98 1.05 1.05 psdes-random 1.00 1.19 0.74 0.75 ratio-regions 1.00 1.00 1.02 1.02 ray 1.00 1.00 0.94 0.93 raytrace 1.00 1.06 1.02 1.03 simple 1.00 1.02 1.17 1.16 smith-normal-form 1.00 1.00 1.00 1.01 string-concat 1.00 0.29 0.98 0.29 tailfib 1.00 0.97 0.59 0.54 tak 1.00 1.05 1.15 1.23 tensor 1.00 1.00 0.61 0.61 tsp 1.00 1.00 0.69 0.69 tyan 1.00 1.00 1.13 1.12 vector32-concat 1.00 1.00 1.03 0.99 vector64-concat 1.00 1.00 1.00 1.00 vector-rev 1.00 0.91 0.98 1.03 vliw 1.00 1.00 1.12 1.03 wc-input1 1.00 1.00 0.99 0.99 wc-scanStream 1.00 1.00 1.16 1.16 zebra 1.00 0.84 0.99 0.81 zern 1.00 0.98 0.96 0.98 size benchmark MLton0 MLton1 MLton2 MLton3 barnes-hut 175,631 172,447 165,480 163,176 boyer 242,945 241,793 230,561 228,545 checksum 117,281 116,321 116,737 115,313 count-graphs 141,921 138,881 139,009 134,225 DLXSimulator 208,492 208,012 203,132 202,388 even-odd 117,105 116,497 116,737 115,553 fft 141,995 136,907 139,670 133,462 fib 117,025 116,401 116,609 115,489 flat-array 116,753 116,161 116,289 115,233 hamlet 1,365,980 1,360,508 1,401,204 1,387,388 imp-for 116,849 116,225 116,177 115,137 knuth-bendix 185,468 183,180 181,556 179,556 lexgen 289,979 286,475 297,571 288,923 life 140,241 137,921 137,409 133,585 logic 196,993 195,985 190,425 189,209 mandelbrot 116,897 116,289 120,001 118,977 matrix-multiply 119,153 117,137 121,521 119,553 md5 144,396 142,876 141,340 138,828 merge 118,529 118,065 117,857 116,705 mlyacc 639,563 634,523 640,187 640,027 model-elimination 792,622 780,894 810,750 803,206 mpuz 122,961 121,841 121,953 120,193 nucleic 296,857 296,089 265,818 265,050 output1 151,360 151,104 148,192 146,192 peek 149,724 148,860 146,492 143,996 psdes-random 121,121 118,737 120,417 117,345 ratio-regions 143,681 139,953 143,289 138,521 ray 248,626 248,306 241,835 239,099 raytrace 366,340 365,492 342,058 338,874 simple 346,061 345,821 361,279 357,815 smith-normal-form 279,093 278,133 249,877 248,317 string-concat 118,609 117,393 118,177 116,433 tailfib 116,881 116,049 116,465 115,073 tak 117,025 116,433 116,673 115,537 tensor 177,524 177,172 171,404 170,076 tsp 157,540 156,916 153,595 152,059 tyan 222,972 222,204 218,700 218,316 vector32-concat 117,809 117,105 117,297 116,049 vector64-concat 117,809 117,105 117,361 116,145 vector-rev 117,681 116,769 117,265 115,745 vliw 504,445 500,045 528,589 530,277 wc-input1 177,667 177,171 174,843 173,563 wc-scanStream 186,723 185,891 181,643 183,083 zebra 224,684 183,580 219,092 176,460 zern 152,561 149,377 146,567 143,991 compile time benchmark MLton0 MLton1 MLton2 MLton3 barnes-hut 2.94 2.91 3.56 3.51 boyer 3.35 3.31 5.83 5.49 checksum 2.47 2.42 2.63 2.44 count-graphs 2.75 2.58 3.02 2.94 DLXSimulator 3.28 3.16 4.18 4.11 even-odd 2.45 2.44 2.63 2.59 fft 2.57 2.34 2.85 2.78 fib 2.46 2.44 2.41 2.63 flat-array 2.46 2.22 2.60 2.57 hamlet 13.83 12.82 22.51 22.59 imp-for 2.47 2.48 2.61 2.60 knuth-bendix 2.90 2.88 3.64 3.68 lexgen 3.66 3.72 4.84 4.93 life 2.61 2.59 2.96 2.84 logic 2.98 2.96 3.71 3.63 mandelbrot 2.46 2.46 2.61 2.62 matrix-multiply 2.54 2.46 2.64 2.66 md5 2.67 2.67 2.83 2.98 merge 2.45 2.43 2.62 2.54 mlyacc 7.12 7.34 10.51 10.13 model-elimination 7.77 7.08 12.62 12.09 mpuz 2.53 2.51 2.65 2.67 nucleic 3.98 4.03 6.16 6.14 output1 2.68 2.69 3.08 3.04 peek 2.68 2.47 3.10 3.06 psdes-random 2.50 2.48 2.68 2.59 ratio-regions 2.81 2.78 3.28 3.23 ray 3.39 3.32 4.30 4.39 raytrace 4.53 4.46 6.32 6.32 simple 3.77 3.73 5.34 5.20 smith-normal-form 3.66 3.54 6.94 6.88 string-concat 2.46 2.47 2.58 2.62 tailfib 2.43 2.45 2.62 2.58 tak 2.44 2.46 2.59 2.58 tensor 3.05 3.03 3.68 3.61 tsp 2.73 2.74 3.15 3.16 tyan 3.34 3.31 4.14 4.39 vector32-concat 2.46 2.48 2.61 2.60 vector64-concat 2.46 2.46 2.63 2.62 vector-rev 2.47 2.26 2.57 2.63 vliw 5.51 5.80 8.47 8.31 wc-input1 2.85 2.84 3.50 3.29 wc-scanStream 3.05 2.91 3.65 3.60 zebra 3.26 3.09 4.27 3.85 zern 2.59 2.60 2.87 2.87 run time benchmark MLton0 MLton1 MLton2 MLton3 barnes-hut 28.68 29.09 29.42 29.25 boyer 56.46 35.29 57.04 35.21 checksum 25.33 25.23 24.44 24.49 count-graphs 40.56 38.92 31.26 33.20 DLXSimulator 32.50 32.75 32.99 32.86 even-odd 39.10 39.08 47.64 49.84 fft 31.79 31.26 29.68 27.88 fib 14.49 17.79 21.06 20.58 flat-array 23.79 23.69 54.09 54.45 hamlet 40.99 40.34 99.47 94.26 imp-for 25.39 24.79 23.58 18.16 knuth-bendix 34.12 34.14 44.10 41.05 lexgen 33.62 33.28 31.04 29.18 life 38.60 42.08 40.47 38.97 logic 34.81 33.94 37.78 37.56 mandelbrot 35.81 35.81 13.19 13.17 matrix-multiply 30.14 30.10 16.85 21.62 md5 28.24 28.08 35.84 34.10 merge 32.41 32.57 32.35 32.16 mlyacc 32.71 32.15 37.02 35.92 model-elimination 38.46 39.57 60.12 56.21 mpuz 29.82 30.04 24.77 25.05 nucleic 33.95 31.82 29.39 29.15 output1 30.12 30.18 33.63 33.80 peek 35.00 34.13 36.73 36.65 psdes-random 33.97 40.54 25.08 25.60 ratio-regions 48.58 48.54 49.50 49.53 ray 37.40 37.30 35.12 34.68 raytrace 32.83 34.78 33.47 33.97 simple 29.67 30.33 34.65 34.37 smith-normal-form 39.66 39.47 39.79 39.93 string-concat 95.38 27.25 93.73 27.27 tailfib 38.47 37.19 22.65 20.63 tak 29.35 30.95 33.78 36.12 tensor 39.26 39.24 23.85 23.85 tsp 38.00 38.11 26.16 26.27 tyan 30.52 30.44 34.39 34.19 vector32-concat 84.32 84.12 87.04 83.56 vector64-concat 93.84 94.06 93.65 93.57 vector-rev 27.48 24.93 26.95 28.40 vliw 27.74 27.66 31.03 28.53 wc-input1 43.84 43.97 43.41 43.43 wc-scanStream 21.94 21.89 25.47 25.43 zebra 30.21 25.39 30.06 24.35 zern 32.04 31.28 30.91 31.28 Compare: https://github.com/MLton/mlton/compare/fcd55d051231...953fd02745eb |
From: Matthew F. <no...@gi...> - 2019-04-05 00:32:34
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: caa1701673a3e00cbf4cf62c59cb3df1af16554d https://github.com/MLton/mlton/commit/caa1701673a3e00cbf4cf62c59cb3df1af16554d Author: Matthew Fluet <mat...@gm...> Date: 2019-04-04 (Thu, 04 Apr 2019) Changed paths: M mlton/atoms/prim.fun Log Message: ----------- Fix bug in simplification of `x -? x` A cut-n-paste error had `x -? x` returning `0`, rather than `false`. Commit: fcd55d05123183e8eb0f7f21d261ba71ca13dbf7 https://github.com/MLton/mlton/commit/fcd55d05123183e8eb0f7f21d261ba71ca13dbf7 Author: Matthew Fluet <Mat...@gm...> Date: 2019-04-04 (Thu, 04 Apr 2019) Changed paths: M mlton/atoms/prim.fun Log Message: ----------- Merge pull request #295 from MatthewFluet/bug-294 Fix bug in simplification of `x -? x` A cut-n-paste error had `x -? x` returning `0`, rather than `false`. Closes #294 (introduced by 11c33d8). Compare: https://github.com/MLton/mlton/compare/689a719584f6...fcd55d051231 |
From: Matthew F. <no...@gi...> - 2019-03-22 20:31:38
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: e4e1a3cd9f9433f18843b92c7cab806c519dd08d https://github.com/MLton/mlton/commit/e4e1a3cd9f9433f18843b92c7cab806c519dd08d Author: Matthew Fluet <mat...@gm...> Date: 2019-03-21 (Thu, 21 Mar 2019) Changed paths: M include/c-chunk.h M runtime/basis-ffi.h M runtime/basis/Word/Word-ops.h M runtime/gen/basis-ffi.def M runtime/gen/basis-ffi.h M runtime/platform.h Log Message: ----------- Inline signed integer quot and rem in C codegen C99 and C11 have reliable semantics for signed division. Commit: cff08d5335e0c4450809de8c174f1947a9b8896d https://github.com/MLton/mlton/commit/cff08d5335e0c4450809de8c174f1947a9b8896d Author: Matthew Fluet <mat...@gm...> Date: 2019-03-21 (Thu, 21 Mar 2019) Changed paths: M include/c-chunk.h M runtime/Makefile R runtime/basis/Word/Word-consts.h M runtime/basis/Word/Word.c Log Message: ----------- Remove unused `/runtime/basis/Word/Word-consts.h` file Commit: f5196b68d4cb64e07ee579d8de2b734cbf8fad2a https://github.com/MLton/mlton/commit/f5196b68d4cb64e07ee579d8de2b734cbf8fad2a Author: Matthew Fluet <mat...@gm...> Date: 2019-03-21 (Thu, 21 Mar 2019) Changed paths: M mlton/atoms/word-x.fun M mlton/atoms/word-x.sig Log Message: ----------- Implement and export `WordX.{resize,toIntInf}Sg` Commit: b4d70acd1edcd279eb3e33d0e959a313c2b478e5 https://github.com/MLton/mlton/commit/b4d70acd1edcd279eb3e33d0e959a313c2b478e5 Author: Matthew Fluet <mat...@gm...> Date: 2019-03-21 (Thu, 21 Mar 2019) Changed paths: M runtime/basis/Word/Word-ops.h Log Message: ----------- Update comment about C implementation of `WordS<N>_rshift` Commit: 9482c44bdb33e63c7690300beb0720c2c3c76c1c https://github.com/MLton/mlton/commit/9482c44bdb33e63c7690300beb0720c2c3c76c1c Author: Matthew Fluet <mat...@gm...> Date: 2019-03-21 (Thu, 21 Mar 2019) Changed paths: M mlton/atoms/prim.fun Log Message: ----------- Refactor some util fns in `Prim.apply` Commit: 24f61c171ea9b4f5dde777434187dddd07baeec4 https://github.com/MLton/mlton/commit/24f61c171ea9b4f5dde777434187dddd07baeec4 Author: Matthew Fluet <mat...@gm...> Date: 2019-03-22 (Fri, 22 Mar 2019) Changed paths: M basis-library/primitive/basis-ffi.sml M basis-library/primitive/prim-int.sml M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/backend/rep-type.fun M mlton/backend/ssa-to-rssa.fun M mlton/codegen/amd64-codegen/amd64-mlton.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-mlton.fun M runtime/basis-ffi.h M runtime/basis/Word/Word-ops.h M runtime/gen/basis-ffi.def M runtime/gen/basis-ffi.h M runtime/gen/basis-ffi.sml Log Message: ----------- Generalize `Word_negCheckP of WordSize.t` to `Word_negCheckP of WordSize.t * {signed: bool}` With {signed = false}, it is a glorified "x <> 0" test, but matches the other arithmetic operations. Alternatively, could remove the `Word_neg` and `Word_negCheckP` primitives entirely, implementing negation in SML as subtraction from 0. This would be consistent with the C implementation's of `Word_neg` and `Word_negCheckP`. Commit: d89514b37dfd900c0a3f9dbb78c2a4b86a213c30 https://github.com/MLton/mlton/commit/d89514b37dfd900c0a3f9dbb78c2a4b86a213c30 Author: Matthew Fluet <mat...@gm...> Date: 2019-03-22 (Fri, 22 Mar 2019) Changed paths: M mlton/atoms/prim.fun Log Message: ----------- Refactor some util fns in `Prim.apply` Commit: 689a719584f6e2a6012f34d185aac51ace43a76e https://github.com/MLton/mlton/commit/689a719584f6e2a6012f34d185aac51ace43a76e Author: Matthew Fluet <Mat...@gm...> Date: 2019-03-22 (Fri, 22 Mar 2019) Changed paths: M basis-library/primitive/basis-ffi.sml M basis-library/primitive/prim-int.sml M include/c-chunk.h M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/atoms/word-x.fun M mlton/atoms/word-x.sig M mlton/backend/rep-type.fun M mlton/backend/ssa-to-rssa.fun M mlton/codegen/amd64-codegen/amd64-mlton.fun M mlton/codegen/llvm-codegen/llvm-codegen.fun M mlton/codegen/x86-codegen/x86-mlton.fun M runtime/Makefile M runtime/basis-ffi.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 pull request #293 from MatthewFluet/word-prim-updates Word primitive updates * Inline signed integer quot and rem in C codegen. (C99 and C11 have reliable semantics for signed division.) * Generalize `Word_negCheckP of WordSize.t` to `Word_negCheckP of WordSize.t * {signed: bool}`. (With `{signed = false}`, it is a glorified `x <> 0` test, but matches the other arithmetic operations.) Compare: https://github.com/MLton/mlton/compare/e7b6276e0721...689a719584f6 |
From: Matthew F. <no...@gi...> - 2019-03-21 02:22:25
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 0e9258558b42f68bac14b562d6091e64efaa0101 https://github.com/MLton/mlton/commit/0e9258558b42f68bac14b562d6091e64efaa0101 Author: Daman Morris <dam...@gm...> Date: 2019-02-25 (Mon, 25 Feb 2019) Changed paths: M mlton/atoms/prim.fun M mlton/atoms/prim.sig Log Message: ----------- Remove old overflow definitions Commit: 95ab863e60b53e3fd779450a0aa91a19d406d0df https://github.com/MLton/mlton/commit/95ab863e60b53e3fd779450a0aa91a19d406d0df Author: Daman Morris <dam...@gm...> Date: 2019-02-25 (Mon, 25 Feb 2019) Changed paths: M mlton/atoms/prim.fun M mlton/atoms/prim.sig Log Message: ----------- Export *CheckP primitive entries Commit: c6320dec74409de4cb2cc960527327a60437ce25 https://github.com/MLton/mlton/commit/c6320dec74409de4cb2cc960527327a60437ce25 Author: Daman Morris <dam...@gm...> Date: 2019-02-25 (Mon, 25 Feb 2019) Changed paths: M mlton/backend/limit-check.fun Log Message: ----------- Refactor limit-check to use new overflow checks Commit: 289a42a7f9faa16bc296a3937d30e43cf0ca7ee7 https://github.com/MLton/mlton/commit/289a42a7f9faa16bc296a3937d30e43cf0ca7ee7 Author: Daman Morris <dam...@gm...> Date: 2019-02-25 (Mon, 25 Feb 2019) Changed paths: M mlton/backend/rep-type.fun M mlton/backend/ssa-to-rssa.fun M mlton/codegen/amd64-codegen/amd64-mlton.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/ssa/loop-unroll.fun M mlton/ssa/redundant-tests.fun Log Message: ----------- Deprecate internal references to old overflow prims Commit: 54bdda5d1cb30139ff0a4130a0d46d84b753dbb8 https://github.com/MLton/mlton/commit/54bdda5d1cb30139ff0a4130a0d46d84b753dbb8 Author: Daman Morris <dam...@gm...> Date: 2019-02-28 (Thu, 28 Feb 2019) Changed paths: M mlton/backend/limit-check.fun Log Message: ----------- Correct new implementation of limit-check Commit: 2fe90796a1559c5d9f23630df0b6d3bd80351026 https://github.com/MLton/mlton/commit/2fe90796a1559c5d9f23630df0b6d3bd80351026 Author: Daman Morris <dam...@gm...> Date: 2019-03-04 (Mon, 04 Mar 2019) Changed paths: M basis-library/primitive/prim-int.sml M basis-library/primitive/prim1.sml Log Message: ----------- Remove newOverflow controls from basis library Commit: 58f9e18558548aeaec61c66762819d5a70477037 https://github.com/MLton/mlton/commit/58f9e18558548aeaec61c66762819d5a70477037 Author: Daman Morris <dam...@gm...> Date: 2019-03-04 (Mon, 04 Mar 2019) Changed paths: M mlton/atoms/prim.fun Log Message: ----------- Add equality for Word_*CheckP primitives Commit: 9c5082f6275b04d42c99d35daf829e34cabee36c https://github.com/MLton/mlton/commit/9c5082f6275b04d42c99d35daf829e34cabee36c Author: Daman Morris <dam...@gm...> Date: 2019-03-04 (Mon, 04 Mar 2019) Changed paths: M mlton/backend/ssa-to-rssa.fun M mlton/closure-convert/closure-convert.fun 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/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 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/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 Log Message: ----------- Deprecate SSA(2) Arith transfers Commit: ab1dd1e5f05ba6e50293187d4109762df4a89e73 https://github.com/MLton/mlton/commit/ab1dd1e5f05ba6e50293187d4109762df4a89e73 Author: Daman Morris <dam...@gm...> Date: 2019-03-04 (Mon, 04 Mar 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/chunkify.fun M mlton/backend/machine.fun M mlton/backend/machine.sig M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/backend/ssa-to-rssa.fun 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/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 Log Message: ----------- Deprecate backend/codegen Arith transfers Commit: 13f7eac341bf95b87afc599837009c73d9994057 https://github.com/MLton/mlton/commit/13f7eac341bf95b87afc599837009c73d9994057 Author: Daman Morris <dam...@gm...> Date: 2019-03-04 (Mon, 04 Mar 2019) Changed paths: M mlton/atoms/prim.fun M mlton/ssa/common-subexp.fun M mlton/ssa/redundant-tests.fun Log Message: ----------- Clean up unused warnings Commit: 5ff131d914172fbaea2c484a7e537902c6990e11 https://github.com/MLton/mlton/commit/5ff131d914172fbaea2c484a7e537902c6990e11 Author: Daman Morris <dam...@gm...> Date: 2019-03-04 (Mon, 04 Mar 2019) Changed paths: M mlton/backend/limit-check.fun Log Message: ----------- Correct type error in limit-check Commit: ed090de4fa252132fb5bb7a1d1ce1e5a55337d26 https://github.com/MLton/mlton/commit/ed090de4fa252132fb5bb7a1d1ce1e5a55337d26 Author: Daman Morris <dam...@gm...> Date: 2019-03-18 (Mon, 18 Mar 2019) Changed paths: M basis-library/primitive/prim-basis.sml M basis-library/primitive/prim1.sml M mlton/atoms/prim-cons.fun M mlton/atoms/prim-cons.sig M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/closure-convert/closure-convert.fun M mlton/closure-convert/lambda-free.fun M mlton/closure-convert/lambda-free.sig M mlton/defunctorize/defunctorize.fun M mlton/main/compile.fun M mlton/xml/cps-transform.fun M mlton/xml/implement-exceptions.fun M mlton/xml/implement-suffix.fun M mlton/xml/monomorphise.fun 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/type-check.fun M mlton/xml/xml-tree.fun M mlton/xml/xml-tree.sig M runtime/basis/Word/Word-check.h Log Message: ----------- Remove old special-case overflow handling Commit: 6bc666c24bfae6bda0475561146118cf968741d6 https://github.com/MLton/mlton/commit/6bc666c24bfae6bda0475561146118cf968741d6 Author: Daman Morris <dam...@gm...> Date: 2019-03-18 (Mon, 18 Mar 2019) Changed paths: M basis-library/primitive/prim1.sml M mlton/atoms/prim.fun M mlton/atoms/prim.sig 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/ssa-to-rssa.fun M mlton/codegen/amd64-codegen/amd64-mlton.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/ssa/loop-unroll.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/cps-transform.fun Log Message: ----------- Remove deprecated code sections Commit: db12ffa7bbf5d6b98b8938ffe02ab44548bb23cb https://github.com/MLton/mlton/commit/db12ffa7bbf5d6b98b8938ffe02ab44548bb23cb Author: Daman Morris <dam...@gm...> Date: 2019-03-18 (Mon, 18 Mar 2019) Changed paths: M include/c-chunk.h Log Message: ----------- Remove superfluous macros from C backend Commit: 5d88ac0b04561a76a4d5160fd77f964fc585fdbc https://github.com/MLton/mlton/commit/5d88ac0b04561a76a4d5160fd77f964fc585fdbc Author: Daman Morris <dam...@gm...> Date: 2019-03-18 (Mon, 18 Mar 2019) Changed paths: M mlton/ssa/loop-unroll.fun Log Message: ----------- Remove redundant arith bookkeeping from loop-unroll Commit: 11c33d8aaaad2a90a95677efede09c49840caf22 https://github.com/MLton/mlton/commit/11c33d8aaaad2a90a95677efede09c49840caf22 Author: Daman Morris <dam...@gm...> Date: 2019-03-18 (Mon, 18 Mar 2019) Changed paths: M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/backend/rssa.fun Log Message: ----------- Remove ApplyResult.Overflow constructor Commit: 4d22c609dfb8ae9e5ddd8069e123f8607744d6df https://github.com/MLton/mlton/commit/4d22c609dfb8ae9e5ddd8069e123f8607744d6df Author: Matthew Fluet <mat...@gm...> Date: 2019-03-19 (Tue, 19 Mar 2019) Changed paths: M mlton/codegen/amd64-codegen/amd64-mlton.sig M mlton/codegen/x86-codegen/x86-mlton.sig Log Message: ----------- Remove deprecated code sections Commit: ddc04c3f43947983819d6ab60d041b4325707b50 https://github.com/MLton/mlton/commit/ddc04c3f43947983819d6ab60d041b4325707b50 Author: Matthew Fluet <mat...@gm...> Date: 2019-03-19 (Tue, 19 Mar 2019) Changed paths: M mlton/atoms/prim.fun Log Message: ----------- Use `Overflow` rather than `Exn.Overflow` With `Prim.ApplyResult.Overflow` constructor removed, there is no confusion with the pervasive `Overflow` exception. Commit: 9d251dbe8d342005258ef0f05bf988b5cdabe887 https://github.com/MLton/mlton/commit/9d251dbe8d342005258ef0f05bf988b5cdabe887 Author: Matthew Fluet <mat...@gm...> Date: 2019-03-19 (Tue, 19 Mar 2019) Changed paths: M basis-library/primitive/basis-ffi.sml M include/c-chunk.h M runtime/Makefile M runtime/basis-ffi.h R runtime/basis/Word/Word-check.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 Log Message: ----------- Consolidate Word<N>_<op> and Word<N>_<op>CheckP in `Word-ops.h` Commit: e7b6276e0721dd8c1aec0d34d70eee731e70ca36 https://github.com/MLton/mlton/commit/e7b6276e0721dd8c1aec0d34d70eee731e70ca36 Author: Matthew Fluet <Mat...@gm...> Date: 2019-03-20 (Wed, 20 Mar 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 include/c-chunk.h M mlton/atoms/prim-cons.fun M mlton/atoms/prim-cons.sig M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/backend/backend.fun M mlton/backend/chunkify.fun 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/ssa-to-rssa.fun M mlton/closure-convert/closure-convert.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/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/defunctorize/defunctorize.fun M mlton/main/compile.fun 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/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 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/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 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/type-check.fun M mlton/xml/xml-tree.fun M mlton/xml/xml-tree.sig M runtime/Makefile M runtime/basis-ffi.h R runtime/basis/Word/Word-check.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 Log Message: ----------- Merge pull request #292 from daemanos/overflow-cleanup Remove old-style arithmetic primitives In MLton/mlton#273, MLton was extended to support overflow-checking primitives for arithmetic operations. This allowed checked arithmetic operations to be encoded as an unchecked arithmetic operation followed by an overflow-checking operation followed by an `if` that either raises the `Overflow` exception or returns the arithmetic result. However, the overflow primitives (that implicitly raise a special `PrimOverflow` exception in the early ILs and are used in `Arith` transfers in the late ILs) remained in the compiler. This pull request removes the old overflow primitives entirely, along with the special-case code required to support them. Compare: https://github.com/MLton/mlton/compare/1f4daa14d1d2...e7b6276e0721 |
From: Matthew F. <no...@gi...> - 2019-03-12 16:49:41
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: a5ea7d79b50748a80138505bda4a41c4ee3f6442 https://github.com/MLton/mlton/commit/a5ea7d79b50748a80138505bda4a41c4ee3f6442 Author: Matthew Fluet <mat...@gm...> Date: 2019-03-11 (Mon, 11 Mar 2019) Changed paths: M bin/regression A regression/gc-collect2.ok A regression/gc-collect2.sml Log Message: ----------- Add `gc-collect2` regression test for bug in MLton.GC.collect An explicit `MLton.GC.collect ()` may shrink the heap and fail to ensure that sufficient space is available. Commit: 1a57c57b6af82ff39596b2abe885b5556f5cada1 https://github.com/MLton/mlton/commit/1a57c57b6af82ff39596b2abe885b5556f5cada1 Author: Matthew Fluet <mat...@gm...> Date: 2019-03-11 (Mon, 11 Mar 2019) Changed paths: M mlton/backend/ssa-to-rssa.fun Log Message: ----------- Fix SSA2 to RSSA translation of GC_collect primitive The GC_collect primitive is translated to a C call to GC_collect, which has `ensuresBytesFree = true`. However, no `EnsuresBytesFree` operand is created for the C call; instead, a constant 0 operand was being used for the `bytesRequested` argument. During the `insertLimitChecks` pass, a C call with `ensuresBytesFree = true` is expected to have an `EnsuresBytesFree` operand that can be replaced by the amount of heap space required by the C call return block. Failing to pass the appropriate `bytesRequested` allows the garbage collection to shrink the heap and fail to ensure that the necessary heap space is available. Commit: 19e5ae39072bf42250263c86b5910b0c31d8d7cf https://github.com/MLton/mlton/commit/19e5ae39072bf42250263c86b5910b0c31d8d7cf Author: Matthew Fluet <mat...@gm...> Date: 2019-03-11 (Mon, 11 Mar 2019) Changed paths: M mlton/backend/ssa-to-rssa.fun Log Message: ----------- Fix Kind.Runtime flags of SsaToRssa.CFunction.gcSequenceCopy The `SsaToRssa.CFunction.gcSequenceCopy` declaration was copied from `SsaToRssa.CFunction.gcSequenceAllocate`, but GC_sequenceCopy is just a wrapper around `memmove`, so has no interaction with garbage collection. Commit: 526540446ee41d25e714f06aaea0c213a535793d https://github.com/MLton/mlton/commit/526540446ee41d25e714f06aaea0c213a535793d Author: Matthew Fluet <mat...@gm...> Date: 2019-03-11 (Mon, 11 Mar 2019) Changed paths: M mlton/atoms/c-function.fun M mlton/atoms/c-function.sig M mlton/backend/implement-profiling.fun M mlton/backend/limit-check.fun M mlton/backend/rep-type.fun M mlton/backend/ssa-to-rssa.fun Log Message: ----------- Change `CFunction.Kind.Runtime#ensuresBytesFree` flag from `bool` to `int option` Mimic the behavior of the `CFunction.Kind.Runtime#ensuresBytesFree` flag and track the index of the argument that specifies a number of bytes that must be free when then C function returns. Commit: 064a992e198b7e984063c0b41e9a6b9df2c06ffe https://github.com/MLton/mlton/commit/064a992e198b7e984063c0b41e9a6b9df2c06ffe Author: Matthew Fluet <mat...@gm...> Date: 2019-03-11 (Mon, 11 Mar 2019) Changed paths: M mlton/backend/backend.fun M mlton/backend/rssa.fun M mlton/backend/rssa.sig M mlton/backend/ssa-to-rssa.fun Log Message: ----------- Eliminate `Rssa.Operand.EnsuresBytesFree` The functionality of `Rssa.Operand.EnsuresBytesFree` is now handled by `CFunction.Kind.Runtime#ensuresBytesFree : int option`. Commit: a497c8ca85855aabfb5188b787e7149e5af005a5 https://github.com/MLton/mlton/commit/a497c8ca85855aabfb5188b787e7149e5af005a5 Author: Matthew Fluet <mat...@gm...> Date: 2019-03-12 (Tue, 12 Mar 2019) Changed paths: M mlton/backend/limit-check.fun M mlton/backend/signal-check.fun Log Message: ----------- Use `Operand.zero` rather than `Operand.word o WordX.zero` Commit: 1f4daa14d1d24d1edd3cb97a9268e2cc25f35c41 https://github.com/MLton/mlton/commit/1f4daa14d1d24d1edd3cb97a9268e2cc25f35c41 Author: Matthew Fluet <Mat...@gm...> Date: 2019-03-12 (Tue, 12 Mar 2019) Changed paths: M bin/regression M mlton/atoms/c-function.fun M mlton/atoms/c-function.sig M mlton/backend/backend.fun M mlton/backend/implement-profiling.fun M mlton/backend/limit-check.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 A regression/gc-collect2.ok A regression/gc-collect2.sml Log Message: ----------- Merge pull request #291 from MatthewFluet/limit-check-updates Fix latent `MLton.GC.collect` bug The `GC_collect` primitive is translated to a C call to `GC_collect`, which has `ensuresBytesFree = true`. However, no `EnsuresBytesFree` operand was created for the C call; instead, a constant 0 operand was being used for the `bytesRequested` argument. During the `insertLimitChecks` pass, a C call with `ensuresBytesFree = true` is expected to have an `EnsuresBytesFree` operand that can be replaced by the amount of heap space required by the C call return block. Failing to pass the appropriate `bytesRequested` allows the garbage collection to shrink the heap and fail to ensure that the necessary heap space is available. The `gc-collect2.sml` regression test demonstrates a program that performs a large sequence of allocations immediately after `MLton.GC.collect()`. When executed with a `live-ratio` near 1.0, the explicitly requested garbage collection leaves the heap too small to handle the subsequent allocations and a segmentation fault occurs. Adjusting the translation of `GC_collect` to include an `EnsuresBytesFree` operand fixes the bug. However, the inconsistency between `ensuresBytesFree = true` and the created operands suggested another more robust solution: eliminate the `Rssa.Operand.EnsuresBytesFree` and change the `ensuresBytesFree` flag of `CFunction.Kind.Runtime` from `bool` to `int option`. Like the `bytesNeeded` flag of `CFunction.Kind.Runtime`, the `int option` indicates the index of the argument that specifies a number of bytes that must be free when the C function returns. Compare: https://github.com/MLton/mlton/compare/9ba427ade190...1f4daa14d1d2 |
From: Matthew F. <no...@gi...> - 2019-02-17 15:25:36
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: b4b19b9e68c736e0aae5dc8e971ae0672667699e https://github.com/MLton/mlton/commit/b4b19b9e68c736e0aae5dc8e971ae0672667699e Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/atoms/const.fun M mlton/atoms/real-x.fun M mlton/atoms/real-x.sig M mlton/atoms/word-x-vector.fun M mlton/atoms/word-x.fun M mlton/atoms/word-x.sig M mlton/backend/backend.fun M mlton/backend/machine.fun M mlton/backend/packed-representation.fun M mlton/backend/switch.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.fun M mlton/ssa/analyze.fun M mlton/ssa/analyze2.fun M mlton/ssa/direct-exp.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/xml/xml-tree.fun Log Message: ----------- Add "type" suffix to constants in ILs Add a simple "type" suffix to constants in ILs to simplify parsing of constants. Commit: ce4ea45b709cbe8396f047b59c80752cad08c7b9 https://github.com/MLton/mlton/commit/ce4ea45b709cbe8396f047b59c80752cad08c7b9 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M lib/mlton/basic/char.sig M lib/mlton/basic/char0.sig Log Message: ----------- Export `Char.scan` in MLton library Commit: 79dafdd63d44b53cc759fec902134f295a4dd1c5 https://github.com/MLton/mlton/commit/79dafdd63d44b53cc759fec902134f295a4dd1c5 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M lib/mlton/basic/real.sig Log Message: ----------- Export `Real.scan` in MLton library Commit: df9c5a91b6428483107ee7789b446c2597bd8f1d https://github.com/MLton/mlton/commit/df9c5a91b6428483107ee7789b446c2597bd8f1d Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M lib/mlton/basic/parse.sig M lib/mlton/basic/parse.sml Log Message: ----------- Add `Parse.fromScan` in MLton library Commit: 3d235ecc128b9d58d2a65d63c3c27d0a51c25210 https://github.com/MLton/mlton/commit/3d235ecc128b9d58d2a65d63c3c27d0a51c25210 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/atoms/const.fun M mlton/atoms/const.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 Log Message: ----------- Implement `Const.parse` for constants in ILs Commit: 57ec06f78652886b6d1b7ae4f9c114fdd0089a25 https://github.com/MLton/mlton/commit/57ec06f78652886b6d1b7ae4f9c114fdd0089a25 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Use `Const.parse` in SSA2 IL parser Commit: 249f952b921501af2deb10cce216a2b6a4fd29a1 https://github.com/MLton/mlton/commit/249f952b921501af2deb10cce216a2b6a4fd29a1 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/parse-ssa.fun Log Message: ----------- Use `Const.parse` in SSA IL parser Commit: bf1dc003d479d5d30be66864024f6c46dac4d9d6 https://github.com/MLton/mlton/commit/bf1dc003d479d5d30be66864024f6c46dac4d9d6 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Use `Const.parse` in SXML IL parser Commit: e3f38fdfc01f6d70a319769975f4da96e6488df9 https://github.com/MLton/mlton/commit/e3f38fdfc01f6d70a319769975f4da96e6488df9 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Use `WordX.parse` in SSA2 IL parser Commit: a522950cf25412dcf6512a11252ecf6f6812eb83 https://github.com/MLton/mlton/commit/a522950cf25412dcf6512a11252ecf6f6812eb83 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/parse-ssa.fun Log Message: ----------- Use `WordX.parse` in SSA IL parser Commit: e3c5b7d17e9ab2a789a97300bd3edecaeee77046 https://github.com/MLton/mlton/commit/e3c5b7d17e9ab2a789a97300bd3edecaeee77046 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Use `WordX.parse` in SXML IL parser Commit: 5f8915b12b2d0f98566f250177803ed4d55bfa86 https://github.com/MLton/mlton/commit/5f8915b12b2d0f98566f250177803ed4d55bfa86 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/atoms/c-type.fun M mlton/atoms/c-type.sig Log Message: ----------- Implement `CType.parse` Commit: 7eca216c01f126a3db21b3e4a3f66f8ab4cc34e4 https://github.com/MLton/mlton/commit/7eca216c01f126a3db21b3e4a3f66f8ab4cc34e4 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/atoms/c-function.fun M mlton/atoms/c-function.sig Log Message: ----------- Implement `CFunction.parse` Commit: 87114c13b52bf4c7a76be4e7f35beb7ab46fb5e7 https://github.com/MLton/mlton/commit/87114c13b52bf4c7a76be4e7f35beb7ab46fb5e7 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/atoms/prim.fun M mlton/atoms/prim.sig Log Message: ----------- Implement `Prim.parse` for primitives in the ILs Commit: 8fd332436469dfe1bfcbb7157ffe9a55e2b447a4 https://github.com/MLton/mlton/commit/8fd332436469dfe1bfcbb7157ffe9a55e2b447a4 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Use `Prim.parse` in SSA2 IL parser Commit: 73eaeefd313d88d914cf451375a76ec431519b09 https://github.com/MLton/mlton/commit/73eaeefd313d88d914cf451375a76ec431519b09 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/parse-ssa.fun Log Message: ----------- Use `Prim.parse` in SSA IL parser Commit: 37153c9224008e3a49ca2dc0b3de3f15f5da777e https://github.com/MLton/mlton/commit/37153c9224008e3a49ca2dc0b3de3f15f5da777e Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/xml/parse-sxml.fun Log Message: ----------- Use `Prim.parse` in SXML IL parser Commit: f0589ae48280dc7ffc4df0e38061108637936472 https://github.com/MLton/mlton/commit/f0589ae48280dc7ffc4df0e38061108637936472 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Refactor some SSA IL layout functions Commit: 80b30149e823e6e5fc79dcfb9f0229e8b5686f4c https://github.com/MLton/mlton/commit/80b30149e823e6e5fc79dcfb9f0229e8b5686f4c Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/atoms/id.fun M mlton/atoms/id.sig Log Message: ----------- Implement `ID.parse: t Parse.t` and related functions Parsing of identifiers is complicated, even when restricted to well-formed IL programs with single defs of each variable. Each def and use of the same variable in a printed IL program must be mapped to the same ID object. To handle this, a hash table mapping strings to ID objects is maintained. Some IDs are special (e.g., the Tycon corresponding to `bool`), because there is a particular (global) ID object for that identifier. To handle this, `val parseReset: {prims: t vector} -> unit` is used to remove all entries from the hash table and insert a number of primitive identifiers into the hash table (according to the identifier's `toString`). Non-special IDs are printed with a uniquifying suffix (e.g., `x_123`), but if that identifier is parsed and then printed again, we do not wish to add another uniquifying suffix identifier is printed (e.g., `x_123_456`). To handle this, parsing strips the uniquifying suffix when creating the ID object (using `newString`). A more sophisticated implementation would strip the uniquifying suffix, create the ID object with an originalName and a printName, and update the UniqueString table based on the suffix. Finally, it is sometimes useful to handle tokens that could appear where an identifier could occur, but should not be taken as an identifier. (For example, in the SSA2 IL, an ObjectCon is either a Con identifier, "tuple", or "sequence".) To handle this, `val parseAs: (string * 'a) vector * (t -> 'a) -> 'a Parse.t` can be used. An alternate design would be `val parseAs: (string -> 'a option) * (t -> 'a) -> 'a Parse.t`. Commit: a9a57f12410423afa9b7aef5f5b884bf2934626b https://github.com/MLton/mlton/commit/a9a57f12410423afa9b7aef5f5b884bf2934626b Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/atoms/c-function.fun Log Message: ----------- Make one `infix` declaration for parser combinators Commit: 460cc3ff8f442804c4976b9ac3f1f8b72f540530 https://github.com/MLton/mlton/commit/460cc3ff8f442804c4976b9ac3f1f8b72f540530 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig Log Message: ----------- Implement `SsaTree2.Program.parse` Reimplement the SSA2 IL parser in `functor SsaTree2`. This implementation places the parser for each IL component next to the layout for the corresponding component. This will make it much easer to keep the layout and parser for each component in sync. This implementation uses a rather more monadic than applicative style of parser, which may be less efficient, but seems to be more maintainable (at least with the present set of parser combinators). Commit: 48e75afc6644098336cbba373a251f363d85a216 https://github.com/MLton/mlton/commit/48e75afc6644098336cbba373a251f363d85a216 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/main/compile.fun Log Message: ----------- Use `Ssa2.Program.parse` for input SSA2 IL programs Commit: bf949a2ff992b96cc55d0aa6d90f9c80b557e131 https://github.com/MLton/mlton/commit/bf949a2ff992b96cc55d0aa6d90f9c80b557e131 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: R mlton/ssa/parse-ssa2.fun R mlton/ssa/parse-ssa2.sig M mlton/ssa/sources.cm M mlton/ssa/sources.mlb Log Message: ----------- Remove `functor ParseSsa2` Superseded by `SsaTree2.Program.parse`. Commit: 8f4b98e52d849f3f4f1652a3ce4ce38f20495109 https://github.com/MLton/mlton/commit/8f4b98e52d849f3f4f1652a3ce4ce38f20495109 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Cosmetic improvements to layout/parse of SSA2 IL Eliminate some redundant keywords and parens. Commit: 09324b924282aa815cc508bbc863db5cbf9d8e10 https://github.com/MLton/mlton/commit/09324b924282aa815cc508bbc863db5cbf9d8e10 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/simplify2.fun Log Message: ----------- Use SML-style comments for SSA2 IL Commit: 2e6b5b3b702a94be30bbf9b2eb7f53a32d25e183 https://github.com/MLton/mlton/commit/2e6b5b3b702a94be30bbf9b2eb7f53a32d25e183 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/main/compile.fun M mlton/ssa/simplify.fun Log Message: ----------- Use SML-style comments for SSA IL Commit: 16ade5e72dc599e453f575e8185c3a25d4d5e59a https://github.com/MLton/mlton/commit/16ade5e72dc599e453f575e8185c3a25d4d5e59a Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/main/compile.fun M mlton/xml/polyvariance.fun M mlton/xml/sxml-simplify.fun M mlton/xml/xml-simplify.fun Log Message: ----------- Use SML-style comments for XML/SXML ILs Commit: 877f6cf1705b99a4cf6377576a03686e1024bac5 https://github.com/MLton/mlton/commit/877f6cf1705b99a4cf6377576a03686e1024bac5 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/main/compile.fun Log Message: ----------- Use SML-style comments for CoreML IL Commit: fefa09b87222cd453c9fce701137651859f6b0fc https://github.com/MLton/mlton/commit/fefa09b87222cd453c9fce701137651859f6b0fc Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/backend/backend.fun Log Message: ----------- Use SML-style comments for RSSA IL Commit: 522de5936250b28e3cf73136e77088dd7ac33af1 https://github.com/MLton/mlton/commit/522de5936250b28e3cf73136e77088dd7ac33af1 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree.sig Log Message: ----------- Implement `SsaTree.Program.parse` Reimplement the SSA IL parser in `functor SsaTree`. This implementation places the parser for each IL component next to the layout for the corresponding component. This will make it much easer to keep the layout and parser for each component in sync. This implementation uses a rather more monadic than applicative style of parser, which may be less efficient, but seems to be more maintainable (at least with the present set of parser combinators). Commit: dd2542ae734aa55ab2f29a0757ba064f08a3e426 https://github.com/MLton/mlton/commit/dd2542ae734aa55ab2f29a0757ba064f08a3e426 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/main/compile.fun Log Message: ----------- Use `Ssa.Program.parse` for input SSA IL programs Commit: bb3db073ca7c1679f2688f0fa6642df60f34c6e0 https://github.com/MLton/mlton/commit/bb3db073ca7c1679f2688f0fa6642df60f34c6e0 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: R mlton/ssa/parse-ssa.fun R mlton/ssa/parse-ssa.sig M mlton/ssa/sources.cm M mlton/ssa/sources.mlb Log Message: ----------- Remove `functor ParseSsa` Superseded by `SsaTree.Program.parse`. Commit: a61625de563ca51fe887e6beb1a5e11eb7d603f4 https://github.com/MLton/mlton/commit/a61625de563ca51fe887e6beb1a5e11eb7d603f4 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Alphabetize keywords in `SsaTree2.Transfer.parse` Commit: ede3431e2d30e1080a2c76453aaa3a35a8533e1f https://github.com/MLton/mlton/commit/ede3431e2d30e1080a2c76453aaa3a35a8533e1f Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Eliminate extraneous parens in `SsaTree2.Transfer.parse` Commit: 7a5de2f2a495d6d4c397d0d2bc4e550bcee2f2ee https://github.com/MLton/mlton/commit/7a5de2f2a495d6d4c397d0d2bc4e550bcee2f2ee Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Tweaks to layout/parse of SSA2 IL Commit: 45ace722b69a806cf01e0e779b7133b1b7d67bac https://github.com/MLton/mlton/commit/45ace722b69a806cf01e0e779b7133b1b7d67bac Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree.fun Log Message: ----------- Tweaks to layout/parse of SSA IL Commit: 273b1de0aea9302b1eaadc51e819eb73a0c11607 https://github.com/MLton/mlton/commit/273b1de0aea9302b1eaadc51e819eb73a0c11607 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/atoms/id.fun Log Message: ----------- Fix `Id.parse`; missing `~` in symbolic identifiers Commit: cfaa7a8c51cd14165df54ea790d26bc90147a9da https://github.com/MLton/mlton/commit/cfaa7a8c51cd14165df54ea790d26bc90147a9da Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Tweaks to layout/parse of SSA2 IL Commit: 066911af413d144520f52ffe39c17ed163ec11fc https://github.com/MLton/mlton/commit/066911af413d144520f52ffe39c17ed163ec11fc Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree.fun Log Message: ----------- Tweaks to layout/parse of SSA IL Commit: 41becfb438bb0b4b1e9f69bcf2a08aa72d4ec373 https://github.com/MLton/mlton/commit/41becfb438bb0b4b1e9f69bcf2a08aa72d4ec373 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree.fun Log Message: ----------- Handle `datatype` with empty cons in SSA IL parser An alternative fix would be to always require the `of <tys>` clause. Commit: 74c1f93b92e2ff7e324ace8c8ae0857150864f54 https://github.com/MLton/mlton/commit/74c1f93b92e2ff7e324ace8c8ae0857150864f54 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Add `SsaTree2.Prod.new1{Immutable,Mutable}` functions Commit: 3bc5998d1b8bf12f5eec41e01c3cced16e6188e6 https://github.com/MLton/mlton/commit/3bc5998d1b8bf12f5eec41e01c3cced16e6188e6 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- Tweak parsing of unary types in SSA and SSA2 ILs Commit: 9dceacf5b664442569717c6c13aa77c0523be816 https://github.com/MLton/mlton/commit/9dceacf5b664442569717c6c13aa77c0523be816 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/atoms/id.fun M mlton/atoms/id.sig Log Message: ----------- Add `val Id.parseExcept: string vector -> Id.t Parse.t` Commit: 908cb0c5f788c12041c1fe4f741258c0c0f2f08b https://github.com/MLton/mlton/commit/908cb0c5f788c12041c1fe4f741258c0c0f2f08b Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree.fun Log Message: ----------- Simplify parsing of `datatype` constructors in SSA IL Commit: d9824e00e9cae60d0f4d8e58de9a3d1b283c4b8a https://github.com/MLton/mlton/commit/d9824e00e9cae60d0f4d8e58de9a3d1b283c4b8a Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/atoms/c-function.fun M mlton/atoms/prim.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- Tweaks to `structure Parse` as used by IL parsers Commit: 034f6d1f7efd04b119eb3a29ccaba7909ca91bd0 https://github.com/MLton/mlton/commit/034f6d1f7efd04b119eb3a29ccaba7909ca91bd0 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Fix code formatting Commit: 0e2f5be8ccfbf68cc7edc4160dad40fc468b4f60 https://github.com/MLton/mlton/commit/0e2f5be8ccfbf68cc7edc4160dad40fc468b4f60 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree.fun Log Message: ----------- Tweak layout/parse of prim targs in SSA IL Commit: 4a27ff3fc3cba7a214637f4a388989a7db145abc https://github.com/MLton/mlton/commit/4a27ff3fc3cba7a214637f4a388989a7db145abc Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- Layout and parse `mayInline` attribute of SSA/SSA2 IL functions Commit: 79c72fc630178b2d509d4ecffb0cfee1a0b15a61 https://github.com/MLton/mlton/commit/79c72fc630178b2d509d4ecffb0cfee1a0b15a61 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/atoms/id.fun Log Message: ----------- Parse tyvar identifiers Commit: f8c3888f69f0cc2a645059ac33ec24f35904a7c4 https://github.com/MLton/mlton/commit/f8c3888f69f0cc2a645059ac33ec24f35904a7c4 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/xml/xml-tree.fun Log Message: ----------- List layoutTyvars in `functor XmlTree` Commit: 921c307007472af30db921ff24e8307daf446fe1 https://github.com/MLton/mlton/commit/921c307007472af30db921ff24e8307daf446fe1 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/xml/xml-tree.fun M mlton/xml/xml-tree.sig Log Message: ----------- Implement `XmlTree.Program.parse` Reimplement the XML IL parser in `functor XmlTree`. This implementation places the parser for each IL component next to the layout for the corresponding component. This will make it much easer to keep the layout and parser for each component in sync. This implementation uses a rather more monadic than applicative style of parser, which may be less efficient, but seems to be more maintainable (at least with the present set of parser combinators). Commit: 76cfc12af24d64822188b596c9b0055d9e0cd7b5 https://github.com/MLton/mlton/commit/76cfc12af24d64822188b596c9b0055d9e0cd7b5 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/main/compile.fun Log Message: ----------- Use `Sxml.Program.parse` for input Sxml IL programs Commit: 7fac21760d1d862691295fa5e2cc07095ac9e831 https://github.com/MLton/mlton/commit/7fac21760d1d862691295fa5e2cc07095ac9e831 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: R mlton/xml/parse-sxml.fun R mlton/xml/parse-sxml.sig M mlton/xml/sources.cm M mlton/xml/sources.mlb Log Message: ----------- Remove `functor ParseSxml` Superseded by `SxmlTree.Program.parse`. Commit: 167c6e609f4bbd326ab39449c3f0298bce2119cb https://github.com/MLton/mlton/commit/167c6e609f4bbd326ab39449c3f0298bce2119cb Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/main/compile.fun M mlton/main/compile.sig M mlton/main/main.fun Log Message: ----------- Compile input .xml program Commit: fea6e8bcb52e017ee628c913b4477919c3bd1ff7 https://github.com/MLton/mlton/commit/fea6e8bcb52e017ee628c913b4477919c3bd1ff7 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/closure-convert/closure-convert.fun M mlton/closure-convert/globalize.fun M mlton/closure-convert/lambda-free.fun M mlton/defunctorize/defunctorize.fun M mlton/match-compile/match-compile.fun M mlton/match-compile/match-compile.sig M mlton/xml/cps-transform.fun M mlton/xml/implement-exceptions.fun M mlton/xml/implement-suffix.fun M mlton/xml/monomorphise.fun 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/type-check.fun M mlton/xml/xml-tree.fun M mlton/xml/xml-tree.sig Log Message: ----------- Eliminate `region` from `default` field of `XmlTree.PrimExp.Case` The field was introduced by 28cddd6 (Propagate source level information about functions through to the executable.) but not eliminated by 2270ad1 (Eliminated bodyType and region from Xml lambdas.). Commit: fdc238f681985f23938afdc7041e994eb58b7793 https://github.com/MLton/mlton/commit/fdc238f681985f23938afdc7041e994eb58b7793 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/xml/xml-tree.fun Log Message: ----------- Tweaks to layout/parse of XML/SXML ILs Commit: cb681e34aeb85740ebdcbbf5e9f27d12564809fe https://github.com/MLton/mlton/commit/cb681e34aeb85740ebdcbbf5e9f27d12564809fe Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/xml/xml-tree.fun Log Message: ----------- Tweaks to layout/parse of XML/SXML ILs Commit: 21000989ce32f71f2d45ae2c4cd2a633294d503d https://github.com/MLton/mlton/commit/21000989ce32f71f2d45ae2c4cd2a633294d503d Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/xml/xml-tree.fun Log Message: ----------- Tweaks to layout/parse of XML/SXML ILs Commit: 818a0195470722b74e9779d654e8139ceabda649 https://github.com/MLton/mlton/commit/818a0195470722b74e9779d654e8139ceabda649 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M lib/mlton/basic/vector.fun M lib/mlton/basic/vector.sig Log Message: ----------- Add `Vector.layouti` and `Vector.toListMapi` in MLton Library Commit: b2abcbfbff1525f4216c7a58c72f00b1daaac043 https://github.com/MLton/mlton/commit/b2abcbfbff1525f4216c7a58c72f00b1daaac043 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/xml/xml-tree.fun Log Message: ----------- Tweaks to layout/parse of XML/SXML ILs Commit: 548974bc2f96fbf1953bea578f94c0b3aa62af26 https://github.com/MLton/mlton/commit/548974bc2f96fbf1953bea578f94c0b3aa62af26 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/xml/xml-tree.fun Log Message: ----------- Refactor XML/SXML parse functions style to `C <$> (...)` form This emphasizes the variant being parsed in each alternative. Commit: b221023bed9d936f628f740eb6f0b9daa3b7bea4 https://github.com/MLton/mlton/commit/b221023bed9d936f628f740eb6f0b9daa3b7bea4 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree.fun Log Message: ----------- Refactor SSA parse functions style to `C <$> (...)` form This emphasizes the variant being parsed in each alternative. Commit: 4639ea282136b219977282dfe0e7d8757374b35f https://github.com/MLton/mlton/commit/4639ea282136b219977282dfe0e7d8757374b35f Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Refactor SSA2 parse functions style to `C <$> (...)` form This emphasizes the variant being parsed in each alternative. Commit: 3c9e6831a9f07f718e116ac74c50e684e8678206 https://github.com/MLton/mlton/commit/3c9e6831a9f07f718e116ac74c50e684e8678206 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/control/control.sml Log Message: ----------- Expose `structure ControlFlags.Verbosity` Commit: d094ea5dd072fc3d0a820d423a83bf1e6196cb80 https://github.com/MLton/mlton/commit/d094ea5dd072fc3d0a820d423a83bf1e6196cb80 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml Log Message: ----------- Add `val layout: unit -> Layout.` to `signature CONTROL_FLAGS` Provide a function to format all control flags for display. Commit: 03b32fb121024726525ded65cf5db277f7a596b9 https://github.com/MLton/mlton/commit/03b32fb121024726525ded65cf5db277f7a596b9 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/control/control.sml Log Message: ----------- Simplify header for MLton-generated files Omit the current date to make output deterministic. Omit unnecessary "Do not edit this file." comment. Omit `control flags:` when verbosity less than Detail; the exhaustive list of control-flags is distracting in files and has rarely (if ever) been useful. Commit: d8eeb9f009814e2d6ab09589717789736902ec50 https://github.com/MLton/mlton/commit/d8eeb9f009814e2d6ab09589717789736902ec50 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/main/main.fun Log Message: ----------- Only display control flags information at `-verbose 3` The exhaustive list of control-flags is distracting at the commonly used `-verbose 2` and has rarely (if ever) been useful. Commit: b63c1f149a095b198a428f2f4bef824daa1cf554 https://github.com/MLton/mlton/commit/b63c1f149a095b198a428f2f4bef824daa1cf554 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/main/main.fun Log Message: ----------- Include MLton version in top-level starting/finished message Commit: d891688280579c81c9b67fbb074e73996bf376fa https://github.com/MLton/mlton/commit/d891688280579c81c9b67fbb074e73996bf376fa Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M lib/mlton/basic/parse.sig M lib/mlton/basic/parse.sml M mlton/atoms/c-function.fun M mlton/atoms/const.fun M mlton/atoms/prim.fun M mlton/atoms/word-size.fun M mlton/atoms/word-x.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/xml/xml-tree.fun Log Message: ----------- Consolidate IL utility parsers into `structure Parse` in MLton library Commit: b98e91a9b8b9b99c161be6eb0eeb1017150854b1 https://github.com/MLton/mlton/commit/b98e91a9b8b9b99c161be6eb0eeb1017150854b1 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M lib/mlton/basic/parse.sml Log Message: ----------- Occurrences of `(*` in string constants do not start comments Commit: 83f80784a190153054c4ccdd579fe34f5eba20a3 https://github.com/MLton/mlton/commit/83f80784a190153054c4ccdd579fe34f5eba20a3 Author: Matthew Fluet <mat...@gm...> Date: 2019-02-16 (Sat, 16 Feb 2019) Changed paths: M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- Don't place strings with comment chars in comments in SSA/SSA2 ILs Commit: 9ba427ade19098677d26a692b8fe96e0b92ca428 https://github.com/MLton/mlton/commit/9ba427ade19098677d26a692b8fe96e0b92ca428 Author: Matthew Fluet <Mat...@gm...> Date: 2019-02-17 (Sun, 17 Feb 2019) Changed paths: 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.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/machine.fun M mlton/backend/packed-representation.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/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.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/direct-exp.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/simplify.fun M mlton/ssa/simplify2.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 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 Log Message: ----------- Merge pull request #290 from MatthewFluet/il-parsers-refactor Refactor IL parsers Reimplement the SXML/SSA/SSA2 IL parsers in the corresponding `functor <IL>Tree`. This implementation places a `val parse: t Parse.t` for each IL component next to the corresponding `val layout: t -> Layout.t`. This will make it much easier to keep the layout and parser for each component in sync. This implementation uses a rather more monadic than applicative style of parser, which may be less efficient, but seems to be more maintainable (at least with the present set of parser combinators). This removes a lot of duplicate code, where each previous IL parser had separate (but identical) parsers for common atoms (e.g., constants (see 3d235ec), primimitives (see 87114c1)). Similarly, each previous IL parser had common code for parsing identifiers, handling the fact that each def and use of the same variable in a printed IL program must be mapped to the same ID object (see 80b3014). Overall, these are "best effort" parsers. The intention is that they can be used during development/debugging of IL optimizations. It will be useful to write tiny IL programs (ones much smaller than one gets from even the smallest source SML programs) and send them through the optimization; eg., exactly recreate the example program from a paper. There are some known corner cases, where a printed IL can generate an SML-style comment start; e.g.: val tuple_123: (t_456, t_456) tuple = (**_789, **_789) call L_987 (***_654 ()) This could be handled in the IL pretty-printers at a later date. Compare: https://github.com/MLton/mlton/compare/e025e741a8d3...9ba427ade190 |
From: Matthew F. <no...@gi...> - 2019-02-03 14:27:21
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 0de5cbe14e2da94ee696a7f1ae2b666a2c5f4525 https://github.com/MLton/mlton/commit/0de5cbe14e2da94ee696a7f1ae2b666a2c5f4525 Author: Hai Nguyen Van <hai...@lr...> Date: 2019-02-02 (Sat, 02 Feb 2019) Changed paths: M doc/guide/src/Users.adoc Log Message: ----------- Update USERS with Heron project Commit: e025e741a8d3dfd6efb3ad63f36041533e386654 https://github.com/MLton/mlton/commit/e025e741a8d3dfd6efb3ad63f36041533e386654 Author: Matthew Fluet <Mat...@gm...> Date: 2019-02-03 (Sun, 03 Feb 2019) Changed paths: M doc/guide/src/Users.adoc Log Message: ----------- Merge pull request #289 from EmptyStackExn/patch-1 Update USERS with Heron project Compare: https://github.com/MLton/mlton/compare/752467c48d84...e025e741a8d3 |
From: GitHub <no...@gi...> - 2019-01-16 20:58:25
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 3b72967f2efdcda496ef1d4a462d5afe4c9878bb https://github.com/MLton/mlton/commit/3b72967f2efdcda496ef1d4a462d5afe4c9878bb Author: Matthew Fluet <mat...@gm...> Date: 2019-01-11 (Fri, 11 Jan 2019) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add `-globalize-arrays {false|true}` compile-time option Commit: ecdb044466da413bac60c27c8a9bf0c5cb9cd183 https://github.com/MLton/mlton/commit/ecdb044466da413bac60c27c8a9bf0c5cb9cd183 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-11 (Fri, 11 Jan 2019) Changed paths: M mlton/ssa/constant-propagation.fun Log Message: ----------- Allow globalization of arrays Space-safety prohibits ConstantPropagation from globalizing all arrays that are allocated at most once by a program. In particular, because globals are live for the duration of the program, globalizing an `int list array` (for example) would not be safe-for-space: arbitrarily large lists may be stored in the array and never garbage collected (whereas, when the `int list array` is not globalized, it will be garbage collected when it is no longer live). On the other hand, globalizing an `int array` (with a constant length) is safe-for-space. However, previously, the globalization of a `val a: t array = Array_alloc[t] (l)` was conditioned on the smallness of `t array`. Furthermore, `Type.isSmall` returns `false` for arrays, so no array would be globalized. It is correct to globalize an array if `t` is small; note that to globalize `val a: t array = Array_alloc[t] (l)`, `l` (the length) must be globalized and must, therefore, be a constant and the array is of constant size. (This is Stephen Weeks's relaxed notion of safe-for-space, where the constant factor blowup can be chosen per program.) In practice, it may be better to limit globalization of arrays to ones with "small" length in addition to small element type. This commit allows a `val a: t array = Array_alloc[t] (l)` to be globalized if `-globalize-arrays true`, `t` is small, and `l` is globalized. Commit: a48f2157740c5863975420c4e56759c060730045 https://github.com/MLton/mlton/commit/a48f2157740c5863975420c4e56759c060730045 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-11 (Fri, 11 Jan 2019) Changed paths: M mlton/ssa/constant-propagation.fun Log Message: ----------- Simplify ConstantPropagation.Value.global{,s} functions Use standard Trace.trace and prep recursive calls. Commit: ed1fc83a567734f7211f37901eef3e2ea504b737 https://github.com/MLton/mlton/commit/ed1fc83a567734f7211f37901eef3e2ea504b737 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-11 (Fri, 11 Jan 2019) Changed paths: M mlton/ssa/constant-propagation.fun Log Message: ----------- Parameterize ConstantPropagation.Value.global by isSmallType Commit: a820082005eb37bb6a8903f09fff1c98c56febb0 https://github.com/MLton/mlton/commit/a820082005eb37bb6a8903f09fff1c98c56febb0 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-11 (Fri, 11 Jan 2019) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add `-globalize-small-type <n>` compile-time option Commit: da7d7ebfdaff3e8d7f7c83205be44b142e10fe69 https://github.com/MLton/mlton/commit/da7d7ebfdaff3e8d7f7c83205be44b142e10fe69 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-11 (Fri, 11 Jan 2019) Changed paths: M mlton/ssa/constant-propagation.fun Log Message: ----------- Add a extreme globalizeSmallType variants `-globalize-small-type 0` is the constant `false` function, which globalizes no references or arrays. `-globalize-small-type 1` is the previous `Type.isSmall` function, which returns false for all datatypes. `-globalize-small-type 9` is the constant `true` function, which is not safe-for-space. Commit: c7ab39daa0cfb7f94041862995ed44fb5eea07de https://github.com/MLton/mlton/commit/c7ab39daa0cfb7f94041862995ed44fb5eea07de Author: Matthew Fluet <mat...@gm...> Date: 2019-01-11 (Fri, 11 Jan 2019) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/constant-propagation.fun Log Message: ----------- Add `-globalize-refs {true|false}` compile-time option Commit: 9bdcc934dc26941d66873351e5c828ef12d6ba8b https://github.com/MLton/mlton/commit/9bdcc934dc26941d66873351e5c828ef12d6ba8b Author: Matthew Fluet <mat...@gm...> Date: 2019-01-11 (Fri, 11 Jan 2019) Changed paths: M mlton/ssa/constant-propagation.fun Log Message: ----------- Add "New Globals (<n>): ..." to ConstantPropagation diagnostics Commit: 92a0ded7b8f3d33196cd290b0518a132210ea246 https://github.com/MLton/mlton/commit/92a0ded7b8f3d33196cd290b0518a132210ea246 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-11 (Fri, 11 Jan 2019) Changed paths: M mlton/ssa/constant-propagation.fun Log Message: ----------- Prepare for implementing `isSmallType` variants via properties Commit: 04ae623c816f48500ce5b2420bb5d340579463bf https://github.com/MLton/mlton/commit/04ae623c816f48500ce5b2420bb5d340579463bf Author: Matthew Fluet <mat...@gm...> Date: 2019-01-11 (Fri, 11 Jan 2019) Changed paths: M mlton/ssa/constant-propagation.fun Log Message: ----------- Implement simple `isSmallType` variant via a property Commit: fa76804122b081c506acf3f9a28db0010402a5a2 https://github.com/MLton/mlton/commit/fa76804122b081c506acf3f9a28db0010402a5a2 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-11 (Fri, 11 Jan 2019) Changed paths: M mlton/ssa/constant-propagation.fun Log Message: ----------- Refactor to `mkIsSmallType` generator function Commit: 72fa80c1129477be35196f5e875a6002bafa0225 https://github.com/MLton/mlton/commit/72fa80c1129477be35196f5e875a6002bafa0225 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-11 (Fri, 11 Jan 2019) Changed paths: M mlton/ssa/constant-propagation.fun Log Message: ----------- Add `-globalize-small-type 2` variant `-globalize-small-type 2` treats datatypes with all nullary constructors as small. Commit: fdfce309e314d783d67aada6ca57c0c7a422abec https://github.com/MLton/mlton/commit/fdfce309e314d783d67aada6ca57c0c7a422abec Author: Matthew Fluet <mat...@gm...> Date: 2019-01-11 (Fri, 11 Jan 2019) Changed paths: M mlton/ssa/constant-propagation.fun Log Message: ----------- Rename `destroySmallType` to `destroyIsSmallType` Commit: cc7e84d92761cd9726aec8ba27e562b3f3fdb152 https://github.com/MLton/mlton/commit/cc7e84d92761cd9726aec8ba27e562b3f3fdb152 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-11 (Fri, 11 Jan 2019) Changed paths: M mlton/ssa/constant-propagation.fun Log Message: ----------- Add `-globalize-small-type 3` variant `-globalize-small-type 3` treats datatypes that have all constructor arguments satisfying `#isSmallType o (mkIsSmallType 1)` as small. Commit: dd13c6b23f0458e7154a56cd4c41e22c2931a835 https://github.com/MLton/mlton/commit/dd13c6b23f0458e7154a56cd4c41e22c2931a835 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-11 (Fri, 11 Jan 2019) Changed paths: M mlton/ssa/constant-propagation.fun Log Message: ----------- Code formatting in ConstantPropagation Commit: 7d3774c75087f12dea077180696f03582446edca https://github.com/MLton/mlton/commit/7d3774c75087f12dea077180696f03582446edca Author: Matthew Fluet <mat...@gm...> Date: 2019-01-11 (Fri, 11 Jan 2019) Changed paths: M mlton/ssa/constant-propagation.fun Log Message: ----------- Add `structure ConstantPropagation.Value.Raw` Fixes a bug (triggered by the `simple` benchmark with `-globalize-arrays true`) where the rawness of an array value was not properly propagated. Previously, the rawness of an array value was implemented as `bool option ref`, but coercing `ref NONE` to `ref NONE` would not remember the coercion when the first raw became `ref (SOME true)`. Now, a proper "flat lattice"-like `structure Raw` is used. Commit: fdc086b3d676faf4c27de981adca98cf22a1a08a https://github.com/MLton/mlton/commit/fdc086b3d676faf4c27de981adca98cf22a1a08a Author: Matthew Fluet <mat...@gm...> Date: 2019-01-11 (Fri, 11 Jan 2019) Changed paths: M mlton/ssa/constant-propagation.fun Log Message: ----------- Disallow globalization of IntInf and Thread types Technically, both IntInf and Thread should not be considered small types, as they can be of unbounded size (an IntInf can be represented by a sequence, while a Thread implicitly contains a stack). Note, an IntInf value can be globalized (as it is a constant), but an `IntInf.int ref` cannot. Commit: ff2961072c85d5785cacda66b9886f050d6161ae https://github.com/MLton/mlton/commit/ff2961072c85d5785cacda66b9886f050d6161ae Author: Matthew Fluet <mat...@gm...> Date: 2019-01-11 (Fri, 11 Jan 2019) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/constant-propagation.fun Log Message: ----------- Add `-globalize-small-int-inf {true|false}` compile-time option Allow previous behavior of globalizing `IntInf.int ref` values. Commit: 0847620cd2c59bfaba40c74865e85cfa94c473fc https://github.com/MLton/mlton/commit/0847620cd2c59bfaba40c74865e85cfa94c473fc Author: Matthew Fluet <mat...@gm...> Date: 2019-01-11 (Fri, 11 Jan 2019) Changed paths: M mlton/main/main.fun M mlton/ssa/constant-propagation.fun Log Message: ----------- Add `-globalize-small-type 4` variant `-globalize-small-type 4` uses RefFlatten's more precise notion of small/large types: build a graph of the dependencies between datatypes, force any (mutually) recursive datatypes to be large types, solve a fixed-point analysis of `Size.<=` constraints. Commit: 752467c48d840620c71b7f92feb4572c85bcce5e https://github.com/MLton/mlton/commit/752467c48d840620c71b7f92feb4572c85bcce5e Author: Matthew Fluet <Mat...@gm...> Date: 2019-01-16 (Wed, 16 Jan 2019) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/constant-propagation.fun Log Message: ----------- Merge pull request #288 from MatthewFluet/globalize-opt Alternate strategies for globalization in ConstantPropagation Extend globalization aspect of ConstantPropagation to support globalization of arrays and to support different "small type" strategies. Closes MLton/mlton#206. Space-safety prohibits ConstantPropagation from globalizing all arrays and refs that are allocated at most once by a program. In particular, because globals are live for the duration of the program, globalizing an `int list ref` (for example) would not be safe-for-space: an arbitrarily large list may be written to the reference and never be garbage collected (whereas, when the `int list ref` is not globalized, it will be garbage collected when it is no longer live). On the other hand, globalizing an `int ref` is safe-for-space. However, MLton previously used only a very conservative estimation for space safety. Only "small" types may be globalized, where smallness is defined as: fun isSmall t = case dest t of Array _ => false | Datatype _ => false | Ref t => isSmall t | Tuple ts => Vector.forall (ts, isSmall) | Vector _ => false | _ => true Note that no `Datatype` is small; this is conservative (since a recursive datatype could represent unbounded data), but prevents globalizing `bool ref`. Also, no `Array` is small; this is correct (because an `int array ref` should not be globalized), but the globalization of a `val a: t array = Array_alloc[t] (l)` was conditioned on the smallness of `t array`, not the smallness of `t`. It is correct to globalize an array if `t` were small; note that to globalize `val a: t array = Array_alloc[t] (l)`, `l` (the length) must be globalized and must, therefore, be a constant and the array is of constant size. (This is Stephen Weeks's relaxed notion of safe-for-space, where the constant factor blowup can be chosen per program.) This pull request adds support for alternate globalization strategies: * `-globalize-arrays {false|true}`: globalize arrays * `-globalize-refs {true|false}`: globalize refs * `-globalize-small-int-inf {true|false}`:globalize `IntInf` as a small type * `-globalize-small-type {1|0|2|3|4|9}`: strategies for classifying a type as "small": * `0`: constant `false` function (no types considered small) * `1`: no `Datatype` is considered small (original strategy) * `2`: `Datatype`s with all nullary constructors are considered small * `3`: `Datatype`s with all constructor arguments considered small according to strategy `2` are considered small * `4`: Fixed-point analysis of `Datatype`s to determine smallness * `9`: constant `true` function (all types considered small; not safe-for-space) The defaults correspond to the previous behavior. Unfortunately, additional globalization has little to no (positive) effect on benchmarks: MLton0 -- ~/devel/mlton/builds/20190106.115052-gfe996d4/bin/mlton MLton1 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 1 MLton2 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 2 MLton3 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 3 MLton4 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 4 MLton5 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 1 MLton6 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 2 MLton7 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 3 MLton8 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 4 run time ratio benchmark MLton0 MLton1 MLton2 MLton3 MLton4 MLton5 MLton6 MLton7 MLton8 DLXSimulator 1.00 1.00 1.03 1.00 1.00 0.99 1.00 1.01 1.01 checksum 1.00 1.00 1.13 1.14 1.13 1.00 1.12 1.13 1.14 flat-array 1.00 1.00 1.00 1.00 1.01 1.19 1.19 1.19 1.19 hamlet 1.00 1.00 1.02 1.01 1.01 1.00 0.96 0.97 0.97 imp-for 1.00 1.00 1.06 1.05 1.06 1.00 1.05 1.06 1.06 knuth-bendix 1.00 1.00 1.03 1.03 1.03 1.00 1.03 1.03 1.03 lexgen 1.00 0.99 1.05 0.99 1.03 1.04 1.03 1.02 1.07 model-elimination 1.00 1.01 1.02 1.02 1.02 1.00 1.03 1.02 1.03 peek 1.00 1.00 1.03 1.03 1.04 1.00 1.04 1.04 1.04 ray 1.00 1.03 0.99 0.99 1.01 0.99 0.99 0.99 0.98 raytrace 1.00 1.03 1.00 1.02 1.03 0.99 1.00 1.01 1.01 simple 1.00 0.98 0.99 1.00 0.99 0.97 0.97 0.96 0.97 tak 1.00 1.00 1.04 1.03 1.10 1.01 1.02 1.08 1.00 wc-scanStream 1.00 1.00 1.06 1.06 1.06 1.00 1.04 1.06 1.07 Note that `MLton0` and `MLton1` generate identical code (modulo the random magic number), so the slowdowns in `ray` and `raytrace` are noise, which also suggests that slowdowns/speedups of <= 3% are also likely noise. The slowdown in `flat-array` with `-globalize-array true` is explained as follows. The `flat-array` benchmark uses `Vector.tabulate` to allocate a vector that is used for all iterations of the benchmark. With `-globalize-array false`, the array is not globalized, and in SSA/SSA2, we have: x_1212: ((word32, word32) tuple) array = prim Array_alloc((word32, word32) tuple) (global_138 (*0xF4240*)) ... x_757: ((word32, word32) tuple) vector = prim Array_toVector((word32, word32) tuple) (x_1212) ... x_1287: (word32, word32) tuple = prim Vector_sub((word32, word32) tuple) (x_757, x_1283) but with `-globalize-array true`, the array is globalized, and in SSA/SS2, we have: global_490: ((word32, word32) tuple) array = prim Array_alloc((word32, word32) tuple) (global_138 (*0xF4240*)) ... x_757: ((word32, word32) tuple) vector = prim Array_toVector((word32, word32) tuple) (global_490) ... x_1286: (word32, word32) tuple = prim Vector_sub((word32, word32) tuple) (x_757, x_1282) At RSSA, the `Array_toVector` becomes a header update and the array variable is cast/copy-propagated for the vector variable; with `-globalize-arrays false`, we have L_531 (x_1212: Objptr (opt_11)) CReturn {func = {..., target = GC_sequenceAllocate}} = ... OW64 (x_1212, ~8): Word64 := opt_12 ... x_1354: Word32 = XW32 (Cast (x_1212, Objptr (opt_12)), x_1283, 8, 0) x_1353: Word32 = XW32 (Cast (x_1212, Objptr (opt_12)), x_1283, 8, 4) but with `-globalize-arrays true`, we have L_488 (global_490: Objptr (opt_7)) CReturn {func = {..., target = GC_sequenceAllocate}} = ... OW64 (global_490, ~8): Word64 := opt_12 ... x_1353: Word32 = XW32 (Cast (global_490, Objptr (opt_12)), x_1282, 8, 0) x_1352: Word32 = XW32 (Cast (global_490, Objptr (opt_12)), x_1282, 8, 4) Finally, with `-globalize-arrays false`, `x_1212` becomes a local (because the loops to initialize and use the vector are non-allocating): RW32(2): Word32 = XW32 (Cast (RP(0): Objptr (opt_11), Objptr (opt_12)), RW64(0): Word64, 8, 0): Word32 RW32(3): Word32 = XW32 (Cast (RP(0): Objptr (opt_11), Objptr (opt_12)), RW64(0): Word64, 8, 4): Word32 but with `-globalize-arrays true`: RW32(2): Word32 = XW32 (Cast (glob {index = 1, isRoot = true, ty = Objptr (opt_7)}, Objptr (opt_12)), RW64(0): Word64, 8, 0): Word32 RW32(3): Word32 = XW32 (Cast (glob {index = 1, isRoot = true, ty = Objptr (opt_7)}, Objptr (opt_12)), RW64(0): Word64, 8, 4): Word32 The innermost loop of the benchmark goes from indexing a sequence stored in a local (`RP(0)`) to indexing a sequence stored in a global (`GP(1)`). All of the codegens should implement the former by using a hardware register for `RP(0)`, but will implement the latter with a memory read. In light of the above, and related to MLton/mlton#218, it may be beneficial to "deglobalize" object pointer globals; that is, in RSSA functions that have multiple accesses through the same object pointer global (particularly within loops) could be translated to copy the global to a local. The slowdown in `checksum` is less easily explained. The only new objects globalized with `-globalize-small-type 2` as compared to `-globalize-small-type 1` are two `bool ref` objects, corresponding to the `exiting` flag of `basis-library/mlton/exit.sml` and the `staticIsInUse` flag of `basis-library/util/one.sml` used by `Int.fmt`. That small change seems to lead to code layout and cache effects that result in the slowdown, because the assembly code is not substantial different. With `-enable-pass machineSuffle` and `-seed-rand <w>`, one can perturb the code layout and observe that the slowdowns are not universal: MLton0 -- ~/devel/mlton/builds/20190106.115052-gfe996d4/bin/mlton MLton1 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 1 MLton2 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 1 -enable-pass machineShuffle -seed-rand 42424242 MLton3 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 1 -enable-pass machineShuffle -seed-rand deadbeef MLton4 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 2 MLton5 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 2 -enable-pass machineShuffle -seed-rand 42424242 MLton6 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 2 -enable-pass machineShuffle -seed-rand deadbeef MLton7 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 3 MLton8 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 3 -enable-pass machineShuffle -seed-rand 42424242 MLton9 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 3 -enable-pass machineShuffle -seed-rand deadbeef MLton10 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 4 MLton11 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 4 -enable-pass machineShuffle -seed-rand 42424242 MLton12 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 4 -enable-pass machineShuffle -seed-rand deadbeef MLton13 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 1 MLton14 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 1 -enable-pass machineShuffle -seed-rand 42424242 MLton15 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 1 -enable-pass machineShuffle -seed-rand deadbeef MLton16 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 2 MLton17 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 2 -enable-pass machineShuffle -seed-rand 42424242 MLton18 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 2 -enable-pass machineShuffle -seed-rand deadbeef MLton19 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 3 MLton20 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 3 -enable-pass machineShuffle -seed-rand 42424242 MLton21 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 3 -enable-pass machineShuffle -seed-rand deadbeef MLton22 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 4 MLton23 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 4 -enable-pass machineShuffle -seed-rand 42424242 MLton24 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 4 -enable-pass machineShuffle -seed-rand deadbeef run time ratio benchmark MLton0 MLton1 MLton2 MLton3 MLton4 MLton5 MLton6 MLton7 MLton8 MLton9 MLton10 MLton11 MLton12 MLton13 MLton14 MLton15 MLton16 MLton17 MLton18 MLton19 MLton20 MLton21 MLton22 MLton23 MLton24 checksum 1.00 1.00 1.00 1.01 1.14 1.01 1.00 1.14 1.01 1.01 1.14 1.00 1.04 1.00 1.00 1.00 1.14 1.00 1.01 1.16 1.00 1.01 1.15 1.00 1.01 flat-array 1.00 1.01 1.02 1.00 1.00 1.01 1.01 1.03 1.01 1.01 1.01 1.01 1.01 1.23 1.19 1.19 1.19 1.20 1.19 1.20 1.20 1.19 1.20 1.19 1.20 hamlet 1.00 0.99 1.00 0.99 1.01 1.01 1.00 1.01 1.03 1.01 1.01 1.02 1.01 1.00 1.00 0.99 0.95 0.95 0.94 0.97 0.96 0.96 0.98 0.98 0.99 imp-for 1.00 1.00 1.05 1.05 1.05 1.02 1.00 1.05 0.99 1.00 1.05 1.00 1.01 1.00 1.05 1.05 1.05 0.99 1.00 1.05 1.00 1.00 1.05 1.00 0.99 lexgen 1.00 0.97 1.00 0.97 1.03 1.03 1.01 1.04 0.99 0.95 0.99 0.99 0.95 0.97 0.98 0.95 0.96 1.01 0.98 1.00 1.04 0.95 0.96 1.00 0.95 peek 1.00 1.00 1.00 1.01 1.03 1.01 1.04 1.03 1.01 1.04 1.03 1.01 1.03 1.00 1.00 1.01 1.04 1.01 1.05 1.03 1.01 1.04 1.04 1.00 1.04 simple 1.00 1.01 1.01 1.00 1.00 0.99 1.02 1.00 0.99 1.00 1.00 1.00 1.00 0.98 0.97 0.99 0.98 0.97 0.99 0.97 0.99 0.98 0.98 0.98 0.99 tak 1.00 0.99 0.90 1.00 1.05 0.90 0.99 1.02 0.89 0.99 1.04 0.90 1.00 0.99 0.89 0.99 0.99 0.90 0.99 1.01 0.90 1.00 1.00 0.90 1.00 wc-scanStream 1.00 1.01 1.01 1.03 1.06 1.02 1.03 1.05 1.02 1.02 1.04 1.01 1.00 1.01 1.01 1.00 1.06 1.01 1.00 1.07 1.01 1.00 1.05 1.03 1.02 Note that while `checksum` with MLton4 has a slowdown, `checksum` with MLton5 and MLton6 (which are identical up to shuffling of the functions and basic blocks at the MachineIR) do not have a slowdown. Similarly `tak` with MLton0 and MLton1 have similar running time, but `tak` with MLton3 has a speedup. On the other hand, `flat-array`'s slowdowns with `-globalize-arrays true` are not due to code layout effects. `hamlet` may have a slight speedup with `-globalize-arrays true`, but that is significantly outweighted by the slowdown in `flat-array`. The conclusion is to leave the defaults corresponding to the original behavior. Full benchmark results: MLton0 -- ~/devel/mlton/builds/20190106.115052-gfe996d4/bin/mlton MLton1 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 1 MLton2 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 2 MLton3 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 3 MLton4 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays false -globalize-refs true -globalize-small-type 4 MLton5 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 1 MLton6 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 2 MLton7 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 3 MLton8 -- ~/devel/mlton/builds/20190111.182738-g0847620/bin/mlton -globalize-arrays true -globalize-refs true -globalize-small-type 4 run time ratio benchmark MLton0 MLton1 MLton2 MLton3 MLton4 MLton5 MLton6 MLton7 MLton8 DLXSimulator 1.00 1.00 1.03 1.00 1.00 0.99 1.00 1.01 1.01 barnes-hut 1.00 1.01 1.01 1.02 1.01 1.01 1.01 1.02 1.01 boyer 1.00 1.00 1.01 1.01 1.02 1.00 1.01 1.01 1.01 checksum 1.00 1.00 1.13 1.14 1.13 1.00 1.12 1.13 1.14 count-graphs 1.00 1.00 0.99 1.01 0.99 1.00 1.00 1.00 0.99 even-odd 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 fft 1.00 1.00 1.01 1.02 1.02 1.01 1.01 1.00 1.01 fib 1.00 1.00 1.00 1.00 1.01 1.00 1.00 1.00 1.00 flat-array 1.00 1.00 1.00 1.00 1.01 1.19 1.19 1.19 1.19 hamlet 1.00 1.00 1.02 1.01 1.01 1.00 0.96 0.97 0.97 imp-for 1.00 1.00 1.06 1.05 1.06 1.00 1.05 1.06 1.06 knuth-bendix 1.00 1.00 1.03 1.03 1.03 1.00 1.03 1.03 1.03 lexgen 1.00 0.99 1.05 0.99 1.03 1.04 1.03 1.02 1.07 life 1.00 1.00 1.00 1.00 1.00 1.01 1.01 1.00 1.00 logic 1.00 1.00 0.98 0.99 0.99 1.00 0.98 0.99 1.00 mandelbrot 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 matrix-multiply 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.01 1.00 md5 1.00 1.00 0.99 0.99 0.99 1.00 0.99 0.99 0.99 merge 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 mlyacc 1.00 1.01 1.01 1.01 1.01 1.00 0.99 0.99 1.01 model-elimination 1.00 1.01 1.02 1.02 1.02 1.00 1.03 1.02 1.03 mpuz 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 nucleic 1.00 1.01 1.00 1.00 0.99 1.00 0.99 0.99 1.00 output1 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 peek 1.00 1.00 1.03 1.03 1.04 1.00 1.04 1.04 1.04 psdes-random 1.00 1.00 1.00 1.00 1.00 1.00 1.01 1.00 1.00 ratio-regions 1.00 0.99 0.98 0.98 1.01 1.01 0.99 1.00 1.01 ray 1.00 1.03 0.99 0.99 1.01 0.99 0.99 0.99 0.98 raytrace 1.00 1.03 1.00 1.02 1.03 0.99 1.00 1.01 1.01 simple 1.00 0.98 0.99 1.00 0.99 0.97 0.97 0.96 0.97 smith-normal-form 1.00 1.00 1.01 0.99 1.00 1.00 1.00 1.00 1.00 string-concat 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 tailfib 1.00 1.00 1.00 0.99 1.00 1.00 1.00 1.00 1.00 tak 1.00 1.00 1.04 1.03 1.10 1.01 1.02 1.08 1.00 tensor 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 tsp 1.00 1.00 1.00 1.00 1.00 0.99 1.00 1.00 1.00 tyan 1.00 1.00 1.00 1.01 1.01 1.01 1.01 1.01 1.01 vector-rev 1.00 0.99 0.99 0.98 0.98 0.98 0.99 0.98 0.98 vector32-concat 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 vector64-concat 1.00 1.00 1.00 1.00 1.00 0.99 1.00 1.00 0.99 vliw 1.00 0.98 1.00 1.01 1.00 1.00 0.98 0.98 0.98 wc-input1 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 wc-scanStream 1.00 1.00 1.06 1.06 1.06 1.00 1.04 1.06 1.07 zebra 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 zern 1.00 1.02 1.02 0.99 1.01 0.99 0.99 1.01 0.99 size benchmark MLton0 MLton1 MLton2 MLton3 MLton4 MLton5 MLton6 MLton7 MLton8 DLXSimulator 209,076 209,076 209,140 209,140 209,140 209,076 208,836 208,340 208,340 barnes-hut 176,199 176,199 176,071 176,071 176,071 176,199 176,071 176,071 176,071 boyer 243,369 243,369 243,289 243,289 243,289 243,369 243,289 243,289 243,289 checksum 117,561 117,561 117,433 117,433 117,433 117,561 117,433 117,433 117,433 count-graphs 145,065 145,065 145,017 145,017 145,017 145,065 144,937 144,937 144,937 even-odd 117,529 117,529 117,433 117,433 117,433 117,529 117,433 117,433 117,433 fft 142,307 142,307 141,315 141,315 141,315 142,307 141,315 141,315 141,315 fib 117,449 117,449 117,321 117,321 117,321 117,449 117,321 117,321 117,321 flat-array 117,177 117,177 117,049 117,049 117,049 117,193 117,081 117,081 117,081 hamlet 1,434,228 1,434,228 1,433,220 1,433,220 1,433,220 1,434,228 1,432,564 1,427,956 1,427,396 imp-for 117,241 117,241 117,145 117,145 117,145 117,241 117,145 117,145 117,145 knuth-bendix 186,116 186,116 186,212 186,212 186,212 186,116 186,212 186,212 186,212 lexgen 290,931 290,931 290,819 290,819 290,819 290,931 290,819 290,819 290,819 life 141,113 141,113 141,065 141,065 141,065 141,113 141,065 141,065 141,065 logic 197,417 197,417 197,273 197,273 197,273 197,417 197,273 197,273 197,273 mandelbrot 117,273 117,273 117,177 117,177 117,177 117,273 117,177 117,177 117,177 matrix-multiply 119,577 119,577 119,417 119,417 119,417 119,577 119,417 119,417 119,417 md5 144,676 144,676 144,500 144,500 144,500 144,676 144,500 144,500 144,500 merge 118,953 118,953 118,857 118,857 118,857 118,953 118,857 118,857 118,857 mlyacc 643,555 643,555 643,651 643,651 643,651 643,555 643,651 643,651 643,475 model-elimination 796,054 796,054 793,958 793,798 793,798 796,054 794,166 792,246 792,246 mpuz 123,545 123,545 123,481 123,481 123,481 123,545 123,481 123,481 123,481 nucleic 297,249 297,249 297,233 297,233 297,233 297,249 297,233 297,233 297,233 output1 151,768 151,768 149,848 149,848 149,848 151,768 149,848 149,848 149,848 peek 150,164 150,164 150,132 150,132 150,132 150,164 150,132 150,132 150,132 psdes-random 121,545 121,545 121,401 121,401 121,401 121,545 121,401 121,401 121,401 ratio-regions 144,137 144,137 144,169 144,169 144,169 144,137 144,169 144,169 144,169 ray 250,058 250,058 250,218 250,218 250,218 250,058 249,818 249,066 249,066 raytrace 368,988 368,988 368,108 368,108 368,108 368,956 367,868 367,468 367,468 simple 345,205 345,205 345,381 345,381 345,381 329,557 329,557 329,317 329,317 smith-normal-form 279,837 279,837 279,645 279,645 279,645 279,837 279,341 279,341 279,341 string-concat 119,129 119,129 119,033 119,033 119,033 119,209 119,033 119,033 119,033 tailfib 117,273 117,273 117,177 117,177 117,177 117,273 117,177 117,177 117,177 tak 117,449 117,449 117,321 117,321 117,321 117,449 117,321 117,321 117,321 tensor 179,292 179,292 176,908 176,908 176,908 179,292 176,908 176,908 176,908 tsp 158,860 158,860 158,668 158,668 158,668 158,860 158,668 158,668 158,668 tyan 223,588 223,588 223,044 223,044 223,044 223,588 223,044 223,044 223,044 vector-rev 118,105 118,105 118,009 118,009 118,009 118,153 117,977 117,977 117,977 vector32-concat 118,297 118,297 118,201 118,201 118,201 118,329 118,185 118,185 118,185 vector64-concat 118,329 118,329 118,169 118,169 118,169 118,329 118,217 118,217 118,217 vliw 505,509 505,509 503,013 503,013 503,013 505,637 500,917 497,957 497,957 wc-input1 179,051 179,051 178,923 178,923 178,923 179,051 178,923 178,923 178,923 wc-scanStream 188,155 188,155 188,027 188,027 188,027 188,155 188,027 188,027 188,027 zebra 225,364 225,364 225,220 225,220 225,220 225,364 225,220 225,220 225,220 zern 153,241 153,241 152,521 152,521 152,521 153,241 152,585 152,585 152,585 compile time benchmark MLton0 MLton1 MLton2 MLton3 MLton4 MLton5 MLton6 MLton7 MLton8 DLXSimulator 3.19 3.14 3.45 3.51 3.02 3.27 3.18 3.45 3.24 barnes-hut 2.93 2.94 2.96 2.97 3.06 2.92 2.96 2.93 2.96 boyer 3.36 3.49 3.48 3.32 3.42 3.40 3.52 3.53 3.49 checksum 2.53 2.56 2.47 2.56 2.57 2.46 2.56 2.54 2.62 count-graphs 2.68 2.69 2.71 2.80 2.80 2.79 2.67 2.69 2.76 even-odd 2.45 2.56 2.46 2.56 2.48 2.50 2.48 2.55 2.57 fft 2.64 2.57 2.62 2.66 2.35 2.68 2.60 2.54 2.62 fib 2.46 2.46 2.58 2.48 2.55 2.45 2.55 2.54 2.46 flat-array 2.52 2.56 2.55 2.56 2.55 2.54 2.53 2.56 2.55 hamlet 15.27 15.74 14.48 14.35 14.48 15.63 15.21 14.88 15.04 imp-for 2.48 2.56 2.52 2.55 2.55 2.34 2.42 2.48 2.54 knuth-bendix 2.89 2.90 2.90 3.01 3.02 2.93 3.01 3.13 2.99 lexgen 3.40 3.88 3.76 3.82 3.74 3.62 3.50 3.81 3.71 life 2.66 2.71 2.70 2.74 2.72 2.64 2.74 2.68 2.60 logic 3.06 3.05 3.11 3.12 3.00 3.13 3.14 2.92 2.83 mandelbrot 2.51 2.54 2.53 2.58 2.57 2.53 2.56 2.55 2.45 matrix-multiply 2.48 2.50 2.52 2.49 2.57 2.60 2.60 2.57 2.53 md5 2.65 2.68 2.78 2.58 2.78 2.80 2.58 2.80 2.69 merge 2.47 2.49 2.58 2.57 2.55 2.49 2.57 2.50 2.52 mlyacc 7.85 7.94 8.00 7.98 7.90 7.69 8.05 8.09 7.54 model-elimination 7.08 7.98 7.62 7.11 7.40 8.24 7.84 7.96 8.15 mpuz 2.34 2.61 2.60 2.56 2.53 2.62 2.42 2.53 2.52 nucleic 4.06 4.17 4.07 4.05 4.08 4.06 4.28 4.33 4.14 output1 2.69 2.68 2.52 2.58 2.77 2.79 2.78 2.57 2.77 peek 2.74 2.78 2.58 2.80 2.80 2.73 2.70 2.68 2.72 psdes-random 2.56 2.53 2.49 2.48 2.50 2.48 2.53 2.64 2.50 ratio-regions 2.80 2.82 2.62 2.88 2.86 2.89 2.81 2.80 2.79 ray 3.34 3.62 3.69 3.47 3.45 3.60 3.48 3.37 3.40 raytrace 4.55 4.88 4.47 4.32 4.64 4.30 4.48 4.43 4.50 simple 4.01 4.07 4.04 4.00 3.91 3.83 3.77 3.81 3.74 smith-normal-form 3.75 3.60 3.82 3.58 3.40 3.79 3.60 3.58 3.58 string-concat 2.46 2.66 2.54 2.45 2.57 2.56 2.46 2.51 2.49 tailfib 2.44 2.54 2.53 2.57 2.50 2.57 2.57 2.36 2.54 tak 2.45 2.57 2.56 2.63 2.47 2.44 2.43 2.44 2.52 tensor 3.05 3.16 3.07 3.15 3.10 3.32 3.18 3.16 3.13 tsp 2.81 2.79 2.57 2.74 2.76 2.75 2.84 2.84 2.82 tyan 3.27 3.06 3.38 3.26 3.35 3.23 3.22 3.22 3.24 vector-rev 2.49 2.57 2.56 2.33 2.61 2.40 2.52 2.49 2.54 vector32-concat 2.53 2.49 2.52 2.47 2.55 2.63 2.49 2.49 2.51 vector64-concat 2.48 2.46 2.50 2.52 2.48 2.54 2.46 2.47 2.48 vliw 5.63 5.63 5.64 6.14 5.43 6.26 5.78 6.17 6.16 wc-input1 3.06 2.96 2.95 2.98 2.91 2.87 2.90 2.97 2.96 wc-scanStream 3.01 2.97 3.02 2.95 3.06 3.04 3.03 3.01 3.09 zebra 3.30 3.37 3.36 3.26 3.34 3.51 3.31 3.26 3.34 zern 2.69 2.74 2.62 2.64 2.72 2.74 2.73 2.43 2.70 run time benchmark MLton0 MLton1 MLton2 MLton3 MLton4 MLton5 MLton6 MLton7 MLton8 DLXSimulator 32.67 32.69 33.65 32.71 32.53 32.50 32.63 32.84 32.92 barnes-hut 28.33 28.63 28.64 28.85 28.59 28.50 28.71 28.78 28.61 boyer 55.98 56.01 56.81 56.75 56.82 56.08 56.29 56.72 56.76 checksum 25.35 25.39 28.74 28.79 28.64 25.39 28.42 28.68 28.87 count-graphs 39.96 39.98 39.51 40.23 39.38 40.13 40.16 39.92 39.75 even-odd 39.09 39.07 39.09 39.06 39.08 39.14 39.10 39.09 39.09 fft 30.56 30.69 30.75 31.05 31.20 30.98 30.86 30.62 30.77 fib 17.70 17.75 17.77 17.77 17.83 17.77 17.74 17.67 17.77 flat-array 23.60 23.54 23.65 23.70 23.82 28.18 28.09 28.02 28.01 hamlet 39.69 39.77 40.32 40.20 40.20 39.72 38.00 38.70 38.68 imp-for 24.40 24.44 25.78 25.74 25.79 24.51 25.73 25.98 25.84 knuth-bendix 34.10 34.09 35.05 34.97 35.03 34.16 35.02 35.11 35.07 lexgen 34.22 33.77 35.88 33.88 35.27 35.64 35.09 34.93 36.52 life 38.70 38.80 38.76 38.76 38.89 38.90 38.91 38.74 38.84 logic 35.01 34.93 34.44 34.82 34.82 35.06 34.47 34.77 34.93 mandelbrot 35.78 35.77 35.79 35.80 35.81 35.82 35.79 35.78 35.81 matrix-multiply 29.74 29.80 29.82 29.89 29.79 29.72 29.84 29.90 29.86 md5 28.38 28.39 28.04 28.05 28.01 28.42 28.12 28.14 27.98 merge 32.55 32.45 32.41 32.44 32.59 32.48 32.41 32.56 32.40 mlyacc 32.76 33.01 32.94 33.14 33.23 32.83 32.52 32.49 33.11 model-elimination 38.05 38.26 38.89 38.72 38.80 38.09 39.11 38.97 39.36 mpuz 29.94 29.86 29.88 29.91 29.89 29.91 29.89 29.86 29.90 nucleic 33.73 33.91 33.60 33.68 33.35 33.74 33.40 33.47 33.58 output1 30.01 30.01 29.99 30.01 30.02 30.06 29.99 30.10 29.91 peek 33.58 33.60 34.75 34.63 34.78 33.61 34.79 34.78 34.86 psdes-random 33.84 33.91 33.83 33.86 33.91 33.88 34.16 33.91 33.91 ratio-regions 49.08 48.63 48.33 48.33 49.40 49.45 48.70 48.95 49.45 ray 37.55 38.58 37.18 37.06 37.80 37.04 37.19 37.08 36.65 raytrace 34.20 35.34 34.35 34.94 35.23 34.00 34.08 34.61 34.52 simple 29.73 29.25 29.47 29.64 29.51 28.96 28.84 28.57 28.86 smith-normal-form 39.88 39.79 40.38 39.56 39.99 39.92 39.93 39.85 39.88 string-concat 91.43 91.56 91.68 91.40 91.65 91.58 91.75 91.50 91.36 tailfib 38.06 38.06 37.93 37.85 37.90 38.12 38.00 37.98 37.87 tak 30.73 30.77 31.96 31.60 33.85 30.94 31.41 33.22 30.87 tensor 39.62 39.59 39.67 39.70 39.70 39.54 39.71 39.76 39.67 tsp 37.88 37.80 37.84 37.79 37.75 37.62 37.86 37.99 37.82 tyan 30.48 30.45 30.55 30.86 30.79 30.78 30.74 30.85 30.79 vector-rev 27.00 26.60 26.61 26.44 26.55 26.37 26.68 26.53 26.39 vector32-concat 82.46 82.52 82.56 82.72 82.43 82.56 82.37 82.30 82.22 vector64-concat 91.66 91.86 91.57 91.77 91.63 91.13 91.54 91.42 91.13 vliw 28.91 28.43 28.94 29.05 28.90 28.82 28.29 28.27 28.44 wc-input1 43.95 43.81 43.87 43.95 43.86 43.93 43.95 43.89 43.79 wc-scanStream 21.63 21.64 22.96 23.03 23.02 21.65 22.51 22.89 23.17 zebra 30.39 30.46 30.32 30.29 30.28 30.37 30.37 30.36 30.39 zern 32.37 33.09 33.05 32.00 32.71 31.99 32.04 32.83 31.96 Compare: https://github.com/MLton/mlton/compare/fe996d4ea1e5...752467c48d84 **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019. |
From: GitHub <no...@gi...> - 2019-01-06 11:51:04
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 5d80a5cd572b1238e4edae8e2a2b99d8bbb47a82 https://github.com/MLton/mlton/commit/5d80a5cd572b1238e4edae8e2a2b99d8bbb47a82 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-05 (Sat, 05 Jan 2019) Changed paths: M regression/real.sml Log Message: ----------- Improve `real` regression test Previously, the `real.sml` regression test would raise an uncaught `Fail` exception on a test failure, which leads to unhelpfully large diffs when run by the `bin/regression` script. Now, the `real.sml` regression test prints a short message on a test failure and continues the execution. Closes MLton/mlton#36. Commit: 33fa77180d72f2bccca582e402b8e9bccac64832 https://github.com/MLton/mlton/commit/33fa77180d72f2bccca582e402b8e9bccac64832 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-05 (Sat, 05 Jan 2019) Changed paths: M regression/real.amd64-darwin.ok M regression/real.amd64-linux.ok M regression/real.ok M regression/real.sml A regression/real.x86-linux.ok Log Message: ----------- Improve `real` regression test Restore more informative output regarding operations; helps to make it easier to understand low-order bit differences. Commit: fe82573282267a2c726a84bfcced2f46010289b0 https://github.com/MLton/mlton/commit/fe82573282267a2c726a84bfcced2f46010289b0 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-05 (Sat, 05 Jan 2019) Changed paths: M bin/regression Log Message: ----------- Support per-os and per-arch `.ok` files in `./bin/regression` Some regression output files can be consolidated by os or arch, rather than by platform. Commit: 86a805a8f8ba9f0420e48cf1480d8dd16a6adaaf https://github.com/MLton/mlton/commit/86a805a8f8ba9f0420e48cf1480d8dd16a6adaaf Author: Matthew Fluet <mat...@gm...> Date: 2019-01-05 (Sat, 05 Jan 2019) Changed paths: R regression/real-basic.x86-cygwin.ok R regression/real-basic.x86-darwin.ok R regression/real-basic.x86-freebsd.ok R regression/real-basic.x86-hurd.ok R regression/real-basic.x86-linux.ok R regression/real-basic.x86-mingw.ok A regression/real-basic.x86.ok Log Message: ----------- Consolidate `real-basic.x86-*.ok` regression outputs Commit: dcdef3fcf51b25952560bd5b967c5e15240f213e https://github.com/MLton/mlton/commit/dcdef3fcf51b25952560bd5b967c5e15240f213e Author: Matthew Fluet <mat...@gm...> Date: 2019-01-05 (Sat, 05 Jan 2019) Changed paths: M bin/regression Log Message: ----------- Determine `TARGET_{ARCH,OS}` from `-show path-map` in `bin/regression` This makes it easier to test x86-linux on amd64-linux. Commit: 78d35f60926040f94a03b681063b49e6e53240d9 https://github.com/MLton/mlton/commit/78d35f60926040f94a03b681063b49e6e53240d9 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-05 (Sat, 05 Jan 2019) Changed paths: M bin/regression Log Message: ----------- Determine `OBJPTR_REP` from `-show path-map` in `bin/regression` A number of regression tests have output that only differ due to 32bit vs 64bit platforms. Supporting per-OBJPTR_REP `.ok` files will allow some per-platform output files to be consolidated. See MLton/mlton#259. Commit: 89bd87ccd2014743f273db3cedc5b6a403506d06 https://github.com/MLton/mlton/commit/89bd87ccd2014743f273db3cedc5b6a403506d06 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-05 (Sat, 05 Jan 2019) Changed paths: R regression/size.amd64-linux.ok M regression/size.ok A regression/size.rep32.ok A regression/size.rep64.ok Log Message: ----------- Consolidate `size` regression test output by `OBJPTR_REP` Partially fixes MLton/mlton#259. Commit: a1b6987e247290c4ebb66c4d127ca6020d559af6 https://github.com/MLton/mlton/commit/a1b6987e247290c4ebb66c4d127ca6020d559af6 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-05 (Sat, 05 Jan 2019) Changed paths: R regression/int-inf.rep3.amd64-darwin.ok R regression/int-inf.rep3.amd64-linux.ok M regression/int-inf.rep3.ok A regression/int-inf.rep3.rep32.ok A regression/int-inf.rep3.rep64.ok R regression/int-inf.rep3.riscv-linux.ok R regression/int-inf.rep3.x86-linux.ok R regression/int-inf.rep4.amd64-darwin.ok R regression/int-inf.rep4.amd64-linux.ok M regression/int-inf.rep4.ok A regression/int-inf.rep4.rep32.ok A regression/int-inf.rep4.rep64.ok R regression/int-inf.rep4.riscv-linux.ok R regression/int-inf.rep4.x86-linux.ok Log Message: ----------- Consolidate `int-inf.rep{3,4}` regression test output by `OBJPTR_REP` Partially fixes MLton/mlton#259. Commit: de3838febda88c53f0d1989b8596b4130a35b56f https://github.com/MLton/mlton/commit/de3838febda88c53f0d1989b8596b4130a35b56f Author: Matthew Fluet <mat...@gm...> Date: 2019-01-05 (Sat, 05 Jan 2019) Changed paths: R regression/mlton.share.alpha-linux.ok R regression/mlton.share.amd64-darwin.ok R regression/mlton.share.amd64-freebsd.ok R regression/mlton.share.amd64-linux.ok R regression/mlton.share.amd64-mingw.ok R regression/mlton.share.ia64-linux.ok M regression/mlton.share.ok A regression/mlton.share.rep32.ok A regression/mlton.share.rep64.ok R regression/mlton.share.riscv-linux.ok Log Message: ----------- Consolidate `mlton.share` regression test output by `OBJPTR_REP` Partially fixes MLton/mlton#259. Commit: 06a3e70a82d7315be7ac2296ddadfc47e3ab9c81 https://github.com/MLton/mlton/commit/06a3e70a82d7315be7ac2296ddadfc47e3ab9c81 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-05 (Sat, 05 Jan 2019) Changed paths: M bin/regression Log Message: ----------- Determine `ALIGN` in `bin/regression` The `MLton.size` dependent regression tests have output that depend on both `OBJPTR_REP` and `ALIGN`. Supporting per-`${OBJPTR_REP}a${ALIGN}` `.ok` files will allow some per-platform output files to be consolidated. See MLton/mlton#259. Commit: 02f623a466d6d3b1ef51851aaad9f3457306a7a8 https://github.com/MLton/mlton/commit/02f623a466d6d3b1ef51851aaad9f3457306a7a8 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-05 (Sat, 05 Jan 2019) Changed paths: R regression/mlton.share.arm-linux.ok R regression/mlton.share.hppa-hpux.ok R regression/mlton.share.hppa-linux.ok R regression/mlton.share.ia64-hpux.ok R regression/mlton.share.mips-linux.ok R regression/mlton.share.rep32.ok A regression/mlton.share.rep32a4.ok A regression/mlton.share.rep32a8.ok R regression/mlton.share.s390-linux.ok R regression/mlton.share.sparc-linux.ok R regression/mlton.share.sparc-solaris.ok R regression/size.rep32.ok A regression/size.rep32a4.ok A regression/size.rep32a8.ok R regression/size.rep64.ok A regression/size.rep64a4.ok A regression/size.rep64a8.ok Log Message: ----------- Consolidate `size` and `mlton.share` output by `${OBJPTR_REP}a${ALIGN}` Partially fixes MLton/mlton#259. Commit: fe996d4ea1e51ac4697186599d4aa56375de1254 https://github.com/MLton/mlton/commit/fe996d4ea1e51ac4697186599d4aa56375de1254 Author: Matthew Fluet <Mat...@gm...> Date: 2019-01-06 (Sun, 06 Jan 2019) Changed paths: M bin/regression R regression/int-inf.rep3.amd64-darwin.ok R regression/int-inf.rep3.amd64-linux.ok M regression/int-inf.rep3.ok A regression/int-inf.rep3.rep32.ok A regression/int-inf.rep3.rep64.ok R regression/int-inf.rep3.riscv-linux.ok R regression/int-inf.rep3.x86-linux.ok R regression/int-inf.rep4.amd64-darwin.ok R regression/int-inf.rep4.amd64-linux.ok M regression/int-inf.rep4.ok A regression/int-inf.rep4.rep32.ok A regression/int-inf.rep4.rep64.ok R regression/int-inf.rep4.riscv-linux.ok R regression/int-inf.rep4.x86-linux.ok R regression/mlton.share.alpha-linux.ok R regression/mlton.share.amd64-darwin.ok R regression/mlton.share.amd64-freebsd.ok R regression/mlton.share.amd64-linux.ok R regression/mlton.share.amd64-mingw.ok R regression/mlton.share.arm-linux.ok R regression/mlton.share.hppa-hpux.ok R regression/mlton.share.hppa-linux.ok R regression/mlton.share.ia64-hpux.ok R regression/mlton.share.ia64-linux.ok R regression/mlton.share.mips-linux.ok M regression/mlton.share.ok A regression/mlton.share.rep32a4.ok A regression/mlton.share.rep32a8.ok A regression/mlton.share.rep64.ok R regression/mlton.share.riscv-linux.ok R regression/mlton.share.s390-linux.ok R regression/mlton.share.sparc-linux.ok R regression/mlton.share.sparc-solaris.ok R regression/real-basic.x86-cygwin.ok R regression/real-basic.x86-darwin.ok R regression/real-basic.x86-freebsd.ok R regression/real-basic.x86-hurd.ok R regression/real-basic.x86-linux.ok R regression/real-basic.x86-mingw.ok A regression/real-basic.x86.ok M regression/real.amd64-darwin.ok M regression/real.amd64-linux.ok M regression/real.ok M regression/real.sml A regression/real.x86-linux.ok R regression/size.amd64-linux.ok M regression/size.ok A regression/size.rep32a4.ok A regression/size.rep32a8.ok A regression/size.rep64a4.ok A regression/size.rep64a8.ok Log Message: ----------- Merge pull request #287 from MatthewFluet/regression-updates Updates for regression suite Highlights: * Improve `real.sml` regression test to print a short message on a test failure and continue execution (rather than raise an uncaught `Fail` exception and generate an unhelpfully large diff). Closes MLton/mlton#36. * Consolidate a number of regression test output files by `${OBJPTR_REP}a${ALIGN}` (rather than `${TARGET_ARCH}-${TARGET_OS}`. Closes MLton/mlton#259. Compare: https://github.com/MLton/mlton/compare/b0ccf5d6fded...fe996d4ea1e5 **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019. |
From: GitHub <no...@gi...> - 2019-01-03 15:52:42
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: cd8f1c7b61ae70f7ada4905cd738c08f6ad135fc https://github.com/MLton/mlton/commit/cd8f1c7b61ae70f7ada4905cd738c08f6ad135fc Author: Matthew Fluet <mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- Include number of globals in SSA and SSA2 IL stats Commit: 51d2073bd6a9ef74db95ccbf06051145d84c65cd https://github.com/MLton/mlton/commit/51d2073bd6a9ef74db95ccbf06051145d84c65cd Author: Matthew Fluet <mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M mlton/ssa/useless.fun Log Message: ----------- Include globals in Useless diagnostics Commit: 895215354ba16c5d34334d346b6a593a2afec224 https://github.com/MLton/mlton/commit/895215354ba16c5d34334d346b6a593a2afec224 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M doc/guide/src/Useless.adoc M mlton/ssa/useless.fun Log Message: ----------- Update Useless commentary Useless does not perform constant propagation. Commit: 158149847620dec1c0feabbd822107ca04e46955 https://github.com/MLton/mlton/commit/158149847620dec1c0feabbd822107ca04e46955 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M mlton/ssa/useless.fun Log Message: ----------- Move `Useless.filter` tracing adjacent to `Useless.filter` def Commit: a5f43f56faffd61d0d312498cc80bc4593c44304 https://github.com/MLton/mlton/commit/a5f43f56faffd61d0d312498cc80bc4593c44304 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M mlton/ssa/useless.fun Log Message: ----------- Trace `Useless.deepMakeUseful` Commit: 46258a35738763664eb296e0e54faf47085e5241 https://github.com/MLton/mlton/commit/46258a35738763664eb296e0e54faf47085e5241 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M mlton/ssa/useless.fun Log Message: ----------- Trace `Useless.Value.unify` Commit: 1b763e5cc882537de14e39cf7c117890da8caf3c https://github.com/MLton/mlton/commit/1b763e5cc882537de14e39cf7c117890da8caf3c Author: Matthew Fluet <mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M mlton/ssa/useless.fun Log Message: ----------- Eliminate unused component of `Useless.conInfo` Commit: bba7c5044d4b2bf8b873629ab0042bb98e94023f https://github.com/MLton/mlton/commit/bba7c5044d4b2bf8b873629ab0042bb98e94023f Author: Matthew Fluet <mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M mlton/ssa/useless.fun Log Message: ----------- Add `Useless.` prefix to `Property.initRaise` for `{con,tycon}Info` Commit: 3eaf18f8410250f57108ab73ecc2da15b39f8897 https://github.com/MLton/mlton/commit/3eaf18f8410250f57108ab73ecc2da15b39f8897 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M mlton/ssa/useless.fun Log Message: ----------- Clarify visited flag for `Useless.deepMakeUseful` Commit: bbbeda87f3867964195bda6b450be13eec5bbb46 https://github.com/MLton/mlton/commit/bbbeda87f3867964195bda6b450be13eec5bbb46 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M mlton/ssa/useless.fun Log Message: ----------- Add missing unification of `Array` useful component in `Useless` Commit: 623000f151876557d6f88ec3f8f251b2bb11170b https://github.com/MLton/mlton/commit/623000f151876557d6f88ec3f8f251b2bb11170b Author: Matthew Fluet <mat...@gm...> Date: 2018-11-27 (Tue, 27 Nov 2018) Changed paths: M mlton/ssa/useless.fun Log Message: ----------- Fix latent bug in Useless with `Ref_ref` and `Weak_new` primitives Consider the following program: val r1 : int ref = ref 1 val r2 : int ref = ref 2 val chk = r1 = r2 val () = print (concat [Bool.toString chk, "\n"]) A forthcoming update to the Useless optimization will not force the contents of `array`, `ref`, and `weak` types as useful when the type participates in `MLton_equal` (because polymorphic equality does not inspect the components of types with identity). This will make the contents of `r1` and `r2` useless; however, the values `1` and `2` likely remain useful elsewhere in the program. Hence, for `Ref_ref` and `Weak_new` primitives, it does not suffice to map over the arguments and retain those that are useful. For `Ref_ref` and `Weak_new`, if a `(unit) ref` or `(unit) weak` is being constructred, then ignore the existing arguments and build the object with `unitVar`. Commit: a78029ffcbc9f9b54a0b616d9050f8526bf3f226 https://github.com/MLton/mlton/commit/a78029ffcbc9f9b54a0b616d9050f8526bf3f226 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-27 (Tue, 27 Nov 2018) Changed paths: M mlton/ssa/useless.fun Log Message: ----------- Fix translation of `Array_uninitIsNop` in Useless If the array does not exist, then it's uninits are nops. Commit: 3a7470849b03d295d18ad1f8e52c3f2216a38581 https://github.com/MLton/mlton/commit/3a7470849b03d295d18ad1f8e52c3f2216a38581 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-27 (Tue, 27 Nov 2018) Changed paths: M mlton/ssa/useless.fun Log Message: ----------- Strengthen Useless optimization wrt MLton_equal and MLton_hash The MLton_equal (polymorphic equality) and MLton_hash (polymorphic hashing) primitives were analyzed by applying `deepMakeUseful` to their arguments. However, when implemented, these primitives do not descend into Array, Ref, or Weak types, so marking the contents of Array, Ref, and Weak types as useful is unnecessary and misses opportunities to eliminate useless components. In particular, while investigating the issue described in 19b07c0, it was observed that the tuple component that was useless but must exist was only forced to exist due to another tuple's corresponding component being made useful by the `deepMakeUseful` triggered by analyzing MLton_equal. However, this was confusing, as the tuple component in question was a `lambdas_nnn` type, which should not be compared by polymorphic equality. Further investigation revealed that it was a `MLton_equal((list_mmm) ref)`, with `list_mmm` corresponding to a list of lambdas. This had the effect of marking *many* transitive closure components as useful, even though they would not actually be used by the implementation of polymorphic equality. This strengthening of Useless has a non-trivial effect on a self-compile: pre.useless: pre.ssa size = 146,403,800 bytes num globals = 37936 num vars in main = 10709 num blocks in main = 2082 num functions in program = 7711 num blocks in program = 231863 num statements in program = 308427 num types in program = 21671 post.useless (old): post.ssa size = 170,454,040 bytes num globals = 19772 num vars in main = 10264 num blocks in main = 2082 num functions in program = 7711 num blocks in program = 230017 num statements in program = 283672 num types in program = 18112 post.useless (new): post.ssa size = 167,373,184 bytes num globals = 19084 num vars in main = 9628 num blocks in main = 2067 num functions in program = 7711 num blocks in program = 229503 num statements in program = 279612 num types in program = 17065 Commit: de3de79f81ba00302d9671939345b159f87856a2 https://github.com/MLton/mlton/commit/de3de79f81ba00302d9671939345b159f87856a2 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-27 (Tue, 27 Nov 2018) Changed paths: M mlton/ssa/useless.fun Log Message: ----------- Cleanup whitespace/formatting Commit: 7ef30bae5476820162d844c75040d6cd940b7153 https://github.com/MLton/mlton/commit/7ef30bae5476820162d844c75040d6cd940b7153 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-28 (Wed, 28 Nov 2018) Changed paths: M doc/guide/src/Useless.adoc M mlton/ssa/useless.fun Log Message: ----------- Eliminate "weirdness with raise/handle" in Useless Previously, the Useless pass would unify all handler arguments so that raise/handle had a consistent calling convention. This seems to be a (long) hold-over from the CPS IL with explicit HandlerPush and HandlerPop statements. Now, allow functions to raise more than is used by a handler, inserting coercion wrapper blocks as necessary. (Something very similar is done in RemoveUnsed.) While this can eliminate useless components of a function's `raises`, it can also require turning a Return.Tail into a Return.NonTail or a Handler.Caller into a Handler.Handle, in order to discard useless components. On a self-compile, compared to previously: * 397 functions go from `raises = Some (exn)` to `raises = Some ()` * 3 calls go from Return.Tail to Return.NonTail * 1571 calls go from Return.Handler to Handler.Handle Commit: f297e456bc836ae9e843d6ff2a96142e43d0676b https://github.com/MLton/mlton/commit/f297e456bc836ae9e843d6ff2a96142e43d0676b Author: Matthew Fluet <mat...@gm...> Date: 2018-11-28 (Wed, 28 Nov 2018) Changed paths: M mlton/ssa/useless.fun Log Message: ----------- Add signatures to Useless.Value.{Exists,Useful} Commit: 602bad4a60cefe749bf01b756997f9684b7dcbfc https://github.com/MLton/mlton/commit/602bad4a60cefe749bf01b756997f9684b7dcbfc Author: Matthew Fluet <mat...@gm...> Date: 2018-12-21 (Fri, 21 Dec 2018) Changed paths: R regression/size2.alpha-linux.ok R regression/size2.amd64-darwin.ok R regression/size2.amd64-freebsd.ok R regression/size2.amd64-linux.ok R regression/size2.amd64-mingw.ok R regression/size2.arm-linux.ok R regression/size2.hppa-hpux.ok R regression/size2.hppa-linux.ok R regression/size2.ia64-hpux.ok R regression/size2.ia64-linux.ok R regression/size2.mips-linux.ok R regression/size2.ok R regression/size2.riscv-linux.ok R regression/size2.s390-linux.ok R regression/size2.sml R regression/size2.sparc-linux.ok R regression/size3.amd64-darwin.ok R regression/size3.amd64-linux.ok R regression/size3.ok R regression/size3.riscv-linux.ok R regression/size3.sml R regression/size3.x86-linux.ok Log Message: ----------- Remove `size2` and `size3` regression tests A forthcoming update to the `Useless` optimization to address MLton/mlton#201 will not force the argument of `MLton_size` to be "deeply useful". However, nearly all of the data structures in the `size2` and `size3` regression tests are only used for their size (and, so, the new `Useless` optimization mostly eliminates the argument to `MLton_size` leading to 0 sizes). It has proven too difficult to robustly use the values after measuring their size. Moreover, the regression tests have been awkward, due to their sensitivity to the architecture. Commit: dd9facbdb0f77f53d379d61a65b611c4b6648a4f https://github.com/MLton/mlton/commit/dd9facbdb0f77f53d379d61a65b611c4b6648a4f Author: Matthew Fluet <mat...@gm...> Date: 2018-12-21 (Fri, 21 Dec 2018) Changed paths: A regression/size.amd64-linux.ok M regression/size.ok M regression/size.sml Log Message: ----------- Rework `size` regression test A forthcoming update to the `Useless` optimization to address MLton/mlton#201 will not force the argument of `MLton_size` to be "deeply useful". However, many of the data structures in the `size` regression test are only used for their size (and, so, the new `Useless` optimization mostly eliminates the argument to `MLton_size` leading to 0 sizes). This commit adds an explicit "use" of the values after measuring their size. In addition, since the `size2` and `size3` regression tests have been removed, the `size` regression test now outputs exact sizes (except for the "continuation option ref") in order to monitor changes to object sizes. Commit: 0e36e4304d576baef793a54dbeacc0d7a91c80c8 https://github.com/MLton/mlton/commit/0e36e4304d576baef793a54dbeacc0d7a91c80c8 Author: Matthew Fluet <mat...@gm...> Date: 2018-12-21 (Fri, 21 Dec 2018) Changed paths: M mlton/ssa/useless.fun Log Message: ----------- Strengthen Useless optimization wrt MLton_{eq,share,size} Closes MLton/mlton#201 The `Useless` optimization eliminates components of of tuples and constructors that are not observed by the computation. Previously, `MLton_share` was analyzed as a side-effect primitive (it must be preserved by optimizations to perform as the programmer intended) and side-effect primitives have `deepMakeUseful` applied to their arguments; this effectively forced all components of the types flowing to `MLton_share` to be retained. Similarly, although `MLton_eq` and `MLton_size` are not considered side-effect primitives, if the result of `MLton_eq`/`MLton_size` was considered useful, then all components of the types flowing to them were retained. Now, we allow the type upon which these primitives are acting to change as dictated by the rest of the program. In particular, we split the single "useless/useful" lattice element into a pair of "useless/useful" and "not wanted/wanted" lattice elements. Flipping from "not wanted" to "wanted" causes any "not wanted/wanted" element flowing into the current element to be flipped to "wanted" and unifies with any "useless/useful" element flowing into the current element. This has the effect that a component that is "wanted" is also "useful" if any "useful" component flows to it. Commit: 31d9befe621ffb48190c62ba0c4ea7139994616e https://github.com/MLton/mlton/commit/31d9befe621ffb48190c62ba0c4ea7139994616e Author: Matthew Fluet <mat...@gm...> Date: 2018-12-24 (Mon, 24 Dec 2018) Changed paths: M mlton/ssa/useless.fun Log Message: ----------- Add `{array,weak}Useful` selector functions to Useless pass Commit: 2baa151358dd31f7bf096105c32ed858ee626d21 https://github.com/MLton/mlton/commit/2baa151358dd31f7bf096105c32ed858ee626d21 Author: Matthew Fluet <mat...@gm...> Date: 2018-12-24 (Mon, 24 Dec 2018) Changed paths: M mlton/ssa/useless.fun Log Message: ----------- Fix Useless optimization wrt Array_uninitIsNop Use the array, but not the array elements, when the result of the Array_uninitIsNop primitive is used. Commit: 6755b0a5b723a9206300e7e772a2093996688dfc https://github.com/MLton/mlton/commit/6755b0a5b723a9206300e7e772a2093996688dfc Author: Matthew Fluet <mat...@gm...> Date: 2018-12-24 (Mon, 24 Dec 2018) Changed paths: M regression/weak.2.ok M regression/weak.2.sml Log Message: ----------- Rework `weak.2` regression test A forthcoming update to the `Useless` optimization will not force the argument to `Weak_canGet` to be "deeply useful". However, the tuple used in the `weak.2` regression test is not actually used (and, so, the new `Useless` optimization changes the `(int * int ref) Weak.t` to a `unit Weak.t`, which is considered never alive). This commit adds an explicit "use" of the tuple. Commit: b0681653fb8b4370a6530c532a3a966136472537 https://github.com/MLton/mlton/commit/b0681653fb8b4370a6530c532a3a966136472537 Author: Matthew Fluet <mat...@gm...> Date: 2018-12-24 (Mon, 24 Dec 2018) Changed paths: M mlton/ssa/useless.fun Log Message: ----------- Strengthen Useless optimization wrt Weak_canGet The `Useless` optimization eliminates components of of tuples and constructors that are not observed by the computation. Previously, `Weak_canGet` was analyzed as a non-side-effect primitive; if the result of `Weak_canGet` was considered useful, then all components of the argument of `Weak_canGet` were considered useful. However, 'Weak_canGet` does not actually use the components of the weak reference; rather, it only uses the reference itself. Commit: dc7c7a6eaa4362312447b0a12b4417fa32c03f4c https://github.com/MLton/mlton/commit/dc7c7a6eaa4362312447b0a12b4417fa32c03f4c Author: Matthew Fluet <mat...@gm...> Date: 2018-12-25 (Tue, 25 Dec 2018) Changed paths: M mlton/ssa/useless.fun Log Message: ----------- Strengthen Useless optimization wrt MLton_touch The `Useless` optimization eliminates components of data constructors that are not observed by the computation. Previously, `MLton_touch` was analyzed as a side-effect primitive; side-effect primitives have `deepMakeUseful` applied to their arguments; this effectively forced all components of the types flowing to `MLton_touch` to be retained. However, 'MLton_touch` does not actually use the data structure; it simply keeps the data structure alive. The typical usage of `MLton_touch` for finalizers is to `touch` a reference; hence, it suffices to use `shallowMakeUseful` to make the reference useful, without necessarily making the contents deeply useful. Commit: 5b04eb82bfc91689f97cbca87b8280e5ca7561b1 https://github.com/MLton/mlton/commit/5b04eb82bfc91689f97cbca87b8280e5ca7561b1 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-03 (Thu, 03 Jan 2019) Changed paths: M CHANGELOG.adoc Log Message: ----------- Note strengthening of Useless optimization in CHANGELOG.adoc Commit: b0ccf5d6fded14f7d6bcffd58f62e42450733446 https://github.com/MLton/mlton/commit/b0ccf5d6fded14f7d6bcffd58f62e42450733446 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-03 (Thu, 03 Jan 2019) Changed paths: M CHANGELOG.adoc M doc/guide/src/Useless.adoc M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/ssa/useless.fun A regression/size.amd64-linux.ok M regression/size.ok M regression/size.sml R regression/size2.alpha-linux.ok R regression/size2.amd64-darwin.ok R regression/size2.amd64-freebsd.ok R regression/size2.amd64-linux.ok R regression/size2.amd64-mingw.ok R regression/size2.arm-linux.ok R regression/size2.hppa-hpux.ok R regression/size2.hppa-linux.ok R regression/size2.ia64-hpux.ok R regression/size2.ia64-linux.ok R regression/size2.mips-linux.ok R regression/size2.ok R regression/size2.riscv-linux.ok R regression/size2.s390-linux.ok R regression/size2.sml R regression/size2.sparc-linux.ok R regression/size3.amd64-darwin.ok R regression/size3.amd64-linux.ok R regression/size3.ok R regression/size3.riscv-linux.ok R regression/size3.sml R regression/size3.x86-linux.ok M regression/weak.2.ok M regression/weak.2.sml Log Message: ----------- Merge pull request #286 from MatthewFluet/useless-updates Strengthen Useless optimization with respect to a number of primitives (MLton_equal, MLton_hash, MLton_eq, MLton_share, MLton_size, Weak_canGet, and MLton_touch). Closes #201. Compare: https://github.com/MLton/mlton/compare/f73965085cf8...b0ccf5d6fded **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019. |
From: GitHub <no...@gi...> - 2019-01-03 15:08:36
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: b88d787d8019a21d16bb5d5865af7c9eb67867e9 https://github.com/MLton/mlton/commit/b88d787d8019a21d16bb5d5865af7c9eb67867e9 Author: Jason Carr <jca...@gm...> Date: 2018-09-11 (Tue, 11 Sep 2018) Changed paths: M mlton/ssa/simplify.fun M mlton/ssa/sources.cm M mlton/ssa/sources.mlb A mlton/ssa/split-types.fun Log Message: ----------- Initial version of split-types Commit: 64becf1226da9711ab40613f53c253906f485d38 https://github.com/MLton/mlton/commit/64becf1226da9711ab40613f53c253906f485d38 Author: Jason Carr <jca...@gm...> Date: 2018-09-14 (Fri, 14 Sep 2018) Changed paths: M mlton/ssa/simplify.fun M mlton/ssa/split-types.fun Log Message: ----------- Simple transform for cons and arguemnts Commit: 6b280af09a9a548cb56cdf68bf14a8b754d0c263 https://github.com/MLton/mlton/commit/6b280af09a9a548cb56cdf68bf14a8b754d0c263 Author: Jason Carr <jca...@gm...> Date: 2018-09-14 (Fri, 14 Sep 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Split type analysis now handles all coercions Commit: 72619d8b339236f0990df772ec9683be4aef2645 https://github.com/MLton/mlton/commit/72619d8b339236f0990df772ec9683be4aef2645 Author: Jason Carr <jca...@gm...> Date: 2018-09-14 (Fri, 14 Sep 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Start replacing code, broken Commit: 7efa1030188856556cb05b4477cde3a47039ecbe https://github.com/MLton/mlton/commit/7efa1030188856556cb05b4477cde3a47039ecbe Author: Jason Carr <jca...@gm...> Date: 2018-09-14 (Fri, 14 Sep 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Apply changes to globals Commit: 0da5d907b74a6f0320bb515649d8ba631db4818b https://github.com/MLton/mlton/commit/0da5d907b74a6f0320bb515649d8ba631db4818b Author: Jason Carr <jca...@gm...> Date: 2018-09-18 (Tue, 18 Sep 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Iterate over function signatures Commit: cb578d042296872f023253712751b06e0116aa44 https://github.com/MLton/mlton/commit/cb578d042296872f023253712751b06e0116aa44 Author: Jason Carr <jca...@gm...> Date: 2018-09-18 (Tue, 18 Sep 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Improve naming, Value -> TypeInfo, t -> typeInfo Commit: d72f12dff165687e67dadd677dda6990d9af5ffd https://github.com/MLton/mlton/commit/d72f12dff165687e67dadd677dda6990d9af5ffd Author: Jason Carr <jca...@gm...> Date: 2018-09-20 (Thu, 20 Sep 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Add bools, correctly lookup new types better Commit: 91cd4afe43a3fcddccc7ee44305c7e2d80792c08 https://github.com/MLton/mlton/commit/91cd4afe43a3fcddccc7ee44305c7e2d80792c08 Author: Jason Carr <jca...@gm...> Date: 2018-10-01 (Mon, 01 Oct 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Handle constructors and filters correctly Commit: 401716206b101d73e77f56666b63e83a36bdebc5 https://github.com/MLton/mlton/commit/401716206b101d73e77f56666b63e83a36bdebc5 Author: Jason Carr <jca...@gm...> Date: 2018-10-01 (Mon, 01 Oct 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Fix constructor merging Commit: e4d330e0bbfda7f6fb2de30ae9711828ee563dd8 https://github.com/MLton/mlton/commit/e4d330e0bbfda7f6fb2de30ae9711828ee563dd8 Author: Jason Carr <jca...@gm...> Date: 2018-10-01 (Mon, 01 Oct 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Add Heap types and prims to splitTypes Commit: 42b69f34633ba5a48757f82569c407998dd19bb2 https://github.com/MLton/mlton/commit/42b69f34633ba5a48757f82569c407998dd19bb2 Author: Jason Carr <jca...@gm...> Date: 2018-10-03 (Wed, 03 Oct 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- split-types: Properly handle remapping constructors Commit: 83626e0fc7a2f2cde04171a40f6711ea437531cf https://github.com/MLton/mlton/commit/83626e0fc7a2f2cde04171a40f6711ea437531cf Author: Jason Carr <jca...@gm...> Date: 2018-10-03 (Wed, 03 Oct 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- split-types: Move more information into TypeInfo so we don't need the old type to construct the type Commit: 664e0afe3efdc0daa0bd85522a0b954b318b2a20 https://github.com/MLton/mlton/commit/664e0afe3efdc0daa0bd85522a0b954b318b2a20 Author: Jason Carr <jca...@gm...> Date: 2018-10-03 (Wed, 03 Oct 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- split-types: Remap cons in cases Commit: 24692fa7d0a43562e30471f5289a8b82349abaa0 https://github.com/MLton/mlton/commit/24692fa7d0a43562e30471f5289a8b82349abaa0 Author: Jason Carr <jca...@gm...> Date: 2018-10-03 (Wed, 03 Oct 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- split-types: Fix type arguments of prim apps Commit: 64b001c9c5c5c3b0102678148d8183083e93b4cc https://github.com/MLton/mlton/commit/64b001c9c5c5c3b0102678148d8183083e93b4cc Author: Jason Carr <jca...@gm...> Date: 2018-10-09 (Tue, 09 Oct 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- split-types: Improve recursion order for coercing types Commit: 87788a56a1af77dad86716d8ce32a91bd8bbbe76 https://github.com/MLton/mlton/commit/87788a56a1af77dad86716d8ce32a91bd8bbbe76 Author: Jason Carr <jca...@gm...> Date: 2018-10-09 (Tue, 09 Oct 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- split-types: Handle zero-length vectors Commit: 350c43944607edc2b5dde9c14501e6ac5459ff78 https://github.com/MLton/mlton/commit/350c43944607edc2b5dde9c14501e6ac5459ff78 Author: Jason Carr <jca...@gm...> Date: 2018-10-12 (Fri, 12 Oct 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Fix type caching for output Commit: c59fc1352f4ffdaa276bda6030a6f056b1ff074d https://github.com/MLton/mlton/commit/c59fc1352f4ffdaa276bda6030a6f056b1ff074d Author: Jason Carr <jca...@gm...> Date: 2018-10-31 (Wed, 31 Oct 2018) Changed paths: M lib/mlton/basic/hash-table.sig M lib/mlton/basic/hash-table.sml A lib/mlton/basic/hash.sig A lib/mlton/basic/hash.sml M lib/mlton/basic/sources.cm M lib/mlton/basic/sources.mlb M lib/mlton/sources.cm M lib/mlton/sources.mlb M mlnlffigen/sources.mlb M mlton/atoms/hash-type.fun M mlton/atoms/profile-exp.fun M mlton/ssa/common-subexp.fun M mlton/ssa/known-case.fun M mlton/ssa/parse-ssa.fun M mlton/ssa/parse-ssa2.fun M mlton/ssa/restore.fun M mlton/ssa/restore2.fun M mlton/ssa/share-zero-vec.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/xml/monomorphise.fun Log Message: ----------- Merge branch 'hash-additions' into split-types Commit: 54896da05d4da85e6fe8a817cbeb825cb7ea92a1 https://github.com/MLton/mlton/commit/54896da05d4da85e6fe8a817cbeb825cb7ea92a1 Author: Jason Carr <jca...@gm...> Date: 2018-10-31 (Wed, 31 Oct 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Use HashTables instead of HashSets Commit: ce2f36d754ec2f8398341263865dfbf386eb0525 https://github.com/MLton/mlton/commit/ce2f36d754ec2f8398341263865dfbf386eb0525 Author: Jason Carr <jca...@gm...> Date: 2018-11-02 (Fri, 02 Nov 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Add initial dupGlobals Commit: 775e67b43a303711eb6d8d9a1e772f180e430984 https://github.com/MLton/mlton/commit/775e67b43a303711eb6d8d9a1e772f180e430984 Author: Jason Carr <jca...@gm...> Date: 2018-11-05 (Mon, 05 Nov 2018) Changed paths: M .travis.yml M CHANGELOG.adoc M basis-library/arrays-and-vectors/array2.sml M basis-library/arrays-and-vectors/sequence.fun M basis-library/arrays-and-vectors/sequence0.sml M basis-library/integer/int-inf.sig M basis-library/integer/int-inf0.sml M basis-library/integer/int.sml M basis-library/integer/integer.sig M basis-library/integer/num0.sml M basis-library/list/list.sml M basis-library/primitive/basis-ffi.sml M basis-library/primitive/prim-int.sml M basis-library/primitive/prim1.sml M basis-library/text/char.sml M basis-library/text/string-cvt.sml M basis-library/top-level/infixes-overflow.sml M basis-library/top-level/infixes-unsafe.sml M basis-library/util/CUtil.sml M include/amd64-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 mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/backend/rep-type.fun M mlton/backend/ssa-to-rssa.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-simplify.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/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-mlton.fun M mlton/codegen/x86-codegen/x86-simplify.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/common-subexp.fun M mlton/ssa/known-case.fun M mlton/ssa/parse-ssa.fun M mlton/ssa/parse-ssa2.fun M mlton/ssa/redundant-tests.fun M mlton/ssa/share-zero-vec.fun M mlton/ssa/ssa-tree2.fun A regression/int-mul-pow2.ok A regression/int-mul-pow2.sml M runtime/basis-ffi.h M runtime/basis/Word/Word-check.h M runtime/basis/Word/Word-ops.h M runtime/gen/basis-ffi.def M runtime/gen/basis-ffi.h M runtime/gen/basis-ffi.sml Log Message: ----------- Merge branch 'master' into split-types Commit: c6164509cb7ca91717106af891c1cc2c1c154d78 https://github.com/MLton/mlton/commit/c6164509cb7ca91717106af891c1cc2c1c154d78 Author: Jason Carr <jca...@gm...> Date: 2018-11-05 (Mon, 05 Nov 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Fix a major bug where recursive coercions could cause lost updates Commit: ec8d6e784b625230a722bccd75c855780ca897ee https://github.com/MLton/mlton/commit/ec8d6e784b625230a722bccd75c855780ca897ee Author: Jason Carr <jca...@gm...> Date: 2018-11-05 (Mon, 05 Nov 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Fix Vector_vector to coerce all its arguments together Commit: 185b25d00157823b5f161721e8a74e56e8305204 https://github.com/MLton/mlton/commit/185b25d00157823b5f161721e8a74e56e8305204 Author: Jason Carr <jca...@gm...> Date: 2018-11-05 (Mon, 05 Nov 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Update dupGlobals, but keep disabled for now testing correctness Commit: 0da419eb459b9c73c6ae0b1fc75ee7b786e9f7e3 https://github.com/MLton/mlton/commit/0da419eb459b9c73c6ae0b1fc75ee7b786e9f7e3 Author: Jason Carr <jca...@gm...> Date: 2018-11-05 (Mon, 05 Nov 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Correctly coerce for MLton_equal Commit: af59d0350fd7ed0ed8c127d7dcee5c597c6f7d64 https://github.com/MLton/mlton/commit/af59d0350fd7ed0ed8c127d7dcee5c597c6f7d64 Author: Jason Carr <jca...@gm...> Date: 2018-11-07 (Wed, 07 Nov 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Cleanup split-types and fix unused variables Commit: 695cb2a8e9b89cfc1bbc5a32ade797c7a14fb32d https://github.com/MLton/mlton/commit/695cb2a8e9b89cfc1bbc5a32ade797c7a14fb32d Author: Jason Carr <jca...@gm...> Date: 2018-11-07 (Wed, 07 Nov 2018) Changed paths: A mlton/ssa/duplicate-globals.fun M mlton/ssa/simplify.fun M mlton/ssa/sources.cm M mlton/ssa/sources.mlb M mlton/ssa/split-types.fun Log Message: ----------- Add DuplicateGlobals as seperate pass Commit: 5fbca03ebef52712c9d3519f38184d23e2106ed8 https://github.com/MLton/mlton/commit/5fbca03ebef52712c9d3519f38184d23e2106ed8 Author: Jason Carr <jca...@gm...> Date: 2018-11-14 (Wed, 14 Nov 2018) Changed paths: M mlton/ssa/duplicate-globals.fun Log Message: ----------- Fix duplicateGlobals duplicating too much Commit: 5d84886e017ab5ff98ccf1c6025a768cd13e3372 https://github.com/MLton/mlton/commit/5d84886e017ab5ff98ccf1c6025a768cd13e3372 Author: Jason Carr <jca...@gm...> Date: 2018-11-14 (Wed, 14 Nov 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- splitTypes: Improve diagnostics and case handling Commit: e8739cc8c5f47c974e1718bb363f5b911f23a139 https://github.com/MLton/mlton/commit/e8739cc8c5f47c974e1718bb363f5b911f23a139 Author: Jason Carr <jca...@gm...> Date: 2018-11-14 (Wed, 14 Nov 2018) Changed paths: M mlton/ssa/duplicate-globals.fun Log Message: ----------- Only duplicate globals which are ConApps Commit: 66aff92d6267796784740bc288831d7389147724 https://github.com/MLton/mlton/commit/66aff92d6267796784740bc288831d7389147724 Author: Jason Carr <jca...@gm...> Date: 2018-11-14 (Wed, 14 Nov 2018) Changed paths: M mlton/ssa/simplify.fun Log Message: ----------- Copy duplicateGlobals and splitTypes into three separate locations in ssaSimplify Commit: f9f70ac4d46f5c8225070020553afd85110f272e https://github.com/MLton/mlton/commit/f9f70ac4d46f5c8225070020553afd85110f272e Author: Jason Carr <jca...@gm...> Date: 2018-11-19 (Mon, 19 Nov 2018) Changed paths: M mlton/ssa/duplicate-globals.fun M mlton/ssa/split-types.fun Log Message: ----------- Improve code & comments for split-types/duplicate-globals Commit: 2a618b7871dd9a2447077e0cc30c850dac9ae63a https://github.com/MLton/mlton/commit/2a618b7871dd9a2447077e0cc30c850dac9ae63a Author: Jason Carr <jca...@gm...> Date: 2018-11-19 (Mon, 19 Nov 2018) Changed paths: M mlton/ssa/simplify.fun Log Message: ----------- Remove duplicateGlobals/splitTypes3 Commit: 8b52f9677b26f0d2d6db52cb956ce3a0212cbb86 https://github.com/MLton/mlton/commit/8b52f9677b26f0d2d6db52cb956ce3a0212cbb86 Author: Jason Carr <jca...@gm...> Date: 2018-12-04 (Tue, 04 Dec 2018) Changed paths: M mlton/ssa/duplicate-globals.fun Log Message: ----------- Don't leave useless globals in duplicate-globals Commit: 47cb34db3bef5cf66ab005c0db9888d1b340990c https://github.com/MLton/mlton/commit/47cb34db3bef5cf66ab005c0db9888d1b340990c Author: Jason Carr <jca...@gm...> Date: 2018-12-04 (Tue, 04 Dec 2018) Changed paths: M mlton/ssa/simplify.fun Log Message: ----------- Enable splitTypes1, splitTypes2, and duplicateGlobals2 by default Commit: 13572058fab892c377bec54e2dffd61567a72fa2 https://github.com/MLton/mlton/commit/13572058fab892c377bec54e2dffd61567a72fa2 Author: Jason Carr <jca...@gm...> Date: 2018-12-04 (Tue, 04 Dec 2018) Changed paths: M mlton/ssa/duplicate-globals.fun Log Message: ----------- Duplicate bogus globals Commit: e21fb78ddcb2a684593ae8ed25b01f54a1ed723d https://github.com/MLton/mlton/commit/e21fb78ddcb2a684593ae8ed25b01f54a1ed723d Author: Jason Carr <jca...@gm...> Date: 2018-12-04 (Tue, 04 Dec 2018) Changed paths: M .travis.yml M CHANGELOG.adoc M README.adoc M doc/guide/src/Home.adoc M mlton/codegen/amd64-codegen/amd64-codegen.fun M mlton/codegen/x86-codegen/x86-codegen.fun M mlton/ssa/n-point-lattice.fun M mlton/ssa/simplify-types.fun M mlton/ssa/ssa-tree.fun M runtime/gc/signals.c M runtime/gc/virtual-memory.c M runtime/platform.h M runtime/platform/mmap-protect.c M runtime/platform/mmap.c M runtime/platform/openbsd.c M runtime/platform/use-mmap.c Log Message: ----------- Merge branch 'master' into split-types Commit: e5ff0dcf5f299acf663cbbf0ed9e198c5be03c18 https://github.com/MLton/mlton/commit/e5ff0dcf5f299acf663cbbf0ed9e198c5be03c18 Author: Jason Carr <jca...@gm...> Date: 2018-12-05 (Wed, 05 Dec 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Fix swapped Weak prims in split-types Commit: 1dcb830c0199df63de153b59f310a36f6a49a2f4 https://github.com/MLton/mlton/commit/1dcb830c0199df63de153b59f310a36f6a49a2f4 Author: Jason Carr <jca...@gm...> Date: 2018-12-06 (Thu, 06 Dec 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Support splitting booleans (restricted by FFI usage) Commit: dd2feecf499febc96f145c642de3aab45478bc05 https://github.com/MLton/mlton/commit/dd2feecf499febc96f145c642de3aab45478bc05 Author: Jason Carr <jca...@gm...> Date: 2018-12-07 (Fri, 07 Dec 2018) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Remap FFI only if it's kind runtime. Unfortunately we can't use Prim.map or CFunction.map since the new types are based on argument values, not argument types Commit: c0f752f0a226d1f2e0200e637de4c4c05293ee30 https://github.com/MLton/mlton/commit/c0f752f0a226d1f2e0200e637de4c4c05293ee30 Author: Jason Carr <jca...@gm...> Date: 2018-12-13 (Thu, 13 Dec 2018) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/split-types.fun Log Message: ----------- Add expert split-bools option to decide whether to split boolean types Commit: 649b0c5f45bb81dc46508675632b651ffe291f4d https://github.com/MLton/mlton/commit/649b0c5f45bb81dc46508675632b651ffe291f4d Author: Jason Carr <jca...@gm...> Date: 2018-12-13 (Thu, 13 Dec 2018) Changed paths: M regression/size3.amd64-darwin.ok M regression/size3.amd64-linux.ok M regression/size3.riscv-linux.ok Log Message: ----------- Set sizes for regressions to 0 Commit: 8aff7f3f43779b9c70c4907b816b032396375b3f https://github.com/MLton/mlton/commit/8aff7f3f43779b9c70c4907b816b032396375b3f Author: Jason Carr <jca...@gm...> Date: 2018-12-13 (Thu, 13 Dec 2018) Changed paths: M regression/size3.amd64-darwin.ok M regression/size3.amd64-linux.ok M regression/size3.riscv-linux.ok M regression/size3.x86-linux.ok Log Message: ----------- Fix remaining bad size regressions Commit: 4092a80da7e7cf16e691dba8f477b259bd7501fc https://github.com/MLton/mlton/commit/4092a80da7e7cf16e691dba8f477b259bd7501fc Author: Matthew Fluet <mat...@gm...> Date: 2018-12-30 (Sun, 30 Dec 2018) Changed paths: M mlton/ssa/sources.cm M mlton/ssa/sources.mlb Log Message: ----------- Alphabetize `split-types.fun` in `sources.{cm,mlb}`. Commit: f7f0ab2a3002339ca87ebe7ad6bddb003fb088f8 https://github.com/MLton/mlton/commit/f7f0ab2a3002339ca87ebe7ad6bddb003fb088f8 Author: Matthew Fluet <mat...@gm...> Date: 2018-12-30 (Sun, 30 Dec 2018) Changed paths: M mlton/ssa/simplify.fun Log Message: ----------- Alphabetize `structure SplitTypes` in `simplify.fun` Commit: b6d3833f1fdf7b93d884164db8476d344d1fc776 https://github.com/MLton/mlton/commit/b6d3833f1fdf7b93d884164db8476d344d1fc776 Author: Matthew Fluet <mat...@gm...> Date: 2018-12-30 (Sun, 30 Dec 2018) Changed paths: M mlton/ssa/simplify.fun Log Message: ----------- Whitespace cleanup Commit: a2e37629aed8c1e6f7689a2049cf153d874cca9a https://github.com/MLton/mlton/commit/a2e37629aed8c1e6f7689a2049cf153d874cca9a Author: Matthew Fluet <mat...@gm...> Date: 2018-12-30 (Sun, 30 Dec 2018) Changed paths: M mlton/ssa/simplify.fun Log Message: ----------- Support `duplicateGlobals` and `splitTypes` in `-ssa-passes` option Commit: 5110a01b349ea6d1f74547a88e8e96fce83bb601 https://github.com/MLton/mlton/commit/5110a01b349ea6d1f74547a88e8e96fce83bb601 Author: Matthew Fluet <mat...@gm...> Date: 2018-12-30 (Sun, 30 Dec 2018) Changed paths: M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/split-types.fun Log Message: ----------- Rename `-split-bools` option to `-split-types-bool` Also, alphabetize `splitTypesBool` in `signature CONTROL_FLAGS` and `structure ControlFlags`. Commit: 5372b4d89f1092238ee4d5f0a469da5c4374a025 https://github.com/MLton/mlton/commit/5372b4d89f1092238ee4d5f0a469da5c4374a025 Author: Matthew Fluet <mat...@gm...> Date: 2018-12-31 (Mon, 31 Dec 2018) Changed paths: M mlton/ssa/duplicate-globals.fun Log Message: ----------- Code style cleanup (minor) Commit: 6007b0f56eb6f528125be2e5a078939b468e7efa https://github.com/MLton/mlton/commit/6007b0f56eb6f528125be2e5a078939b468e7efa Author: Matthew Fluet <mat...@gm...> Date: 2018-12-31 (Mon, 31 Dec 2018) Changed paths: M mlton/ssa/duplicate-globals.fun Log Message: ----------- Handle global statements with no var in DuplicateGlobals Commit: 8fec78a57919a36e084b161473a7fb5661eba900 https://github.com/MLton/mlton/commit/8fec78a57919a36e084b161473a7fb5661eba900 Author: Matthew Fluet <mat...@gm...> Date: 2018-12-31 (Mon, 31 Dec 2018) Changed paths: M mlton/ssa/duplicate-globals.fun Log Message: ----------- Simplify `isUsedInGlobals` in DuplicateGlobals Commit: 2ef2cff42f9f5f519d972b3d6fed44ae3839fdd5 https://github.com/MLton/mlton/commit/2ef2cff42f9f5f519d972b3d6fed44ae3839fdd5 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-02 (Wed, 02 Jan 2019) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Code style cleanup (minor) Commit: 22572a1cf968e55aa75de5bf07ad1137e2eb835c https://github.com/MLton/mlton/commit/22572a1cf968e55aa75de5bf07ad1137e2eb835c Author: Matthew Fluet <mat...@gm...> Date: 2019-01-02 (Wed, 02 Jan 2019) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Simplify calculation of new datatypes in SplitTypes `reifyCon` is never called with the primitive boolean type. Commit: e08cf1ff0a378a345453b71c7560a0aabf8cf1a3 https://github.com/MLton/mlton/commit/e08cf1ff0a378a345453b71c7560a0aabf8cf1a3 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-02 (Wed, 02 Jan 2019) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Add SplitTypes.TypeInfo.deFresh Commit: ae86acb4ecdf093192c71e8d8e9bda7252228441 https://github.com/MLton/mlton/commit/ae86acb4ecdf093192c71e8d8e9bda7252228441 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-02 (Wed, 02 Jan 2019) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Include heap type in SplitTypes.TypeInfo.layout Commit: ee1e3c4e47e4ab7da699bcd67089087bd5af4c55 https://github.com/MLton/mlton/commit/ee1e3c4e47e4ab7da699bcd67089087bd5af4c55 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-02 (Wed, 02 Jan 2019) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Use `Vector.toListMap` rather than `Vector.toList o Vector.map` Commit: 13ddc99e6c3ae1c55bc7ae0ec90d4006932a3ce9 https://github.com/MLton/mlton/commit/13ddc99e6c3ae1c55bc7ae0ec90d4006932a3ce9 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-02 (Wed, 02 Jan 2019) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Use `Type.bool` rather than `Type.datatypee Tycon.bool` Commit: 59c6870a05604c1d9ae4ff745c41b962454c1858 https://github.com/MLton/mlton/commit/59c6870a05604c1d9ae4ff745c41b962454c1858 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-02 (Wed, 02 Jan 2019) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Simplify calculation of new functions in SplitTypes Commit: 351f11a130739131c52e6e6a91bbf941b62370b1 https://github.com/MLton/mlton/commit/351f11a130739131c52e6e6a91bbf941b62370b1 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-02 (Wed, 02 Jan 2019) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Extract SplitTypes.TypeInfo.hashFresh Commit: ba8741906a9bc96dfb7bab727729f05ea1aeeb5e https://github.com/MLton/mlton/commit/ba8741906a9bc96dfb7bab727729f05ea1aeeb5e Author: Matthew Fluet <mat...@gm...> Date: 2019-01-02 (Wed, 02 Jan 2019) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Simplify HashMap from fresh tycons to new tycons in SimplifyTypes Commit: c35163d3b51ff55b81b1aaad5242f9a6ce979d2c https://github.com/MLton/mlton/commit/c35163d3b51ff55b81b1aaad5242f9a6ce979d2c Author: Matthew Fluet <mat...@gm...> Date: 2019-01-02 (Wed, 02 Jan 2019) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Simplify mapping from fresh cons to new cons in SimplifyTypes Commit: f396f847d862fb6eb11630cb22b2cdf643372eeb https://github.com/MLton/mlton/commit/f396f847d862fb6eb11630cb22b2cdf643372eeb Author: Matthew Fluet <mat...@gm...> Date: 2019-01-02 (Wed, 02 Jan 2019) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Regularize arguments to analyze in SplitTypes Commit: 2ee534f339e2d1e04167fb4e401ff588b59d3464 https://github.com/MLton/mlton/commit/2ee534f339e2d1e04167fb4e401ff588b59d3464 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-02 (Wed, 02 Jan 2019) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Require tycon for TypeInfo.Fresh in SplitTypes It is possible to always create TypeInfo.Fresh with a known tycon by recording the original tycon for each con. Commit: 3dcf4a1c13e1d25246a99490613b8d1bf5e2517c https://github.com/MLton/mlton/commit/3dcf4a1c13e1d25246a99490613b8d1bf5e2517c Author: Matthew Fluet <mat...@gm...> Date: 2019-01-02 (Wed, 02 Jan 2019) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Create fresh reference when equating in SplitTypes Commit: 8bbffb01328b35303e123443001942419b6ee40f https://github.com/MLton/mlton/commit/8bbffb01328b35303e123443001942419b6ee40f Author: Matthew Fluet <mat...@gm...> Date: 2019-01-02 (Wed, 02 Jan 2019) Changed paths: M mlton/ssa/duplicate-globals.fun Log Message: ----------- Duplicate global vector constants in DuplicateGlobals In particular, this allows empty vectors to be duplicated. Commit: 88139fff0c3f37794612f8238c5b418e71a60a4f https://github.com/MLton/mlton/commit/88139fff0c3f37794612f8238c5b418e71a60a4f Author: Matthew Fluet <mat...@gm...> Date: 2019-01-02 (Wed, 02 Jan 2019) Changed paths: M mlton/ssa/ssa-tree.fun Log Message: ----------- Use type args for `SsaTree.Exp.{hash,equals}` of `PrimApp`-s Some primitives (e.g., `Vector_vector` and `MLton_bogus`) may be applied to no arguments and must be distinguished by the type argument. Commit: 9d2b60bd2d92b4f293b13c0db6c03fd6eecd1235 https://github.com/MLton/mlton/commit/9d2b60bd2d92b4f293b13c0db6c03fd6eecd1235 Author: Matthew Fluet <mat...@gm...> Date: 2019-01-02 (Wed, 02 Jan 2019) Changed paths: M mlton/ssa/common-subexp.fun Log Message: ----------- Perform elimination of common globals in CommonSubexp Various passes may introduce redundant globals. The DuplicateGlobals pass specifically introduces redundant globals (that may be separated by SplitTypes), which should be recombined. But, various other passes introduce `true`, `false`, `0`, `1`, etc. global constants in order to avoid needing to search the globals for a particular constant (that is likely, but not guaranteed, to exist). Commit: 59108a448d53e9fb19280b5a3c486a5d60a733a5 https://github.com/MLton/mlton/commit/59108a448d53e9fb19280b5a3c486a5d60a733a5 Author: Jason Carr <jca...@gm...> Date: 2019-01-02 (Wed, 02 Jan 2019) Changed paths: M mlton/ssa/split-types.fun Log Message: ----------- Fix split-types result type for updating primitives Commit: 2365d115967878ac7daa55cf2771cb528aea550b https://github.com/MLton/mlton/commit/2365d115967878ac7daa55cf2771cb528aea550b Author: Matthew Fluet <mat...@gm...> Date: 2019-01-03 (Thu, 03 Jan 2019) Changed paths: M CHANGELOG.adoc Log Message: ----------- Note DuplicateGlobals and SplitTypes in CHANGELOG.adoc Commit: f73965085cf85828ca6117d81f8574167aeaabfd https://github.com/MLton/mlton/commit/f73965085cf85828ca6117d81f8574167aeaabfd Author: Matthew Fluet <Mat...@gm...> Date: 2019-01-03 (Thu, 03 Jan 2019) Changed paths: M CHANGELOG.adoc M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/common-subexp.fun A mlton/ssa/duplicate-globals.fun M mlton/ssa/simplify.fun M mlton/ssa/sources.cm M mlton/ssa/sources.mlb A mlton/ssa/split-types.fun M mlton/ssa/ssa-tree.fun M regression/size3.amd64-darwin.ok M regression/size3.amd64-linux.ok M regression/size3.riscv-linux.ok M regression/size3.x86-linux.ok Log Message: ----------- Merge pull request #285 from jasoncarr0/split-types Add new `DuplicateGlobals` and `SplitTypes` SSA optimization passes. `DuplicateGlobals` introduces a distinct instance of a `ConApp` global for each distinct use within the program. `SplitTypes` performs a unification-based analysis to split a datatype into distinct instances for constructed values that are not unified. Because datatypes are recursive, other analyses often conflate all defs and uses of `ConApp`-s; `SplitTypes` allows non-unified instances of a datatype to be analyzed separately. Compare: https://github.com/MLton/mlton/compare/8b6ab888d4be...f73965085cf8 **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019. |
From: GitHub <no...@gi...> - 2018-11-26 17:27:04
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: e2e9badf0789e39ac16abcbc16f4916a3b85f11e https://github.com/MLton/mlton/commit/e2e9badf0789e39ac16abcbc16f4916a3b85f11e Author: Matthew Fluet <mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M README.adoc Log Message: ----------- Drop extraneous newline in `README.adoc` Commit: 3d25e61c64cde749515739a1eae97411352b0063 https://github.com/MLton/mlton/commit/3d25e61c64cde749515739a1eae97411352b0063 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M CHANGELOG.adoc Log Message: ----------- Fix recent entry formatting in `CHANGELOG.adoc` Commit: 0ee329d4e5b814dbe2dc84093e3005a3e1a27b40 https://github.com/MLton/mlton/commit/0ee329d4e5b814dbe2dc84093e3005a3e1a27b40 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M doc/guide/src/Home.adoc Log Message: ----------- Add a link to GitHub repo to mlton.org homepage Closes MLton/mlton#279 Commit: 8b6ab888d4beab82eaf521955721bcd76f4fb520 https://github.com/MLton/mlton/commit/8b6ab888d4beab82eaf521955721bcd76f4fb520 Author: Matthew Fluet <Mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M CHANGELOG.adoc M README.adoc M doc/guide/src/Home.adoc Log Message: ----------- Merge pull request #284 from MatthewFluet/guide-updates Guide updates Compare: https://github.com/MLton/mlton/compare/6e6c503db853...8b6ab888d4be **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019. |
From: GitHub <no...@gi...> - 2018-11-26 16:28:26
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: a1a384b30902488d331eefd5e770b066cf036eb3 https://github.com/MLton/mlton/commit/a1a384b30902488d331eefd5e770b066cf036eb3 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M .travis.yml Log Message: ----------- Use Ubuntu Xenial (with gcc 5.4) for Travis CI Commit: e0b9f792e5de1468396b49bb044be45fb22dcf73 https://github.com/MLton/mlton/commit/e0b9f792e5de1468396b49bb044be45fb22dcf73 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M .travis.yml Log Message: ----------- Lift common `addons:` section to top-level Commit: 41dba061a1bd6b192b0eae1fa5dc1fb8f1d85f2d https://github.com/MLton/mlton/commit/41dba061a1bd6b192b0eae1fa5dc1fb8f1d85f2d Author: Matthew Fluet <mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M .travis.yml Log Message: ----------- Drop `sudo: required` (implied by `dist: xenial` and `os: osx`) Commit: 7f4f112e8d446f16d908454c3cd4a9ee020e2a05 https://github.com/MLton/mlton/commit/7f4f112e8d446f16d908454c3cd4a9ee020e2a05 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M .travis.yml Log Message: ----------- Use `homebrew` addon (rather than `install` stage) Commit: 9d2716ff74b7fa63183a7b596d3b2d163f13c46d https://github.com/MLton/mlton/commit/9d2716ff74b7fa63183a7b596d3b2d163f13c46d Author: Matthew Fluet <mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M .travis.yml Log Message: ----------- List common `dist: xenial` to top-level Commit: 8f53d0e3289fa12d011e4994658a41d08ea84f36 https://github.com/MLton/mlton/commit/8f53d0e3289fa12d011e4994658a41d08ea84f36 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M .travis.yml Log Message: ----------- Cleanup whitespace/formatting Commit: 6e6c503db853491151a05db309470bf6f6831d66 https://github.com/MLton/mlton/commit/6e6c503db853491151a05db309470bf6f6831d66 Author: Matthew Fluet <Mat...@gm...> Date: 2018-11-26 (Mon, 26 Nov 2018) Changed paths: M .travis.yml Log Message: ----------- Merge pull request #283 from MatthewFluet/travis-update Update TravisCI configuration Compare: https://github.com/MLton/mlton/compare/33e120794633...6e6c503db853 **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019. |
From: GitHub <no...@gi...> - 2018-11-25 11:18:25
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: b0393edf4b55ca4d324f09c9d2268a25e630c65c https://github.com/MLton/mlton/commit/b0393edf4b55ca4d324f09c9d2268a25e630c65c Author: Matthew Fluet <mat...@gm...> Date: 2018-11-22 (Thu, 22 Nov 2018) Changed paths: M mlton/ssa/ssa-tree.fun Log Message: ----------- Eliminate extraneous space in layout of SSA tuple types Commit: 1094463f2c9dd3dbbef91c24f060d89338a7f920 https://github.com/MLton/mlton/commit/1094463f2c9dd3dbbef91c24f060d89338a7f920 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-23 (Fri, 23 Nov 2018) Changed paths: M mlton/ssa/simplify-types.fun Log Message: ----------- Include constructor cardinality in SimplifyTypes diagnostics Commit: 3a44104ddc43b886673d99f142c384c829709ef6 https://github.com/MLton/mlton/commit/3a44104ddc43b886673d99f142c384c829709ef6 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-23 (Fri, 23 Nov 2018) Changed paths: M mlton/ssa/simplify-types.fun Log Message: ----------- Trace `SimplifyTypes.simplifyStatement` Commit: 33437e5afe4bdd4fdb4fa28e2583e36487d14384 https://github.com/MLton/mlton/commit/33437e5afe4bdd4fdb4fa28e2583e36487d14384 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-23 (Fri, 23 Nov 2018) Changed paths: M mlton/ssa/n-point-lattice.fun Log Message: ----------- Update value before running handlers in NPointLattice.{<=,==} Running handlers before setting the lattice element's new value can miss running handlers. Commit: 66e67c742f32745280b1d483d51a3fb3510538f4 https://github.com/MLton/mlton/commit/66e67c742f32745280b1d483d51a3fb3510538f4 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-23 (Fri, 23 Nov 2018) Changed paths: M mlton/ssa/simplify-types.fun Log Message: ----------- Use standard ThreePointLattice for Cardinality in SimplifyTypes Previously, an ad hoc Cardinality lattice/fixed-point was used. Commit: 19b07c03fc2c759367be33d39093da37a81f1fa8 https://github.com/MLton/mlton/commit/19b07c03fc2c759367be33d39093da37a81f1fa8 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-24 (Sat, 24 Nov 2018) Changed paths: M mlton/ssa/simplify-types.fun Log Message: ----------- Fix a latent bug in SimplifyTypes related to Useless and MLton_bogus A forthcoming SplitTypes optimization revealed a latent bug in SimplifyTypes, related to MLton_bogus primitives added by Useless. Unfortunately, it has been difficult constructing a simple source SML program that demonstrates the bug. Nonetheless, here is the essence of the issue: mlton.useless.pre.ssa: lambdas_6803 = Env_24230 global_70971: lambdas_6803 = new Env_24230 L_215729 (x_331531: ((word8) vector, unit) tuple) ... x_331538: (lambdas_6803, (list_161) ref) tuple = (global_70971 (*new Env_24230*), openInbuffers_3) ... x_331537: lambdas_28893 = new Env_44439 (x_331538) ... newIn_2: lambdas_17774 = new Env_48535 (x_331532) call L_215730 (newIn_0 (x_331532, global_100698)) handle _ => L_215665 L_215730 (x_331541: instream_0) tuple_1834: (lambdas_17775, lambdas_4786, lambdas_17774) tuple = (global_70725 (*new Env_24 ... l_37)*), openf_1, newIn_2) ... Useless determines that the `lambdas_6803` component of `x_331538` is useless, but must exist. (Must exist because somewhere else in the program is a useful instance of a `lambdas_6803` component of a `(lambdas_6803, (list_161) ref) tuple` and that tuple flows to a program point with a useless instance of a `lambdas_6803` component of a `(lambdas_6803, (list_161) ref) tuple`; in order to avoid a coercion, Useless requires the `lambdas_6803` component to exist.) To fulfill the obligation for a value of a type that is useless but must exist (and the original value is not otherwise useful and retained by the program), Useless creates a (bogus) value with `MLton_bogus`. In this particular case, retaining the nullary `Env_24230` global would suffice, but, in general, an unbounded amount of work could be saved by using `MLton_bogus` rather than retaining the value from the input SSA program. Also, because the `lambdas_6803` component of `x_331538` is useless, `global_70971` is useless and removed. mlton.useless.post.ssa: lambdas_6803 = Env_24230 bogus_79: lambdas_6803 = prim MLton_bogus(lambdas_6803) () L_215729 (x_331531: (word8) vector) ... x_331538: (lambdas_6803, (list_161) ref) tuple = (bogus_79, openInbuffers_3) ... x_331537: lambdas_28893 = new Env_44439 (x_331538) newIn_2: lambdas_17774 = new Env_48535 (x_331532) call L_217678 (newIn_0 (x_331532, global_100698)) handle _ => L_215665 L_217678 (x_338600: instream_0) tuple_1834: (lambdas_17775, lambdas_4786, lambdas_17774) tuple = (global_70725 (*new Env_24 ... l_37)*), openf_1, newIn_2) ... This portion of the program is unchanged through to removeUnused2. mlton.removeUnused2.pre.ssa2: lambdas_6803 = Env_24230 bogus_79: lambdas_6803 = prim MLton_bogus(lambdas_6803) () L_215729 (x_331531: (word8) vector) ... x_331538: (lambdas_6803, (list_161) ref) tuple = (bogus_79, openInbuffers_3) ... x_331537: lambdas_28893 = new Env_44439 (x_331538) ... newIn_2: lambdas_17774 = new Env_48535 (x_331532) call L_217678 (newIn_0 (x_331532, global_100698)) handle _ => L_215665 L_217678 (x_338600: instream_0) tuple_1834: (lambdas_17775, lambdas_4786, lambdas_17774) tuple = (global_70725 (*new Env_24 ... l_37)*), openf_1, newIn_2) ... The previously eliminated `global_70971` was the only use of `Env_24230` in the program, so `removeUnused2` eliminates it. However, `lambdas_6803` cannot be eliminated because it appears in types and primitives, in particular, `MLton_bogus` for `bogus_79`. mlton.removeUnused2.post.ssa2: lambdas_6803 = bogus_79: lambdas_6803 = prim MLton_bogus(lambdas_6803) () L_215729 (x_331531: (word8) vector) ... x_331538: (lambdas_6803, (list_161) ref) tuple = (bogus_79, openInbuffers_3) ... x_331537: lambdas_28893 = new Env_44439 (x_331538) ... newIn_2: lambdas_17774 = new Env_48535 (x_331532) call L_222685 (newIn_0 (x_331532, global_100698)) handle _ => L_215665 L_222685 (x_343607: instream_0) tuple_1834: (lambdas_17775, lambdas_4786, lambdas_17774) tuple = (global_70725 (*new dummy_1852*), openf_1, newIn_2) ... Again, this portion of the program is unchanged into simplifyTypes. mlton.simplifyTypes.pre.ssa: lambdas_6803 = bogus_79: lambdas_6803 = prim MLton_bogus(lambdas_6803) () L_215729 (x_331531: (word8) vector) ... x_331538: (lambdas_6803, (list_161) ref) tuple = (bogus_79, openInbuffers_3) ... x_331537: lambdas_28893 = new Env_44439 (x_331538) ... newIn_2: lambdas_17774 = new Env_48535 (x_331532) call L_222685 (newIn_0 (x_331532, global_100698)) handle _ => L_215665 L_222685 (x_343607: instream_0) tuple_1834: (lambdas_17775, lambdas_4786, lambdas_17774) tuple = (global_70725 (*new dummy_1852*), openf_1, newIn_2) ... Because there are no constructors for `lambdas_6803`, the cardinality of `lambdas_6803` is determined as `Zero`. This makes the cardinality of `(lambdas_6803, (list_161) ref) tuple` and `Env_44439` both `Zero`. Because the cardinality of `Env_44439` is `Zero`, it is removed from `lambdas_17774` and marked as `Useless`. Finally, a `ConApp` of a `Useless` constructor is considered unreachable code (because such a constructor must be constructed with an argument of cardinality `Zero`, but (`MLton_bogus` not withstanding), no such value could have been constructed by the program). Upon encountering `x_331537: lambdas_28893 = new Env_44439 (x_331538)`, SimplifyTypes stops translating the statements of `L_215729` (and translates the whole block into a statementless/Bug-transfer block). However, SimplifyTypes iterates through the blocks of the program via a DFS, so goes on to translate `L_222685` and encounters a use of `newIn_2` and terminates with `newIn_2 has no varInfo property`. In this particular program, it is not appropriate to conclude that `lambdas_6803` has cardinality `Zero`, because a "value" of such a type is created by `MLton_bogus`. To accommodate such "values", the SimplifyTypes pre-processing is extended to mark any tycon created by `MLton_bogus` as having cardinality `Many`. It does not seem necessary to mark all constituent types of the type created by a `MLton_bogus` as having cardinality `Many`, because a "bogus" values should never be deconstructed. It is not clear that the treatment of unreachable code following the construction of a `Zero` cardinality ConApp is sufficiently robust (because of the DFS that will visit successor blocks), but has not seemed to be problematic. Commit: 33e12079463322c88efccbb7973db18a1d55418d https://github.com/MLton/mlton/commit/33e12079463322c88efccbb7973db18a1d55418d Author: Matthew Fluet <Mat...@gm...> Date: 2018-11-25 (Sun, 25 Nov 2018) Changed paths: M mlton/ssa/n-point-lattice.fun M mlton/ssa/simplify-types.fun M mlton/ssa/ssa-tree.fun Log Message: ----------- Merge pull request #282 from MatthewFluet/simplifyTypes-update Update SimplifyTypes SSA optimization pass Fix bug in `NPointLattice`, add diagnostics to `SimplifyTypes`, use standard `ThreePointLattice` for `Cardinality` in `SimplifyTypes`, and fix a latent bug in `SimplifyTypes` related to `Useless` and `MLton_bogus`. Compare: https://github.com/MLton/mlton/compare/907502387ab4...33e120794633 **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019. |
From: GitHub <no...@gi...> - 2018-11-07 16:58:15
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: c0bee8e42d3aa4a70a0bcc709bca8eac6b35cb4a https://github.com/MLton/mlton/commit/c0bee8e42d3aa4a70a0bcc709bca8eac6b35cb4a Author: Dan Cross <cr...@gm...> Date: 2018-11-05 (Mon, 05 Nov 2018) Changed paths: M mlton/codegen/amd64-codegen/amd64-codegen.fun M mlton/codegen/x86-codegen/x86-codegen.fun M runtime/gc/signals.c M runtime/gc/virtual-memory.c M runtime/platform.h M runtime/platform/mmap-protect.c M runtime/platform/mmap.c M runtime/platform/openbsd.c M runtime/platform/use-mmap.c Log Message: ----------- Support OpenBSD 6.4. OpenBSD 6.4 introduced checking that the contents of the hardware stack pointer point into a region of memory mapped with the `MAP_STACK` mmap(2) flag. If, on entry to the kernel, the %rsp on AMD64 or %esp on x86 contain other data, the program will be killed. Without this, executables build with mlton such as `mllex` were dumping core. We support this by: 1) Unconditionally reserving %rsp/%esp in builds targeting OpenBSD. 2) Providing plumbing support for passing arbitrary flags when allocating a signal stack, and passing with the `MAP_STACK` flag down that plumbing when defined. With these changes, building executables for OpenBSD seems to work as expected. Thanks to Matthew Fluet for pointing me at the existing support for reserving %*sp for Cygwin. Signed-off-by: Dan Cross <cr...@gm...> Commit: c4d0154bf043e90ffb9d9e54099358f68fe72bf0 https://github.com/MLton/mlton/commit/c4d0154bf043e90ffb9d9e54099358f68fe72bf0 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-07 (Wed, 07 Nov 2018) Changed paths: M CHANGELOG.adoc Log Message: ----------- Add CHANGELOG entry for OpenBSD 6.4 support Commit: 907502387ab4657930139cf2553b751e2f3ff9f3 https://github.com/MLton/mlton/commit/907502387ab4657930139cf2553b751e2f3ff9f3 Author: Matthew Fluet <Mat...@gm...> Date: 2018-11-07 (Wed, 07 Nov 2018) Changed paths: M CHANGELOG.adoc M mlton/codegen/amd64-codegen/amd64-codegen.fun M mlton/codegen/x86-codegen/x86-codegen.fun M runtime/gc/signals.c M runtime/gc/virtual-memory.c M runtime/platform.h M runtime/platform/mmap-protect.c M runtime/platform/mmap.c M runtime/platform/openbsd.c M runtime/platform/use-mmap.c Log Message: ----------- Merge pull request #278 from dancrossnyc/master Support OpenBSD 6.4. Add support for OpenBSD 6.4, which added stack-pointer register checking to the kernel. On OpenBSD, `%rsp`/`%esp` must be reserved by the native codegens (so as to always point to the C stack) and the signal stack must be `mmap`-ed with `MAP_STACK`. Compare: https://github.com/MLton/mlton/compare/c9a5560a98ea...907502387ab4 **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019. |
From: GitHub <no...@gi...> - 2018-11-04 11:47:04
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 53806723570d8b5d968982f6d7ff204dd4496ae9 https://github.com/MLton/mlton/commit/53806723570d8b5d968982f6d7ff204dd4496ae9 Author: Jason Carr <jca...@gm...> Date: 2018-10-17 (Wed, 17 Oct 2018) Changed paths: M lib/mlton/basic/hash-table.sig M lib/mlton/basic/hash-table.sml M lib/mlton/basic/sources.cm M lib/mlton/basic/sources.mlb Log Message: ----------- Add a simple hash-table implementation on top of HashSet Commit: 70405449f6d1d3147087c14ad0d92378b12b20ce https://github.com/MLton/mlton/commit/70405449f6d1d3147087c14ad0d92378b12b20ce Author: Jason Carr <jca...@gm...> Date: 2018-10-17 (Wed, 17 Oct 2018) Changed paths: M lib/mlton/basic/hash-table.sig M lib/mlton/basic/hash-table.sml Log Message: ----------- Add some remaining methods to HashTable Commit: db98a78056e9cadb11a49ccd12b408344a695894 https://github.com/MLton/mlton/commit/db98a78056e9cadb11a49ccd12b408344a695894 Author: Jason Carr <jca...@gm...> Date: 2018-10-19 (Fri, 19 Oct 2018) Changed paths: M lib/mlton/basic/hash-table.sig M lib/mlton/basic/hash-table.sml Log Message: ----------- Fix up HashTable Commit: cc86fb5947d3eabae5669e5a03aec259a66d8622 https://github.com/MLton/mlton/commit/cc86fb5947d3eabae5669e5a03aec259a66d8622 Author: Jason Carr <jca...@gm...> Date: 2018-10-19 (Fri, 19 Oct 2018) Changed paths: M lib/mlton/basic/hash-table.sig M lib/mlton/basic/hash-table.sml M lib/mlton/sources.mlb Log Message: ----------- Add optional caching to HashTable and add to lib/mlton/sources.mlb Commit: 5e59ddf5e3725ad1b3e03ef27e82bab0429fac61 https://github.com/MLton/mlton/commit/5e59ddf5e3725ad1b3e03ef27e82bab0429fac61 Author: Jason Carr <jca...@gm...> Date: 2018-10-19 (Fri, 19 Oct 2018) Changed paths: M lib/mlton/basic/hash-table.sig M lib/mlton/basic/hash-table.sml Log Message: ----------- Add removeWhen to HashTable (removeAll at key) Commit: 12157dcb0597f552c86bf24b6a77fd287480bad7 https://github.com/MLton/mlton/commit/12157dcb0597f552c86bf24b6a77fd287480bad7 Author: Jason Carr <jca...@gm...> Date: 2018-10-19 (Fri, 19 Oct 2018) Changed paths: M mlton/ssa/common-subexp.fun M mlton/ssa/known-case.fun M mlton/ssa/parse-ssa.fun M mlton/ssa/parse-ssa2.fun M mlton/ssa/share-zero-vec.fun Log Message: ----------- Change a couple of transforms to use HashTables Commit: 039472f5ee7407b34c7792ea7a4251a02abf30e2 https://github.com/MLton/mlton/commit/039472f5ee7407b34c7792ea7a4251a02abf30e2 Author: Jason Carr <jca...@gm...> Date: 2018-10-22 (Mon, 22 Oct 2018) Changed paths: A lib/mlton/basic/hash.sig A lib/mlton/basic/hash.sml Log Message: ----------- Add 32-bit hash for testing Commit: 34af7a33ca51bca3673d83df281237f03b696af8 https://github.com/MLton/mlton/commit/34af7a33ca51bca3673d83df281237f03b696af8 Author: Jason Carr <jca...@gm...> Date: 2018-10-23 (Tue, 23 Oct 2018) Changed paths: M lib/mlton/basic/hash.sig M lib/mlton/basic/hash.sml M lib/mlton/basic/sources.cm M lib/mlton/basic/sources.mlb M lib/mlton/sources.mlb M mlton/atoms/hash-type.fun M mlton/atoms/profile-exp.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/xml/monomorphise.fun Log Message: ----------- Add Hash into codebase and use in several locations Commit: c8926804807229a955b2ccd606748dc1cefd137e https://github.com/MLton/mlton/commit/c8926804807229a955b2ccd606748dc1cefd137e Author: Jason Carr <jca...@gm...> Date: 2018-10-23 (Tue, 23 Oct 2018) Changed paths: M mlton/atoms/hash-type.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/xml/monomorphise.fun Log Message: ----------- Fix some unused variables Commit: 2493a0558e1fde85d06c2062276f979ce0adb729 https://github.com/MLton/mlton/commit/2493a0558e1fde85d06c2062276f979ce0adb729 Author: Jason Carr <jca...@gm...> Date: 2018-10-23 (Tue, 23 Oct 2018) Changed paths: M lib/mlton/basic/hash-table.sml M lib/mlton/basic/hash.sml M lib/mlton/sources.cm Log Message: ----------- Fix Hash/HashTable building on smlnj Commit: bb6acdf9fcdb297f743d6c70797810dfce3ace8a https://github.com/MLton/mlton/commit/bb6acdf9fcdb297f743d6c70797810dfce3ace8a Author: Jason Carr <jca...@gm...> Date: 2018-10-23 (Tue, 23 Oct 2018) Changed paths: M lib/mlton/basic/hash.sig M lib/mlton/basic/hash.sml M mlton/atoms/hash-type.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/xml/monomorphise.fun Log Message: ----------- Improve Hash interface for vectors Commit: b8d9a3aedaab5bad075290b36d08e2759bba4383 https://github.com/MLton/mlton/commit/b8d9a3aedaab5bad075290b36d08e2759bba4383 Author: Jason Carr <jca...@gm...> Date: 2018-10-23 (Tue, 23 Oct 2018) Changed paths: M mlton/ssa/restore.fun M mlton/ssa/restore2.fun Log Message: ----------- Add two more missing Hash combines Commit: 734d6f82ca57c111a53dff8579556d3c89a0b0f5 https://github.com/MLton/mlton/commit/734d6f82ca57c111a53dff8579556d3c89a0b0f5 Author: Jason Carr <jca...@gm...> Date: 2018-10-31 (Wed, 31 Oct 2018) Changed paths: 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 Log Message: ----------- Fix copyright years Commit: f2e5cc6c403c9c308601c57885b6b86de35a221f https://github.com/MLton/mlton/commit/f2e5cc6c403c9c308601c57885b6b86de35a221f Author: Jason Carr <jca...@gm...> Date: 2018-10-31 (Wed, 31 Oct 2018) Changed paths: M mlnlffigen/sources.mlb Log Message: ----------- Safely handle struct Hash collision in mlnlffigen Commit: 8a29fb260116e15695af5d0243c128436c625aeb https://github.com/MLton/mlton/commit/8a29fb260116e15695af5d0243c128436c625aeb Author: Jason Carr <jca...@gm...> Date: 2018-10-31 (Wed, 31 Oct 2018) Changed paths: M lib/mlton/basic/hash-table.sig M lib/mlton/basic/hash-table.sml M mlton/ssa/common-subexp.fun M mlton/ssa/known-case.fun M mlton/ssa/parse-ssa.fun M mlton/ssa/parse-ssa2.fun M mlton/ssa/share-zero-vec.fun Log Message: ----------- HashTable: always cache hash instead of optionally Commit: d5a6916fecd7239fa289103deb33260e293735d9 https://github.com/MLton/mlton/commit/d5a6916fecd7239fa289103deb33260e293735d9 Author: Jason Carr <jca...@gm...> Date: 2018-10-31 (Wed, 31 Oct 2018) Changed paths: M lib/mlton/basic/hash.sig M lib/mlton/basic/hash.sml M mlton/atoms/hash-type.fun M mlton/atoms/profile-exp.fun M mlton/ssa/restore.fun M mlton/ssa/restore2.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/xml/monomorphise.fun Log Message: ----------- Change Hash.combine to take tuples, add Hash.list, Hash.listMap Commit: 6a29aaf1f44183e434679374719844a22bc13339 https://github.com/MLton/mlton/commit/6a29aaf1f44183e434679374719844a22bc13339 Author: Jason Carr <jca...@gm...> Date: 2018-10-31 (Wed, 31 Oct 2018) Changed paths: M mlnlffigen/sources.mlb Log Message: ----------- Filter mlton_lib in mlnlffigen to only necessary structures Commit: 80d21ff70c9590f3d7041e3ed339969f72229dfd https://github.com/MLton/mlton/commit/80d21ff70c9590f3d7041e3ed339969f72229dfd Author: Jason Carr <jca...@gm...> Date: 2018-11-02 (Fri, 02 Nov 2018) Changed paths: M lib/mlton/basic/hash-table.sig M lib/mlton/basic/hash-table.sml M lib/mlton/basic/hash.sig Log Message: ----------- Make suggested changes and cleanup Commit: 01043840fc44690590b975c7ed9eb5a948839708 https://github.com/MLton/mlton/commit/01043840fc44690590b975c7ed9eb5a948839708 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-03 (Sat, 03 Nov 2018) Changed paths: M lib/mlton/basic/hash-table.sig Log Message: ----------- Delete `functor TestHashTable` Commit: 116c53d807685362823ecb9e3dbc7295458654fa https://github.com/MLton/mlton/commit/116c53d807685362823ecb9e3dbc7295458654fa Author: Matthew Fluet <mat...@gm...> Date: 2018-11-03 (Sat, 03 Nov 2018) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Use `Hash.combine3` for `SsaTree2.Transfer.Select` hash Commit: 899e265480bdf8a6d5da05505925d77613924975 https://github.com/MLton/mlton/commit/899e265480bdf8a6d5da05505925d77613924975 Author: Matthew Fluet <mat...@gm...> Date: 2018-11-03 (Sat, 03 Nov 2018) Changed paths: M lib/mlton/basic/hash-table.sig M lib/mlton/basic/hash-table.sml M mlton/ssa/common-subexp.fun M mlton/ssa/known-case.fun M mlton/ssa/parse-ssa.fun M mlton/ssa/parse-ssa2.fun M mlton/ssa/share-zero-vec.fun Log Message: ----------- Tweak whitespace and code style Commit: c9a5560a98ea3304c4c821fb6b321f710a1616e7 https://github.com/MLton/mlton/commit/c9a5560a98ea3304c4c821fb6b321f710a1616e7 Author: Matthew Fluet <Mat...@gm...> Date: 2018-11-04 (Sun, 04 Nov 2018) Changed paths: M lib/mlton/basic/hash-table.sig M lib/mlton/basic/hash-table.sml A lib/mlton/basic/hash.sig A lib/mlton/basic/hash.sml M lib/mlton/basic/sources.cm M lib/mlton/basic/sources.mlb M lib/mlton/sources.cm M lib/mlton/sources.mlb M mlnlffigen/sources.mlb M mlton/atoms/hash-type.fun M mlton/atoms/profile-exp.fun M mlton/ssa/common-subexp.fun M mlton/ssa/known-case.fun M mlton/ssa/parse-ssa.fun M mlton/ssa/parse-ssa2.fun M mlton/ssa/restore.fun M mlton/ssa/restore2.fun M mlton/ssa/share-zero-vec.fun M mlton/ssa/ssa-tree.fun M mlton/ssa/ssa-tree2.fun M mlton/xml/monomorphise.fun Log Message: ----------- Merge pull request #276 from jasoncarr0/hash-additions Add and use `structure HashTable` and `structure Hash` `structure HashTable` serves as a wrapper to offer a simpler interface for the common usage of a `HashSet.t` as a key-value map. `structure Hash` provides operations to combine word hashes, using a Foller-No-Voll-style hash (multiply then xor). A number of SSA passes have been updated to make use of these, generally reducing code size. Compare: https://github.com/MLton/mlton/compare/0b0407495eed...c9a5560a98ea **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019. |
From: GitHub <no...@gi...> - 2018-10-31 20:36:37
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019. |
From: GitHub <no...@gi...> - 2018-10-31 20:35:49
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 2315db7ccde43d0f40e5ef068138734101ea7a28 https://github.com/MLton/mlton/commit/2315db7ccde43d0f40e5ef068138734101ea7a28 Author: Matthew Fluet <mat...@gm...> Date: 2018-10-31 (Wed, 31 Oct 2018) Changed paths: M basis-library/build/sources.mlb Log Message: ----------- Install (final) top-level exn handler earlier in Basis Libary eval Building or running MLton on a new platform sometimes encounters the following: unhandled exception: SysErr MLton bug: unhandled exception in Basis Library Please send a bug report to ML...@ml.... This comes from the "emergency" top-level exception handler installed. However, to track down the origin of unhandled exceptions in the Basis Library, it is useful to compile with `-const "ExnHistory true"`, but the "emergency" top-level exception handler does not capture or print exception histories. This commit moves the installation of the final top-level exception handler to earlier in the evaluation of the Basis Library. (Though, now unhandled exceptions in the Basis Library won't get "flagged" as such along with a request for a bug report.) **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019. |
From: GitHub <no...@gi...> - 2018-10-15 19:55:56
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: d4c412e2d3edafe502794023d23c116623aa5626 https://github.com/MLton/mlton/commit/d4c412e2d3edafe502794023d23c116623aa5626 Author: Octaplex <dam...@gm...> Date: 2018-05-23 (Wed, 23 May 2018) Changed paths: M .gitignore Log Message: ----------- Ignore vim configuration files Commit: c938d1bbd328e57caa5e071a8bc86f2ecbbcacc5 https://github.com/MLton/mlton/commit/c938d1bbd328e57caa5e071a8bc86f2ecbbcacc5 Author: Octaplex <dam...@gm...> Date: 2018-05-23 (Wed, 23 May 2018) Changed paths: M basis-library/arrays-and-vectors/sequence.fun M basis-library/integer/int-inf0.sml M basis-library/integer/int.sml M basis-library/integer/integer.sig M basis-library/integer/num0.sml M basis-library/list/list.sml M basis-library/primitive/prim-int.sml M basis-library/text/char.sml M basis-library/text/string-cvt.sml M basis-library/util/CUtil.sml Log Message: ----------- Flip semantics of `!` and `?` primitive operators Previously, the `!` family of primitive operators (`+!` etc.) was an operation that always checked for overflow, whereas the `?` family never checked for overflow. However, as a first step towards transitioning to a model wherein the `?` family is a predicate that checks for overflow, here the semantics are flipped such that the `!` family never checks for overflow, and `?` always does. Commit: 8b3cef190cff802dc3604ae5d1ea8f5bfc029254 https://github.com/MLton/mlton/commit/8b3cef190cff802dc3604ae5d1ea8f5bfc029254 Author: Octaplex <dam...@gm...> Date: 2018-05-23 (Wed, 23 May 2018) Changed paths: M basis-library/arrays-and-vectors/array2.sml M basis-library/arrays-and-vectors/sequence.fun M basis-library/arrays-and-vectors/sequence0.sml M basis-library/integer/int-inf0.sml M basis-library/primitive/prim-int.sml M basis-library/top-level/infixes-overflow.sml M basis-library/top-level/infixes-unsafe.sml Log Message: ----------- Introduce `$` operators and make `?` predicates This change introduces a new family of `$` operators, which always check their arguments for overflow and raise an appropriate exception. The `?` family of operators is changed to detect overflow (returning a `Bool`), and the `$` family is defined in terms of the corresponding `?` and `!` operators. Previous uses of `?` in the basis library are also corrected to use the new system. Commit: cb4f3fc84f79f6211e579bd50222ba6c98f89cba https://github.com/MLton/mlton/commit/cb4f3fc84f79f6211e579bd50222ba6c98f89cba Author: Daman Morris <dam...@gm...> Date: 2018-05-31 (Thu, 31 May 2018) Changed paths: M basis-library/primitive/prim-int.sml M basis-library/primitive/prim1.sml Log Message: ----------- Make new primitives backwards-compatible Previously the old primitives were simply deleted; this commit introduces a compile-time switch (`MLton.newOverflow`) to switch between the old and new systems. This should allow for easier development and eventual integration of the new primitives, which can be incrementally implemented on the backend while keeping the old ones intact. Commit: f9e1cb671f4d5c27578eb14c7a6c5a98f81508b4 https://github.com/MLton/mlton/commit/f9e1cb671f4d5c27578eb14c7a6c5a98f81508b4 Author: Daman Morris <dam...@gm...> Date: 2018-05-31 (Thu, 31 May 2018) Changed paths: M basis-library/primitive/basis-ffi.sml M mlton/atoms/prim.fun M mlton/atoms/prim.sig M mlton/backend/ssa-to-rssa.fun M mlton/codegen/c-codegen/c-codegen.fun M runtime/basis-ffi.h M runtime/basis/Word/Word-check.h M runtime/gen/basis-ffi.def M runtime/gen/basis-ffi.h M runtime/gen/basis-ffi.sml Log Message: ----------- Add minimal backend support for new primitives Commit: 7bb41e562077d76ae5f1930554ae13b7ba68ea65 https://github.com/MLton/mlton/commit/7bb41e562077d76ae5f1930554ae13b7ba68ea65 Author: Daman Morris <dam...@gm...> Date: 2018-05-31 (Thu, 31 May 2018) Changed paths: M mlton/codegen/c-codegen/c-codegen.fun Log Message: ----------- Remove unnecessary cases of Arith transfers Commit: 81d8cf8e77f85b43aff9e5b09b1518340c62156f https://github.com/MLton/mlton/commit/81d8cf8e77f85b43aff9e5b09b1518340c62156f Author: Daman Morris <dam...@gm...> Date: 2018-06-12 (Tue, 12 Jun 2018) Changed paths: M include/amd64-main.h 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-mlton.fun Log Message: ----------- Add support for new primitives in amd64 codegen Commit: efef5dc466fc33349f374380bccbeac3b7a38949 https://github.com/MLton/mlton/commit/efef5dc466fc33349f374380bccbeac3b7a38949 Author: Daman Morris <dam...@gm...> Date: 2018-06-25 (Mon, 25 Jun 2018) Changed paths: M runtime/basis/Word/Word-check.h Log Message: ----------- Use GCC builtins for overflow checking Commit: b05ba132b1f07ea37b24d3ad5344a208c0eeb45b https://github.com/MLton/mlton/commit/b05ba132b1f07ea37b24d3ad5344a208c0eeb45b Author: Daman Morris <dam...@gm...> Date: 2018-06-25 (Mon, 25 Jun 2018) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Add support for LLVM codegen Commit: 819ddffb974a7a7efd737f15cf2cff4efa56aefe https://github.com/MLton/mlton/commit/819ddffb974a7a7efd737f15cf2cff4efa56aefe Author: Daman Morris <dam...@gm...> Date: 2018-06-29 (Fri, 29 Jun 2018) Changed paths: M runtime/basis/Word/Word-check.h Log Message: ----------- Refactor checked word primitives for C codegen A previous change introduced the use of GCC builtins for overflow checking with the `newOverflow` flavor of checked primitive operations. However, these builtins are compatible only with GCC versions 7 and above, so to improve backwards compatibility a compatibility layer is added using the older builtins for legacy GCC versions. In addition, since much of the code for the new and old primitive operations was shared, this shared code is pulled into the compatibility layer (provided as `_overflow_b` macros). Commit: 8de2d7c8e0d8c38ff9c1da2adf7d891d9615fd43 https://github.com/MLton/mlton/commit/8de2d7c8e0d8c38ff9c1da2adf7d891d9615fd43 Author: Daman Morris <dam...@gm...> Date: 2018-06-29 (Fri, 29 Jun 2018) Changed paths: M runtime/basis/Word/Word-check.h Log Message: ----------- Correct typo in `neg_overflow_b` application Commit: edafb83a08375e983f5875382d64d2434f2202fd https://github.com/MLton/mlton/commit/edafb83a08375e983f5875382d64d2434f2202fd Author: Daman Morris <dam...@gm...> Date: 2018-07-05 (Thu, 05 Jul 2018) Changed paths: M include/x86-main.h Log Message: ----------- Add overflowCheckTemp storage for x86 codegen Commit: 87ea212512fe78bede4180522dc566247431e420 https://github.com/MLton/mlton/commit/87ea212512fe78bede4180522dc566247431e420 Author: Daman Morris <dam...@gm...> Date: 2018-07-05 (Thu, 05 Jul 2018) Changed paths: M runtime/basis/Word/Word-check.h Log Message: ----------- Make negCheckP use `0-x` for bounds checking Commit: 4a32966ddd6b0e86e9bda3eeeccb3807658b25c8 https://github.com/MLton/mlton/commit/4a32966ddd6b0e86e9bda3eeeccb3807658b25c8 Author: Daman Morris <dam...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) 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-mlton.fun Log Message: ----------- Add support for x86 codegen Commit: a68f2092b582f866a83c120e08b7230d881879bc https://github.com/MLton/mlton/commit/a68f2092b582f866a83c120e08b7230d881879bc Author: Daman Morris <dam...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M runtime/basis/Word/Word-ops.h Log Message: ----------- Use GCC builtins in implementation of word prims Commit: 1822eb4aa877c31b1f58155ced4f6285f5d426ea https://github.com/MLton/mlton/commit/1822eb4aa877c31b1f58155ced4f6285f5d426ea Author: Daman Morris <dam...@gm...> Date: 2018-07-10 (Tue, 10 Jul 2018) Changed paths: M mlton/ssa/redundant-tests.fun Log Message: ----------- Add support for new primitives in redundantTests Commit: 267504cbd63977e4ad4070580f702e447686e813 https://github.com/MLton/mlton/commit/267504cbd63977e4ad4070580f702e447686e813 Author: Daman Morris <dam...@gm...> Date: 2018-07-10 (Tue, 10 Jul 2018) Changed paths: M mlton/atoms/prim.fun Log Message: ----------- Add arithmetic identity support for newOverflow Commit: 58eae83e15ec63494a102b3b32abe2f4ccc0d034 https://github.com/MLton/mlton/commit/58eae83e15ec63494a102b3b32abe2f4ccc0d034 Author: Daman Morris <dam...@gm...> Date: 2018-07-10 (Tue, 10 Jul 2018) Changed paths: M basis-library/primitive/prim1.sml Log Message: ----------- Re-arrange newOverflow operation order Previously, the new overflow-checking primitives were implemented by first checking for overflow and then performing the operation. This change refactors the implementation to instead perform and store the operation first, then check for overflow. This will allow the peephole optimization to be more easily implemented for the new overflow primitives in the native codegens. Commit: e6abe7f91eecc78c50873dce427ae1148241dfd4 https://github.com/MLton/mlton/commit/e6abe7f91eecc78c50873dce427ae1148241dfd4 Author: Daman Morris <dam...@gm...> Date: 2018-07-10 (Tue, 10 Jul 2018) Changed paths: M mlton/codegen/amd64-codegen/amd64-mlton.fun Log Message: ----------- Use `0-x` for negation overflow checking in amd64 Commit: 72cb10ba160b3852acf1c8d36d1a7926bb7ed50e https://github.com/MLton/mlton/commit/72cb10ba160b3852acf1c8d36d1a7926bb7ed50e Author: Daman Morris <dam...@gm...> Date: 2018-07-10 (Tue, 10 Jul 2018) Changed paths: M mlton/atoms/prim.fun M mlton/codegen/amd64-codegen/amd64-mlton.fun M mlton/codegen/x86-codegen/x86-mlton.fun Log Message: ----------- Remove unused variables Commit: 3dffc90847db52ca06b8cd781168e0aa5b204beb https://github.com/MLton/mlton/commit/3dffc90847db52ca06b8cd781168e0aa5b204beb Author: Daman Morris <dam...@gm...> Date: 2018-07-12 (Thu, 12 Jul 2018) Changed paths: M mlton/codegen/amd64-codegen/amd64-mlton.fun M mlton/codegen/x86-codegen/x86-mlton.fun Log Message: ----------- Correct implementation of `mulCheckP` The native codegens (amd64, x86) previously used the pmd and imul2 instructions incorrectly to check for overflow (based erroneously on the pattern of the corresponding arithmetic operations). This fix changes the implementation to use `pmdcc` for all unsigned operations. Commit: 844d11fbff78f3b66c772914b424de9b74a289e7 https://github.com/MLton/mlton/commit/844d11fbff78f3b66c772914b424de9b74a289e7 Author: Daman Morris <dam...@gm...> Date: 2018-07-12 (Thu, 12 Jul 2018) Changed paths: M mlton/codegen/amd64-codegen/amd64-mlton.fun M mlton/codegen/x86-codegen/x86-mlton.fun Log Message: ----------- Rename `negal(64)cc` to `neg(64)cc` Commit: 8f2dfab6c1d344fc2d824b0b6fd5844f9df99959 https://github.com/MLton/mlton/commit/8f2dfab6c1d344fc2d824b0b6fd5844f9df99959 Author: Daman Morris <dam...@gm...> Date: 2018-07-12 (Thu, 12 Jul 2018) Changed paths: M mlton/ssa/redundant-tests.fun Log Message: ----------- Use a single statement map in redundantTests The existing redundantTests code consisted of a map over statements and a separate check for the presence of an arith transfer for the old overflow-checking primitives. Initially an additional map over statements was added to deal with the new overflow-checking primitives; this change merges the two maps into one. Commit: afd428d180324642bd8903882705de182f8d0992 https://github.com/MLton/mlton/commit/afd428d180324642bd8903882705de182f8d0992 Author: Daman Morris <dam...@gm...> Date: 2018-07-16 (Mon, 16 Jul 2018) Changed paths: M mlton/codegen/amd64-codegen/amd64-simplify.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun Log Message: ----------- Add peephole optimization for new primitives Adds a new peephole optimization pass for the native codegens to eliminate redundant AL instructions. In general, whenever a checked word operation is generated, the `Word_*` and `Word_*CheckP` operations generate distinct assembly instructions. However, only one of these instructions is actually needed, since both perform the same operation and set the same overflow flag, so the generated assembly for a `Word_*CheckP` immediately following an identical `Word_*` operation can be safely removed. Currently, blocks where one `mov` instruction has been hoisted to the front of the block are also recognized. Commit: 01c9f125fda01c46588b9b72ddbab776d6a39321 https://github.com/MLton/mlton/commit/01c9f125fda01c46588b9b72ddbab776d6a39321 Author: Daman Morris <dam...@gm...> Date: 2018-07-27 (Fri, 27 Jul 2018) Changed paths: M mlton/codegen/amd64-codegen/amd64.fun M mlton/codegen/amd64-codegen/amd64.sig Log Message: ----------- Add layout for amd64 chunks/blocks Commit: a5d8e795ef89a880106cd5a1766346f16ffb7fa1 https://github.com/MLton/mlton/commit/a5d8e795ef89a880106cd5a1766346f16ffb7fa1 Author: Daman Morris <dam...@gm...> Date: 2018-07-27 (Fri, 27 Jul 2018) Changed paths: M mlton/codegen/amd64-codegen/amd64-simplify.fun Log Message: ----------- Perform `elimALRedundant` before `moveHoist` Previously the `elimALRedundant` optimization was missing several cases because it occurred after the `moveHoist` optimization. Originally, an additional case was added to the `elimALRedundant` optimization to handle cases where one move had been hoisted immediately before the corresponding arithmetic operations, but this did not account for cases where one or both moves were hoisted elsewhere in the block. This change introduces a new group of optimizations in the `PeepholeLivenessBlock` section which execute before `moveHoist`. In the future additional optimizations may be added, but at present only the `elimALRedundant` optimization occurs in this group. In addition, the `elimALRedundant` was missing a branch to check for imul2 operations, which has now been added. Commit: 81f2c6eb6b958ddced7b5046df8d310122e4b3a5 https://github.com/MLton/mlton/commit/81f2c6eb6b958ddced7b5046df8d310122e4b3a5 Author: Daman Morris <dam...@gm...> Date: 2018-07-30 (Mon, 30 Jul 2018) Changed paths: M mlton/codegen/x86-codegen/x86-simplify.fun Log Message: ----------- Add `elimALRedundant` pass to x86 codegen Commit: ff6b544bdccebed69e2ce0579cd5a7c853f5d2e2 https://github.com/MLton/mlton/commit/ff6b544bdccebed69e2ce0579cd5a7c853f5d2e2 Author: Daman Morris <dam...@gm...> Date: 2018-07-31 (Tue, 31 Jul 2018) Changed paths: M mlton/codegen/amd64-codegen/amd64-simplify.fun M mlton/codegen/x86-codegen/x86-simplify.fun Log Message: ----------- Add more peephole optimization coverage Previously, some redundant `mulCheckP` operations were missed in the main peephole optimization pass due to a previous multiplication of a variable by 2 being replaced by an addition of that variable to itself. This change adds a new peephole optimization to catch such operations. Commit: 5de7724f8aa661eed17a5e19d0e478f03c38a199 https://github.com/MLton/mlton/commit/5de7724f8aa661eed17a5e19d0e478f03c38a199 Author: Daman Morris <dam...@gm...> Date: 2018-08-01 (Wed, 01 Aug 2018) Changed paths: M mlton/codegen/amd64-codegen/amd64-simplify.fun Log Message: ----------- Fix undefined reference in amd64-simplify.fun Commit: 47465f0c60f7daf0585ed4fe60d689075eac25db https://github.com/MLton/mlton/commit/47465f0c60f7daf0585ed4fe60d689075eac25db Author: Daman Morris <dam...@gm...> Date: 2018-08-03 (Fri, 03 Aug 2018) Changed paths: M mlton/codegen/amd64-codegen/amd64-mlton.fun Log Message: ----------- Replace `0-x` in negCheckP with a NEG instruction Commit: da8f4ee9ecf450e9ddace777072a262f6e848715 https://github.com/MLton/mlton/commit/da8f4ee9ecf450e9ddace777072a262f6e848715 Author: Daman Morris <dam...@gm...> Date: 2018-08-06 (Mon, 06 Aug 2018) Changed paths: M mlton/codegen/amd64-codegen/amd64-simplify.fun M mlton/codegen/x86-codegen/x86-simplify.fun Log Message: ----------- Modify peephole template for native codegens Commit: 7f8f493a3b45af4b03f47c5537d3ca0af6b9f96e https://github.com/MLton/mlton/commit/7f8f493a3b45af4b03f47c5537d3ca0af6b9f96e Author: Daman Morris <dam...@gm...> Date: 2018-08-13 (Mon, 13 Aug 2018) Changed paths: M runtime/basis/Word/Word-check.h Log Message: ----------- Use only `_overflow` builtins for the C codegen Previously the implementations of the relevant primitives in `Word-check.h` used either `_overflow` or `_overflow_p` builtins, depending on the GCC version, but since clang only has the `_overflow` variety, for simplicity's sake this removes the predicate variants. Commit: 7cd21e989ffd567ca4f8d906f7d5fcbdb5813f26 https://github.com/MLton/mlton/commit/7cd21e989ffd567ca4f8d906f7d5fcbdb5813f26 Author: Daman Morris <dam...@gm...> Date: 2018-08-13 (Mon, 13 Aug 2018) Changed paths: M basis-library/primitive/basis-ffi.sml M runtime/basis-ffi.h M runtime/basis/Word/Word-check.h M runtime/gen/basis-ffi.def M runtime/gen/basis-ffi.h M runtime/gen/basis-ffi.sml Log Message: ----------- Refactor C overflow primitives and FFI definitions Commit: bdb93353c376493107a4e98dfb50f5a193899813 https://github.com/MLton/mlton/commit/bdb93353c376493107a4e98dfb50f5a193899813 Author: Daman Morris <dam...@gm...> Date: 2018-08-13 (Mon, 13 Aug 2018) Changed paths: M .travis.yml Log Message: ----------- Use GCC5 for Travis CI Commit: 45461741312445e04e9eecc0d79b1f6467c176de https://github.com/MLton/mlton/commit/45461741312445e04e9eecc0d79b1f6467c176de Author: Daman Morris <dam...@gm...> Date: 2018-08-14 (Tue, 14 Aug 2018) Changed paths: M .gitignore Log Message: ----------- Un-ignore vim configuration files Commit: a410df47cd0aee09ba5261878616e52ea874b343 https://github.com/MLton/mlton/commit/a410df47cd0aee09ba5261878616e52ea874b343 Author: Matthew Fluet <mat...@gm...> Date: 2018-08-15 (Wed, 15 Aug 2018) Changed paths: A regression/int-mul-pow2.ok A regression/int-mul-pow2.sml Log Message: ----------- Add `int-mul-pow2` regression test demonstrating bug This new regression test demonstrates a bug with the native codegens and `MLton.newOverflow true`. Essentially, multiplications by a constant (positive or negative) power of 2 can either erroneously `raise Overflow` or fail to `raise Overflow`. The issue is that the `elimMDPow2` peephole optimization tries to replace multiplications and divisions by powers of 2 by appropriate shifts, adds, and negations. Unfortunately, the conditions for application of the peephole optimization are insufficient for `MLton.newOverflow true`. The implicit assumption in the `elimMDPow2` rewriter is that only signed multiplication may check for overflow and that if a signed multiplication is checked for overflow, then it does so by an immediately following iff-O transfer. Under these assumptions, there are special cases for multiplication by 1, -1, 2, and -2: imul 1, dst => jmp L_nooverflow jo L_overflow jmp L_nooverflow imul -1, dst => neg dst jo L_overflow jo L_overflow jmp L_nooverflow jmp L_nooverflow imul 2, dst => add dst, dst jo L_overflow jo L_overflow jmp L_nooverflow jmp L_nooverflow imul -2, dst => add dst, dst jo L_overflow neg dst jmp L_nooverflow jo L_overflow jmp L_nooverflow Note that multiplication by larger powers of 2 are not rewritten, as the resulting shift and negation will not set the overflow flag in an equivalent manner. If a signed multiplication is not immediately followed by an iff-condition transfer, then multiplication by 1, -1, 2, -2, 2^i (i > 1), and -2^i (i > 1) are rewritten: imul 1, dst => nop imul -1, dst => neg dst1 imul 2, dst => add dst, dst imul -2, dst => add dst, dst neg dst imul 2^i, dst => shl i, dst imul -2^i, dst => shl i, dst neg dst However, with `MLton.newOverflow true`, then a signed multiplication may be followed by a `seto fdst` instruction (followed by a `test fdst, fdst`, followed by a iff-NZ transfer --- this sequence will subsequently be optimized to an iff-O transfer by the `conditionalJump` peephole optimization, but the `conditionalJump` peephole optimization runs later, as part of `peepholeLivenessBlock`). When `imul 1, dst`, `imul 2^i, dst` (i > 1), and `imul -2^i, dst` (i > 1) are rewritten as above, then the subsequent `seto fdst` instruction will not be equivalent. The appropriate fix is unclear. One option is to strengthen the checks in the `elimMDPow2` peephole optimization to disable the rewrite if a subsequent `setcc` instruction would observe the flags. Another option is to delay the `elimMDPow2` peephole optimization until after the `elimALRedundant` peephole optimization has executed. As an aside, note that neither the C codegen nor the LLVM codegen have a similar bug, although their optimizers almost certainly optimize multiplications by powers of 2. This simply adds to the argument that the native codegens should be retired; resources may be better spent improving the C and LLVM codegens than maintaining the native codegens. Commit: 8fea7b6f4f97fc2a427bf7e79045636255c0c608 https://github.com/MLton/mlton/commit/8fea7b6f4f97fc2a427bf7e79045636255c0c608 Author: Daman Morris <dam...@gm...> Date: 2018-08-28 (Tue, 28 Aug 2018) Changed paths: M mlton/codegen/amd64-codegen/amd64-simplify.fun M mlton/codegen/x86-codegen/x86-simplify.fun Log Message: ----------- Fix `int-mul-pow2` bug Commit: 0da9dfe8cba5ec7f8580a76ab3518e4c4f41f4d6 https://github.com/MLton/mlton/commit/0da9dfe8cba5ec7f8580a76ab3518e4c4f41f4d6 Author: Daman Morris <dam...@gm...> Date: 2018-09-04 (Tue, 04 Sep 2018) Changed paths: M mlton/codegen/amd64-codegen/amd64-simplify.fun Log Message: ----------- Remove debug printing from `amd64-simplify.fun` Commit: 56d4362945a373d75b68ec15b83e5c2d08e587d0 https://github.com/MLton/mlton/commit/56d4362945a373d75b68ec15b83e5c2d08e587d0 Author: Daman Morris <dam...@gm...> Date: 2018-09-05 (Wed, 05 Sep 2018) Changed paths: M mlton/codegen/amd64-codegen/amd64-simplify.fun Log Message: ----------- Remove superfluous `elimALRedundant_pseudo` optimization Commit: 03e41a01e29e55f471a4066da583a5d9c9f3a518 https://github.com/MLton/mlton/commit/03e41a01e29e55f471a4066da583a5d9c9f3a518 Author: Daman Morris <dam...@gm...> Date: 2018-09-06 (Thu, 06 Sep 2018) Changed paths: M basis-library/arrays-and-vectors/sequence.fun M basis-library/arrays-and-vectors/sequence0.sml M basis-library/integer/int-inf.sig M basis-library/integer/int-inf0.sml Log Message: ----------- Correct initial refactoring of overflow primitives Commit: 724f1d19ff93607dac2f1a41ad742726f5c39436 https://github.com/MLton/mlton/commit/724f1d19ff93607dac2f1a41ad742726f5c39436 Author: Matthew Fluet <mat...@gm...> Date: 2018-09-10 (Mon, 10 Sep 2018) Changed paths: M basis-library/arrays-and-vectors/array2.sml Log Message: ----------- Correct initial refactoring of unchecked/checked arithmetic fs Commit: 83d69553a2bd78f63c60e5d6a1b093c97e429f2e https://github.com/MLton/mlton/commit/83d69553a2bd78f63c60e5d6a1b093c97e429f2e Author: Matthew Fluet <mat...@gm...> Date: 2018-09-10 (Mon, 10 Sep 2018) Changed paths: M include/amd64-main.h Log Message: ----------- Alphabetize symbols in `include/amd64-main.h` Commit: 315ccce3ed2a40cb52a1beb2e80647fd4105a2f6 https://github.com/MLton/mlton/commit/315ccce3ed2a40cb52a1beb2e80647fd4105a2f6 Author: Matthew Fluet <mat...@gm...> Date: 2018-09-10 (Mon, 10 Sep 2018) Changed paths: M mlton/codegen/llvm-codegen/llvm-codegen.fun Log Message: ----------- Avoid using `@llvm.{s,u}mul.with.overflow.i64` on x86entrytransfer Like `Word_mulCheck`, `Word_mulCheckP` should not use the `@llvm.{s,u}mul.with.overflow.i64` intrinsics, because they compile to calls to `__mulodi4` and `__udivdi3`, which are provided by compiler-rt and not always by libgcc. Commit: a1a4c0f00bcd3086b5435e81750ac38f850d9897 https://github.com/MLton/mlton/commit/a1a4c0f00bcd3086b5435e81750ac38f850d9897 Author: Matthew Fluet <mat...@gm...> Date: 2018-09-10 (Mon, 10 Sep 2018) Changed paths: M mlton/codegen/x86-codegen/x86-simplify.fun Log Message: ----------- Remove superfluous `elimALRedundant_pseudo` optimization The `elimALRedundant_pseudo` peephole optimization was removed from the amd64 codegen by 56d4362, but should also be removed from the x86 codegen. Commit: df2e9e111d29ff83a3c2e63231f442291f758b38 https://github.com/MLton/mlton/commit/df2e9e111d29ff83a3c2e63231f442291f758b38 Author: Matthew Fluet <mat...@gm...> Date: 2018-09-10 (Mon, 10 Sep 2018) Changed paths: M mlton/atoms/prim.fun Log Message: ----------- Delete trailing whitespace Commit: cf7c3a72a693af4c0d8e6505fc22748bb2b101b9 https://github.com/MLton/mlton/commit/cf7c3a72a693af4c0d8e6505fc22748bb2b101b9 Author: Matthew Fluet <mat...@gm...> Date: 2018-09-10 (Mon, 10 Sep 2018) Changed paths: M mlton/atoms/prim.fun Log Message: ----------- Tweak code formatting and style Commit: 939e827525eb17a48164a50bd1ba9e89cbb1dd19 https://github.com/MLton/mlton/commit/939e827525eb17a48164a50bd1ba9e89cbb1dd19 Author: Matthew Fluet <mat...@gm...> Date: 2018-09-10 (Mon, 10 Sep 2018) Changed paths: M mlton/atoms/prim.fun Log Message: ----------- Refactor to share code for simplifying arithmetic check primitives Commit: 9666e8ac4f0a6db673406e4fd59edf2d7a55bb10 https://github.com/MLton/mlton/commit/9666e8ac4f0a6db673406e4fd59edf2d7a55bb10 Author: Matthew Fluet <mat...@gm...> Date: 2018-09-10 (Mon, 10 Sep 2018) Changed paths: M mlton/backend/rep-type.fun Log Message: ----------- Share code for type-checking comparisons and overflow-checking prims Commit: a720283930c62a5fab10fc3df4b77a6d0faacd0f https://github.com/MLton/mlton/commit/a720283930c62a5fab10fc3df4b77a6d0faacd0f Author: Matthew Fluet <mat...@gm...> Date: 2018-09-10 (Mon, 10 Sep 2018) Changed paths: M mlton/codegen/amd64-codegen/amd64-mlton-basic.fun Log Message: ----------- Code formatting Commit: ce4352da076da5e534e49f1516d806e0b754ced4 https://github.com/MLton/mlton/commit/ce4352da076da5e534e49f1516d806e0b754ced4 Author: Matthew Fluet <mat...@gm...> Date: 2018-09-13 (Thu, 13 Sep 2018) Changed paths: M runtime/basis/Word/Word-check.h Log Message: ----------- Fix `#undef Word_negCheckP` (had been `#undef WordS_negCheckP`) Commit: b91bb9a1cfecda29dbd57c5ead0338e9ee4e2337 https://github.com/MLton/mlton/commit/b91bb9a1cfecda29dbd57c5ead0338e9ee4e2337 Author: Matthew Fluet <mat...@gm...> Date: 2018-09-13 (Thu, 13 Sep 2018) Changed paths: M mlton/backend/ssa-to-rssa.fun Log Message: ----------- Fix translation of `Word_*Check` primitives to C functions Commit f9e1cb6 renamed the `Word_*CheckOverflows` C functions to `Word_*CheckP` C functions. Commit: eda6021848af7cec8711da5152f06147fe6c330f https://github.com/MLton/mlton/commit/eda6021848af7cec8711da5152f06147fe6c330f Author: Matthew Fluet <mat...@gm...> Date: 2018-09-17 (Mon, 17 Sep 2018) Changed paths: M mlton/codegen/x86-codegen/x86-mlton.fun Log Message: ----------- Fix x86-codegen translation of `Word64_{add,sub,neg}CheckP` prims Addition, subtraction, and negation of 64bit operands on a 32bit platform must first add/sub the low bits and then addc/subb the high bits in order to correctly set the overflow flag. However, this does not yet pass all the regression tests: testing fixed-integer 15a16,21 > Int64: abs ~9223372036854775807 = Overflow <> 9223372036854775807 > Int64: ~ ~9223372036854775807 = Overflow <> 9223372036854775807 > Int64: fromString o toString 9223372036854775807 = Overflow <> 9223372036854775807 > Int64: fromString o toString 9223372036854775806 = Overflow <> 9223372036854775806 > unhandled exception: Overflow > Nonzero exit status. fixed-integer: difference with -type-check true -const MLton.newOverflow true Commit: 97315a4a4c928350640e41b8622e2745ae8d63fd https://github.com/MLton/mlton/commit/97315a4a4c928350640e41b8622e2745ae8d63fd Author: Matthew Fluet <mat...@gm...> Date: 2018-10-11 (Thu, 11 Oct 2018) Changed paths: M mlton/codegen/amd64-codegen/amd64-simplify.fun M mlton/codegen/x86-codegen/x86-simplify.fun Log Message: ----------- Fix `elimDeadDsts` peephole optimization in native codegens The `elimDeadDsts` peephole optimization attempts to eliminate instructions whose destinations are dead. There was limited code for preserving instructions that are immediately followed by a `setcc` instruction or a `if` transfer. However, it did not preserve instructions that were immediately followed by an `adc` or `sbb` instruction. This would lead to mis-compilation of `Word64_{add,neg,sub}CheckP` primitives. For example, a `Word64_addCheckP` could initially be translated to: movl src1Lo,tmpLo movl src1Hi,tmpHi addl src2Lo,tmpLo adcl src2Hi,tmpHi seto dst The "tmpLo" destination in the "addl src2Lo,tmpLo" instruction is dead and so the instruction would be eliminated; in turn, the "tmpLo" destination in the "movl src1Lo,tmpLo" instruction is dead and so the instruction would be eliminated. However, although the "tmpHi" destination in the "adcl src2Hi,tmpHi" instruction is dead, the instruction is preserved because of the subsequent "seto" instruction. The end result would be: movl src1Hi,tmpHi adcl src2Hi,tmpHi seto dst which fails to set "dst" appropriately. Now, in addition to preserving instructions that are immediately followed by a `setcc` instruction or an `if` transfer, an instruction immediately preserved by a `adc` or `sbb` instruction is preserved. Commit: 5b9520e112a2bf6e38be8c4d7ad5e1addf208e9c https://github.com/MLton/mlton/commit/5b9520e112a2bf6e38be8c4d7ad5e1addf208e9c Author: Matthew Fluet <mat...@gm...> Date: 2018-10-11 (Thu, 11 Oct 2018) Changed paths: M mlton/codegen/x86-codegen/x86-mlton.fun Log Message: ----------- Whitespace fixes Commit: 3a0a42d080fbb96f242ba7a7be7ebb9890587ff6 https://github.com/MLton/mlton/commit/3a0a42d080fbb96f242ba7a7be7ebb9890587ff6 Author: Matthew Fluet <mat...@gm...> Date: 2018-10-11 (Thu, 11 Oct 2018) Changed paths: M mlton/codegen/amd64-codegen/amd64-simplify.fun M mlton/codegen/x86-codegen/x86-simplify.fun Log Message: ----------- Strengthen `elimAddSub1` and `elimDeadDsts` peephole optimizations A `mov` instruction does not change the condition code flags, so continue looking for flag-dependent instructions past a `mov` instruction. Commit: 14df405d15667af51c041ec68eb172fdee960cd0 https://github.com/MLton/mlton/commit/14df405d15667af51c041ec68eb172fdee960cd0 Author: Matthew Fluet <mat...@gm...> Date: 2018-10-11 (Thu, 11 Oct 2018) Changed paths: M mlton/codegen/x86-codegen/x86-mlton.fun Log Message: ----------- Fix x86-codegen translation of `Word64_{add,neg,sub}CheckP` prims Previously, a `Word64_negCheckP` was initially translated to: movl $0,tmp subl srcLo,tmp movl $0,tmp sbbl srcHi,tmp seto dst With commits 97315a4 and 3a0a42d, the "subl srcLo,tmp" instruction is not eliminated by the `elimDeadDsts` peephole optimization. However, register allocation unconditionally rewrites `movl $0,dst` as `xorl dst,dst`, leaving code like: xorl tmp,tmp subl srcLo,tmp xorl tmp,tmp sbbl srcHi,tmp However, while a `mov` preserves the condition code flags, a `xorl` instruction clears the CF flag, which leads to incorrect flags being used and set by the `sbb` instruction. Similarly, a `Word64_addCheckP` was initially translated to: movl src1Lo,tmp addl src2Lo,tmp movl src1Hi,tmp adcl src2Hi,tmp seto dst which, if src1Hi were 0, would result in movl src1Lo,tmp addl src2Lo,tmp xorl tmp,tmp adcl src2Hi,tmp which leads to incorrect flags being used and set by the `adc` instruction. The existing 64-bit primitives avoid this problem by performing all of the `mov` instructions before the arithmetic instruction. Now, a `Word64_negCheckP` primitive is initially translated to: movl $0,tmpLo movl $0,tmpHi subl srcLo,tmpLo sbbl srcHi,tmpHi seto dst which can be correctly rewritten to: xorl tmpLo,tmpLo xorl tmpHi,tmpHi subl srcLo,tmpLo sbbl srcHi,tmpHi seto dst and a `Word64_addCheckP` primitive is initially translated to: movl src1Lo,tmpLo movl src1Hi,tmpHi addl src2Lo,tmpLo adcl src2Hi,tmpHi seto dst which, if src1Hi were 0, can be correctly rewritten to: movl src1Lo,tmpLo xorl tmpHi,tmpHi addl src2Lo,tmpLo adcl src2Hi,tmpHi Commit: 2dc39682fb62651492463304175c02582f4b99c6 https://github.com/MLton/mlton/commit/2dc39682fb62651492463304175c02582f4b99c6 Author: Matthew Fluet <mat...@gm...> Date: 2018-10-15 (Mon, 15 Oct 2018) Changed paths: M CHANGELOG.adoc Log Message: ----------- Add `CHANGELOG` entry for new `Overflow`-checking primitives Commit: 0b0407495eed792eff7dbce02835426c96cfbc3a https://github.com/MLton/mlton/commit/0b0407495eed792eff7dbce02835426c96cfbc3a Author: Matthew Fluet <mat...@gm...> Date: 2018-10-15 (Mon, 15 Oct 2018) Changed paths: M .travis.yml M CHANGELOG.adoc M basis-library/arrays-and-vectors/array2.sml M basis-library/arrays-and-vectors/sequence.fun M basis-library/arrays-and-vectors/sequence0.sml M basis-library/integer/int-inf.sig M basis-library/integer/int-inf0.sml M basis-library/integer/int.sml M basis-library/integer/integer.sig M basis-library/integer/num0.sml M basis-library/list/list.sml M basis-library/primitive/basis-ffi.sml M basis-library/primitive/prim-int.sml M basis-library/primitive/prim1.sml M basis-library/text/char.sml M basis-library/text/string-cvt.sml M basis-library/top-level/infixes-overflow.sml M basis-library/top-level/infixes-unsafe.sml M basis-library/util/CUtil.sml M include/amd64-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/ssa-to-rssa.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-simplify.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/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-mlton.fun M mlton/codegen/x86-codegen/x86-simplify.fun M mlton/control/control-flags.sig M mlton/control/control-flags.sml M mlton/main/main.fun M mlton/ssa/redundant-tests.fun A regression/int-mul-pow2.ok A regression/int-mul-pow2.sml M runtime/basis-ffi.h M runtime/basis/Word/Word-check.h M runtime/basis/Word/Word-ops.h M runtime/gen/basis-ffi.def M runtime/gen/basis-ffi.h M runtime/gen/basis-ffi.sml Log Message: ----------- Merge pull request #273 from daemanos/new-overflow Add new overflow-checking primitives Motivation MLton currently implements checked arithmetic with specialized primitives. These primitives are exposed to the Basis Library implementation as functions that implicitly raise a primitive exception: val +! = _prim "WordS8_addCheck": int * int -> int; In the XML IR, special care is taken to "remember" the primive exception associated with these primitives in order to implement exceptions correctly. In the SSA, SSA2, RSSA, and Machine IRs, these primitives are treated as transfers, rather than statements. This pull request implements a possibly better implementation of these operations as simple primitives that return a boolean: val +! = _prim "Word8_add": int * int -> int; val +? = _prim "WordS8_addCheckP": int * int -> bool; val +$ = fn (x, y) => let val r = +! (x, y) in if +? (x, y) then raise Overflow else r end This would eliminate the special cases in the XML IR and in the SSA, SSA2, RSSA, and Machine IRs, where the primitives would be treated as statements. Other compilers provide overflow checking via boolean-returning functions: * https://gcc.gnu.org/onlinedocs/gcc/Integer-Overflow-Builtins.html * https://llvm.org/docs/LangRef.html#arithmetic-with-overflow-intrinsics Implementation This patch refactors the primitive checked-arithmetic operations such that the suffix `?` represents a new overflow-checking predicate, a suffix `!` represents the non-overflow-checking variant, and a suffix `$` represents the overflow-checking variant (mnemonic: `$` for "safe" or "expensive"). The behavior of the new `$`-operations is controlled by a compile-time constant, `MLton.newOverflow`. When set to false (the default), the `$`-operations make use of the old-style implicit-`Overflow` primitives. When set to true, the `$`-operations are implemented as an `if`-expression that branches on the result of the corresponding `?`-operation and either raises the `Overflow` exception or returns the result of the corresponding `!`-operation. Finally, the bare operation is aliased to either the `$`-form (with overflow detection enabled) or the `!`-form (with overflow detection disabled). Essentially: val +! = _prim "Word8_add": int * int -> int; val +? = _prim "WordS8_addCheckP": int * int -> bool; val +$ = if MLton.newOverflow then fn (x, y) => let val r = +! (x, y) in if +? (x, y) then raise Overflow else r end else fn (x, y) => ((_prim "WordS8_addCheckP": int * int -> int;) (x, y)) handle PrimOverflow => raise Overflow val + = if MLton.detectOverflow then +$ else +! Note that the checked-arithmetic using `!`- and `$`-operations is careful to perform the `!`-operation before the `$`-operation. With the native-codegens, a new peephole optimization combines the separate unchecked-arithmetic operation and checked-arithmetic-predicate operation into a single instruction. For the C-codgen, the new checked-arithmetic-predicate primitives are translated to uses of the `__builtin_{add,sub,mul}_overflow` intrinsics (which improves upon the previous explicit conditional checking, but requires gcc 5 or greater). Similarly, for the LLVM-codgen, the new checked-arithmetic-predicate primitives are translated to uses of the `{sadd,uadd,smul,umul,ssub,usub}.with.overflow` intrinsics. For both the C- and LLVM-codegens, it is expected that these intrinsics will be combined with the separate unchecked-arithmetic operation. In addition, the `RedundantTests` optimization has been extended to eliminate the overflow test when adding or subtracting 1 with the new primitives. Performance The native-codegen peephole optimization and `RedundantTests` have been mostly sufficient to keep performance on par with the older checked-arithmetic primitives, and in some cases performance has even significantly improved. Below is a summary of the exceptional runtime ratios in the different codegens (both positive and negative): | Benchmark | Native | LLVM | C | |-----------------|--------|------|------| | even-odd | 1.00 | 1.00 | 1.09 | | hamlet | 0.98 | 0.90 | 0.93 | | imp-for | 0.99 | 1.50 | 0.46 | | lexgen | 0.92 | 1.31 | 1.24 | | matrix-multiply | 0.99 | 1.00 | 0.87 | | md5 | 1.06 | 1.01 | 0.97 | | tensor | 1.01 | 1.00 | 0.57 | No benchmarks were consistently worse or better on all codegen, e.g., the `imp-for` benchmark performed exceptionally badly on the LLVM codegen, but was much faster on the C codegen and about even on the native codegen. For this particular benchmark, the cause of the slowdown with the LLVM codegen has yet to be discovered. Similarly, the cause of the slowdown in `lexgen` with the C- and LLVM-codegens is unknown. For the `md5` benchmark, on the other hand, the cause of the slowdown with the native codegen seems to be a failure to eliminate common subexpressions in certain circumstances, which can potentially be improved in the future. Improvements in the C-codegen are likely to be due to the better overflow checking with builtins. Future work The `CommonSubexp` optimization currently handles `Arith` transfers specially; in particular, the result of an `Arith` transfer can be used in common `Arith` transfers that it dominates. This was done so that code like: (n + m) + (n + m) can be transformed to let val r = n + m in r + r end With the new checked-arithmetic-predicate primitives, the computation of the boolean value may be common-subexpr eliminated, but `Case` discrimination will not. This forces the boolean value to be reified and to be discriminated multiple times (though, perhaps `KnownCase` could eliminate subsequent discriminations). Extending `CommonSubexpr` to propagate flow-sensitive relationships at `Case` transfers to the dominated targets could improve the performance `md5` with `MLton.newOverflow true` and potentially improve performance elsewhere as well (e.g., by propagating the results of comparisons as well). Once all performance slowdowns with `MLton.newOverflow true` have been eliminated, it would be desirable to remove the old-style implicit-`Overflow` primitives and `Arith` transfers. This would eliminate many previous instances of special-case code to handle these primitives and transfers. Finally, it may be worth investigating an implementation of the checked-operations via val +$ = fn (x, y) => let val b = +? (x, y) val r = +! (x, y) in if b then raise Overflow else r end rather than val +$ = fn (x, y) => let val r = +! (x, y) in if +? (x, y) then raise Overflow else r end The advantage of calculating the boolean first is that when `x` (or `y`) is a loop variable and `r` will be passed as the value for the next iteration, then both `x` and `r` could be assigned the same location (pseudo-register or stack slot). `x` and `r` cannot share the same location when the boolean is calculated second, because `x` and `r` are both live at the calculation of the boolean. See MLton/mlton#218. This would require reworking the native-codegen peephole optimization. Compare: https://github.com/MLton/mlton/compare/e149c9917cfb...0b0407495eed **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019. |
From: GitHub <no...@gi...> - 2018-08-18 22:33:25
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: aaf56f5ae7e17de7972a0caa41053baa7b5199c4 https://github.com/MLton/mlton/commit/aaf56f5ae7e17de7972a0caa41053baa7b5199c4 Author: Manan Joshi <man...@gm...> Date: 2018-05-28 (Mon, 28 May 2018) Changed paths: A mlton/ssa/parse-ssa2.fun A mlton/ssa/parse-ssa2.sig Log Message: ----------- Initial Commit Commit: ecd08bb229b7fcd505f701bdd06f19d7657c38c4 https://github.com/MLton/mlton/commit/ecd08bb229b7fcd505f701bdd06f19d7657c38c4 Author: Manan Joshi <man...@gm...> Date: 2018-06-08 (Fri, 08 Jun 2018) Changed paths: M mlton/ssa/ssa-tree2.fun M mlton/ssa/ssa-tree2.sig Log Message: ----------- Refactored ssa2 pretty printer in order to parse it more naturally. Commit: 08843aaea0342f19948442695abfd801ad00d3e0 https://github.com/MLton/mlton/commit/08843aaea0342f19948442695abfd801ad00d3e0 Author: Manan Joshi <man...@gm...> Date: 2018-06-08 (Fri, 08 Jun 2018) Changed paths: M mlton/ssa/ssa-tree.sig M mlton/ssa/ssa-tree2.fun Log Message: ----------- Refactoring ssa-tree2. Commit: 7992c2092d8bc328a59ca69c1f174e8fe9aa3dcf https://github.com/MLton/mlton/commit/7992c2092d8bc328a59ca69c1f174e8fe9aa3dcf Author: Manan Joshi <man...@gm...> Date: 2018-06-08 (Fri, 08 Jun 2018) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Refactoring ssa-tree2. Commit: 1727414072f36d70c1aa6b2618c2e23cc242eed9 https://github.com/MLton/mlton/commit/1727414072f36d70c1aa6b2618c2e23cc242eed9 Author: Manan Joshi <man...@gm...> Date: 2018-06-08 (Fri, 08 Jun 2018) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Refactoring ssa-tree2. Commit: 091d069592f7d70440ba5df634ac5d7f9b321080 https://github.com/MLton/mlton/commit/091d069592f7d70440ba5df634ac5d7f9b321080 Author: Manan Joshi <man...@gm...> Date: 2018-06-08 (Fri, 08 Jun 2018) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Refactored ssa-tree2. Commit: 68eda0fd80cae27c37d38eb1f5f6c3727b42a5bf https://github.com/MLton/mlton/commit/68eda0fd80cae27c37d38eb1f5f6c3727b42a5bf Author: Manan Joshi <man...@gm...> Date: 2018-06-08 (Fri, 08 Jun 2018) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Refactored ssa-tree2. Commit: 954adfbf58a69be294d3dd0899ba3af1607060dd https://github.com/MLton/mlton/commit/954adfbf58a69be294d3dd0899ba3af1607060dd Author: Manan Joshi <man...@gm...> Date: 2018-06-08 (Fri, 08 Jun 2018) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Refactored ssa-tree2.fun Commit: 3fc344c910ae41bf254ff3b29063ab2e00f30454 https://github.com/MLton/mlton/commit/3fc344c910ae41bf254ff3b29063ab2e00f30454 Author: Manan Joshi <man...@gm...> Date: 2018-06-08 (Fri, 08 Jun 2018) Changed paths: M mlton/ssa/parse-ssa.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- Updated ssa-tree2.fun Commit: 7e36b16965dfca29bff7233f5453d8d23309666b https://github.com/MLton/mlton/commit/7e36b16965dfca29bff7233f5453d8d23309666b Author: Manan Joshi <man...@gm...> Date: 2018-06-12 (Tue, 12 Jun 2018) Changed paths: M mlton/main/compile.sig M mlton/ssa/parse-ssa2.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- Parser for SSA2 - I Commit: ae4f09f94acde4166e2ead11bdc37c11e374ab88 https://github.com/MLton/mlton/commit/ae4f09f94acde4166e2ead11bdc37c11e374ab88 Author: Manan Joshi <man...@gm...> Date: 2018-06-12 (Tue, 12 Jun 2018) Changed paths: M mlton/main/compile.sig M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bug fixes. Commit: 3c9d3d66a5e8e636a9996a4e501680753b4d4cd0 https://github.com/MLton/mlton/commit/3c9d3d66a5e8e636a9996a4e501680753b4d4cd0 Author: Manan Joshi <man...@gm...> Date: 2018-06-14 (Thu, 14 Jun 2018) Changed paths: M mlton/main/compile.fun Log Message: ----------- SSA and SSA2 generate SML style comments. Commit: d2c6d0873cd40a35a5b201ec6d0d14fb2c17b231 https://github.com/MLton/mlton/commit/d2c6d0873cd40a35a5b201ec6d0d14fb2c17b231 Author: Manan Joshi <man...@gm...> Date: 2018-06-28 (Thu, 28 Jun 2018) Changed paths: M mlton/main/compile.fun Log Message: ----------- Comments Commit: 0191a1416812fe623533b31d9ebfac4df3ad3de1 https://github.com/MLton/mlton/commit/0191a1416812fe623533b31d9ebfac4df3ad3de1 Author: Manan Joshi <man...@gm...> Date: 2018-06-28 (Thu, 28 Jun 2018) Log Message: ----------- Merge branch 'parse-ssa-2' of github.com:manan30/mlton into parse-ssa-2 Commit: 85536612c26bf9e711adc387229d7ff98242db88 https://github.com/MLton/mlton/commit/85536612c26bf9e711adc387229d7ff98242db88 Author: Manan Joshi <man...@gm...> Date: 2018-06-28 (Thu, 28 Jun 2018) Changed paths: M mlton/main/compile.fun Log Message: ----------- Try comment Commit: 97da1d9c4606f4d253c133fdf5cf023de2bb3f5d https://github.com/MLton/mlton/commit/97da1d9c4606f4d253c133fdf5cf023de2bb3f5d Author: Manan Joshi <man...@gm...> Date: 2018-06-28 (Thu, 28 Jun 2018) Changed paths: M mlton/main/compile.fun Log Message: ----------- Try comment Commit: 174a180ac059002511e23db440d88d2b396d845a https://github.com/MLton/mlton/commit/174a180ac059002511e23db440d88d2b396d845a Author: Manan Joshi <man...@gm...> Date: 2018-06-28 (Thu, 28 Jun 2018) Changed paths: M mlton/main/compile.fun Log Message: ----------- Bug fixes. Commit: 6b7403589cbacf3094073054758bd328fc28944c https://github.com/MLton/mlton/commit/6b7403589cbacf3094073054758bd328fc28944c Author: Manan Joshi <man...@gm...> Date: 2018-06-28 (Thu, 28 Jun 2018) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Refactored ssa-tree2.fun Commit: a8e52085d530854d3d2dc22ae24d9fae0f415a53 https://github.com/MLton/mlton/commit/a8e52085d530854d3d2dc22ae24d9fae0f415a53 Author: Manan Joshi <man...@gm...> Date: 2018-06-28 (Thu, 28 Jun 2018) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- Refactoring fix Commit: d952c3e1b337a170809198d0917a72e4975d7a4a https://github.com/MLton/mlton/commit/d952c3e1b337a170809198d0917a72e4975d7a4a Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- SSA2 Parser updated. Commit: 02ae6d0a80007637667b7d61145c0573b6c9d4bc https://github.com/MLton/mlton/commit/02ae6d0a80007637667b7d61145c0573b6c9d4bc Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- SSA2 parser updated Commit: 74d526ff375a36b9b8a32e55022579b04f4ae109 https://github.com/MLton/mlton/commit/74d526ff375a36b9b8a32e55022579b04f4ae109 Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/main/compile.fun M mlton/main/compile.sig Log Message: ----------- Updated compile.{fun, sig} Commit: d554f01303704f878d360039a6fff866cb514c0c https://github.com/MLton/mlton/commit/d554f01303704f878d360039a6fff866cb514c0c Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.sig Log Message: ----------- Bug fixes. Commit: 017cb69ad86aa9b305c2039cf128b0d6f8819842 https://github.com/MLton/mlton/commit/017cb69ad86aa9b305c2039cf128b0d6f8819842 Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/main/compile.fun Log Message: ----------- Bug fixes. Commit: 3c8d1446fa5fda7620d05554cbe81e461c650726 https://github.com/MLton/mlton/commit/3c8d1446fa5fda7620d05554cbe81e461c650726 Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.sig M mlton/ssa/sources.cm M mlton/ssa/sources.mlb Log Message: ----------- Bug fixes and updated sources.cm and sources.mlb Commit: b391acaff026966febc4ef2d6cb15442f62826a2 https://github.com/MLton/mlton/commit/b391acaff026966febc4ef2d6cb15442f62826a2 Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Type.weak error fix Commit: 1ec7cdbc15044bc5aab8b9f1640a769e83179123 https://github.com/MLton/mlton/commit/1ec7cdbc15044bc5aab8b9f1640a769e83179123 Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Line:126 (Undefined variable: typ.) fix Commit: cfa4264b2f00f3825dc2cd3ce0c6d5de2ff9f68d https://github.com/MLton/mlton/commit/cfa4264b2f00f3825dc2cd3ce0c6d5de2ff9f68d Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bug fixes. Commit: 9f0a808a7a60dbdac6fdc0148f4edec7fadea919 https://github.com/MLton/mlton/commit/9f0a808a7a60dbdac6fdc0148f4edec7fadea919 Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bug fixes for typ'. Commit: b9b54fe77ef9e7a734170263400b6021eb6a4726 https://github.com/MLton/mlton/commit/b9b54fe77ef9e7a734170263400b6021eb6a4726 Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bug fixes. Commit: 983bfd3ac0e6411686986bdeddcb4b018f46a4dc https://github.com/MLton/mlton/commit/983bfd3ac0e6411686986bdeddcb4b018f46a4dc Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bug fixes Commit: c1675a434b6322ba259417608c47533280551d39 https://github.com/MLton/mlton/commit/c1675a434b6322ba259417608c47533280551d39 Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bug fixes Commit: 4dea1e52f0aa9a2e093d64b7fef38b7f20dd454b https://github.com/MLton/mlton/commit/4dea1e52f0aa9a2e093d64b7fef38b7f20dd454b Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bug fixes. Commit: 47c39079d3e249b63be68f3476b31d4327b89949 https://github.com/MLton/mlton/commit/47c39079d3e249b63be68f3476b31d4327b89949 Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bug fixes. Commit: 3780090ed7520ac077becf987252f9971c0ba116 https://github.com/MLton/mlton/commit/3780090ed7520ac077becf987252f9971c0ba116 Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bug fixes. Commit: 85b296713328d05f02bf986d333f89edb4d7a8c8 https://github.com/MLton/mlton/commit/85b296713328d05f02bf986d333f89edb4d7a8c8 Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bug fixes Commit: 38edcc38cef5d706621891178811aee07d334b2a https://github.com/MLton/mlton/commit/38edcc38cef5d706621891178811aee07d334b2a Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bug fixes Commit: 7dc91373cbc38bf02ab70f01ad77c964a93f34c4 https://github.com/MLton/mlton/commit/7dc91373cbc38bf02ab70f01ad77c964a93f34c4 Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bug fixes Commit: 3ef957903dc080d48c3541e5d7636110c56b171d https://github.com/MLton/mlton/commit/3ef957903dc080d48c3541e5d7636110c56b171d Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bug fixes Commit: 4957afce51e21eeba130c20b5de30f717f6c9f03 https://github.com/MLton/mlton/commit/4957afce51e21eeba130c20b5de30f717f6c9f03 Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bug fixes Commit: 3b5d2fd24b9767eb381ec808903cafe51fada41d https://github.com/MLton/mlton/commit/3b5d2fd24b9767eb381ec808903cafe51fada41d Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bug fixes. Commit: e82d75817212ba870cbca7ec95a607e96f3fff0d https://github.com/MLton/mlton/commit/e82d75817212ba870cbca7ec95a607e96f3fff0d Author: Manan Joshi <man...@gm...> Date: 2018-07-03 (Tue, 03 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bug fixes Commit: 439e12c6d52165cad8f52b30dffdf3539a4a32d8 https://github.com/MLton/mlton/commit/439e12c6d52165cad8f52b30dffdf3539a4a32d8 Author: Manan Joshi <man...@gm...> Date: 2018-07-04 (Wed, 04 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bug fixes. Commit: 27e7a82ee8dae964ec7c47a24b4a71b61fcd7ee9 https://github.com/MLton/mlton/commit/27e7a82ee8dae964ec7c47a24b4a71b61fcd7ee9 Author: Manan Joshi <man...@gm...> Date: 2018-07-04 (Wed, 04 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bug fixes. Commit: a95b7864247e1c228e35e87e909c306d14138868 https://github.com/MLton/mlton/commit/a95b7864247e1c228e35e87e909c306d14138868 Author: Manan Joshi <man...@gm...> Date: 2018-07-04 (Wed, 04 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Try parse Commit: 50ea081b7dc793c8466111f0a93127f45020d735 https://github.com/MLton/mlton/commit/50ea081b7dc793c8466111f0a93127f45020d735 Author: Manan Joshi <man...@gm...> Date: 2018-07-04 (Wed, 04 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Fixes Commit: 76fc4f0cc806a38b822fdf3151894efb6327c169 https://github.com/MLton/mlton/commit/76fc4f0cc806a38b822fdf3151894efb6327c169 Author: Manan Joshi <man...@gm...> Date: 2018-07-04 (Wed, 04 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Fixes Commit: 7b69d529954487311f5894a1b9adebbb0a20b521 https://github.com/MLton/mlton/commit/7b69d529954487311f5894a1b9adebbb0a20b521 Author: Manan Joshi <man...@gm...> Date: 2018-07-04 (Wed, 04 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Fixes Commit: 4f396a1064fd2dc417a9c7fb3cd6f10ee368c25d https://github.com/MLton/mlton/commit/4f396a1064fd2dc417a9c7fb3cd6f10ee368c25d Author: Manan Joshi <man...@gm...> Date: 2018-07-04 (Wed, 04 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- fixes Commit: 7e79036b802edf0e43c7eeca140e19208e115873 https://github.com/MLton/mlton/commit/7e79036b802edf0e43c7eeca140e19208e115873 Author: Manan Joshi <man...@gm...> Date: 2018-07-04 (Wed, 04 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- fixes Commit: f9c296fedab8f113df9d26ba791f39ee18a59fe2 https://github.com/MLton/mlton/commit/f9c296fedab8f113df9d26ba791f39ee18a59fe2 Author: Manan Joshi <man...@gm...> Date: 2018-07-04 (Wed, 04 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Fixes Commit: b6e7d81e35ba9738c4c7c05a1543c86be4273075 https://github.com/MLton/mlton/commit/b6e7d81e35ba9738c4c7c05a1543c86be4273075 Author: Manan Joshi <man...@gm...> Date: 2018-07-04 (Wed, 04 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Fixes. Commit: 64016d4a1ba765d280dbb104a579edb959a5e056 https://github.com/MLton/mlton/commit/64016d4a1ba765d280dbb104a579edb959a5e056 Author: Manan Joshi <man...@gm...> Date: 2018-07-04 (Wed, 04 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Goto Fix. Commit: e4412b93ec4d40e2af4b4c9f29d0f4e2e2dc92fd https://github.com/MLton/mlton/commit/e4412b93ec4d40e2af4b4c9f29d0f4e2e2dc92fd Author: Manan Joshi <man...@gm...> Date: 2018-07-04 (Wed, 04 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Block Fix. Commit: 0b1d815c3fb0149d68f5d4fe446525299b91acc0 https://github.com/MLton/mlton/commit/0b1d815c3fb0149d68f5d4fe446525299b91acc0 Author: Manan Joshi <man...@gm...> Date: 2018-07-04 (Wed, 04 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- PrimApp fix. Commit: af59d7d12b717dc2f15987a1f94f7258c1556a74 https://github.com/MLton/mlton/commit/af59d7d12b717dc2f15987a1f94f7258c1556a74 Author: Manan Joshi <man...@gm...> Date: 2018-07-04 (Wed, 04 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Transfer Runtime fix. Commit: 284e15ba5fbba31f5ad0c2e56ecc589edd84d86f https://github.com/MLton/mlton/commit/284e15ba5fbba31f5ad0c2e56ecc589edd84d86f Author: Manan Joshi <man...@gm...> Date: 2018-07-04 (Wed, 04 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Transfer Runtime fix. Commit: be4ed6a11f3e40d2ea403bb014c5dc719882ae4f https://github.com/MLton/mlton/commit/be4ed6a11f3e40d2ea403bb014c5dc719882ae4f Author: Manan Joshi <man...@gm...> Date: 2018-07-04 (Wed, 04 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Transfer Arith fix Commit: 530f71ff22e5d8f1adba7fdfbbadc3289a0ffd54 https://github.com/MLton/mlton/commit/530f71ff22e5d8f1adba7fdfbbadc3289a0ffd54 Author: Manan Joshi <man...@gm...> Date: 2018-07-05 (Thu, 05 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Inject Exp fix Commit: e95a357f2e9bab18a8336ac9611b4015f3f8375e https://github.com/MLton/mlton/commit/e95a357f2e9bab18a8336ac9611b4015f3f8375e Author: Manan Joshi <man...@gm...> Date: 2018-07-05 (Thu, 05 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Inject Exp fix Commit: 191800efc710d3dfb56f6c0dd47f65aa9341d838 https://github.com/MLton/mlton/commit/191800efc710d3dfb56f6c0dd47f65aa9341d838 Author: Manan Joshi <man...@gm...> Date: 2018-07-05 (Thu, 05 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Inject Exp fix Commit: 9eb8aa8b5f4ad9cf82581294fed94833002944c7 https://github.com/MLton/mlton/commit/9eb8aa8b5f4ad9cf82581294fed94833002944c7 Author: Manan Joshi <man...@gm...> Date: 2018-07-05 (Thu, 05 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Inject Exp fix Commit: 7d2ed48f99f70d90f918af1cb77cee4e6173feee https://github.com/MLton/mlton/commit/7d2ed48f99f70d90f918af1cb77cee4e6173feee Author: Manan Joshi <man...@gm...> Date: 2018-07-05 (Thu, 05 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Inject Exp fix Commit: bdd842868db90b28a64e5066393a776907a0e4e9 https://github.com/MLton/mlton/commit/bdd842868db90b28a64e5066393a776907a0e4e9 Author: Manan Joshi <man...@gm...> Date: 2018-07-05 (Thu, 05 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Inject exp Commit: cb0ebc5e29bb783b9601d5b880703d57416c7ac3 https://github.com/MLton/mlton/commit/cb0ebc5e29bb783b9601d5b880703d57416c7ac3 Author: Manan Joshi <man...@gm...> Date: 2018-07-05 (Thu, 05 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- fix Commit: ce1f500cffe0c0a523a22f276c9e949fee3cec96 https://github.com/MLton/mlton/commit/ce1f500cffe0c0a523a22f276c9e949fee3cec96 Author: Manan Joshi <man...@gm...> Date: 2018-07-05 (Thu, 05 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Inject exp Commit: 3a6181eeb27cf6b057afb138de07633e0ce024d3 https://github.com/MLton/mlton/commit/3a6181eeb27cf6b057afb138de07633e0ce024d3 Author: Manan Joshi <man...@gm...> Date: 2018-07-05 (Thu, 05 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Object Exp fix Commit: 75b9b2f590efa8f1bf429c94bb8cc372f0ffdbc0 https://github.com/MLton/mlton/commit/75b9b2f590efa8f1bf429c94bb8cc372f0ffdbc0 Author: Manan Joshi <man...@gm...> Date: 2018-07-05 (Thu, 05 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Fix Commit: 683a2853f861eb47582b43d35945e4a557d61307 https://github.com/MLton/mlton/commit/683a2853f861eb47582b43d35945e4a557d61307 Author: Manan Joshi <man...@gm...> Date: 2018-07-05 (Thu, 05 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Expression Fix - 1 Commit: bca09a1535506a9158eabd2ef30fab486d67cadb https://github.com/MLton/mlton/commit/bca09a1535506a9158eabd2ef30fab486d67cadb Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M lib/mlton/basic/parse.sig M lib/mlton/basic/parse.sml Log Message: ----------- Changes to lib/parse.{sig, fun} Commit: 60df23549e9cf78a861798a04dc137e3eaae57d9 https://github.com/MLton/mlton/commit/60df23549e9cf78a861798a04dc137e3eaae57d9 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- ObjectExp fix Commit: 1b0d510876c5a3918de683ea296f7284498fa4e3 https://github.com/MLton/mlton/commit/1b0d510876c5a3918de683ea296f7284498fa4e3 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M lib/mlton/basic/parse.sig Log Message: ----------- Change: parse.sig Commit: 1a9b324414b20b9e7fc43752ab4188ae24a4005e https://github.com/MLton/mlton/commit/1a9b324414b20b9e7fc43752ab4188ae24a4005e Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M lib/mlton/basic/parse.sig M lib/mlton/basic/parse.sml M mlton/ssa/parse-ssa2.fun Log Message: ----------- Change: parse-ssa2.fun Commit: 5ea3d6af77f3e219423c91c9fbe7187531b67739 https://github.com/MLton/mlton/commit/5ea3d6af77f3e219423c91c9fbe7187531b67739 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- ObjectExp fix Commit: 5cb9b5f560eefd8a43a411eba4b7ad043c1513b9 https://github.com/MLton/mlton/commit/5cb9b5f560eefd8a43a411eba4b7ad043c1513b9 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Fix Commit: 813fba661396970cc01330cf517a3da0328c40c5 https://github.com/MLton/mlton/commit/813fba661396970cc01330cf517a3da0328c40c5 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Fix - I Commit: 02cb95235e72d4b29460e7c2412cb86ca47eda7b https://github.com/MLton/mlton/commit/02cb95235e72d4b29460e7c2412cb86ca47eda7b Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Fix - II Commit: b8c2fd5ec0bc359a56c2e73a66ea35341b3930ca https://github.com/MLton/mlton/commit/b8c2fd5ec0bc359a56c2e73a66ea35341b3930ca Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Fix - III Commit: 264f1f78c27ccca43eea9d9bab70005ee76f2832 https://github.com/MLton/mlton/commit/264f1f78c27ccca43eea9d9bab70005ee76f2832 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Fix - IV Commit: db05eb9e6aac8150541f18875169f5c07d9fba38 https://github.com/MLton/mlton/commit/db05eb9e6aac8150541f18875169f5c07d9fba38 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Fix - V Commit: 33bcd1c52addc539c9484f9bee079bac96f0c880 https://github.com/MLton/mlton/commit/33bcd1c52addc539c9484f9bee079bac96f0c880 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Select Exp Commit: 956c9b86bf1411a7434b479fced610b651647335 https://github.com/MLton/mlton/commit/956c9b86bf1411a7434b479fced610b651647335 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- ObjectCon fix Commit: 41329fa031bdf01074a63d4e76d40a215d98ba1e https://github.com/MLton/mlton/commit/41329fa031bdf01074a63d4e76d40a215d98ba1e Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- ObjectCon fix Commit: 63d7a14303bce944050f741bb19a874b1dde279b https://github.com/MLton/mlton/commit/63d7a14303bce944050f741bb19a874b1dde279b Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- ObjectCon Fix Commit: e3242f4276351fba79c95ddec24af9a286ebf7d7 https://github.com/MLton/mlton/commit/e3242f4276351fba79c95ddec24af9a286ebf7d7 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Fix - V Commit: f327dffcb79be88fd79e9f98dab230c4b11c544a https://github.com/MLton/mlton/commit/f327dffcb79be88fd79e9f98dab230c4b11c544a Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Fix - VI Commit: a7977355a934e73380823f78c6b0f62317dc6759 https://github.com/MLton/mlton/commit/a7977355a934e73380823f78c6b0f62317dc6759 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/ssa-tree2.fun Log Message: ----------- ArithTransfer Commit: 53d321265e15d61c83a5363f78e9e5a8d6d1d776 https://github.com/MLton/mlton/commit/53d321265e15d61c83a5363f78e9e5a8d6d1d776 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- ArithTransfer Commit: 58c01b63df834656bc9240cdaa404c776909b4ae https://github.com/MLton/mlton/commit/58c01b63df834656bc9240cdaa404c776909b4ae Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- Arith Fix Commit: ae37a2dab3ac16ba110edae13d067a4582f6ef58 https://github.com/MLton/mlton/commit/ae37a2dab3ac16ba110edae13d067a4582f6ef58 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Merge branch 'parse-ssa-2' of github.com:manan30/mlton into parse-ssa-2 Commit: 757a11cb6970951f2db179d60c0b7a66f0552969 https://github.com/MLton/mlton/commit/757a11cb6970951f2db179d60c0b7a66f0552969 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Arith fix Commit: 8851ef55946b69f94cc1d2a75721ac3251eb09ea https://github.com/MLton/mlton/commit/8851ef55946b69f94cc1d2a75721ac3251eb09ea Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Arith fix - I Commit: b46952e0b462756e9ca777389f2bf2174d0ba5e3 https://github.com/MLton/mlton/commit/b46952e0b462756e9ca777389f2bf2174d0ba5e3 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Arith fix - II Commit: cabb2f0bc0e49258abe95bc290ad1058113bc2fb https://github.com/MLton/mlton/commit/cabb2f0bc0e49258abe95bc290ad1058113bc2fb Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Arith fix - III Commit: fc8b8a5016241c30c492b9d8d351de4bf2028960 https://github.com/MLton/mlton/commit/fc8b8a5016241c30c492b9d8d351de4bf2028960 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Transfer fix - I Commit: 4272ff593980e4cd8b3db09806811e91a3a3c55c https://github.com/MLton/mlton/commit/4272ff593980e4cd8b3db09806811e91a3a3c55c Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Transfer fix - II Commit: ed88b9b22f5144a499c0c4c1a1a61a07cc0015b0 https://github.com/MLton/mlton/commit/ed88b9b22f5144a499c0c4c1a1a61a07cc0015b0 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Transfer fix - III Commit: 427eb5a6cc1d6fe1cf18d79048657672a96b3085 https://github.com/MLton/mlton/commit/427eb5a6cc1d6fe1cf18d79048657672a96b3085 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Transfer Fix - IV Commit: b3daf2c3a04a9302e3bb99f3793cacf4a03ef2d4 https://github.com/MLton/mlton/commit/b3daf2c3a04a9302e3bb99f3793cacf4a03ef2d4 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Arith Fix - IV Commit: 35dc595153787a911cb164eefa5d7cae614ad96f https://github.com/MLton/mlton/commit/35dc595153787a911cb164eefa5d7cae614ad96f Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Arith fix - V Commit: 5920d2f1664638a497d2d1f2d686531bb1e5e376 https://github.com/MLton/mlton/commit/5920d2f1664638a497d2d1f2d686531bb1e5e376 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Arith fix - VI Commit: 05ed2f3cf0170048147b3bf0d37f830f038a4b8c https://github.com/MLton/mlton/commit/05ed2f3cf0170048147b3bf0d37f830f038a4b8c Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Transfer w/o Arith Commit: 325b868e08aa30a740704d020ac1125dbff9e6ba https://github.com/MLton/mlton/commit/325b868e08aa30a740704d020ac1125dbff9e6ba Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Statement fix - I Commit: c33dc8d2324894a13db7addd2f879eda10510314 https://github.com/MLton/mlton/commit/c33dc8d2324894a13db7addd2f879eda10510314 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Statement fix - II Commit: b77287821e3b0b286fadbaabf1de39b817c86942 https://github.com/MLton/mlton/commit/b77287821e3b0b286fadbaabf1de39b817c86942 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Statement fix - III Commit: 746bc2a763f1dacd58d67d04b92170b893c68d75 https://github.com/MLton/mlton/commit/746bc2a763f1dacd58d67d04b92170b893c68d75 Author: Manan Joshi <man...@gm...> Date: 2018-07-06 (Fri, 06 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Statement - IV Commit: 10d05523641f943a6a303c68751177a5d17be151 https://github.com/MLton/mlton/commit/10d05523641f943a6a303c68751177a5d17be151 Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- Type fix Commit: a48b0bcdbe3be2ce1da5c77f33383be9ba1c154c https://github.com/MLton/mlton/commit/a48b0bcdbe3be2ce1da5c77f33383be9ba1c154c Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - I Commit: dc97fbf1da9560b99b274b68ab99f82ccc6c2ca3 https://github.com/MLton/mlton/commit/dc97fbf1da9560b99b274b68ab99f82ccc6c2ca3 Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - II Commit: 043e7db87cbcefcb2844d908380649d18a1098ee https://github.com/MLton/mlton/commit/043e7db87cbcefcb2844d908380649d18a1098ee Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- Prod fix - III Commit: 169631031d084ed7b598af73170309623f1d9d24 https://github.com/MLton/mlton/commit/169631031d084ed7b598af73170309623f1d9d24 Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - IV Commit: 2479ba0dd6309f461355baa897002a9a5bab56ce https://github.com/MLton/mlton/commit/2479ba0dd6309f461355baa897002a9a5bab56ce Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - V Commit: 9b6fe70e79ec5f04bc15e3b132d30e6f88bba1ae https://github.com/MLton/mlton/commit/9b6fe70e79ec5f04bc15e3b132d30e6f88bba1ae Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - VI Commit: b1812e26f367dc1dbdd3f44bc145809e39ccfd81 https://github.com/MLton/mlton/commit/b1812e26f367dc1dbdd3f44bc145809e39ccfd81 Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun M mlton/xml/parse-sxml.fun Log Message: ----------- Base fix - I Commit: 052533e66275a215d51956cef21289e884197b4c https://github.com/MLton/mlton/commit/052533e66275a215d51956cef21289e884197b4c Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Base fix - II Commit: 0be482dc00dee7415c8ff7f924a006ee60a4fc02 https://github.com/MLton/mlton/commit/0be482dc00dee7415c8ff7f924a006ee60a4fc02 Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Base fix - III Commit: 9cbdc3eebe8ef4a2ad784af52b1b559dce3ff345 https://github.com/MLton/mlton/commit/9cbdc3eebe8ef4a2ad784af52b1b559dce3ff345 Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Base fix - IV Commit: 12fa1d9ea3c3405a0afdaf9a58e530f0fb291d92 https://github.com/MLton/mlton/commit/12fa1d9ea3c3405a0afdaf9a58e530f0fb291d92 Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Base fix - V Commit: 6f9c82fc0d237c7a82e86ae12cb24444a800b4d5 https://github.com/MLton/mlton/commit/6f9c82fc0d237c7a82e86ae12cb24444a800b4d5 Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Fix Commit: 42d78ae1716c34f3947d07d4544e34962c55c31d https://github.com/MLton/mlton/commit/42d78ae1716c34f3947d07d4544e34962c55c31d Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Inject Exp fix - I Commit: 54cd80a59ab92b8046d0e8a78d1e2e1e7bf2b003 https://github.com/MLton/mlton/commit/54cd80a59ab92b8046d0e8a78d1e2e1e7bf2b003 Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Const Exp fix - I Commit: a0ea8ab0783a6157394b4cbdbf5986b63916814b https://github.com/MLton/mlton/commit/a0ea8ab0783a6157394b4cbdbf5986b63916814b Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Const Exp fix - II Commit: 02ff6bf9d17dc098036d08b0955cd18d415fb918 https://github.com/MLton/mlton/commit/02ff6bf9d17dc098036d08b0955cd18d415fb918 Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Const Exp fix - III Commit: 4768ccfa67e53b5af29a04d65926830e05285010 https://github.com/MLton/mlton/commit/4768ccfa67e53b5af29a04d65926830e05285010 Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Const Exp fix - IV Commit: 39ef12409c4b9935790f4692d1996a0f802fae44 https://github.com/MLton/mlton/commit/39ef12409c4b9935790f4692d1996a0f802fae44 Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Const Exp - V Commit: 807816d4969ef29ef372220e7258d4c4fede47f2 https://github.com/MLton/mlton/commit/807816d4969ef29ef372220e7258d4c4fede47f2 Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Const Exp - VI Commit: 1e3e8d380fd45c667abb0a88b058481461d0b32c https://github.com/MLton/mlton/commit/1e3e8d380fd45c667abb0a88b058481461d0b32c Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Const Exp - VII Commit: 8845387636147c9e8417f12b70ddb6f38765f986 https://github.com/MLton/mlton/commit/8845387636147c9e8417f12b70ddb6f38765f986 Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prim App Fix - I Commit: 32cc941c6156ccf47d373c663a7dea75c41a159c https://github.com/MLton/mlton/commit/32cc941c6156ccf47d373c663a7dea75c41a159c Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prim App Fix - II Commit: c25af36c8d223a04d4ac39ae7477c2e84eb895c5 https://github.com/MLton/mlton/commit/c25af36c8d223a04d4ac39ae7477c2e84eb895c5 Author: Manan Joshi <man...@gm...> Date: 2018-07-07 (Sat, 07 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Fix Commit: 6f920b4dc5c6dd8f3992ab41d7fbb034ed0a744f https://github.com/MLton/mlton/commit/6f920b4dc5c6dd8f3992ab41d7fbb034ed0a744f Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Datatype fix - I Commit: a9240feeed42950f8f4b7472c9be2362bb721a1a https://github.com/MLton/mlton/commit/a9240feeed42950f8f4b7472c9be2362bb721a1a Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Datatype fix - II Commit: a4cff427dd028876cb7ae50adaf0b2bc54d7bf9c https://github.com/MLton/mlton/commit/a4cff427dd028876cb7ae50adaf0b2bc54d7bf9c Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Datatype fix - III Commit: ab16d2bdad755f144e769303b3d865f3566bc748 https://github.com/MLton/mlton/commit/ab16d2bdad755f144e769303b3d865f3566bc748 Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Datatype fix - IV Commit: a4641ef8225fa8cced99271dc6074b5e34f5e694 https://github.com/MLton/mlton/commit/a4641ef8225fa8cced99271dc6074b5e34f5e694 Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - I Commit: bce02f5b4c7039c32dffba3cb816e2c180e0cfb5 https://github.com/MLton/mlton/commit/bce02f5b4c7039c32dffba3cb816e2c180e0cfb5 Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - II Commit: 9008433aba4d5f288bb20698394bbb30f9f05a93 https://github.com/MLton/mlton/commit/9008433aba4d5f288bb20698394bbb30f9f05a93 Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - III Commit: ac2139dc43ad2880e2dccce9f52c4f0453ba57be https://github.com/MLton/mlton/commit/ac2139dc43ad2880e2dccce9f52c4f0453ba57be Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - IV Commit: 1ee90d42de0e65384fcec2b24ee82803b1a72392 https://github.com/MLton/mlton/commit/1ee90d42de0e65384fcec2b24ee82803b1a72392 Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - V Commit: a1c910db312bf9b2051966c364fb1e8c27235b76 https://github.com/MLton/mlton/commit/a1c910db312bf9b2051966c364fb1e8c27235b76 Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa.fun M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - VI Commit: c543d2a50b359bb16d583dcd9d47a93f8b6cbe8e https://github.com/MLton/mlton/commit/c543d2a50b359bb16d583dcd9d47a93f8b6cbe8e Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - VII Commit: 37becba4ccc3427cb81a041ae3eb4a87f33a3d14 https://github.com/MLton/mlton/commit/37becba4ccc3427cb81a041ae3eb4a87f33a3d14 Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - VIII Commit: bc6af5390b1bd6db1e0e0ec9fe9f499875ebe3fe https://github.com/MLton/mlton/commit/bc6af5390b1bd6db1e0e0ec9fe9f499875ebe3fe Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - IX Commit: f60e3e080d6acf178ca3a75f2006608c57dfec10 https://github.com/MLton/mlton/commit/f60e3e080d6acf178ca3a75f2006608c57dfec10 Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - X Commit: 3df5b7e69df899689e17b9557541ef751c888578 https://github.com/MLton/mlton/commit/3df5b7e69df899689e17b9557541ef751c888578 Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - XI Commit: a4cb02aa3edf43d239c88b6712573ea892c0a9bd https://github.com/MLton/mlton/commit/a4cb02aa3edf43d239c88b6712573ea892c0a9bd Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - XII Commit: 0481c19135c7dc46ecd1ff6576e58e4b77f6f1c7 https://github.com/MLton/mlton/commit/0481c19135c7dc46ecd1ff6576e58e4b77f6f1c7 Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - XII Commit: a2f9aaa8c4cdc1931e09d027b600b3daa7271601 https://github.com/MLton/mlton/commit/a2f9aaa8c4cdc1931e09d027b600b3daa7271601 Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - XIII Commit: 9221121a5c07970af38336929e489b5fc96c5a1d https://github.com/MLton/mlton/commit/9221121a5c07970af38336929e489b5fc96c5a1d Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - XIV Commit: e005e152d8c627bef5aca1469bc44f25aee2aba0 https://github.com/MLton/mlton/commit/e005e152d8c627bef5aca1469bc44f25aee2aba0 Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Typo fix Commit: a23fb109fd3fde42862ab928278dfecd30d44bbe https://github.com/MLton/mlton/commit/a23fb109fd3fde42862ab928278dfecd30d44bbe Author: Manan Joshi <man...@gm...> Date: 2018-07-09 (Mon, 09 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Typo fix Commit: 8267bfd217e9d02b884679c7eb737e13cb474e8b https://github.com/MLton/mlton/commit/8267bfd217e9d02b884679c7eb737e13cb474e8b Author: Manan Joshi <man...@gm...> Date: 2018-07-11 (Wed, 11 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - I Commit: 22501176aa465ddc0b2e22478f648077d69b91df https://github.com/MLton/mlton/commit/22501176aa465ddc0b2e22478f648077d69b91df Author: Manan Joshi <man...@gm...> Date: 2018-07-11 (Wed, 11 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - II Commit: 2d18a09fb7c6165961ceba7fc3a59072f4b419c4 https://github.com/MLton/mlton/commit/2d18a09fb7c6165961ceba7fc3a59072f4b419c4 Author: Manan Joshi <man...@gm...> Date: 2018-07-11 (Wed, 11 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Prod fix - II Commit: d938d3e560445e0bc99b6790f3603f022e0e4f50 https://github.com/MLton/mlton/commit/d938d3e560445e0bc99b6790f3603f022e0e4f50 Author: Manan Joshi <man...@gm...> Date: 2018-07-11 (Wed, 11 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Base Fix - I Commit: 3e003f6ae52f37e5e00addb0e5382912b7ca10fb https://github.com/MLton/mlton/commit/3e003f6ae52f37e5e00addb0e5382912b7ca10fb Author: Manan Joshi <man...@gm...> Date: 2018-07-11 (Wed, 11 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Base fix - II Commit: e5c8e03e97e11c67d31acb13008feeb77643fcbd https://github.com/MLton/mlton/commit/e5c8e03e97e11c67d31acb13008feeb77643fcbd Author: Manan Joshi <man...@gm...> Date: 2018-07-11 (Wed, 11 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Base fix - III Commit: 03d652d8d64149abb2b4ab54d2044e80d8a74b02 https://github.com/MLton/mlton/commit/03d652d8d64149abb2b4ab54d2044e80d8a74b02 Author: Manan Joshi <man...@gm...> Date: 2018-07-11 (Wed, 11 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Base fix - IV Commit: 6a5490bd82512fa772402266b7594df9d6c1a431 https://github.com/MLton/mlton/commit/6a5490bd82512fa772402266b7594df9d6c1a431 Author: Manan Joshi <man...@gm...> Date: 2018-07-11 (Wed, 11 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Base fix - V Commit: 15b2bf7a3bb4da59d05e66fc8f385bdf154b70af https://github.com/MLton/mlton/commit/15b2bf7a3bb4da59d05e66fc8f385bdf154b70af Author: Manan Joshi <man...@gm...> Date: 2018-07-11 (Wed, 11 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Select Exp fix - I Commit: 730dfd409ad5197db8e33b517ad78a2b62b016e6 https://github.com/MLton/mlton/commit/730dfd409ad5197db8e33b517ad78a2b62b016e6 Author: Manan Joshi <man...@gm...> Date: 2018-07-11 (Wed, 11 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Select Exp fix - II Commit: b779dc982a9bbe5f2223e75dab8ee4ba807cc1ba https://github.com/MLton/mlton/commit/b779dc982a9bbe5f2223e75dab8ee4ba807cc1ba Author: Manan Joshi <man...@gm...> Date: 2018-07-11 (Wed, 11 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Select Exp fix - III Commit: e247e4a4819f32c5a508e6a1f2c66b93ba14d452 https://github.com/MLton/mlton/commit/e247e4a4819f32c5a508e6a1f2c66b93ba14d452 Author: Manan Joshi <man...@gm...> Date: 2018-07-11 (Wed, 11 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Base Fix - IV Commit: 444ca8c7d75a1c85b41ec75f25ecc0fdfcf39a53 https://github.com/MLton/mlton/commit/444ca8c7d75a1c85b41ec75f25ecc0fdfcf39a53 Author: Manan Joshi <man...@gm...> Date: 2018-07-11 (Wed, 11 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Base Fix - V Commit: 776055f105a84138ce2c7df1be7fbcd45cfbb126 https://github.com/MLton/mlton/commit/776055f105a84138ce2c7df1be7fbcd45cfbb126 Author: Manan Joshi <man...@gm...> Date: 2018-07-11 (Wed, 11 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Select Exp fix - IV Commit: 5f6491c950e7d707ab0742e6584ef57f6c46f72f https://github.com/MLton/mlton/commit/5f6491c950e7d707ab0742e6584ef57f6c46f72f Author: Manan Joshi <man...@gm...> Date: 2018-07-11 (Wed, 11 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Update Statement fix - I Commit: a9524f4350ad02a1b88a804da812e06e4183982f https://github.com/MLton/mlton/commit/a9524f4350ad02a1b88a804da812e06e4183982f Author: Manan Joshi <man...@gm...> Date: 2018-07-11 (Wed, 11 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Update Statement fix - II Commit: 18df7ca2950c56298af238ecbf9e7a1546159069 https://github.com/MLton/mlton/commit/18df7ca2950c56298af238ecbf9e7a1546159069 Author: Manan Joshi <man...@gm...> Date: 2018-07-11 (Wed, 11 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Profile Statement fix - I Commit: cce0a614ac626cc9ad6cf6a02e3495575902473f https://github.com/MLton/mlton/commit/cce0a614ac626cc9ad6cf6a02e3495575902473f Author: Manan Joshi <man...@gm...> Date: 2018-07-11 (Wed, 11 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bind Statement fix - I Commit: a2cad8424492eaacfe577e3ca2d711e957a06323 https://github.com/MLton/mlton/commit/a2cad8424492eaacfe577e3ca2d711e957a06323 Author: Manan Joshi <man...@gm...> Date: 2018-07-12 (Thu, 12 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bind Statement fix - II Commit: bdeaba177d06d8b41b456a9e9bf08d4d47de6eb9 https://github.com/MLton/mlton/commit/bdeaba177d06d8b41b456a9e9bf08d4d47de6eb9 Author: Manan Joshi <man...@gm...> Date: 2018-07-12 (Thu, 12 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bind Statement fix - III Commit: 7a28417a239a90ee4eff85b50efef7cf6003813f https://github.com/MLton/mlton/commit/7a28417a239a90ee4eff85b50efef7cf6003813f Author: Manan Joshi <man...@gm...> Date: 2018-07-12 (Thu, 12 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bind Statement fix - IV Commit: a8fe31b2c7b04640c2efae30b37129523a996ac9 https://github.com/MLton/mlton/commit/a8fe31b2c7b04640c2efae30b37129523a996ac9 Author: Manan Joshi <man...@gm...> Date: 2018-07-12 (Thu, 12 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bind Statement fix - V Commit: c5a7ade095f8b389303ac1b3ce9be6cc092cc15c https://github.com/MLton/mlton/commit/c5a7ade095f8b389303ac1b3ce9be6cc092cc15c Author: Manan Joshi <man...@gm...> Date: 2018-07-13 (Fri, 13 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bind Statement fix - VI Commit: 7f150508c844a934cd215de8461046e5f6a81309 https://github.com/MLton/mlton/commit/7f150508c844a934cd215de8461046e5f6a81309 Author: Manan Joshi <man...@gm...> Date: 2018-07-13 (Fri, 13 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Bind Statement fix - VII Commit: 19213af449d6d6e08cfee500cb15565d47f32f4e https://github.com/MLton/mlton/commit/19213af449d6d6e08cfee500cb15565d47f32f4e Author: Manan Joshi <man...@gm...> Date: 2018-07-13 (Fri, 13 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- PrimExp fix - I Commit: a7bea74d6820a16abdf7a0a7a28f83c75eb58770 https://github.com/MLton/mlton/commit/a7bea74d6820a16abdf7a0a7a28f83c75eb58770 Author: Manan Joshi <man...@gm...> Date: 2018-07-13 (Fri, 13 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- PrimExp fix - II Commit: f15fbcbb38025b6a03fda41529eb3e4b3dc0bd02 https://github.com/MLton/mlton/commit/f15fbcbb38025b6a03fda41529eb3e4b3dc0bd02 Author: Manan Joshi <man...@gm...> Date: 2018-07-14 (Sat, 14 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Statement and Expressions refactored. Commit: 5e1d1ea0322d788b9c6d427be65852f8cb7d6d61 https://github.com/MLton/mlton/commit/5e1d1ea0322d788b9c6d427be65852f8cb7d6d61 Author: Manan Joshi <man...@gm...> Date: 2018-07-14 (Sat, 14 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Statements and Expressions refactoed - I Commit: e9fbe6239a8b0df7fc8491076ce34275f9f053ec https://github.com/MLton/mlton/commit/e9fbe6239a8b0df7fc8491076ce34275f9f053ec Author: Manan Joshi <man...@gm...> Date: 2018-07-14 (Sat, 14 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Statements and Expression fix - II Commit: 47927af849b00981a628648e197834e2da21bc19 https://github.com/MLton/mlton/commit/47927af849b00981a628648e197834e2da21bc19 Author: Manan Joshi <man...@gm...> Date: 2018-07-14 (Sat, 14 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Statements and Expression fix - III Commit: 985147db3863f7c7f22da97392e4b9bf5d6aace2 https://github.com/MLton/mlton/commit/985147db3863f7c7f22da97392e4b9bf5d6aace2 Author: Manan Joshi <man...@gm...> Date: 2018-07-14 (Sat, 14 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Statements and Expressions fix - IV Commit: ff2420ded4717decf375e0d759b63b6cc1dfff57 https://github.com/MLton/mlton/commit/ff2420ded4717decf375e0d759b63b6cc1dfff57 Author: Manan Joshi <man...@gm...> Date: 2018-07-14 (Sat, 14 Jul 2018) Changed paths: M mlton/ssa/parse-ssa2.fun Log Message: ----------- Statements and Expressions fix - V Commit: eabb49eecb25eb8fa710429d9696fa0aa6075275 https://github.com/MLton/mlton/commit/eabb49eecb25eb8fa710429d9696fa0aa6075275 Author: Manan Joshi <man...@gm...> Date: 2018-07-17 (Tue, 17 Jul 2018) Changed paths: M mlton/main/main.fun M mlton/ssa/parse-ssa2.fun M mlton/ssa/ssa-tree2.fun Log Message: ----------- Type Checking fix Commit: 55d3b2dae06ed57d3900ed6b6046d72785e30b75 https://github.com/MLton/mlton/commit/55d3b2dae06ed57d3900ed6b6046d72785e30b75 Author: Manan Joshi <man...@gm...> Date: 2018-07-17 (Tue, 17 Jul 2018) Changed paths: M mlton/main/main.fun M mlton/ssa/parse-ssa2.fun ... [truncated message content] |
From: GitHub <no...@gi...> - 2018-08-15 14:51:05
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: 27f9e4d7aec23f4be2931ebbee245b2d02cef5a6 https://github.com/MLton/mlton/commit/27f9e4d7aec23f4be2931ebbee245b2d02cef5a6 Author: Matthew Fluet <mat...@gm...> Date: 2018-08-15 (Wed, 15 Aug 2018) Changed paths: M lib/mlrisc-lib/Makefile Log Message: ----------- Fix `find` expression in `./lib/mlrisc-lib/Makefile` Commit 4caacdb (Add `-prune` to `find` commands that may delete directories) mistakenly used `-depth` rather than `-prune` for `./lib/mlrisc-lib/Makefile`. Commit: 203501753e20e5271e7056513908c2b19fccf7a0 https://github.com/MLton/mlton/commit/203501753e20e5271e7056513908c2b19fccf7a0 Author: Matthew Fluet <Mat...@gm...> Date: 2018-08-15 (Wed, 15 Aug 2018) Changed paths: M lib/mlrisc-lib/Makefile Log Message: ----------- Merge pull request #274 from MatthewFluet/mlrisc-lib-find-exp Fix `find` expression in `./lib/mlrisc-lib/Makefile` Compare: https://github.com/MLton/mlton/compare/678049ecc320...203501753e20 **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019. |
From: GitHub <no...@gi...> - 2018-06-13 15:28:59
|
Branch: refs/heads/master Home: https://github.com/MLton/mlton Commit: d65561527fd0eaff90c535dda08de1627dc8c59c https://github.com/MLton/mlton/commit/d65561527fd0eaff90c535dda08de1627dc8c59c Author: Matthew Fluet <mat...@gm...> Date: 2018-06-13 (Wed, 13 Jun 2018) Changed paths: M mlton/codegen/amd64-codegen/amd64-mlton.fun M mlton/codegen/x86-codegen/x86-mlton.fun Log Message: ----------- Remove unused functions Uses of these functions were removed by b068814. Commit: 678049ecc3204247fe9a2583c66006eab57b84ce https://github.com/MLton/mlton/commit/678049ecc3204247fe9a2583c66006eab57b84ce Author: Matthew Fluet <Mat...@gm...> Date: 2018-06-13 (Wed, 13 Jun 2018) Changed paths: M mlton/codegen/amd64-codegen/amd64-mlton.fun M mlton/codegen/x86-codegen/x86-mlton.fun Log Message: ----------- Merge pull request #271 from MatthewFluet/unused-var-warnings Remove unused functions Uses of these functions were removed by b068814. Compare: https://github.com/MLton/mlton/compare/2590cfd9631e...678049ecc320 **NOTE:** This service been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019. |