[vm/compiler] Revert flow graph check on push arguments

Rationale:
Does not seem all parts of IR were ready for this check

https://github.com/dart-lang/sdk/issues/38577

Change-Id: Ibf32f1338f36f86039564989c4fa1e991e5cc1cc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119484
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
This commit is contained in:
Aart Bik
2019-09-30 22:18:13 +00:00
committed by commit-bot@chromium.org
parent 5e24d6375e
commit 67ae444f29
@@ -106,21 +106,6 @@ static bool IsControlFlow(Instruction* instruction) {
instruction->IsStop() || instruction->IsTailCall();
}
// Asserts push arguments appear in environment at the right place.
static void AssertPushArgsInEnv(Definition* call) {
Environment* env = call->env();
if (env != nullptr) {
const intptr_t env_count = env->Length();
const intptr_t arg_count = call->ArgumentCount();
ASSERT(arg_count <= env_count);
const intptr_t env_base = env_count - arg_count;
for (intptr_t i = 0; i < arg_count; i++) {
ASSERT(call->PushArgumentAt(i) ==
env->ValueAt(env_base + i)->definition());
}
}
}
void FlowGraphChecker::VisitBlocks() {
const GrowableArray<BlockEntryInstr*>& preorder = flow_graph_->preorder();
const GrowableArray<BlockEntryInstr*>& postorder = flow_graph_->postorder();
@@ -410,7 +395,6 @@ void FlowGraphChecker::VisitRedefinition(RedefinitionInstr* def) {
}
void FlowGraphChecker::VisitInstanceCall(InstanceCallInstr* call) {
AssertPushArgsInEnv(call);
// Force-optimized functions may not have instance calls inside them because
// we do not reset ICData for these.
ASSERT(!flow_graph_->function().ForceOptimize());