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

Issue 678763004: Make CTX allocatable by the register allocator. (Closed)

Created:
6 years, 1 month ago by Florian Schneider
Modified:
6 years, 1 month ago
CC:
reviews_dartlang.org, vm-dev_dartlang.org, Ivan Posva, hausner, turnidge
Visibility:
Public.

Description

Make CTX allocatable by the register allocator. This change makes CTX available by not caching the current context while in Dart code. Instead the current context is held in a local variable (:saved_current_context_var) and is passed as argument in CTX at calls. This also simplifies a lot of code in the debugger: As a result, Isolate::top_context is not needed anymore since the current context can always be extracted from a Dart frame. R=vegorov@google.com Committed: https://code.google.com/p/dart/source/detail?r=41422

Patch Set 1 #

Patch Set 2 : #

Total comments: 30

Patch Set 3 : #

Patch Set 4 : all platforms #

Patch Set 5 : #

Total comments: 8

Patch Set 6 : #

Patch Set 7 : incorporated latest comments #

Total comments: 6
Unified diffs Side-by-side diffs Delta from patch set Stats (+753 lines, -1283 lines) Patch
M runtime/lib/mirrors.cc View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/code_descriptors_test.cc View 1 2 3 4 5 6 3 chunks +7 lines, -16 lines 0 comments Download
M runtime/vm/compiler.cc View 1 2 3 4 5 6 1 chunk +3 lines, -2 lines 0 comments Download
M runtime/vm/dart_api_impl.cc View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/dart_entry.h View 1 2 3 3 chunks +2 lines, -11 lines 0 comments Download
M runtime/vm/dart_entry.cc View 1 2 3 5 chunks +6 lines, -18 lines 0 comments Download
M runtime/vm/debugger.h View 1 2 3 3 chunks +1 line, -5 lines 0 comments Download
M runtime/vm/debugger.cc View 1 2 3 4 5 6 9 chunks +23 lines, -105 lines 2 comments Download
M runtime/vm/exceptions.cc View 1 2 3 1 chunk +0 lines, -7 lines 0 comments Download
M runtime/vm/flow_graph.h View 1 2 3 4 chunks +16 lines, -1 line 0 comments Download
M runtime/vm/flow_graph.cc View 1 2 3 13 chunks +42 lines, -16 lines 0 comments Download
M runtime/vm/flow_graph_allocator.h View 1 2 3 1 chunk +3 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_allocator.cc View 1 2 3 4 3 chunks +18 lines, -1 line 0 comments Download
M runtime/vm/flow_graph_builder.h View 1 2 3 1 chunk +3 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_builder.cc View 1 2 3 4 5 27 chunks +101 lines, -110 lines 0 comments Download
M runtime/vm/flow_graph_compiler.cc View 1 2 3 4 4 chunks +3 lines, -4 lines 0 comments Download
M runtime/vm/flow_graph_compiler_arm.cc View 1 2 3 1 chunk +28 lines, -3 lines 2 comments Download
M runtime/vm/flow_graph_compiler_arm64.cc View 1 2 3 1 chunk +28 lines, -3 lines 0 comments Download
M runtime/vm/flow_graph_compiler_ia32.cc View 1 2 3 1 chunk +38 lines, -5 lines 0 comments Download
M runtime/vm/flow_graph_compiler_mips.cc View 1 2 3 1 chunk +28 lines, -3 lines 0 comments Download
M runtime/vm/flow_graph_compiler_x64.cc View 1 2 3 4 1 chunk +36 lines, -3 lines 0 comments Download
M runtime/vm/flow_graph_inliner.cc View 1 2 3 2 chunks +28 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.cc View 1 2 3 9 chunks +2 lines, -35 lines 0 comments Download
M runtime/vm/flow_graph_type_propagator.cc View 1 2 3 1 chunk +3 lines, -3 lines 2 comments Download
M runtime/vm/il_printer.cc View 1 2 3 4 chunks +4 lines, -4 lines 0 comments Download
M runtime/vm/intermediate_language.h View 1 2 3 4 chunks +2 lines, -28 lines 0 comments Download
M runtime/vm/intermediate_language.cc View 1 2 3 5 chunks +9 lines, -27 lines 0 comments Download
M runtime/vm/intermediate_language_arm.cc View 1 2 3 4 chunks +4 lines, -16 lines 0 comments Download
M runtime/vm/intermediate_language_arm64.cc View 1 2 3 4 chunks +4 lines, -16 lines 0 comments Download
M runtime/vm/intermediate_language_ia32.cc View 1 2 3 5 chunks +7 lines, -18 lines 0 comments Download
M runtime/vm/intermediate_language_mips.cc View 1 2 3 4 chunks +4 lines, -16 lines 0 comments Download
M runtime/vm/intermediate_language_x64.cc View 1 2 3 4 chunks +5 lines, -16 lines 0 comments Download
M runtime/vm/isolate.h View 1 2 3 2 chunks +0 lines, -7 lines 0 comments Download
M runtime/vm/isolate.cc View 1 2 3 3 chunks +0 lines, -5 lines 0 comments Download
M runtime/vm/native_arguments.h View 1 2 3 1 chunk +3 lines, -1 line 0 comments Download
M runtime/vm/object.h View 1 2 3 1 chunk +2 lines, -3 lines 0 comments Download
M runtime/vm/object.cc View 1 2 3 3 chunks +2 lines, -8 lines 0 comments Download
M runtime/vm/parser.h View 1 2 3 4 5 6 6 chunks +11 lines, -13 lines 0 comments Download
M runtime/vm/parser.cc View 1 2 3 4 5 6 4 chunks +3 lines, -21 lines 0 comments Download
M runtime/vm/parser_test.cc View 1 2 3 6 chunks +83 lines, -48 lines 0 comments Download
M runtime/vm/scopes.cc View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/stack_frame.h View 1 2 3 1 chunk +0 lines, -2 lines 0 comments Download
M runtime/vm/stack_frame.cc View 1 2 3 1 chunk +0 lines, -6 lines 0 comments Download
M runtime/vm/stack_frame_arm.h View 1 2 3 1 chunk +1 line, -3 lines 0 comments Download
M runtime/vm/stack_frame_arm64.h View 1 2 3 1 chunk +1 line, -3 lines 0 comments Download
M runtime/vm/stack_frame_ia32.h View 1 2 3 1 chunk +0 lines, -2 lines 0 comments Download
M runtime/vm/stack_frame_mips.h View 1 2 3 1 chunk +1 line, -3 lines 0 comments Download
M runtime/vm/stack_frame_x64.h View 1 2 3 1 chunk +2 lines, -6 lines 0 comments Download
M runtime/vm/stub_code_arm.cc View 1 2 3 17 chunks +36 lines, -101 lines 0 comments Download
M runtime/vm/stub_code_arm64.cc View 1 2 3 15 chunks +33 lines, -121 lines 0 comments Download
M runtime/vm/stub_code_arm64_test.cc View 1 2 3 4 5 1 chunk +0 lines, -2 lines 0 comments Download
M runtime/vm/stub_code_arm_test.cc View 1 2 3 4 5 1 chunk +0 lines, -2 lines 0 comments Download
M runtime/vm/stub_code_ia32.cc View 1 2 3 16 chunks +35 lines, -168 lines 0 comments Download
M runtime/vm/stub_code_ia32_test.cc View 1 2 3 4 5 1 chunk +0 lines, -2 lines 0 comments Download
M runtime/vm/stub_code_mips.cc View 1 2 3 16 chunks +44 lines, -121 lines 0 comments Download
M runtime/vm/stub_code_mips_test.cc View 1 2 3 4 5 1 chunk +0 lines, -2 lines 0 comments Download
M runtime/vm/stub_code_x64.cc View 1 2 3 17 chunks +31 lines, -120 lines 0 comments Download
M runtime/vm/stub_code_x64_test.cc View 1 2 3 4 5 1 chunk +0 lines, -2 lines 0 comments Download
M runtime/vm/symbols.h View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/unit_test.h View 1 2 3 1 chunk +0 lines, -2 lines 0 comments Download
M runtime/vm/unit_test.cc View 1 2 3 4 5 6 2 chunks +3 lines, -13 lines 0 comments Download

