forked from BilalY/Rasagar
32 lines
1.2 KiB
C#
32 lines
1.2 KiB
C#
using System;
|
|
|
|
namespace Unity.Burst.CompilerServices
|
|
{
|
|
/// <summary>
|
|
/// Can be used to specify that a parameter or return has a range assumption.
|
|
/// Assumptions feed directly into the optimizer and allow better codegen.
|
|
///
|
|
/// Only usable on values of type scalar integer.
|
|
///
|
|
/// The range is a closed interval [min..max] - EG. the attributed value
|
|
/// is greater-than-or-equal-to min and less-than-or-equal-to max.
|
|
/// </summary>
|
|
[AttributeUsage(AttributeTargets.ReturnValue | AttributeTargets.Parameter)]
|
|
public class AssumeRangeAttribute : Attribute
|
|
{
|
|
/// <summary>
|
|
/// Assume that an integer is in the signed closed interval [min..max].
|
|
/// </summary>
|
|
/// <param name="min">The inclusive minimum value.</param>
|
|
/// <param name="max">The inclusive maximum value.</param>
|
|
public AssumeRangeAttribute(long min, long max) { }
|
|
|
|
/// <summary>
|
|
/// Assume that an integer is in the unsigned closed interval [min..max].
|
|
/// </summary>
|
|
/// <param name="min">The inclusive minimum value.</param>
|
|
/// <param name="max">The inclusive maximum value.</param>
|
|
public AssumeRangeAttribute(ulong min, ulong max) { }
|
|
}
|
|
}
|