digitalmars.D - Avoiding Slice Checking
- =?UTF-8?B?Ik5vcmRsw7Z3Ig==?= (13/13) Jan 21 2015 As a follow up to
- deadalnix (4/17) Jan 21 2015 That is reasonable to expect a compiler to remove such a check
- bearophile (5/8) Jan 21 2015 I think this thread is about an enhancement request for a
As a follow up to https://github.com/D-Programming-Language/dmd/pull/4293 would it be possible to also avoid range-checking in expressions such as x[0 .. $/n] and x[$/n .. $] where n is an integer compile-time constant >= 2. I'm askingbecause this is a reoccurring pattern in D-style binary divide-and-conquer algorithms and would be a good show-case for D from a performance standpoint. Is DMD prepared for (easily) adding this to e2ir.c and expression.c?
Jan 21 2015
On Wednesday, 21 January 2015 at 23:50:44 UTC, Nordlöw wrote:As a follow up to https://github.com/D-Programming-Language/dmd/pull/4293 would it be possible to also avoid range-checking in expressions such as x[0 .. $/n] and x[$/n .. $] where n is an integer compile-time constant >= 2. I'm askingbecause this is a reoccurring pattern in D-style binary divide-and-conquer algorithms and would be a good show-case for D from a performance standpoint. Is DMD prepared for (easily) adding this to e2ir.c and expression.c?That is reasonable to expect a compiler to remove such a check with optimization enabled already. I'm not sure about DMD, but I'd be willing to bet that LDC and GDC already do it.
Jan 21 2015
deadalnix:That is reasonable to expect a compiler to remove such a check with optimization enabled already. I'm not sure about DMD, but I'd be willing to bet that LDC and GDC already do it.I think this thread is about an enhancement request for a guaranteed front-end optimization. Bye, bearophile
Jan 21 2015