[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:50:37 PST 2020
rriddle added a comment.
In D74440#1910771 <https://reviews.llvm.org/D74440#1910771>, @rriddle wrote:
> 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.
I submitted: https://github.com/llvm/llvm-project/commit/f240d303c2edf69d6a53691c62da110877ac6bf5
Let me know if that fixes it for you.
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