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