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
Matt Pharr
ed13dd066b
Distinguish between 'regular' foreach and foreach_unique in FunctionEmitContext
...
We need to do this since it's illegal to have nested foreach statements, but
nested foreach_unique, or foreach_unique inside foreach, etc., are all fine.
2012-06-22 06:04:00 -07:00
Matt Pharr
2b4a3b22bf
Issue an error if the user has nested foreach statements.
...
Partially addresses issue #280 . (We should support them properly,
but at least now we don't silently generate incorrect code.)
2012-06-21 16:53:27 -07:00
Matt Pharr
007a734595
Add support for 'unmasked' function qualifier.
2012-06-20 15:36:00 -07:00
Matt Pharr
89a2566e01
Add separate variants of memory built-ins for floats and doubles.
...
Previously, we'd bitcast e.g. a vector of floats to a vector of i32s and then
use the i32 variant of masked_load/masked_store/gather/scatter. Now, we have
separate float/double variants of each of those.
2012-06-07 14:47:16 -07:00
Matt Pharr
1ac3e03171
Gather/scatter function improvements in builtins.
...
More naming consistency: _i32 rather than i32, now.
Also improved the m4 macros to generate these sequences to not require as
many parameters.
2012-06-07 14:19:23 -07:00
Matt Pharr
b86d40091a
Improve naming of masked load/store instructions in builtins.
...
Now, use _i32 suffixes, rather than _32, etc. Also cleaned up the m4
macro to generate these functions, using WIDTH to get the target width,
etc.
2012-06-07 13:58:31 -07:00
Matt Pharr
7b6bd90903
Remove various equality checks between GetInternalMask() and LLVMMaskAllOn
...
These were never kicking in, since GetInternalMask() always loads from the
mask storage memory.
2012-06-06 11:08:42 -07:00
Matt Pharr
6118643232
Handle more error cases if the user tries to declare a method.
2012-06-04 09:07:13 -07:00