[LLVMdev] Experimental C64X backend

Jeremy Morse jeremy.morse at gmail.com
Wed Aug 18 08:50:04 PDT 2010


> On Thu, 2010-08-12 at 12:03 +0200, Jeremy Morse wrote:
>> The code itself can be found in the git repo at [2] and is based on LLVM
>> 2.7. (Binutils is at [3]).
> Are you intending to keep the development separate or merge to both
> projects' upstream?

Ultimately I'd like that to happen; of course more work is required to
get the code in a fully stable state.

For binutils however, TI are funding development for C6X support [0],
which in addition to C64X supports C62X and C67X DSPs. That project
has already been blessed by the binutils folks, has a wider scope than
what I've implemented, and it's unlikely that they'll take a code
donation of duplicate functionality.

>>  I'd welcome any feedback regarding the LLVM
>> backend - I've no prior experience with LLVM, so it's far from optimal
>> right now.
> Hey, at least it compiles non-trivial programs! Out all the DSP test
> cases I have for the SPU, only a handful don't compile with your
> backend :)

Excellent - I haven't performed any comprehensive testing yet, but
that sounds promising.

> Now if I only could get them running on the C64x... (I cannot
> seem to "allocate dsp node", but that is just my lacking OMAP skills)

Unfortunately TI don't make it easy to compile + load code manually
(they only _support_ it when using their "CodeComposer" tools). That
particular error is normally due to a mismatch between the GUID
embedded in the DSP binary and the GUID/node being allocated. Feel
free to mail me off-list to work this one out - it'd be great to get
something other than my own few tests running.

[NB - I'm currently wandering around Canada, so internet access is intermittent]

[0] http://linux-c6x.org/about/


More information about the llvm-dev mailing list