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
Dmitry Babokin
7497e86902
Adding Windows support for aligned memory allocation on Windows
2013-04-26 22:07:30 +02:00
Dmitry Babokin
4c35d9456a
Additional cleanup to enable more broadcasts
2013-04-10 15:34:21 +04:00
Dmitry Babokin
5898532605
Broadcast implementation as InsertElement+Shuffle and related improvements
2013-04-10 02:18:24 +04:00
Dmitry Babokin
0f86255279
Target class redesign: data moved to private. Also empty target-feature attribute is not added anymore (generic targets).
2013-03-23 14:28:05 +04:00
Dmitry Babokin
3f8a678c5a
Editorial change: fixing trailing white spaces and tabs
2013-03-18 16:17:55 +04:00
Matt Pharr
0bf1320a32
Remove support for building with LLVM 3.0
2013-01-06 12:27:53 -08:00
Matt Pharr
81dbd504aa
Small fixes to eliminate compiler warnings when using clang
2013-01-06 12:10:54 -08:00
Matt Pharr
63dd7d9859
Fix build to work with LLVM top-of-tree again
2013-01-06 12:02:08 -08:00
Peng Tu
b80867d473
Move the call to RestoreContinuedLanes from bbBody to the correct place of bbCheckForMore for foreach_unique and foreach_active.
2012-10-29 17:27:11 -07:00
Matt Pharr
ddcd0a49ec
Fix bugs with handling of 'continue' statements in foreach_* loops.
2012-09-05 10:16:58 -07:00
Matt Pharr
2a19cc1758
Fix cases where we were trying to type cast instead of type convert.
...
Also, removed erroneous checks about the type of the test expression
in DoStmt and ForStmt.
These together were preventing conversion of pointer types to boolean
values, so things like "while (ptr)" would improperly not compile.
Issue #346 .
2012-08-03 12:47:53 -07:00
Matt Pharr
765a0d8896
Use puts() rather than printf() for printing assertion failure strings.
...
This way, we don't lose '%'s in the assertion strings.
Issue #342 .
2012-08-03 11:31:38 -07:00
Matt Pharr
ae89a65dad
Fix bug that caused unterminated basic blocks.
...
Issue #339 .
2012-07-23 08:24:18 -07:00
Jean-Luc Duprat
aecd6e0878
All the smear(), setzero() and undef() APIs are now templated on the return type.
...
Modified ISPC's internal mangling to pass these through unchanged.
Tried hard to make sure this is not going to introduce an ABI change.
2012-07-17 17:06:36 -07:00
Matt Pharr
926b3b9ee3
Fix bugs with mask-handling for switch/do/for/while statements.
...
All of these pass the current mask to FunctionEmitContext::SetBlockEntryMask()
so that when a break/continue/return is encountered, it can test to see if all
lanes have followed that path and then return; this in turn ensures that we never
run statements with an all-off execution mask.
These functions were passing the function internal mask, not the full mask, and
thus could end up executing code with the mask all off if some lanes were
disabled by an outer function. (The new tests test this case.)
2012-07-09 15:13:30 -07:00
Matt Pharr
2d8026625b
Always check the execution mask after break/continue/return.
...
When "break", "continue", or "return" is used under varying control flow,
we now always check the execution mask to see if all of the program
instances are executing it. (Previously, this was only done with "cbreak",
"ccontinue", and "creturn", which are now deprecated.)
An important effect of this change is that it fixes a family of cases
where we could end up running with an "all off" execution mask, which isn't
supposed to happen, as it leads to all sorts of invalid behavior.
This change does cause the volume rendering example to run 9% slower, but
doesn't affect the other examples.
Issue #257 .
2012-07-06 11:09:11 -07:00
Matt Pharr
73afab464f
Provide mask at block entry for switch statements.
...
This fixes a crash if 'cbreak' was used in a 'switch'. Renamed
FunctionEmitContext::SetLoopMask() to SetBlockEntryMask(), and
similarly the loopMask member variable.
2012-07-06 11:08:05 -07:00