75 Commits

Author SHA1 Message Date
Andrzej Janik
8f68287b18 Tune generated code, add a workaround for geekbench 2021-07-25 15:19:43 +02:00
Andrzej Janik
e940b9400f Bring back support for dynamic shared memory 2021-06-06 17:25:05 +02:00
Andrzej Janik
f70abd065b Continue attempts at fixing code emission for method args 2021-06-04 00:48:51 +02:00
Andrzej Janik
8d74c16c86 Refactor implicit conversions 2021-05-30 16:08:18 +02:00
Andrzej Janik
82b5cef0bd Carry state space with pointer 2021-05-15 15:58:11 +02:00
Andrzej Janik
425edfcdd4 Simplify typing 2021-05-07 18:22:09 +02:00
Andrzej Janik
9d92a6e284 Start converting the translation to one type type 2021-05-05 22:56:58 +02:00
Andrzej Janik
d51aaaf552 Throw away special variable types 2021-04-17 14:01:50 +02:00
Andrzej Janik
a55c851eaa Add comment 2021-04-15 20:01:01 +02:00
Andrzej Janik
8cd3db6648 Remove LdStType 2021-04-15 19:53:54 +02:00
Andrzej Janik
4d04fe251d Remove all remaining subenums 2021-04-15 19:21:52 +02:00
Andrzej Janik
a0baad9456 Convert enumes to 1TT 2021-04-15 19:10:45 +02:00
Andrzej Janik
15f465041d Implement setp.nan and setp.num 2021-03-03 23:35:18 +01:00
Andrzej Janik
efd91e270c Implement non-coherent loads and implicit sign-extending conversions 2021-03-03 21:22:31 +01:00
Andrzej Janik
cdac38d572 Support kernel tuning directives 2021-03-03 00:59:47 +01:00
Andrzej Janik
178ec59af6 Implement bfi instruction 2021-03-01 23:01:53 +01:00
Andrzej Janik
d3cd2dc8b4 Do slightly better when it comes to PTX error recovery 2021-03-01 02:24:27 +01:00
Andrzej Janik
ff8135e8a3 Add a library for dumping kernels arguments before and after launch (#18) 2021-01-16 22:28:48 +01:00
vosen
770a379452 Refactor how vectors are handled (#20)
Current code has a problem with handling vector members: "b.x" in "mov.u32 a, b.x". This functionality has been kinda tacked-on and has annoying issues:
* vector members support is only limited to being source of movs (so "add.u32 a.x, b.x, c.y" will not work)
* the width of "b" in "b.x" is not known, which led to some "interesting" workarounds
* passes can either convert all member accesses to other member accesses or to temporaries. No way to convert some member accesses to temporaries (which we need for an important fix)
This commit solves all this
2020-12-09 00:20:06 +01:00
Andrzej Janik
f77b653d36 Implement stateless-to-stateful optimization 2020-11-19 22:12:12 +01:00
Andrzej Janik
ac6265f257 Implement instructions bfe, rem, xor 2020-11-06 00:56:45 +01:00
Andrzej Janik
d7bf1acf84 Implement instructions clz, brev, popc 2020-11-05 22:10:06 +01:00
Andrzej Janik
96702d86c9 Fix issues with .param/.local and implement sin, cos, ex2, lg2 2020-11-05 00:27:46 +01:00
Andrzej Janik
e5a53ed5d3 Implement neg instruction 2020-11-01 14:58:44 +01:00
Andrzej Janik
b7d61baf37 Implement div, sqrt, rsqrt and more of setp 2020-11-01 14:34:03 +01:00
Andrzej Janik
a82eb20817 Implement atomic instructions 2020-10-31 21:28:15 +01:00
Andrzej Janik
c8dadca7d2 Implement selp instruction 2020-10-26 19:18:23 +01:00
Andrzej Janik
fc7cc00f47 Add support for and instruction 2020-10-26 18:45:28 +01:00
Andrzej Janik
40bdb83e6b Support float constants 2020-10-26 01:49:25 +01:00
Andrzej Janik
45f5183370 Implement ftz handling through Khronos extensions 2020-10-25 19:29:28 +01:00
Andrzej Janik
6480cccc4f Implement rcp instruction 2020-10-25 11:21:51 +01:00
Andrzej Janik
85ee8210df Add dynamic shared mem support 2020-10-25 00:24:40 +02:00
Andrzej Janik
2b3ecc99e3 Implement pass to handle .extern .shared and add parsing code for it 2020-10-18 14:46:05 +02:00
Andrzej Janik
27d25865af Add support for top-level global variables, improve array support 2020-10-04 19:53:07 +02:00
Andrzej Janik
9a65dd32f5 Add sub, min, max 2020-10-02 00:11:28 +02:00
Andrzej Janik
bd3d440dba Implement or 2020-10-01 20:28:57 +02:00
Andrzej Janik
96a342e33f Implement shr 2020-10-01 18:13:09 +02:00
Andrzej Janik
3e92921275 Fix remaining bugs in vector destructuring and in the process improve implicit conversions 2020-10-01 18:11:57 +02:00
Andrzej Janik
1e0b35be4b Implement vector-destructuring mov/ld/st 2020-09-30 19:27:29 +02:00
Andrzej Janik
e0190fcbe1 Add missing support for Milestone 1 2020-09-27 13:14:19 +02:00
Andrzej Janik
b11ce92d2c Better propagate information about address-mov and emit conversion for it 2020-09-20 17:29:38 +02:00
Andrzej Janik
bcb749cdd9 Continue working on a better addressable support 2020-09-18 18:08:40 +02:00
Andrzej Janik
952ed5d504 [BROKEN] Start implementing better support for addressable arguments 2020-09-18 02:25:20 +02:00
Andrzej Janik
42bad8fcc2 Fix st/ld offsets implement abs and fix remaining bugs from vectorAdd generation 2020-09-16 00:20:49 +02:00
Andrzej Janik
fcf3aaeb16 Implement missing pieces in vector support 2020-09-15 02:34:08 +02:00
Andrzej Janik
bb5025c9b1 Refactor implicit conversions and start implementing vector extract/insert 2020-09-14 21:45:56 +02:00
Andrzej Janik
48dac43540 Parse vector movs (mov.type a.x b.y;) 2020-09-12 02:33:20 +02:00
Andrzej Janik
1238796dfd Be more precise about types admitted in register definitions and method arguments 2020-09-11 00:40:13 +02:00
Andrzej Janik
76afbeba63 Implement support for PTX call instruction 2020-09-08 21:29:18 +02:00
Andrzej Janik
de734305cf Start refactoring SPIRV module generation in preparation for support of functions 2020-09-03 01:45:08 +02:00