[PATCH] D27392: Vectorcall Calling Convention - Adding CodeGen Complete Support

Oren Ben Simhon via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Dec 4 02:10:01 PST 2016


oren_ben_simhon created this revision.
oren_ben_simhon added reviewers: rnk, zvi, aaboud, igorb.
oren_ben_simhon added a subscriber: llvm-commits.
oren_ben_simhon set the repository for this revision to rL LLVM.

The __vectorcall calling convention specifies that arguments to functions are to be passed in registers, when possible.
__vectorcall uses more registers for arguments than __fastcall or the default x64 calling convention use. 
The __vectorcall calling convention is only supported in native code on x86 and x64 processors that include Streaming SIMD Extensions 2 (SSE2) and above.

The current implementation does not handle Homogeneous Vector Aggregates (HVAs) correctly and this review attempts to fix it.
The review also includes additional lit tests to cover better HVAs corner cases.


Repository:
  rL LLVM

https://reviews.llvm.org/D27392

Files:
  include/llvm/CodeGen/CallingConvLower.h
  include/llvm/Target/TargetCallingConv.h
  lib/CodeGen/CallingConvLower.cpp
  lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  lib/Target/X86/X86CallingConv.cpp
  lib/Target/X86/X86CallingConv.h
  lib/Target/X86/X86CallingConv.td
  lib/Target/X86/X86ISelLowering.cpp
  test/CodeGen/X86/vectorcall.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D27392.80200.patch
Type: text/x-patch
Size: 28908 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161204/d30ca327/attachment.bin>


More information about the llvm-commits mailing list