Evghenii
98fc43d859
Merge branch 'master' into nvptx
2014-01-21 20:05:27 +01:00
Evghenii
bc99897fbb
+fixed some example, found some bugs, and bugs in ptxas/cuda
2014-01-21 14:51:27 +01:00
Ilia Filippov
aa31957d84
supporting LLVM trunk
2014-01-21 14:21:26 +04:00
Evghenii
63d3ac6679
Merge branch 'master' into nvptx
2014-01-20 13:47:24 +01:00
Ilia Filippov
9552fc0724
adding noalias attribute to uniform pointer parameters of export function
2014-01-15 17:39:47 +04:00
Dmitry Babokin
0f56c11101
Merge pull request #716 from ifilippov/export_alias
...
Adding noalias attribute to uniform pointer parameters of export functions
2014-01-15 03:51:16 -08:00
Ilia Filippov
741dfaa2ea
adding noalias attribute to uniform pointer parameters of export function
2014-01-15 15:15:42 +04:00
Ilia Filippov
5fa8bd3c78
changes for support LLVM trunk
2014-01-15 14:17:35 +04:00
Evghenii
3972d740a6
added mask for tasking function
2014-01-06 16:18:28 +01:00
Evghenii
91d4ae46f6
sort --fails
2014-01-06 15:38:30 +01:00
Evghenii
546f9cb409
MAJOR CHANGE--- STOP WITH THIS BRANCH--
2014-01-06 13:51:02 +01:00
Evghenii
fd429e4fda
added common_gpu makefile helper
2014-01-05 10:00:44 +01:00
evghenii
71481150c7
in PTX mode, add ___export to exported function unmangled name
2014-01-01 10:35:25 +01:00
Evghenii
406aad78fe
first support for integration with NVCC/CUDART API
2013-11-22 13:06:51 +01:00
Evghenii
55bf0d23c2
resotred non-ptx functionality
2013-11-13 11:08:58 +01:00
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
cb6614da42
fixed the code that non-task code is also emitted for the host
2013-11-04 11:33:37 +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
f15cdc03e3
nvptx64 generates 2 targets: task and normal function for nvptx64 and export for avx only
2013-10-29 14:46:51 +01:00
Evghenii
ac700d4860
checkpoint
2013-10-29 13:36:31 +01:00
Evghenii
f115a32073
fix llvm 3.2 compilation
2013-10-29 10:21:56 +01:00
Evghenii
1bd5360d3b
added now NVPTX64 automatically emits unmasked extern "C" for task function with kernel attributes
2013-10-28 13:58:01 +01:00
Evghenii
a7aa1ac1cf
now nvptx allows extern "C" task void, which is emits a kernel that should (?) be callable by driver API from external code
2013-10-28 12:57:09 +01:00
Evghenii
ae23320417
added metadata for tasks with nvptx64 target. not tasks are kernel callable from host
2013-10-28 12:10:40 +01:00
Evghenii
b68a751f4e
generating proper tasking function for nvptx
2013-10-28 11:36:08 +01:00
Evghenii
8391d05697
added blockIndex computations
2013-10-28 10:18:30 +01:00
Evghenii
383e804ec1
changed notation form taskIndex1,2,3 -> taskIndex0,1,2
2013-10-24 17:20:56 +02:00
Evghenii
43761173ec
changed notation, task[Index,Count]_[x,y,z] -> task[Index,Count][1,2,3]. Change launch <<< nx,ny,nz >>> into launch [nx,ny,nz] or equivalent launch [nz][ny][nx]. Programmer can pick the one the is liked the most
2013-10-24 13:16:23 +02:00
egaburov
78a05777bc
added taskIndex_x,y,z and taskCount_x,y,z
2013-10-22 16:18:40 +02:00
Dmitry Babokin
fb771b6aa3
--debug output: stdout instead of stderr
2013-06-20 22:47:29 +04:00
Dmitry Babokin
3d24265d50
Adding missing attributes on exported functions
2013-05-24 10:28:06 +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
ad7e800446
Tracking Attribute API Changes in ToT
2013-01-22 10:46:42 -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
172a189c6f
Fix build with LLVM top-of-tree
2012-10-17 11:11:50 -07:00
Matt Pharr
881dba61e4
Fix build with LLVM top-of-tree
2012-09-28 06:07:01 -07:00
Matt Pharr
007a734595
Add support for 'unmasked' function qualifier.
2012-06-20 15:36:00 -07:00
Matt Pharr
f47171a17c
Don't check for "all off" mask at function entry.
...
We should never be running with an all off mask and thus should never
enter a function with an all off mask. No performance change from
removing this, however.
Issue #282 .
2012-06-15 10:14:53 -07:00
Matt Pharr
944c53bff1
Stop using dynamic_cast for Types.
...
We now have a set of template functions CastType<AtomicType>, etc., that in
turn use a new typeId field in each Type instance, allowing them to be inlined
and to be quite efficient.
This improves front-end performance for a particular large program by 28%.
2012-05-04 13:55:38 -07:00
Matt Pharr
a1a43cdfe0
Fix bug so that programIndex (et al.) are available in the debugger.
...
It's now possible to successfully print out the value of programIndex,
programCount, etc., in the debugger. The issue was that they were
defined as having InternalLinkage, which meant that DCE removed them
at the end of compilation. Now they're declared to have WeakODRLinkage,
which ensures that one copy survives (but there aren't multiply-defined
symbols when compiling multiple files.)
2012-04-28 17:12:57 -07:00
Matt Pharr
7167442d6e
Debugging info: include parameter number for function params.
2012-04-25 08:43:11 -10:00
Matt Pharr
fefa86e0cf
Remove LLVM_TYPE_CONST #define / usage.
...
Now with LLVM 3.0 and beyond, types aren't const.
2012-04-15 20:11:27 -07:00
Matt Pharr
5ece6fec04
Substantial rewrite (again) of decl handling.
...
The decl.* code now no longer interacts with Symbols, but just returns
names, types, initializer expressions, etc., as needed. This makes the
code a bit more understandable.
Fixes issues #171 and #130 .
2012-04-12 17:28:30 -07:00
Matt Pharr
3082ea4765
Require Type::Equal() for all type equality comparisons.
...
Previously, we uniqued AtomicTypes, so that they could be compared
by pointer equality, but with forthcoming SOA variability changes,
this would become too unwieldy (lacking a more general / ubiquitous
type uniquing implementation.)
2012-03-05 09:58:09 -08:00
Matt Pharr
8a8e1a7f73
Fix bug with multiple EmitCode() calls due to missing braces.
...
In short, we were inadvertently trying to emit each function's
code a second time if the function had a mask check at the start
of it. StmtList::EmitCode() was covering this error up by
not emitting code if the current basic block is NULL.
2012-01-10 16:50:13 -08:00
Matt Pharr
78c6d3c02f
Add initial support for 'goto' statements.
...
ispc now supports goto, but only under uniform control flow--i.e.
it must be possible for the compiler to statically determine that
all program instances will follow the goto. An error is issued at
compile time if a goto is used when this is not the case.
2012-01-05 12:22:36 -08:00