[LLVMdev] overlay attribute

Alireza.Moshtaghi at microchip.com Alireza.Moshtaghi at microchip.com
Thu Apr 10 10:44:54 PDT 2008


I would like to make the following target specific modifications to
clang and would like to get some advice from experts.

1) My target supports very poor stack access so we implement "static
stack". In this model, all local variables will have static storage
class. I think I can take care of this in the
clang::CGDecl.cpp::CodeGenFunction::EmitBlockVarDecl()

2) To improve memory usage, I also would like to add a new default
attribute "overlay" to local variables (all will have static storage
class as mentioned in 1). This attribute will be applied to all local
variables except if the user has explicitly made the variable static in
which case the attribute is not added. I think I should be able to take
care of this also in the same place
clang::CGDecl.cpp::CodeGenFunction::EmitBlockVarDecl() however I don't
know how to define and apply the "overlay" attribute.

3) I did not find any way to access the attributes from llvm backend. I
was wondering if I should use something similar to what address space is
doing or there may be some other way possible.

4) Input arguments and return value of all functions should also have
the same overlay-static storage class. I can take care of these entirely
in the backend. However, I would like to know your feedback.

Thanks




More information about the llvm-dev mailing list