Summary: | B3::reduceStrength's DCE should be more agro and less wrong | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Filip Pizlo <fpizlo> | ||||||||||||||
Component: | JavaScriptCore | Assignee: | Filip Pizlo <fpizlo> | ||||||||||||||
Status: | RESOLVED FIXED | ||||||||||||||||
Severity: | Normal | CC: | barraclough, benjamin, cmarcelo, commit-queue, ggaren, mark.lam, mhahnenb, msaboff, nrotem, oliver, saam, sam | ||||||||||||||
Priority: | P2 | ||||||||||||||||
Version: | WebKit Nightly Build | ||||||||||||||||
Hardware: | All | ||||||||||||||||
OS: | All | ||||||||||||||||
Bug Depends on: | |||||||||||||||||
Bug Blocks: | 150507 | ||||||||||||||||
Attachments: |
|
Description
Filip Pizlo
2015-10-30 19:10:42 PDT
Created attachment 264460 [details]
the patch
Created attachment 264461 [details]
the patch
Comment on attachment 264461 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=264461&action=review r=me You're right, writing this kind of DCE is super easy with that data structure. > Source/JavaScriptCore/ChangeLog:3 > + B3::reduceStrength's DCE should be more agro When I read agro I can't help but think of "agriculture" > Source/JavaScriptCore/ChangeLog:7 > + It's worth adding a description here. Created attachment 264479 [details]
the patch
Revised patch, with bug fix.
Comment on attachment 264479 [details]
the patch
Never mind, it's still broken.
Created attachment 264487 [details]
work in progress
To really get a feeling for the bug, I had to use my work-in-progress "complex test" that I'm going to use to compare compile times to LLVM. So, I think this changeset should just include that.
Created attachment 264490 [details]
the patch
Attachment 264490 [details] did not pass style-queue:
ERROR: Source/JavaScriptCore/b3/air/AirInstInlines.h:59: Place brace on its own line for function definitions. [whitespace/braces] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:29: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:30: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:34: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:35: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:36: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:38: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:43: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:45: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:46: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:48: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:50: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:52: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:63: bitwise_cast is incorrectly named. Don't use underscores in your identifier names. [readability/naming/underscores] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:98: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:210: Should have a space between // and comment [whitespace/comments] [4]
Total errors found: 16 in 16 files
If any of these errors are false positives, please file a bug against check-webkit-style.
*** Bug 150751 has been marked as a duplicate of this bug. *** Created attachment 264491 [details]
the patch
Attachment 264491 [details] did not pass style-queue:
ERROR: Source/JavaScriptCore/b3/air/AirInstInlines.h:59: Place brace on its own line for function definitions. [whitespace/braces] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:29: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:30: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:34: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:35: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:36: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:38: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:43: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:45: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:46: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:48: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:50: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:52: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:63: bitwise_cast is incorrectly named. Don't use underscores in your identifier names. [readability/naming/underscores] [4]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:98: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3]
ERROR: Tools/ReducedFTL/ComplexTest.cpp:210: Should have a space between // and comment [whitespace/comments] [4]
Total errors found: 16 in 28 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 264491 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=264491&action=review r=me > Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:339 > + // Can only shift by ecx, so we do some swapping of we see anything else. of => if > Source/JavaScriptCore/runtime/Options.h:340 > + v(bool, measurePhaseTimings, false, nullptr) \ How about "logB3PhaseTimes" or "useB3TimeLogging"? "Phase" alone doesn't provide context. (In reply to comment #12) > Comment on attachment 264491 [details] > the patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=264491&action=review > > r=me > > > Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:339 > > + // Can only shift by ecx, so we do some swapping of we see anything else. > > of => if Fixed! > > > Source/JavaScriptCore/runtime/Options.h:340 > > + v(bool, measurePhaseTimings, false, nullptr) \ > > How about "logB3PhaseTimes" or "useB3TimeLogging"? > > "Phase" alone doesn't provide context. I used logB3PhaseTimes. Landed in http://trac.webkit.org/changeset/191865 |