I think you still need it for passes with internal linkage: https://mlir.llvm.org/doxygen/classmlir_1_1TypeID.html#details
It's a namespace-qualified definition, so the return types need the namespace qualifier as well.
I did a pass to make the namespace use more consistent with the rest of mlir.
It was fine the way it was earlier -- we shouldn't be enclosing all of this in the mlir namespace, but instead just be defining the methods as LogicalResult mlir::gpu::.... See https://llvm.org/docs/CodingStandards.html#use-namespace-qualifiers-to-implement-previously-declared-functions
Again, these should just go into the anonymous namespace.
These were defined in the mlir::gpu namespace before, which goes against the coding standard you linked. I moved the definition to the mlir namespace and qualified it with gpu to get early build errors. Fully qualifying them with`mlir::gpu` doesn't give us anything extra.
I put it in the mlir::gpu namespace because MappingLevel is a sufficiently generic term that there is risk that someone will define it in the mlir or global namespace.
Thanks, I didn't know.