vliw compatability

hi guys

I need to get llvm to support vliw architecture. Can you please point me in the right direction. we have managed to get it to compile into simple assemble and now need it to be able to schedule the instructions in parrallel.

any help would be appreciated

Regards

Junior

You'll need to add one or more custom passes to do the appropriate
scheduling. LLVM doesn't support any VLIW architectures at the
moment, so there isn't any good example to look at; you'll probably
have to experiment a bit to figure out something that works.
llvm/lib/CodeGen/PostRASchedulerList.cpp and
lib/Target/Sparc/DelaySlotFiller.cpp are somewhat similar to what you
need to do.

-Eli

Hi,

I need to get llvm to support vliw architecture. Can you please point me
in the right direction. we have managed to get it to compile into simple
assemble and now need it to be able to schedule the instructions in
parrallel.

We have a customizable exposed datapath VLIW (called Transport Triggered Architecture or TTA) that uses LLVM as the compiler
front+middle+some parts of the backend. However, our backend is not
probably the best example on how to implement a statically scheduled
target backend using LLVM.

The instruction scheduler predates our use of LLVM (we used to use
an old gcc previously) so we have a fully custom code instruction
scheduler with retargetable resource tables, etc. to support our
long instruction word target that has user-defined datapath resources.

Anyways, what we do here is after register allocation and instruction
selection the LLVM MachineInstruction representation is converted to
a representation of our own (based on CFG+DDG) which is then optimized
using some TTA-specific optimizations and scheduled to the given
TTA architecture using our retargetable resource table implementation.

The project's web page is at http://tce.cs.tut.fi, there's also an
open source (MIT licensed) version available for download if you
want to poke at it. In http://tce.cs.tut.fi/index.php/publications/tce
there are a couple of master's theses written about the toolset
which might be of help.

Best regards,