Skip to content

[SYCL-MLIR] Investigate ambiguous push_back #11078

@whitneywhtsang

Description

@whitneywhtsang

0ac21e6 causes the build failure below. It is reverted in #11077.

llvm/polygeist/tools/cgeist/Lib/clang-mlir.cc:2198:41: error: request for member ‘push_back’ is ambiguous
 2198 |     mlirclang::getDeviceModule(*Module).push_back(Function);
      |                                         ^~~~~~~~~
In file included from /iusers/waihungt/merge/llvm/llvm/../mlir/include/mlir/IR/OpImplementation.h:18,
                 from llvm/llvm/../mlir/include/mlir/Bytecode/BytecodeImplementation.h:21,
                 from llvm/llvm/../mlir/include/mlir/Bytecode/BytecodeOpInterface.h:17,
                 from llvm/llvm/../mlir/include/mlir/Dialect/GPU/IR/GPUDialect.h:17,
                 from llvm/llvm/../mlir-sycl/include/mlir/Dialect/SYCL/IR/SYCLAttributes.h:12,
                 from llvm/polygeist/include/mlir/Conversion/PolygeistToLLVM/PolygeistToLLVM.h:14,
                 from llvm/polygeist/tools/cgeist/driver.cc:27:
llvm/llvm/../mlir/include/mlir/IR/OpDefinition.h:1009:34: note: candidates are: ‘template<class OpT> mlir::OpTrait::SingleBlockImplicitTerminator<TerminatorOpType>::Impl<ConcreteType>::enable_if_single_region<OpT> mlir::OpTrait::SingleBlockImplicitTerminator<TerminatorOpType>::Impl<ConcreteType>::push_back(mlir::Operation*) [with OpT = OpT; ConcreteType = mlir::gpu::GPUModuleOp; TerminatorOpType = mlir::gpu::ModuleEndOp]’
 1009 |     enable_if_single_region<OpT> push_back(Operation *op) {
      |                                  ^~~~~~~~~
llvm/llvm/../mlir/include/mlir/IR/OpDefinition.h:923:32: note:                 ‘template<class OpT> mlir::OpTrait::SingleBlock<ConcreteType>::enable_if_single_region<OpT> mlir::OpTrait::SingleBlock<ConcreteType>::push_back(mlir::Operation*) [with OpT = OpT; ConcreteType = mlir::gpu::GPUModuleOp]’
  923 |   enable_if_single_region<OpT> push_back(Operation *op) {

To reproduce:

git revert ecfd8785f037c39ff4a34e745fecc9dfe5507438
ninja cgeist

Metadata

Metadata

Assignees

Labels

sycl-mlirPull requests or issues for sycl-mlir branch

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions