[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:
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());
|
||||
|
||||
Reference in New Issue
Block a user