[LLVMdev] Disable loop unroll pass

Hal Finkel hfinkel at anl.gov
Wed Nov 21 13:38:19 PST 2012


----- Original Message -----
> From: "Ivan Llopard" <ivanllopard at gmail.com>
> To: "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu>
> Sent: Wednesday, November 21, 2012 10:31:07 AM
> Subject: [LLVMdev] Disable loop unroll pass
> 
> Hi,
> 
> We've a target which has hardware support for zero-overhead loops.
> Currently, we cannot detect them because the loop unroller is
> unrolling
> them before entering into the codegen. Looking at its implementation,
> it
> seems that it checks if it is profitable to unroll it or not based on
> certain parameters.
> 
> Given that zero cost loops building is based more or less on the same
> constraints that loop unroll pass, I wonder if it is reasonable to
> add
> yet another target hook to prevent loop unrolling (something like
> hasZeroOverheadLooping or hasZeroCostLooping) for targets that
> support
> zero-cost looping.

Ivan,

Please feel free to extend the ScalarTargetTransformInfo interface (in include/llvm/TargetTransformInfo.h) to provide target-customizable parameters to the loop unroller. This is on my TODO list, but if you'd like to work on this, that would be great.

Are there any cases in which loop unrolling is beneficial on your target?

 -Hal

> 
> Does Hexagon provides the same loop support? How have you addressed
> this?
> 
> Ivan
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> 

-- 
Hal Finkel
Postdoctoral Appointee
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-dev mailing list