This is an archive of the discontinued LLVM Phabricator instance.

Don't ignore MCTargetOptions::ABIName on targets that currently do so.
Needs ReviewPublic

Authored by sdardis on Jul 13 2016, 5:53 AM.

Details

Summary

This makes these targets consistent with ARM/PowerPC in that they
technically accept ABI information via MCTargetOptions::ABIName but they
only implement one ABI (the empty string).

AArch64 is slightly special in that it also accepts "aapcs" and "darwinpcs"
in addition to the empty string. These names are only used in Clang and
have no functional effect on the backend.

X86 is somewhat special in that it's the only target that supports multiple
ABI's but only accepts the empty string. I can define "32", "x32", and "64"
if that's desirable but it's not necessary for functionality.

No corresponding change is required to clang because targets that don't pass
-target-abi get the empty string by default and those that need to pass it
already do so.

Depends on D21069

Diff Detail

Event Timeline

dsanders updated this revision to Diff 63798.Jul 13 2016, 5:53 AM
dsanders retitled this revision from to Don't ignore MCTargetOptions::ABIName on targets that currently do so..
dsanders updated this object.

Before this patch, the camps were:

  • Targets that pass ABI information in both the triple and MCTargetOptions (ARM/PowerPC)
  • Targets that pass ABI information in the triple only (Mips/X86/everyone-else)

At this point the camps are:

  • Targets that pass ABI information in both the triple and MCTargetOptions (ARM/PowerPC/X86/everyone-else)
    • As noted in the description, X86 is in this camp on a technicality. Let me know if you want me to do more to X86
  • Targets that pass ABI information in the triple only (Mips)

The next two patches (one clang, one llvm) should finish the unification of the two camps.

dsanders updated this revision to Diff 64878.Jul 21 2016, 6:55 AM
dsanders edited edge metadata.

Refresh and ping

rafael removed a subscriber: rafael.
dsanders updated this revision to Diff 65922.Jul 28 2016, 6:30 AM

Refresh and ping

One last ping since I need to either commit this series next week or hand over to a colleague to continue it.

sdardis commandeered this revision.Aug 23 2016, 6:30 AM
sdardis added a reviewer: dsanders.
sdardis added a subscriber: sdardis.

Taking over this patch series.

sdardis updated this revision to Diff 68984.Aug 23 2016, 6:31 AM
sdardis edited edge metadata.

Rebase + ping. I am aware that you're exploring your alternate solution Eric.

sdardis updated this revision to Diff 70393.Sep 6 2016, 5:49 AM

Rebase and ping.

sdardis updated this revision to Diff 76751.Nov 2 2016, 11:32 AM

Rebase and ping

dsanders resigned from this revision.Jul 18 2019, 6:49 PM