Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(680)

Side by Side Diff: src/IceRegAlloc.cpp

Issue 1537703002: Subzero. x8664. Resurrects the Target. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Addresses comments. Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 //===- subzero/src/IceRegAlloc.cpp - Linear-scan implementation -----------===// 1 //===- subzero/src/IceRegAlloc.cpp - Linear-scan implementation -----------===//
2 // 2 //
3 // The Subzero Code Generator 3 // The Subzero Code Generator
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 /// 9 ///
10 /// \file 10 /// \file
(...skipping 820 matching lines...) Expand 10 before | Expand all | Expand 10 after
831 831
832 // Allocate memory once outside the loop. 832 // Allocate memory once outside the loop.
833 IterationState Iter; 833 IterationState Iter;
834 Iter.Weights.reserve(NumRegisters); 834 Iter.Weights.reserve(NumRegisters);
835 Iter.PrecoloredUnhandledMask.reserve(NumRegisters); 835 Iter.PrecoloredUnhandledMask.reserve(NumRegisters);
836 836
837 while (!Unhandled.empty()) { 837 while (!Unhandled.empty()) {
838 Iter.Cur = Unhandled.back(); 838 Iter.Cur = Unhandled.back();
839 Unhandled.pop_back(); 839 Unhandled.pop_back();
840 dumpLiveRangeTrace("\nConsidering ", Iter.Cur); 840 dumpLiveRangeTrace("\nConsidering ", Iter.Cur);
841 assert(Target->getRegistersForVariable(Iter.Cur).any());
841 Iter.RegMask = RegMaskFull & Target->getRegistersForVariable(Iter.Cur); 842 Iter.RegMask = RegMaskFull & Target->getRegistersForVariable(Iter.Cur);
842 KillsRange.trim(Iter.Cur->getLiveRange().getStart()); 843 KillsRange.trim(Iter.Cur->getLiveRange().getStart());
843 844
844 // Check for pre-colored ranges. If Cur is pre-colored, it definitely gets 845 // Check for pre-colored ranges. If Cur is pre-colored, it definitely gets
845 // that register. Previously processed live ranges would have avoided that 846 // that register. Previously processed live ranges would have avoided that
846 // register due to it being pre-colored. Future processed live ranges won't 847 // register due to it being pre-colored. Future processed live ranges won't
847 // evict that register because the live range has infinite weight. 848 // evict that register because the live range has infinite weight.
848 if (Iter.Cur->hasReg()) { 849 if (Iter.Cur->hasReg()) {
849 allocatePrecoloredRegister(Iter.Cur); 850 allocatePrecoloredRegister(Iter.Cur);
850 continue; 851 continue;
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
977 Str << "\n"; 978 Str << "\n";
978 } 979 }
979 Str << "++++++ Inactive:\n"; 980 Str << "++++++ Inactive:\n";
980 for (const Variable *Item : Inactive) { 981 for (const Variable *Item : Inactive) {
981 dumpLiveRange(Item, Func); 982 dumpLiveRange(Item, Func);
982 Str << "\n"; 983 Str << "\n";
983 } 984 }
984 } 985 }
985 986
986 } // end of namespace Ice 987 } // end of namespace Ice
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698