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

Issue 22590002: Fix bug with optimized try-catch on ARM/MIPS. (Closed)

Created:
7 years, 4 months ago by Florian Schneider
Modified:
7 years, 4 months ago
Reviewers:
regis, srdjan
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Fix bug with optimized try-catch on ARM/MIPS. The constant pool pointer must be restored before any parallel moves at the catch-entry block. In addition, this CL removes CatchEntryInstr and folds its functionality into CatchBlockEntryInstr. Until now every catch-block started with CatchBlockEntryInstr followed by a CatchEntryInstr. This simplifies a lot of code in the compiler and avoids issues with allocator-move code inserted between the two instructions. BUG=https://code.google.com/p/dart/issues/detail?id=12291 TEST=tests/language/try_catch4_test.dart R=regis@google.com, srdjan@google.com Committed: https://code.google.com/p/dart/source/detail?r=25918

Patch Set 1 #

Patch Set 2 : added cleanup of CatchEntry #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+161 lines, -204 lines) Patch
M runtime/vm/flow_graph_allocator.cc View 1 2 chunks +5 lines, -11 lines 0 comments Download
M runtime/vm/flow_graph_builder.cc View 1 2 chunks +62 lines, -59 lines 2 comments Download
M runtime/vm/flow_graph_compiler_arm.cc View 1 1 chunk +2 lines, -3 lines 0 comments Download
M runtime/vm/flow_graph_compiler_ia32.cc View 1 1 chunk +2 lines, -3 lines 0 comments Download
M runtime/vm/flow_graph_compiler_mips.cc View 1 1 chunk +2 lines, -3 lines 0 comments Download
M runtime/vm/flow_graph_compiler_x64.cc View 1 1 chunk +2 lines, -3 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.cc View 1 3 chunks +3 lines, -7 lines 0 comments Download
M runtime/vm/il_printer.cc View 1 2 chunks +1 line, -8 lines 0 comments Download
M runtime/vm/intermediate_language.h View 1 5 chunks +11 lines, -32 lines 0 comments Download
M runtime/vm/intermediate_language.cc View 1 chunk +0 lines, -18 lines 0 comments Download
M runtime/vm/intermediate_language_arm.cc View 1 2 chunks +19 lines, -12 lines 0 comments Download
M runtime/vm/intermediate_language_ia32.cc View 1 2 chunks +15 lines, -9 lines 0 comments Download
M runtime/vm/intermediate_language_mips.cc View 1 2 chunks +22 lines, -19 lines 0 comments Download
M runtime/vm/intermediate_language_x64.cc View 1 2 chunks +15 lines, -9 lines 0 comments Download
M tests/language/language.status View 1 chunk +0 lines, -8 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
Florian Schneider
This a bug fix plus a simplifying refactoring. Patch set #1 just contains the bug ...
7 years, 4 months ago (2013-08-07 15:13:50 UTC) #1
regis
LGTM Thanks for fixing this!
7 years, 4 months ago (2013-08-07 17:04:47 UTC) #2
srdjan
lgtm https://codereview.chromium.org/22590002/diff/7001/runtime/vm/flow_graph_builder.cc File runtime/vm/flow_graph_builder.cc (right): https://codereview.chromium.org/22590002/diff/7001/runtime/vm/flow_graph_builder.cc#newcode3345 runtime/vm/flow_graph_builder.cc:3345: intptr_t catch_handler_index = (finally_block == NULL) const
7 years, 4 months ago (2013-08-07 18:46:17 UTC) #3
Florian Schneider
https://codereview.chromium.org/22590002/diff/7001/runtime/vm/flow_graph_builder.cc File runtime/vm/flow_graph_builder.cc (right): https://codereview.chromium.org/22590002/diff/7001/runtime/vm/flow_graph_builder.cc#newcode3345 runtime/vm/flow_graph_builder.cc:3345: intptr_t catch_handler_index = (finally_block == NULL) On 2013/08/07 18:46:17, ...
7 years, 4 months ago (2013-08-08 07:39:57 UTC) #4
Florian Schneider
7 years, 4 months ago (2013-08-08 08:20:20 UTC) #5
Message was sent while issue was closed.
Committed patchset #2 manually as r25918 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698