[PATCH] D74440: [mlir][SideEffects] Enable specifying side effects directly on the arguments/results of an operation.
River Riddle via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 6 19:18:44 PST 2020
rriddle added a comment.
In D74440#1910724 <https://reviews.llvm.org/D74440#1910724>, @NathanielMcVicar wrote:
> This appears to break the VisualStudio build for MSVC++ 14.16
>
> E:\build_slave\mlir-x64-windows-ninja\llvm-project\llvm\include\llvm/Support/Casting.h(58): error C2664: 'bool mlir::SideEffects::Effect::Base<mlir::MemoryEffects::Allocate,mlir::MemoryEffects::Effect>::classof(const mlir::MemoryEffects::Effect *)': cannot convert argument 1 from 'const From *' to 'const mlir::MemoryEffects::Effect *'
> with
> [
> From=mlir::SideEffects::Effect
> ]
> E:\build_slave\mlir-x64-windows-ninja\llvm-project\llvm\include\llvm/Support/Casting.h(58): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
> E:\build_slave\mlir-x64-windows-ninja\llvm-project\llvm\include\llvm/Support/Casting.h(57): note: while compiling class template member function 'bool llvm::isa_impl<To,From,void>::doit(const From &)'
> with
> [
> To=mlir::MemoryEffects::Allocate,
> From=mlir::SideEffects::Effect
> ]
> E:\build_slave\mlir-x64-windows-ninja\llvm-project\llvm\include\llvm/Support/Casting.h(105): note: see reference to function template instantiation 'bool llvm::isa_impl<To,From,void>::doit(const From &)' being compiled
> with
> [
> To=mlir::MemoryEffects::Allocate,
> From=mlir::SideEffects::Effect
> ]
> E:\build_slave\mlir-x64-windows-ninja\llvm-project\llvm\include\llvm/Support/Casting.h(105): note: see reference to class template instantiation 'llvm::isa_impl<To,From,void>' being compiled
> with
> [
> To=mlir::MemoryEffects::Allocate,
> From=mlir::SideEffects::Effect
> ]
> E:\build_slave\mlir-x64-windows-ninja\llvm-project\llvm\include\llvm/Support/Casting.h(103): note: while compiling class template member function 'bool llvm::isa_impl_cl<To,FromTy>::doit(const From *)'
> with
> [
> To=mlir::MemoryEffects::Allocate,
> FromTy=const mlir::SideEffects::Effect *,
> From=mlir::SideEffects::Effect
> ]
> E:\build_slave\mlir-x64-windows-ninja\llvm-project\llvm\include\llvm/Support/Casting.h(131): note: see reference to function template instantiation 'bool llvm::isa_impl_cl<To,FromTy>::doit(const From *)' being compiled
> with
> [
> To=mlir::MemoryEffects::Allocate,
> FromTy=const mlir::SideEffects::Effect *,
> From=mlir::SideEffects::Effect
> ]
> E:\build_slave\mlir-x64-windows-ninja\llvm-project\llvm\include\llvm/Support/Casting.h(131): note: see reference to class template instantiation 'llvm::isa_impl_cl<To,FromTy>' being compiled
> with
> [
> To=mlir::MemoryEffects::Allocate,
> FromTy=const mlir::SideEffects::Effect *
> ]
> E:\build_slave\mlir-x64-windows-ninja\llvm-project\llvm\include\llvm/Support/Casting.h(130): note: while compiling class template member function 'bool llvm::isa_impl_wrap<To,SimpleFrom,SimpleFrom>::doit(const FromTy &)'
> with
> [
> To=mlir::MemoryEffects::Allocate,
> SimpleFrom=const mlir::SideEffects::Effect *,
> FromTy=const mlir::SideEffects::Effect *
> ]
> E:\build_slave\mlir-x64-windows-ninja\llvm-project\llvm\include\llvm/Support/Casting.h(121): note: see reference to function template instantiation 'bool llvm::isa_impl_wrap<To,SimpleFrom,SimpleFrom>::doit(const FromTy &)' being compiled
> with
> [
> To=mlir::MemoryEffects::Allocate,
> SimpleFrom=const mlir::SideEffects::Effect *,
> FromTy=const mlir::SideEffects::Effect *
> ]
> E:\build_slave\mlir-x64-windows-ninja\llvm-project\llvm\include\llvm/Support/Casting.h(122): note: see reference to class template instantiation 'llvm::isa_impl_wrap<To,SimpleFrom,SimpleFrom>' being compiled
> with
> [
> To=mlir::MemoryEffects::Allocate,
> SimpleFrom=const mlir::SideEffects::Effect *
> ]
> E:\build_slave\mlir-x64-windows-ninja\llvm-project\llvm\include\llvm/Support/Casting.h(120): note: while compiling class template member function 'bool llvm::isa_impl_wrap<X,const Y,const mlir::SideEffects::Effect *>::doit(From &)'
> with
> [
> X=mlir::MemoryEffects::Allocate,
> Y=const mlir::SideEffects::Effect *,
> From=const mlir::SideEffects::Effect *
> ]
> E:\build_slave\mlir-x64-windows-ninja\llvm-project\llvm\include\llvm/Support/Casting.h(141): note: see reference to function template instantiation 'bool llvm::isa_impl_wrap<X,const Y,const mlir::SideEffects::Effect *>::doit(From &)' being compiled
> with
> [
> X=mlir::MemoryEffects::Allocate,
> Y=const mlir::SideEffects::Effect *,
> From=const mlir::SideEffects::Effect *
> ]
> E:\build_slave\mlir-x64-windows-ninja\llvm-project\llvm\include\llvm/Support/Casting.h(142): note: see reference to class template instantiation 'llvm::isa_impl_wrap<X,const Y,const mlir::SideEffects::Effect *>' being compiled
> with
> [
> X=mlir::MemoryEffects::Allocate,
> Y=const mlir::SideEffects::Effect *
> ]
> E:\build_slave\mlir-x64-windows-ninja\llvm-project\mlir\lib\IR\Operation.cpp(967): note: see reference to function template instantiation 'bool llvm::isa<mlir::MemoryEffects::Allocate,const mlir::SideEffects::Effect*>(const Y &)' being compiled
> with
> [
> Y=const mlir::SideEffects::Effect *
> ]
> ninja: build stopped: subcommand failed.
>
Thanks for the report, looks like MSVC has some buggy symbol resolution for templates. I'll send fix-forward shortly.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D74440/new/
https://reviews.llvm.org/D74440
More information about the llvm-commits
mailing list