Version 3.25.2
Fix the bit massaging code in CompleteParserRecorder::WriteNumber. (Chromium issue 346221)
Revert r19455 "Load target types and handlers before IC computation." (Chromium issue 346149)
Don't eliminate loads with incompatible types or representations. (Chromium issue 346343)
Fix for a smi stores optimization on x64 with a regression test. (Chromium issue 345715)
Check that after a weak callback, the handle is either dead or strong (Chromium issue 346061)
negative bounds checking on realm calls (Chromium issue 344285)
Lazy preparsing vs. lazy parsing fix. (Chromium issue 346207)
Fix optimistic BCE to back off after deopt (issue 3176)
Performance and stability improvements on all platforms.
git-svn-id: http://v8.googlecode.com/svn/trunk@19542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/src/hydrogen-load-elimination.cc b/src/hydrogen-load-elimination.cc
index 2228116..f84eac0 100644
--- a/src/hydrogen-load-elimination.cc
+++ b/src/hydrogen-load-elimination.cc
@@ -76,7 +76,9 @@
FieldOf(l->access()),
l->object()->ActualValue()->id()));
HValue* result = load(l);
- if (result != instr) {
+ if (result != instr &&
+ result->type().Equals(instr->type()) &&
+ result->representation().Equals(instr->representation())) {
// The load can be replaced with a previous load or a value.
TRACE((" replace L%d -> v%d\n", instr->id(), result->id()));
instr->DeleteAndReplaceWith(result);