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

Issue 1247783002: Make array allocation stub shared between isolates. (Closed)

Created:
5 years, 5 months ago by Florian Schneider
Modified:
5 years, 5 months ago
Reviewers:
koda, Cutch, Ivan Posva
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Base URL:
git@github.com:dart-lang/sdk.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Make array allocation stub shared between isolates. This allows to make the last explicitly named stubs shared between isolates. When sharing code stubs, we can't do patching at their entry anymore. Therefore, I had to remove patching support of the array allocation stub. Is this a functionality we want to keep? The change is mostly performance-neutral because optimized code has an inlined fast path for array allocation and only uses the stub for the slow-case. The only isolate-specific stubs left are object allocation stubs which are associated with their Class are per-isolate. Since this CL removes any isolate-specific stubs from StubCode, it becomes AllStatic. BUG= R=koda@google.com Committed: https://github.com/dart-lang/sdk/commit/8d38a58c18309a05e9fddfdd209dbfc5094c0738

Patch Set 1 #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+427 lines, -804 lines) Patch
M runtime/vm/assembler_arm.h View 1 chunk +2 lines, -1 line 0 comments Download
M runtime/vm/assembler_arm.cc View 2 chunks +4 lines, -4 lines 0 comments Download
M runtime/vm/assembler_arm64.h View 1 chunk +2 lines, -1 line 0 comments Download
M runtime/vm/assembler_arm64.cc View 1 chunk +18 lines, -11 lines 0 comments Download
M runtime/vm/assembler_ia32.h View 1 chunk +2 lines, -1 line 0 comments Download
M runtime/vm/assembler_ia32.cc View 3 chunks +22 lines, -16 lines 0 comments Download
M runtime/vm/assembler_mips.h View 1 chunk +2 lines, -1 line 0 comments Download
M runtime/vm/assembler_mips.cc View 1 chunk +18 lines, -9 lines 0 comments Download
M runtime/vm/assembler_x64.h View 1 chunk +2 lines, -1 line 0 comments Download
M runtime/vm/assembler_x64.cc View 2 chunks +17 lines, -11 lines 0 comments Download
M runtime/vm/class_table.h View 1 chunk +1 line, -2 lines 0 comments Download
M runtime/vm/class_table.cc View 1 chunk +2 lines, -4 lines 0 comments Download
M runtime/vm/code_generator.cc View 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/code_patcher_arm64_test.cc View 1 chunk +1 line, -2 lines 0 comments Download
M runtime/vm/code_patcher_arm_test.cc View 1 chunk +1 line, -2 lines 0 comments Download
M runtime/vm/code_patcher_ia32_test.cc View 1 chunk +1 line, -2 lines 0 comments Download
M runtime/vm/code_patcher_mips_test.cc View 1 chunk +1 line, -2 lines 0 comments Download
M runtime/vm/code_patcher_x64_test.cc View 1 chunk +1 line, -2 lines 0 comments Download
M runtime/vm/compiler_test.cc View 1 chunk +1 line, -2 lines 0 comments Download
M runtime/vm/dart_entry.cc View 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/debugger_arm.cc View 1 chunk +2 lines, -3 lines 0 comments Download
M runtime/vm/debugger_arm64.cc View 1 chunk +2 lines, -3 lines 0 comments Download
M runtime/vm/debugger_ia32.cc View 2 chunks +2 lines, -3 lines 0 comments Download
M runtime/vm/debugger_mips.cc View 1 chunk +2 lines, -3 lines 0 comments Download
M runtime/vm/debugger_x64.cc View 1 chunk +2 lines, -3 lines 0 comments Download
M runtime/vm/flow_graph_compiler.cc View 3 chunks +4 lines, -5 lines 0 comments Download
M runtime/vm/flow_graph_compiler_arm.cc View 16 chunks +18 lines, -28 lines 2 comments Download
M runtime/vm/flow_graph_compiler_arm64.cc View 16 chunks +18 lines, -30 lines 0 comments Download
M runtime/vm/flow_graph_compiler_ia32.cc View 16 chunks +18 lines, -28 lines 0 comments Download
M runtime/vm/flow_graph_compiler_mips.cc View 17 chunks +18 lines, -28 lines 0 comments Download
M runtime/vm/flow_graph_compiler_x64.cc View 15 chunks +18 lines, -27 lines 0 comments Download
M runtime/vm/gc_marker.cc View 1 chunk +1 line, -2 lines 0 comments Download
M runtime/vm/instructions_arm64_test.cc View 3 chunks +8 lines, -12 lines 0 comments Download
M runtime/vm/instructions_arm_test.cc View 5 chunks +14 lines, -20 lines 0 comments Download
M runtime/vm/instructions_ia32_test.cc View 3 chunks +8 lines, -12 lines 0 comments Download
M runtime/vm/instructions_mips_test.cc View 3 chunks +8 lines, -12 lines 0 comments Download
M runtime/vm/instructions_x64_test.cc View 4 chunks +7 lines, -10 lines 0 comments Download
M runtime/vm/intermediate_language.cc View 2 chunks +5 lines, -7 lines 0 comments Download
M runtime/vm/intermediate_language_arm.cc View 9 chunks +8 lines, -18 lines 0 comments Download
M runtime/vm/intermediate_language_arm64.cc View 9 chunks +8 lines, -18 lines 0 comments Download
M runtime/vm/intermediate_language_ia32.cc View 9 chunks +8 lines, -18 lines 0 comments Download
M runtime/vm/intermediate_language_mips.cc View 9 chunks +8 lines, -18 lines 0 comments Download
M runtime/vm/intermediate_language_x64.cc View 9 chunks +8 lines, -18 lines 0 comments Download
M runtime/vm/isolate.h View 2 chunks +0 lines, -4 lines 0 comments Download
M runtime/vm/isolate.cc View 2 chunks +0 lines, -2 lines 0 comments Download
M runtime/vm/object.cc View 2 chunks +3 lines, -6 lines 0 comments Download
M runtime/vm/profiler.cc View 4 chunks +6 lines, -11 lines 0 comments Download
M runtime/vm/runtime_entry_arm.cc View 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/runtime_entry_arm64.cc View 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/runtime_entry_ia32.cc View 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/runtime_entry_mips.cc View 1 chunk +1 line, -2 lines 0 comments Download
M runtime/vm/runtime_entry_x64.cc View 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/stack_frame.h View 2 chunks +2 lines, -2 lines 0 comments Download
M runtime/vm/stub_code.h View 10 chunks +4 lines, -49 lines 0 comments Download
M runtime/vm/stub_code.cc View 4 chunks +8 lines, -65 lines 0 comments Download
M runtime/vm/stub_code_arm.cc View 7 chunks +15 lines, -45 lines 0 comments Download
M runtime/vm/stub_code_arm64.cc View 7 chunks +23 lines, -53 lines 0 comments Download
M runtime/vm/stub_code_ia32.cc View 7 chunks +29 lines, -60 lines 0 comments Download
M runtime/vm/stub_code_mips.cc View 8 chunks +18 lines, -53 lines 0 comments Download
M runtime/vm/stub_code_x64.cc View 6 chunks +19 lines, -46 lines 0 comments Download

