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

Issue 125103002: Fix bug and refactor optimized try-catch. (Closed)

Created:
6 years, 11 months ago by Florian Schneider
Modified:
6 years, 11 months ago
Reviewers:
Cutch
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Fix bug and refactor optimized try-catch. When untagged values flow into a exception-throwing instruction they need to be converted eagerly. Catch block entries assume all values are tagged at the entry. I changed the generation of moves at throwing instructions in try-catch: Instead of manuallu emitting moves, construct a parallel move and use the resolver to emit the native code. This eliminates a lot of duplicated code from all platforms. It will also allow to re-use stack space that is currently allocated separately for each individual try-catch in a function. I added a few more unrelated minor changes in various parts of the VM * Simpilify guard code generation * Resolve refactoring TODO in deoptimization * Improve names R=johnmccutchan@google.com Committed: https://code.google.com/p/dart/source/detail?r=31536

Patch Set 1 #

Total comments: 1

Patch Set 2 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+125 lines, -344 lines) Patch
M runtime/vm/deferred_objects.h View 7 chunks +7 lines, -6 lines 0 comments Download
M runtime/vm/deferred_objects.cc View 5 chunks +6 lines, -11 lines 0 comments Download
M runtime/vm/deopt_instructions.cc View 3 chunks +5 lines, -4 lines 0 comments Download
M runtime/vm/flow_graph_compiler.h View 1 chunk +0 lines, -2 lines 0 comments Download
M runtime/vm/flow_graph_compiler.cc View 2 chunks +46 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_compiler_arm.cc View 1 chunk +0 lines, -68 lines 0 comments Download
M runtime/vm/flow_graph_compiler_ia32.cc View 1 chunk +0 lines, -69 lines 0 comments Download
M runtime/vm/flow_graph_compiler_mips.cc View 1 chunk +0 lines, -68 lines 0 comments Download
M runtime/vm/flow_graph_compiler_x64.cc View 1 chunk +0 lines, -68 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.h View 1 chunk +2 lines, -2 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.cc View 1 5 chunks +44 lines, -18 lines 0 comments Download
M runtime/vm/intermediate_language.h View 3 chunks +11 lines, -3 lines 0 comments Download
M runtime/vm/intermediate_language_arm.cc View 3 chunks +1 line, -6 lines 0 comments Download
M runtime/vm/intermediate_language_ia32.cc View 3 chunks +1 line, -7 lines 0 comments Download
M runtime/vm/intermediate_language_mips.cc View 3 chunks +1 line, -6 lines 0 comments Download
M runtime/vm/intermediate_language_x64.cc View 3 chunks +1 line, -6 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
Florian Schneider
This is relanding r31326 plus a bug fix in optimized try-catch uncovered by it. https://codereview.chromium.org/125103002/diff/1/runtime/vm/flow_graph_compiler.cc ...
6 years, 11 months ago (2014-01-06 15:12:50 UTC) #1
Cutch
lgtm
6 years, 11 months ago (2014-01-06 18:55:22 UTC) #2
Florian Schneider
6 years, 11 months ago (2014-01-07 09:58:57 UTC) #3
Message was sent while issue was closed.
Committed patchset #2 manually as r31536 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698