[LLVMdev] Fwd: How to force the creation of arrays with zeroes?
Stepan Dyatkovskiy
STPWORLD at narod.ru
Sat Jan 21 23:50:05 PST 2012
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