Skip to content

Commit 8349fa0

Browse files
committed
[mlir][spirv] NFC: split deserialization into multiple source files
This avoids large source files and gives a better structure. It also allows leveraging compilation parallelism. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D94360
1 parent 1f12501 commit 8349fa0

File tree

10 files changed

+1364
-1264
lines changed

10 files changed

+1364
-1264
lines changed

mlir/lib/Target/CMakeLists.txt

Lines changed: 2 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
add_subdirectory(SPIRV)
2+
13
add_mlir_translation_library(MLIRTargetLLVMIRModuleTranslation
24
LLVMIR/DebugTranslation.cpp
35
LLVMIR/ModuleTranslation.cpp
@@ -132,52 +134,3 @@ add_mlir_translation_library(MLIRTargetROCDLIR
132134
MLIRROCDLIR
133135
MLIRTargetLLVMIRModuleTranslation
134136
)
135-
136-
add_mlir_translation_library(MLIRSPIRVBinaryUtils
137-
SPIRV/SPIRVBinaryUtils.cpp
138-
139-
LINK_LIBS PUBLIC
140-
MLIRIR
141-
MLIRSPIRV
142-
MLIRSupport
143-
)
144-
145-
add_mlir_translation_library(MLIRSPIRVSerialization
146-
SPIRV/Serialization.cpp
147-
148-
DEPENDS
149-
MLIRSPIRVSerializationGen
150-
151-
LINK_LIBS PUBLIC
152-
MLIRIR
153-
MLIRSPIRV
154-
MLIRSPIRVBinaryUtils
155-
MLIRSupport
156-
MLIRTranslation
157-
)
158-
159-
add_mlir_translation_library(MLIRSPIRVDeserialization
160-
SPIRV/Deserialization.cpp
161-
162-
DEPENDS
163-
MLIRSPIRVSerializationGen
164-
165-
LINK_LIBS PUBLIC
166-
MLIRIR
167-
MLIRSPIRV
168-
MLIRSPIRVBinaryUtils
169-
MLIRSupport
170-
MLIRTranslation
171-
)
172-
173-
add_mlir_translation_library(MLIRSPIRVTranslateRegistration
174-
SPIRV/TranslateRegistration.cpp
175-
176-
LINK_LIBS PUBLIC
177-
MLIRIR
178-
MLIRSPIRV
179-
MLIRSPIRVSerialization
180-
MLIRSPIRVDeserialization
181-
MLIRSupport
182-
MLIRTranslation
183-
)

mlir/lib/Target/SPIRV/CMakeLists.txt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
add_subdirectory(Deserialization)
2+
add_subdirectory(Serialization)
3+
4+
set(LLVM_OPTIONAL_SOURCES
5+
SPIRVBinaryUtils.cpp
6+
TranslateRegistration.cpp
7+
)
8+
9+
add_mlir_translation_library(MLIRSPIRVBinaryUtils
10+
SPIRVBinaryUtils.cpp
11+
12+
LINK_LIBS PUBLIC
13+
MLIRIR
14+
MLIRSPIRV
15+
MLIRSupport
16+
)
17+
18+
add_mlir_translation_library(MLIRSPIRVTranslateRegistration
19+
TranslateRegistration.cpp
20+
21+
LINK_LIBS PUBLIC
22+
MLIRIR
23+
MLIRSPIRV
24+
MLIRSPIRVSerialization
25+
MLIRSPIRVDeserialization
26+
MLIRSupport
27+
MLIRTranslation
28+
)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
add_mlir_translation_library(MLIRSPIRVDeserialization
2+
DeserializeOps.cpp
3+
Deserializer.cpp
4+
Deserialization.cpp
5+
6+
DEPENDS
7+
MLIRSPIRVSerializationGen
8+
9+
LINK_LIBS PUBLIC
10+
MLIRIR
11+
MLIRSPIRV
12+
MLIRSPIRVBinaryUtils
13+
MLIRSupport
14+
MLIRTranslation
15+
)
16+
17+
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
//===- Deserialization.cpp - MLIR SPIR-V Deserialization ------------------===//
2+
//
3+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4+
// See https://llvm.org/LICENSE.txt for license information.
5+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6+
//
7+
//===----------------------------------------------------------------------===//
8+
9+
#include "mlir/Target/SPIRV/Deserialization.h"
10+
11+
#include "Deserializer.h"
12+
13+
namespace mlir {
14+
spirv::OwningSPIRVModuleRef spirv::deserialize(ArrayRef<uint32_t> binary,
15+
MLIRContext *context) {
16+
Deserializer deserializer(binary, context);
17+
18+
if (failed(deserializer.deserialize()))
19+
return nullptr;
20+
21+
return deserializer.collect();
22+
}
23+
} // namespace mlir

0 commit comments

Comments
 (0)