As GPU architectures evolve, compiler interfaces must expose new operations and unconventional forms of resource addressing while preserving compatibility with earlier generations. Using NVIDIA Rubin as a case study, this talk presents lessons learned from evolving LLVM and MLIR NVVM interfaces to meet these challenges. We will cover the evolution of Tensor Memory Accelerator (TMA) operations and the improvements they motivate in LLVM's AutoUpgrade machinery, the modeling of cross-generation target compatibility, and the representation of multi-GPU resource handles as non-integral pointers. We will discuss the resulting LLVM and SelectionDAG design trade-offs and conclude with an end-to-end GEMM kernel executed using the upstream mlir-runner, demonstrating how these features compose in practice. These interface-design lessons may also benefit other LLVM backends and MLIR target dialects facing similar hardware-evolution challenges.