From d3014edc51af0751e7f05180e9f48162433fb4ba Mon Sep 17 00:00:00 2001 From: Alkis Evlogimenos Date: Thu, 22 Jul 2004 15:18:10 +0000 Subject: [PATCH] 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15106 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/LiveIntervalAnalysis.cpp | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/lib/CodeGen/LiveIntervalAnalysis.cpp b/lib/CodeGen/LiveIntervalAnalysis.cpp index 2ef1ccae6d7..35bbf081cb0 100644 --- a/lib/CodeGen/LiveIntervalAnalysis.cpp +++ b/lib/CodeGen/LiveIntervalAnalysis.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(std::cerr, "\n"))); @@ -263,15 +262,6 @@ std::vector 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()); return added; }