Don't waste time unfolding simple loads. The unfolded copy won't be hoisted.
authorEvan Cheng <evan.cheng@apple.com>
Fri, 8 Oct 2010 18:59:19 +0000 (18:59 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Fri, 8 Oct 2010 18:59:19 +0000 (18:59 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116081 91177308-0d34-0410-b5e6-96231b3b80d8

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.