Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(478)

Unified Diff: src/lithium.h

Issue 256303007: Don't add code dependencies on transitioning stores eagerly. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« src/handles.h ('K') | « src/ia32/lithium-ia32.cc ('k') | src/lithium.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_;
};
« src/handles.h ('K') | « src/ia32/lithium-ia32.cc ('k') | src/lithium.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698