[turbofan] Solidify OSR deconstruction code a bit.

It is invalid for OSR deconstruction to leave a graph with a node
representing the OSR normal entry (and no OSR loop entry). Subsequent
lowering phases will not handle {OsrNormalEntry} operators and hence
will lead to serious clogging further down the pipeline.

R=bmeurer@chromium.org
BUG=chromium:641893

Review-Url: https://codereview.chromium.org/2336543002
Cr-Commit-Position: refs/heads/master@{#39340}
This commit is contained in:
mstarzinger 2016-09-12 03:46:05 -07:00 committed by Commit bot
parent 685d488288
commit d2189c6362

View File

@ -271,11 +271,8 @@ void OsrHelper::Deconstruct(JSGraph* jsgraph, CommonOperatorBuilder* common,
}
}
if (osr_loop_entry == nullptr) {
// No OSR entry found, do nothing.
CHECK(osr_normal_entry);
return;
}
CHECK_NOT_NULL(osr_normal_entry); // Should have found the OSR normal entry.
CHECK_NOT_NULL(osr_loop_entry); // Should have found the OSR loop entry.
for (Node* use : osr_loop_entry->uses()) {
if (use->opcode() == IrOpcode::kLoop) {