Commit Graph

211 Commits

Author SHA1 Message Date
aeb4c0b6f9 [WIP] replace polymorphic types from expressions 2017-05-09 01:46:36 -04:00
0f17514eb0 remove trailing whitespace 2017-05-08 17:45:17 -04:00
46ed9bdb3c [WIP] Plumbing to expand polymorphic functions 2017-05-04 21:26:43 -04:00
0887760de1 [WIP] typechecking for casts to polymorphic types 2017-04-29 15:56:43 -04:00
Vsevolod Livinskiy
6ea03bb3af Fix for struct with undound members 2016-02-06 17:08:17 +03:00
Vsevolod Livinskiy
243d6c2625 Fix cast from uniform struct to varying struct. 2016-02-05 08:32:35 +03:00
Andrey Shishpanov
22a0596fca fixing trouble with casting from float reference to int, issue #1068 2015-07-22 00:22:25 +03:00
Anton Mitrokhin
9f083f99ac classof implementations for all classes 2015-07-10 12:27:16 +03:00
Anton Mitrokhin
26a93bc733 Id's fo Expr-inherited classes 2015-07-09 12:38:58 +03:00
Dmitry Babokin
bf4ca847a5 Merge pull request #1057 from ncos/ispc-versions
New LLVM version macro
2015-06-17 17:50:36 +03:00
Anton Mitrokhin
ebc47d00a1 remove several redundant #if - clauses 2015-06-17 17:40:02 +03:00
Anton Mitrokhin
0afa3f5713 New LLVM version macro 2015-06-17 10:14:28 +03:00
Andrey Guskov
73dc899ff1 Fixed MAXINT array size limitation 2015-06-06 01:16:56 +03:00
jbrodman
c8e492d82f Ptr Diff should ignore const 2015-04-29 18:30:21 -04:00
Dmitry Babokin
da83196996 Adding missing AddressOfExpr::GetLValueType() 2014-12-30 18:11:39 +03:00
evghenii
8745888ce9 merged with master 2014-08-11 10:04:54 +02: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
evghenii
b3c5a9c4d6 added #ifdef ISPC_NVPTX_ENALED ... #endif guards 2014-07-09 12:32:18 +02:00
evghenii
69f3898a61 Merge branch 'master' into nvptx_merge 2014-07-07 16:30:12 +02:00
jbrodman
d3144da5eb Add error messages for structs containing nested undefined structs 2014-05-27 15:50:53 -07:00
Evghenii
fb581818c5 Merge branch 'master' into nvptx 2014-04-01 09:10:10 +02: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
Evghenii
4641a15287 Merge branch 'master' into nvptx 2014-03-19 10:53:07 +01: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
Evghenii
4196c723eb merged with nvptx 2014-02-20 11:01:58 +01:00
jbrodman
720975dff4 Disallow initializing void * with ptr to const. 2014-02-04 03:36:19 -08:00
Evghenii
6bf2ad27d1 merge with master 2014-02-01 11:53:57 +01:00
jbrodman
00aeef9f1b Allow casting reference types like pointers. See Issue #721. 2014-01-24 03:37:27 -08:00
Evghenii
5a8351d7ea added varying new/delete 2014-01-24 09:22:55 +01:00
Evghenii
e734bbc0cc added new Errors 2014-01-23 13:11:02 +01: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