Andrzej Janik
95b556827a
Silence warnings
2024-10-16 03:15:22 +02:00
Andrzej Janik
73eb31fec5
Add saturated integer conversions
2024-10-16 03:12:54 +02:00
Andrzej Janik
002a19354a
Add float-to-int cvt
2024-10-15 19:16:11 +02:00
Andrzej Janik
3105674618
Add prmt, membar, fix some of cvt
2024-10-15 18:05:32 +02:00
Andrzej Janik
6f2944d9be
Add or, mad, fma, min, max, selp, lg2, ex2, popc, rem
2024-10-15 04:42:44 +02:00
Andrzej Janik
ae42eac925
Add shifts, cvt, rsqrt, sqrt, rcp, more sregs
2024-10-14 19:09:47 +02:00
Andrzej Janik
d9c33ca505
Add br, setp, not, cvta, sub, neg, sin
2024-10-11 22:55:10 +02:00
Andrzej Janik
c8b88f4483
Implement div
2024-10-11 16:27:36 +02:00
Andrzej Janik
9035c4a24d
Fix build
2024-10-10 22:59:33 +02:00
Andrzej Janik
d7a435ff42
Readd most of the implicit conversion code
2024-10-10 22:58:50 +02:00
Andrzej Janik
6f2ca43cfa
Cleanup. Remove unused SPIR-V emit code and old compilation passes
2024-10-09 16:31:14 +02:00
Andrzej Janik
aa6a8ed4c4
Fix vector extract/insert
2024-10-06 18:00:48 +02:00
Andrzej Janik
6490519885
Support vector member read/write
2024-10-06 06:44:14 +02:00
Andrzej Janik
56c41b5690
Add mul, cos, xor, some constants
2024-10-06 03:25:02 +02:00
Andrzej Janik
d173828492
Add clz
2024-10-06 02:21:06 +02:00
Andrzej Janik
053c41fbb9
Implement call
2024-10-06 02:05:16 +02:00
Andrzej Janik
6456f0d1a1
Add brev
2024-10-05 00:52:16 +02:00
Andrzej Janik
bf2aef9be0
Add support for bfi
2024-10-04 22:58:25 +02:00
Andrzej Janik
84364fa412
Support bra instruction
2024-10-04 21:52:13 +02:00
Andrzej Janik
4f244c29a5
Add correct 64 bit bfe
2024-10-04 19:58:10 +02:00
Andrzej Janik
638bb1efa7
Add correct 32 bit bfe
2024-10-04 16:21:41 +02:00
Andrzej Janik
9eb7314803
Add failing bfe test
2024-09-30 04:07:30 +02:00
Andrzej Janik
f0b3bf8013
Add support for atom.cas
2024-09-26 21:38:50 +02:00
Andrzej Janik
820eaf8ada
Implement atomics
2024-09-26 18:54:15 +02:00
Andrzej Janik
c4e1315194
Fix and test, improve compilation slightly
2024-09-25 17:49:15 +02:00
Andrzej Janik
3942afd8ff
Implement activemask
2024-09-25 15:54:32 +02:00
Andrzej Janik
81baecf2c8
Add ptx_impl bitcode module
2024-09-25 02:46:08 +02:00
Andrzej Janik
c92abba2bb
Refactor compilation passes ( #270 )
...
The overarching goal is to refactor all passes so they are module-scoped and not function-scoped. Additionally, make improvements to the most egregiously buggy/unfit passes (so the code is ready for the next major features: linking, ftz handling) and continue adding more code to the LLVM backend
2024-09-23 16:33:46 +02:00
Andrzej Janik
46def3e7e0
Connect new parser to LLVM bitcode backend ( #269 )
...
Rust / Build and publish (Linux) (push) Has been cancelled
Rust / Build and publish (Windows) (push) Has been cancelled
This is very incomplete. Just enough code to emit LLVM bitcode and continue further development
2024-09-13 01:07:31 +02:00
Andrzej Janik
193eb29be8
PTX parser rewrite ( #267 )
...
Rust / Build and publish (Linux) (push) Has been cancelled
Rust / Build and publish (Windows) (push) Has been cancelled
Replaces traditional LALRPOP-based parser with winnow-based parser to handle out-of-order instruction modifer. Generate instruction type and instruction visitor from a macro instead of writing by hand. Add separate compilation path using the new parser that only works in tests for now
2024-09-04 15:47:42 +02:00
Andrzej Janik
971951bc9e
Improve reporting of recovered unrecognized statement/directive
2021-12-14 00:02:23 +01:00
Andrzej Janik
0ca14d740f
Better reporting of unrecognized tokens
2021-12-13 22:25:26 +01:00
Andrzej Janik
7ba1586d6c
Make all user errors recoverable
2021-12-13 17:20:06 +01:00
Andrzej Janik
816365e7df
Fix shared munging pass and add fix cuModuleLoadData
2021-09-29 21:49:47 +00:00
Andrzej Janik
0172dc58e5
Redo shared memory transformation
2021-09-29 02:24:32 +02:00
Andrzej Janik
b763415006
Add CUDA tests showing problems with .shared unification
2021-09-27 00:42:10 +02:00
Andrzej Janik
c23be576e8
Finish fixing shared memory pass
2021-09-26 01:24:14 +02:00
Andrzej Janik
370c0bd09e
Start implementing .shared unification
2021-09-24 01:31:50 +02:00
Andrzej Janik
9609f86033
Fix minor bugs
2021-09-19 00:39:43 +00:00
Andrzej Janik
afe9120868
Fix linkage
2021-09-18 22:49:00 +00:00
Andrzej Janik
04a411fe22
Have an implementation for vprintf
2021-09-18 20:22:47 +00:00
Andrzej Janik
ccf3c02ac1
Minor fixes
2021-09-18 01:36:12 +00:00
Andrzej Janik
3de01b3f8b
Handle ld.volatile/st.volatile
2021-09-17 21:26:15 +00:00
Andrzej Janik
d5a4b068dd
Redo handling of sregs
2021-09-17 20:53:44 +00:00
Andrzej Janik
6ef19d6501
Add early support for more sregs
2021-09-17 18:31:12 +00:00
Andrzej Janik
5b2352723f
Implement function pointers and activemask
2021-09-17 16:24:25 +00:00
Andrzej Janik
ca0d8ec666
Add missing vray instructions
2021-09-16 01:25:09 +02:00
Andrzej Janik
467782b1d0
Fix some unhandled cases in cvt instruction
2021-09-14 23:38:06 +00:00
Andrzej Janik
2cd0fcb650
Parse and test const buffers
2021-09-14 22:41:46 +02:00
Andrzej Janik
986fa49097
Zero out buffer on creation
2021-09-13 23:43:50 +00:00