From: Brian Gaeke Date: Sun, 12 Dec 2004 06:01:26 +0000 (+0000) Subject: Add stubs for setcc-branch folding support. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=6a8c46cde3bb3a982a8a928ebae8d21d0aba32a1;p=oota-llvm.git Add stubs for setcc-branch folding support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18818 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/Sparc/SparcV8ISelSimple.cpp b/lib/Target/Sparc/SparcV8ISelSimple.cpp index 5959c47afdf..68bc28a0f32 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 5959c47afdf..68bc28a0f32 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);