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

Issue 12260026: Add support for object pool (Closed)

Created:
7 years, 10 months ago by regis
Modified:
7 years, 10 months ago
Reviewers:
zra, srdjan, hausner
CC:
reviews_dartlang.org
Visibility:
Public.

Description

Add support for object pool that will be used on ARM and MIPS architectures. Modify code patching infrastructure to accept code object, which is necessary to get to the object pool containing patchable target addresses. Modify assembler test infrastructure to provide associated code object. Committed: https://code.google.com/p/dart/source/detail?r=18604

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Total comments: 10

Patch Set 4 : #

Patch Set 5 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+789 lines, -614 lines) Patch
M runtime/vm/assembler_arm.h View 1 2 3 4 4 chunks +12 lines, -9 lines 0 comments Download
M runtime/vm/assembler_arm.cc View 1 2 3 4 7 chunks +31 lines, -8 lines 0 comments Download
M runtime/vm/assembler_arm_test.cc View 1 2 3 4 1 chunk +2 lines, -2 lines 0 comments Download
M runtime/vm/assembler_ia32.h View 1 2 3 4 3 chunks +7 lines, -1 line 0 comments Download
M runtime/vm/assembler_ia32_test.cc View 1 2 3 4 102 chunks +251 lines, -236 lines 0 comments Download
M runtime/vm/assembler_mips.h View 1 2 3 4 3 chunks +10 lines, -1 line 0 comments Download
M runtime/vm/assembler_mips_test.cc View 1 2 3 4 1 chunk +2 lines, -2 lines 0 comments Download
M runtime/vm/assembler_test.cc View 1 2 3 4 1 chunk +2 lines, -2 lines 0 comments Download
M runtime/vm/assembler_x64.h View 1 2 3 4 3 chunks +7 lines, -1 line 0 comments Download
M runtime/vm/assembler_x64_test.cc View 1 2 3 4 78 chunks +180 lines, -171 lines 0 comments Download
M runtime/vm/code_generator.cc View 1 2 3 4 2 chunks +5 lines, -3 lines 0 comments Download
M runtime/vm/code_patcher.h View 1 2 3 4 2 chunks +12 lines, -9 lines 0 comments Download
M runtime/vm/code_patcher_arm.cc View 1 2 3 4 2 chunks +15 lines, -9 lines 0 comments Download
M runtime/vm/code_patcher_arm_test.cc View 1 2 3 4 1 chunk +3 lines, -3 lines 0 comments Download
M runtime/vm/code_patcher_ia32.cc View 1 2 3 4 2 chunks +13 lines, -8 lines 0 comments Download
M runtime/vm/code_patcher_ia32_test.cc View 1 2 3 4 1 chunk +3 lines, -3 lines 0 comments Download
M runtime/vm/code_patcher_mips.cc View 1 2 3 4 2 chunks +15 lines, -9 lines 0 comments Download
M runtime/vm/code_patcher_mips_test.cc View 1 2 3 4 1 chunk +3 lines, -3 lines 0 comments Download
M runtime/vm/code_patcher_x64.cc View 1 2 3 4 1 chunk +13 lines, -8 lines 0 comments Download
M runtime/vm/code_patcher_x64_test.cc View 1 2 3 4 1 chunk +3 lines, -3 lines 0 comments Download
M runtime/vm/constants_arm.h View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/debugger.cc View 1 2 3 4 3 chunks +28 lines, -13 lines 0 comments Download
M runtime/vm/deopt_instructions.cc View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/disassembler_test.cc View 1 2 3 4 1 chunk +2 lines, -2 lines 0 comments Download
M runtime/vm/instructions_arm.h View 1 2 3 4 3 chunks +27 lines, -27 lines 0 comments Download
M runtime/vm/instructions_arm.cc View 1 2 3 4 1 chunk +15 lines, -2 lines 0 comments Download
M runtime/vm/instructions_arm_test.cc View 1 2 3 4 2 chunks +7 lines, -6 lines 0 comments Download
M runtime/vm/instructions_ia32_test.cc View 1 2 3 4 2 chunks +5 lines, -5 lines 0 comments Download
M runtime/vm/instructions_mips.h View 1 2 3 4 3 chunks +27 lines, -27 lines 0 comments Download
M runtime/vm/instructions_mips.cc View 1 2 3 4 1 chunk +15 lines, -2 lines 0 comments Download
M runtime/vm/instructions_mips_test.cc View 1 2 3 4 2 chunks +5 lines, -5 lines 0 comments Download
M runtime/vm/instructions_x64_test.cc View 1 2 3 4 2 chunks +5 lines, -5 lines 0 comments Download
M runtime/vm/native_entry_test.cc View 1 2 3 4 1 chunk +2 lines, -2 lines 0 comments Download
M runtime/vm/object.h View 1 2 3 4 3 chunks +11 lines, -2 lines 0 comments Download
M runtime/vm/object.cc View 1 2 3 4 5 chunks +11 lines, -4 lines 0 comments Download
M runtime/vm/raw_object.h View 1 2 3 4 1 chunk +7 lines, -0 lines 0 comments Download
M runtime/vm/raw_object.cc View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/stub_code.cc View 1 2 3 4 2 chunks +8 lines, -4 lines 0 comments Download
M runtime/vm/unit_test.h View 1 2 3 4 3 chunks +17 lines, -9 lines 0 comments Download
M runtime/vm/unit_test.cc View 1 2 3 4 1 chunk +5 lines, -5 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
regis
Srdjan, Matthias, Do not fear, the list is long, but the changes are small. Zach, ...
7 years, 10 months ago (2013-02-14 23:56:38 UTC) #1
hausner
lgtm
7 years, 10 months ago (2013-02-15 00:58:36 UTC) #2
zra
lgtm
7 years, 10 months ago (2013-02-15 18:15:30 UTC) #3
srdjan
LGTM with comments https://codereview.chromium.org/12260026/diff/17001/runtime/vm/code_generator.cc File runtime/vm/code_generator.cc (right): https://codereview.chromium.org/12260026/diff/17001/runtime/vm/code_generator.cc#newcode766 runtime/vm/code_generator.cc:766: CodePatcher::PatchStaticCallAt(caller_frame->pc(), target_code, Should be caller_code, below ...
7 years, 10 months ago (2013-02-15 21:24:27 UTC) #4
regis
7 years, 10 months ago (2013-02-15 22:51:31 UTC) #5
Thanks!

