Index: src/hydrogen-load-elimination.cc |
diff --git a/src/hydrogen-load-elimination.cc b/src/hydrogen-load-elimination.cc |
index f2e993b18dea2305884acd01274f85edab887260..ca322ebc76e89729c12571c791bfad395d6f614b 100644 |
--- a/src/hydrogen-load-elimination.cc |
+++ b/src/hydrogen-load-elimination.cc |
@@ -176,6 +176,10 @@ class HLoadEliminationTable : public ZoneObject { |
approx = approx->next_; |
} |
} |
+ if (FLAG_trace_load_elimination) { |
+ TRACE((" merge-to B%d\n", succ->block_id())); |
+ Print(); |
+ } |
return this; |
} |
@@ -208,6 +212,11 @@ class HLoadEliminationTable : public ZoneObject { |
// the stored values are the same), return NULL indicating that this store |
// instruction is redundant. Otherwise, return {instr}. |
HValue* store(HStoreNamedField* instr) { |
+ if (instr->store_mode() == PREINITIALIZING_STORE) { |
+ TRACE((" skipping preinitializing store\n")); |
+ return instr; |
+ } |
+ |
int field = FieldOf(instr->access()); |
if (field < 0) return KillIfMisaligned(instr); |