Add (currently disabled) code for canFoldSetCC
authorBrian Gaeke <gaeke@uiuc.edu>
Sun, 12 Dec 2004 06:22:30 +0000 (06:22 +0000)
committerBrian Gaeke <gaeke@uiuc.edu>
Sun, 12 Dec 2004 06:22:30 +0000 (06:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18820 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Sparc/SparcV8ISelSimple.cpp
lib/Target/SparcV8/SparcV8ISelSimple.cpp

index 68bc28a0f32b6457c4919c10fa311e827bfe6d92..c93ced515edf5d474dd450936b78d16d992748dd 100644 (file)
@@ -1016,6 +1016,16 @@ static inline BasicBlock *getBlockAfter(BasicBlock *BB) {
 ///
 static SetCondInst *canFoldSetCCIntoBranch(Value *V) {
   return 0; // disable.
+  if (SetCondInst *SCI = dyn_cast<SetCondInst>(V))
+    if (SCI->hasOneUse()) {
+      BranchInst *User = dyn_cast<BranchInst>(SCI->use_back());
+      if (User
+          && (SCI->getNext() == User)
+          && (getClassB(SCI->getOperand(0)->getType()) != cLong)
+          && User->isConditional() && (User->getCondition() == V))
+        return SCI;
+    }
+  return 0;
 }
 
 /// visitBranchInst - Handles conditional and unconditional branches.
index 68bc28a0f32b6457c4919c10fa311e827bfe6d92..c93ced515edf5d474dd450936b78d16d992748dd 100644 (file)
@@ -1016,6 +1016,16 @@ static inline BasicBlock *getBlockAfter(BasicBlock *BB) {
 ///
 static SetCondInst *canFoldSetCCIntoBranch(Value *V) {
   return 0; // disable.
+  if (SetCondInst *SCI = dyn_cast<SetCondInst>(V))
+    if (SCI->hasOneUse()) {
+      BranchInst *User = dyn_cast<BranchInst>(SCI->use_back());
+      if (User
+          && (SCI->getNext() == User)
+          && (getClassB(SCI->getOperand(0)->getType()) != cLong)
+          && User->isConditional() && (User->getCondition() == V))
+        return SCI;
+    }
+  return 0;
 }
 
 /// visitBranchInst - Handles conditional and unconditional branches.