diff options
author | Chris Lattner <sabre@nondot.org> | 2004-06-18 00:29:22 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-06-18 00:29:22 +0000 |
commit | a6f9fe6dbc9c1ffd45ae999710dbafa0afae729f (patch) | |
tree | 84250dab70c6566820f46dcaa191ee63524ecd01 /lib/Target/X86/InstSelectSimple.cpp | |
parent | 6713d988a45d06f6f774af3ff2116bf9745040cd (diff) |
Fold setcc instructions into select and branches that are not in the same BB as
the setcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14212 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/InstSelectSimple.cpp')
-rw-r--r-- | lib/Target/X86/InstSelectSimple.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/lib/Target/X86/InstSelectSimple.cpp b/lib/Target/X86/InstSelectSimple.cpp index 598a979471..f49c6f5efa 100644 --- a/lib/Target/X86/InstSelectSimple.cpp +++ b/lib/Target/X86/InstSelectSimple.cpp @@ -839,16 +839,14 @@ void ISel::getAddressingMode(Value *Addr, unsigned &BaseReg, unsigned &Scale, // canFoldSetCCIntoBranchOrSelect - Return the setcc instruction if we can fold // it into the conditional branch or select instruction which is the only user // of the cc instruction. This is the case if the conditional branch is the -// only user of the setcc, and if the setcc is in the same basic block as the -// conditional branch. We also don't handle long arguments below, so we reject -// them here as well. +// only user of the setcc. We also don't handle long arguments below, so we +// reject them here as well. // static SetCondInst *canFoldSetCCIntoBranchOrSelect(Value *V) { if (SetCondInst *SCI = dyn_cast<SetCondInst>(V)) if (SCI->hasOneUse()) { Instruction *User = cast<Instruction>(SCI->use_back()); if ((isa<BranchInst>(User) || isa<SelectInst>(User)) && - SCI->getParent() == User->getParent() && (getClassB(SCI->getOperand(0)->getType()) != cLong || SCI->getOpcode() == Instruction::SetEQ || SCI->getOpcode() == Instruction::SetNE)) |