Reviewers: Mads Ager,
Description:
Merge revision 6721 to the 3.0 branch.
This fixes a crash triggered when V8 tries to optimize an infinite loop
while the loop is running.
Please review this at http://codereview.chromium.org/6489025/
SVN Base: https://v8.googlecode.com/svn/branches/3.0
Affected files:
M src/hydrogen.cc
M src/version.cc
Index: src/hydrogen.cc
diff --git a/src/hydrogen.cc b/src/hydrogen.cc
index
c405312f1a1ede4bbdd30033d64c9d4d642dd71e..227dfe21b6de552c6e2f6fdf8daf1f3137f85459
100644
--- a/src/hydrogen.cc
+++ b/src/hydrogen.cc
@@ -1813,17 +1813,15 @@ void
HGraph::InsertRepresentationChangeForUse(HValue* value,
bool is_truncating) {
// Insert the representation change right before its use. For phi-uses we
// insert at the end of the corresponding predecessor.
- HBasicBlock* insert_block = use->block();
+ HInstruction* next = NULL;
if (use->IsPhi()) {
int index = 0;
while (use->OperandAt(index) != value) ++index;
- insert_block = insert_block->predecessors()->at(index);
+ next = use->block()->predecessors()->at(index)->end();
+ } else {
+ next = HInstruction::cast(use);
}
- HInstruction* next = (insert_block == use->block())
- ? HInstruction::cast(use)
- : insert_block->end();
-
// For constants we try to make the representation change at compile
// time. When a representation change is not possible without loss of
// information we treat constants like normal instructions and insert the
Index: src/version.cc
diff --git a/src/version.cc b/src/version.cc
index
d556c6498a9ea9b2bcbd2f6f23bc263c8cd360d8..f2c943a7861bfa7e14780555b1982abbd0b834e6
100644
--- a/src/version.cc
+++ b/src/version.cc
@@ -35,7 +35,7 @@
#define MAJOR_VERSION 3
#define MINOR_VERSION 0
#define BUILD_NUMBER 12
-#define PATCH_LEVEL 15
+#define PATCH_LEVEL 16
#define CANDIDATE_VERSION false
// Define SONAME to have the SCons build the put a specific SONAME into the
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev