Commit Graph

186 Commits

Author SHA1 Message Date
evghenii
bb46b561fd Merged with upstream/master 2013-11-22 08:13:16 +01:00
Ilia Filippov
3fd9d5a025 support of LLVM 3.5 2013-11-21 19:09:43 +04:00
Evghenii
e162d5a99d programIndex still not working, found where change is needed... 2013-11-14 19:46:08 +01:00
Evghenii
918ca339b6 now programIndex returns laneIdx = %tid.x & (%warpsize-1) & programCount returns 32 2013-11-14 19:27:52 +01:00
Evghenii
268be7f0b5 fixed ISPCSync functionality 2013-11-13 11:19:10 +01:00
Evghenii
55bf0d23c2 resotred non-ptx functionality 2013-11-13 11:08:58 +01:00
Evghenii
f433aa3ad5 CDP works now 2013-11-13 10:43:52 +01:00
Evghenii
cf679187b1 added CDP calls into IR, next step ... check :) 2013-11-12 16:39:22 +01:00
Evghenii
fd17ad236a export functions are now also generated... next add proper CDP calls.. 2013-11-12 14:05:12 +01:00
Evghenii
dbb96c1885 need to fix launch code 2013-11-12 13:41:03 +01:00
Evghenii
4cd7e10ad3 reversed to original changes. Here is the plan to use CDP and genarate only device code with host wrapper.. 2013-11-12 12:51:56 +01:00
Evghenii
2cef101022 now emits host object file with ptx in it... next step .. testing 2013-10-31 18:05:04 +01:00
Evghenii
0a069f7de2 added comment 2013-10-31 16:06:44 +01:00
Evghenii
a2fd124997 forced module name & ptx string to be generaetd nly once 2013-10-31 16:04:30 +01:00
Evghenii
63917f8cc2 now generates CUDALaunch call. Few tweaks are still necesary 2013-10-31 16:01:34 +01:00
Evghenii
e7ddb9e642 now adds function&module name. next step adding pointer to parameter list 2013-10-30 22:41:01 +01:00
Evghenii
f9ec1a0097 .. work in programm to embed PTX into host code .. 2013-10-30 16:47:30 +01:00
Evghenii
8baef6daa3 +1 2013-10-29 14:01:53 +01:00
Evghenii
ac700d4860 checkpoint 2013-10-29 13:36:31 +01:00
egaburov
f89bad1e94 launch now passes the right info into tasking 2013-10-23 12:51:06 +02:00
Matt Pharr
1276ea9844 Revert "Remove support for building with LLVM 3.1"
This reverts commit d3c567503b.

Conflicts:
	opt.cpp
2013-08-06 17:00:35 -07:00
Matt Pharr
d3c567503b Remove support for building with LLVM 3.1 2013-07-31 06:46:45 -07:00
Matt Pharr
e7abf3f2ea Add support for mask vectors of 8 and 16-bit element types.
There were a number of places throughout the system that assumed that the
execution mask would only have either 32-bit or 1-bit elements.  This
commit makes it possible to have a target with an 8- or 16-bit mask.
2013-07-23 16:50:11 -07:00
Matt Pharr
946c39a5df Fix build with LLVM top-of-tree.
The DIBuilder::getCU() method has been removed; we now just store the
compilation unit returned when we call DIBuilder::createCompileUnit.
2013-07-22 15:42:52 -07:00
Dmitry Babokin
c85439e7bb Fix for the bug introduced by --intrumentation fix 2013-07-04 21:41:57 +04:00
Ilia Filippov
9fb981e9a0 correction of --instrument option support 2013-06-25 12:33:23 +04:00
Ilia Filippov
560acd5017 changes to support createFunction() with DICompositeType argument in LLVM_3_4 2013-06-04 15:48:39 +04: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
james.brodman
60c5bef90f Simplify ~mask codegen to emit single XOR like other places in the code. 2013-05-15 16:57:41 -04:00
Dmitry Babokin
b6b9daa3c5 Enabling llvm 3.4 2013-05-13 19:25:31 +04:00
james.brodman
658dd3486b Add check for enum type in Assert. 2013-04-30 16:10:57 -04:00
Dmitry Babokin
d36ab4cc3c Adding noalias attribute to malloc return 2013-04-25 20:39:01 +04:00
Dmitry Babokin
eb2e5f378c Comment fixes 2013-04-18 15:36:35 +04: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
63dd7d9859 Fix build to work with LLVM top-of-tree again 2013-01-06 12:02:08 -08:00
Matt Pharr
05a5a42a08 Don't force loads/stores from varying types to be unaligned.
These should always actually be aligned in memory.
2012-09-14 12:17:33 -07:00
Jean-Luc Duprat
f0b0618484 Added the following mask tests: __any(), __all(), __none() for all supported targets.
This allows for more efficient code generation of KNC.
2012-09-14 11:06:18 -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
63b8fac852 Improve naming of temporary variable in IR 2012-09-05 10:13:45 -07:00
Matt Pharr
c80bfeacf6 Fix crashes when input program tried to access undefined struct types.
(This in particular would happen when there was an error in the body of a struct
definition and we were left with an UndefinedStructType and then later tried to
do loads/stores from/to it.)

Issue #356.
2012-08-09 14:59:29 -07:00
Matt Pharr
ce8dc5927c Fix bug in FunctionEmitContext::MatchIntegerTypes
Cause of issue #329.
2012-07-20 10:05:17 -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
Matt Pharr
6c7043916e Silence bogus compiler warning 2012-06-28 12:11:56 -07:00
Matt Pharr
b4a078e2f6 Add foreach_active iteration statement.
Issue #298.
2012-06-22 10:35:43 -07:00