Messages

Total messages: 12 (2 generated)
Florian Schneider
Ready for review (ia32 only for now). I will start porting once we agreed on ...
6 years, 1 month ago (2014-10-27 14:34:30 UTC) #2
Florian Schneider
Simplified further so that there is no need to pass a context in a register ...
6 years, 1 month ago (2014-10-28 12:13:11 UTC) #3
Vyacheslav Egorov (Google)
overall I think it is shaping good, some initial comments. https://codereview.chromium.org/678763004/diff/20001/runtime/vm/flow_graph.cc File runtime/vm/flow_graph.cc (right): https://codereview.chromium.org/678763004/diff/20001/runtime/vm/flow_graph.cc#newcode471 ...
6 years, 1 month ago (2014-10-28 13:44:58 UTC) #4
Florian Schneider
Addressed comments. I will start porting to the other platforms now. https://codereview.chromium.org/678763004/diff/20001/runtime/vm/flow_graph.cc File runtime/vm/flow_graph.cc (right): ...
6 years, 1 month ago (2014-10-28 19:04:31 UTC) #5
Florian Schneider
Ptal. Ported to all platforms.
6 years, 1 month ago (2014-10-29 15:14:33 UTC) #6
hausner
DBCs https://codereview.chromium.org/678763004/diff/80001/runtime/vm/debugger.cc File runtime/vm/debugger.cc (right): https://codereview.chromium.org/678763004/diff/80001/runtime/vm/debugger.cc#newcode474 runtime/vm/debugger.cc:474: const Object& context = Object::Handle(GetLocalVar(var_info.index())); Would be nice ...
6 years, 1 month ago (2014-10-29 16:44:34 UTC) #8
Florian Schneider
https://codereview.chromium.org/678763004/diff/80001/runtime/vm/debugger.cc File runtime/vm/debugger.cc (right): https://codereview.chromium.org/678763004/diff/80001/runtime/vm/debugger.cc#newcode474 runtime/vm/debugger.cc:474: const Object& context = Object::Handle(GetLocalVar(var_info.index())); On 2014/10/29 16:44:34, hausner ...
6 years, 1 month ago (2014-10-29 17:50:45 UTC) #9
Vyacheslav Egorov (Google)
lgtm https://codereview.chromium.org/678763004/diff/120001/runtime/vm/debugger.cc File runtime/vm/debugger.cc (right): https://codereview.chromium.org/678763004/diff/120001/runtime/vm/debugger.cc#newcode475 runtime/vm/debugger.cc:475: return reinterpret_cast<RawContext*>(GetLocalVar(var_info.index())); We did not worry much in ...
6 years, 1 month ago (2014-10-30 15:05:35 UTC) #10
Florian Schneider
https://codereview.chromium.org/678763004/diff/120001/runtime/vm/debugger.cc File runtime/vm/debugger.cc (right): https://codereview.chromium.org/678763004/diff/120001/runtime/vm/debugger.cc#newcode475 runtime/vm/debugger.cc:475: return reinterpret_cast<RawContext*>(GetLocalVar(var_info.index())); On 2014/10/30 15:05:35, Vyacheslav Egorov (Google) wrote: ...
6 years, 1 month ago (2014-10-30 15:24:32 UTC) #11
Florian Schneider
6 years, 1 month ago (2014-10-30 15:43:18 UTC) #12
Message was sent while issue was closed.
Committed patchset #7 (id:120001) manually as r41422 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698