Bug 133751 - [ftlopt] DFG get_by_id should inline chain accesses with a slightly polymorphic base
Summary: [ftlopt] DFG get_by_id should inline chain accesses with a slightly polymorph...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Filip Pizlo
URL:
Keywords:
Depends on:
Blocks: 133229
  Show dependency treegraph
 
Reported: 2014-06-11 11:01 PDT by Filip Pizlo
Modified: 2014-06-12 10:43 PDT (History)
7 users (show)

See Also:


Attachments
proposed patch (22.73 KB, patch)
2014-06-11 17:44 PDT, Filip Pizlo
mhahnenberg: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Filip Pizlo 2014-06-11 11:01:30 PDT
Patch forthcoming
Comment 1 Filip Pizlo 2014-06-11 17:44:10 PDT
Created attachment 232924 [details]
proposed patch

Not yet ready for review because I'm still testing performance
Comment 2 Filip Pizlo 2014-06-11 19:52:58 PDT
Comment on attachment 232924 [details]
proposed patch

The performance is good.
Comment 3 Oliver Hunt 2014-06-12 10:15:33 PDT
Comment on attachment 232924 [details]
proposed patch

View in context: https://bugs.webkit.org/attachment.cgi?id=232924&action=review

> Source/JavaScriptCore/bytecode/GetByIdVariant.cpp:56
> +    if (!!m_chain != !!other.m_chain)

!m_chain != !other.m_chain is a bit clearer and logically equivalent.

> Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:312
> -        if (!chain->isNormalized())
> +        if (structure->isProxy() || !chain->isNormalized())

Does this belong in this patch?
Comment 4 Filip Pizlo 2014-06-12 10:21:44 PDT
(In reply to comment #3)
> (From update of attachment 232924 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=232924&action=review
> 
> > Source/JavaScriptCore/bytecode/GetByIdVariant.cpp:56
> > +    if (!!m_chain != !!other.m_chain)
> 
> !m_chain != !other.m_chain is a bit clearer and logically equivalent.
> 
> > Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:312
> > -        if (!chain->isNormalized())
> > +        if (structure->isProxy() || !chain->isNormalized())
> 
> Does this belong in this patch?

Yes.
Comment 5 Mark Hahnenberg 2014-06-12 10:36:03 PDT
Comment on attachment 232924 [details]
proposed patch

r=me
Comment 6 Filip Pizlo 2014-06-12 10:43:57 PDT
Landed in http://trac.webkit.org/changeset/169902