vamp-ir
vamp-ir copied to clipboard
Murisi/preserve type info
The main purpose of this pull request is to improve the speed of compilation. With these changes blake2s.pir goes from taking 5m 55s to compile to 10s. The specific changes made are as follows:
- Instead of inlining, compilation now emits constraints as it interprets vamp-ir source files
- Instead of repeating type inference after transformations, type information is now preserved through transformations
- This preservation is done by unifying type variables at call-sites and ununifying them after application is processed
- Constraints are now directly emitted in 3AC form without any intermediate stage
- Patterns now store type annotations, this makes it easier to preserve type information during transformations
- Added Blake2S script as a test for compiler execution time
Great work with these improvements @murisi and with blake2s @CarloModicaPortfolio!