[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