Commit Graph

144 Commits

Author SHA1 Message Date
Anton Mitrokhin
ee256cd3c6 Merge branch 'master' of https://github.com/ncos/ispc into remove-support-for-old-llvm 2014-08-01 17:28:14 +04:00
Anton Mitrokhin
d0c9b7c9b5 wiped out all LLVM 3.1 support 2014-08-01 14:54:08 +04:00
Anton Mitrokhin
10c6f840c4 removed 'llvm/Config/config.h' from cbackend.cpp build for LLVM 3.5+ 2014-08-01 12:30:57 +04:00
Anton Mitrokhin
725be222ac added LLVM_3_6 var 2014-07-30 11:50:15 +04:00
Ilia Filippov
4ed72335bd support LLVM 2014-06-09 16:53:26 +04:00
Ilia Filippov
5f55a9b9e2 support of LLVM trunk 2014-05-22 18:50:57 +04:00
Dmitry Babokin
096546f888 Fixing MIC performance issue, which showed up when we switched to
LLVM 3.4 (due to more aggressive optimizations): vector of *the same*
constants should be generated as scalar value in cpp file, instead of
__extract_element(splat(value), 0).
I.e. <2,2,2,2> should appear in cpp as 2, but not
__extract_element(splat(2), 0);
2014-04-17 21:03:42 +04:00
Ilia Filippov
114f58bb0b support LLVM trunk after r204934 and zlib commits 2014-04-01 18:51:05 +04:00
Ilia Filippov
ead5cc741d support LLVM trunk after 203559 203213 and 203381 revisions 2014-03-12 12:58:50 +04:00
Ilia Filippov
47f7900cd3 support LLVM trunk 2014-03-07 16:28:56 +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
Ilia Filippov
aa31957d84 supporting LLVM trunk 2014-01-21 14:21:26 +04:00
Ilia Filippov
5fa8bd3c78 changes for support LLVM trunk 2014-01-15 14:17:35 +04:00
Ilia Filippov
b19937c4dc deleting isPrimitiveType() 2013-12-12 19:25:02 +04:00
Ilia Filippov
b94b89ba68 support of LLVM trunk 2013-11-29 14:24:21 +04:00
Ilia Filippov
3fd9d5a025 support of LLVM 3.5 2013-11-21 19:09:43 +04:00
Dmitry Babokin
e436e33771 Merge pull request #639 from ifilippov/master
correction errors in generic targets after operators support
2013-10-21 02:32:05 -07:00
Ilia Filippov
d72590ede6 correction errors in generic targets after operators support 2013-10-21 12:35:53 +04:00
Dmitry Babokin
17b54cb0c8 Fix problem with building ISPC by clang 3.4 2013-10-11 16:29:17 +04:00
Matt Pharr
e7f067d70c Fix handling of __clock() builtin for "generic" targets. 2013-08-20 09:04:52 -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
f1cce0ef5f Fix build with LLVM top-of-tree 2013-07-17 09:25:00 -07:00
Dmitry Babokin
c4d404b15f Tracking ToT changes: changes in MCContext interface 2013-06-18 22:13:14 +04:00
Dmitry Babokin
1024ba9b0f Parameter cast for posix_memalign(), otherwise gcc issues an error 2013-05-24 10:29:01 +04:00
Dmitry Babokin
b6b9daa3c5 Enabling llvm 3.4 2013-05-13 19:25:31 +04:00
Dmitry Babokin
36da23c9c5 MacOS specific fix: enable translation of symbols with variant name. It's needed for fputs() translation from __do_print() for generic targets. 2013-04-25 03:11:39 +04:00
Dmitry Babokin
269a00f9ec Fix for the bug with gcc4.7: incorrect usage of ArrayRef 2013-04-15 13:16:28 +04:00
Dmitry Babokin
7371d82bdf Changes in cbackend.cpp to match broadcast generation changes 2013-04-12 00:10:41 +04:00
Dmitry Babokin
3f8a678c5a Editorial change: fixing trailing white spaces and tabs 2013-03-18 16:17:55 +04:00
Dmitry Babokin
7d08eeb8dd Fix for #433: fix for ToT changes, removal of llvm::createGCInfoDeleter() 2013-02-23 20:49:56 +04:00
james.brodman
8f2c910600 Tracking ToT changes to Attribute API 2013-01-23 10:57:05 -05:00
james.brodman
3aaf2ef2d4 ToT Fixes / M4 macro fix 2013-01-14 14:55:10 -05:00
james.brodman
b6023c517e Fix/Hack to avoid the cbackend generating spurious array type declarations. 2013-01-08 14:53:17 -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
Matt Pharr
8cbfde6092 Small fixes to build with LLVM top-of-tree (now numbered as version 3.3) 2012-12-02 14:29:24 -08:00
Matt Pharr
172a189c6f Fix build with LLVM top-of-tree 2012-10-17 11:11:50 -07:00
Matt Pharr
a13e7f2435 #define ISPC_FORCE_ALIGNED_MEMORY, if appropriate, in C++ output. 2012-09-14 13:53:12 -07:00
Jean-Luc Duprat
e0490d0df5 Minor fixes needed for building on windows. 2012-08-30 10:56:13 -07:00
Matt Pharr
e6aec96e05 Fix build with LLVM top-of-tree 2012-08-03 09:59:41 -07:00
Jean-Luc Duprat
fe6282e837 Fixed small issue with name mangling introduced in aecd6e08 2012-07-19 17:32:49 -07:00
Jean-Luc Duprat
aecd6e0878 All the smear(), setzero() and undef() APIs are now templated on the return type.
Modified ISPC's internal mangling to pass these through unchanged.
Tried hard to make sure this is not going to introduce an ABI change.
2012-07-17 17:06:36 -07:00
Jean-Luc Duprat
bea88ab122 Integrated changes from mmp/and-fold-opt:
Add peephole optimization to eliminate some mask AND operations.

