aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-03-31 20:32:51 +0000
committerChris Lattner <sabre@nondot.org>2010-03-31 20:32:51 +0000
commit563d83ff5399060362b6a1373d42a6f166bd89a0 (patch)
tree4723f090ea72bfe85588652a1bfc40c803092995 /lib/Target
parentbbb88db993af5f30eecc3139f9bf7c703e8ad7c1 (diff)
downloadexternal_llvm-563d83ff5399060362b6a1373d42a6f166bd89a0.zip
external_llvm-563d83ff5399060362b6a1373d42a6f166bd89a0.tar.gz
external_llvm-563d83ff5399060362b6a1373d42a6f166bd89a0.tar.bz2
reduce indentation, minor cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100042 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r--lib/Target/X86/SSEDomainFix.cpp80
1 files changed, 42 insertions, 38 deletions
diff --git a/lib/Target/X86/SSEDomainFix.cpp b/lib/Target/X86/SSEDomainFix.cpp
index 540eb40..395ab57 100644
--- a/lib/Target/X86/SSEDomainFix.cpp
+++ b/lib/Target/X86/SSEDomainFix.cpp
@@ -25,7 +25,6 @@
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
-
using namespace llvm;
namespace {
@@ -67,7 +66,7 @@ public:
}
};
-/// A DomainValue is a bit like LiveIntervals' ValNo, but it laso keeps track
+/// A DomainValue is a bit like LiveIntervals' ValNo, but it also keeps track
/// of execution domains.
///
/// An open DomainValue represents a set of instructions that can still switch
@@ -168,7 +167,6 @@ private:
void visitGenericInstr(MachineInstr*);
void visitSoftInstr(MachineInstr*, unsigned mask);
void visitHardInstr(MachineInstr*, unsigned domain);
-
};
}
@@ -286,22 +284,24 @@ void SSEDomainFixPass::enterBasicBlock() {
if (fi == LiveOuts.end()) continue;
DomainValue *pdv = fi->second[rx];
if (!pdv) continue;
- if (!LiveRegs || !LiveRegs[rx])
+ if (!LiveRegs || !LiveRegs[rx]) {
SetLiveReg(rx, pdv);
- else {
- // We have a live DomainValue from more than one predecessor.
- if (LiveRegs[rx]->collapsed()) {
- // We are already collapsed, but predecessor is not. Force him.
- if (!pdv->collapsed())
- Collapse(pdv, LiveRegs[rx]->firstDomain());
- } else {
- // Currently open, merge in predecessor.
- if (!pdv->collapsed())
- Merge(LiveRegs[rx], pdv);
- else
- Collapse(LiveRegs[rx], pdv->firstDomain());
- }
+ continue;
+ }
+
+ // We have a live DomainValue from more than one predecessor.
+ if (LiveRegs[rx]->collapsed()) {
+ // We are already collapsed, but predecessor is not. Force him.
+ if (!pdv->collapsed())
+ Collapse(pdv, LiveRegs[rx]->firstDomain());
+ continue;
}
+
+ // Currently open, merge in predecessor.
+ if (!pdv->collapsed())
+ Merge(LiveRegs[rx], pdv);
+ else
+ Collapse(LiveRegs[rx], pdv->firstDomain());
}
}
}
@@ -338,21 +338,21 @@ void SSEDomainFixPass::visitSoftInstr(MachineInstr *mi, unsigned mask) {
if (LiveRegs)
for (unsigned i = mi->getDesc().getNumDefs(),
e = mi->getDesc().getNumOperands(); i != e; ++i) {
- MachineOperand &mo = mi->getOperand(i);
- if (!mo.isReg()) continue;
- int rx = RegIndex(mo.getReg());
- if (rx < 0) continue;
- if (DomainValue *dv = LiveRegs[rx]) {
- // Is it possible to use this collapsed register for free?
- if (dv->collapsed()) {
- if (unsigned m = collmask & dv->Mask)
- collmask = m;
- } else if (dv->compat(collmask))
- used.push_back(rx);
- else
- Kill(rx);
+ MachineOperand &mo = mi->getOperand(i);
+ if (!mo.isReg()) continue;
+ int rx = RegIndex(mo.getReg());
+ if (rx < 0) continue;
+ if (DomainValue *dv = LiveRegs[rx]) {
+ // Is it possible to use this collapsed register for free?
+ if (dv->collapsed()) {
+ if (unsigned m = collmask & dv->Mask)
+ collmask = m;
+ } else if (dv->compat(collmask))
+ used.push_back(rx);
+ else
+ Kill(rx);
+ }
}
- }
// If the collapsed operands force a single domain, propagate the collapse.
if (isPowerOf2_32(collmask)) {
@@ -392,13 +392,17 @@ void SSEDomainFixPass::visitSoftInstr(MachineInstr *mi, unsigned mask) {
// priority to the latest ones.
DomainValue *dv = 0;
while (!doms.empty()) {
- if (!dv)
- dv = doms.back();
- else if (!Merge(dv, doms.back()))
- for (SmallVector<int,4>::iterator i=used.begin(), e=used.end(); i!=e; ++i)
- if (LiveRegs[*i] == doms.back())
- Kill(*i);
- doms.pop_back();
+ if (!dv) {
+ dv = doms.pop_back_val();
+ continue;
+ }
+
+ DomainValue *ThisDV = doms.pop_back_val();
+ if (Merge(dv, ThisDV)) continue;
+
+ for (SmallVector<int,4>::iterator i=used.begin(), e=used.end(); i != e; ++i)
+ if (LiveRegs[*i] == ThisDV)
+ Kill(*i);
}
// dv is the DomainValue we are going to use for this instruction.