When merging one use into another, transfer the offsets from

the old use to the new one.

llvm-svn: 116008
This commit is contained in:
Dan Gohman 2010-10-07 23:36:45 +00:00
parent 4fb38d3cd3
commit 8e72611058
1 changed files with 8 additions and 0 deletions

View File

@ -3035,6 +3035,14 @@ void LSRInstance::NarrowSearchSpaceByCollapsingUnrolledCode() {
if (Fixup.LUIdx == LUIdx) {
Fixup.LUIdx = LUThatHas - &Uses.front();
Fixup.Offset += F.AM.BaseOffs;
// Add the new offset to LUThatHas' offset list.
if (LUThatHas->Offsets.back() != Fixup.Offset) {
LUThatHas->Offsets.push_back(Fixup.Offset);
if (Fixup.Offset > LUThatHas->MaxOffset)
LUThatHas->MaxOffset = Fixup.Offset;
if (Fixup.Offset < LUThatHas->MinOffset)
LUThatHas->MinOffset = Fixup.Offset;
}
DEBUG(dbgs() << "New fixup has offset "
<< Fixup.Offset << '\n');
}