LGTM. On Fri, Sep 19, 2008 at 12:28 PM, <[EMAIL PROTECTED]> wrote: > Reviewers: Kasper Lund, Mads Ager, > > Message: > I'm not sure, this is a toss up. We can see what the bots say... > > Description: > TryFlatten is inlined, while Flatten is not. Make an optimization to > avoid the call to Flatten when we're already flat. This gives me 5% on > some simple indexOf experiments. > > Please review this at http://codereview.chromium.org/2986 > > Affected files: > M src/objects-inl.h > > > Index: src/objects-inl.h > diff --git a/src/objects-inl.h b/src/objects-inl.h > index > 271dd7ebf9432da075cf63dc716172efc1c29197..8fec4d1630e6a7c478eff0ebb3956805fb51ca7f > 100644 > --- a/src/objects-inl.h > +++ b/src/objects-inl.h > @@ -1198,7 +1198,11 @@ void String::set_length_field(int value) { > > > void String::TryFlatten() { > - Flatten(); > + // We don't need to flatten strings that are already flat. Since this > code > + // is inlined, it can be helpful in the flat case to not call out to > Flatten. > + StringRepresentationTag str_type = representation_tag(); > + if (str_type != kSeqStringTag && str_type != kExternalStringTag) > + Flatten(); > } > > > > >
--~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
