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

Side by Side Diff: test/unittests/compiler/typer-unittest.cc

Issue 2228983002: [turbofan] Simplify BinaryOperationHints and CompareOperationHints. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix compile for realz 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
« no previous file with comments | « test/unittests/compiler/js-typed-lowering-unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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 <functional> 5 #include <functional>
6 6
7 #include "src/codegen.h" 7 #include "src/codegen.h"
8 #include "src/compiler/js-operator.h" 8 #include "src/compiler/js-operator.h"
9 #include "src/compiler/node-properties.h" 9 #include "src/compiler/node-properties.h"
10 #include "src/compiler/operator-properties.h" 10 #include "src/compiler/operator-properties.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 int32s.push_back(+1); 44 int32s.push_back(+1);
45 int32s.push_back(kMinInt); 45 int32s.push_back(kMinInt);
46 int32s.push_back(kMaxInt); 46 int32s.push_back(kMaxInt);
47 for (int i = 0; i < 10; ++i) { 47 for (int i = 0; i < 10; ++i) {
48 int32s.push_back(rng_->NextInt()); 48 int32s.push_back(rng_->NextInt());
49 } 49 }
50 } 50 }
51 51
52 Types types_; 52 Types types_;
53 JSOperatorBuilder javascript_; 53 JSOperatorBuilder javascript_;
54 BinaryOperationHints const hints_ = BinaryOperationHints::Any(); 54 BinaryOperationHint const hints_ = BinaryOperationHint::kAny;
55 Node* context_node_; 55 Node* context_node_;
56 v8::base::RandomNumberGenerator* rng_; 56 v8::base::RandomNumberGenerator* rng_;
57 std::vector<double> integers; 57 std::vector<double> integers;
58 std::vector<double> int32s; 58 std::vector<double> int32s;
59 59
60 Type* TypeBinaryOp(const Operator* op, Type* lhs, Type* rhs) { 60 Type* TypeBinaryOp(const Operator* op, Type* lhs, Type* rhs) {
61 Node* p0 = Parameter(0); 61 Node* p0 = Parameter(0);
62 Node* p1 = Parameter(1); 62 Node* p1 = Parameter(1);
63 NodeProperties::SetType(p0, lhs); 63 NodeProperties::SetType(p0, lhs);
64 NodeProperties::SetType(p1, rhs); 64 NodeProperties::SetType(p1, rhs);
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 TestBinaryBitOp(javascript_.ShiftLeft(hints_), shift_left); 283 TestBinaryBitOp(javascript_.ShiftLeft(hints_), shift_left);
284 } 284 }
285 285
286 286
287 TEST_F(TyperTest, TypeJSShiftRight) { 287 TEST_F(TyperTest, TypeJSShiftRight) {
288 TestBinaryBitOp(javascript_.ShiftRight(hints_), shift_right); 288 TestBinaryBitOp(javascript_.ShiftRight(hints_), shift_right);
289 } 289 }
290 290
291 291
292 TEST_F(TyperTest, TypeJSLessThan) { 292 TEST_F(TyperTest, TypeJSLessThan) {
293 TestBinaryCompareOp(javascript_.LessThan(CompareOperationHints::Any()), 293 TestBinaryCompareOp(javascript_.LessThan(CompareOperationHint::kAny),
294 std::less<double>()); 294 std::less<double>());
295 } 295 }
296 296
297 297
298 TEST_F(TyperTest, TypeJSLessThanOrEqual) { 298 TEST_F(TyperTest, TypeJSLessThanOrEqual) {
299 TestBinaryCompareOp(javascript_.LessThanOrEqual(CompareOperationHints::Any()), 299 TestBinaryCompareOp(javascript_.LessThanOrEqual(CompareOperationHint::kAny),
300 std::less_equal<double>()); 300 std::less_equal<double>());
301 } 301 }
302 302
303 303
304 TEST_F(TyperTest, TypeJSGreaterThan) { 304 TEST_F(TyperTest, TypeJSGreaterThan) {
305 TestBinaryCompareOp(javascript_.GreaterThan(CompareOperationHints::Any()), 305 TestBinaryCompareOp(javascript_.GreaterThan(CompareOperationHint::kAny),
306 std::greater<double>()); 306 std::greater<double>());
307 } 307 }
308 308
309 309
310 TEST_F(TyperTest, TypeJSGreaterThanOrEqual) { 310 TEST_F(TyperTest, TypeJSGreaterThanOrEqual) {
311 TestBinaryCompareOp( 311 TestBinaryCompareOp(
312 javascript_.GreaterThanOrEqual(CompareOperationHints::Any()), 312 javascript_.GreaterThanOrEqual(CompareOperationHint::kAny),
313 std::greater_equal<double>()); 313 std::greater_equal<double>());
314 } 314 }
315 315
316 316
317 TEST_F(TyperTest, TypeJSEqual) { 317 TEST_F(TyperTest, TypeJSEqual) {
318 TestBinaryCompareOp(javascript_.Equal(CompareOperationHints::Any()), 318 TestBinaryCompareOp(javascript_.Equal(CompareOperationHint::kAny),
319 std::equal_to<double>()); 319 std::equal_to<double>());
320 } 320 }
321 321
322 322
323 TEST_F(TyperTest, TypeJSNotEqual) { 323 TEST_F(TyperTest, TypeJSNotEqual) {
324 TestBinaryCompareOp(javascript_.NotEqual(CompareOperationHints::Any()), 324 TestBinaryCompareOp(javascript_.NotEqual(CompareOperationHint::kAny),
325 std::not_equal_to<double>()); 325 std::not_equal_to<double>());
326 } 326 }
327 327
328 328
329 // For numbers there's no difference between strict and non-strict equality. 329 // For numbers there's no difference between strict and non-strict equality.
330 TEST_F(TyperTest, TypeJSStrictEqual) { 330 TEST_F(TyperTest, TypeJSStrictEqual) {
331 TestBinaryCompareOp(javascript_.StrictEqual(CompareOperationHints::Any()), 331 TestBinaryCompareOp(javascript_.StrictEqual(CompareOperationHint::kAny),
332 std::equal_to<double>()); 332 std::equal_to<double>());
333 } 333 }
334 334
335 335
336 TEST_F(TyperTest, TypeJSStrictNotEqual) { 336 TEST_F(TyperTest, TypeJSStrictNotEqual) {
337 TestBinaryCompareOp(javascript_.StrictNotEqual(CompareOperationHints::Any()), 337 TestBinaryCompareOp(javascript_.StrictNotEqual(CompareOperationHint::kAny),
338 std::not_equal_to<double>()); 338 std::not_equal_to<double>());
339 } 339 }
340 340
341 341
342 //------------------------------------------------------------------------------ 342 //------------------------------------------------------------------------------
343 // Monotonicity 343 // Monotonicity
344 344
345 #define TEST_BINARY_MONOTONICITY(name) \ 345 #define TEST_BINARY_MONOTONICITY(name) \
346 TEST_F(TyperTest, Monotonicity_##name) { \ 346 TEST_F(TyperTest, Monotonicity_##name) { \
347 TestBinaryMonotonicity(javascript_.name(CompareOperationHints::Any())); \ 347 TestBinaryMonotonicity(javascript_.name(CompareOperationHint::kAny)); \
348 } 348 }
349 TEST_BINARY_MONOTONICITY(Equal) 349 TEST_BINARY_MONOTONICITY(Equal)
350 TEST_BINARY_MONOTONICITY(NotEqual) 350 TEST_BINARY_MONOTONICITY(NotEqual)
351 TEST_BINARY_MONOTONICITY(StrictEqual) 351 TEST_BINARY_MONOTONICITY(StrictEqual)
352 TEST_BINARY_MONOTONICITY(StrictNotEqual) 352 TEST_BINARY_MONOTONICITY(StrictNotEqual)
353 TEST_BINARY_MONOTONICITY(LessThan) 353 TEST_BINARY_MONOTONICITY(LessThan)
354 TEST_BINARY_MONOTONICITY(GreaterThan) 354 TEST_BINARY_MONOTONICITY(GreaterThan)
355 TEST_BINARY_MONOTONICITY(LessThanOrEqual) 355 TEST_BINARY_MONOTONICITY(LessThanOrEqual)
356 TEST_BINARY_MONOTONICITY(GreaterThanOrEqual) 356 TEST_BINARY_MONOTONICITY(GreaterThanOrEqual)
357 #undef TEST_BINARY_MONOTONICITY 357 #undef TEST_BINARY_MONOTONICITY
358 358
359 #define TEST_BINARY_MONOTONICITY(name) \ 359 #define TEST_BINARY_MONOTONICITY(name) \
360 TEST_F(TyperTest, Monotonicity_##name) { \ 360 TEST_F(TyperTest, Monotonicity_##name) { \
361 TestBinaryMonotonicity(javascript_.name(BinaryOperationHints::Any())); \ 361 TestBinaryMonotonicity(javascript_.name(BinaryOperationHint::kAny)); \
362 } 362 }
363 TEST_BINARY_MONOTONICITY(BitwiseOr) 363 TEST_BINARY_MONOTONICITY(BitwiseOr)
364 TEST_BINARY_MONOTONICITY(BitwiseXor) 364 TEST_BINARY_MONOTONICITY(BitwiseXor)
365 TEST_BINARY_MONOTONICITY(BitwiseAnd) 365 TEST_BINARY_MONOTONICITY(BitwiseAnd)
366 TEST_BINARY_MONOTONICITY(ShiftLeft) 366 TEST_BINARY_MONOTONICITY(ShiftLeft)
367 TEST_BINARY_MONOTONICITY(ShiftRight) 367 TEST_BINARY_MONOTONICITY(ShiftRight)
368 TEST_BINARY_MONOTONICITY(ShiftRightLogical) 368 TEST_BINARY_MONOTONICITY(ShiftRightLogical)
369 TEST_BINARY_MONOTONICITY(Add) 369 TEST_BINARY_MONOTONICITY(Add)
370 TEST_BINARY_MONOTONICITY(Subtract) 370 TEST_BINARY_MONOTONICITY(Subtract)
371 TEST_BINARY_MONOTONICITY(Multiply) 371 TEST_BINARY_MONOTONICITY(Multiply)
(...skipping 11 matching lines...) Expand all
383 for (auto i : values) { 383 for (auto i : values) {
384 Node* c = graph()->NewNode(common()->Int32Constant(i)); 384 Node* c = graph()->NewNode(common()->Int32Constant(i));
385 Type* type = NodeProperties::GetType(c); 385 Type* type = NodeProperties::GetType(c);
386 EXPECT_TRUE(type->Is(NewRange(i, i))); 386 EXPECT_TRUE(type->Is(NewRange(i, i)));
387 } 387 }
388 } 388 }
389 389
390 } // namespace compiler 390 } // namespace compiler
391 } // namespace internal 391 } // namespace internal
392 } // namespace v8 392 } // namespace v8
OLDNEW
« no previous file with comments | « test/unittests/compiler/js-typed-lowering-unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698