13#include "llvm/ADT/TypeSwitch.h"
17#define GEN_PASS_DEF_LLVMUSEDEFAULTVISIBILITYPASS
18#include "mlir/Dialect/LLVMIR/Transforms/Passes.h.inc"
25class UseDefaultVisibilityPass
26 :
public LLVM::impl::LLVMUseDefaultVisibilityPassBase<
27 UseDefaultVisibilityPass> {
31 void runOnOperation()
override {
32 LLVM::Visibility useDefaultVisibility = useVisibility.getValue();
33 if (useDefaultVisibility == LLVM::Visibility::Default)
35 Operation *op = getOperation();
36 op->
walk([&](Operation *op) {
37 llvm::TypeSwitch<Operation *, void>(op)
38 .Case<LLVM::LLVMFuncOp, LLVM::GlobalOp, LLVM::IFuncOp, LLVM::AliasOp>(
40 if (op.getVisibility_() == LLVM::Visibility::Default)
41 op.setVisibility_(useDefaultVisibility);
std::enable_if_t< llvm::function_traits< std::decay_t< FnT > >::num_args==1, RetT > walk(FnT &&callback)
Walk the operation by calling the callback for each nested operation (including this one),...
Include the generated interface declarations.