[PATCH] D111520: [TypeSwitch/Compiler.h] Provide a LLVM_NODEBUG macro and use it in TypeSwitch.h

Chris Lattner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Oct 10 21:23:43 PDT 2021


lattner added a comment.

FWIW, the useless frames end up looking like this:

  frame #10: 0x00000001002bec1a circt-opt`llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>& llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>::Case<circt::sv::AssertOp, circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(this=0x00007000128653c0, caseFn=0x00007000128653b8)::'lambda'(auto)&>(mlir::LogicalResult&&) at TypeSwitch.h:116:16
  frame #11: 0x00000001002b3e81 circt-opt`circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(mlir::Operation*) [inlined] llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>& llvm::detail::TypeSwitchBase<llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>, mlir::Operation*>::Case<circt::sv::AssertOp, circt::sv::AssumeOp, circt::sv::CoverOp, circt::sv::AssertConcurrentOp, circt::sv::AssumeConcurrentOp, circt::sv::CoverConcurrentOp, circt::sv::BindOp, circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(this=0x00007000128653c0, caseFn=0x00007000128653b8)::'lambda'(auto)&>(circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(mlir::Operation*)::'lambda'(auto)&) at TypeSwitch.h:40:29
  frame #12: 0x00000001002b3e67 circt-opt`circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(mlir::Operation*) [inlined] llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>& llvm::detail::TypeSwitchBase<llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>, mlir::Operation*>::Case<circt::sv::ReadInterfaceSignalOp, circt::sv::AssertOp, circt::sv::AssumeOp, circt::sv::CoverOp, circt::sv::AssertConcurrentOp, circt::sv::AssumeConcurrentOp, circt::sv::CoverConcurrentOp, circt::sv::BindOp, circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(this=0x00007000128653c0, caseFn=0x00007000128653b8)::'lambda'(auto)&>(circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(mlir::Operation*)::'lambda'(auto)&) at TypeSwitch.h:41:19
  frame #13: 0x00000001002b3e34 circt-opt`circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(mlir::Operation*) [inlined] llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>& llvm::detail::TypeSwitchBase<llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>, mlir::Operation*>::Case<circt::sv::AssignInterfaceSignalOp, circt::sv::ReadInterfaceSignalOp, circt::sv::AssertOp, circt::sv::AssumeOp, circt::sv::CoverOp, circt::sv::AssertConcurrentOp, circt::sv::AssumeConcurrentOp, circt::sv::CoverConcurrentOp, circt::sv::BindOp, circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(this=0x00007000128653c0, caseFn=0x00007000128653b8)::'lambda'(auto)&>(circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(mlir::Operation*)::'lambda'(auto)&) at TypeSwitch.h:41:19
  frame #14: 0x00000001002b3dfb circt-opt`circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(mlir::Operation*) [inlined] llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>& llvm::detail::TypeSwitchBase<llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>, mlir::Operation*>::Case<circt::sv::GetModportOp, circt::sv::AssignInterfaceSignalOp, circt::sv::ReadInterfaceSignalOp, circt::sv::AssertOp, circt::sv::AssumeOp, circt::sv::CoverOp, circt::sv::AssertConcurrentOp, circt::sv::AssumeConcurrentOp, circt::sv::CoverConcurrentOp, circt::sv::BindOp, circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(this=0x00007000128653c0, caseFn=0x00007000128653b8)::'lambda'(auto)&>(circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(mlir::Operation*)::'lambda'(auto)&) at TypeSwitch.h:41:19
  frame #15: 0x00000001002b3dc2 circt-opt`circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(mlir::Operation*) [inlined] llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>& llvm::detail::TypeSwitchBase<llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>, mlir::Operation*>::Case<circt::sv::InterfaceInstanceOp, circt::sv::GetModportOp, circt::sv::AssignInterfaceSignalOp, circt::sv::ReadInterfaceSignalOp, circt::sv::AssertOp, circt::sv::AssumeOp, circt::sv::CoverOp, circt::sv::AssertConcurrentOp, circt::sv::AssumeConcurrentOp, circt::sv::CoverConcurrentOp, circt::sv::BindOp, circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(this=0x00007000128653c0, caseFn=0x00007000128653b8)::'lambda'(auto)&>(circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(mlir::Operation*)::'lambda'(auto)&) at TypeSwitch.h:41:19
  frame #16: 0x00000001002b3d89 circt-opt`circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(mlir::Operation*) [inlined] llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>& llvm::detail::TypeSwitchBase<llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>, mlir::Operation*>::Case<circt::sv::InterfaceModportOp, circt::sv::InterfaceInstanceOp, circt::sv::GetModportOp, circt::sv::AssignInterfaceSignalOp, circt::sv::ReadInterfaceSignalOp, circt::sv::AssertOp, circt::sv::AssumeOp, circt::sv::CoverOp, circt::sv::AssertConcurrentOp, circt::sv::AssumeConcurrentOp, circt::sv::CoverConcurrentOp, circt::sv::BindOp, circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(this=0x00007000128653c0, caseFn=0x00007000128653b8)::'lambda'(auto)&>(circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(mlir::Operation*)::'lambda'(auto)&) at TypeSwitch.h:41:19
  frame #17: 0x00000001002b3d50 circt-opt`circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(mlir::Operation*) [inlined] llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>& llvm::detail::TypeSwitchBase<llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>, mlir::Operation*>::Case<circt::sv::InterfaceSignalOp, circt::sv::InterfaceModportOp, circt::sv::InterfaceInstanceOp, circt::sv::GetModportOp, circt::sv::AssignInterfaceSignalOp, circt::sv::ReadInterfaceSignalOp, circt::sv::AssertOp, circt::sv::AssumeOp, circt::sv::CoverOp, circt::sv::AssertConcurrentOp, circt::sv::AssumeConcurrentOp, circt::sv::CoverConcurrentOp, circt::sv::BindOp, circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(this=0x00007000128653c0, caseFn=0x00007000128653b8)::'lambda'(auto)&>(circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(mlir::Operation*)::'lambda'(auto)&) at TypeSwitch.h:41:19
  frame #18: 0x00000001002b3d17 circt-opt`circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(mlir::Operation*) [inlined] llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>& llvm::detail::TypeSwitchBase<llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>, mlir::Operation*>::Case<circt::sv::InterfaceOp, circt::sv::InterfaceSignalOp, circt::sv::InterfaceModportOp, circt::sv::InterfaceInstanceOp, circt::sv::GetModportOp, circt::sv::AssignInterfaceSignalOp, circt::sv::ReadInterfaceSignalOp, circt::sv::AssertOp, circt::sv::AssumeOp, circt::sv::CoverOp, circt::sv::AssertConcurrentOp, circt::sv::AssumeConcurrentOp, circt::sv::CoverConcurrentOp, circt::sv::BindOp, circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(this=0x00007000128653c0, caseFn=0x00007000128653b8)::'lambda'(auto)&>(circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(mlir::Operation*)::'lambda'(auto)&) at TypeSwitch.h:41:19
  frame #19: 0x00000001002b3cde circt-opt`circt::sv::Visitor<(anonymous namespace)::StmtEmitter, mlir::LogicalResult>::dispatchSVVisitor(mlir::Operation*) [inlined] llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>& llvm::detail::TypeSwitchBase<llvm::TypeSwitch<mlir::Operation*, mlir::LogicalResult>


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D111520



More information about the llvm-commits mailing list