Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 "src/base/flags.h" | 7 #include "src/base/flags.h" |
| 8 #include "src/bootstrapper.h" | 8 #include "src/bootstrapper.h" |
| 9 #include "src/compilation-dependencies.h" | 9 #include "src/compilation-dependencies.h" |
| 10 #include "src/compiler/common-operator.h" | 10 #include "src/compiler/common-operator.h" |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 90 | 90 |
| 91 #define DECLARE_CASE(x) \ | 91 #define DECLARE_CASE(x) \ |
| 92 case IrOpcode::k##x: \ | 92 case IrOpcode::k##x: \ |
| 93 return UpdateType(node, Type##x(node)); | 93 return UpdateType(node, Type##x(node)); |
| 94 DECLARE_CASE(Start) | 94 DECLARE_CASE(Start) |
| 95 DECLARE_CASE(IfException) | 95 DECLARE_CASE(IfException) |
| 96 // VALUE_OP_LIST without JS_SIMPLE_BINOP_LIST: | 96 // VALUE_OP_LIST without JS_SIMPLE_BINOP_LIST: |
| 97 COMMON_OP_LIST(DECLARE_CASE) | 97 COMMON_OP_LIST(DECLARE_CASE) |
| 98 SIMPLIFIED_OP_LIST(DECLARE_CASE) | 98 SIMPLIFIED_OP_LIST(DECLARE_CASE) |
| 99 MACHINE_OP_LIST(DECLARE_CASE) | 99 MACHINE_OP_LIST(DECLARE_CASE) |
| 100 MACHINE_SIMD_OP_LIST(DECLARE_CASE) | |
| 100 JS_SIMPLE_UNOP_LIST(DECLARE_CASE) | 101 JS_SIMPLE_UNOP_LIST(DECLARE_CASE) |
| 101 JS_OBJECT_OP_LIST(DECLARE_CASE) | 102 JS_OBJECT_OP_LIST(DECLARE_CASE) |
| 102 JS_CONTEXT_OP_LIST(DECLARE_CASE) | 103 JS_CONTEXT_OP_LIST(DECLARE_CASE) |
| 103 JS_OTHER_OP_LIST(DECLARE_CASE) | 104 JS_OTHER_OP_LIST(DECLARE_CASE) |
| 104 #undef DECLARE_CASE | 105 #undef DECLARE_CASE |
| 105 | 106 |
| 106 #define DECLARE_CASE(x) case IrOpcode::k##x: | 107 #define DECLARE_CASE(x) case IrOpcode::k##x: |
| 107 DECLARE_CASE(Loop) | 108 DECLARE_CASE(Loop) |
| 108 DECLARE_CASE(Branch) | 109 DECLARE_CASE(Branch) |
| 109 DECLARE_CASE(IfTrue) | 110 DECLARE_CASE(IfTrue) |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 136 JS_SIMPLE_BINOP_LIST(DECLARE_CASE) | 137 JS_SIMPLE_BINOP_LIST(DECLARE_CASE) |
| 137 #undef DECLARE_CASE | 138 #undef DECLARE_CASE |
| 138 | 139 |
| 139 #define DECLARE_CASE(x) case IrOpcode::k##x: return Type##x(node); | 140 #define DECLARE_CASE(x) case IrOpcode::k##x: return Type##x(node); |
| 140 DECLARE_CASE(Start) | 141 DECLARE_CASE(Start) |
| 141 DECLARE_CASE(IfException) | 142 DECLARE_CASE(IfException) |
| 142 // VALUE_OP_LIST without JS_SIMPLE_BINOP_LIST: | 143 // VALUE_OP_LIST without JS_SIMPLE_BINOP_LIST: |
| 143 COMMON_OP_LIST(DECLARE_CASE) | 144 COMMON_OP_LIST(DECLARE_CASE) |
| 144 SIMPLIFIED_OP_LIST(DECLARE_CASE) | 145 SIMPLIFIED_OP_LIST(DECLARE_CASE) |
| 145 MACHINE_OP_LIST(DECLARE_CASE) | 146 MACHINE_OP_LIST(DECLARE_CASE) |
| 147 MACHINE_SIMD_OP_LIST(DECLARE_CASE) | |
| 146 JS_SIMPLE_UNOP_LIST(DECLARE_CASE) | 148 JS_SIMPLE_UNOP_LIST(DECLARE_CASE) |
| 147 JS_OBJECT_OP_LIST(DECLARE_CASE) | 149 JS_OBJECT_OP_LIST(DECLARE_CASE) |
| 148 JS_CONTEXT_OP_LIST(DECLARE_CASE) | 150 JS_CONTEXT_OP_LIST(DECLARE_CASE) |
| 149 JS_OTHER_OP_LIST(DECLARE_CASE) | 151 JS_OTHER_OP_LIST(DECLARE_CASE) |
| 150 #undef DECLARE_CASE | 152 #undef DECLARE_CASE |
| 151 | 153 |
| 152 #define DECLARE_CASE(x) case IrOpcode::k##x: | 154 #define DECLARE_CASE(x) case IrOpcode::k##x: |
| 153 DECLARE_CASE(Loop) | 155 DECLARE_CASE(Loop) |
| 154 DECLARE_CASE(Branch) | 156 DECLARE_CASE(Branch) |
| 155 DECLARE_CASE(IfTrue) | 157 DECLARE_CASE(IfTrue) |
| (...skipping 2290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2446 Type* Typer::Visitor::TypeInt32PairAdd(Node* node) { return Type::Internal(); } | 2448 Type* Typer::Visitor::TypeInt32PairAdd(Node* node) { return Type::Internal(); } |
| 2447 | 2449 |
| 2448 Type* Typer::Visitor::TypeInt32PairSub(Node* node) { return Type::Internal(); } | 2450 Type* Typer::Visitor::TypeInt32PairSub(Node* node) { return Type::Internal(); } |
| 2449 | 2451 |
| 2450 Type* Typer::Visitor::TypeWord32PairShl(Node* node) { return Type::Internal(); } | 2452 Type* Typer::Visitor::TypeWord32PairShl(Node* node) { return Type::Internal(); } |
| 2451 | 2453 |
| 2452 Type* Typer::Visitor::TypeWord32PairShr(Node* node) { return Type::Internal(); } | 2454 Type* Typer::Visitor::TypeWord32PairShr(Node* node) { return Type::Internal(); } |
| 2453 | 2455 |
| 2454 Type* Typer::Visitor::TypeWord32PairSar(Node* node) { return Type::Internal(); } | 2456 Type* Typer::Visitor::TypeWord32PairSar(Node* node) { return Type::Internal(); } |
| 2455 | 2457 |
| 2458 // SIMD type methods. | |
|
Mircea Trofin
2016/03/31 21:36:04
Consider macro-ising these.
bbudge
2016/04/01 00:57:53
Done.
| |
| 2459 | |
| 2460 Type* Typer::Visitor::TypeCreateFloat32x4(Node* node) { return Type::Simd(); } | |
| 2461 | |
| 2462 Type* Typer::Visitor::TypeFloat32x4ExtractLane(Node* node) { | |
| 2463 return Type::Number(); | |
| 2464 } | |
| 2465 | |
| 2466 Type* Typer::Visitor::TypeFloat32x4ReplaceLane(Node* node) { | |
| 2467 return Type::Simd(); | |
| 2468 } | |
| 2469 | |
| 2470 Type* Typer::Visitor::TypeFloat32x4Abs(Node* node) { return Type::Simd(); } | |
| 2471 | |
| 2472 Type* Typer::Visitor::TypeFloat32x4Neg(Node* node) { return Type::Simd(); } | |
| 2473 | |
| 2474 Type* Typer::Visitor::TypeFloat32x4Sqrt(Node* node) { return Type::Simd(); } | |
| 2475 | |
| 2476 Type* Typer::Visitor::TypeFloat32x4RecipApprox(Node* node) { | |
| 2477 return Type::Simd(); | |
| 2478 } | |
| 2479 | |
| 2480 Type* Typer::Visitor::TypeFloat32x4RecipSqrtApprox(Node* node) { | |
| 2481 return Type::Simd(); | |
| 2482 } | |
| 2483 | |
| 2484 Type* Typer::Visitor::TypeFloat32x4Add(Node* node) { return Type::Simd(); } | |
| 2485 | |
| 2486 Type* Typer::Visitor::TypeFloat32x4Sub(Node* node) { return Type::Simd(); } | |
| 2487 | |
| 2488 Type* Typer::Visitor::TypeFloat32x4Mul(Node* node) { return Type::Simd(); } | |
| 2489 | |
| 2490 Type* Typer::Visitor::TypeFloat32x4Div(Node* node) { return Type::Simd(); } | |
| 2491 | |
| 2492 Type* Typer::Visitor::TypeFloat32x4Min(Node* node) { return Type::Simd(); } | |
| 2493 | |
| 2494 Type* Typer::Visitor::TypeFloat32x4Max(Node* node) { return Type::Simd(); } | |
| 2495 | |
| 2496 Type* Typer::Visitor::TypeFloat32x4MinNum(Node* node) { return Type::Simd(); } | |
| 2497 | |
| 2498 Type* Typer::Visitor::TypeFloat32x4MaxNum(Node* node) { return Type::Simd(); } | |
| 2499 | |
| 2500 Type* Typer::Visitor::TypeFloat32x4Equal(Node* node) { return Type::Simd(); } | |
| 2501 | |
| 2502 Type* Typer::Visitor::TypeFloat32x4NotEqual(Node* node) { return Type::Simd(); } | |
| 2503 | |
| 2504 Type* Typer::Visitor::TypeFloat32x4LessThan(Node* node) { return Type::Simd(); } | |
| 2505 | |
| 2506 Type* Typer::Visitor::TypeFloat32x4LessThanOrEqual(Node* node) { | |
| 2507 return Type::Simd(); | |
| 2508 } | |
| 2509 | |
| 2510 Type* Typer::Visitor::TypeFloat32x4GreaterThan(Node* node) { | |
| 2511 return Type::Simd(); | |
| 2512 } | |
| 2513 | |
| 2514 Type* Typer::Visitor::TypeFloat32x4GreaterThanOrEqual(Node* node) { | |
| 2515 return Type::Simd(); | |
| 2516 } | |
| 2517 | |
| 2518 Type* Typer::Visitor::TypeFloat32x4Select(Node* node) { return Type::Simd(); } | |
| 2519 | |
| 2520 Type* Typer::Visitor::TypeFloat32x4Swizzle(Node* node) { return Type::Simd(); } | |
| 2521 | |
| 2522 Type* Typer::Visitor::TypeFloat32x4Shuffle(Node* node) { return Type::Simd(); } | |
| 2523 | |
| 2524 Type* Typer::Visitor::TypeFloat32x4FromInt32x4(Node* node) { | |
| 2525 return Type::Simd(); | |
| 2526 } | |
| 2527 | |
| 2528 Type* Typer::Visitor::TypeFloat32x4FromUint32x4(Node* node) { | |
| 2529 return Type::Simd(); | |
| 2530 } | |
| 2531 | |
| 2532 Type* Typer::Visitor::TypeFloat32x4Load1(Node* node) { return Type::Simd(); } | |
| 2533 | |
| 2534 Type* Typer::Visitor::TypeFloat32x4Load2(Node* node) { return Type::Simd(); } | |
| 2535 | |
| 2536 Type* Typer::Visitor::TypeFloat32x4Load3(Node* node) { return Type::Simd(); } | |
| 2537 | |
| 2538 Type* Typer::Visitor::TypeFloat32x4Store1(Node* node) { return Type::Simd(); } | |
| 2539 | |
| 2540 Type* Typer::Visitor::TypeFloat32x4Store2(Node* node) { return Type::Simd(); } | |
| 2541 | |
| 2542 Type* Typer::Visitor::TypeFloat32x4Store3(Node* node) { return Type::Simd(); } | |
| 2543 | |
| 2544 Type* Typer::Visitor::TypeCreateInt32x4(Node* node) { return Type::Simd(); } | |
| 2545 | |
| 2546 Type* Typer::Visitor::TypeInt32x4ExtractLane(Node* node) { | |
| 2547 return Type::Number(); | |
| 2548 } | |
| 2549 | |
| 2550 Type* Typer::Visitor::TypeInt32x4ReplaceLane(Node* node) { | |
| 2551 return Type::Simd(); | |
| 2552 } | |
| 2553 | |
| 2554 Type* Typer::Visitor::TypeInt32x4Neg(Node* node) { return Type::Simd(); } | |
| 2555 | |
| 2556 Type* Typer::Visitor::TypeInt32x4Add(Node* node) { return Type::Simd(); } | |
| 2557 | |
| 2558 Type* Typer::Visitor::TypeInt32x4Sub(Node* node) { return Type::Simd(); } | |
| 2559 | |
| 2560 Type* Typer::Visitor::TypeInt32x4Mul(Node* node) { return Type::Simd(); } | |
| 2561 | |
| 2562 Type* Typer::Visitor::TypeInt32x4Min(Node* node) { return Type::Simd(); } | |
| 2563 | |
| 2564 Type* Typer::Visitor::TypeInt32x4Max(Node* node) { return Type::Simd(); } | |
| 2565 | |
| 2566 Type* Typer::Visitor::TypeInt32x4And(Node* node) { return Type::Simd(); } | |
| 2567 | |
| 2568 Type* Typer::Visitor::TypeInt32x4Or(Node* node) { return Type::Simd(); } | |
| 2569 | |
| 2570 Type* Typer::Visitor::TypeInt32x4Xor(Node* node) { return Type::Simd(); } | |
| 2571 | |
| 2572 Type* Typer::Visitor::TypeInt32x4Not(Node* node) { return Type::Simd(); } | |
| 2573 | |
| 2574 Type* Typer::Visitor::TypeInt32x4ShiftLeftByScalar(Node* node) { | |
| 2575 return Type::Simd(); | |
| 2576 } | |
| 2577 | |
| 2578 Type* Typer::Visitor::TypeInt32x4ShiftRightByScalar(Node* node) { | |
| 2579 return Type::Simd(); | |
| 2580 } | |
| 2581 | |
| 2582 Type* Typer::Visitor::TypeInt32x4Equal(Node* node) { return Type::Simd(); } | |
| 2583 | |
| 2584 Type* Typer::Visitor::TypeInt32x4NotEqual(Node* node) { return Type::Simd(); } | |
| 2585 | |
| 2586 Type* Typer::Visitor::TypeInt32x4LessThan(Node* node) { return Type::Simd(); } | |
| 2587 | |
| 2588 Type* Typer::Visitor::TypeInt32x4LessThanOrEqual(Node* node) { | |
| 2589 return Type::Simd(); | |
| 2590 } | |
| 2591 | |
| 2592 Type* Typer::Visitor::TypeInt32x4GreaterThan(Node* node) { | |
| 2593 return Type::Simd(); | |
| 2594 } | |
| 2595 | |
| 2596 Type* Typer::Visitor::TypeInt32x4GreaterThanOrEqual(Node* node) { | |
| 2597 return Type::Simd(); | |
| 2598 } | |
| 2599 | |
| 2600 Type* Typer::Visitor::TypeInt32x4Select(Node* node) { return Type::Simd(); } | |
| 2601 | |
| 2602 Type* Typer::Visitor::TypeInt32x4Swizzle(Node* node) { return Type::Simd(); } | |
| 2603 | |
| 2604 Type* Typer::Visitor::TypeInt32x4Shuffle(Node* node) { return Type::Simd(); } | |
| 2605 | |
| 2606 Type* Typer::Visitor::TypeInt32x4FromFloat32x4(Node* node) { | |
| 2607 return Type::Simd(); | |
| 2608 } | |
| 2609 | |
| 2610 Type* Typer::Visitor::TypeInt32x4Load1(Node* node) { return Type::Simd(); } | |
| 2611 | |
| 2612 Type* Typer::Visitor::TypeInt32x4Load2(Node* node) { return Type::Simd(); } | |
| 2613 | |
| 2614 Type* Typer::Visitor::TypeInt32x4Load3(Node* node) { return Type::Simd(); } | |
| 2615 | |
| 2616 Type* Typer::Visitor::TypeInt32x4Store1(Node* node) { return Type::Simd(); } | |
| 2617 | |
| 2618 Type* Typer::Visitor::TypeInt32x4Store2(Node* node) { return Type::Simd(); } | |
| 2619 | |
| 2620 Type* Typer::Visitor::TypeInt32x4Store3(Node* node) { return Type::Simd(); } | |
| 2621 | |
| 2622 Type* Typer::Visitor::TypeUint32x4Min(Node* node) { return Type::Simd(); } | |
| 2623 | |
| 2624 Type* Typer::Visitor::TypeUint32x4Max(Node* node) { return Type::Simd(); } | |
| 2625 | |
| 2626 Type* Typer::Visitor::TypeUint32x4ShiftLeftByScalar(Node* node) { | |
| 2627 return Type::Simd(); | |
| 2628 } | |
| 2629 | |
| 2630 Type* Typer::Visitor::TypeUint32x4ShiftRightByScalar(Node* node) { | |
| 2631 return Type::Simd(); | |
| 2632 } | |
| 2633 | |
| 2634 Type* Typer::Visitor::TypeUint32x4LessThan(Node* node) { return Type::Simd(); } | |
| 2635 | |
| 2636 Type* Typer::Visitor::TypeUint32x4LessThanOrEqual(Node* node) { | |
| 2637 return Type::Simd(); | |
| 2638 } | |
| 2639 | |
| 2640 Type* Typer::Visitor::TypeUint32x4GreaterThan(Node* node) { | |
| 2641 return Type::Simd(); | |
| 2642 } | |
| 2643 | |
| 2644 Type* Typer::Visitor::TypeUint32x4GreaterThanOrEqual(Node* node) { | |
| 2645 return Type::Simd(); | |
| 2646 } | |
| 2647 | |
| 2648 Type* Typer::Visitor::TypeUint32x4FromFloat32x4(Node* node) { | |
| 2649 return Type::Simd(); | |
| 2650 } | |
| 2651 | |
| 2652 Type* Typer::Visitor::TypeCreateBool32x4(Node* node) { return Type::Simd(); } | |
| 2653 | |
| 2654 Type* Typer::Visitor::TypeBool32x4ExtractLane(Node* node) { | |
| 2655 return Type::Boolean(); | |
| 2656 } | |
| 2657 | |
| 2658 Type* Typer::Visitor::TypeBool32x4ReplaceLane(Node* node) { | |
| 2659 return Type::Simd(); | |
| 2660 } | |
| 2661 | |
| 2662 Type* Typer::Visitor::TypeBool32x4And(Node* node) { return Type::Simd(); } | |
| 2663 | |
| 2664 Type* Typer::Visitor::TypeBool32x4Or(Node* node) { return Type::Simd(); } | |
| 2665 | |
| 2666 Type* Typer::Visitor::TypeBool32x4Xor(Node* node) { return Type::Simd(); } | |
| 2667 | |
| 2668 Type* Typer::Visitor::TypeBool32x4Not(Node* node) { return Type::Simd(); } | |
| 2669 | |
| 2670 Type* Typer::Visitor::TypeBool32x4AnyTrue(Node* node) { | |
| 2671 return Type::Boolean(); | |
| 2672 } | |
| 2673 | |
| 2674 Type* Typer::Visitor::TypeBool32x4AllTrue(Node* node) { | |
| 2675 return Type::Boolean(); | |
| 2676 } | |
| 2677 | |
| 2678 Type* Typer::Visitor::TypeBool32x4Swizzle(Node* node) { return Type::Simd(); } | |
| 2679 | |
| 2680 Type* Typer::Visitor::TypeBool32x4Shuffle(Node* node) { return Type::Simd(); } | |
| 2681 | |
| 2682 Type* Typer::Visitor::TypeBool32x4Equal(Node* node) { return Type::Simd(); } | |
| 2683 | |
| 2684 Type* Typer::Visitor::TypeBool32x4NotEqual(Node* node) { return Type::Simd(); } | |
| 2685 | |
| 2686 Type* Typer::Visitor::TypeCreateInt16x8(Node* node) { return Type::Simd(); } | |
| 2687 | |
| 2688 Type* Typer::Visitor::TypeInt16x8ExtractLane(Node* node) { | |
| 2689 return Type::Number(); | |
| 2690 } | |
| 2691 | |
| 2692 Type* Typer::Visitor::TypeInt16x8ReplaceLane(Node* node) { | |
| 2693 return Type::Simd(); | |
| 2694 } | |
| 2695 | |
| 2696 Type* Typer::Visitor::TypeInt16x8Neg(Node* node) { return Type::Simd(); } | |
| 2697 | |
| 2698 Type* Typer::Visitor::TypeInt16x8Add(Node* node) { return Type::Simd(); } | |
| 2699 | |
| 2700 Type* Typer::Visitor::TypeInt16x8AddSaturate(Node* node) { | |
| 2701 return Type::Simd(); | |
| 2702 } | |
| 2703 | |
| 2704 Type* Typer::Visitor::TypeInt16x8Sub(Node* node) { return Type::Simd(); } | |
| 2705 | |
| 2706 Type* Typer::Visitor::TypeInt16x8SubSaturate(Node* node) { | |
| 2707 return Type::Simd(); | |
| 2708 } | |
| 2709 | |
| 2710 Type* Typer::Visitor::TypeInt16x8Mul(Node* node) { return Type::Simd(); } | |
| 2711 | |
| 2712 Type* Typer::Visitor::TypeInt16x8Min(Node* node) { return Type::Simd(); } | |
| 2713 | |
| 2714 Type* Typer::Visitor::TypeInt16x8Max(Node* node) { return Type::Simd(); } | |
| 2715 | |
| 2716 Type* Typer::Visitor::TypeInt16x8And(Node* node) { return Type::Simd(); } | |
| 2717 | |
| 2718 Type* Typer::Visitor::TypeInt16x8Or(Node* node) { return Type::Simd(); } | |
| 2719 | |
| 2720 Type* Typer::Visitor::TypeInt16x8Xor(Node* node) { return Type::Simd(); } | |
| 2721 | |
| 2722 Type* Typer::Visitor::TypeInt16x8Not(Node* node) { return Type::Simd(); } | |
| 2723 | |
| 2724 Type* Typer::Visitor::TypeInt16x8ShiftLeftByScalar(Node* node) { | |
| 2725 return Type::Simd(); | |
| 2726 } | |
| 2727 | |
| 2728 Type* Typer::Visitor::TypeInt16x8ShiftRightByScalar(Node* node) { | |
| 2729 return Type::Simd(); | |
| 2730 } | |
| 2731 | |
| 2732 Type* Typer::Visitor::TypeInt16x8Equal(Node* node) { return Type::Simd(); } | |
| 2733 | |
| 2734 Type* Typer::Visitor::TypeInt16x8NotEqual(Node* node) { return Type::Simd(); } | |
| 2735 | |
| 2736 Type* Typer::Visitor::TypeInt16x8LessThan(Node* node) { return Type::Simd(); } | |
| 2737 | |
| 2738 Type* Typer::Visitor::TypeInt16x8LessThanOrEqual(Node* node) { | |
| 2739 return Type::Simd(); | |
| 2740 } | |
| 2741 | |
| 2742 Type* Typer::Visitor::TypeInt16x8GreaterThan(Node* node) { | |
| 2743 return Type::Simd(); | |
| 2744 } | |
| 2745 | |
| 2746 Type* Typer::Visitor::TypeInt16x8GreaterThanOrEqual(Node* node) { | |
| 2747 return Type::Simd(); | |
| 2748 } | |
| 2749 | |
| 2750 Type* Typer::Visitor::TypeInt16x8Select(Node* node) { return Type::Simd(); } | |
| 2751 | |
| 2752 Type* Typer::Visitor::TypeInt16x8Swizzle(Node* node) { return Type::Simd(); } | |
| 2753 | |
| 2754 Type* Typer::Visitor::TypeInt16x8Shuffle(Node* node) { return Type::Simd(); } | |
| 2755 | |
| 2756 Type* Typer::Visitor::TypeUint16x8AddSaturate(Node* node) { | |
| 2757 return Type::Simd(); | |
| 2758 } | |
| 2759 | |
| 2760 Type* Typer::Visitor::TypeUint16x8SubSaturate(Node* node) { | |
| 2761 return Type::Simd(); | |
| 2762 } | |
| 2763 | |
| 2764 Type* Typer::Visitor::TypeUint16x8Min(Node* node) { return Type::Simd(); } | |
| 2765 | |
| 2766 Type* Typer::Visitor::TypeUint16x8Max(Node* node) { return Type::Simd(); } | |
| 2767 | |
| 2768 Type* Typer::Visitor::TypeUint16x8ShiftLeftByScalar(Node* node) { | |
| 2769 return Type::Simd(); | |
| 2770 } | |
| 2771 | |
| 2772 Type* Typer::Visitor::TypeUint16x8ShiftRightByScalar(Node* node) { | |
| 2773 return Type::Simd(); | |
| 2774 } | |
| 2775 | |
| 2776 Type* Typer::Visitor::TypeUint16x8LessThan(Node* node) { return Type::Simd(); } | |
| 2777 | |
| 2778 Type* Typer::Visitor::TypeUint16x8LessThanOrEqual(Node* node) { | |
| 2779 return Type::Simd(); | |
| 2780 } | |
| 2781 | |
| 2782 Type* Typer::Visitor::TypeUint16x8GreaterThan(Node* node) { | |
| 2783 return Type::Simd(); | |
| 2784 } | |
| 2785 | |
| 2786 Type* Typer::Visitor::TypeUint16x8GreaterThanOrEqual(Node* node) { | |
| 2787 return Type::Simd(); | |
| 2788 } | |
| 2789 | |
| 2790 Type* Typer::Visitor::TypeCreateBool16x8(Node* node) { return Type::Simd(); } | |
| 2791 | |
| 2792 Type* Typer::Visitor::TypeBool16x8ExtractLane(Node* node) { | |
| 2793 return Type::Boolean(); | |
| 2794 } | |
| 2795 | |
| 2796 Type* Typer::Visitor::TypeBool16x8ReplaceLane(Node* node) { | |
| 2797 return Type::Simd(); | |
| 2798 } | |
| 2799 | |
| 2800 Type* Typer::Visitor::TypeBool16x8And(Node* node) { return Type::Simd(); } | |
| 2801 | |
| 2802 Type* Typer::Visitor::TypeBool16x8Or(Node* node) { return Type::Simd(); } | |
| 2803 | |
| 2804 Type* Typer::Visitor::TypeBool16x8Xor(Node* node) { return Type::Simd(); } | |
| 2805 | |
| 2806 Type* Typer::Visitor::TypeBool16x8Not(Node* node) { return Type::Simd(); } | |
| 2807 | |
| 2808 Type* Typer::Visitor::TypeBool16x8AnyTrue(Node* node) { | |
| 2809 return Type::Boolean(); | |
| 2810 } | |
| 2811 | |
| 2812 Type* Typer::Visitor::TypeBool16x8AllTrue(Node* node) { | |
| 2813 return Type::Boolean(); | |
| 2814 } | |
| 2815 | |
| 2816 Type* Typer::Visitor::TypeBool16x8Swizzle(Node* node) { return Type::Simd(); } | |
|
bradn
2016/03/31 21:20:48
I suspect these might require a separate type, but
bbudge
2016/04/01 00:57:53
Acknowledged.
| |
| 2817 | |
| 2818 Type* Typer::Visitor::TypeBool16x8Shuffle(Node* node) { return Type::Simd(); } | |
| 2819 | |
| 2820 Type* Typer::Visitor::TypeBool16x8Equal(Node* node) { return Type::Simd(); } | |
| 2821 | |
| 2822 Type* Typer::Visitor::TypeBool16x8NotEqual(Node* node) { return Type::Simd(); } | |
| 2823 | |
| 2824 Type* Typer::Visitor::TypeCreateInt8x16(Node* node) { return Type::Simd(); } | |
| 2825 | |
| 2826 Type* Typer::Visitor::TypeInt8x16ExtractLane(Node* node) { | |
| 2827 return Type::Number(); | |
| 2828 } | |
| 2829 | |
| 2830 Type* Typer::Visitor::TypeInt8x16ReplaceLane(Node* node) { | |
| 2831 return Type::Simd(); | |
| 2832 } | |
| 2833 | |
| 2834 Type* Typer::Visitor::TypeInt8x16Neg(Node* node) { return Type::Simd(); } | |
| 2835 | |
| 2836 Type* Typer::Visitor::TypeInt8x16Add(Node* node) { return Type::Simd(); } | |
| 2837 | |
| 2838 Type* Typer::Visitor::TypeInt8x16AddSaturate(Node* node) { | |
| 2839 return Type::Simd(); | |
| 2840 } | |
| 2841 | |
| 2842 Type* Typer::Visitor::TypeInt8x16Sub(Node* node) { return Type::Simd(); } | |
| 2843 | |
| 2844 Type* Typer::Visitor::TypeInt8x16SubSaturate(Node* node) { | |
| 2845 return Type::Simd(); | |
| 2846 } | |
| 2847 | |
| 2848 Type* Typer::Visitor::TypeInt8x16Mul(Node* node) { return Type::Simd(); } | |
| 2849 | |
| 2850 Type* Typer::Visitor::TypeInt8x16Min(Node* node) { return Type::Simd(); } | |
| 2851 | |
| 2852 Type* Typer::Visitor::TypeInt8x16Max(Node* node) { return Type::Simd(); } | |
| 2853 | |
| 2854 Type* Typer::Visitor::TypeInt8x16And(Node* node) { return Type::Simd(); } | |
| 2855 | |
| 2856 Type* Typer::Visitor::TypeInt8x16Or(Node* node) { return Type::Simd(); } | |
| 2857 | |
| 2858 Type* Typer::Visitor::TypeInt8x16Xor(Node* node) { return Type::Simd(); } | |
| 2859 | |
| 2860 Type* Typer::Visitor::TypeInt8x16Not(Node* node) { return Type::Simd(); } | |
| 2861 | |
| 2862 Type* Typer::Visitor::TypeInt8x16ShiftLeftByScalar(Node* node) { | |
| 2863 return Type::Simd(); | |
| 2864 } | |
| 2865 | |
| 2866 Type* Typer::Visitor::TypeInt8x16ShiftRightByScalar(Node* node) { | |
| 2867 return Type::Simd(); | |
| 2868 } | |
| 2869 | |
| 2870 Type* Typer::Visitor::TypeInt8x16Equal(Node* node) { return Type::Simd(); } | |
| 2871 | |
| 2872 Type* Typer::Visitor::TypeInt8x16NotEqual(Node* node) { return Type::Simd(); } | |
| 2873 | |
| 2874 Type* Typer::Visitor::TypeInt8x16LessThan(Node* node) { return Type::Simd(); } | |
| 2875 | |
| 2876 Type* Typer::Visitor::TypeInt8x16LessThanOrEqual(Node* node) { | |
| 2877 return Type::Simd(); | |
| 2878 } | |
| 2879 | |
| 2880 Type* Typer::Visitor::TypeInt8x16GreaterThan(Node* node) { | |
| 2881 return Type::Simd(); | |
| 2882 } | |
| 2883 | |
| 2884 Type* Typer::Visitor::TypeInt8x16GreaterThanOrEqual(Node* node) { | |
| 2885 return Type::Simd(); | |
| 2886 } | |
| 2887 | |
| 2888 Type* Typer::Visitor::TypeInt8x16Select(Node* node) { return Type::Simd(); } | |
| 2889 | |
| 2890 Type* Typer::Visitor::TypeInt8x16Swizzle(Node* node) { return Type::Simd(); } | |
| 2891 | |
| 2892 Type* Typer::Visitor::TypeInt8x16Shuffle(Node* node) { return Type::Simd(); } | |
| 2893 | |
| 2894 Type* Typer::Visitor::TypeUint8x16AddSaturate(Node* node) { | |
| 2895 return Type::Simd(); | |
| 2896 } | |
| 2897 | |
| 2898 Type* Typer::Visitor::TypeUint8x16SubSaturate(Node* node) { | |
| 2899 return Type::Simd(); | |
| 2900 } | |
| 2901 | |
| 2902 Type* Typer::Visitor::TypeUint8x16Min(Node* node) { return Type::Simd(); } | |
| 2903 | |
| 2904 Type* Typer::Visitor::TypeUint8x16Max(Node* node) { return Type::Simd(); } | |
| 2905 | |
| 2906 Type* Typer::Visitor::TypeUint8x16ShiftLeftByScalar(Node* node) { | |
| 2907 return Type::Simd(); | |
| 2908 } | |
| 2909 | |
| 2910 Type* Typer::Visitor::TypeUint8x16ShiftRightByScalar(Node* node) { | |
| 2911 return Type::Simd(); | |
| 2912 } | |
| 2913 | |
| 2914 Type* Typer::Visitor::TypeUint8x16LessThan(Node* node) { return Type::Simd(); } | |
| 2915 | |
| 2916 Type* Typer::Visitor::TypeUint8x16LessThanOrEqual(Node* node) { | |
| 2917 return Type::Simd(); | |
| 2918 } | |
| 2919 | |
| 2920 Type* Typer::Visitor::TypeUint8x16GreaterThan(Node* node) { | |
| 2921 return Type::Simd(); | |
| 2922 } | |
| 2923 | |
| 2924 Type* Typer::Visitor::TypeUint8x16GreaterThanOrEqual(Node* node) { | |
| 2925 return Type::Simd(); | |
| 2926 } | |
| 2927 | |
| 2928 Type* Typer::Visitor::TypeCreateBool8x16(Node* node) { return Type::Simd(); } | |
| 2929 | |
| 2930 Type* Typer::Visitor::TypeBool8x16ExtractLane(Node* node) { | |
| 2931 return Type::Boolean(); | |
| 2932 } | |
| 2933 | |
| 2934 Type* Typer::Visitor::TypeBool8x16ReplaceLane(Node* node) { | |
| 2935 return Type::Simd(); | |
| 2936 } | |
| 2937 | |
| 2938 Type* Typer::Visitor::TypeBool8x16And(Node* node) { return Type::Simd(); } | |
| 2939 | |
| 2940 Type* Typer::Visitor::TypeBool8x16Or(Node* node) { return Type::Simd(); } | |
| 2941 | |
| 2942 Type* Typer::Visitor::TypeBool8x16Xor(Node* node) { return Type::Simd(); } | |
| 2943 | |
| 2944 Type* Typer::Visitor::TypeBool8x16Not(Node* node) { return Type::Simd(); } | |
| 2945 | |
| 2946 Type* Typer::Visitor::TypeBool8x16AnyTrue(Node* node) { | |
| 2947 return Type::Boolean(); | |
| 2948 } | |
| 2949 | |
| 2950 Type* Typer::Visitor::TypeBool8x16AllTrue(Node* node) { | |
| 2951 return Type::Boolean(); | |
| 2952 } | |
| 2953 | |
| 2954 Type* Typer::Visitor::TypeBool8x16Swizzle(Node* node) { return Type::Simd(); } | |
| 2955 | |
| 2956 Type* Typer::Visitor::TypeBool8x16Shuffle(Node* node) { return Type::Simd(); } | |
| 2957 | |
| 2958 Type* Typer::Visitor::TypeBool8x16Equal(Node* node) { return Type::Simd(); } | |
| 2959 | |
| 2960 Type* Typer::Visitor::TypeBool8x16NotEqual(Node* node) { return Type::Simd(); } | |
| 2961 | |
| 2456 // Heap constants. | 2962 // Heap constants. |
| 2457 | 2963 |
| 2458 | 2964 |
| 2459 Type* Typer::Visitor::TypeConstant(Handle<Object> value) { | 2965 Type* Typer::Visitor::TypeConstant(Handle<Object> value) { |
| 2460 if (value->IsJSTypedArray()) { | 2966 if (value->IsJSTypedArray()) { |
| 2461 switch (JSTypedArray::cast(*value)->type()) { | 2967 switch (JSTypedArray::cast(*value)->type()) { |
| 2462 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \ | 2968 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \ |
| 2463 case kExternal##Type##Array: \ | 2969 case kExternal##Type##Array: \ |
| 2464 return typer_->cache_.k##Type##Array; | 2970 return typer_->cache_.k##Type##Array; |
| 2465 TYPED_ARRAYS(TYPED_ARRAY_CASE) | 2971 TYPED_ARRAYS(TYPED_ARRAY_CASE) |
| 2466 #undef TYPED_ARRAY_CASE | 2972 #undef TYPED_ARRAY_CASE |
| 2467 } | 2973 } |
| 2468 } | 2974 } |
| 2469 if (Type::IsInteger(*value)) { | 2975 if (Type::IsInteger(*value)) { |
| 2470 return Type::Range(value->Number(), value->Number(), zone()); | 2976 return Type::Range(value->Number(), value->Number(), zone()); |
| 2471 } | 2977 } |
| 2472 return Type::Constant(value, zone()); | 2978 return Type::Constant(value, zone()); |
| 2473 } | 2979 } |
| 2474 | 2980 |
| 2475 } // namespace compiler | 2981 } // namespace compiler |
| 2476 } // namespace internal | 2982 } // namespace internal |
| 2477 } // namespace v8 | 2983 } // namespace v8 |
| OLD | NEW |