[LLVMdev] Software Pipelineing | Embedded C Extensions

Dietmar Ebner ebner at complang.tuwien.ac.at
Tue Feb 13 09:35:38 PST 2007


we're considering LLVM as an excellent framework for a compiler backend
for a novel dsp architecture based on vliw principles that is still  
development. in this context, two students at our institute are  
interested in the following projects:

I) software pipelining
    apparently [1], there has been already an remarkable amount of  
work done
    by tanya lattner for the sparc backend. however, it appears it  
did not (yet)
    make its way into llvm. are there ongoing efforts in this  
direction? most of
    the work seems to be done in an architecture dependent, very low- 
level IR. are
    there any efforts to generalize architecture independent portions  
of the code.
    any comments on this are very appreciated.

II) Embedded C Extensions [2,3]
    there's a ongoing project in gcc [4] that aims to implement  
embedded c extensions
    for gcc. it appears that the portions belonging to the frontend  
are already pretty
    stable. are there already people working on getting those bits  
into llvm?
    i see two basic approaches:
    a) implement fractional and saturated operations using  
(conditional) integer arithmetic.
       this does not require to change anything within llvm but might  
make it hard to detect
       those patterns for the instruction selector in order to  
generate efficient code
       for architectures with hardware support for those features.
    b) introduce new types for llvm that handle types such as  
__Fract, __Accum and _Sat.
    again, comments are highly appreciated.



[1] http://llvm.org/pubs/2005-06-17-LattnerMSThesis.html
[2] http://www.embedded-c.org/
[3] http://www.open-std.org/jtc1/sc22/wg14/
[4] http://gcc.gnu.org/wiki/FixedPointArithmetic

Dietmar Ebner
CD Laboratory - Compilation Techniques for Embedded Processors
Institut fuer Computersprachen  E: ebner at complang.tuwien.ac.at
Technische Universitaet Wien    T: (+431) 58801-18598
Argentinierstrasse 8 / E1851    F: (+431) 58801-58521
1040 Wien, Austria              W: www.complang.tuwien.ac.at/cd/ebner

More information about the llvm-dev mailing list