-
Notifications
You must be signed in to change notification settings - Fork 30
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MLKit now generates 64bit assembler under both Linux and macOS for all combinations of GC, Region-based memory management, and profiling. All tests are working, including the following targets: * `make mlkit` * `make mlkit_libs` * `(cd test_dev; make test)` * `(cd test; make test_mlkit)`` * `make bootstrap` There are a number of possibilities for improvements and features that are not currently included. In particular, the KAM backend, which is the basis for SMLserver, has not yet been ported. Possibilities for improvements include: * Elimination of the `gen->b` pointer (use alignment properties instead). * Inlining of allocation in regions (for the common case). * Figure out how to assign certain C callee-save registers to variables that are live across C calls. * Many peep-hole optimisations seem possible. * Eliminate the need for dynamic stack alignment on 16-byte boundaries. * Test the preliminary support for generational garbage collection. * Use conditional move instructions instead of conditional jumps when possible. * Add Word64 and Word63 modules and friends. Whenever we have WordX, we should also have IntX. We should then also modify the default word type to be Word64.word if GC is disabled and Word63.word if GC is enabled. Immediate constants of size 64 and 63 should also be supported.
- Loading branch information
Showing
185 changed files
with
19,462 additions
and
3,301 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.