From: bmeurer@chromium.org Date: Mon, 19 May 2014 07:08:47 +0000 (+0000) Subject: Partial revert of "Next bunch of fixes for check elimination". X-Git-Tag: upstream/4.7.83~9093 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ecadc63b60ae657118de2639d22d9c97778fea08;p=platform%2Fupstream%2Fv8.git Partial revert of "Next bunch of fixes for check elimination". This reverts the part of r21154 that introduced the CHECK()s to verify state of objects with stable maps during code generation. The CHECK()s seem to trigger a non-critical hidden bug in the map stability mechanism. We will re-add these CHECK()s once the bug is found and fixed. BUG=372173 LOG=y R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/287363002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc index 0b9411b..1fd4405 100644 --- a/src/arm/lithium-codegen-arm.cc +++ b/src/arm/lithium-codegen-arm.cc @@ -1884,13 +1884,6 @@ void LCodeGen::DoConstantE(LConstantE* instr) { void LCodeGen::DoConstantT(LConstantT* instr) { Handle object = instr->value(isolate()); AllowDeferredHandleDereference smi_check; - if (instr->hydrogen()->HasObjectMap()) { - Handle object_map = instr->hydrogen()->ObjectMap().handle(); - ASSERT(object->IsHeapObject()); - ASSERT(!object_map->is_stable() || - *object_map == Handle::cast(object)->map()); - USE(object_map); - } __ Move(ToRegister(instr->result()), object); } diff --git a/src/arm64/lithium-codegen-arm64.cc b/src/arm64/lithium-codegen-arm64.cc index e35806a..5be55d7 100644 --- a/src/arm64/lithium-codegen-arm64.cc +++ b/src/arm64/lithium-codegen-arm64.cc @@ -2561,13 +2561,6 @@ void LCodeGen::DoConstantS(LConstantS* instr) { void LCodeGen::DoConstantT(LConstantT* instr) { Handle object = instr->value(isolate()); AllowDeferredHandleDereference smi_check; - if (instr->hydrogen()->HasObjectMap()) { - Handle object_map = instr->hydrogen()->ObjectMap().handle(); - ASSERT(object->IsHeapObject()); - ASSERT(!object_map->is_stable() || - *object_map == Handle::cast(object)->map()); - USE(object_map); - } __ LoadObject(ToRegister(instr->result()), object); } diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc index 159fd3d..f4bf601 100644 --- a/src/ia32/lithium-codegen-ia32.cc +++ b/src/ia32/lithium-codegen-ia32.cc @@ -1749,13 +1749,6 @@ void LCodeGen::DoConstantT(LConstantT* instr) { Register reg = ToRegister(instr->result()); Handle object = instr->value(isolate()); AllowDeferredHandleDereference smi_check; - if (instr->hydrogen()->HasObjectMap()) { - Handle object_map = instr->hydrogen()->ObjectMap().handle(); - ASSERT(object->IsHeapObject()); - ASSERT(!object_map->is_stable() || - *object_map == Handle::cast(object)->map()); - USE(object_map); - } __ LoadObject(reg, object); } diff --git a/src/mips/lithium-codegen-mips.cc b/src/mips/lithium-codegen-mips.cc index d33cbb1..ba03e16 100644 --- a/src/mips/lithium-codegen-mips.cc +++ b/src/mips/lithium-codegen-mips.cc @@ -1739,13 +1739,6 @@ void LCodeGen::DoConstantE(LConstantE* instr) { void LCodeGen::DoConstantT(LConstantT* instr) { Handle object = instr->value(isolate()); AllowDeferredHandleDereference smi_check; - if (instr->hydrogen()->HasObjectMap()) { - Handle object_map = instr->hydrogen()->ObjectMap().handle(); - ASSERT(object->IsHeapObject()); - ASSERT(!object_map->is_stable() || - *object_map == Handle::cast(object)->map()); - USE(object_map); - } __ li(ToRegister(instr->result()), object); } diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc index c928523..2d34056 100644 --- a/src/x64/lithium-codegen-x64.cc +++ b/src/x64/lithium-codegen-x64.cc @@ -1697,13 +1697,6 @@ void LCodeGen::DoConstantE(LConstantE* instr) { void LCodeGen::DoConstantT(LConstantT* instr) { Handle object = instr->value(isolate()); AllowDeferredHandleDereference smi_check; - if (instr->hydrogen()->HasObjectMap()) { - Handle object_map = instr->hydrogen()->ObjectMap().handle(); - ASSERT(object->IsHeapObject()); - ASSERT(!object_map->is_stable() || - *object_map == Handle::cast(object)->map()); - USE(object_map); - } __ Move(ToRegister(instr->result()), object); }