16#define GEN_PASS_DEF_LLVMUSEDEFAULTVISIBILITYPASS
17#include "mlir/Dialect/LLVMIR/Transforms/Passes.h.inc"
24 LLVM::VisibilityAttr newVisibilityAttr) {
25 if (
auto visibilityAttr =
26 op->
getAttrOfType<LLVM::VisibilityAttr>(LLVM::VisibilityAttr::name)) {
27 LLVM::Visibility visibility = visibilityAttr.getValue();
28 if (visibility == LLVM::Visibility::Default) {
29 op->
setAttr(LLVM::VisibilityAttr::name, newVisibilityAttr);
35class UseDefaultVisibilityPass
36 :
public LLVM::impl::LLVMUseDefaultVisibilityPassBase<
37 UseDefaultVisibilityPass> {
41 void runOnOperation()
override {
42 LLVM::Visibility useDefaultVisibility = useVisibility.getValue();
43 Operation *op = getOperation();
46 auto newVisibilityAttr =
47 LLVM::VisibilityAttr::get(context, useDefaultVisibility);
48 op->
walk([&](Operation *op) {
static void updateVisibility(Operation *op, LLVM::VisibilityAttr newVisibilityAttr)
Dialect * getLoadedDialect(StringRef name)
Get a registered IR dialect with the given namespace.
Operation is the basic unit of execution within MLIR.
Dialect * getDialect()
Return the dialect this operation is associated with, or nullptr if the associated dialect is not loa...
AttrClass getAttrOfType(StringAttr name)
void setAttr(StringAttr name, Attribute value)
If the an attribute exists with the specified name, change it to the new value.
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),...
MLIRContext * getContext()
Return the context this operation is associated with.
Include the generated interface declarations.