Fix LSR best register search algorithm.

Summary:
Fix a case when first register in a search has maximum
RegUses.getUsedByIndices(Reg).count()

Reviewers: qcolombet

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

From: Evgeny Stupachenko <evstupac@gmail.com>
llvm-svn: 288278
This commit is contained in:
Evgeny Stupachenko 2016-11-30 22:23:51 +00:00
parent c52fe2961c
commit 0c4300fac7
1 changed files with 3 additions and 2 deletions

View File

@ -4178,9 +4178,10 @@ void LSRInstance::NarrowSearchSpaceByPickingWinnerRegs() {
for (const SCEV *Reg : RegUses) {
if (Taken.count(Reg))
continue;
if (!Best)
if (!Best) {
Best = Reg;
else {
BestNum = RegUses.getUsedByIndices(Reg).count();
} else {
unsigned Count = RegUses.getUsedByIndices(Reg).count();
if (Count > BestNum) {
Best = Reg;