[PATCH] D74549: [mlir][spirv] Add pass ConvertGpuLaunchFuncToVulkanCallsPass.
Lei Zhang via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 13 11:11:03 PST 2020
antiagainst added inline comments.
================
Comment at: mlir/lib/Conversion/GPUToVulkan/ConvertLaunchFuncToVulkanCalls.cpp:157
+ std::vector<char> shaderName(name.begin(), name.end());
+ shaderName.push_back('\0');
+
----------------
denis13 wrote:
> antiagainst wrote:
> > Could you document why we are putting a mysterious `\0` in the middle here?
> I was looking how llvm.mlir globals lowering to llvm ir, and as far as I undertood in the current approach the `AddNull` is set to false
> https://llvm.org/doxygen/classllvm_1_1ConstantDataArray.html#a3edef3fa47c611d3d10606591213e57b
> , so we need to explicitly append `\0` to align with C style string. Please fix me I'm wrong.
>
> ```
> if (op.getValueOrNull()) {
> // String attributes are treated separately because they cannot appear as
> // in-function constants and are thus not supported by getLLVMConstant.
> if (auto strAttr = op.getValueOrNull().dyn_cast_or_null<StringAttr>()) {
> cst = llvm::ConstantDataArray::getString(
> llvmModule->getContext(), strAttr.getValue(), /*AddNull=*/false);
> type = cst->getType();
> } else {
> cst = getLLVMConstant(type, op.getValueOrNull(), op.getLoc());
> }
> } else if (Block *initializer = op.getInitialize
> ```
Yeah I was just saying that we should document along the code. :)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D74549/new/
https://reviews.llvm.org/D74549
More information about the llvm-commits
mailing list