Don't waste time unfolding simple loads. The unfolded copy won't be hoisted.
[oota-llvm.git] / lib / CodeGen / MachineLICM.cpp
index 32b7e00ce660ac50b6629189722c56601e171ddb..b996d916076650f87a25089b46c0492340873eaf 100644 (file)
@@ -636,6 +636,10 @@ bool MachineLICM::IsProfitableToHoist(MachineInstr &MI) {
 }
 
 MachineInstr *MachineLICM::ExtractHoistableLoad(MachineInstr *MI) {
+  // Don't unfold simple loads.
+  if (MI->getDesc().canFoldAsLoad())
+    return 0;
+
   // If not, we may be able to unfold a load and hoist that.
   // First test whether the instruction is loading from an amenable
   // memory location.