Would anyone happen to know if there are any efforts underway at enhancing the Trident compiler?
Some of the things that I would like to add to the Trident compiler are :
a. Support for compiling multiple C functions in an input file
b. Support for parameter passing
c. Support for functions returning results
d. Support for a C++ front end, and C++ objects
e. Updating the trident compiler to support LLVM-2.4
I would appreciate it if someone could give me some pointer on how to do this. Thanks!!
I'm not sure, but I think you should do point 'e' first - unless you want to implement 'a' to 'd' first for 1.5 and then again for 2.4.
Yes, that's true! I just listed it in order of short-comings of the existing compiler.
I've been reading up on existing tools, and it would appear that a couple of commercial tools exist, most notably Xilinx AutoESL, which supports C, C++, SystemC and M-code. Others support better C functionality, e.g. c-to-verilog, which does not have the current limitations of Trident. Some of them already use gnu gcc for doing some of the work.
So, the conclusion I can draw is that there definitely is scope for improvement, and it is not a technological limitation. Others have done it, but unfortunately all of them appear to be commercial ones, with prices ranging from $145000 to $170000 for a compiler license.
Ok, so if I were to start working on re-writing Trident to use LLVM-2.4, what should I keep in mind? Where should I start?
Is there a link I can use to find out the differences between LLVM-1.5 and LLVM-2.4, to come up with a migration strategy?
I need links to docs that will teach me how LLVM-15 and LLVM-2.4 operates, to understand and perform this task.
Any help would be appreciated!!
2008/12/29 Elvis Dowson <email@example.com>
Is there a link I can use to find out the differences between LLVM-1.5
and LLVM-2.4, to come up with a migration strategy?
I need links to docs that will teach me how LLVM-15 and LLVM-2.4
operates, to understand and perform this task.
To my knowledge, there isn’t a single doc describing the differences between any two non-consecutive versions, but every release has a file called ReleaseNotes.html that describes what has changed since the previous version.
The largest change as far as IR is concerned happened from 1.9 → 2.0: http://llvm.org/releases/2.0/docs/ReleaseNotes.html . You can get the release notes for the other versions without downloading the entire distributions here: http://llvm.org/releases/ .