View Single Post
Old 08 July 2016, 04:44   #152
Code Kitten

Join Date: Aug 2015
Location: Montreal/Canadia
Age: 46
Posts: 1,036
Originally Posted by alpine9000 View Post
This is a huge task. I started doing an LLVM backend for the SH-2 processor which has small instruction set and simple register set compared to the 68k. And gave up when I realised that I would not be able to make it generate code even close to the quality GCC 5 does.

Unless we can find a similar backend to copy (one with separate data and address registers would be a good start) it's a massive job to get something that would be even close to VBCC.
I am not surprised. When I looked into LLVM's backend documentation I was disappointed to learn that one needed to write code to support a new CPU because they had not designed the code generation system to be fully data driven.
I was pretty pissed because the whole promise of LLVM had been to be as modular and flexible as possible to fix gcc's design mistakes which also prevented its backend to be 100% data driven.

This said, there is already a team working on it but I'm not sure what the status is.
I must admit that I would not care too much about code quality, speed or size in the beginning as long as I can compile Haskell or c++ code. One can always recompile later when the backend has improved.

Originally Posted by alpine9000 View Post
And then, we are really talking about doing X backends (vanilla 68000, 68030, 68030/68040 with FPU, 68060, Vampire ?)
I guess the wise thing to do would be to support the 000 first, then add subsequent models in the chronological order of their release.
My opinion is probably not representative but 000, 010 and EC020 would be more than enough for me (stock, stock, stock, did I mention stock? ).
ReadOnlyCat is offline  
Page generated in 0.04018 seconds with 10 queries