Bug 151556 - [JSC] Speed up Air Liveness Analysis on Tmps
Summary: [JSC] Speed up Air Liveness Analysis on Tmps
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Benjamin Poulain
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-11-22 17:05 PST by Benjamin Poulain
Modified: 2015-11-30 18:27 PST (History)
9 users (show)

See Also:


Attachments
Patch (53.20 KB, patch)
2015-11-22 17:34 PST, Benjamin Poulain
no flags Details | Formatted Diff | Diff
Patch (68.13 KB, patch)
2015-11-30 17:42 PST, Benjamin Poulain
fpizlo: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Benjamin Poulain 2015-11-22 17:05:10 PST
[JSC] Speed up Air Liveness Analysis on Tmps
Comment 1 Benjamin Poulain 2015-11-22 17:34:24 PST
Created attachment 266074 [details]
Patch
Comment 2 WebKit Commit Bot 2015-11-22 17:35:35 PST
Attachment 266074 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/air/AirReportUsedRegisters.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/b3/air/AirTmpLiveness.h:53:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirTmpLiveness.h:197:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirTmpLiveness.h:206:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirTmpLiveness.h:216:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 5 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Filip Pizlo 2015-11-29 18:24:15 PST
Why not do the optimization in Air::Liveness and make it also work for StackSlots?  Those also have indices.
Comment 4 Benjamin Poulain 2015-11-29 22:03:10 PST
(In reply to comment #3)
> Why not do the optimization in Air::Liveness and make it also work for
> StackSlots?  Those also have indices.

But they don't have types right? The way things are split in TmpLiveness is how it is best consumed by the allocator.

I may use the absolute indices directly in the future too.
Comment 5 Filip Pizlo 2015-11-30 08:32:51 PST
(In reply to comment #4)
> (In reply to comment #3)
> > Why not do the optimization in Air::Liveness and make it also work for
> > StackSlots?  Those also have indices.
> 
> But they don't have types right? The way things are split in TmpLiveness is
> how it is best consumed by the allocator.
> 
> I may use the absolute indices directly in the future too.

But you could have Liveness take a traits or adaptor or something as a template argument that produces an index given a value of vice-versa. For temps, you'd have two versions of the adapter - one for FP and one for GP.
Comment 6 Benjamin Poulain 2015-11-30 17:42:11 PST
Created attachment 266309 [details]
Patch
Comment 7 WebKit Commit Bot 2015-11-30 17:44:56 PST
Attachment 266309 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/air/AirLiveness.h:92:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirLiveness.h:218:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirLiveness.h:225:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirLiveness.h:234:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 4 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 8 Filip Pizlo 2015-11-30 18:08:55 PST
Comment on attachment 266309 [details]
Patch

R=me assuming you also fix the bug you found in the extra early clobbers.
Comment 9 Benjamin Poulain 2015-11-30 18:27:07 PST
Committed r192851: <http://trac.webkit.org/changeset/192851>