WebKit Bugzilla
Attachment 339900 Details for
Bug 185457
: Speed up AbstractInterpreter::executeEdges
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
the patch
blah.patch (text/plain), 3.30 KB, created by
Filip Pizlo
on 2018-05-08 16:50:28 PDT
(
hide
)
Description:
the patch
Filename:
MIME Type:
Creator:
Filip Pizlo
Created:
2018-05-08 16:50:28 PDT
Size:
3.30 KB
patch
obsolete
>Index: Source/JavaScriptCore/ChangeLog >=================================================================== >--- Source/JavaScriptCore/ChangeLog (revision 231523) >+++ Source/JavaScriptCore/ChangeLog (working copy) >@@ -1,3 +1,17 @@ >+2018-05-08 Filip Pizlo <fpizlo@apple.com> >+ >+ AbstractValue::filter should have an inline fast path >+ https://bugs.webkit.org/show_bug.cgi?id=185457 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ This adds a fast path for the most common case of filtering. >+ >+ * dfg/DFGAbstractValue.cpp: >+ (JSC::DFG::AbstractValue::filterSlow): >+ * dfg/DFGAbstractValue.h: >+ (JSC::DFG::AbstractValue::filter): >+ > 2018-05-08 Filip Pizlo <fpizlo@apple.com> > > DFG::FlowMap::resize() shouldn't resize the shadow map unless we're in SSA >Index: Source/JavaScriptCore/dfg/DFGAbstractValue.cpp >=================================================================== >--- Source/JavaScriptCore/dfg/DFGAbstractValue.cpp (revision 231522) >+++ Source/JavaScriptCore/dfg/DFGAbstractValue.cpp (working copy) >@@ -332,24 +332,8 @@ FiltrationResult AbstractValue::filterCl > return normalizeClarity(graph); > } > >-FiltrationResult AbstractValue::filter(SpeculatedType type) >+FiltrationResult AbstractValue::filterSlow(SpeculatedType type) > { >- if ((m_type & type) == m_type) >- return FiltrationOK; >- >- // Fast path for the case that we don't even have a cell. >- if (!(m_type & SpecCell)) { >- m_type &= type; >- FiltrationResult result; >- if (m_type == SpecNone) { >- clear(); >- result = Contradiction; >- } else >- result = FiltrationOK; >- checkConsistency(); >- return result; >- } >- > m_type &= type; > > // It's possible that prior to this filter() call we had, say, (Final, TOP), and >Index: Source/JavaScriptCore/dfg/DFGAbstractValue.h >=================================================================== >--- Source/JavaScriptCore/dfg/DFGAbstractValue.h (revision 231522) >+++ Source/JavaScriptCore/dfg/DFGAbstractValue.h (working copy) >@@ -312,7 +312,28 @@ struct AbstractValue { > FiltrationResult filter(Graph&, const RegisteredStructureSet&, SpeculatedType admittedTypes = SpecNone); > > FiltrationResult filterArrayModes(ArrayModes); >- FiltrationResult filter(SpeculatedType); >+ >+ ALWAYS_INLINE FiltrationResult filter(SpeculatedType type) >+ { >+ if ((m_type & type) == m_type) >+ return FiltrationOK; >+ >+ // Fast path for the case that we don't even have a cell. >+ if (!(m_type & SpecCell)) { >+ m_type &= type; >+ FiltrationResult result; >+ if (m_type == SpecNone) { >+ clear(); >+ result = Contradiction; >+ } else >+ result = FiltrationOK; >+ checkConsistency(); >+ return result; >+ } >+ >+ return filterSlow(type); >+ } >+ > FiltrationResult filterByValue(const FrozenValue& value); > FiltrationResult filter(const AbstractValue&); > FiltrationResult filterClassInfo(Graph&, const ClassInfo*); >@@ -478,6 +499,8 @@ private: > > void fastForwardToSlow(AbstractValueClobberEpoch); > >+ FiltrationResult filterSlow(SpeculatedType); >+ > void filterValueByType(); > void filterArrayModesByType(); >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
fpizlo
:
review-
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 185457
:
339900
|
339929
|
340001