Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(27)

Issue 1997653002: [interpreter] Bytecode register optimizer. (Closed)

Created:
4 years, 7 months ago by oth
Modified:
4 years, 6 months ago
CC:
v8-reviews_googlegroups.com, rmcilroy, Michael Hablich
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[interpreter] Bytecode register optimizer. Online optimization stage for reducing redundant transfers between registers. BUG=V8:4280 LOG=N Committed: https://crrev.com/5e8f8d4e8c36536167e36ea242b9d17e2edeaa48 Cr-Commit-Position: refs/heads/master@{#36551}

Patch Set 1 #

Patch Set 2 : . #

Patch Set 3 : Rebase. #

Patch Set 4 : Remove extra lines from test-interpreter.cc that got inserted at a point this file needed more modiā€¦ #

Patch Set 5 : Try harder with source positions. #

Total comments: 13

Patch Set 6 : Fix statement position elisions that were due to legacy peephole optimizer behaviour reproduction. #

Patch Set 7 : Rebase on oth-0056-register-only. #

Patch Set 8 : Rebase #

Patch Set 9 : Rebase and add comments. #

Patch Set 10 : Additional comment. #

Total comments: 1

Patch Set 11 : Grammar. #

Total comments: 53

Patch Set 12 : Incorporate review comments from rmcilroy on patch set 11. #

Patch Set 13 : Remove stray file. #

Total comments: 4

Patch Set 14 : Rebase. #

Patch Set 15 : Rebase and fix stale DCHECK in BytecodeRegisterInfo::RegisterInfo::AddToEquivalenceSetOf. #

Patch Set 16 : Fix breakage introduced in patch set 12 around emitting obserable stores. #

Patch Set 17 : Minor tweaks for perf. #

Patch Set 18 : Start of unit tests. #

Patch Set 19 : Rebase #

Patch Set 20 : Additional unit tests. #

Patch Set 21 : Decouple a test from implementation. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+5591 lines, -6621 lines) Patch
M BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +2 lines, -0 lines 0 comments Download
M src/flag-definitions.h View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M src/frames.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -0 lines 0 comments Download
M src/interpreter/bytecode-array-builder.cc View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +6 lines, -0 lines 0 comments Download
M src/interpreter/bytecode-array-writer.cc View 1 chunk +3 lines, -1 line 0 comments Download
M src/interpreter/bytecode-pipeline.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +6 lines, -0 lines 0 comments Download
M src/interpreter/bytecode-pipeline.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +11 lines, -0 lines 0 comments Download
M src/interpreter/bytecode-register-allocator.h View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +11 lines, -0 lines 0 comments Download
M src/interpreter/bytecode-register-allocator.cc View 7 chunks +11 lines, -5 lines 0 comments Download
A src/interpreter/bytecode-register-optimizer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +149 lines, -0 lines 0 comments Download
A src/interpreter/bytecode-register-optimizer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +603 lines, -0 lines 0 comments Download
M src/interpreter/bytecode-traits.h View 8 chunks +14 lines, -19 lines 0 comments Download
M src/interpreter/bytecodes.h View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +12 lines, -2 lines 0 comments Download
M src/interpreter/bytecodes.cc View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +45 lines, -2 lines 0 comments Download
M src/v8.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +2 lines, -0 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +8 lines, -12 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/AssignmentsInBinaryExpression.golden View 1 2 3 4 5 6 7 8 9 10 11 5 chunks +16 lines, -21 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/BasicBlockToBoolean.golden View 1 2 3 4 5 6 3 chunks +15 lines, -21 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/BasicLoops.golden View 1 2 3 4 5 6 7 8 24 chunks +171 lines, -268 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/BreakableBlocks.golden View 1 2 3 4 5 6 6 chunks +19 lines, -27 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden View 1 chunk +3 lines, -3 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/CallRuntime.golden View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +3 lines, -5 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/ClassAndSuperClass.golden View 1 2 3 4 5 6 7 8 9 10 11 7 chunks +26 lines, -32 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden View 1 2 3 4 5 6 7 8 9 10 11 9 chunks +8 lines, -11 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/CompoundExpressions.golden View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +15 lines, -17 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/ConstVariable.golden View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +5 lines, -6 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/ContextVariables.golden View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +2 lines, -3 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/CountOperators.golden View 1 2 3 4 5 6 7 8 7 chunks +18 lines, -23 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/CreateArguments.golden View 1 2 3 4 5 6 7 8 8 chunks +16 lines, -18 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/CreateRestParameter.golden View 1 2 3 4 5 6 7 8 9 10 11 5 chunks +16 lines, -21 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/Delete.golden View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +9 lines, -12 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/DoExpression.golden View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +6 lines, -6 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/Eval.golden View 1 chunk +3 lines, -3 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/ForIn.golden View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +43 lines, -52 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/ForOf.golden View 1 2 3 4 5 6 7 8 9 10 11 20 chunks +161 lines, -296 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/Generators.golden View 1 2 3 4 5 6 7 8 9 10 11 23 chunks +40 lines, -47 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/IfConditions.golden View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 7 chunks +294 lines, -308 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/JumpsRequiringConstantWideOperands.golden View 1 2 3 4 5 6 3 chunks +10 lines, -16 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/LetVariable.golden View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +5 lines, -6 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/LoadGlobal.golden View 1 2 3 4 5 6 7 8 1 chunk +258 lines, -386 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/LogicalExpressions.golden View 1 2 3 4 5 6 8 chunks +21 lines, -27 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/LookupSlot.golden View 3 chunks +9 lines, -9 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/NewTarget.golden View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +4 lines, -6 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden View 1 2 3 4 5 6 7 8 9 10 11 18 chunks +24 lines, -27 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/OuterContextVariables.golden View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +6 lines, -9 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/PrimitiveExpressions.golden View 1 2 3 4 5 6 7 8 11 chunks +44 lines, -55 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/PropertyCall.golden View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +282 lines, -413 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/PropertyLoads.golden View 1 2 3 4 5 6 7 8 9 10 11 7 chunks +799 lines, -806 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/PropertyStores.golden View 1 2 3 4 5 6 7 8 11 chunks +1329 lines, -2635 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/RemoveRedundantLdar.golden View 1 2 3 4 5 6 7 8 3 chunks +17 lines, -22 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/StoreGlobal.golden View 1 2 3 4 5 6 7 8 2 chunks +516 lines, -772 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/Switch.golden View 1 2 3 4 5 6 8 chunks +49 lines, -52 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/ThisFunction.golden View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +4 lines, -6 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/TopLevelObjectLiterals.golden View 1 2 3 4 5 6 7 8 2 chunks +2 lines, -3 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/TryCatch.golden View 5 chunks +8 lines, -11 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/TryFinally.golden View 7 chunks +11 lines, -14 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/UnaryOperators.golden View 1 2 3 4 5 6 7 8 9 10 11 8 chunks +32 lines, -43 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/WideRegisters.golden View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 9 chunks +46 lines, -55 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/WithStatement.golden View 1 chunk +2 lines, -3 lines 0 comments Download
M test/cctest/interpreter/test-interpreter.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 31 chunks +31 lines, -0 lines 0 comments Download
M test/unittests/interpreter/bytecode-array-builder-unittest.cc View 1 2 3 4 5 6 7 chunks +20 lines, -2 lines 0 comments Download
M test/unittests/interpreter/bytecode-array-iterator-unittest.cc View 1 2 3 4 5 6 7 8 2 chunks +10 lines, -0 lines 0 comments Download
A test/unittests/interpreter/bytecode-register-optimizer-unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +246 lines, -0 lines 0 comments Download
M test/unittests/interpreter/bytecodes-unittest.cc View 2 chunks +29 lines, -1 line 0 comments Download
M test/unittests/unittests.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +2 lines, -1 line 0 comments Download

