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

Issue 968183003: Emit stackmaps even in unoptimized code if slow path pushes untagged values. (Closed)

Created:
5 years, 9 months ago by Vyacheslav Egorov (Google)
Modified:
5 years, 9 months ago
Reviewers:
Florian Schneider, koda
CC:
reviews_dartlang.org, vm-dev_dartlang.org, koda
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Emit stackmaps even in unoptimized code if slow path pushes untagged values. These stackmaps cover only pushed registers region, the rest of the stack (copied parameters, locals and temporaries) will be scanned as tagged values. R=fschneider@google.com BUG=http://dartbug.com/22621 Committed: https://code.google.com/p/dart/source/detail?r=44173

Patch Set 1 #

Total comments: 6
Unified diffs Side-by-side diffs Delta from patch set Stats (+37 lines, -24 lines) Patch
M runtime/vm/flow_graph_compiler.h View 1 chunk +7 lines, -0 lines 2 comments Download
M runtime/vm/flow_graph_compiler.cc View 4 chunks +19 lines, -15 lines 2 comments Download
M runtime/vm/locations.h View 2 chunks +6 lines, -0 lines 0 comments Download
M runtime/vm/object.cc View 1 chunk +1 line, -2 lines 0 comments Download
A + tests/language/vm/regress_22621_vm_test.dart View 1 chunk +4 lines, -7 lines 2 comments Download

Messages

Total messages: 7 (1 generated)
Vyacheslav Egorov (Google)
5 years, 9 months ago (2015-03-03 15:26:32 UTC) #1
Vyacheslav Egorov (Google)
+koda
5 years, 9 months ago (2015-03-03 15:26:51 UTC) #2
Florian Schneider
lgtm
5 years, 9 months ago (2015-03-03 15:37:35 UTC) #3
Vyacheslav Egorov (Google)
Committed patchset #1 (id:1) manually as 44173 (presubmit successful).
5 years, 9 months ago (2015-03-03 15:43:47 UTC) #4
koda
https://codereview.chromium.org/968183003/diff/1/runtime/vm/flow_graph_compiler.cc File runtime/vm/flow_graph_compiler.cc (right): https://codereview.chromium.org/968183003/diff/1/runtime/vm/flow_graph_compiler.cc#newcode872 runtime/vm/flow_graph_compiler.cc:872: // The unoptimizing compiler has no stack maps. Update ...
5 years, 9 months ago (2015-03-03 17:57:48 UTC) #6
Vyacheslav Egorov (Google)
5 years, 9 months ago (2015-03-03 18:01:07 UTC) #7
Message was sent while issue was closed.
https://codereview.chromium.org/968183003/diff/1/runtime/vm/flow_graph_compil...
File runtime/vm/flow_graph_compiler.cc (right):

https://codereview.chromium.org/968183003/diff/1/runtime/vm/flow_graph_compil...
runtime/vm/flow_graph_compiler.cc:872: // The unoptimizing compiler has no stack
maps.
On 2015/03/03 17:57:48, koda wrote:
> Update comment.

Acknowledged.

https://codereview.chromium.org/968183003/diff/1/runtime/vm/flow_graph_compil...
File runtime/vm/flow_graph_compiler.h (right):

https://codereview.chromium.org/968183003/diff/1/runtime/vm/flow_graph_compil...
runtime/vm/flow_graph_compiler.h:642: stackmap_table_builder_ = new
StackmapTableBuilder();
On 2015/03/03 17:57:48, koda wrote:
> Memory leak?
> 
> We should also assert in the destructor that the stack maps were actually
> finalized (if non-NULL).

it's a ZoneAllocated object as most of the things in the compiler, so it can't
leak anywhere (thus neither does it have its destructor invoked)

https://codereview.chromium.org/968183003/diff/1/tests/language/vm/regress_22...
File tests/language/vm/regress_22621_vm_test.dart (right):

https://codereview.chromium.org/968183003/diff/1/tests/language/vm/regress_22...
tests/language/vm/regress_22621_vm_test.dart:9: return re.firstMatch("oooo");
On 2015/03/03 17:57:48, koda wrote:
> Perhaps I should have added a comment here: "oooo" was chosen since the low
bits
> of 'o' make it neither a smi nor a well-formed pointer.
> 
> We could also consider making it "oooooooo" in case we add a 64-bit version of
> LoadCodeUnits.

Acknowledged.

Powered by Google App Engine
This is Rietveld 408576698