User Details
- User Since
- May 9 2020, 9:41 AM (151 w, 57 m)
May 28 2021
Thanks @rengolin! I guess in this case we have to see what @steleman and @joelkevinjones think and if they are interested (As well as other reviewers).
May 20 2021
Hi all!
Mar 31 2021
Mar 29 2021
Dec 21 2020
Nov 24 2020
Added a clearer explanation of how execution mode is
converted when there are no values associated with it.
Nov 20 2020
Nov 10 2020
Nov 7 2020
Nov 5 2020
Fixed a different global naming when the parent module does not have a name.
After some more thinking and further reading, I realise that entry point information is not really needed. However, it is important to keep execution mode info. This changes the conversion pattern as follows:
- spv.EntryPoint is simply removed
- Info from spv.ExecutionMode is used to create a global variable, which now looks like:
struct { int32_t executionMode; int32_t values[]; // optional values };
Nov 1 2020
Execution Mode ops may contain important information about the entry point, which we may want to preserve. An example can be LocalSize which indicates the work-group size. This can be reused when handling multi-threaded code conversion.
Oct 22 2020
Oct 20 2020
@mravishankar So this patch should be good to land then?
Oct 19 2020
Oct 18 2020
Oct 16 2020
Changed includes to match new file locations in lower-host-to-llvm pass.
Updated struct types according to https://reviews.llvm.org/D87206.
Oct 15 2020
Moved files around as suggested by @mravishankar.
Oct 6 2020
Oct 4 2020
Oct 2 2020
Splitted the pattern into two and removed unnecessary helper functions.
Rebased and addressed comments.
Oct 1 2020
Addressed comments and reused llvm::ReversePostOrderTraversal for topological sorting.
Sep 30 2020
Sep 25 2020
Sep 24 2020
Thanks!
Sep 20 2020
Addressed comments:
Aug 27 2020
I am building locally without these changes and it is working for me?
Rebased on the correct version of LowerHostToLLVMPass.
I will have a look at this one as well!
Added a missing change.
Fixed StringRef error.
Aug 26 2020
Rebase against master.
Addressed comments and rebased on master to pick up committed patches.
Yes, only the pass converting gpu.launch_func and host code is needed. I am committing all accepted patches now :)
Fixed clang-tidy error.
Addressed comments.
Updated the runner based on the previous patches and added a test for 3D memrefs with floats.
Rebase on top of other patches and minor changes: variables/function names now keep __spv__ from SPIR-V module.
Aug 25 2020
Fixed the clang-tidy error.
Rebased on top of the SPIR-V module name patch to include the symbol name of the module into the new name of the global variable.
Addressed comments.
Aug 22 2020
Aug 21 2020
Removed EncodeDescriptorSetsPass.
Added missing file.
This is a big update to the pass structure. Now it is run after GPU to SPIR-V
conversion (and all ABI lowering, etc.). This allows to use SPIR-V module,
binds of global variables for kernel call emulation. Also, we can have multiple
kernels in the program (To fully run these the linking has to be updated).
Addressed comments.