[PATCH] Begin adding docs and IR-level support for the inalloca attribute

Reid Kleckner rnk at google.com
Wed Nov 13 14:40:12 PST 2013


Hi majnemer, rafael.espindola,

The inalloca attribute is designed to support passing C++ objects by
value in the Microsoft C++ ABI.  It behaves the same as byval, except
that it always implies that the argument is in memory and that the bytes
are never copied.  This attribute allows the caller to take the address
of an outgoing argument's memory and execute arbitrary code to store
into it.

This patch adds basic IR support, docs, and verification.  It does not
attempt to implement any lowering or fix any possibly broken transforms.

This will not be submitted until after the 3.4 branch on Nov 18.

http://llvm-reviews.chandlerc.com/D2173

Files:
  docs/LangRef.rst
  include/llvm-c/Core.h
  include/llvm/Bitcode/LLVMBitCodes.h
  include/llvm/IR/Argument.h
  include/llvm/IR/Attributes.h
  lib/AsmParser/LLLexer.cpp
  lib/AsmParser/LLParser.cpp
  lib/AsmParser/LLToken.h
  lib/Bitcode/Reader/BitcodeReader.cpp
  lib/Bitcode/Writer/BitcodeWriter.cpp
  lib/IR/Attributes.cpp
  lib/IR/Function.cpp
  lib/IR/Verifier.cpp
  lib/Target/CppBackend/CPPBackend.cpp
  test/Bitcode/attributes.ll
  test/CodeGen/CPP/attributes.ll
  test/Verifier/inalloca1.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D2173.1.patch
Type: text/x-patch
Size: 13429 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131113/3af6db58/attachment.bin>


More information about the llvm-commits mailing list