Merge pull request #411 from pengtu/master

Simple fixes to allow SOA pointer and array be passed as function argument.
This commit is contained in:
jbrodman
2013-01-08 08:40:01 -08:00
4 changed files with 10 additions and 5 deletions

View File

@@ -808,7 +808,12 @@ Module::AddFunctionDeclaration(const std::string &name,
// uniform pointers, since varying pointers are int vectors...)
if (!functionType->isTask &&
((CastType<PointerType>(argType) != NULL &&
argType->IsUniformType()) ||
argType->IsUniformType() &&
// Exclude SOA argument because it is a pair {struct *, int}
// instead of pointer
!CastType<PointerType>(argType)->IsSlice())
||
CastType<ReferenceType>(argType) != NULL)) {
// NOTE: LLVM indexes function parameters starting from 1.