Enable vectorization of call instructions in the loop vectorizer
aschwaighofer at apple.com
Fri Dec 20 10:45:30 PST 2013
We can put metadata in a module. Do you have a use case that requires putting it on the call instruction? You mentioned that we can’t put metadata on function declarations which indicates you don’t really require putting it on the call site. I believe putting metadata in the Module should work for you?
llvm.function.transform.info = metadata ….
On Dec 17, 2013, at 4:53 PM, James Molloy <James.Molloy at arm.com> wrote:
> 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
> Sent: 17/12/2013 22:06
> To: Philip Reames
> Cc: James Molloy; LLVM Commits
> Subject: Re: RFC: Enable vectorization of call instructions in the loop vectorizer
> On 17 December 2013 19:10, Philip Reames <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.
> -- 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
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
More information about the llvm-commits