commit 5e6f06cf59
Author: Aaron Gutierrez <gutierrez.aaron.m@gmail.com>
Date: Thu May 11 15:42:11 2017 -0400
Fixed issue with aliasing local variables
ISPC++ now produces valid code, or an appropriate error message, for all
of my test cases.
commit bfe723e1b7
Author: Aaron Gutierrez <gutierrez.aaron.m@gmail.com>
Date: Thu May 11 03:09:38 2017 -0400
Actually copy the AST.
Type replacement works except for function parameters.
commit f65b3e6300
Author: Aaron Gutierrez <gutierrez.aaron.m@gmail.com>
Date: Thu May 11 01:19:50 2017 -0400
[WIP] Remove cases for ForeachStmt and SymbolExpr
commit 2e28640860
Merge: 6a91c5dd020107
Author: Aaron Gutierrez <gutierrez.aaron.m@gmail.com>
Date: Wed May 10 23:13:40 2017 -0400
Merge branch 'master' into copy_ast
commit 6a91c5d5ac
Author: Aaron Gutierrez <gutierrez.aaron.m@gmail.com>
Date: Wed May 10 11:11:39 2017 -0400
Attempt to replicate AST when expanding polytypes
The reason of problem is that ISPC generates debugInfo type of struct (or enum)
in the scope, where the variable of this type appears.
Ctx.cpp:1586
llvm::DIScope scope = GetDIScope();
llvm::DIType diType = sym->type->GetDIType(scope);
It is always Lexical_Block in some function. It is not right because type can
be declared global or in some function or in some namespace. Struct and enums
are failing because they don't reduce to atomic types. The "Big" fix is to save
declaration place in Type class. But now ISPC doesn't know about it,
for example this doesn't emit an error:
void function_1() { struct Foo {float x;}; uniform Foo myFoo;}
void function_2() { uniform Foo myFoo;}
So now all type declarations are global and we can simply change scope
parameter to the current file.
The "Big" fix will be after integration with clang.