PPC: [ic] Also collect known map for relational comparison.
authormbrandy <mbrandy@us.ibm.com>
Tue, 22 Sep 2015 19:19:52 +0000 (12:19 -0700)
committerCommit bot <commit-bot@chromium.org>
Tue, 22 Sep 2015 19:20:06 +0000 (19:20 +0000)
commit394f3cf3ebf3cd5c028d6bf8041ebe4c33d949ad
tree80dcc6ba66cd1f9fce013d5c62519bfe7d9239ce
parent7485da7ace55cf4318f0a3a02a54fed04bed2a7a
PPC: [ic] Also collect known map for relational comparison.

Port e56f265f6d41fadbcea2be65d9b573bad8b4709d

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.

R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
BUG=chromium:534200
LOG=n

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

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