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

Side by Side Diff: src/compiler/typer.cc

Issue 2384113002: [turbofan] Osr value typing + dynamic type checks on entry. (Closed)
Patch Set: Fix liveness block Created 4 years, 2 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 unified diff | Download patch
« no previous file with comments | « src/compiler/simplified-lowering.cc ('k') | src/compiler/verifier.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler/typer.h" 5 #include "src/compiler/typer.h"
6 6
7 #include <iomanip> 7 #include <iomanip>
8 8
9 #include "src/base/flags.h" 9 #include "src/base/flags.h"
10 #include "src/bootstrapper.h" 10 #include "src/bootstrapper.h"
(...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after
543 Type* Typer::Visitor::TypeIfException(Node* node) { 543 Type* Typer::Visitor::TypeIfException(Node* node) {
544 return Type::NonInternal(); 544 return Type::NonInternal();
545 } 545 }
546 546
547 // Common operators. 547 // Common operators.
548 548
549 Type* Typer::Visitor::TypeParameter(Node* node) { return Type::Any(); } 549 Type* Typer::Visitor::TypeParameter(Node* node) { return Type::Any(); }
550 550
551 Type* Typer::Visitor::TypeOsrValue(Node* node) { return Type::Any(); } 551 Type* Typer::Visitor::TypeOsrValue(Node* node) { return Type::Any(); }
552 552
553 Type* Typer::Visitor::TypeOsrGuard(Node* node) {
554 switch (OsrGuardTypeOf(node->op())) {
555 case OsrGuardType::kUninitialized:
556 return Type::None();
557 case OsrGuardType::kSignedSmall:
558 return Type::SignedSmall();
559 case OsrGuardType::kAny:
560 return Type::Any();
561 }
562 UNREACHABLE();
563 return nullptr;
564 }
565
553 Type* Typer::Visitor::TypeRetain(Node* node) { 566 Type* Typer::Visitor::TypeRetain(Node* node) {
554 UNREACHABLE(); 567 UNREACHABLE();
555 return nullptr; 568 return nullptr;
556 } 569 }
557 570
558 Type* Typer::Visitor::TypeInt32Constant(Node* node) { 571 Type* Typer::Visitor::TypeInt32Constant(Node* node) {
559 double number = OpParameter<int32_t>(node); 572 double number = OpParameter<int32_t>(node);
560 return Type::Intersect(Type::Range(number, number, zone()), 573 return Type::Intersect(Type::Range(number, number, zone()),
561 Type::Integral32(), zone()); 574 Type::Integral32(), zone());
562 } 575 }
(...skipping 1153 matching lines...) Expand 10 before | Expand all | Expand 10 after
1716 Type* Typer::Visitor::TypeConstant(Handle<Object> value) { 1729 Type* Typer::Visitor::TypeConstant(Handle<Object> value) {
1717 if (Type::IsInteger(*value)) { 1730 if (Type::IsInteger(*value)) {
1718 return Type::Range(value->Number(), value->Number(), zone()); 1731 return Type::Range(value->Number(), value->Number(), zone());
1719 } 1732 }
1720 return Type::Constant(value, zone()); 1733 return Type::Constant(value, zone());
1721 } 1734 }
1722 1735
1723 } // namespace compiler 1736 } // namespace compiler
1724 } // namespace internal 1737 } // namespace internal
1725 } // namespace v8 1738 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/simplified-lowering.cc ('k') | src/compiler/verifier.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698