Commit cbf8c3f4 authored by jarin@chromium.org's avatar jarin@chromium.org

Make escape analysis preserve all representations required by HCompareNumericAndBranch.

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21255 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 38754b4e
...@@ -144,7 +144,7 @@ HValue* HEscapeAnalysisPhase::NewLoadReplacement( ...@@ -144,7 +144,7 @@ HValue* HEscapeAnalysisPhase::NewLoadReplacement(
HLoadNamedField* load, HValue* load_value) { HLoadNamedField* load, HValue* load_value) {
HValue* replacement = load_value; HValue* replacement = load_value;
Representation representation = load->representation(); Representation representation = load->representation();
if (representation.IsSmi()) { if (representation.IsSmiOrInteger32() || representation.IsDouble()) {
Zone* zone = graph()->zone(); Zone* zone = graph()->zone();
HInstruction* new_instr = HInstruction* new_instr =
HForceRepresentation::New(zone, NULL, load_value, representation); HForceRepresentation::New(zone, NULL, load_value, representation);
......
...@@ -12,7 +12,7 @@ function deepEquals(a, b) { ...@@ -12,7 +12,7 @@ function deepEquals(a, b) {
if (objectClass === "RegExp") { return (a.toString() === b.toString()); } if (objectClass === "RegExp") { return (a.toString() === b.toString()); }
if (objectClass === "Function") return false; if (objectClass === "Function") return false;
if (objectClass === "Array") { if (objectClass === "Array") {
var elementCount = 0; var elementsCount = 0;
if (a.length != b.length) { return false; } if (a.length != b.length) { return false; }
for (var i = 0; i < a.length; i++) { for (var i = 0; i < a.length; i++) {
if (!deepEquals(a[i], b[i])) return false; if (!deepEquals(a[i], b[i])) return false;
...@@ -23,12 +23,11 @@ function deepEquals(a, b) { ...@@ -23,12 +23,11 @@ function deepEquals(a, b) {
function __f_1(){ function __f_1(){
var __v_0 = []; var __v_0 = [];
for(var i=0; i<2; i++){ for(var i=0; i<2; i++){
var __v_1=[]; __v_0.push([])
__v_0.push([]) deepEquals(2, __v_0.length);
deepEquals(2, __v_0.length); }
}
} }
__f_1(); __f_1();
%OptimizeFunctionOnNextCall(__f_1); %OptimizeFunctionOnNextCall(__f_1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment