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

Issue 1857133003: [turbofan] Restrict types in load elimination. (Closed)

Created:
4 years, 8 months ago by Jarin
Modified:
4 years, 8 months ago
Reviewers:
Benedikt Meurer
CC:
v8-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[turbofan] Restrict types in load elimination. In simplified numbering, we make sanity checks based on types (e.g., NumberSubtract should take numbers as inputs), but this can be violated if optimization passes make types less precise. In this CL, we fix load elimination to make sure that types are smaller in the store -> load elimination by taking an intersection of the load's type with the store value's type and inserting a guard with that type. Note that the load type comes from type feedback, so it can be disjoint from the stored value type (in that case, this must be dead code because the map chack for the load should prevent us from using the stored value). BUG=chromium:599412 LOG=n Committed: https://crrev.com/4142bc6bc1f5d81f2cd224bafe9cf3d8d74df90e Cr-Commit-Position: refs/heads/master@{#35259}

Patch Set 1 #

Total comments: 2

Patch Set 2 : Header fixup #

Patch Set 3 : Tweaks #

Unified diffs Side-by-side diffs Delta from patch set Stats (+53 lines, -16 lines) Patch
M src/compiler/load-elimination.h View 1 2 1 chunk +11 lines, -1 line 0 comments Download
M src/compiler/load-elimination.cc View 1 2 4 chunks +19 lines, -4 lines 0 comments Download
M src/compiler/pipeline.cc View 1 chunk +2 lines, -1 line 0 comments Download
M test/mjsunit/mjsunit.status View 1 chunk +1 line, -0 lines 0 comments Download
A + test/mjsunit/regress/regress-599412.js View 1 chunk +11 lines, -4 lines 0 comments Download
M test/unittests/compiler/load-elimination-unittest.cc View 1 chunk +9 lines, -6 lines 0 comments Download

Messages

Total messages: 12 (6 generated)
Jarin
Could you take a look, please?
4 years, 8 months ago (2016-04-05 11:58:32 UTC) #3
Benedikt Meurer
LGTM with nit. https://codereview.chromium.org/1857133003/diff/1/src/compiler/load-elimination.h File src/compiler/load-elimination.h (right): https://codereview.chromium.org/1857133003/diff/1/src/compiler/load-elimination.h#newcode16 src/compiler/load-elimination.h:16: class JSGraph; Nit: JSGraph seems unused.
4 years, 8 months ago (2016-04-05 12:01:41 UTC) #4
Jarin
https://codereview.chromium.org/1857133003/diff/1/src/compiler/load-elimination.h File src/compiler/load-elimination.h (right): https://codereview.chromium.org/1857133003/diff/1/src/compiler/load-elimination.h#newcode16 src/compiler/load-elimination.h:16: class JSGraph; On 2016/04/05 12:01:41, Benedikt Meurer wrote: > ...
4 years, 8 months ago (2016-04-05 12:06:38 UTC) #5
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1857133003/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1857133003/40001
4 years, 8 months ago (2016-04-05 12:06:47 UTC) #8
commit-bot: I haz the power
Committed patchset #3 (id:40001)
4 years, 8 months ago (2016-04-05 12:29:49 UTC) #10
commit-bot: I haz the power
4 years, 8 months ago (2016-04-05 12:30:23 UTC) #12
Message was sent while issue was closed.
Patchset 3 (id:??) landed as
https://crrev.com/4142bc6bc1f5d81f2cd224bafe9cf3d8d74df90e
Cr-Commit-Position: refs/heads/master@{#35259}

Powered by Google App Engine
This is Rietveld 408576698