[cfe-commits] EABI triples patch (2/2)

Renato Golin renato.golin at arm.com
Wed Jan 19 07:21:16 PST 2011

Sorry, I sent this patch to the llvm-commit list... See the first part
of the patch in llvm-commit list.

The attached patch adds support for EABI triples in Clang (from today's
r123755) regarding bug #8957



Clang was not parsing target triples involving EABI and was generating
wrong IR (wrong PCS) and passing the wrong information down llc via
the target-triple printed in IR. I've fixed this by adding the parsing
of EABI into LLVM's Triple class and using it to choose the correct
PCS in Clang's Tools.

There's still some edges to cover, such as the decisions of which PCS
to use based on Darwin's defaults (v6/v7). We should add support for
architecture definitions (TargetData?) to Clang, to be able to
correctly pass the options to llc AND re-generate the correct target
triple in the final IR.

This patch (2/2):

This are Clang's modifications to use the EABI triple recognition and
set the according float-abi and procedure call standards.

The patch doesn't change Darwin's default on "soft" for architectures
older than v6 (a bit odd), but it doesn't add this rule to EABI
triples, since the old APCS was deprecated in the current EABI.
However, functions with ellipsis and other special features (?) can
still use the "C" calling convention available in LLVM.

The Environment check was added on the OS's default label, which
although not perfect, it's the best place now to avoid regressions.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: arm-triple-clang.patch
Type: text/x-patch
Size: 1766 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20110119/1876d077/attachment.bin>

More information about the cfe-commits mailing list