155 Commits

Author SHA1 Message Date
a47cab4dfa Replicates all needed state between expanded functions
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: 6a91c5d d020107
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
2017-05-11 15:43:29 -04:00
192b99f21d Translates polymorphic function to a single instance 2017-05-09 23:41:36 -04:00
7bb1741b9a [WIP] implement ReplacePolyType for stmts 2017-05-09 15:30:39 -04:00
0f17514eb0 remove trailing whitespace 2017-05-08 17:45:17 -04:00
46ed9bdb3c [WIP] Plumbing to expand polymorphic functions 2017-05-04 21:26:43 -04:00
Andrey Shishpanov
ab4cd1e8a2 Fixed the last useless step in foreach_tiled in some cases 2016-04-12 00:29:17 +03:00
Anton Mitrokhin
d862672664 Fix up return statements in unmasked regions 2015-12-21 20:13:47 +03:00
Anton Mitrokhin
ed71f684be Use 'dyn_cast_or_null' instead of 'dyn_cast' 2015-10-27 17:46:47 +03:00
Anton Mitrokhin
8217448ee5 Id's for Stmt-inherited classes 2015-07-09 14:45:33 +03:00
Anton Mitrokhin
26a93bc733 Id's fo Expr-inherited classes 2015-07-09 12:38:58 +03:00
Anton Mitrokhin
ebc47d00a1 remove several redundant #if - clauses 2015-06-17 17:40:02 +03:00
Anton Mitrokhin
0afa3f5713 New LLVM version macro 2015-06-17 10:14:28 +03:00
evghenii
9238c72e08 Merge branch 'master' into nvptx_clean_master 2014-10-14 14:27:00 +02:00
jbrodman
7c9235559d Remove #include included for testing. 2014-09-03 06:59:12 -07:00
evghenii
8745888ce9 merged with master 2014-08-11 10:04:54 +02:00
Anton Mitrokhin
d0c9b7c9b5 wiped out all LLVM 3.1 support 2014-08-01 14:54:08 +04:00
evghenii
b3c5a9c4d6 added #ifdef ISPC_NVPTX_ENALED ... #endif guards 2014-07-09 12:32:18 +02:00
Evghenii
4641a15287 Merge branch 'master' into nvptx 2014-03-19 10:53:07 +01:00
Dmitry Babokin
31b95b665b Copyright update 2014-03-12 20:19:16 +04:00
Evghenii
739e4e73ef make static illegal 2014-02-21 12:08:09 +01:00
Evghenii
4196c723eb merged with nvptx 2014-02-20 11:01:58 +01:00
Evghenii
8ffa84f875 added some #ifdef .. #endif for control flow tests 2014-02-06 10:12:31 +01:00
Evghenii
686c1d676d improvements 2014-02-05 12:04:36 +01:00
jbrodman
98cfc17843 Fix bug with printing due to uneven handling of bool types 2014-02-04 08:12:02 -08:00
Evghenii
98c82242c5 allowed static and disable memcpy/memmove/memset operations 2014-02-03 08:02:50 +01:00
Evghenii
ddb9b2fc47 added basic printing from ptx 2014-01-24 13:44:38 +01:00
Evghenii
1a07aed6aa foreach_unique will work now on atomic data types, not pointers yet. enum is not tested. All tests/foreach-unique-*.ispc pass 2014-01-24 08:30:50 +01:00
Evghenii
1cf1dab649 fixed foreach_unique and local_atomics 2014-01-23 21:57:20 +01:00
Evghenii
da7a2c0c7f added emulation of "soa" data types via shared-memory 2014-01-23 16:17:06 +01:00
Evghenii
9389b6e3ef basic optimization path fails 2014-01-10 06:34:44 +01:00
evghenii
9053eed4b4 added basic optimization pass that promotes uniform into varying variables (not array) for nvptx target 2014-01-10 06:32:57 +01:00
Evghenii
b6b8855728 +1 2014-01-09 14:45:52 +01:00
Evghenii
2c043f67d0 +some uniform related improvements 2014-01-09 14:37:27 +01:00
Evghenii
1ed438dcdb cleaned up a bit code for treatment of non-static uniform variables. all stored in shared memory 2014-01-09 13:02:50 +01:00
Evghenii
db6f526b78 added experimental support for uniform variables, not only arrays. makes applications slower 2014-01-09 12:18:10 +01:00
Evghenii
5f859e4885 added addrspace(3,4)->addrspace(0) convertion to ctx->GetElementPtrInst. Appears to work now. 2014-01-08 19:31:28 +01:00
Evghenii
cc53fa4c14 fixed addrspace(3) pointer offset computation during conversion. Now it is done in GetElementPtr 2014-01-08 18:43:33 +01:00
Evghenii
69c5e0aae7 convert pointers in function arguments to addrspace(3). still there is poroblem with shared memory. need to figure out which one .. 2014-01-08 15:12:32 +01:00
Evghenii
d3dc5e0df1 patched examples to work with uniform for nvptx. function calls with non-generic pointers fail. need fix 2014-01-08 14:25:21 +01:00
Evghenii
de4d66c56f added addrspace(4)/constant memory for const uniform declarations 2014-01-08 13:27:24 +01:00
Evghenii
0a66f17897 experimental support for non-constant [non-static] uniform arrays mapped to addrspace(3) 2014-01-08 11:06:14 +01:00
Evghenii
9b74e60185 added conversion from addrspace(3)/__local/__shared__ to addspace(0)/generic when PtrToInt is called 2014-01-07 14:29:55 +01:00
Evghenii
96597d3716 identified where to add shared memory. other problems showed up.. 2014-01-07 11:07:54 +01:00
Evghenii
546f9cb409 MAJOR CHANGE--- STOP WITH THIS BRANCH-- 2014-01-06 13:51:02 +01:00
evghenii
298b4b8b5b +1 2014-01-02 13:16:14 +01:00
Evghenii
e192e8ea9e +change static naming in IR to make it compatible with NVVM 2013-11-22 14:43:14 +01:00
Evghenii
af75afeb7a foreach[_tiled] seems to work now 2013-11-14 16:29:40 +01:00
Evghenii
48644813d4 stmt.cpp forking on foreach 2013-11-14 11:30:22 +01:00
james.brodman
403d9e1059 Update break/continue test to use contribution of function mask. 2013-05-21 10:52:38 -04:00
james.brodman
4ea02c59d8 Disable break optimization and change return check to use full mask. 2013-05-21 10:00:22 -04:00