I'm "releasing" v0.5 of p2llvm and wanted to give an update on where I am at with it. Release is here: https://github.com/ne75/p2llvm/releases/tag/v0.5 (I don't have built binaries, only the source).
The major improvements are:
- Plenty of bug fixes in function lowering, stack usage, branch analysis, and assembly parsing.
- More complete assembly parsing. Not fully conformant to PASM2 yet but getting there.
- Improved optimization of using AUGS/AUGD directly with target instruction (rather than first moving to a register)
- Placement of the runtime library into LUT so every cog always has access to it (before only non-native cogs could use it)
- Use PTRx expressions exclusively for stack access.
- Started work on a compatible debugger.
I intend to continue to improve and maintain this project as I can, even if no one else uses it. But if you do try it out, please let me know, especially if you find bugs or issues, I'd love to fix them (if I can). Or, if there's a feature that would be useful, I'd love to add it.
At some point, I think I want to write a somewhat formal ABI so that common things (especially the propeller.h library) can have a standard implementation across the various toolchains folks have developed, and will make adding future languages more straight forward hopefully. Thoughts on that effort?