x86 calling conventions refactoring

Hi all,

The attachment supersedes the previous patch. It incorporates some feedback from Anton and takes the next step of merging the largely duplicated calling convention logic in X86ISelLowering.

  • LowerCCCArguments, LowerX86_64CCCArguments and LowerFastCCArguments are merged and inlined directly into LowerFORMAL_ARGUMENTS.
  • I moved LowerFORMAL_ARGUMENTS to the location where LowerCCCArguments was in order to facilitate review (otherwise the diff would contain no useful deltas), but it should go back where it belongs afterwards.
  • LowerX86_64CCCCallTo and LowerX86_64CCCCallTo were consolidated with LowerCCCCallTo.
  • I haven’t yet tackled merging LowerCCCCallTo and LowerTailCallTo.

There net savings is 405 LOC.

I’d appreciate tests on Windows and x86-64 hosts, since some of the logic was rather convoluted.

— Gordon

x86cconv.patch (46.4 KB)

This rebases this patch to r45536 (http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071231/056756.html) and I also finished merging LowerCCC- and -TailCallTo.

-508 LOC!

— Gordon

x86cconv3.patch (59.3 KB)

This looks good to me! If you have run it through a round of testing, please commit.

Thanks,

Evan