// version of DCE that preserves lifetime markers. Without it, merging
// of stack objects can fail to recognize and merge disjoint objects
// leading to unnecessary stack growth.
- removeDeadCode(MDT->getRootNode());
+ Changed = removeDeadCode(MDT->getRootNode());
const HexagonEvaluator HE(*HRI, *MRI, *HII, MF);
BitTracker BTLoc(HE, MF);
}
if (IFMap.empty())
- return false;
+ return Changed;
{
NamedRegionTimer _T("pruning", "hexinsert", TimingDetail);
}
if (IFMap.empty())
- return false;
+ return Changed;
{
NamedRegionTimer _T("selection", "hexinsert", TimingDetail);
for (unsigned i = 0, n = Out.size(); i < n; ++i)
IFMap.erase(Out[i]);
}
+ if (IFMap.empty())
+ return Changed;
{
NamedRegionTimer _T("generation", "hexinsert", TimingDetail);
- Changed = generateInserts();
+ generateInserts();
}
- return Changed;
+ return true;
}