aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-05-21 18:01:24 +0000
committerChris Lattner <sabre@nondot.org>2010-05-21 18:01:24 +0000
commitd3d9ee1a4dbf67cd5fc4e010abe4c45002a18587 (patch)
treea80e56ab44a762458169b98dadb5468d453f5856
parent637e07318160dec68d516e5081414f5a89302844 (diff)
downloadexternal_llvm-d3d9ee1a4dbf67cd5fc4e010abe4c45002a18587.zip
external_llvm-d3d9ee1a4dbf67cd5fc4e010abe4c45002a18587.tar.gz
external_llvm-d3d9ee1a4dbf67cd5fc4e010abe4c45002a18587.tar.bz2
use continue to reduce nesting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104330 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/X86/X86FloatingPointRegKill.cpp31
1 files changed, 17 insertions, 14 deletions
diff --git a/lib/Target/X86/X86FloatingPointRegKill.cpp b/lib/Target/X86/X86FloatingPointRegKill.cpp
index 34f45fd..97a43f2 100644
--- a/lib/Target/X86/X86FloatingPointRegKill.cpp
+++ b/lib/Target/X86/X86FloatingPointRegKill.cpp
@@ -57,22 +57,25 @@ FunctionPass *llvm::createX87FPRegKillInserterPass() {
/// stack code, and thus needs an FP_REG_KILL.
static bool ContainsFPStackCode(MachineBasicBlock *MBB, unsigned SSELevel,
MachineRegisterInfo &MRI) {
-
+ // Scan the block, looking for instructions that define fp stack vregs.
for (MachineBasicBlock::iterator I = MBB->begin(), E = MBB->end();
I != E; ++I) {
- if (I->getNumOperands() != 0 && I->getOperand(0).isReg()) {
- for (unsigned op = 0, e = I->getNumOperands(); op != e; ++op) {
- if (I->getOperand(op).isReg() && I->getOperand(op).isDef() &&
- TargetRegisterInfo::isVirtualRegister(I->getOperand(op).getReg())) {
- const TargetRegisterClass *RegClass =
- MRI.getRegClass(I->getOperand(op).getReg());
-
- if (RegClass == X86::RFP32RegisterClass ||
- RegClass == X86::RFP64RegisterClass ||
- RegClass == X86::RFP80RegisterClass)
- return true;
- }
- }
+ if (I->getNumOperands() == 0 || !I->getOperand(0).isReg())
+ continue;
+
+ for (unsigned op = 0, e = I->getNumOperands(); op != e; ++op) {
+ if (!I->getOperand(op).isReg() || !I->getOperand(op).isDef() ||
+ !TargetRegisterInfo::isVirtualRegister(I->getOperand(op).getReg()))
+ continue;
+
+ const TargetRegisterClass *RegClass =
+ MRI.getRegClass(I->getOperand(op).getReg());
+
+ switch (RegClass->getID())
+ case X86::RFP32RegClassID:
+ case X86::RFP64RegClassID:
+ case X86::RFP80RegClassID:
+ return true;
}
}