On KNC, the various vector comparison instructions can optionally
be masked; if a mask is provided, the result is effectively that
the value returned is the AND of the mask with the result of the
comparison.

This change adds an optimization pass to the C++ backend that looks
for vector ANDs where one operand is a comparison and rewrites
them--e.g. "and(equalfloat(a, b), c)" is changed to
"_equal_float_and_mask(a, b, c)", saving an instruction in the end.

Issue #319.

Merge commit '8ef6bc16364d4c08aa5972141748110160613087'

Conflicts:
	examples/intrinsics/knc.h
	examples/intrinsics/sse4.h
2012-07-10 10:33:24 -07:00
Matt Pharr
bc7775aef2 Fix __ordered and _unordered floating point functions for C++ target.
Fixes include adding "_float" and "_double" suffixes as appropriate as well
as providing a number of missing implementations.

This fixes a number of failures in the half* tests.
2012-07-09 14:35:51 -07:00
Matt Pharr
bb11b3ab66 Fix build with LLVM 3.0 2012-07-09 10:45:36 -07:00
Jean-Luc Duprat
516ba85abd Merge pull request #322 from mmp/vector-constants
Vector constants
2012-07-09 09:28:26 -07:00
Jean-Luc Duprat
098277b4f0 Merge pull request #321 from mmp/setzero
More varied support for constant vectors from C++ backend.
2012-07-09 08:57:05 -07:00
Matt Pharr
8ef6bc1636 Add peephole optimization to eliminate some mask AND operations.
On KNC, the various vector comparison instructions can optionally
be masked; if a mask is provided, the result is effectively that
the value returned is the AND of the mask with the result of the
comparison.

This change adds an optimization pass to the C++ backend that looks
for vector ANDs where one operand is a comparison and rewrites
them--e.g. "__and(__equal_float(a, b), c)" is changed to
"__equal_float_and_mask(a, b, c)", saving an instruction in the end.

Issue #319.
2012-07-07 08:35:38 -07:00