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

Issue 1858283002: Initial SIMDBC interpreter. (Closed)

Created:
4 years, 8 months ago by Vyacheslav Egorov (Google)
Modified:
4 years, 7 months ago
CC:
reviews_dartlang.org, turnidge, rmacnak, Cutch, vm-dev_dartlang.org
Base URL:
git@github.com:dart-lang/sdk.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Dart Byte Code interpreter. This version is Clang/GCC only and does not support Windows because it uses computed goto's. Only unoptimized mode is supported. Architecture is described in constants_dbc.h and stack_frame_dbc.h. R=fschneider@google.com, zra@google.com Committed: https://github.com/dart-lang/sdk/commit/ee0f608ce4d9ba35f360dfec76626ff4613eb103

Patch Set 1 #

Patch Set 2 : start cleaning up #

Patch Set 3 : more cleanup #

Patch Set 4 : cleanup #

Total comments: 56

Patch Set 5 : #

Patch Set 6 : #

Total comments: 20

Patch Set 7 : Address comments #

Total comments: 8

Patch Set 8 : commend ifdef's #

Total comments: 2

Patch Set 9 : address comments #

Total comments: 119

Patch Set 10 : #

Total comments: 18

Patch Set 11 : fix #

Patch Set 12 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+5428 lines, -145 lines) Patch
M runtime/observatory/tests/service/service.status View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +5 lines, -0 lines 0 comments Download
M runtime/platform/globals.h View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +14 lines, -0 lines 0 comments Download
M runtime/tests/vm/vm.status View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +85 lines, -1 line 0 comments Download
M runtime/vm/assembler.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -0 lines 0 comments Download
A runtime/vm/assembler_dbc.h View 1 2 3 1 chunk +197 lines, -0 lines 0 comments Download
A runtime/vm/assembler_dbc.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +142 lines, -0 lines 0 comments Download
M runtime/vm/assembler_test.cc View 1 2 3 4 5 6 7 2 chunks +3 lines, -0 lines 0 comments Download
M runtime/vm/atomic.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +6 lines, -0 lines 0 comments Download
M runtime/vm/atomic_android.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +2 lines, -2 lines 0 comments Download
M runtime/vm/atomic_linux.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +2 lines, -2 lines 0 comments Download
M runtime/vm/atomic_macos.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +2 lines, -2 lines 0 comments Download
M runtime/vm/atomic_simulator.h View 2 chunks +2 lines, -2 lines 0 comments Download
M runtime/vm/code_generator.cc View 1 2 3 4 5 6 7 8 9 10 11 6 chunks +22 lines, -2 lines 0 comments Download
A + runtime/vm/code_patcher_dbc.cc View 1 2 3 4 3 chunks +4 lines, -5 lines 0 comments Download
A runtime/vm/constants_dbc.h View 1 2 3 4 5 6 7 8 9 1 chunk +490 lines, -0 lines 0 comments Download
M runtime/vm/cpu.h View 1 chunk +2 lines, -0 lines 0 comments Download
A runtime/vm/cpu_dbc.h View 1 2 3 1 chunk +30 lines, -0 lines 0 comments Download
A runtime/vm/cpu_dbc.cc View 1 2 3 4 1 chunk +26 lines, -0 lines 0 comments Download
M runtime/vm/cpu_test.cc View 1 chunk +2 lines, -0 lines 0 comments Download
M runtime/vm/cpuinfo_test.cc View 1 2 1 chunk +2 lines, -0 lines 0 comments Download
M runtime/vm/dart_entry.h View 1 2 3 2 chunks +14 lines, -0 lines 0 comments Download
M runtime/vm/dart_entry.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +8 lines, -1 line 0 comments Download
M runtime/vm/debugger.h View 1 2 3 4 1 chunk +7 lines, -0 lines 0 comments Download
M runtime/vm/debugger.cc View 1 2 3 4 5 6 7 8 9 10 11 5 chunks +20 lines, -14 lines 0 comments Download
M runtime/vm/debugger_api_impl_test.cc View 1 2 3 4 1 chunk +5 lines, -0 lines 0 comments Download
A + runtime/vm/debugger_dbc.cc View 1 2 3 4 5 chunks +24 lines, -17 lines 0 comments Download
M runtime/vm/deopt_instructions.cc View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +5 lines, -0 lines 0 comments Download
A runtime/vm/disassembler_dbc.cc View 1 2 3 4 5 6 7 8 9 1 chunk +233 lines, -0 lines 0 comments Download
M runtime/vm/disassembler_test.cc View 1 2 3 4 5 6 7 8 9 1 chunk +3 lines, -1 line 0 comments Download
M runtime/vm/flag_list.h View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +10 lines, -4 lines 0 comments Download
M runtime/vm/flow_graph_builder.cc View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +3 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_compiler.h View 1 2 3 4 5 6 7 8 9 10 11 7 chunks +24 lines, -13 lines 0 comments Download
M runtime/vm/flow_graph_compiler.cc View 1 2 3 4 5 6 7 8 9 10 11 10 chunks +29 lines, -13 lines 0 comments Download
A runtime/vm/flow_graph_compiler_dbc.cc View 1 2 3 4 5 6 7 8 9 1 chunk +331 lines, -0 lines 0 comments Download
M runtime/vm/instructions.h View 1 chunk +2 lines, -0 lines 0 comments Download
A + runtime/vm/instructions_dbc.h View 1 2 3 4 chunks +8 lines, -11 lines 0 comments Download
A runtime/vm/instructions_dbc.cc View 1 2 3 1 chunk +177 lines, -0 lines 0 comments Download
M runtime/vm/intermediate_language.cc View 1 2 3 4 5 6 7 8 9 10 11 15 chunks +97 lines, -6 lines 0 comments Download
A runtime/vm/intermediate_language_dbc.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +704 lines, -0 lines 0 comments Download
M runtime/vm/intrinsifier.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +6 lines, -0 lines 0 comments Download
M runtime/vm/intrinsifier.cc View 1 2 3 4 5 6 7 8 9 10 11 5 chunks +22 lines, -0 lines 0 comments Download
A runtime/vm/intrinsifier_dbc.cc View 1 2 3 1 chunk +39 lines, -0 lines 0 comments Download
M runtime/vm/locations.h View 1 2 3 4 5 6 7 8 9 2 chunks +7 lines, -0 lines 0 comments Download
M runtime/vm/locations.cc View 1 2 3 4 5 6 7 2 chunks +3 lines, -1 line 0 comments Download
M runtime/vm/method_recognizer.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +1 line, -2 lines 0 comments Download
M runtime/vm/native_arguments.h View 1 2 3 4 5 6 7 4 chunks +22 lines, -3 lines 0 comments Download
M runtime/vm/native_entry.h View 1 2 3 4 5 6 7 1 chunk +3 lines, -0 lines 0 comments Download
M runtime/vm/native_entry.cc View 1 2 3 4 5 6 7 4 chunks +9 lines, -4 lines 0 comments Download
M runtime/vm/object.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +3 lines, -0 lines 0 comments Download
M runtime/vm/object.cc View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +15 lines, -1 line 0 comments Download
M runtime/vm/object_test.cc View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +7 lines, -4 lines 0 comments Download
M runtime/vm/os_android.cc View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +3 lines, -1 line 0 comments Download
M runtime/vm/os_linux.cc View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +4 lines, -2 lines 0 comments Download
M runtime/vm/precompiler.cc View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +2 lines, -0 lines 0 comments Download
M runtime/vm/profiler.cc View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +15 lines, -3 lines 0 comments Download
M runtime/vm/raw_object.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +4 lines, -0 lines 0 comments Download
M runtime/vm/raw_object_snapshot.cc View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +11 lines, -2 lines 0 comments Download
A runtime/vm/runtime_entry_dbc.cc View 1 2 3 4 5 6 7 8 9 1 chunk +29 lines, -0 lines 0 comments Download
M runtime/vm/simulator.h View 1 chunk +2 lines, -0 lines 0 comments Download
M runtime/vm/simulator_arm.h View 1 2 3 4 5 6 1 chunk +4 lines, -0 lines 0 comments Download
M runtime/vm/simulator_arm.cc View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +1 line, -2 lines 0 comments Download
M runtime/vm/simulator_arm64.h View 1 2 3 4 5 6 1 chunk +4 lines, -0 lines 0 comments Download
M runtime/vm/simulator_arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +0 lines, -1 line 0 comments Download
A runtime/vm/simulator_dbc.h View 1 2 3 4 5 6 7 8 9 1 chunk +182 lines, -0 lines 0 comments Download
A runtime/vm/simulator_dbc.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +1903 lines, -0 lines 0 comments Download
M runtime/vm/simulator_mips.h View 1 2 3 4 5 6 1 chunk +4 lines, -0 lines 0 comments Download
M runtime/vm/simulator_mips.cc View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +1 line, -2 lines 0 comments Download
M runtime/vm/stack_frame.h View 1 2 3 4 5 6 7 8 9 10 6 chunks +32 lines, -1 line 0 comments Download
M runtime/vm/stack_frame.cc View 1 2 3 4 5 6 7 8 9 10 11 7 chunks +24 lines, -0 lines 0 comments Download
A runtime/vm/stack_frame_dbc.h View 1 2 3 4 5 6 7 8 9 1 chunk +85 lines, -0 lines 0 comments Download
M runtime/vm/stub_code.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +8 lines, -1 line 0 comments Download
M runtime/vm/stub_code.cc View 1 2 3 4 5 6 7 3 chunks +25 lines, -0 lines 0 comments Download
A runtime/vm/stub_code_dbc.cc View 1 2 3 4 5 6 7 8 9 1 chunk +66 lines, -0 lines 0 comments Download
M runtime/vm/thread.h View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +29 lines, -6 lines 0 comments Download
M runtime/vm/thread.cc View 1 2 3 4 5 6 7 8 9 10 11 5 chunks +10 lines, -2 lines 0 comments Download
M runtime/vm/unit_test.h View 1 2 3 4 5 6 7 8 9 3 chunks +6 lines, -4 lines 0 comments Download
M runtime/vm/vm_sources.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 chunks +15 lines, -0 lines 0 comments Download
M tests/co19/co19-runtime.status View 1 2 3 4 5 6 7 8 9 1 chunk +5 lines, -0 lines 0 comments Download
M tests/corelib/corelib.status View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +4 lines, -1 line 0 comments Download
M tests/language/language.status View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +8 lines, -0 lines 0 comments Download
M tests/lib/lib.status View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +5 lines, -0 lines 0 comments Download
M tests/standalone/standalone.status View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +10 lines, -0 lines 0 comments Download
M tools/build.py View 5 chunks +7 lines, -5 lines 0 comments Download
M tools/gyp/configurations.gypi View 3 chunks +29 lines, -0 lines 0 comments Download
M tools/gyp/configurations_make.gypi View 1 chunk +6 lines, -0 lines 0 comments Download
M tools/testing/dart/runtime_configuration.dart View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +1 line, -0 lines 0 comments Download
M tools/testing/dart/test_options.dart View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -1 line 0 comments Download
M tools/utils.py View 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 21 (4 generated)
Vyacheslav Egorov (Google)
PTAL
4 years, 8 months ago (2016-04-08 15:20:09 UTC) #4
zra
Initial comments. Will continue next week. https://codereview.chromium.org/1858283002/diff/60001/runtime/vm/assembler_dbc.cc File runtime/vm/assembler_dbc.cc (right): https://codereview.chromium.org/1858283002/diff/60001/runtime/vm/assembler_dbc.cc#newcode105 runtime/vm/assembler_dbc.cc:105: ASSERT(!label->IsBound()); duplicate line. ...
4 years, 8 months ago (2016-04-08 22:37:35 UTC) #5
Vyacheslav Egorov (Google)
Comments addressed. New version uploaded. https://codereview.chromium.org/1858283002/diff/60001/runtime/vm/assembler_dbc.cc File runtime/vm/assembler_dbc.cc (right): https://codereview.chromium.org/1858283002/diff/60001/runtime/vm/assembler_dbc.cc#newcode105 runtime/vm/assembler_dbc.cc:105: ASSERT(!label->IsBound()); On 2016/04/08 22:37:34, ...
4 years, 8 months ago (2016-04-11 10:49:11 UTC) #6
Florian Schneider
First round of comments https://codereview.chromium.org/1858283002/diff/60001/runtime/vm/code_generator.cc File runtime/vm/code_generator.cc (right): https://codereview.chromium.org/1858283002/diff/60001/runtime/vm/code_generator.cc#newcode1302 runtime/vm/code_generator.cc:1302: uword stack_pos = Simulator::Current()->sp(); Maybe ...
4 years, 8 months ago (2016-04-12 02:29:59 UTC) #7
Vyacheslav Egorov (Google)
PTAL https://codereview.chromium.org/1858283002/diff/60001/runtime/vm/code_generator.cc File runtime/vm/code_generator.cc (right): https://codereview.chromium.org/1858283002/diff/60001/runtime/vm/code_generator.cc#newcode1302 runtime/vm/code_generator.cc:1302: uword stack_pos = Simulator::Current()->sp(); On 2016/04/12 02:29:58, Florian ...
4 years, 8 months ago (2016-04-12 09:01:22 UTC) #8
Vyacheslav Egorov (Google)
Added comments next to various ifdef's
4 years, 8 months ago (2016-04-12 17:38:42 UTC) #9
Florian Schneider
Lgtm. https://codereview.chromium.org/1858283002/diff/120001/runtime/vm/flow_graph_compiler_dbc.cc File runtime/vm/flow_graph_compiler_dbc.cc (right): https://codereview.chromium.org/1858283002/diff/120001/runtime/vm/flow_graph_compiler_dbc.cc#newcode212 runtime/vm/flow_graph_compiler_dbc.cc:212: } delete[] opt_param; delete[] opt_param_position; https://codereview.chromium.org/1858283002/diff/120001/runtime/vm/simulator_dbc.cc File runtime/vm/simulator_dbc.cc ...
4 years, 8 months ago (2016-04-12 18:01:43 UTC) #10
Vyacheslav Egorov (Google)
Thanks for the review, Florian! Comments addressed. Waiting on Zach for more comments. https://codereview.chromium.org/1858283002/diff/120001/runtime/vm/flow_graph_compiler_dbc.cc File ...
4 years, 8 months ago (2016-04-14 13:05:26 UTC) #11
Vyacheslav Egorov (Google)
Thanks for the review, Florian! Comments addressed. Waiting on Zach for more comments. https://codereview.chromium.org/1858283002/diff/120001/runtime/vm/flow_graph_compiler_dbc.cc File ...
4 years, 8 months ago (2016-04-14 13:05:27 UTC) #12
zra
There are lots if #ifdefs. I'd recommend using comments to distinguish between the following cases: ...
4 years, 8 months ago (2016-04-14 18:27:50 UTC) #13
Florian Schneider
https://codereview.chromium.org/1858283002/diff/160001/runtime/vm/flow_graph_compiler.h File runtime/vm/flow_graph_compiler.h (right): https://codereview.chromium.org/1858283002/diff/160001/runtime/vm/flow_graph_compiler.h#newcode376 runtime/vm/flow_graph_compiler.h:376: // DBC emits calls very differently from all other ...
4 years, 8 months ago (2016-04-15 01:17:28 UTC) #14
zra
https://codereview.chromium.org/1858283002/diff/160001/runtime/vm/simulator_dbc.cc File runtime/vm/simulator_dbc.cc (right): https://codereview.chromium.org/1858283002/diff/160001/runtime/vm/simulator_dbc.cc#newcode887 runtime/vm/simulator_dbc.cc:887: goto ClosureNoSuchMethodDispatch); On 2016/04/14 18:27:49, zra wrote: > No. ...
4 years, 8 months ago (2016-04-15 14:16:18 UTC) #15
Vyacheslav Egorov (Google)
Please take another look https://codereview.chromium.org/1858283002/diff/140001/runtime/vm/disassembler_dbc.cc File runtime/vm/disassembler_dbc.cc (right): https://codereview.chromium.org/1858283002/diff/140001/runtime/vm/disassembler_dbc.cc#newcode17 runtime/vm/disassembler_dbc.cc:17: BYTECODES_LIST(BYTECODE_NAME) On 2016/04/14 18:27:47, zra ...
4 years, 8 months ago (2016-04-18 15:56:44 UTC) #16
zra
lgtm with nits https://codereview.chromium.org/1858283002/diff/160001/runtime/vm/simulator_dbc.cc File runtime/vm/simulator_dbc.cc (right): https://codereview.chromium.org/1858283002/diff/160001/runtime/vm/simulator_dbc.cc#newcode70 runtime/vm/simulator_dbc.cc:70: jmp_buf buffer_; On 2016/04/18 15:56:43, Vyacheslav ...
4 years, 8 months ago (2016-04-18 16:50:14 UTC) #17
zra
https://codereview.chromium.org/1858283002/diff/160001/runtime/vm/simulator_dbc.cc File runtime/vm/simulator_dbc.cc (right): https://codereview.chromium.org/1858283002/diff/160001/runtime/vm/simulator_dbc.cc#newcode704 runtime/vm/simulator_dbc.cc:704: RawObject* Simulator::Call(const Code& code, On 2016/04/18 15:56:43, Vyacheslav Egorov ...
4 years, 8 months ago (2016-04-18 16:52:34 UTC) #18
Vyacheslav Egorov (Google)
Thanks for the review. Landing. https://codereview.chromium.org/1858283002/diff/160001/runtime/vm/simulator_dbc.cc File runtime/vm/simulator_dbc.cc (right): https://codereview.chromium.org/1858283002/diff/160001/runtime/vm/simulator_dbc.cc#newcode65 runtime/vm/simulator_dbc.cc:65: SimulatorSetjmpBuffer* link() { return ...
4 years, 8 months ago (2016-04-18 19:19:57 UTC) #19
Vyacheslav Egorov (Google)
4 years, 8 months ago (2016-04-18 21:02:07 UTC) #21
Message was sent while issue was closed.
Committed patchset #12 (id:220001) manually as
ee0f608ce4d9ba35f360dfec76626ff4613eb103.

Powered by Google App Engine
This is Rietveld 408576698