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

Issue 9791048: - Wire the stack frame iterator to use stack maps for traversing objects if there are stack maps in… (Closed)

Created:
8 years, 9 months ago by siva
Modified:
8 years, 8 months ago
Reviewers:
srdjan, Ivan Posva
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

- Wire the stack frame iterator to use stack maps for traversing objects if there are stack maps in the code object. If there are no stack maps it still does the old style stack frame traversal between fp and sp looking for tagged pointers. - Added a mechanism to be able to iterate over the code space and look for a particular object. - Remove registration of code objects into the code index table. Committed: https://code.google.com/p/dart/source/detail?r=6302

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Total comments: 10

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : #

Patch Set 7 : #

Patch Set 8 : #

Total comments: 10

Patch Set 9 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+386 lines, -133 lines) Patch
M vm/bitmap.cc View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -2 lines 0 comments Download
M vm/bitmap_test.cc View 1 2 3 4 5 6 7 8 2 chunks +2 lines, -4 lines 0 comments Download
M vm/code_descriptors.h View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -1 line 0 comments Download
M vm/code_descriptors.cc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M vm/code_descriptors_test.cc View 1 2 3 4 5 6 7 8 5 chunks +89 lines, -8 lines 0 comments Download
M vm/code_generator.cc View 1 2 3 4 5 6 7 8 2 chunks +1 line, -4 lines 0 comments Download
M vm/code_index_table_test.cc View 1 2 3 4 5 6 7 8 5 chunks +7 lines, -8 lines 0 comments Download
M vm/compiler.cc View 1 2 3 4 5 6 7 8 6 chunks +0 lines, -12 lines 0 comments Download
M vm/debugger.cc View 1 2 3 4 5 6 7 8 2 chunks +3 lines, -5 lines 0 comments Download
M vm/disassembler_ia32.cc View 1 2 3 4 5 6 7 8 2 chunks +10 lines, -12 lines 0 comments Download
M vm/heap.h View 1 2 3 4 5 6 7 8 1 chunk +9 lines, -0 lines 0 comments Download
M vm/heap.cc View 1 2 3 4 5 6 7 8 1 chunk +8 lines, -0 lines 0 comments Download
M vm/object.h View 1 2 3 4 5 6 7 8 4 chunks +12 lines, -5 lines 0 comments Download
M vm/object.cc View 1 2 3 4 5 6 7 8 8 chunks +46 lines, -43 lines 0 comments Download
M vm/pages.h View 1 2 3 4 5 6 7 8 2 chunks +4 lines, -0 lines 0 comments Download
M vm/pages.cc View 1 2 3 4 5 6 7 8 2 chunks +38 lines, -0 lines 0 comments Download
M vm/raw_object.h View 1 2 3 4 5 6 7 8 8 chunks +17 lines, -0 lines 0 comments Download
M vm/raw_object.cc View 1 2 3 4 5 6 7 8 2 chunks +23 lines, -0 lines 0 comments Download
M vm/runtime_entry_test.cc View 1 2 3 4 5 6 7 8 2 chunks +0 lines, -4 lines 0 comments Download
M vm/stack_frame.h View 1 2 3 4 5 6 7 8 2 chunks +19 lines, -0 lines 0 comments Download
M vm/stack_frame.cc View 1 2 3 4 5 6 7 8 4 chunks +81 lines, -20 lines 0 comments Download
M vm/stack_frame_test.cc View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download
M vm/unit_test.cc View 1 2 3 4 5 6 7 8 2 chunks +0 lines, -4 lines 0 comments Download
M vm/visitor.h View 1 2 3 4 5 6 7 8 1 chunk +10 lines, -0 lines 0 comments Download

Messages

Total messages: 6 (0 generated)
siva
8 years, 9 months ago (2012-03-28 21:22:28 UTC) #1
srdjan
LGTM https://chromiumcodereview.appspot.com/9791048/diff/7002/vm/pages.cc File vm/pages.cc (right): https://chromiumcodereview.appspot.com/9791048/diff/7002/vm/pages.cc#newcode227 vm/pages.cc:227: RawObject* obj = page->FindObject(visitor); Add NoGC after call ...
8 years, 9 months ago (2012-03-28 21:56:35 UTC) #2
siva
Addressed review comments and added a unit test case for the stack traversal with stack ...
8 years, 8 months ago (2012-03-29 19:01:27 UTC) #3
siva
8 years, 8 months ago (2012-03-30 01:52:18 UTC) #4
Ivan Posva
LGTM with comments. -Ivan https://chromiumcodereview.appspot.com/9791048/diff/29001/vm/raw_object.cc File vm/raw_object.cc (right): https://chromiumcodereview.appspot.com/9791048/diff/29001/vm/raw_object.cc#newcode239 vm/raw_object.cc:239: ObjectKind instance_kind = raw_class->ptr()->instance_kind_; This ...
8 years, 8 months ago (2012-04-03 23:28:50 UTC) #5
siva
8 years, 8 months ago (2012-04-07 01:22:55 UTC) #6
https://chromiumcodereview.appspot.com/9791048/diff/29001/vm/raw_object.cc
File vm/raw_object.cc (right):

https://chromiumcodereview.appspot.com/9791048/diff/29001/vm/raw_object.cc#ne...
vm/raw_object.cc:239: ObjectKind instance_kind =
raw_class->ptr()->instance_kind_;
On 2012/04/03 23:28:50, Ivan Posva wrote:
> This code could be inlined into the ContainsPC method.

Done.

https://chromiumcodereview.appspot.com/9791048/diff/29001/vm/raw_object.cc#ne...
vm/raw_object.cc:377: RawStackmap* RawCode::GetStackmap(uword pc) const {
Done.

Used special stack handles in the DartFrame code to be able
to access this code using the handle. These stack handles
are not visited.

On 2012/04/03 23:28:50, Ivan Posva wrote:
> Move this code into the Code object?

https://chromiumcodereview.appspot.com/9791048/diff/29001/vm/raw_object.cc#ne...
vm/raw_object.cc:678: intptr_t RawArray::Length() const {
Not needed any more as the GetStackmap code was moved to a handle based one.

On 2012/04/03 23:28:50, Ivan Posva wrote:
> inline into uses

https://chromiumcodereview.appspot.com/9791048/diff/29001/vm/stack_frame.cc
File vm/stack_frame.cc (right):

https://chromiumcodereview.appspot.com/9791048/diff/29001/vm/stack_frame.cc#n...
vm/stack_frame.cc:18: return RawInstructions::ContainsPC(obj, pc_);
The assertion is done in ContainsPC.

On 2012/04/03 23:28:50, Ivan Posva wrote:
> ASSERT that you are getting a RawInstructions object. It might be OK to have
it
> in the RawInstructions::ContainsPC method.

https://chromiumcodereview.appspot.com/9791048/diff/29001/vm/stack_frame.cc#n...
vm/stack_frame.cc:37: RawObject* obj =
isolate->heap()->FindObjectInCodeSpace(&visitor);
On 2012/04/03 23:28:50, Ivan Posva wrote:
> How about returning RawInstructions* from FindObjectInCodeSpace?

Done.

Powered by Google App Engine
This is Rietveld 408576698