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 #
Messages
Total messages: 12 (6 generated)
|