[LLVMdev] Fwd: How to force the creation of arrays with zeroes?
Chris Lattner
clattner at apple.com
Sun Jan 22 00:50:37 PST 2012
Hi Stephan,
I've been thinking about this a bit and have some more specific ideas, I'll write up a design and maybe implement it over the next few days.
-Chris
On Jan 21, 2012, at 11:50 PM, Stepan Dyatkovskiy <STPWORLD at narod.ru> wrote:
> Hi Chris. The main question is how to implement ConstantAggregateXXXXX::getOperand? Should it be empty collection, or it must return the item aggregated?
>
> -Stepan.
>
> 22.01.2012, 04:43, "Chris Lattner" <clattner at apple.com>:
>> Yep check out PR1324. Doing something like this would be a great improvement.
>>
>> -Chris
>>
>> On Jan 21, 2012, at 9:42 AM, Duncan Sands <baldrick at free.fr> wrote:
>>
>>> Hi Anton, in a solution without CAZ, isNullValue can just return true when it
>>> sees the special "this ConstantArray is all zero" flag. So all the places that
>>> now look for CAZ can just use isNullValue instead and there need be no
>>> performance loss. That said, CAZ is more "in your force" so less likely to be
>>> forgotten about. Another interesting possibility is to handle more than just
>>> all zero values: if a constant array has many repeated elements, maybe the
>>> array could be stored in a compressed form. An all zeros array would just be a
>>> special case of this.
>>>
>>> Ciao, Duncan.
>>>
>>> On 21/01/12 18:13, Anton Korobeynikov wrote:
>>>> Sorry, forgot to reply-all
>>>>
>>>> ---------- Forwarded message ----------
>>>> From: Anton Korobeynikov<anton at korobeynikov.info>
>>>> Date: Sat, Jan 21, 2012 at 20:59
>>>> Subject: Re: [LLVMdev] How to force the creation of arrays with zeroes?
>>>> To: Stepan Dyatkovskiy<STPWORLD at narod.ru>
>>>>> Though, there is also cases when we really need to transform it to 10,000 zeroes (just look at CBackend.cpp, when we print constant arrays, string #1027). There is also cases when we need to get either operand[i] or zero (SCCP.cpp, str #413). Both for CBackend and for SCCP we can reduce code size keeping performance on the same level.
>>>> In these 2 particular cases the changes of the code size can
>>>> definitely be neglected. Even more, in SCCP the use of CAZ is a
>>>> performance win, since we do not have to check at all operands are
>>>> zero, we already (!) know this.
>>>>
>>>> --
>>>> With best regards, Anton Korobeynikov
>>>> Faculty of Mathematics and Mechanics, Saint Petersburg State University
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list