[PATCH] Break dependencies in large loops containing reductions (LoopVectorize)

Nadav Rotem nrotem at apple.com
Thu Feb 19 10:23:04 PST 2015


Olivier, I don’t really understand this heuristics. It looks like you are adding lots of code to handle a very specific case and I am not convinced that this heuristics is useful for the general case. 

Following Hal’s suggestion to benchmark this patch is a really good idea.  Do you know how it affects the LLVM test suite?  Are you seeing any gains or regressions?


> On Feb 19, 2015, at 10:11 AM, Olivier Sallenave <ohsallen at us.ibm.com> wrote:
> 
> This patch unrolls large loops containing reductions. The cost function discussed here was implemented. Added enableAggressiveFMAFusion to TTI to fine-tune the heuristics.
> 
> 
> http://reviews.llvm.org/D7514
> 
> Files:
>  include/llvm/Analysis/TargetTransformInfo.h
>  include/llvm/Analysis/TargetTransformInfoImpl.h
>  include/llvm/CodeGen/BasicTTIImpl.h
>  include/llvm/Target/TargetLowering.h
>  lib/Analysis/TargetTransformInfo.cpp
>  lib/CodeGen/SelectionDAG/DAGCombiner.cpp
>  lib/Target/NVPTX/NVPTXISelLowering.h
>  lib/Target/PowerPC/PPCISelLowering.cpp
>  lib/Target/PowerPC/PPCISelLowering.h
>  lib/Transforms/Vectorize/LoopVectorize.cpp
>  test/Transforms/LoopVectorize/PowerPC/large-loop-rdx.ll
> 
> EMAIL PREFERENCES
>  http://reviews.llvm.org/settings/panel/emailpreferences/
> <D7514.20312.patch>





More information about the llvm-commits mailing list