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
Andrzej Janik
dbb6f09ffa
Continue HIP conversion
2021-09-13 17:59:40 +00:00
Andrzej Janik
da9cf4d583
Update tests, disable OpenCL-style shared mem conversion, emit linking information
2021-09-09 00:17:39 +00:00
Andrzej Janik
a27d1e119f
Merge commit 'e2fbdf7d7b78ee360fe5fcc13ed1a7cca727c921' into amd
2021-09-08 23:07:54 +02:00
Andrzej Janik
e2fbdf7d7b
Emit Execution mode for denorm flush
2021-09-08 23:05:52 +02:00
Andrzej Janik
18245be7d5
Make ptx unit tests run on AMD (except denormals)
2021-09-07 23:24:49 +00:00
Andrzej Janik
82510ce8fd
Convert unit tests to HIP
2021-09-06 22:58:12 +02:00
Andrzej Janik
5bfc2a56b9
Remove all use of L0
2021-08-06 02:15:57 +02:00
Andrzej Janik
638786b0ec
Hack enough functionality that AMD GPU code builds
2021-08-03 00:22:47 +02:00
Andrzej Janik
b4de21fbc5
Use calls to OpenCL builtins when translating sregs, do SPIRV->LLVM conversion on every build
2021-08-02 01:04:05 +02:00
Andrzej Janik
4a71fefb8a
Change codegen for mul.wide
2021-08-01 19:20:08 +02:00
Andrzej Janik
8f68287b18
Tune generated code, add a workaround for geekbench
2021-07-25 15:19:43 +02:00
Andrzej Janik
9d4f26bd07
Finish converting to OpenCL
2021-07-22 00:20:33 +02:00
Andrzej Janik
58fb8a234c
Synchronize through barrier
2021-07-06 00:16:46 +02:00
Andrzej Janik
ad2059872a
Regenerate SPIR-V for ptx_impl and fix weird handling of ptr-ptr add or sub
2021-07-03 02:13:38 +02:00
Andrzej Janik
e328ecc550
Be more correct when emitting brev, refactor inst->func call pass
2021-07-02 22:45:09 +02:00
Andrzej Janik
b2a455e12e
Bunch of tiny fixes and improvements
2021-06-28 01:40:35 +02:00
Andrzej Janik
55fbe1abb5
Fix bugs related to replay on Linux
2021-06-27 16:19:04 +02:00
Andrzej Janik
23874efe68
Allow ptr offsets to non-scalar types
2021-06-25 22:29:25 +02:00
Andrzej Janik
8ef6c3d8b6
Merge branch 'one_type_type2'
2021-06-25 01:20:38 +02:00
Andrzej Janik
2e8716bf0d
Clean up warnings
2021-06-25 01:20:16 +02:00
Andrzej Janik
9a568e2969
Update tests
2021-06-25 01:08:45 +02:00
Andrzej Janik
e018de83ae
Prepare level zero and our compiler for global addressing
2021-06-20 12:13:40 +02:00
Andrzej Janik
951c7558cc
Fix problems with non-dereferencing inline addition
2021-06-12 16:17:32 +02:00
Andrzej Janik
2198862e76
Fix handling of kernel args in stateful conversion
2021-06-11 12:36:23 +02:00
Andrzej Janik
f0771e1fb6
Slightly improve stateful optimization
2021-06-11 00:00:56 +02:00
Andrzej Janik
994cfb3386
Fix small bug in stateful postprocess
2021-06-06 21:51:40 +02:00
Andrzej Janik
9ad88ac982
Make stateful optimization build
2021-06-06 18:14:49 +02:00