Index: src/lithium.h |
diff --git a/src/lithium.h b/src/lithium.h |
index 5b65045762872756930c534cbd6f7f9e64b880b9..050b3e5498dac0813c3a79a9e1848dea394e6ec1 100644 |
--- a/src/lithium.h |
+++ b/src/lithium.h |
@@ -5,9 +5,12 @@ |
#ifndef V8_LITHIUM_H_ |
#define V8_LITHIUM_H_ |
+#include <set> |
+ |
#include "allocation.h" |
#include "hydrogen.h" |
#include "safepoint-table.h" |
+#include "zone-allocator.h" |
namespace v8 { |
namespace internal { |
@@ -642,6 +645,13 @@ class LChunk : public ZoneObject { |
inlined_closures_.Add(closure, zone()); |
} |
+ void AddDeprecationDependency(Handle<Map> map) { |
+ ASSERT(!map->is_deprecated()); |
+ if (!map->CanBeDeprecated()) return; |
+ ASSERT(!info_->IsStub()); |
+ deprecation_dependencies_.insert(map); |
+ } |
+ |
Zone* zone() const { return info_->zone(); } |
Handle<Code> Codegen(); |
@@ -657,12 +667,19 @@ class LChunk : public ZoneObject { |
int spill_slot_count_; |
private: |
+ typedef std::less<Handle<Map> > MapLess; |
+ typedef zone_allocator<Handle<Map> > MapAllocator; |
+ typedef std::set<Handle<Map>, MapLess, MapAllocator> MapSet; |
+ |
+ void CommitDependencies(Handle<Code> code) const; |
+ |
CompilationInfo* info_; |
HGraph* const graph_; |
BitVector* allocated_double_registers_; |
ZoneList<LInstruction*> instructions_; |
ZoneList<LPointerMap*> pointer_maps_; |
ZoneList<Handle<JSFunction> > inlined_closures_; |
+ MapSet deprecation_dependencies_; |
}; |