Skip to content
Commit b8e1544b authored by Ilia Diachkov's avatar Ilia Diachkov
Browse files

[SPIRV] add SPIRVPrepareFunctions pass and update other passes

The patch adds SPIRVPrepareFunctions pass, which modifies function
signatures containing aggregate arguments and/or return values before
IR translation. Information about the original signatures is stored in
metadata. It is used during call lowering to restore correct SPIR-V types
of function arguments and return values. This pass also substitutes some
llvm intrinsic calls to function calls, generating the necessary functions
in the module, as the SPIRV translator does.

The patch also includes changes in other modules, fixing errors and
enabling many SPIR-V features that were omitted earlier. And 15 LIT tests
are also added to demonstrate the new functionality.

Differential Revision: https://reviews.llvm.org/D129730



Co-authored-by: default avatarAleksandr Bezzubikov <zuban32s@gmail.com>
Co-authored-by: default avatarMichal Paszkowski <michal.paszkowski@outlook.com>
Co-authored-by: default avatarAndrey Tretyakov <andrey1.tretyakov@intel.com>
Co-authored-by: default avatarKonrad Trifunovic <konrad.trifunovic@intel.com>
parent 0ccb6da7
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment