[PATCH] D72822: [mlir] Replace AbstractOperation::classof with a ClassID instance.

Valentin Churavy via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 28 14:25:25 PST 2020


vchuravy added a comment.

I built a shared library (D73130 <https://reviews.llvm.org/D73130>) and run into the case that my `HasParent<FuncOp>` trait failed to verify.

  (gdb) 
  mlir::Op<mlir::FuncOp, mlir::OpTrait::ZeroOperands, mlir::OpTrait::ZeroResult, mlir::OpTrait::IsIsolatedFromAbove, mlir::OpTrait::Symbol, mlir::OpTrait::FunctionLike, mlir::CallableOpInterface::Trait>::classof (op=0x555555e67550) at /data/vchuravy/mlir/build/usr/include/mlir/IR/OpDefinition.h:987
  987           return ClassID::getID<ConcreteType>() == abstractOp->classID;
  
  (gdb) p abstractOp->classID
  $7 = (mlir::ClassID *) 0x7ffff698e020 <mlir::ClassID* mlir::ClassID::getID<mlir::FuncOp>()::id>
  
  (gdb) p ClassID::getID<mlir::FuncOp>()
  $8 = (mlir::ClassID *) 0x7ffff7aee120 <mlir::ClassID* mlir::ClassID::getID<mlir::FuncOp>()::id>

So it seems it still might be the case that pointer can differ. D72584 <https://reviews.llvm.org/D72584> fixed this by falling back more often to the string comparison.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D72822/new/

https://reviews.llvm.org/D72822





More information about the llvm-commits mailing list