DIP 1006 - Preliminary Review Round 1
Iain Buclaw
ibuclaw at gdcproject.org
Mon Mar 5 19:41:11 UTC 2018
On Monday, 5 March 2018 at 15:48:12 UTC, Timon Gehr wrote:
>
> - Using existing assertions as compiler hints is not necessary.
> (Without having checked it, I'm sure that LDC/GDC have a more
> suitable intrinsic for this already.)
>
> As far as I can discern, forcing disabled asserts to give
> compiler hints has no upsides.
>
In the simple cases, or in anything that looks like a
unittest/testsuite, probably not.
There are likely going to be more aggressive optimizations
however if CFA can see that a variable will never be outside a
given range, i.e:
---
int[5] arr;
if (len < 0 || len >= 5)
{
unreachable(); // in non-release code, this would throw a
RangeError.
}
return arr[len];
---
From this, we aggressively assume that len is a valid index of
arr. Something that happens in optimized non-release builds, but
in release builds we must accommodate for the possibility of a
range error.
More information about the Digitalmars-d
mailing list