https://codereview.chromium.org/12260026/diff/17001/runtime/vm/code_generator.cc
File runtime/vm/code_generator.cc (right):

https://codereview.chromium.org/12260026/diff/17001/runtime/vm/code_generator...
runtime/vm/code_generator.cc:766:
CodePatcher::PatchStaticCallAt(caller_frame->pc(), target_code,
On 2013/02/15 21:24:27, srdjan wrote:
> Should be caller_code, below as well

Good catch!

https://codereview.chromium.org/12260026/diff/17001/runtime/vm/code_patcher.h
File runtime/vm/code_patcher.h (right):

https://codereview.chromium.org/12260026/diff/17001/runtime/vm/code_patcher.h...
runtime/vm/code_patcher.h:29: const Code& code,
On 2013/02/15 21:24:27, srdjan wrote:
> Please modify comment/variable name 'code' to explain what 'code' is for.

Done.

https://codereview.chromium.org/12260026/diff/17001/runtime/vm/code_patcher.h...
runtime/vm/code_patcher.h:34: const Code& code,
On 2013/02/15 21:24:27, srdjan wrote:
> ditto here and below.

Done.

https://codereview.chromium.org/12260026/diff/17001/runtime/vm/code_patcher_i...
File runtime/vm/code_patcher_ia32.cc (right):

https://codereview.chromium.org/12260026/diff/17001/runtime/vm/code_patcher_i...
runtime/vm/code_patcher_ia32.cc:146: const Code& code) {
On 2013/02/15 21:24:27, srdjan wrote:
> Here and below, you could assert that return address belongs to code I guess
you
> are not doing LookupCode(return_address) for performance reasons? 
LookupCode would be too slow, but I can assert that the return address belongs
to the code with a fast range check.

https://codereview.chromium.org/12260026/diff/17001/runtime/vm/debugger.h
File runtime/vm/debugger.h (right):

https://codereview.chromium.org/12260026/diff/17001/runtime/vm/debugger.h#new...
runtime/vm/debugger.h:98: const Code& code_;
On 2013/02/15 21:24:27, srdjan wrote:
> Remove function_ use RawCode* instead Code.

The purpose of the member code_ was to cache the Code object in order to prevent
repeated allocation of handles.
Since handles cannot be used here, caching is not useful. Field is removed.

Powered by Google App Engine
This is Rietveld 408576698