aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/CodeGen/MachineRegisterInfo.h
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-08-09 23:31:36 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-08-09 23:31:36 +0000
commit1134aae4e743290da2ad29a7ac76d3a1f9dcfce8 (patch)
tree05569eb1e6e4b27731f81088a79f4290d3cf4ac5 /include/llvm/CodeGen/MachineRegisterInfo.h
parent81a6995243380668e6f991fa4e11dd0a6e37e030 (diff)
downloadexternal_llvm-1134aae4e743290da2ad29a7ac76d3a1f9dcfce8.zip
external_llvm-1134aae4e743290da2ad29a7ac76d3a1f9dcfce8.tar.gz
external_llvm-1134aae4e743290da2ad29a7ac76d3a1f9dcfce8.tar.bz2
Revert r161633-161634 "Partition use lists so defs always come before uses."
These commits broke a number of buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161640 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/MachineRegisterInfo.h')
-rw-r--r--include/llvm/CodeGen/MachineRegisterInfo.h23
1 files changed, 9 insertions, 14 deletions
diff --git a/include/llvm/CodeGen/MachineRegisterInfo.h b/include/llvm/CodeGen/MachineRegisterInfo.h
index 42a8aa4..0fac1a8 100644
--- a/include/llvm/CodeGen/MachineRegisterInfo.h
+++ b/include/llvm/CodeGen/MachineRegisterInfo.h
@@ -468,6 +468,10 @@ public:
const TargetRegisterInfo &TRI,
const TargetInstrInfo &TII);
+private:
+ void HandleVRegListReallocation();
+
+public:
/// defusechain_iterator - This class provides iterator support for machine
/// operands in the function that use or define a specific register. If
/// ReturnUses is true it returns uses of registers, if ReturnDefs is true it
@@ -513,20 +517,11 @@ public:
assert(Op && "Cannot increment end iterator!");
Op = getNextOperandForReg(Op);
- // All defs come before the uses, so stop def_iterator early.
- if (!ReturnUses) {
- if (Op) {
- if (Op->isUse())
- Op = 0;
- else
- assert(!Op->isDebug() && "Can't have debug defs");
- }
- } else {
- // If this is an operand we don't care about, skip it.
- while (Op && ((!ReturnDefs && Op->isDef()) ||
- (SkipDebug && Op->isDebug())))
- Op = getNextOperandForReg(Op);
- }
+ // If this is an operand we don't care about, skip it.
+ while (Op && ((!ReturnUses && Op->isUse()) ||
+ (!ReturnDefs && Op->isDef()) ||
+ (SkipDebug && Op->isDebug())))
+ Op = getNextOperandForReg(Op);
return *this;
}