Messages

Total messages: 7 (1 generated)
Florian Schneider
5 years, 5 months ago (2015-07-22 08:00:18 UTC) #2
Cutch
As discussed in the meeting on Monday, all of our allocation stubs must be patchable ...
5 years, 5 months ago (2015-07-22 16:56:34 UTC) #3
koda
LGTM Regarding patchability: one potential use case is to specialize the stub for old/new space ...
5 years, 5 months ago (2015-07-23 00:58:01 UTC) #4
Florian Schneider
On 2015/07/22 16:56:34, Cutch wrote: > As discussed in the meeting on Monday, all of ...
5 years, 5 months ago (2015-07-23 10:41:51 UTC) #5
Florian Schneider
https://codereview.chromium.org/1247783002/diff/1/runtime/vm/flow_graph_compiler_arm.cc File runtime/vm/flow_graph_compiler_arm.cc (right): https://codereview.chromium.org/1247783002/diff/1/runtime/vm/flow_graph_compiler_arm.cc#newcode201 runtime/vm/flow_graph_compiler_arm.cc:201: __ BranchLink(&StubCode::DeoptimizeLabel()); On 2015/07/23 00:58:01, koda wrote: > True ...
5 years, 5 months ago (2015-07-23 10:43:22 UTC) #6
Florian Schneider
5 years, 5 months ago (2015-07-23 10:56:21 UTC) #7
Message was sent while issue was closed.
Committed patchset #1 (id:1) manually as
8d38a58c18309a05e9fddfdd209dbfc5094c0738 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698