Exupery: A Native Code Compiler for Squeak
Created on 2020-08-11T18:46:27.197371
- Hot-spot compilation: identify code paths of most use, slowly compile those to efficient code, and run everything else in a much slower interpreter.
- Exupery is designed to work along the interpreter and take effect in specific cases where Smalltalk's dynamism is not required.
- Tree based optimizations
- Coloring coalescing register allocator
- Temporaries were still kept on the stack because only arithmetic operations benefitted from registerization.
- Inspiration from Self; using type introspection to generate better code or something.
- Self-hosted in the image so Smalltalkers can modify it.
Issues with Squeak
- Integer tags may require clearing the tag, doing an operation, and restoring the tag.
- Performance issues with how objects are marked across generations.