Reviewers: Sven Panne,
Message:
PTAL
Description:
Skip unreachable blocks in loop invariant code motion.
Please review this at https://codereview.chromium.org/194413002/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+2, -1 lines):
M src/hydrogen-gvn.cc
Index: src/hydrogen-gvn.cc
diff --git a/src/hydrogen-gvn.cc b/src/hydrogen-gvn.cc
index
4c98015bee1ef86d9ff7fc2f2c646c4e60e7fd82..149ed586325e0d3c160036b162acc1c2778080f5
100644
--- a/src/hydrogen-gvn.cc
+++ b/src/hydrogen-gvn.cc
@@ -592,7 +592,7 @@ void
HGlobalValueNumberingPhase::LoopInvariantCodeMotion() {
graph()->use_optimistic_licm() ? "yes" : "no");
for (int i = graph()->blocks()->length() - 1; i >= 0; --i) {
HBasicBlock* block = graph()->blocks()->at(i);
- if (block->IsLoopHeader()) {
+ if (block->IsLoopHeader() && block->IsReachable()) {
SideEffects side_effects = loop_side_effects_[block->block_id()];
if (FLAG_trace_gvn) {
HeapStringAllocator allocator;
@@ -616,6 +616,7 @@ void HGlobalValueNumberingPhase::ProcessLoopBlock(
HBasicBlock* block,
HBasicBlock* loop_header,
SideEffects loop_kills) {
+ if (!block->IsReachable()) return;
HBasicBlock* pre_header = loop_header->predecessors()->at(0);
if (FLAG_trace_gvn) {
HeapStringAllocator allocator;
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.