We've had the ability to define LLVM's `range` attribute through #llvm.constant_range for some time, and have used this for some GPU intrinsics. This commit allows using `llvm.range` as a parameter or result attribute on function declarations and definitions.
Multi-Level Intermediate Representation
See https://mlir.llvm.org/ for more information.