[llvm] [IR] Add new Range attribute using new ConstantRange Attribute type (PR #83171)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 7 01:06:20 PST 2024


================
@@ -1634,6 +1634,22 @@ Currently, only the following parameter attributes are defined:
 
     This attribute cannot be applied to return values.
 
+``range(<ty> <a>, <b>)``
+    This attribute expresses the possible range the parameter is in. The value of 
+    the parameter is in the specified range or is poison.
+    The arguments passed to ``range`` has the following properties:
+
+    -  The type must match the scalar type of the parameter.
+    -  The pair ``a,b`` represents the range ``[a,b)``.
+    -  Both ``a`` and ``b`` are constants.
+    -  The range is allowed to wrap.
+    -  The range should not represent the full or empty set. That is, ``a!=b``.
+    
+    This attribute may only be applied to parameters with integer or vector of 
+    integer types.
----------------
nikic wrote:

```suggestion
    This attribute may only be applied to parameters or return values with integer or vector of 
    integer types.
```

https://github.com/llvm/llvm-project/pull/83171


More information about the llvm-commits mailing list