OSDN Git Service

The patch introduces new way of narrowing complex (>UINT16 variants) solutions.
authorEvgeny Stupachenko <evstupac@gmail.com>
Tue, 21 Feb 2017 07:34:40 +0000 (07:34 +0000)
committerEvgeny Stupachenko <evstupac@gmail.com>
Tue, 21 Feb 2017 07:34:40 +0000 (07:34 +0000)
commit141320fd99e3293514760f7be67b87c34ef76151
tree28c51ac61095ffc5853f69be6d1da78e65b6a036
parentf80e7ef6292628bf1ff8fdd99f702d72752a807b
The patch introduces new way of narrowing complex (>UINT16 variants) solutions.
The new method introduced under "-lsr-exp-narrow" option (currenlty set to true).

Summary:

The method is based on registers number mathematical expectation and should be
 generally closer to optimal solution.
Please see details in comments to
 "LSRInstance::NarrowSearchSpaceByDeletingCostlyFormulas()" function
 (in lib/Transforms/Scalar/LoopStrengthReduce.cpp).

Reviewers: qcolombet

Differential Revision: http://reviews.llvm.org/D29862

From: Evgeny Stupachenko <evstupac@gmail.com>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295704 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/LoopStrengthReduce.cpp
test/Transforms/LoopStrengthReduce/2013-01-14-ReuseCast.ll
test/Transforms/LoopStrengthReduce/ARM/ivchain-ARM.ll