WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
99557
Array and object allocations via 'new Object' or 'new Array' should be inlined in bytecode to allow allocation site profiling
https://bugs.webkit.org/show_bug.cgi?id=99557
Summary
Array and object allocations via 'new Object' or 'new Array' should be inline...
Filip Pizlo
Reported
2012-10-17 00:35:57 PDT
Patch forthcoming.
Attachments
possibly the patch
(34.95 KB, patch)
2012-10-17 00:42 PDT
,
Filip Pizlo
webkit-ews
: commit-queue-
Details
Formatted Diff
Diff
the patch
(35.04 KB, patch)
2012-10-17 02:00 PDT
,
Filip Pizlo
fpizlo
: review-
Details
Formatted Diff
Diff
the patch
(37.53 KB, patch)
2012-10-17 02:33 PDT
,
Filip Pizlo
ggaren
: review+
Details
Formatted Diff
Diff
Show Obsolete
(2)
View All
Add attachment
proposed patch, testcase, etc.
Filip Pizlo
Comment 1
2012-10-17 00:42:16 PDT
Created
attachment 169110
[details]
possibly the patch
Early Warning System Bot
Comment 2
2012-10-17 00:58:10 PDT
Comment on
attachment 169110
[details]
possibly the patch
Attachment 169110
[details]
did not pass qt-ews (qt): Output:
http://queues.webkit.org/results/14397471
Build Bot
Comment 3
2012-10-17 01:03:48 PDT
Comment on
attachment 169110
[details]
possibly the patch
Attachment 169110
[details]
did not pass win-ews (win): Output:
http://queues.webkit.org/results/14386476
Gyuyoung Kim
Comment 4
2012-10-17 01:10:05 PDT
Comment on
attachment 169110
[details]
possibly the patch
Attachment 169110
[details]
did not pass efl-ews (efl): Output:
http://queues.webkit.org/results/14393501
Early Warning System Bot
Comment 5
2012-10-17 01:34:30 PDT
Comment on
attachment 169110
[details]
possibly the patch
Attachment 169110
[details]
did not pass qt-wk2-ews (qt): Output:
http://queues.webkit.org/results/14398469
Filip Pizlo
Comment 6
2012-10-17 02:00:08 PDT
Created
attachment 169125
[details]
the patch Performance neutral, appears to pass things. Now it even works on 32-bit, too.
Filip Pizlo
Comment 7
2012-10-17 02:00:42 PDT
Comment on
attachment 169125
[details]
the patch Nah, spoke too soon. Will investigate.
Filip Pizlo
Comment 8
2012-10-17 02:33:30 PDT
Created
attachment 169136
[details]
the patch I think it's good now.
Geoffrey Garen
Comment 9
2012-10-17 10:17:08 PDT
Comment on
attachment 169136
[details]
the patch View in context:
https://bugs.webkit.org/attachment.cgi?id=169136&action=review
r=me
> Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:438 > + // This passes NoExpectedFunction because we expect that if the function is in a > + // local variable, then it's not one of our built-in constructors.
Slightly more accurate to say "then we aren't able to prove that it's one of our built-in constructors".
> Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:456 > + // FIXME: Reconsider passing expectedFunction instead of NoExpectedFunction.
Are you saying we should consider *not* passing expectedFunction here? I'd suggest saying something here about why we might want to make that change. Otherwise, this comment doesn't give specific direction to another reader.
Filip Pizlo
Comment 10
2012-10-17 14:39:57 PDT
Landed in
http://trac.webkit.org/changeset/131644
Filip Pizlo
Comment 11
2012-10-17 14:42:50 PDT
(In reply to
comment #9
)
> (From update of
attachment 169136
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=169136&action=review
> > r=me > > > Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:438 > > + // This passes NoExpectedFunction because we expect that if the function is in a > > + // local variable, then it's not one of our built-in constructors. > > Slightly more accurate to say "then we aren't able to prove that it's one of our built-in constructors".
I actually think the comment is more accurate. Just because we resolved to a non-local variable called "Object" doesn't mean we proved that we have the Object constructor. Likewise, just because resolved to a local variable called "Object" doesn't mean we disproved that we have the Object constructor because people could do crazy: var x = Object; function foo() { var Object = x; return new Object(); } It's just a matter of likelihood. The above snippet is less likely than someone just using the word "Object" to signify a local variable, or at least, that's what I'm assuming in this code path.
> > > Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:456 > > + // FIXME: Reconsider passing expectedFunction instead of NoExpectedFunction. > > Are you saying we should consider *not* passing expectedFunction here? I'd suggest saying something here about why we might want to make that change. Otherwise, this comment doesn't give specific direction to another reader.
Actually this comment is just plain wrong. I've removed the comment.
Filip Pizlo
Comment 12
2012-10-17 14:48:38 PDT
(In reply to
comment #11
)
> (In reply to
comment #9
) > > (From update of
attachment 169136
[details]
[details]) > > View in context:
https://bugs.webkit.org/attachment.cgi?id=169136&action=review
> > > > r=me > > > > > Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:438 > > > + // This passes NoExpectedFunction because we expect that if the function is in a > > > + // local variable, then it's not one of our built-in constructors. > > > > Slightly more accurate to say "then we aren't able to prove that it's one of our built-in constructors". > > I actually think the comment is more accurate. Just because we resolved to a non-local variable called "Object" doesn't mean we proved that we have the Object constructor. Likewise, just because resolved to a local variable called "Object" doesn't mean we disproved that we have the Object constructor because people could do crazy: > > var x = Object; > function foo() { > var Object = x; > return new Object(); > } > > It's just a matter of likelihood. The above snippet is less likely than someone just using the word "Object" to signify a local variable, or at least, that's what I'm assuming in this code path. > > > > > > Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:456 > > > + // FIXME: Reconsider passing expectedFunction instead of NoExpectedFunction. > > > > Are you saying we should consider *not* passing expectedFunction here? I'd suggest saying something here about why we might want to make that change. Otherwise, this comment doesn't give specific direction to another reader. > > Actually this comment is just plain wrong. I've removed the comment.
Removed the comment in
http://trac.webkit.org/changeset/131646
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug