To help LDC/GDC
Iain Buclaw
ibuclaw at ubuntu.com
Mon Apr 8 02:41:39 PDT 2013
On 8 April 2013 10:06, Timon Gehr <timon.gehr at gmx.ch> wrote:
> On 04/08/2013 10:29 AM, Iain Buclaw wrote:
>
>> On 6 April 2013 12:09, bearophile <bearophileHUGS at lycos.com
>> <mailto:bearophileHUGS at lycos.**com <bearophileHUGS at lycos.com>>> wrote:
>>
>> I remember Walter saying two or more times that the semantics of D
>> offers some optimization opportunities that probably are not yet
>> used to try to reduce the run-time of D programs. Is Walter willing
>> to write down a list of such opportunities? (Ideas from other
>> persons are welcome). Maybe some LDC/GDC developer will make the
>> GCC/LLVM back-ends use them. The implementation of those ideas will
>> require some time, so later it's better to put the list in the D wiki.
>>
>> Bye,
>> bearophile
>>
>>
>>
>> This information could possibly be helpful. Though given that most of
>> (gdc) codegen is on par with g++, there's probably not much on the list
>> that isn't already detected by the backend optimisation passes.
>>
>>
>> --
>> Iain Buclaw
>>
>> *(p < e ? p++ : p) = (c & 0x0f) + '0';
>>
>
> Does GDC use the additional type information for optimization? Eg. if
> something is immutable, then aliasing issues do not have to be considered
> for it when reading and writing through multiple pointers repeatedly.
>
It uses some type information, eg:
const/immutable/wild -> qualified const.
shared -> qualified volatile.
shared + const/wild -> qualified const/volatile.
Done nothing in regards to C 'restrict' optimisations. However the D array
.ptr type could also be considered 'restrict' also.
--
Iain Buclaw
*(p < e ? p++ : p) = (c & 0x0f) + '0';
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20130408/eccb3f89/attachment.html>
More information about the Digitalmars-d
mailing list