Enable vectorization of call instructions in the loop vectorizer

James Molloy James.Molloy at arm.com
Tue Dec 17 14:53:12 PST 2013


I thought i sent this earlier but it seems not... Its mainly because IR doesn't allow metadata on function decls/definitions!

Sent from my Windows Phone
________________________________
From: Renato Golin<mailto:renato.golin at linaro.org>
Sent: ‎17/‎12/‎2013 22:06
To: Philip Reames<mailto:listmail at philipreames.com>
Cc: James Molloy<mailto:James.Molloy at arm.com>; LLVM Commits<mailto:llvm-commits at cs.uiuc.edu>
Subject: Re: RFC: Enable vectorization of call instructions in the loop vectorizer

On 17 December 2013 19:10, Philip Reames <listmail at philipreames.com<mailto:listmail at philipreames.com>> wrote:
Specifically with regards to metadata, why is the metadata on the call site not the function declaration?  I would expect that a call to "cos" would always vectorize to the same "cos4".  Is supporting different vectorizations at different points of the program a key goal?

Yes. Sometimes...

See the test in the patch for an idea of two different functions, maybe both available, maybe not.

Also, some variants could be more efficient in some cases, while some in others. This may sound vague, but OpenCL has such a large number of functions that I'd be surprised if there were only simple cases... James can give more concrete examples on where this is important.

In a strictly libc case, you may create several variants of memcpy based on the arguments (restrict or volatile, address space boundaries, etc), and apply the fastest you can on each case.

cheers,
--renato

-- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2548782
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131217/c5bc7f1b/attachment.html>


More information about the llvm-commits mailing list