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

Unified Diff: src/hydrogen.h

Issue 11365174: A change in the way we place TransitionElementKinds in the tree. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Finally addressed all comments from first review. Created 8 years, 1 month 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
Index: src/hydrogen.h
diff --git a/src/hydrogen.h b/src/hydrogen.h
index 78ab571b5c52376549a07423a1dfcc2b9decd74f..0eb14b1c4cf8df1d2dbfa0afd84365322ac9f2e3 100644
--- a/src/hydrogen.h
+++ b/src/hydrogen.h
@@ -242,6 +242,8 @@ class HLoopInformation: public ZoneObject {
HStackCheck* stack_check_;
};
+
+class MarkedTransitionElementsGroup;
danno 2012/11/28 14:42:10 Marked has a meaning in the GC space, "bookmarked"
class BoundsCheckTable;
class HGraph: public ZoneObject {
public:
@@ -370,6 +372,11 @@ class HGraph: public ZoneObject {
uint32_instructions_->Add(instr, zone());
}
+ void AddMarkedTransitionElementsGroup(
+ MarkedTransitionElementsGroup* group) {
+ marked_transitions_.Add(group, zone());
+ }
+
private:
HConstant* GetConstant(SetOncePointer<HConstant>* pointer,
Handle<Object> value);
@@ -377,6 +384,7 @@ class HGraph: public ZoneObject {
int32_t integer_value);
void MarkAsDeoptimizingRecursively(HBasicBlock* block);
+ void InsertElementsTransitions();
void InsertTypeConversions(HInstruction* instr);
void PropagateMinusZeroChecks(HValue* value, BitVector* visited);
void RecursivelyMarkPhiDeoptimizeOnUndefined(HPhi* phi);
@@ -398,6 +406,7 @@ class HGraph: public ZoneObject {
ZoneList<HValue*> values_;
ZoneList<HPhi*>* phi_list_;
ZoneList<HInstruction*>* uint32_instructions_;
+ ZoneList<MarkedTransitionElementsGroup*> marked_transitions_;
SetOncePointer<HConstant> undefined_constant_;
SetOncePointer<HConstant> constant_1_;
SetOncePointer<HConstant> constant_minus1_;
@@ -1144,7 +1153,8 @@ class HGraphBuilder: public AstVisitor {
HValue* val,
HValue* dependency,
ElementsKind elements_kind,
- bool is_store);
+ bool is_store,
+ bool defer_initialization);
HInstruction* TryBuildConsolidatedElementLoad(HValue* object,
HValue* key,
@@ -1152,18 +1162,20 @@ class HGraphBuilder: public AstVisitor {
SmallMapList* maps);
HInstruction* BuildUncheckedMonomorphicElementAccess(HValue* object,
- HValue* key,
- HValue* val,
- HCheckMaps* mapcheck,
- Handle<Map> map,
- bool is_store);
+ HValue* key,
+ HValue* val,
+ HCheckMaps* mapcheck,
+ Handle<Map> map,
+ bool is_store,
+ bool defer_initialization);
HInstruction* BuildMonomorphicElementAccess(HValue* object,
- HValue* key,
- HValue* val,
- HValue* dependency,
- Handle<Map> map,
- bool is_store);
+ HValue* key,
+ HValue* val,
+ HValue* dependency,
+ Handle<Map> map,
+ bool is_store,
+ HCheckMaps** checkmap_instr = NULL);
HValue* HandlePolymorphicElementAccess(HValue* object,
HValue* key,

Powered by Google App Engine
This is Rietveld 408576698