Bug 85269 - DFG should be able to compute dominators
Summary: DFG should be able to compute dominators
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on: 87082
Blocks:
  Show dependency treegraph
 
Reported: 2012-05-01 00:35 PDT by Filip Pizlo
Modified: 2012-05-21 23:54 PDT (History)
1 user (show)

See Also:


Attachments
the patch (25.46 KB, patch)
2012-05-01 00:40 PDT, Filip Pizlo
oliver: 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 2012-05-01 00:35:46 PDT
This is starting to be essential because of the need to optimize create_arguments, create_activation, among others. The point is that if these opcodes appear on paths that dominate the exit, then we should hoist them and have them execute unconditionally.
Comment 1 Filip Pizlo 2012-05-01 00:40:25 PDT
Created attachment 139599 [details]
the patch
Comment 2 Oliver Hunt 2012-05-01 10:41:42 PDT
Comment on attachment 139599 [details]
the patch

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

r=me, but i'd prefer it if you made the m_array member of FastBitVector an OwnArrayPtr

> Source/WTF/wtf/FastBitVector.h:163
> +    uint32_t* m_array;

Can't you use an OwnArrayPtr here, and save the manual management of this array's lifetime?
Comment 3 Filip Pizlo 2012-05-01 15:50:21 PDT
Landed with Oliver's suggestions in http://trac.webkit.org/changeset/115754
Comment 4 Filip Pizlo 2012-05-21 17:50:37 PDT
Merged in http://trac.webkit.org/changeset/117861
Comment 5 Csaba Osztrogonác 2012-05-21 23:02:48 PDT
- It broke the 32 bit build, so I fixed it - http://trac.webkit.org/changeset/117905
- It made almost all tests crash on Qt, new bug report on it: https://bugs.webkit.org/show_bug.cgi?id=87082 - Could you check it, please?
Comment 6 Filip Pizlo 2012-05-21 23:48:26 PDT
(In reply to comment #5)
> - It broke the 32 bit build, so I fixed it - http://trac.webkit.org/changeset/117905
> - It made almost all tests crash on Qt, new bug report on it: https://bugs.webkit.org/show_bug.cgi?id=87082 - Could you check it, please?

Looking!
Comment 7 Filip Pizlo 2012-05-21 23:54:25 PDT
(In reply to comment #2)
> (From update of attachment 139599 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=139599&action=review
> 
> r=me, but i'd prefer it if you made the m_array member of FastBitVector an OwnArrayPtr
> 
> > Source/WTF/wtf/FastBitVector.h:163
> > +    uint32_t* m_array;
> 
> Can't you use an OwnArrayPtr here, and save the manual management of this array's lifetime?

No, I can't, because OwnArrayPtr uses delete[].