This is an archive of the discontinued LLVM Phabricator instance.

[CodeGen] Clang does not choose aapcs-vfp calling convention for ARM bare metal target with hard float (EABIHF)
ClosedPublic

Authored by iid_iunknown on May 12 2016, 12:53 PM.

Details

Summary

Clang does not detect aapcs-vfp for the EABIHF environment. The reason is that only GNUEABIHF is considered while choosing calling convention, EABIHF is ignored.

This causes clang to use aapcs for EABIHF and add the arm_aapcscc specifier to functions in generated IR.

The modified arm-cc.c test checks that no calling convention specifier is added to functions for EABIHF, which means the default one is used (CallingConv::ARM_AAPCS_VFP).

Diff Detail

Repository
rL LLVM

Event Timeline

iid_iunknown retitled this revision from to [CodeGen] Clang does not choose aapcs-vfp calling convention for ARM bare metal target with hard float (EABIHF).
iid_iunknown updated this object.
iid_iunknown set the repository for this revision to rL LLVM.
iid_iunknown added subscribers: cfe-commits, asl.
t.p.northover accepted this revision.May 12 2016, 2:00 PM
t.p.northover edited edge metadata.

This looks reasonable to me, but please make sure you don't inject Windows line endings into the real repository.

Cheers.

Tim.

This revision is now accepted and ready to land.May 12 2016, 2:00 PM
iid_iunknown closed this revision.May 13 2016, 7:52 AM
This revision was automatically updated to reflect the committed changes.