[Webkit-unassigned] [Bug 79899] DFG BasicBlocks should not require that their nodes have contiguous indices in the graph
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Feb 29 19:42:24 PST 2012
https://bugs.webkit.org/show_bug.cgi?id=79899
Filip Pizlo <fpizlo at apple.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #129614|review? |review-
Flag| |
--- Comment #6 from Filip Pizlo <fpizlo at apple.com> 2012-02-29 19:42:24 PST ---
(From update of attachment 129614)
View in context: https://bugs.webkit.org/attachment.cgi?id=129614&action=review
This is really awesome. R- but only because I want to make sure we do CSE right.
> Source/JavaScriptCore/dfg/DFGCSEPhase.cpp:720
>
> void performBlockCSE(BasicBlock& block)
> {
> - m_start = block.begin;
> - NodeIndex end = block.end;
> - for (m_compileIndex = m_start; m_compileIndex < end; ++m_compileIndex)
> + m_start = block[block.startExcludingPhis];
> + for (unsigned i = block.startExcludingPhis; i < block.size(); ++i) {
> + m_compileIndex = block[i];
> performNodeCSE(m_graph[m_compileIndex]);
> + }
> }
>
> NodeIndex m_start;
I'm somewhat surprised that these are the only changes in CSE! CSE has this whole performance hack where it uses the NodeIndex of the instruction that is a candidate for elimination, and the NodeIndices of its children, to determine the range that it will search.
Seems like that relies on NodeIndices of things in a basic block being monotonically increasing.
Would be better to instead make all of the search things instead break early when they encounter a NodeIndex at block[i] that matches the NodeIndex in one of the children of the node from which the search originated.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list