[JSC] Speed up the coalescing-related operation of the iterated register allocator
Created attachment 265530 [details] Patch
Comment on attachment 265530 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=265530&action=review r=me Is this a speedup? > Source/JavaScriptCore/b3/air/AirIteratedRegisterCoalescing.cpp:760 > + // in the vector has the "identifier" for the move. as > Source/JavaScriptCore/b3/air/AirIteratedRegisterCoalescing.cpp:781 > + struct OrderedMoveSet { Can this go in its own file? > Source/JavaScriptCore/b3/air/AirIteratedRegisterCoalescing.cpp:797 > + return m_positionInMoveList[index] != std::numeric_limits<unsigned>::max(); Let's use wtf::notFound. > Source/JavaScriptCore/b3/air/AirIteratedRegisterCoalescing.cpp:831 > + // This assertion is a bit strict but that how the move list should be used. The only kind of moves that can that is > Source/JavaScriptCore/b3/air/AirIteratedRegisterCoalescing.cpp:832 > + // return to the list are the one that we previous failed to coalesced with the conservative heuristics. the ones previously to coalesce
Created attachment 265611 [details] Patch for landing
(In reply to comment #2) > r=me > > Is this a speedup? Quite a bit, yep. Globally, it is 2%. > > Source/JavaScriptCore/b3/air/AirIteratedRegisterCoalescing.cpp:781 > > + struct OrderedMoveSet { > > Can this go in its own file? If I need a generic version, I'll make a new file. Here, OrderedMoveSet knows exactly how it is supposed to be used. IMHO, it is better to keep the code close.
Comment on attachment 265611 [details] Patch for landing Clearing flags on attachment: 265611 Committed r192492: <http://trac.webkit.org/changeset/192492>
All reviewed patches have been landed. Closing bug.
Re-opened since this is blocked by bug 151330