On Thu, 2011-07-28 at 13:52 +0200, Florian Schneider wrote: > After this change I observed a spike in compilation time for certain > large functions. > > > I didn't expect that, but it seems the additional allocation of Range > objects hurts performance considerably. > > > I think it makes sense to assign NULL instead of a new Range object > for instructions that don't have a representation (e.g. all HCheck > instructions)
Hum, unfortunate. Sorry I didn't catch it earlier. Agreed regarding NULL range objects; but, I was under the (evidently mistaken) impression that InferRange would not be called for values with None representation. It is only called from ComputeInitialRange(), and that is only called from HRangeAnalysis::InferRange within a block to check for None representation, and in AddNewRange() -- but the details are a bit unclear to me. Probably the best thing to do is to revert this patch, unless you are particularly interested in the issue. If you do that, please pass along a test case so I can have a look at it. Thanks for the review, Andy -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
