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

Issue 1213013002: Update Assembler::TryAllocate to support inline allocation tracing (Closed)

Created:
5 years, 6 months ago by Cutch
Modified:
5 years, 5 months ago
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

Update Assembler::TryAllocate to support inline allocation tracing - Track whether class allocation should be traced in existing ClassHeapStats structure. - Emit compare and branch at top of ::TryAllocate These changes appear to be performance neutral. An alternative approach is to deoptimize all code that inlined allocations for a specific class. I do not think this is a good approach because we will spoil the water- allocations that aren't occurring in the (optimized steady state) running program will appear in the allocation profile. This will make the data much less actionable bordering on misleading. The approach used in this CL will guarantee the allocation profile aligns with the actual running program. R=regis@google.com, srdjan@google.com Committed: https://github.com/dart-lang/sdk/commit/598c67001b5154fca65108d52352c03b6e0fad97

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Total comments: 7

Patch Set 6 : #

Total comments: 1

Patch Set 7 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+305 lines, -11 lines) Patch
M runtime/vm/assembler_arm.h View 1 2 3 4 5 2 chunks +7 lines, -2 lines 0 comments Download
M runtime/vm/assembler_arm.cc View 1 2 3 4 5 5 chunks +19 lines, -4 lines 0 comments Download
M runtime/vm/assembler_arm64.h View 1 2 3 4 5 1 chunk +7 lines, -0 lines 0 comments Download
M runtime/vm/assembler_arm64.cc View 1 2 3 4 5 2 chunks +29 lines, -0 lines 0 comments Download
M runtime/vm/assembler_ia32.h View 1 2 3 4 5 1 chunk +7 lines, -0 lines 0 comments Download
M runtime/vm/assembler_ia32.cc View 1 2 3 4 5 2 chunks +43 lines, -0 lines 0 comments Download
M runtime/vm/assembler_mips.h View 1 2 3 4 5 1 chunk +4 lines, -0 lines 0 comments Download
M runtime/vm/assembler_mips.cc View 1 2 3 4 5 2 chunks +31 lines, -0 lines 0 comments Download
M runtime/vm/assembler_x64.h View 1 2 3 4 5 2 chunks +8 lines, -0 lines 0 comments Download
M runtime/vm/assembler_x64.cc View 1 2 3 4 5 2 chunks +44 lines, -0 lines 0 comments Download
M runtime/vm/class_table.h View 1 2 3 4 chunks +24 lines, -0 lines 0 comments Download
M runtime/vm/class_table.cc View 1 2 3 4 2 chunks +7 lines, -0 lines 0 comments Download
M runtime/vm/intrinsifier_arm.cc View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download
M runtime/vm/object.cc View 1 2 3 4 5 1 chunk +3 lines, -0 lines 0 comments Download
M runtime/vm/profiler_test.cc View 1 2 3 4 5 1 chunk +67 lines, -0 lines 0 comments Download
M runtime/vm/stub_code_arm.cc View 1 2 3 4 5 3 chunks +3 lines, -3 lines 0 comments Download

Messages

Total messages: 15 (4 generated)
Cutch
I've done this for IA32 only. Once I get an LGTM I will port to ...
5 years, 5 months ago (2015-07-06 21:43:44 UTC) #3
srdjan
LGTM https://codereview.chromium.org/1213013002/diff/80001/runtime/vm/assembler_ia32.h File runtime/vm/assembler_ia32.h (right): https://codereview.chromium.org/1213013002/diff/80001/runtime/vm/assembler_ia32.h#newcode877 runtime/vm/assembler_ia32.h:877: bool near_jump); Document when is 'failure' jumped to, ...
5 years, 5 months ago (2015-07-06 22:23:45 UTC) #4
Florian Schneider
dbc: https://codereview.chromium.org/1213013002/diff/80001/runtime/vm/assembler_ia32.cc File runtime/vm/assembler_ia32.cc (right): https://codereview.chromium.org/1213013002/diff/80001/runtime/vm/assembler_ia32.cc#newcode2718 runtime/vm/assembler_ia32.cc:2718: testb(state_address, Immediate(ClassHeapStats::TraceAllocationMask())); state_ is a intptr_t, and you're ...
5 years, 5 months ago (2015-07-07 12:43:21 UTC) #5
Cutch
https://codereview.chromium.org/1213013002/diff/80001/runtime/vm/assembler_ia32.cc File runtime/vm/assembler_ia32.cc (right): https://codereview.chromium.org/1213013002/diff/80001/runtime/vm/assembler_ia32.cc#newcode2718 runtime/vm/assembler_ia32.cc:2718: testb(state_address, Immediate(ClassHeapStats::TraceAllocationMask())); On 2015/07/07 12:43:21, Florian Schneider wrote: > ...
5 years, 5 months ago (2015-07-09 23:37:34 UTC) #6
Cutch
Ported to other architectures. PTAL.
5 years, 5 months ago (2015-07-09 23:37:48 UTC) #7
Cutch
+regis for ARM, ARM64, and MIPS
5 years, 5 months ago (2015-07-10 17:13:55 UTC) #9
srdjan
lgtm https://codereview.chromium.org/1213013002/diff/100001/runtime/vm/class_table.cc File runtime/vm/class_table.cc (right): https://codereview.chromium.org/1213013002/diff/100001/runtime/vm/class_table.cc#newcode242 runtime/vm/class_table.cc:242: state_ = 0; Could you please add here ...
5 years, 5 months ago (2015-07-10 17:31:22 UTC) #10
regis
lgtm
5 years, 5 months ago (2015-07-10 18:15:26 UTC) #11
Cutch
Committed patchset #7 (id:120001) manually as 598c67001b5154fca65108d52352c03b6e0fad97 (presubmit successful).
5 years, 5 months ago (2015-07-10 19:19:06 UTC) #12
Ivan Posva
DBC -ip https://codereview.chromium.org/1213013002/diff/80001/runtime/vm/object.cc File runtime/vm/object.cc (right): https://codereview.chromium.org/1213013002/diff/80001/runtime/vm/object.cc#newcode2737 runtime/vm/object.cc:2737: TraceAllocationBit::update(trace_allocation, raw_ptr()->state_bits_)); Why is this not under ...
5 years, 5 months ago (2015-07-16 11:34:47 UTC) #14
Cutch
5 years, 5 months ago (2015-07-16 14:34:07 UTC) #15
Message was sent while issue was closed.
https://codereview.chromium.org/1213013002/diff/80001/runtime/vm/object.cc
File runtime/vm/object.cc (right):

https://codereview.chromium.org/1213013002/diff/80001/runtime/vm/object.cc#ne...
runtime/vm/object.cc:2737: TraceAllocationBit::update(trace_allocation,
raw_ptr()->state_bits_));
On 2015/07/16 11:34:47, Ivan Posva wrote:
> Why is this not under "if (changed)"?

My bad- https://codereview.chromium.org/1234943004/

Powered by Google App Engine
This is Rietveld 408576698