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

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

Issue 2139183002: [turbofan] Unify BooleanToNumber, StringToNumber and PlainPrimitiveToNumber. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 5 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/verifier.cc ('k') | test/cctest/compiler/test-simplified-lowering.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/compilation-dependencies.h" 5 #include "src/compilation-dependencies.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.h" 9 #include "src/compiler/node-properties.h"
10 #include "src/compiler/opcodes.h" 10 #include "src/compiler/opcodes.h"
(...skipping 594 matching lines...) Expand 10 before | Expand all | Expand 10 after
605 } 605 }
606 } 606 }
607 } 607 }
608 } 608 }
609 } 609 }
610 610
611 611
612 static void CheckIsConvertedToNumber(Node* val, Node* converted) { 612 static void CheckIsConvertedToNumber(Node* val, Node* converted) {
613 if (NodeProperties::GetType(val)->Is(Type::Number())) { 613 if (NodeProperties::GetType(val)->Is(Type::Number())) {
614 CHECK_EQ(val, converted); 614 CHECK_EQ(val, converted);
615 } else if (NodeProperties::GetType(val)->Is(Type::Boolean())) {
616 CHECK_EQ(IrOpcode::kBooleanToNumber, converted->opcode());
617 CHECK_EQ(val, converted->InputAt(0));
618 } else { 615 } else {
619 if (converted->opcode() == IrOpcode::kNumberConstant) return; 616 if (converted->opcode() == IrOpcode::kNumberConstant) return;
620 CHECK_EQ(IrOpcode::kJSToNumber, converted->opcode()); 617 CHECK_EQ(IrOpcode::kJSToNumber, converted->opcode());
621 CHECK_EQ(val, converted->InputAt(0)); 618 CHECK_EQ(val, converted->InputAt(0));
622 } 619 }
623 } 620 }
624 621
625 TEST(NumberComparison) { 622 TEST(NumberComparison) {
626 JSTypedLoweringTester R; 623 JSTypedLoweringTester R;
627 624
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
994 R.javascript.GreaterThan(R.compare_hints), R.simplified.NumberLessThan(), 991 R.javascript.GreaterThan(R.compare_hints), R.simplified.NumberLessThan(),
995 R.javascript.GreaterThanOrEqual(R.compare_hints), 992 R.javascript.GreaterThanOrEqual(R.compare_hints),
996 R.simplified.NumberLessThanOrEqual(), 993 R.simplified.NumberLessThanOrEqual(),
997 }; 994 };
998 995
999 for (size_t j = 0; j < arraysize(ops); j += 2) { 996 for (size_t j = 0; j < arraysize(ops); j += 2) {
1000 BinopEffectsTester B(ops[j], Type::Symbol(), Type::String(), 997 BinopEffectsTester B(ops[j], Type::Symbol(), Type::String(),
1001 JSTypedLowering::kNoFlags); 998 JSTypedLowering::kNoFlags);
1002 CHECK_EQ(ops[j + 1]->opcode(), B.result->op()->opcode()); 999 CHECK_EQ(ops[j + 1]->opcode(), B.result->op()->opcode());
1003 1000
1004 Node* i0 = B.CheckConvertedInput(IrOpcode::kStringToNumber, 0, false); 1001 Node* i0 =
1002 B.CheckConvertedInput(IrOpcode::kPlainPrimitiveToNumber, 0, false);
1005 Node* i1 = B.CheckConvertedInput(IrOpcode::kJSToNumber, 1, true); 1003 Node* i1 = B.CheckConvertedInput(IrOpcode::kJSToNumber, 1, true);
1006 1004
1007 // Inputs should be commuted. 1005 // Inputs should be commuted.
1008 CHECK_EQ(B.p1, i0->InputAt(0)); 1006 CHECK_EQ(B.p1, i0->InputAt(0));
1009 CHECK_EQ(B.p0, i1->InputAt(0)); 1007 CHECK_EQ(B.p0, i1->InputAt(0));
1010 1008
1011 // But effects should be ordered start -> i1 -> effect_use 1009 // But effects should be ordered start -> i1 -> effect_use
1012 B.CheckEffectOrdering(i1); 1010 B.CheckEffectOrdering(i1);
1013 } 1011 }
1014 1012
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
1233 CHECK_EQ(p1, r->InputAt(1)); 1231 CHECK_EQ(p1, r->InputAt(1));
1234 } 1232 }
1235 } 1233 }
1236 } 1234 }
1237 } 1235 }
1238 } 1236 }
1239 1237
1240 } // namespace compiler 1238 } // namespace compiler
1241 } // namespace internal 1239 } // namespace internal
1242 } // namespace v8 1240 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/verifier.cc ('k') | test/cctest/compiler/test-simplified-lowering.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698