WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
181545
Move ExitProfile to UnlinkedCodeBlock so it can be shared amongst CodeBlocks backed by the same UnlinkedCodeBlock
https://bugs.webkit.org/show_bug.cgi?id=181545
Summary
Move ExitProfile to UnlinkedCodeBlock so it can be shared amongst CodeBlocks ...
Saam Barati
Reported
2018-01-11 11:11:49 PST
This will follow the theme of putting other optimization information on UnlinkedCodeBlock. This allows the unlinked code cache to remember OSR exit data. Obviously this can make some programs worse: if the same exact code is run in a different way. However, it's probably a solid heuristic in practice, since the same code tends to run in similar ways, and do similar things. Doing this appears to be a 1% speedup on Speedometer.
Attachments
WIP
(25.02 KB, patch)
2018-01-11 18:21 PST
,
Saam Barati
no flags
Details
Formatted Diff
Diff
patch
(27.91 KB, patch)
2018-01-12 14:41 PST
,
Saam Barati
no flags
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Saam Barati
Comment 1
2018-01-11 18:21:03 PST
Created
attachment 331152
[details]
WIP
EWS Watchlist
Comment 2
2018-01-11 18:23:35 PST
Attachment 331152
[details]
did not pass style-queue: ERROR: Source/JavaScriptCore/bytecode/DFGExitProfile.h:178: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/bytecode/DFGExitProfile.h:179: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/bytecode/DFGExitProfile.h:181: Should have a space between // and comment [whitespace/comments] [4] Total errors found: 3 in 15 files If any of these errors are false positives, please file a bug against check-webkit-style.
Saam Barati
Comment 3
2018-01-12 14:41:26 PST
Created
attachment 331236
[details]
patch
Michael Saboff
Comment 4
2018-01-12 14:46:01 PST
Comment on
attachment 331236
[details]
patch r=me
WebKit Commit Bot
Comment 5
2018-01-12 16:36:42 PST
Comment on
attachment 331236
[details]
patch Clearing flags on attachment: 331236 Committed
r226928
: <
https://trac.webkit.org/changeset/226928
>
WebKit Commit Bot
Comment 6
2018-01-12 16:36:43 PST
All reviewed patches have been landed. Closing bug.
Radar WebKit Bug Importer
Comment 7
2018-01-12 16:37:18 PST
<
rdar://problem/36486548
>
Saam Barati
Comment 8
2018-01-14 11:41:14 PST
This broke the CLOOP build. Fixing now.
Saam Barati
Comment 9
2018-01-14 11:44:00 PST
(In reply to Saam Barati from
comment #8
)
> This broke the CLOOP build. Fixing now.
Fixed CLOOP build in:
https://trac.webkit.org/changeset/226942/webkit
Filip Pizlo
Comment 10
2018-04-29 16:44:54 PDT
Comment on
attachment 331236
[details]
patch View in context:
https://bugs.webkit.org/attachment.cgi?id=331236&action=review
> Source/JavaScriptCore/dfg/DFGLICMPhase.cpp:284 > - && m_graph.baselineCodeBlockFor(originalOrigin.semantic)->hasExitSite(FrequentExitSite(HoistingFailed))) { > + && m_graph.hasExitSite(originalOrigin.semantic, HoistingFailed)) {
This introduced a licm-dragons regression because you should have called hasGlobalExitSite.
Saam Barati
Comment 11
2018-04-29 21:06:52 PDT
Comment on
attachment 331236
[details]
patch View in context:
https://bugs.webkit.org/attachment.cgi?id=331236&action=review
B
>> Source/JavaScriptCore/dfg/DFGLICMPhase.cpp:284 >> + && m_graph.hasExitSite(originalOrigin.semantic, HoistingFailed)) { > > This introduced a licm-dragons regression because you should have called hasGlobalExitSite.
How is this different than what was here before?
Filip Pizlo
Comment 12
2018-04-29 23:28:37 PDT
(In reply to Saam Barati from
comment #11
)
> Comment on
attachment 331236
[details]
> patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=331236&action=review
> > B > > >> Source/JavaScriptCore/dfg/DFGLICMPhase.cpp:284 > >> + && m_graph.hasExitSite(originalOrigin.semantic, HoistingFailed)) { > > > > This introduced a licm-dragons regression because you should have called hasGlobalExitSite. > > How is this different than what was here before?
Global exit sites don’t store the bytecode index.
Saam Barati
Comment 13
2018-04-30 09:18:47 PDT
(In reply to Filip Pizlo from
comment #12
)
> (In reply to Saam Barati from
comment #11
) > > Comment on
attachment 331236
[details]
> > patch > > > > View in context: > >
https://bugs.webkit.org/attachment.cgi?id=331236&action=review
> > > > B > > > > >> Source/JavaScriptCore/dfg/DFGLICMPhase.cpp:284 > > >> + && m_graph.hasExitSite(originalOrigin.semantic, HoistingFailed)) { > > > > > > This introduced a licm-dragons regression because you should have called hasGlobalExitSite. > > > > How is this different than what was here before? > > Global exit sites don’t store the bytecode index.
I understand that. But the code wasn’t using global exit site before my change either...
Saam Barati
Comment 14
2018-04-30 09:19:33 PDT
(In reply to Saam Barati from
comment #13
)
> (In reply to Filip Pizlo from
comment #12
) > > (In reply to Saam Barati from
comment #11
) > > > Comment on
attachment 331236
[details]
> > > patch > > > > > > View in context: > > >
https://bugs.webkit.org/attachment.cgi?id=331236&action=review
> > > > > > B > > > > > > >> Source/JavaScriptCore/dfg/DFGLICMPhase.cpp:284 > > > >> + && m_graph.hasExitSite(originalOrigin.semantic, HoistingFailed)) { > > > > > > > > This introduced a licm-dragons regression because you should have called hasGlobalExitSite. > > > > > > How is this different than what was here before? > > > > Global exit sites don’t store the bytecode index. > > I understand that. But the code wasn’t using global exit site before my > change either...
Oh wait. Yeah it was. I see
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