[llvm-dev] RFC: Memcpy inlining in IR

Amara Emerson via llvm-dev llvm-dev at lists.llvm.org
Thu Jun 20 15:48:13 PDT 2019


I agree that this should be a very late pass. Doing it in the IR would simplify the implementation in GlobalISel, but it would also allow us to perhaps have one shared expansion/optimization pass between both SDISel and GISel.

Volkan may look at upstreaming a partial implementation he has downstream.

Cheers,
Amara

> On Jun 20, 2019, at 3:22 AM, Sjoerd Meijer <Sjoerd.Meijer at arm.com> wrote:
> 
> Looks like there are a lot of opinions where memcpy expansion/inlining needs to happen: (late) IR, or if it is a backend problem, see also for example https://reviews.llvm.org/D35035 <https://reviews.llvm.org/D35035>. Complicating factor here is that efficient memcpy lowering is crucial for performance and code-size (and they occur a lot).
> 
> Either way, I agree that the TLI hooks are not SelectionDAG specific, they can be used in an IR lowering pass.
> 
> Cheers,
> Sjoerd.
> 
> From: llvm-dev <llvm-dev-bounces at lists.llvm.org> on behalf of Roman Lebedev via llvm-dev <llvm-dev at lists.llvm.org>
> Sent: 20 June 2019 08:04
> To: Amara Emerson
> Cc: llvm-dev
> Subject: Re: [llvm-dev] RFC: Memcpy inlining in IR
>  
> On Thu, Jun 20, 2019 at 6:42 AM Amara Emerson via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
> >
> > Hi all,
> >
> > For GlobalISel, we’re exploring options for implementing inlining optimizations for memcpy and friends. However, looking around the existing implementation, I don’t see anything that would particularly be problematic for us to do it at the IR level.
> >
> > The existing TLI hooks to specify how certain memcpy calls should be lowered doesn’t have anything too SelectionDAG specific, and an IR lowering pass could be shared in future between SDAG and GISel. Does anyone see issues with this?
> Sounds similar to https://reviews.llvm.org/D60318 <https://reviews.llvm.org/D60318>
> It should be done *really* late in the middle-end pipeline though.
> 
> > Thanks,
> > Amara
> Roman.
> 
> > _______________________________________________
> > LLVM Developers mailing list
> > llvm-dev at lists.llvm.org
> > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
> 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.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190620/639d0be3/attachment.html>


More information about the llvm-dev mailing list