jbrodman
7c9235559d
Remove #include included for testing.
2014-09-03 06:59:12 -07:00
Vsevolod Livinskiy
93c7ddbac5
Added supported LLVM versions
2014-08-24 21:37:42 +04:00
Vsevolod Livinskiy
5ba7d2696d
Fix for llvm revision 216239
2014-08-24 17:35:28 +04:00
Anton Mitrokhin
60fa76ccc1
reversed macros LLVM_3_6 to LLVM_3_5+ in .cpp and .h files
2014-08-01 15:40:48 +04:00
Anton Mitrokhin
d0c9b7c9b5
wiped out all LLVM 3.1 support
2014-08-01 14:54:08 +04:00
Anton Mitrokhin
725be222ac
added LLVM_3_6 var
2014-07-30 11:50:15 +04:00
Ilia Filippov
02d55f24f6
adding const to Atomic::Void type
2014-03-17 14:42:55 +04:00
Dmitry Babokin
31b95b665b
Copyright update
2014-03-12 20:19:16 +04:00
Ilia Filippov
c017e46820
support LLVM trunk after r202736 revision
2014-03-04 16:02:25 +04:00
Dmitry Babokin
6d51987e67
Merge pull request #642 from egaburov/launch3d
...
concept of 3d tasking
2013-12-17 08:40:07 -08:00
Dmitry Babokin
2d2d14744b
Fixing --opt=force-aligned-memory for LLVM 3.3+
2013-12-04 19:00:02 +04:00
Ilia Filippov
3fd9d5a025
support of LLVM 3.5
2013-11-21 19:09:43 +04: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