Re-apply my liveintervalanalysis changes. Now with PR1207 fixes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34428 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng
2007-02-19 21:49:54 +00:00
parent d1b2c5b34d
commit b371f457b0
23 changed files with 334 additions and 104 deletions
+10 -3
View File
@@ -138,11 +138,18 @@ public:
/// is an error to add the same register to the same set more than once.
void addLiveIn(unsigned Reg) { LiveIns.push_back(Reg); }
/// removeLiveIn - Remove the specified register from the live in set.
///
void removeLiveIn(unsigned Reg);
// Iteration support for live in sets. These sets are kept in sorted
// order by their register number.
typedef std::vector<unsigned>::const_iterator livein_iterator;
livein_iterator livein_begin() const { return LiveIns.begin(); }
livein_iterator livein_end() const { return LiveIns.end(); }
typedef std::vector<unsigned>::iterator livein_iterator;
typedef std::vector<unsigned>::const_iterator const_livein_iterator;
livein_iterator livein_begin() { return LiveIns.begin(); }
const_livein_iterator livein_begin() const { return LiveIns.begin(); }
livein_iterator livein_end() { return LiveIns.end(); }
const_livein_iterator livein_end() const { return LiveIns.end(); }
bool livein_empty() const { return LiveIns.empty(); }
// Code Layout methods.