diff options
author | Brian Gaeke <gaeke@uiuc.edu> | 2004-12-12 06:22:30 +0000 |
---|---|---|
committer | Brian Gaeke <gaeke@uiuc.edu> | 2004-12-12 06:22:30 +0000 |
commit | 81cf150b5d3fa565eb661ba6878a8b0c32d2e048 (patch) | |
tree | 03251cfa2ded00c335b327320de94d617b000772 /lib/Target/Sparc | |
parent | 077f1a82923fee977569df5f2bd4ba914e6ee22e (diff) |
Add (currently disabled) code for canFoldSetCC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18820 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Sparc')
-rw-r--r-- | lib/Target/Sparc/SparcV8ISelSimple.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/Target/Sparc/SparcV8ISelSimple.cpp b/lib/Target/Sparc/SparcV8ISelSimple.cpp index 68bc28a0f3..c93ced515e 100644 --- a/lib/Target/Sparc/SparcV8ISelSimple.cpp +++ b/lib/Target/Sparc/SparcV8ISelSimple.cpp @@ -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. |