OSDN Git Service

[Loop Peeling] Enable peeling for loops with multiple exits
authorSerguei Katkov <serguei.katkov@azul.com>
Mon, 15 Jul 2019 08:26:45 +0000 (08:26 +0000)
committerSerguei Katkov <serguei.katkov@azul.com>
Mon, 15 Jul 2019 08:26:45 +0000 (08:26 +0000)
commitbd436d0c2c10ea6ebdac87c5affd9965f56c8677
tree06ffa862dcc408b2d65cc798c61ea08b0b72a54c
parent5953d94ba205bfa7d9d469a56284058d5e9a27af
[Loop Peeling] Enable peeling for loops with multiple exits

This CL enables peeling of the loop with multiple exits where
one exit should be from latch and others are basic blocks with
call to deopt.

The peeling is enabled under the flag which is false by default.

Reviewers: reames, mkuper, iajbar, fhahn
Reviewed By: reames
Subscribers: xbolva00, hiraditya, zzheng, llvm-commits
Differential Revision: https://reviews.llvm.org/D63923

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@366048 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Utils/LoopUnroll.cpp
lib/Transforms/Utils/LoopUnrollPeel.cpp
test/Transforms/LoopUnroll/peel-loop-pgo-deopt.ll [new file with mode: 0644]