Summary: | Inline some functions Shark suggested | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Geoffrey Garen <ggaren> | ||||||||
Component: | JavaScriptCore | Assignee: | Geoffrey Garen <ggaren> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Normal | ||||||||||
Priority: | P2 | ||||||||||
Version: | 420+ | ||||||||||
Hardware: | Mac | ||||||||||
OS: | OS X 10.4 | ||||||||||
Attachments: |
|
Description
Geoffrey Garen
2006-02-21 19:49:55 PST
Created attachment 6654 [details]
patch
Created attachment 6655 [details]
patch w/formatting to match current guidelines
To keep things consistent, I only reformatted when moving a whole class or method.
Comment on attachment 6655 [details]
patch w/formatting to match current guidelines
I think that UString::operator= is exactly what hte compiler would generate, inline, if you just didn't declare the operator= at all.
This otherwise looks great, so r=me.
Geoff, does the inline version of ActivationImp::put ever actually get inlined? It is a virtual method, so it could only possibly be inlined if someone called the method scoped to a specific class name so it picks the right one directly. Otherwise it goes through the vtable and can't inline. Created attachment 6660 [details]
patch to address comments and add a few more inlines
Yes, removing operator= altogether is just as well. No, put() does not inline, nor do some other virtuals my first patch inlined. (Also explains why I couldn't get processFuncDecl to inline. That was driving me crazy.)
New patch addresses both issues and adds a few more inlines (which is why I'm asking for review again). Total speedup: 2.9%.
Comment on attachment 6660 [details]
patch to address comments and add a few more inlines
r=me
|