Enhancing the Trident compiler

Hi,
        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!!

Best regards,

Elvis

Hi,

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.

Best regards,
Nico

Hi Nico,
                  Yes, that's true! :slight_smile: 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. :slight_smile:

Any help would be appreciated!! :slight_smile:

Best regards,

Elvis

2008/12/29 Elvis Dowson <elvis.dowson@mac.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. :slight_smile:

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/ .

Misha