[LLVMdev] AVR back end

Borja Ferrer borja.ferav at gmail.com
Wed Jun 12 11:05:38 PDT 2013


@Anitha
The backend is on the stage of being able to compile any program
independently of its complexity, atleast that is the theory, any failures
should get fixed. The only missing C language feature/extension I know of
now is inline asm, which is currently being worked on. It has support for
varargs and variable sized allocas.

The backend has support for 95% of the ISA, including all adressing modes
(predec, postinc and indexed) for both data and program address spaces.
Currently, the only code emission mode supported is text, in the future
object file emission should be implemented, for now we require an external
assembler and linker. No support now for subtargets.

Regarding optimizations, it has very few implemented. I've focused first on
getting correct code generation for any program, and then when the backend
is sort of stable get focused on getting those optimizations done.

On the frontend side, we're using clang. We have support for ISR's (signal
and interrupt function attributes) and for the __flash keyword to store
data in program memory using the named address space extension.

@Carlo
I haven't tested any C++ program with the backend so no idea about that. We
don't have those sort of optimizations implemented yet so it will depend on
the default llvm behaviour. It's something that will get done in the
future, aswell as storing jump/switch tables in progmem.

If you want to know any other specific thing about the backend let me know.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130612/6b57efbd/attachment.html>


More information about the llvm-dev mailing list