Commit Graph

122 Commits

Author SHA1 Message Date
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
Ilia Filippov
7ebea86a44 These changes fix problem with debug info in LLVM 3.4 with structs and enums.
The reason of problem is that ISPC generates debugInfo type of struct (or enum)
in the scope, where the variable of this type appears.

Ctx.cpp:1586
llvm::DIScope scope = GetDIScope();
llvm::DIType diType = sym->type->GetDIType(scope);

It is always Lexical_Block in some function. It is not right because type can
be declared global or in some function or in some namespace. Struct and enums
are failing because they don't reduce to atomic types. The "Big" fix is to save
declaration place in Type class. But now ISPC doesn't know about it,
for example this doesn't emit an error:

void function_1() { struct Foo {float x;}; uniform Foo myFoo;}
void function_2() {                        uniform Foo myFoo;}

So now all type declarations are global and we can simply change scope
parameter to the current file.

The "Big" fix will be after integration with clang.
2014-04-02 15:49:57 +04:00
Evghenii
fb581818c5 Merge branch 'master' into nvptx 2014-04-01 09:10:10 +02:00
jbrodman
2c0a6d7f69 Fix exported varying bug & backwards compatibility. 2014-03-24 00:01:37 -07: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
11f17ce0cd Merge pull request #767 from jbrodman/nomosoa2
Fix bugs with exported varyings.
2014-03-14 09:00:36 +03:00
jbrodman
43db682c6d Fix bugs with exported varyings. 2014-03-13 06:07:56 -07:00
Dmitry Babokin
8999a69546 Fix for off by one problem in debug info with LLVM 3.3+ 2014-03-11 18:41:37 +04:00
Ilia Filippov
47f7900cd3 support LLVM trunk 2014-03-07 16:28:56 +04:00
Evghenii
63d3ac6679 Merge branch 'master' into nvptx 2014-01-20 13:47:24 +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
b2368e243c +1 2014-01-06 08:15:50 +01:00
evghenii
c4c30a416a fix function name mangling 2014-01-02 17:01:10 +01:00
james.brodman
b2f6043181 Merge branch 'master' into nomosoa 2013-12-30 13:25:51 -05:00
Dmitry Babokin
6d51987e67 Merge pull request #642 from egaburov/launch3d
concept of 3d tasking
2013-12-17 08:40:07 -08:00
james.brodman
01432670fd Fix header file for multi-target output with pointers to varying in exported functions. 2013-12-12 13:27:23 -05:00
james.brodman
d10c0d9545 Add dynamic dispatch support for export functions with pointers to varying data as arguments 2013-12-05 17:47:58 -05:00
james.brodman
a448ccf20c Merge branch 'master' into nomosoa 2013-12-04 13:52:44 -05:00
evghenii
bb46b561fd Merged with upstream/master 2013-11-22 08:13:16 +01:00
Ilia Filippov
3fd9d5a025 support of LLVM 3.5 2013-11-21 19:09:43 +04:00
Evghenii
55bf0d23c2 resotred non-ptx functionality 2013-11-13 11:08:58 +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
dcf9c280ee some cleaning 2013-10-31 16:05:06 +01:00
Evghenii
63917f8cc2 now generates CUDALaunch call. Few tweaks are still necesary 2013-10-31 16:01:34 +01:00
Evghenii
f9ec1a0097 .. work in programm to embed PTX into host code .. 2013-10-30 16:47:30 +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
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
b68a751f4e generating proper tasking function for nvptx 2013-10-28 11:36:08 +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
james.brodman
ecb1174a18 leaving myself notes for later 2013-09-27 14:23:04 -04:00
james.brodman
090dec8549 Output regular header for multiple targets + fix exported varying types. 2013-08-22 13:23:22 -04:00
JCB
3e9d784013 Support exported arrays of varyings 2013-08-20 16:14:29 -04:00
JCB
10b8c481f5 initial support for exported varying 2013-08-20 15:14:15 -04: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
Ilia Filippov
560acd5017 changes to support createFunction() with DICompositeType argument in LLVM_3_4 2013-06-04 15:48:39 +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
Dmitry Babokin
51fdff208e Tracking ToT changes in DIBuilder interface 2013-02-25 14:50:33 +04:00
jbrodman
dc939eba78 Merge pull request #418 from mmp/master
Fix build with LLVM top-of-tree, fix warnings, remove LLVM 3.0 support
2013-01-08 10:28:02 -08: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
6ba7368ab0 Fix two compile time errors to allow SOA pointer and array be passed as function argument. 2012-12-11 17:20:15 -08:00