[PATCH] D48589: [WIP] [CodeGen] Allow specifying Extend to CoerceAndExpand

2018-12-07 Thread Roger Ferrer Ibanez via Phabricator via cfe-commits
rogfer01 abandoned this revision. rogfer01 added a comment. Upstream recently amended the ABI spec so it looks to me this is not going to be needed. CHANGES SINCE LAST ACTION https://reviews.llvm.o

[PATCH] D48589: [WIP] [CodeGen] Allow specifying Extend to CoerceAndExpand

2018-06-27 Thread John McCall via Phabricator via cfe-commits
rjmccall added a comment. In https://reviews.llvm.org/D48589#1144976, @rogfer01 wrote: > @rjmccall because we do not want to impact the clients of `ABIArgInfo` I > thought of two possible approaches > > 1. extend `CGFunctionInfo` with a third trailing array (now it has two), with > as many elem

[PATCH] D48589: [WIP] [CodeGen] Allow specifying Extend to CoerceAndExpand

2018-06-27 Thread Roger Ferrer Ibanez via Phabricator via cfe-commits
rogfer01 added a comment. @rjmccall because we do not want to impact the clients of `ABIArgInfo` I thought of two possible approaches 1. extend `CGFunctionInfo` with a third trailing array (now it has two), with as many elements as `ABIArgInfo` (call it `ABIArgExtraInfo`) then during the creat

[PATCH] D48589: [WIP] [CodeGen] Allow specifying Extend to CoerceAndExpand

2018-06-27 Thread Roger Ferrer Ibanez via Phabricator via cfe-commits
rogfer01 updated this revision to Diff 153070. rogfer01 added a comment. ChangeLog: - Use a `ConstantDataArray` instead of a struct of types. - Use `LLVM_IS_TRIVIALLY_COPYABLE` https://reviews.llvm.org/D48589 Files: include/clang/CodeGen/CGFunctionInfo.h lib/CodeGen/CGCall.cpp Index: lib

[PATCH] D48589: [WIP] [CodeGen] Allow specifying Extend to CoerceAndExpand

2018-06-26 Thread John McCall via Phabricator via cfe-commits
rjmccall added inline comments. Comment at: include/clang/CodeGen/CGFunctionInfo.h:90 union { -unsigned DirectOffset; // isDirect() || isExtend() -unsigned IndirectAlign;// isIndirect() -unsigned AllocaFieldIndex; // isInAlloca() +llvm::StructType *Exte

[PATCH] D48589: [WIP] [CodeGen] Allow specifying Extend to CoerceAndExpand

2018-06-26 Thread Roger Ferrer Ibanez via Phabricator via cfe-commits
rogfer01 added inline comments. Comment at: include/clang/CodeGen/CGFunctionInfo.h:90 union { -unsigned DirectOffset; // isDirect() || isExtend() -unsigned IndirectAlign;// isIndirect() -unsigned AllocaFieldIndex; // isInAlloca() +llvm::StructType *Exte

[PATCH] D48589: [WIP] [CodeGen] Allow specifying Extend to CoerceAndExpand

2018-06-26 Thread John McCall via Phabricator via cfe-commits
rjmccall added inline comments. Comment at: include/clang/CodeGen/CGFunctionInfo.h:90 union { -unsigned DirectOffset; // isDirect() || isExtend() -unsigned IndirectAlign;// isIndirect() -unsigned AllocaFieldIndex; // isInAlloca() +llvm::StructType *Exte

[PATCH] D48589: [WIP] [CodeGen] Allow specifying Extend to CoerceAndExpand

2018-06-26 Thread Roger Ferrer Ibanez via Phabricator via cfe-commits
rogfer01 created this revision. rogfer01 added a reviewer: rjmccall. This is WIP and it is motivated by the suggestions in http://lists.llvm.org/pipermail/cfe-dev/2018-June/058263.html First attempt, piggybacking the extend information in a structure where the bit-width of the integer represent

[PATCH] D48589: [WIP] [CodeGen] Allow specifying Extend to CoerceAndExpand

2018-06-26 Thread Roger Ferrer Ibanez via Phabricator via cfe-commits
rogfer01 added inline comments. Comment at: include/clang/CodeGen/CGFunctionInfo.h:475 +static_assert(std::is_trivially_copyable::value, +"ABIArgInfo must be trivially copyable as it is embedded as trailing " I think this is the right trait here. I spent to