Fix a logic error that caused non-rematable loop invariants loads to be licm'ed out of loop.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83622 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng
2009-10-09 06:21:52 +00:00
parent 6ee62f8126
commit 3dc326ba83
2 changed files with 265 additions and 2 deletions
+1 -2
View File
@@ -326,8 +326,7 @@ bool MachineLICM::IsProfitableToHoist(MachineInstr &MI) {
// FIXME: For now, only hoist re-materilizable instructions. LICM will
// increase register pressure. We want to make sure it doesn't increase
// spilling.
if (!TID.mayLoad() && (!TID.isRematerializable() ||
!TII->isTriviallyReMaterializable(&MI)))
if (!TID.isRematerializable() || !TII->isTriviallyReMaterializable(&MI))
return false;
// If result(s) of this instruction is used by PHIs, then don't hoist it.