X87: [ic] Also collect known map for relational comparison.
authorchunyang.dai <chunyang.dai@intel.com>
Thu, 24 Sep 2015 03:34:45 +0000 (20:34 -0700)
committerCommit bot <commit-bot@chromium.org>
Thu, 24 Sep 2015 03:35:07 +0000 (03:35 +0000)
commit687ef62eb5e78f3ac9dcde3ed70f6b7dddf680ef
treeb37dec505d5e120f00ef589b3fa3a3efd9f810c4
parent5e6f7a6ccbf2ed4866edfb1021b87ab7030d8603
X87: [ic] Also collect known map for relational comparison.

port e56f265f6d41fadbcea2be65d9b573bad8b4709d (r30852).

original commit message:

    Previously we only collected the known map for equality comparisons. But
    if we also collect it for relational comparisons, we can inline a fast
    path of ToPrimitive on the objects, which is especially interesting
    since both sides have the same map.

    For now we only inline a very limited subset of ToPrimitive in
    Crankshaft, which is when the receiver map (and its prototype chain)
    doesn't have @@toPrimitive, and both valueOf and toString are the
    default versions on the %ObjectPrototype%. In this case the relational
    comparison would reduce to a string comparison of "[object CLASS]" with
    itself and so we can reduce that to a boolean constant plus map checks
    on both left and right hand side, plus code dependencies on the
    prototype chain. This repairs the regression on box2d.

BUG=

Review URL: https://codereview.chromium.org/1342243005

Cr-Commit-Position: refs/heads/master@{#30897}
src/x87/code-stubs-x87.cc