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/operation-typer.cc

Issue 2227493002: [turbofan] Add initial support for growing stores. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 4 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
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 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/operation-typer.h" 5 #include "src/compiler/operation-typer.h"
6 6
7 #include "src/compiler/common-operator.h" 7 #include "src/compiler/common-operator.h"
8 #include "src/factory.h" 8 #include "src/factory.h"
9 #include "src/isolate.h" 9 #include "src/isolate.h"
10 #include "src/type-cache.h" 10 #include "src/type-cache.h"
(...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 if (type->Is(cache_.kZeroish)) return cache_.kSingletonZero; 477 if (type->Is(cache_.kZeroish)) return cache_.kSingletonZero;
478 if (type->Is(unsigned32ish_)) { 478 if (type->Is(unsigned32ish_)) {
479 return Type::Intersect(Type::Union(type, cache_.kSingletonZero, zone()), 479 return Type::Intersect(Type::Union(type, cache_.kSingletonZero, zone()),
480 Type::Unsigned32(), zone()); 480 Type::Unsigned32(), zone());
481 } 481 }
482 return Type::Unsigned32(); 482 return Type::Unsigned32();
483 } 483 }
484 484
485 Type* OperationTyper::NumberSilenceNaN(Type* type) { 485 Type* OperationTyper::NumberSilenceNaN(Type* type) {
486 DCHECK(type->Is(Type::Number())); 486 DCHECK(type->Is(Type::Number()));
487 // TODO(turbofan): We should have a dedicated type for the signaling NaN. 487 // TODO(turbofan): We should have a dedicated type for the signaling NaN.
Jarin 2016/08/08 08:03:47 Please add a comment that signposts a horrible hac
Benedikt Meurer 2016/08/08 08:12:55 Done.
488 if (type->Maybe(Type::NaN())) return Type::Number();
488 return type; 489 return type;
489 } 490 }
490 491
491 Type* OperationTyper::NumberAdd(Type* lhs, Type* rhs) { 492 Type* OperationTyper::NumberAdd(Type* lhs, Type* rhs) {
492 DCHECK(lhs->Is(Type::Number())); 493 DCHECK(lhs->Is(Type::Number()));
493 DCHECK(rhs->Is(Type::Number())); 494 DCHECK(rhs->Is(Type::Number()));
494 495
495 if (!lhs->IsInhabited() || !rhs->IsInhabited()) { 496 if (!lhs->IsInhabited() || !rhs->IsInhabited()) {
496 return Type::None(); 497 return Type::None();
497 } 498 }
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after
912 return singleton_true(); 913 return singleton_true();
913 } 914 }
914 915
915 Type* OperationTyper::TypeTypeGuard(const Operator* sigma_op, Type* input) { 916 Type* OperationTyper::TypeTypeGuard(const Operator* sigma_op, Type* input) {
916 return Type::Intersect(input, TypeGuardTypeOf(sigma_op), zone()); 917 return Type::Intersect(input, TypeGuardTypeOf(sigma_op), zone());
917 } 918 }
918 919
919 } // namespace compiler 920 } // namespace compiler
920 } // namespace internal 921 } // namespace internal
921 } // namespace v8 922 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698