Commit Graph

71 Commits

Author SHA1 Message Date
Evghenii
6bf2ad27d1 merge with master 2014-02-01 11:53:57 +01:00
Bertie Wheen
a78d75f185 Minor fix in a comment 2014-01-27 03:50:35 +00:00
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