Revision: 18231
Author: [email protected]
Date: Tue Dec 3 12:32:35 2013 UTC
Log: Make LCodeGen::RegisterDependentCodeForEmbeddedMaps platform
independent.
BUG=
[email protected]
Review URL: https://chromiumcodereview.appspot.com/99053002
http://code.google.com/p/v8/source/detail?r=18231
Modified:
/branches/bleeding_edge/src/arm/lithium-codegen-arm.cc
/branches/bleeding_edge/src/arm/lithium-codegen-arm.h
/branches/bleeding_edge/src/ia32/lithium-codegen-ia32.cc
/branches/bleeding_edge/src/ia32/lithium-codegen-ia32.h
/branches/bleeding_edge/src/lithium-codegen.cc
/branches/bleeding_edge/src/lithium-codegen.h
/branches/bleeding_edge/src/mips/lithium-codegen-mips.cc
/branches/bleeding_edge/src/mips/lithium-codegen-mips.h
/branches/bleeding_edge/src/x64/lithium-codegen-x64.cc
/branches/bleeding_edge/src/x64/lithium-codegen-x64.h
=======================================
--- /branches/bleeding_edge/src/arm/lithium-codegen-arm.cc Mon Dec 2
15:27:57 2013 UTC
+++ /branches/bleeding_edge/src/arm/lithium-codegen-arm.cc Tue Dec 3
12:32:35 2013 UTC
@@ -84,9 +84,7 @@
ASSERT(is_done());
code->set_stack_slots(GetStackSlotCount());
code->set_safepoint_table_offset(safepoints_.GetCodeOffset());
- if (FLAG_weak_embedded_maps_in_optimized_code) {
- RegisterDependentCodeForEmbeddedMaps(code);
- }
+ RegisterDependentCodeForEmbeddedMaps(code);
PopulateDeoptimizationData(code);
info()->CommitDependencies(code);
}
@@ -885,36 +883,6 @@
: Deoptimizer::EAGER;
DeoptimizeIf(condition, environment, bailout_type);
}
-
-
-void LCodeGen::RegisterDependentCodeForEmbeddedMaps(Handle<Code> code) {
- ZoneList<Handle<Map> > maps(1, zone());
- ZoneList<Handle<JSObject> > objects(1, zone());
- int mode_mask = RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT);
- for (RelocIterator it(*code, mode_mask); !it.done(); it.next()) {
- if (Code::IsWeakEmbeddedObject(code->kind(),
it.rinfo()->target_object())) {
- if (it.rinfo()->target_object()->IsMap()) {
- Handle<Map> map(Map::cast(it.rinfo()->target_object()));
- maps.Add(map, zone());
- } else if (it.rinfo()->target_object()->IsJSObject()) {
- Handle<JSObject>
object(JSObject::cast(it.rinfo()->target_object()));
- objects.Add(object, zone());
- }
- }
- }
-#ifdef VERIFY_HEAP
- // This disables verification of weak embedded objects after full GC.
- // AddDependentCode can cause a GC, which would observe the state where
- // this code is not yet in the depended code lists of the embedded maps.
- NoWeakObjectVerificationScope disable_verification_of_embedded_objects;
-#endif
- for (int i = 0; i < maps.length(); i++) {
- maps.at(i)->AddDependentCode(DependentCode::kWeaklyEmbeddedGroup,
code);
- }
- for (int i = 0; i < objects.length(); i++) {
- AddWeakObjectToCodeDependency(isolate()->heap(), objects.at(i), code);
- }
-}
void LCodeGen::PopulateDeoptimizationData(Handle<Code> code) {
=======================================
--- /branches/bleeding_edge/src/arm/lithium-codegen-arm.h Fri Nov 22
10:21:47 2013 UTC
+++ /branches/bleeding_edge/src/arm/lithium-codegen-arm.h Tue Dec 3
12:32:35 2013 UTC
@@ -267,7 +267,6 @@
bool is_uint32,
int* object_index_pointer,
int* dematerialized_index_pointer);
- void RegisterDependentCodeForEmbeddedMaps(Handle<Code> code);
void PopulateDeoptimizationData(Handle<Code> code);
int DefineDeoptimizationLiteral(Handle<Object> literal);
=======================================
--- /branches/bleeding_edge/src/ia32/lithium-codegen-ia32.cc Mon Dec 2
13:14:07 2013 UTC
+++ /branches/bleeding_edge/src/ia32/lithium-codegen-ia32.cc Tue Dec 3
12:32:35 2013 UTC
@@ -103,9 +103,7 @@
ASSERT(is_done());
code->set_stack_slots(GetStackSlotCount());
code->set_safepoint_table_offset(safepoints_.GetCodeOffset());
- if (FLAG_weak_embedded_maps_in_optimized_code) {
- RegisterDependentCodeForEmbeddedMaps(code);
- }
+ RegisterDependentCodeForEmbeddedMaps(code);
PopulateDeoptimizationData(code);
if (!info()->IsStub()) {
Deoptimizer::EnsureRelocSpaceForLazyDeoptimization(code);
@@ -1160,36 +1158,6 @@
: Deoptimizer::EAGER;
DeoptimizeIf(cc, environment, bailout_type);
}
-
-
-void LCodeGen::RegisterDependentCodeForEmbeddedMaps(Handle<Code> code) {
- ZoneList<Handle<Map> > maps(1, zone());
- ZoneList<Handle<JSObject> > objects(1, zone());
- int mode_mask = RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT);
- for (RelocIterator it(*code, mode_mask); !it.done(); it.next()) {
- if (Code::IsWeakEmbeddedObject(code->kind(),
it.rinfo()->target_object())) {
- if (it.rinfo()->target_object()->IsMap()) {
- Handle<Map> map(Map::cast(it.rinfo()->target_object()));
- maps.Add(map, zone());
- } else if (it.rinfo()->target_object()->IsJSObject()) {
- Handle<JSObject>
object(JSObject::cast(it.rinfo()->target_object()));
- objects.Add(object, zone());
- }
- }
- }
-#ifdef VERIFY_HEAP
- // This disables verification of weak embedded objects after full GC.
- // AddDependentCode can cause a GC, which would observe the state where
- // this code is not yet in the depended code lists of the embedded maps.
- NoWeakObjectVerificationScope disable_verification_of_embedded_objects;
-#endif
- for (int i = 0; i < maps.length(); i++) {
- maps.at(i)->AddDependentCode(DependentCode::kWeaklyEmbeddedGroup,
code);
- }
- for (int i = 0; i < objects.length(); i++) {
- AddWeakObjectToCodeDependency(isolate()->heap(), objects.at(i), code);
- }
-}
void LCodeGen::PopulateDeoptimizationData(Handle<Code> code) {
=======================================
--- /branches/bleeding_edge/src/ia32/lithium-codegen-ia32.h Fri Nov 22
10:21:47 2013 UTC
+++ /branches/bleeding_edge/src/ia32/lithium-codegen-ia32.h Tue Dec 3
12:32:35 2013 UTC
@@ -282,7 +282,6 @@
bool is_uint32,
int* object_index_pointer,
int* dematerialized_index_pointer);
- void RegisterDependentCodeForEmbeddedMaps(Handle<Code> code);
void PopulateDeoptimizationData(Handle<Code> code);
int DefineDeoptimizationLiteral(Handle<Object> literal);
=======================================
--- /branches/bleeding_edge/src/lithium-codegen.cc Mon Oct 21 13:35:48 2013
UTC
+++ /branches/bleeding_edge/src/lithium-codegen.cc Tue Dec 3 12:32:35 2013
UTC
@@ -145,6 +145,36 @@
}
return -1;
}
+
+
+void LCodeGenBase::RegisterDependentCodeForEmbeddedMaps(Handle<Code> code)
{
+ ZoneList<Handle<Map> > maps(1, zone());
+ ZoneList<Handle<JSObject> > objects(1, zone());
+ int mode_mask = RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT);
+ for (RelocIterator it(*code, mode_mask); !it.done(); it.next()) {
+ if (Code::IsWeakEmbeddedObject(code->kind(),
it.rinfo()->target_object())) {
+ if (it.rinfo()->target_object()->IsMap()) {
+ Handle<Map> map(Map::cast(it.rinfo()->target_object()));
+ maps.Add(map, zone());
+ } else if (it.rinfo()->target_object()->IsJSObject()) {
+ Handle<JSObject>
object(JSObject::cast(it.rinfo()->target_object()));
+ objects.Add(object, zone());
+ }
+ }
+ }
+#ifdef VERIFY_HEAP
+ // This disables verification of weak embedded objects after full GC.
+ // AddDependentCode can cause a GC, which would observe the state where
+ // this code is not yet in the depended code lists of the embedded maps.
+ NoWeakObjectVerificationScope disable_verification_of_embedded_objects;
+#endif
+ for (int i = 0; i < maps.length(); i++) {
+ maps.at(i)->AddDependentCode(DependentCode::kWeaklyEmbeddedGroup,
code);
+ }
+ for (int i = 0; i < objects.length(); i++) {
+ AddWeakObjectToCodeDependency(isolate()->heap(), objects.at(i), code);
+ }
+}
} } // namespace v8::internal
=======================================
--- /branches/bleeding_edge/src/lithium-codegen.h Mon Oct 21 13:35:48 2013
UTC
+++ /branches/bleeding_edge/src/lithium-codegen.h Tue Dec 3 12:32:35 2013
UTC
@@ -66,6 +66,8 @@
int GetNextEmittedBlock() const;
+ void RegisterDependentCodeForEmbeddedMaps(Handle<Code> code);
+
protected:
enum Status {
UNUSED,
=======================================
--- /branches/bleeding_edge/src/mips/lithium-codegen-mips.cc Mon Dec 2
21:18:22 2013 UTC
+++ /branches/bleeding_edge/src/mips/lithium-codegen-mips.cc Tue Dec 3
12:32:35 2013 UTC
@@ -84,9 +84,7 @@
ASSERT(is_done());
code->set_stack_slots(GetStackSlotCount());
code->set_safepoint_table_offset(safepoints_.GetCodeOffset());
- if (FLAG_weak_embedded_maps_in_optimized_code) {
- RegisterDependentCodeForEmbeddedMaps(code);
- }
+ RegisterDependentCodeForEmbeddedMaps(code);
PopulateDeoptimizationData(code);
info()->CommitDependencies(code);
}
@@ -845,36 +843,6 @@
: Deoptimizer::EAGER;
DeoptimizeIf(condition, environment, bailout_type, src1, src2);
}
-
-
-void LCodeGen::RegisterDependentCodeForEmbeddedMaps(Handle<Code> code) {
- ZoneList<Handle<Map> > maps(1, zone());
- ZoneList<Handle<JSObject> > objects(1, zone());
- int mode_mask = RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT);
- for (RelocIterator it(*code, mode_mask); !it.done(); it.next()) {
- if (Code::IsWeakEmbeddedObject(code->kind(),
it.rinfo()->target_object())) {
- if (it.rinfo()->target_object()->IsMap()) {
- Handle<Map> map(Map::cast(it.rinfo()->target_object()));
- maps.Add(map, zone());
- } else if (it.rinfo()->target_object()->IsJSObject()) {
- Handle<JSObject>
object(JSObject::cast(it.rinfo()->target_object()));
- objects.Add(object, zone());
- }
- }
- }
-#ifdef VERIFY_HEAP
- // This disables verification of weak embedded objects after full GC.
- // AddDependentCode can cause a GC, which would observe the state where
- // this code is not yet in the depended code lists of the embedded maps.
- NoWeakObjectVerificationScope disable_verification_of_embedded_objects;
-#endif
- for (int i = 0; i < maps.length(); i++) {
- maps.at(i)->AddDependentCode(DependentCode::kWeaklyEmbeddedGroup,
code);
- }
- for (int i = 0; i < objects.length(); i++) {
- AddWeakObjectToCodeDependency(isolate()->heap(), objects.at(i), code);
- }
-}
void LCodeGen::PopulateDeoptimizationData(Handle<Code> code) {
=======================================
--- /branches/bleeding_edge/src/mips/lithium-codegen-mips.h Fri Nov 22
16:05:48 2013 UTC
+++ /branches/bleeding_edge/src/mips/lithium-codegen-mips.h Tue Dec 3
12:32:35 2013 UTC
@@ -271,7 +271,6 @@
bool is_uint32,
int* object_index_pointer,
int* dematerialized_index_pointer);
- void RegisterDependentCodeForEmbeddedMaps(Handle<Code> code);
void PopulateDeoptimizationData(Handle<Code> code);
int DefineDeoptimizationLiteral(Handle<Object> literal);
=======================================
--- /branches/bleeding_edge/src/x64/lithium-codegen-x64.cc Mon Dec 2
13:14:07 2013 UTC
+++ /branches/bleeding_edge/src/x64/lithium-codegen-x64.cc Tue Dec 3
12:32:35 2013 UTC
@@ -775,36 +775,6 @@
: Deoptimizer::EAGER;
DeoptimizeIf(cc, environment, bailout_type);
}
-
-
-void LCodeGen::RegisterDependentCodeForEmbeddedMaps(Handle<Code> code) {
- ZoneList<Handle<Map> > maps(1, zone());
- ZoneList<Handle<JSObject> > objects(1, zone());
- int mode_mask = RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT);
- for (RelocIterator it(*code, mode_mask); !it.done(); it.next()) {
- if (Code::IsWeakEmbeddedObject(code->kind(),
it.rinfo()->target_object())) {
- if (it.rinfo()->target_object()->IsMap()) {
- Handle<Map> map(Map::cast(it.rinfo()->target_object()));
- maps.Add(map, zone());
- } else if (it.rinfo()->target_object()->IsJSObject()) {
- Handle<JSObject>
object(JSObject::cast(it.rinfo()->target_object()));
- objects.Add(object, zone());
- }
- }
- }
-#ifdef VERIFY_HEAP
- // This disables verification of weak embedded objects after full GC.
- // AddDependentCode can cause a GC, which would observe the state where
- // this code is not yet in the depended code lists of the embedded maps.
- NoWeakObjectVerificationScope disable_verification_of_embedded_objects;
-#endif
- for (int i = 0; i < maps.length(); i++) {
- maps.at(i)->AddDependentCode(DependentCode::kWeaklyEmbeddedGroup,
code);
- }
- for (int i = 0; i < objects.length(); i++) {
- AddWeakObjectToCodeDependency(isolate()->heap(), objects.at(i), code);
- }
-}
void LCodeGen::PopulateDeoptimizationData(Handle<Code> code) {
=======================================
--- /branches/bleeding_edge/src/x64/lithium-codegen-x64.h Fri Nov 22
10:21:47 2013 UTC
+++ /branches/bleeding_edge/src/x64/lithium-codegen-x64.h Tue Dec 3
12:32:35 2013 UTC
@@ -238,7 +238,6 @@
bool is_uint32,
int* object_index_pointer,
int* dematerialized_index_pointer);
- void RegisterDependentCodeForEmbeddedMaps(Handle<Code> code);
void PopulateDeoptimizationData(Handle<Code> code);
int DefineDeoptimizationLiteral(Handle<Object> literal);
--
--
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/groups/opt_out.