[LoopUnroll] allow customization for new-pass-manager version of LoopUnroll
authorFedor Sergeev <fedor.sergeev@azul.com>
Wed, 31 Oct 2018 14:33:14 +0000 (14:33 +0000)
committerFedor Sergeev <fedor.sergeev@azul.com>
Wed, 31 Oct 2018 14:33:14 +0000 (14:33 +0000)
commit412ed34744d45dae98e5d2eea8f96993d48b7b79
tree07cac71fdd208017a6b5d77ac211337f5967c501
parent1cd9917edf8493883092e4d24961f8b629a428c3
[LoopUnroll] allow customization for new-pass-manager version of LoopUnroll

Unlike its legacy counterpart new pass manager's LoopUnrollPass does
not provide any means to select which flavors of unroll to run
(runtime, peeling, partial), relying on global defaults.

In some cases having ability to run a restricted LoopUnroll that
does more than LoopFullUnroll is needed.

Introduced LoopUnrollOptions to select optional unroll behaviors.
Added 'unroll<peeling>' to PassRegistry mainly for the sake of testing.

Reviewers: chandlerc, tejohnson
Differential Revision: https://reviews.llvm.org/D53440

llvm-svn: 345723
llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h
llvm/lib/Passes/PassBuilder.cpp
llvm/lib/Passes/PassRegistry.def
llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
llvm/test/Transforms/LoopUnroll/peel-loop.ll
llvm/test/Transforms/LoopUnroll/runtime-loop.ll