diff options
author | Brian Gaeke <gaeke@uiuc.edu> | 2004-12-12 06:01:26 +0000 |
---|---|---|
committer | Brian Gaeke <gaeke@uiuc.edu> | 2004-12-12 06:01:26 +0000 |
commit | 6a8c46cde3bb3a982a8a928ebae8d21d0aba32a1 (patch) | |
tree | 9b6a5c0a62fae0c35c1e9124f1b86bcfdaf0ce23 | |
parent | 96a86b2993c03be1de934b2c4e10ed08dbacfe0a (diff) |
Add stubs for setcc-branch folding support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18818 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/Sparc/SparcV8ISelSimple.cpp | 11 | ||||
-rw-r--r-- | lib/Target/SparcV8/SparcV8ISelSimple.cpp | 11 |
2 files changed, 22 insertions, 0 deletions
diff --git a/lib/Target/Sparc/SparcV8ISelSimple.cpp b/lib/Target/Sparc/SparcV8ISelSimple.cpp index 5959c47afd..68bc28a0f3 100644 --- a/lib/Target/Sparc/SparcV8ISelSimple.cpp +++ b/lib/Target/Sparc/SparcV8ISelSimple.cpp @@ -1010,6 +1010,14 @@ static inline BasicBlock *getBlockAfter(BasicBlock *BB) { return I != BB->getParent()->end() ? &*I : 0; } +/// canFoldSetCCIntoBranch - Return the setcc instruction if we can fold it +/// into the conditional branch which is the only user of the cc instruction. +/// This is the case if the conditional branch is the only user of the setcc. +/// +static SetCondInst *canFoldSetCCIntoBranch(Value *V) { + return 0; // disable. +} + /// visitBranchInst - Handles conditional and unconditional branches. /// void V8ISel::visitBranchInst(BranchInst &I) { @@ -1480,6 +1488,9 @@ void V8ISel::visitBinaryOperator (Instruction &I) { } void V8ISel::visitSetCondInst(SetCondInst &I) { + if (canFoldSetCCIntoBranch(&I)) + return; // Fold this into a branch. + unsigned Op0Reg = getReg (I.getOperand (0)); unsigned Op1Reg = getReg (I.getOperand (1)); unsigned DestReg = getReg (I); diff --git a/lib/Target/SparcV8/SparcV8ISelSimple.cpp b/lib/Target/SparcV8/SparcV8ISelSimple.cpp index 5959c47afd..68bc28a0f3 100644 --- a/lib/Target/SparcV8/SparcV8ISelSimple.cpp +++ b/lib/Target/SparcV8/SparcV8ISelSimple.cpp @@ -1010,6 +1010,14 @@ static inline BasicBlock *getBlockAfter(BasicBlock *BB) { return I != BB->getParent()->end() ? &*I : 0; } +/// canFoldSetCCIntoBranch - Return the setcc instruction if we can fold it +/// into the conditional branch which is the only user of the cc instruction. +/// This is the case if the conditional branch is the only user of the setcc. +/// +static SetCondInst *canFoldSetCCIntoBranch(Value *V) { + return 0; // disable. +} + /// visitBranchInst - Handles conditional and unconditional branches. /// void V8ISel::visitBranchInst(BranchInst &I) { @@ -1480,6 +1488,9 @@ void V8ISel::visitBinaryOperator (Instruction &I) { } void V8ISel::visitSetCondInst(SetCondInst &I) { + if (canFoldSetCCIntoBranch(&I)) + return; // Fold this into a branch. + unsigned Op0Reg = getReg (I.getOperand (0)); unsigned Op1Reg = getReg (I.getOperand (1)); unsigned DestReg = getReg (I); |