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
jbrodman
d3144da5eb
Add error messages for structs containing nested undefined structs
2014-05-27 15:50:53 -07:00
Ilia Filippov
ecdc695b22
Changing overload rules to match C++ behavior: Emit a warning when the best overload match has some number of no-best matching parameters.
2014-03-25 12:41:09 +04:00
Ilia Filippov
6f44d5b55f
correction of overload issues
2014-03-24 15:47:21 +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
9ab8f4e10e
support LLVM trunk after 202814-202842 revisions
2014-03-05 10:12:30 +04:00
Ilia Filippov
c4e35050b0
support of building with C++11
2014-03-04 16:01:18 +04:00
jbrodman
720975dff4
Disallow initializing void * with ptr to const.
2014-02-04 03:36:19 -08:00
jbrodman
00aeef9f1b
Allow casting reference types like pointers. See Issue #721 .
2014-01-24 03:37:27 -08:00
Dmitry Babokin
6d51987e67
Merge pull request #642 from egaburov/launch3d
...
concept of 3d tasking
2013-12-17 08:40:07 -08:00
Evghenii
63ecf009ec
fix compilation for Visual Studio
2013-12-17 15:06:29 +01:00
james.brodman
9ce6fbe1fa
Support using pointer arithmetic as lvalue
2013-10-30 17:07:26 -04:00
Ilia Filippov
621679245a
fixing problem 644
2013-10-25 22:44:37 +04:00
egaburov
f89bad1e94
launch now passes the right info into tasking
2013-10-23 12:51:06 +02:00
Ilia Filippov
2e724b095e
support of operators
2013-10-18 13:45:15 +04:00
Matt Pharr
611477e214
Revert change to lEmitVaryingSelect().
...
Using vector select versus a store and masked load for varying vector
selects seems to give worse code. This may be related to
http://llvm.org/bugs/show_bug.cgi?id=16941 .
2013-08-22 07:50:25 -07: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
04d61afa23
Fix bug in lEmitVaryingSelect() for targets with i1 mask types.
...
Commit 53414f12e6 introduced a but where lEmitVaryingSelect() would
try to truncate a vector of i1s to a vector of i1s, which in turn
made LLVM's IR analyzer unhappy.
2013-07-25 09:45:20 -07:00
Matt Pharr
53414f12e6
Add SSE4 target optimized for computation with 8-bit datatypes.
...
This change adds a new 'sse4-8' target, where programCount is 16 and
the mask element size is 8-bits. (i.e. the most appropriate sizing of
the mask for SIMD computation with 8-bit datatypes.)
2013-07-23 17:30:32 -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
83e1630fbc
Add support for fast division of varying int values by small constants.
...
For varying int8/16/32 types, divides by small constants can be
implemented efficiently through multiplies and shifts with integer
types of twice the bit-width; this commit adds this optimization.
(Implementation is based on Halide.)
2013-07-23 16:49:56 -07:00
Matt Pharr
0277ba1aaa
Improve warnings for right shift by varying amounts.
...
Fixes:
- Don't issue a warning when the shift is a by the same amount in all
vector lanes.
- Do issue a warning when it's a compile-time constant but the values
are different in different lanes.
Previously, we warned iff the shift amount wasn't a compile-time constant.
2013-07-23 16:49:07 -07:00
Matt Pharr
564e61c828
Improvements to constant folding.
...
We can now do constant folding with all basic datatypes (the previous
implementation handled int32 well, but had limited, if any, coverage
for other datatypes.)
Reduced a bit of repeated code in the constant folding implementation
through template helper functions.
2013-07-22 16:12:02 -07:00
Dmitry Babokin
27daab2f1b
Fix for #520
2013-06-18 22:15:49 +04:00
james.brodman
9f44e597d6
Additional Not -> Xor w/ MaskAllOn
2013-05-15 18:15:41 -04:00
james.brodman
5af2f80bc5
Fix for cases where valid lvalues were not being computed.
2013-05-03 12:12:42 -04:00
Dmitry Babokin
95950885cf
Use posix_memalign to allocate 16 byte alligned memeory on Linux/MacOS.
2013-04-26 20:33:24 +04:00
Dmitry Babokin
4c35d9456a
Additional cleanup to enable more broadcasts
2013-04-10 15:34:21 +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
james.brodman
a4e94a26ba
Tweak to not oversize short vec types for 64 bit values
2013-01-17 15:45:51 -05: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
Peng Tu
04d32ae3e6
Inside LLVM, both signed and unsigned integer are represented with the same type - i32 - effectively a signed int32. On 64 bit target, we must generate explicit sxt/zxt during the LLVM IR creation to promote the array index into 64 bit. Otherwise, an unsigned int index becomes signed int index in the LLVM IR.
...
I limit the fix to uniformed index to avoid widening a varying index vector to 64 bits. This means that the 32 bit values in the varying indices must be positive and smaller than 2^31 at the runtime for a program to behave correctly.
2012-11-05 15:02:15 -08:00
Matt Pharr
172a189c6f
Fix build with LLVM top-of-tree
2012-10-17 11:11:50 -07:00
Matt Pharr
def8d7850b
Fix crasher with malformed programs
2012-09-05 08:43:46 -07:00
Matt Pharr
caaee0b666
Fix crash when using launch with non-task-qualified function
2012-08-29 09:06:47 -07:00
Matt Pharr
21719df6fd
remove assert that hit with fast-math if user defined their own functions named rcp()
2012-08-21 16:39:36 -07:00
Matt Pharr
39329809dd
fix crash with malformed program
2012-08-21 16:35:31 -07:00
Matt Pharr
8f5189f606
Type convert arrays in select expressions to pointers to the first element.
...
Fixes issue #345 .
2012-08-03 11:53:59 -07:00
Matt Pharr
bda566d6a7
Fix incorrect assertion
2012-08-01 08:11:32 -07:00
Matt Pharr
0d534720bb
Fix bug with constant folding of select expressions.
...
We would sometimes pass an int32_t * to the ConstExpr constructor
but claim the underlying type was uint32, which made it grumpy.
2012-07-08 08:36:51 -07:00
Matt Pharr
f52d227d80
Remove extra newline in error message
2012-07-06 11:31:29 -07:00
Matt Pharr
78cb45fb25
Improve error message with ambiguous function overloads.
...
Issue #316 .
2012-07-06 11:25:57 -07:00
Matt Pharr
4186ef204d
Fix build with LLVM top of tree.
2012-07-05 13:35:01 -07:00
Matt Pharr
f558ee788e
Fix bug with generating implicit zero initializer values.
...
Issue #300 .
2012-06-26 11:58:16 -07:00