lp:~mgiuca/mars/llvm-backend
An LLVM backend for Mars. Enables compilation of Mars programs to native machine code.
- Get this branch:
- bzr branch lp:~mgiuca/mars/llvm-backend
Branch merges
Related bugs
Bug #690006: Generate LLVM code | Medium | Fix Committed | |
Bug #781510: LLVM: Collisions between Mars constructor names and built-in type names | Medium | Fix Committed | |
Bug #781615: LLVM: Interactive mode segfaults after runtime error | Critical | Fix Released | |
Bug #1101679: LLVM: array(2, x) creates an empty array | High | Fix Committed |
Related blueprints
Branch information
Recent revisions
- 1311. By Matt Giuca
-
backend_llvm: Now mangles constructor names, to avoid name collisions with built-ins.
(Specifically, constructors would previously collide with built-in type names.)
This mangles both constructor type names (with 'ctor.') and function names (with 'global.').
Fixes LP: #781510. - 1310. By Matt Giuca
-
backend_llvm: mars_to_
llvm_global_ name does not mangle special names like :Dict. - 1309. By Matt Giuca
-
Test case types: Added a type with constructors Int, Array, Func and Any, to test some special constructor names.
Currently, this fails, because they clash with names in the LLVM runtime. - 1308. By Matt Giuca
-
runtime.ll: Fixed bad loop termination condition.
This resulted in memory corruption in array(), writing too many values past the end of the array.
Fixes LP: 1101679. - 1306. By Matt Giuca
-
runtime: Rewrote div and mod so they correctly work on floating-point numbers.
All test cases now pass. - 1303. By Matt Giuca
-
Merge from trunk (rewrite test bignum smallnum test).
All bignum tests now pass (these were rewritten to accomodate a small variance in the number display algorithm). - 1302. By Matt Giuca
-
backend_llvm: var_float now returns the value's float value, rather than rounding it to an int and back.
Branch metadata
- Branch format:
- Branch format 7
- Repository format:
- Bazaar repository format 2a (needs bzr 1.16 or later)