[PATCH] Loop Versioning for LICM

Adam Nemet anemet at apple.com
Tue Jun 2 22:05:04 PDT 2015


> On Jun 2, 2015, at 8:48 PM, Nema, Ashutosh <Ashutosh.Nema at amd.com> wrote:
> 
> Hi Adam,
> 
>> I think that the name of this pass is confusing.  This pass is LICM specific.  
>> It should either be called something like Speculative LICM (data-speculation 
>> of pointer independence) or Loop Versioning for LICM.
> Sure I'll change name to 'Loop Versioning for LICM'
> 
>> I am unclear why you perform LICM both as part of the pass 
>> and also afterwards.  Wouldn't the model I described in 
>> http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-May/086202.html 
>> under variant 2 work here?  Why don't we just perform the versioning 
>> here after confirming the opportunity and then let LICM perform the hoisting?
> There are couple of reasons for running this pass again.
> First it will help us to hoist checks. In some cases observed scalar evolution 
> was not updated and it's not having invariant information for versioned loop.
> Running this later to ensure, hoisting of invariants.
> But now, as suggested in loop versioning I'll run the legality & profitability 
> of LICM and make versioning decision based on it. Later when LICM runs it 
> will hoist/sink the invariants.

Great, thanks!

> 
> Regards,
> Ashutosh
> 
> -----Original Message-----
> From: Adam Nemet [mailto:anemet at apple.com] 
> Sent: Friday, May 29, 2015 5:07 AM
> To: Nema, Ashutosh; listmail at philipreames.com; anemet at apple.com; hfinkel at anl.gov
> Cc: silviu.baranga at arm.com; llvm-commits at cs.uiuc.edu
> Subject: Re: [PATCH] Loop Versioning for LICM
> 
> Hi Ashutosh,
> 
> I think that the name of this pass is confusing.  This pass is LICM specific.  It should either be called something like Speculative LICM (data-speculation of pointer independence) or Loop Versioning for LICM.
> 
> I am unclear why you perform LICM both as part of the pass and also afterwards.  Wouldn't the model I described in http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-May/086202.html under variant 2 work here?  Why don't we just perform the versioning here after confirming the opportunity and then let LICM perform the hoisting?
> 
> Adam
> 
> 
> REPOSITORY
>  rL LLVM
> 
> http://reviews.llvm.org/D9151
> 
> EMAIL PREFERENCES
>  http://reviews.llvm.org/settings/panel/emailpreferences/
> 
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list