[llvm-dev] [RFC] [ARM] Execute only support

Christof Douma via llvm-dev llvm-dev at lists.llvm.org
Fri Dec 4 02:38:40 PST 2015


Hi,

 

I'm planning to implement "execute only" support in the ARM code generator.
This basically means that the compiler will not generate data access to the
generated code sections (e.g. data and code are strictly separated into
different sections). Outline:

 

-          Add the subtarget feature/attribute "execute-only" to the ARM
code generator to enable the feature.

-          Add a clang option "-mexecute-only" that passes said attribute to
LLVM.

If execute only is enabled:

-          Instead of using integer literal pools, use movw/movt to
construct the literals. This means this feature is only available for
sub-targets that support these instructions.

-          For floating point literals, use movw/movt/vmov instead of a
literal pool.

-          Move jump tables to data sections.

 

This is basically a re-implementation of a feature that is found in the ARM
Compiler
(http://infocenter.arm.com/help/topic/com.arm.doc.dui0471l/chr1368698593511.
html).

 

Would such a feature be accepted upstream?

 

Thanks,

Christof

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151204/0fd5c921/attachment.html>


More information about the llvm-dev mailing list