[LLVMdev] Fwd: How to force the creation of arrays with zeroes?

Chris Lattner clattner at apple.com
Sat Jan 21 16:43:27 PST 2012


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



More information about the llvm-dev mailing list