Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(955)

Unified Diff: src/compiler/verifier.cc

Issue 2692753004: [turbofan] escape analysis supports arguments object and rest elements (Closed)
Patch Set: handle the case where Deoptimizer::function_ is a Smi Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/compiler/typer.cc ('k') | src/deoptimizer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/verifier.cc
diff --git a/src/compiler/verifier.cc b/src/compiler/verifier.cc
index 7f63ceb803b13098223cd9841d1661e7f48f93f4..6ed83f70cc56c03217e57e26e02ef4c97b86ac94 100644
--- a/src/compiler/verifier.cc
+++ b/src/compiler/verifier.cc
@@ -22,6 +22,7 @@
#include "src/compiler/operator.h"
#include "src/compiler/schedule.h"
#include "src/compiler/simplified-operator.h"
+#include "src/compiler/type-cache.h"
#include "src/ostreams.h"
namespace v8 {
@@ -496,7 +497,7 @@ void Verifier::Visitor::Check(Node* node) {
}
case IrOpcode::kStateValues:
case IrOpcode::kTypedStateValues:
- case IrOpcode::kArgumentsObjectState:
+ case IrOpcode::kArgumentsElementsState:
case IrOpcode::kObjectState:
case IrOpcode::kTypedObjectState:
// TODO(jarin): what are the constraints on these?
@@ -963,8 +964,17 @@ void Verifier::Visitor::Check(Node* node) {
CheckValueInputIs(node, 0, Type::Any());
CheckTypeIs(node, Type::Boolean());
break;
- case IrOpcode::kNewRestParameterElements:
+ case IrOpcode::kArgumentsLength:
+ CheckValueInputIs(node, 0, Type::ExternalPointer());
+ CheckTypeIs(node, TypeCache::Get().kArgumentsLengthType);
+ break;
+ case IrOpcode::kArgumentsFrame:
+ CheckTypeIs(node, Type::ExternalPointer());
+ break;
case IrOpcode::kNewUnmappedArgumentsElements:
+ CheckValueInputIs(node, 0, Type::ExternalPointer());
+ CheckValueInputIs(node, 1, Type::Range(-Code::kMaxArguments,
+ Code::kMaxArguments, zone));
CheckTypeIs(node, Type::OtherInternal());
break;
case IrOpcode::kAllocate:
« no previous file with comments | « src/compiler/typer.cc ('k') | src/deoptimizer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698