summaryrefslogtreecommitdiffstats
path: root/mlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp
diff options
context:
space:
mode:
authorLei Zhang <antiagainst@google.com>2019-08-27 10:50:58 -0700
committerA. Unique TensorFlower <gardener@tensorflow.org>2019-08-27 10:51:26 -0700
commit3af6b533812ce43b2b53f3c8ef905f73881ea7f8 (patch)
tree76bb19d1e9767290f6abeec897580f36d18cd352 /mlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp
parent4ced99c085e62f681276a06e0ce842b190900d32 (diff)
downloadbcm5719-llvm-3af6b533812ce43b2b53f3c8ef905f73881ea7f8.tar.gz
bcm5719-llvm-3af6b533812ce43b2b53f3c8ef905f73881ea7f8.zip
[spirv] Fix the entry block to start with OpLabel
Each basic block in SPIR-V must start with an OpLabel instruction. We don't support control flow yet, so this CL just makes sure that the entry block follows this rule and is valid. PiperOrigin-RevId: 265718841
Diffstat (limited to 'mlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp')
-rw-r--r--mlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/mlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp b/mlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp
index 03973db0d95..43a1d08cf6c 100644
--- a/mlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp
+++ b/mlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp
@@ -543,6 +543,8 @@ LogicalResult Serializer::processFuncOp(FuncOp op) {
}
for (auto &b : op) {
+ // TODO(antiagainst): support basic blocks and control flow properly.
+ encodeInstructionInto(functions, spirv::Opcode::OpLabel, {getNextID()});
for (auto &op : b) {
if (failed(processOperation(&op))) {
return failure();
OpenPOWER on IntegriCloud