[MLIR][LLVM] Fix uses of LLVM's visibility attr (#173024)
I noticed that I was using LLVM::VisibilityAttr::name when looking for
the attribute on LLVM ops, but LLVM::VisibilityAttr::name is just
"builtin.integer"... Now we switch on the types of the specific ops we would
like to match, and use the getters/setters for the attribute directly instead of
the deprecated setAttr/getAttr.