[llvmlinux] Heavy experiments

Behan Webster behanw at converseincode.com
Wed Jul 24 20:08:27 UTC 2013

On 07/24/13 15:43, Marcelo Sousa wrote:
>              - Target-specific lowering does destroy the IR, making it
>             impossible to be portable, sometimes even to sub-architectures
>         Can you get me some concrete examples of this?
>     ByVal is one. Procedure call standard is another. Intrinsics are
>     yet another. You can't even throw an ARMv7-hf function into an
>     ARMv5 target, even both being ARM.
> I'm not sure if fully understand what you are saying still.
There is more than one ABI for a particular family of cpus. For instance 
IR targeting one ARM hardware architecture (ARMv7 with hard float) won't 
necessarily be usable on another (ARMv5 with soft float support). Renato 
is saying that IR isn't portable even within the same family of CPUs 
(doesn't work on all ARMs let alone across multiple CPU architectures 

You also can't mix the ARM ABIs. The entire system must be compiled 
armel (which supports soft float and optional fpu/vfp) or armhf (hard 
float requirement with different parameter passing for function and 
system calls). There is actually an older ABI called oabi as well, but 
it's not relevant in this situation. :)

I hope that helps.


Behan Webster
behanw at converseincode.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/llvmlinux/attachments/20130724/96de9d6b/attachment.html>

More information about the LLVMLinux mailing list