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

Side by Side Diff: test/cctest/compiler/test-js-typed-lowering.cc

Issue 852763002: [turbofan] Use PlainPrimitiveToNumber whenever possible. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 11 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 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/graph-inl.h" 5 #include "src/compiler/graph-inl.h"
6 #include "src/compiler/js-graph.h" 6 #include "src/compiler/js-graph.h"
7 #include "src/compiler/js-typed-lowering.h" 7 #include "src/compiler/js-typed-lowering.h"
8 #include "src/compiler/machine-operator.h" 8 #include "src/compiler/machine-operator.h"
9 #include "src/compiler/node-properties-inl.h" 9 #include "src/compiler/node-properties-inl.h"
10 #include "src/compiler/opcodes.h" 10 #include "src/compiler/opcodes.h"
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 481
482 482
483 TEST(JSToNumberOfNumberOrOtherPrimitive) { 483 TEST(JSToNumberOfNumberOrOtherPrimitive) {
484 JSTypedLoweringTester R; 484 JSTypedLoweringTester R;
485 Type* others[] = {Type::Undefined(), Type::Null(), Type::Boolean(), 485 Type* others[] = {Type::Undefined(), Type::Null(), Type::Boolean(),
486 Type::String()}; 486 Type::String()};
487 487
488 for (size_t i = 0; i < arraysize(others); i++) { 488 for (size_t i = 0; i < arraysize(others); i++) {
489 Type* t = Type::Union(Type::Number(), others[i], R.main_zone()); 489 Type* t = Type::Union(Type::Number(), others[i], R.main_zone());
490 Node* r = R.ReduceUnop(R.javascript.ToNumber(), t); 490 Node* r = R.ReduceUnop(R.javascript.ToNumber(), t);
491 CHECK_EQ(IrOpcode::kJSToNumber, r->opcode()); 491 CHECK_EQ(IrOpcode::kPlainPrimitiveToNumber, r->opcode());
492 } 492 }
493 } 493 }
494 494
495 495
496 TEST(JSToBoolean) { 496 TEST(JSToBoolean) {
497 JSTypedLoweringTester R; 497 JSTypedLoweringTester R;
498 const Operator* op = R.javascript.ToBoolean(); 498 const Operator* op = R.javascript.ToBoolean();
499 499
500 { // ToBoolean(undefined) 500 { // ToBoolean(undefined)
501 Node* r = R.ReduceUnop(op, Type::Undefined()); 501 Node* r = R.ReduceUnop(op, Type::Undefined());
(...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after
1026 1026
1027 const Operator* ops[] = { 1027 const Operator* ops[] = {
1028 R.javascript.GreaterThan(), R.simplified.NumberLessThan(), 1028 R.javascript.GreaterThan(), R.simplified.NumberLessThan(),
1029 R.javascript.GreaterThanOrEqual(), R.simplified.NumberLessThanOrEqual(), 1029 R.javascript.GreaterThanOrEqual(), R.simplified.NumberLessThanOrEqual(),
1030 }; 1030 };
1031 1031
1032 for (size_t j = 0; j < arraysize(ops); j += 2) { 1032 for (size_t j = 0; j < arraysize(ops); j += 2) {
1033 BinopEffectsTester B(ops[j], Type::Symbol(), Type::String()); 1033 BinopEffectsTester B(ops[j], Type::Symbol(), Type::String());
1034 CHECK_EQ(ops[j + 1]->opcode(), B.result->op()->opcode()); 1034 CHECK_EQ(ops[j + 1]->opcode(), B.result->op()->opcode());
1035 1035
1036 Node* i0 = B.CheckConvertedInput(IrOpcode::kJSToNumber, 0, true); 1036 Node* i0 =
1037 B.CheckConvertedInput(IrOpcode::kPlainPrimitiveToNumber, 0, false);
1037 Node* i1 = B.CheckConvertedInput(IrOpcode::kJSToNumber, 1, true); 1038 Node* i1 = B.CheckConvertedInput(IrOpcode::kJSToNumber, 1, true);
1038 1039
1039 // Inputs should be commuted. 1040 // Inputs should be commuted.
1040 CHECK_EQ(B.p1, i0->InputAt(0)); 1041 CHECK_EQ(B.p1, i0->InputAt(0));
1041 CHECK_EQ(B.p0, i1->InputAt(0)); 1042 CHECK_EQ(B.p0, i1->InputAt(0));
1042 1043
1043 // But effects should be ordered start -> i1 -> effect_use 1044 // But effects should be ordered start -> i1 -> effect_use
1044 B.CheckEffectOrdering(i1); 1045 B.CheckEffectOrdering(i1);
1045 } 1046 }
1046 1047
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
1275 CHECK_EQ(p1, r->InputAt(0)); 1276 CHECK_EQ(p1, r->InputAt(0));
1276 CHECK_EQ(p0, r->InputAt(1)); 1277 CHECK_EQ(p0, r->InputAt(1));
1277 } else { 1278 } else {
1278 CHECK_EQ(p0, r->InputAt(0)); 1279 CHECK_EQ(p0, r->InputAt(0));
1279 CHECK_EQ(p1, r->InputAt(1)); 1280 CHECK_EQ(p1, r->InputAt(1));
1280 } 1281 }
1281 } 1282 }
1282 } 1283 }
1283 } 1284 }
1284 } 1285 }
OLDNEW
« no previous file with comments | « src/compiler/js-typed-lowering.cc ('k') | test/unittests/compiler/js-typed-lowering-unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698