Messages

Total messages: 15 (5 generated)
Yang
Found a bunch of issues in the changed .golden files. You could argue whether they ...
4 years, 7 months ago (2016-05-20 08:00:55 UTC) #2
oth
Thanks Yang, this is super helpful. Comments inline regarding matching FCG behavior. I'll fix the ...
4 years, 7 months ago (2016-05-20 09:01:05 UTC) #3
oth
Ross, PTAL. Michi/Yang, if you are interested, your comments will help. Per the meeting today, ...
4 years, 7 months ago (2016-05-25 14:18:51 UTC) #5
rmcilroy
Very nice, I like it! Some nits but overall I think it's looking good. https://codereview.chromium.org/1997653002/diff/200001/src/interpreter/bytecode-register-allocator.h ...
4 years, 7 months ago (2016-05-26 10:24:54 UTC) #6
oth
Thanks Ross. I've attempted to incorporate, or respond, to everything in the comments. There's a ...
4 years, 7 months ago (2016-05-26 21:26:51 UTC) #7
rmcilroy
It would be nice to have some simple unittest of the register optimizer before landing ...
4 years, 6 months ago (2016-05-27 09:18:58 UTC) #8
oth
Michi/Yang, we're going to try landing this to start collecting impact data. If you have ...
4 years, 6 months ago (2016-05-27 15:23:41 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1997653002/400001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1997653002/400001
4 years, 6 months ago (2016-05-27 15:24:31 UTC) #12
commit-bot: I haz the power
Committed patchset #21 (id:400001)
4 years, 6 months ago (2016-05-27 15:57:47 UTC) #13
commit-bot: I haz the power
4 years, 6 months ago (2016-05-27 15:59:28 UTC) #15
Message was sent while issue was closed.
Patchset 21 (id:??) landed as
https://crrev.com/5e8f8d4e8c36536167e36ea242b9d17e2edeaa48
Cr-Commit-Position: refs/heads/master@{#36551}

Powered by Google App Engine
This is Rietveld 408576698