Use isTerminator() instead of isBranch()||isReturn() in
authorDan Gohman <gohman@apple.com>
Tue, 23 Dec 2008 17:28:50 +0000 (17:28 +0000)
committerDan Gohman <gohman@apple.com>
Tue, 23 Dec 2008 17:28:50 +0000 (17:28 +0000)
several places. isTerminator() returns true for a superset
of cases, and includes things like FP_REG_KILL, which are
nither return or branch but aren't safe to move/remat/etc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61373 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/MachineInstr.cpp
lib/CodeGen/MachineLICM.cpp
lib/CodeGen/ScheduleDAGInstrs.cpp

index 2f026018fa3ddcfe316307c14cdc2deaf1380a1b..3825ddbb074214ab67fee645b940204f9a5c1507 100644 (file)
@@ -707,7 +707,7 @@ bool MachineInstr::isSafeToMove(const TargetInstrInfo *TII,
     SawStore = true;
     return false;
   }
-  if (TID->isReturn() || TID->isBranch() || TID->hasUnmodeledSideEffects())
+  if (TID->isTerminator() || TID->hasUnmodeledSideEffects())
     return false;
 
   // See if this instruction does a load.  If so, we have to guarantee that the
index f19862c47b2a3fb08724e5d39c315df94c35e750..d0baaa87ae1beed2d477d98721c803d098e9af08 100644 (file)
@@ -205,7 +205,7 @@ bool MachineLICM::IsLoopInvariantInst(MachineInstr &I) {
   const TargetInstrDesc &TID = I.getDesc();
   
   // Ignore stuff that we obviously can't hoist.
-  if (TID.mayStore() || TID.isCall() || TID.isReturn() || TID.isBranch() ||
+  if (TID.mayStore() || TID.isCall() || TID.isTerminator() ||
       TID.hasUnmodeledSideEffects())
     return false;
   
index c3209006b971827058384018ff15171e22967976..c47dddaf18992cdc47bca9117568258636510094 100644 (file)
@@ -275,8 +275,7 @@ void ScheduleDAGInstrs::BuildSchedUnits() {
     // after stack slots are lowered to actual addresses.
     // TODO: Use an AliasAnalysis and do real alias-analysis queries, and
     // produce more precise dependence information.
-    if (TID.isCall() || TID.isReturn() || TID.isBranch() ||
-        TID.hasUnmodeledSideEffects()) {
+    if (TID.isCall() || TID.isTerminator() || TID.hasUnmodeledSideEffects()) {
     new_chain:
       // This is the conservative case. Add dependencies on all memory
       // references.
@@ -300,7 +299,7 @@ void ScheduleDAGInstrs::BuildSchedUnits() {
       // See if it is known to just have a single memory reference.
       MachineInstr *ChainMI = Chain->getInstr();
       const TargetInstrDesc &ChainTID = ChainMI->getDesc();
-      if (!ChainTID.isCall() && !ChainTID.isReturn() && !ChainTID.isBranch() &&
+      if (!ChainTID.isCall() && !ChainTID.isTerminator() &&
           !ChainTID.hasUnmodeledSideEffects() &&
           ChainMI->hasOneMemOperand() &&
           !ChainMI->memoperands_begin()->isVolatile() &&