diff options
| author | Alkis Evlogimenos <alkis@evlogimenos.com> | 2004-07-22 15:18:10 +0000 |
|---|---|---|
| committer | Alkis Evlogimenos <alkis@evlogimenos.com> | 2004-07-22 15:18:10 +0000 |
| commit | 61546f3e5b380083fc5caba4058676d435c887fa (patch) | |
| tree | ccf054adc51eda4b32e601a11c996afcc95f1087 /llvm/lib | |
| parent | 52cff0adf03607cd00cf63d861d90b65f0283785 (diff) | |
| download | bcm5719-llvm-61546f3e5b380083fc5caba4058676d435c887fa.tar.gz bcm5719-llvm-61546f3e5b380083fc5caba4058676d435c887fa.zip | |
Sorting is now handled by both linearscan and iterative scan so live
intervals need not be sorted anymore. Removing this redundant step
improves LiveIntervals running time by 5% on 176.gcc.
llvm-svn: 15106
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/CodeGen/LiveIntervals.cpp | 10 |
1 files changed, 0 insertions, 10 deletions
diff --git a/llvm/lib/CodeGen/LiveIntervals.cpp b/llvm/lib/CodeGen/LiveIntervals.cpp index 2ef1ccae6d7..35bbf081cb0 100644 --- a/llvm/lib/CodeGen/LiveIntervals.cpp +++ b/llvm/lib/CodeGen/LiveIntervals.cpp @@ -159,7 +159,6 @@ bool LiveIntervals::runOnMachineFunction(MachineFunction &fn) { } } - intervals_.sort(); DEBUG(std::cerr << "********** INTERVALS **********\n"); DEBUG(std::copy(intervals_.begin(), intervals_.end(), std::ostream_iterator<LiveInterval>(std::cerr, "\n"))); @@ -263,15 +262,6 @@ std::vector<LiveInterval*> LiveIntervals::addIntervalsForSpills( } } - // FIXME: This method MUST return intervals in sorted order. If a - // particular machine instruction both uses and defines the vreg being - // spilled (e.g., vr = vr + 1) and if the def is processed before the - // use, the list ends up not sorted. - // - // The proper way to fix this is to process all uses of the vreg before we - // process any defs. However, this would require refactoring the above - // blob of code, which I'm not feeling up to right now. - std::sort(added.begin(), added.end(), less_ptr<LiveInterval>()); return added; } |

