Enable loop-rotate before loop-vectorize by default

Michael Zolotukhin mzolotukhin at apple.com
Tue Mar 10 12:10:50 PDT 2015


Thanks, Hal,

Committed in r231820.

Michael

> On Mar 10, 2015, at 11:28 AM, Hal Finkel <hfinkel at anl.gov> wrote:
> 
> Hi Michael,
> 
> Yes, I think this makes sense. Loops that are rotated are our canonical form regardless. Please go ahead.
> 
> -Hal
> 
> ----- Original Message -----
>> From: "Michael Zolotukhin" <mzolotukhin at apple.com>
>> To: "LLVM Commits" <llvm-commits at cs.uiuc.edu>
>> Cc: "Hal J. Finkel" <hfinkel at anl.gov>, "Chandler Carruth" <chandlerc at google.com>, "Arnold Schwaighofer"
>> <aschwaighofer at apple.com>, "Nadav Rotem" <nrotem at apple.com>
>> Sent: Tuesday, March 10, 2015 1:21:16 PM
>> Subject: Enable loop-rotate before loop-vectorize by default
>> 
>> 
>> Hi,
>> 
>> 
>> Some time ago we introduced extra-vectorizer-passes flag ([1]), which
>> enables a set of passes before and after loop-vectorizer. While some
>> of them might be arguable ([2]), the others seem to be pretty cheap
>> and beneficial: e.g. loop-rotate. Vectorizer only handles
>> rotated-loops ([3]), so running loop-rotate before it potentially
>> creates additional vectorization opportunities (and I’ve already
>> seen cases where vectorizer failed to do anything because the loop
>> was not bottoms-tested). Is it ok to enable this pass by default
>> now? The compile time change with this patch is under the noise
>> level (I measured it on SPEC2006 build with O3,PGO, and LTO).
>> 
>> [1]
>> http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20141013/239767.html
>> 
>> [2]
>> http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-October/077765.html
>> [3]
>> http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20141201/246941.html
>> 
>> 
>> Thanks,
>> Michael
> 
> -- 
> Hal Finkel
> Assistant Computational Scientist
> Leadership Computing Facility
> Argonne National Laboratory





More information about the llvm-commits mailing list