Reviewers: Sven Panne,
Message:
PTAL
Description:
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
Please review this at https://codereview.chromium.org/287363002/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+0, -35 lines):
M src/arm/lithium-codegen-arm.cc
M src/arm64/lithium-codegen-arm64.cc
M src/ia32/lithium-codegen-ia32.cc
M src/mips/lithium-codegen-mips.cc
M src/x64/lithium-codegen-x64.cc
Index: src/arm/lithium-codegen-arm.cc
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
index
0b9411bf7776cc8053e8833ec878ce0d9e2f229a..1fd44056e89e484fafb59b76f86ecb203a2f8204
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> object = instr->value(isolate());
AllowDeferredHandleDereference smi_check;
- if (instr->hydrogen()->HasObjectMap()) {
- Handle<Map> object_map = instr->hydrogen()->ObjectMap().handle();
- ASSERT(object->IsHeapObject());
- ASSERT(!object_map->is_stable() ||
- *object_map == Handle<HeapObject>::cast(object)->map());
- USE(object_map);
- }
__ Move(ToRegister(instr->result()), object);
}
Index: src/arm64/lithium-codegen-arm64.cc
diff --git a/src/arm64/lithium-codegen-arm64.cc
b/src/arm64/lithium-codegen-arm64.cc
index
e35806acb5f94a6fddce2d4bce0c7efea3415fa2..5be55d781928465b0442ccbfaec6c0b4bbdfb97a
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> object = instr->value(isolate());
AllowDeferredHandleDereference smi_check;
- if (instr->hydrogen()->HasObjectMap()) {
- Handle<Map> object_map = instr->hydrogen()->ObjectMap().handle();
- ASSERT(object->IsHeapObject());
- ASSERT(!object_map->is_stable() ||
- *object_map == Handle<HeapObject>::cast(object)->map());
- USE(object_map);
- }
__ LoadObject(ToRegister(instr->result()), object);
}
Index: src/ia32/lithium-codegen-ia32.cc
diff --git a/src/ia32/lithium-codegen-ia32.cc
b/src/ia32/lithium-codegen-ia32.cc
index
159fd3d03886a7e4f153f76816f1b554723de2c0..f4bf601c0c5fa55ef86385eaea7e263d21a0ff3f
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> object = instr->value(isolate());
AllowDeferredHandleDereference smi_check;
- if (instr->hydrogen()->HasObjectMap()) {
- Handle<Map> object_map = instr->hydrogen()->ObjectMap().handle();
- ASSERT(object->IsHeapObject());
- ASSERT(!object_map->is_stable() ||
- *object_map == Handle<HeapObject>::cast(object)->map());
- USE(object_map);
- }
__ LoadObject(reg, object);
}
Index: src/mips/lithium-codegen-mips.cc
diff --git a/src/mips/lithium-codegen-mips.cc
b/src/mips/lithium-codegen-mips.cc
index
d33cbb134d6302db03733b4e775f2bb1aa57c419..ba03e168e5572692b0c2fa912859d66c34e086cf
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> object = instr->value(isolate());
AllowDeferredHandleDereference smi_check;
- if (instr->hydrogen()->HasObjectMap()) {
- Handle<Map> object_map = instr->hydrogen()->ObjectMap().handle();
- ASSERT(object->IsHeapObject());
- ASSERT(!object_map->is_stable() ||
- *object_map == Handle<HeapObject>::cast(object)->map());
- USE(object_map);
- }
__ li(ToRegister(instr->result()), object);
}
Index: src/x64/lithium-codegen-x64.cc
diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc
index
c928523f446fc6e17aebd70b7cf102990137a3cb..2d34056e7180e3c4450b843fdd5e11c4261b5c4c
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> object = instr->value(isolate());
AllowDeferredHandleDereference smi_check;
- if (instr->hydrogen()->HasObjectMap()) {
- Handle<Map> object_map = instr->hydrogen()->ObjectMap().handle();
- ASSERT(object->IsHeapObject());
- ASSERT(!object_map->is_stable() ||
- *object_map == Handle<HeapObject>::cast(object)->map());
- USE(object_map);
- }
__ Move(ToRegister(instr->result()), object);
}
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.