[webkit-dev] DFG optimizations
fpizlo at apple.com
Sun Mar 25 17:19:49 PDT 2012
Currently we do not have either LICM, or loop peeling, or GCSE. We do have a patch that implements LICM, but we are letting it simmer for now because under the current DFG IR, it is somewhat of a complicated beast. My main concern is just bug tail, due to the various stunts that the current LICM patch has to do to fool the DFG into moving code between basic blocks.
We're fixing that by steadily moving the DFG IR towards SSA. Once we finish that, I think we'll implement either LICM or peeling+GCSE based on whatever appears to be the simplest. We already know that LICM is a pure performance win; but on the other hand, GCSE is likely to be more generic. I tend to think that extending our current CSE framework to support some maximally-profitable subset of GCSE will not be terribly difficult.
We don't currently have PRE. It's not on my short list of optimizations to implement.
But if we wanted to go down that route, it might be interesting to consider something like Van Drunen's GVN-PRE . I have already been thinking about implementing GVN; maybe just going straight for GVN-PRE would turn out to be easy enough. But it goes without saying that GVN alone is a dead-simple optimization compared to Van Drunen's work, and, even according to his performance results, PRE is a *tiny* win over simpler redundancy elimination optimizations.
On Mar 25, 2012, at 4:59 PM, Nare Karapetyan wrote:
> There is a discussion about LICM implementation in DFG in one of previous posts.
> There it was said that the developers had not decided yet which optimization to do: LICM or loop peeling with global CSE.
> So is there any progress in this direction?
> And about CSE, does it include the partial redundancy elimination (PRE)?
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the webkit-dev