blog post: TCE project: Co-design of application-specific processors with LLVM-based compilation support

Hi,

I wrote an LLVM blog post about our use of LLVM in the TCE project and a bit
of a background for the TCE project in general. I hope some of you will find
it interesting :slight_smile:

I'll ask here (rather than the TCE list) because it's more about your
use of LLVM rather than TCE. One thing that's I'd be interested to
know, given that your application has different "expectations" to a
conventional processor, is how things are architected: does your code
"take control" and call LLVM routines or did you make everything your
TCE engine fit the interface of a conventional LLVM backend? It also
sounds like you've got only one transition from "LLVM standard
expectations representation" to "TTA representation" in the pipeline:
is that correct?

(I'm trying to get my head around these "non-standard interfacing"
issues at the moment so I'd be interested in how you've glued stuff
together.)

Hi,

I'll ask here (rather than the TCE list) because it's more about your
use of LLVM rather than TCE. One thing that's I'd be interested to
know, given that your application has different "expectations" to a
conventional processor, is how things are architected: does your code
"take control" and call LLVM routines or did you make everything your
TCE engine fit the interface of a conventional LLVM backend? It also

Currently it "takes control" and we have a tool similar to what llc
is, except with some small tweaks needed due to the runtime
retargetability etc. There has been plans to make it unnecessary so we
could use llc directly (mainly the generated backends that need to
be loaded as plugin modules), but you know how it is, if it works OK as is,
there're usually some more important things to spend one's time on :slight_smile:

sounds like you've got only one transition from "LLVM standard
expectations representation" to "TTA representation" in the pipeline:
is that correct?

Yes.