Skip to content

Commit 2a68f82

Browse files
authored
Revert "[flang][cuda] Add cuf.register_kernel operation" (#112306)
Reverts #112268
1 parent cbe76a2 commit 2a68f82

File tree

5 files changed

+0
-127
lines changed

5 files changed

+0
-127
lines changed

flang/include/flang/Optimizer/Dialect/CUF/CUFOps.td

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -288,23 +288,4 @@ def cuf_KernelOp : cuf_Op<"kernel", [AttrSizedOperandSegments,
288288
let hasVerifier = 1;
289289
}
290290

291-
def cuf_RegisterKernelOp : cuf_Op<"register_kernel", []> {
292-
let summary = "Register a CUDA kernel";
293-
294-
let arguments = (ins
295-
SymbolRefAttr:$name
296-
);
297-
298-
let assemblyFormat = [{
299-
$name attr-dict
300-
}];
301-
302-
let hasVerifier = 1;
303-
304-
let extraClassDeclaration = [{
305-
mlir::StringAttr getKernelName();
306-
mlir::StringAttr getKernelModuleName();
307-
}];
308-
}
309-
310291
#endif // FORTRAN_DIALECT_CUF_CUF_OPS

flang/lib/Optimizer/Dialect/CUF/CUFOps.cpp

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
#include "flang/Optimizer/Dialect/CUF/CUFDialect.h"
1616
#include "flang/Optimizer/Dialect/FIRAttr.h"
1717
#include "flang/Optimizer/Dialect/FIRType.h"
18-
#include "mlir/Dialect/GPU/IR/GPUDialect.h"
1918
#include "mlir/IR/Attributes.h"
2019
#include "mlir/IR/BuiltinAttributes.h"
2120
#include "mlir/IR/BuiltinOps.h"
@@ -254,42 +253,6 @@ llvm::LogicalResult cuf::KernelOp::verify() {
254253
return mlir::success();
255254
}
256255

257-
//===----------------------------------------------------------------------===//
258-
// RegisterKernelOp
259-
//===----------------------------------------------------------------------===//
260-
261-
mlir::StringAttr cuf::RegisterKernelOp::getKernelModuleName() {
262-
return getName().getRootReference();
263-
}
264-
265-
mlir::StringAttr cuf::RegisterKernelOp::getKernelName() {
266-
return getName().getLeafReference();
267-
}
268-
269-
mlir::LogicalResult cuf::RegisterKernelOp::verify() {
270-
if (getKernelName() == getKernelModuleName())
271-
return emitOpError("expect a module and a kernel name");
272-
273-
auto mod = getOperation()->getParentOfType<mlir::ModuleOp>();
274-
if (!mod)
275-
return emitOpError("expect to be in a module");
276-
277-
mlir::SymbolTable symTab(mod);
278-
auto gpuMod = symTab.lookup<mlir::gpu::GPUModuleOp>(getKernelModuleName());
279-
if (!gpuMod)
280-
return emitOpError("gpu module not found");
281-
282-
mlir::SymbolTable gpuSymTab(gpuMod);
283-
auto func = gpuSymTab.lookup<mlir::gpu::GPUFuncOp>(getKernelName());
284-
if (!func)
285-
return emitOpError("device function not found");
286-
287-
if (!func.isKernel())
288-
return emitOpError("only kernel gpu.func can be registered");
289-
290-
return mlir::success();
291-
}
292-
293256
// Tablegen operators
294257

295258
#define GET_OP_CLASSES

flang/test/Fir/CUDA/cuda-register-func.fir

Lines changed: 0 additions & 20 deletions
This file was deleted.

flang/test/Fir/cuf-invalid.fir

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -125,53 +125,3 @@ func.func @_QPsub1(%arg0: !fir.ref<!fir.array<?xf32>> {cuf.data_attr = #cuf.cuda
125125
cuf.data_transfer %20#0 to %11#0, %19 : !fir.shape<1> {transfer_kind = #cuf.cuda_transfer<host_device>} : !fir.box<!fir.array<?xf32>>, !fir.box<!fir.array<?xf32>>
126126
return
127127
}
128-
129-
// -----
130-
131-
module attributes {gpu.container_module} {
132-
gpu.module @cuda_device_mod {
133-
gpu.func @_QPsub_device1() {
134-
gpu.return
135-
}
136-
}
137-
llvm.func internal @__cudaFortranConstructor() {
138-
// expected-error@+1{{'cuf.register_kernel' op only kernel gpu.func can be registered}}
139-
cuf.register_kernel @cuda_device_mod::@_QPsub_device1
140-
llvm.return
141-
}
142-
}
143-
144-
// -----
145-
146-
module attributes {gpu.container_module} {
147-
gpu.module @cuda_device_mod {
148-
gpu.func @_QPsub_device1() {
149-
gpu.return
150-
}
151-
}
152-
llvm.func internal @__cudaFortranConstructor() {
153-
// expected-error@+1{{'cuf.register_kernel' op device function not found}}
154-
cuf.register_kernel @cuda_device_mod::@_QPsub_device2
155-
llvm.return
156-
}
157-
}
158-
159-
// -----
160-
161-
module attributes {gpu.container_module} {
162-
llvm.func internal @__cudaFortranConstructor() {
163-
// expected-error@+1{{'cuf.register_kernel' op gpu module not found}}
164-
cuf.register_kernel @cuda_device_mod::@_QPsub_device1
165-
llvm.return
166-
}
167-
}
168-
169-
// -----
170-
171-
module attributes {gpu.container_module} {
172-
llvm.func internal @__cudaFortranConstructor() {
173-
// expected-error@+1{{'cuf.register_kernel' op expect a module and a kernel name}}
174-
cuf.register_kernel @_QPsub_device1
175-
llvm.return
176-
}
177-
}

flang/tools/fir-opt/fir-opt.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ int main(int argc, char **argv) {
4242
#endif
4343
DialectRegistry registry;
4444
fir::support::registerDialects(registry);
45-
registry.insert<mlir::gpu::GPUDialect>();
4645
fir::support::addFIRExtensions(registry);
4746
return failed(MlirOptMain(argc, argv, "FIR modular optimizer driver\n",
4847
registry));

0 commit comments

Comments
 (0)