Goto does not emit a jump if the target is the next emitted block.
However, if there is an unreachable block between Goto and the jump
target, we still emit a jump even though the unreachable block is
not actually emitted. That jump is unnecessary.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
174883002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19739
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
int LCodeGenBase::GetNextEmittedBlock() const {
for (int i = current_block_ + 1; i < graph()->blocks()->length(); ++i) {
+ if (!graph()->blocks()->at(i)->IsReachable()) continue;
if (!chunk_->GetLabel(i)->HasReplacement()) return i;
}
return -1;