Commit Graph

152 Commits

Author SHA1 Message Date
64e1e2b008 Generate overloaded function definitions 2017-05-10 14:21:09 -04:00
192b99f21d Translates polymorphic function to a single instance 2017-05-09 23:41:36 -04:00
aeb4c0b6f9 [WIP] replace polymorphic types from expressions 2017-05-09 01:46:36 -04:00
46ed9bdb3c [WIP] Plumbing to expand polymorphic functions 2017-05-04 21:26:43 -04:00
93c563e073 Add missing NULL check in CanBeType 2017-05-02 22:26:21 -04:00
b3b02df569 [WIP] add check for polymorphic functions 2017-05-02 14:59:04 -04:00
87b6ed7f4c [WIP] slowly getting typechecking to work 2017-04-28 23:37:06 -04:00
259f092143 [WIP] Add quantifier to polymorphic types 2017-04-28 14:04:26 -04:00
108c9c6fb5 [WIP] parses polymorphic types 2017-04-27 14:17:47 -04:00
Dmitry Babokin
4298e3d0cd Fix for trunk - change in DIBuilder interface 2016-12-01 22:00:36 +03:00
Andrey Shishpanov
d0341754d6 Trunk fix for Rev.280686. 2016-09-07 13:08:04 +03:00
Andrey Shishpanov
3dbdeee5f6 new createSubroutineType() API 2015-10-15 15:45:15 +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
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
Vsevolod Livinskiy
c9424a9989 Fix for debug information in trunk 2015-05-21 14:42:53 +03:00
Andrey Guskov
0842b82eca Fix typos in the previous LLVM debug info commit 2015-04-24 15:51:55 +03:00
Andrey Guskov
5defbf25f1 LLVM debug info fix, again 2015-04-23 19:00:54 +03:00
Dmitry Babokin
0f1358b69f Revert "Multitaget function return types fixed" 2015-04-22 17:38:05 +03:00
Dmitry Babokin
8e47273186 Copyright refresh 2015-04-22 16:39:11 +03:00
Andrey Guskov
7f096f23e3 Multitaget function return types fixed 2015-04-22 15:13:56 +03:00
Andrey Guskov
189e892b96 Recurring LLVM debug info fix 2015-04-16 19:31:16 +03:00
evghenii
d4a77e1b44 changed function mangling to be compatible with NVVM in CUDA7 2015-01-27 07:02:12 +01:00
Vsevolod Livinskiy
24e8c33506 Fix for trunk after rev 223802 2014-12-11 17:53:51 +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
f59a1db8b7 fixed 3.6 llvm build in type.cpp 2014-07-30 13:57:06 +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
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