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

Issue 1380203004: VM: Fix crash bug in constant propagation. (Closed)

Created:
5 years, 2 months ago by Florian Schneider
Modified:
5 years, 2 months ago
Reviewers:
Cutch
CC:
reviews_dartlang.org, vm-dev_dartlang.org, floitsch
Base URL:
git@github.com:dart-lang/sdk.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

VM: Fix bug in constant propagation. The optimizer runs constant propagation once before inserting boxing- and unboxing conversions. Therefore, operations that take unboxed input operands may still have mismatched representations. This has to be considered so that no invalid 'unknown' constants appear during propagation. The invariant during constant propagation is that if all inputs of an operation are known (constant or non-constant), the output must be known (constant or non-constant. It must not become unknown in these cases. i.e. the input of a MintToDouble/Int32ToDouble/SmiToDouble could be a double constant at this stage. This can occur as a result of polymorphic inlining of arithmetic operations on constants, where some variants are unreachable. For now, the solution is to mark the operation as non-constant. (the inserted conversion would always deoptimize - making the operation unreachable) BUG= R=johnmccutchan@google.com Committed: https://github.com/dart-lang/sdk/commit/0df00193f77e4545850d502a1d26ffeff0e6e4fc

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+5 lines, -5 lines) Patch
M runtime/vm/constant_propagator.cc View 3 chunks +3 lines, -3 lines 0 comments Download
M runtime/vm/il_printer.cc View 1 chunk +2 lines, -2 lines 0 comments Download

Messages

Total messages: 4 (1 generated)
Florian Schneider
I'll try to add a small repro for this crash.
5 years, 2 months ago (2015-10-02 16:54:25 UTC) #2
Cutch
lgtm
5 years, 2 months ago (2015-10-05 17:25:32 UTC) #3
Florian Schneider
5 years, 2 months ago (2015-10-06 08:22:54 UTC) #4
Message was sent while issue was closed.
Committed patchset #1 (id:1) manually as
0df00193f77e4545850d502a1d26ffeff0e6e4fc (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698