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

Side by Side Diff: test/cctest/compiler/test-scheduler.cc

Issue 437183002: Make start node a value input to parameter nodes. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Add start node as input to parameter nodes. Created 6 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 | Annotate | Revision Log
« no previous file with comments | « test/cctest/compiler/test-schedule.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 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/v8.h" 5 #include "src/v8.h"
6 #include "test/cctest/cctest.h" 6 #include "test/cctest/cctest.h"
7 7
8 #include "src/compiler/common-operator.h" 8 #include "src/compiler/common-operator.h"
9 #include "src/compiler/generic-node-inl.h" 9 #include "src/compiler/generic-node-inl.h"
10 #include "src/compiler/generic-node.h" 10 #include "src/compiler/generic-node.h"
(...skipping 587 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 598
599 BasicBlock* loop1[] = {B, C, D, E}; 599 BasicBlock* loop1[] = {B, C, D, E};
600 CheckLoopContains(loop1, 4); 600 CheckLoopContains(loop1, 4);
601 } 601 }
602 602
603 603
604 TEST(BuildScheduleEmpty) { 604 TEST(BuildScheduleEmpty) {
605 HandleAndZoneScope scope; 605 HandleAndZoneScope scope;
606 Graph graph(scope.main_zone()); 606 Graph graph(scope.main_zone());
607 CommonOperatorBuilder builder(scope.main_zone()); 607 CommonOperatorBuilder builder(scope.main_zone());
608 graph.SetStart(graph.NewNode(builder.Start())); 608 graph.SetStart(graph.NewNode(builder.Start(0)));
609 graph.SetEnd(graph.NewNode(builder.End(), graph.start())); 609 graph.SetEnd(graph.NewNode(builder.End(), graph.start()));
610 610
611 Scheduler scheduler(scope.main_zone()); 611 Scheduler scheduler(scope.main_zone());
612 USE(scheduler.NewSchedule(&graph)); 612 USE(scheduler.NewSchedule(&graph));
613 } 613 }
614 614
615 615
616 TEST(BuildScheduleOneParameter) { 616 TEST(BuildScheduleOneParameter) {
617 HandleAndZoneScope scope; 617 HandleAndZoneScope scope;
618 Graph graph(scope.main_zone()); 618 Graph graph(scope.main_zone());
619 CommonOperatorBuilder builder(scope.main_zone()); 619 CommonOperatorBuilder builder(scope.main_zone());
620 graph.SetStart(graph.NewNode(builder.Start())); 620 graph.SetStart(graph.NewNode(builder.Start(0)));
621 621
622 Node* p1 = graph.NewNode(builder.Parameter(0)); 622 Node* p1 = graph.NewNode(builder.Parameter(0), graph.start());
623 Node* ret = graph.NewNode(builder.Return(), p1, graph.start(), graph.start()); 623 Node* ret = graph.NewNode(builder.Return(), p1, graph.start(), graph.start());
624 624
625 graph.SetEnd(graph.NewNode(builder.End(), ret)); 625 graph.SetEnd(graph.NewNode(builder.End(), ret));
626 626
627 Scheduler scheduler(scope.main_zone()); 627 Scheduler scheduler(scope.main_zone());
628 USE(scheduler.NewSchedule(&graph)); 628 USE(scheduler.NewSchedule(&graph));
629 } 629 }
630 630
631 631
632 static int GetScheduledNodeCount(Schedule* schedule) { 632 static int GetScheduledNodeCount(Schedule* schedule) {
(...skipping 24 matching lines...) Expand all
657 OFStream os(stdout); 657 OFStream os(stdout);
658 os << *schedule << endl; 658 os << *schedule << endl;
659 } 659 }
660 660
661 661
662 TEST(BuildScheduleIfSplit) { 662 TEST(BuildScheduleIfSplit) {
663 HandleAndZoneScope scope; 663 HandleAndZoneScope scope;
664 Graph graph(scope.main_zone()); 664 Graph graph(scope.main_zone());
665 CommonOperatorBuilder builder(scope.main_zone()); 665 CommonOperatorBuilder builder(scope.main_zone());
666 JSOperatorBuilder js_builder(scope.main_zone()); 666 JSOperatorBuilder js_builder(scope.main_zone());
667 graph.SetStart(graph.NewNode(builder.Start())); 667 graph.SetStart(graph.NewNode(builder.Start(3)));
668 668
669 Node* p1 = graph.NewNode(builder.Parameter(0)); 669 Node* p1 = graph.NewNode(builder.Parameter(0), graph.start());
670 Node* p2 = graph.NewNode(builder.Parameter(1)); 670 Node* p2 = graph.NewNode(builder.Parameter(1), graph.start());
671 Node* p3 = graph.NewNode(builder.Parameter(2)); 671 Node* p3 = graph.NewNode(builder.Parameter(2), graph.start());
672 Node* p4 = graph.NewNode(builder.Parameter(3)); 672 Node* p4 = graph.NewNode(builder.Parameter(3), graph.start());
673 Node* p5 = graph.NewNode(builder.Parameter(4)); 673 Node* p5 = graph.NewNode(builder.Parameter(4), graph.start());
674 Node* cmp = graph.NewNode(js_builder.LessThanOrEqual(), p1, p2, p3, 674 Node* cmp = graph.NewNode(js_builder.LessThanOrEqual(), p1, p2, p3,
675 graph.start(), graph.start()); 675 graph.start(), graph.start());
676 Node* branch = graph.NewNode(builder.Branch(), cmp, graph.start()); 676 Node* branch = graph.NewNode(builder.Branch(), cmp, graph.start());
677 Node* true_branch = graph.NewNode(builder.IfTrue(), branch); 677 Node* true_branch = graph.NewNode(builder.IfTrue(), branch);
678 Node* false_branch = graph.NewNode(builder.IfFalse(), branch); 678 Node* false_branch = graph.NewNode(builder.IfFalse(), branch);
679 679
680 Node* ret1 = graph.NewNode(builder.Return(), p4, graph.start(), true_branch); 680 Node* ret1 = graph.NewNode(builder.Return(), p4, graph.start(), true_branch);
681 Node* ret2 = graph.NewNode(builder.Return(), p5, graph.start(), false_branch); 681 Node* ret2 = graph.NewNode(builder.Return(), p5, graph.start(), false_branch);
682 Node* merge = graph.NewNode(builder.Merge(2), ret1, ret2); 682 Node* merge = graph.NewNode(builder.Merge(2), ret1, ret2);
683 graph.SetEnd(graph.NewNode(builder.End(), merge)); 683 graph.SetEnd(graph.NewNode(builder.End(), merge));
(...skipping 24 matching lines...) Expand all
708 PrintableUnique<Object>::CreateUninitialized(scope.main_zone(), object); 708 PrintableUnique<Object>::CreateUninitialized(scope.main_zone(), object);
709 709
710 // Manually transcripted code for: 710 // Manually transcripted code for:
711 // function turbo_fan_test(a, b, c, y) { 711 // function turbo_fan_test(a, b, c, y) {
712 // if (a < b) { 712 // if (a < b) {
713 // return a + b - c * c - a + y; 713 // return a + b - c * c - a + y;
714 // } else { 714 // } else {
715 // return c * c - a; 715 // return c * c - a;
716 // } 716 // }
717 // } 717 // }
718 op = common_builder.Start(0);
719 Node* n0 = graph.NewNode(op);
720 USE(n0);
718 Node* nil = graph.NewNode(common_builder.Dead()); 721 Node* nil = graph.NewNode(common_builder.Dead());
719 op = common_builder.End(); 722 op = common_builder.End();
720 Node* n23 = graph.NewNode(op, nil); 723 Node* n23 = graph.NewNode(op, nil);
721 USE(n23); 724 USE(n23);
722 op = common_builder.Merge(2); 725 op = common_builder.Merge(2);
723 Node* n22 = graph.NewNode(op, nil, nil); 726 Node* n22 = graph.NewNode(op, nil, nil);
724 USE(n22); 727 USE(n22);
725 op = common_builder.Return(); 728 op = common_builder.Return();
726 Node* n16 = graph.NewNode(op, nil, nil, nil); 729 Node* n16 = graph.NewNode(op, nil, nil, nil);
727 USE(n16); 730 USE(n16);
728 op = js_builder.Add(); 731 op = js_builder.Add();
729 Node* n15 = graph.NewNode(op, nil, nil, nil, nil, nil); 732 Node* n15 = graph.NewNode(op, nil, nil, nil, nil, nil);
730 USE(n15); 733 USE(n15);
731 op = js_builder.Subtract(); 734 op = js_builder.Subtract();
732 Node* n14 = graph.NewNode(op, nil, nil, nil, nil, nil); 735 Node* n14 = graph.NewNode(op, nil, nil, nil, nil, nil);
733 USE(n14); 736 USE(n14);
734 op = js_builder.Subtract(); 737 op = js_builder.Subtract();
735 Node* n13 = graph.NewNode(op, nil, nil, nil, nil, nil); 738 Node* n13 = graph.NewNode(op, nil, nil, nil, nil, nil);
736 USE(n13); 739 USE(n13);
737 op = js_builder.Add(); 740 op = js_builder.Add();
738 Node* n11 = graph.NewNode(op, nil, nil, nil, nil, nil); 741 Node* n11 = graph.NewNode(op, nil, nil, nil, nil, nil);
739 USE(n11); 742 USE(n11);
740 op = common_builder.Parameter(0); 743 op = common_builder.Parameter(0);
741 Node* n2 = graph.NewNode(op); 744 Node* n2 = graph.NewNode(op, n0);
742 USE(n2); 745 USE(n2);
743 n11->ReplaceInput(0, n2); 746 n11->ReplaceInput(0, n2);
744 op = common_builder.Parameter(0); 747 op = common_builder.Parameter(0);
745 Node* n3 = graph.NewNode(op); 748 Node* n3 = graph.NewNode(op, n0);
746 USE(n3); 749 USE(n3);
747 n11->ReplaceInput(1, n3); 750 n11->ReplaceInput(1, n3);
748 op = common_builder.HeapConstant(unique_constant); 751 op = common_builder.HeapConstant(unique_constant);
749 Node* n7 = graph.NewNode(op); 752 Node* n7 = graph.NewNode(op);
750 USE(n7); 753 USE(n7);
751 n11->ReplaceInput(2, n7); 754 n11->ReplaceInput(2, n7);
752 op = js_builder.LessThan(); 755 op = js_builder.LessThan();
753 Node* n8 = graph.NewNode(op, nil, nil, nil, nil, nil); 756 Node* n8 = graph.NewNode(op, nil, nil, nil, nil, nil);
754 USE(n8); 757 USE(n8);
755 n8->ReplaceInput(0, n2); 758 n8->ReplaceInput(0, n2);
756 n8->ReplaceInput(1, n3); 759 n8->ReplaceInput(1, n3);
757 n8->ReplaceInput(2, n7); 760 n8->ReplaceInput(2, n7);
758 op = common_builder.Start();
759 Node* n0 = graph.NewNode(op);
760 USE(n0);
761 n8->ReplaceInput(3, n0); 761 n8->ReplaceInput(3, n0);
762 n8->ReplaceInput(4, n0); 762 n8->ReplaceInput(4, n0);
763 n11->ReplaceInput(3, n8); 763 n11->ReplaceInput(3, n8);
764 op = common_builder.IfTrue(); 764 op = common_builder.IfTrue();
765 Node* n10 = graph.NewNode(op, nil); 765 Node* n10 = graph.NewNode(op, nil);
766 USE(n10); 766 USE(n10);
767 op = common_builder.Branch(); 767 op = common_builder.Branch();
768 Node* n9 = graph.NewNode(op, nil, nil); 768 Node* n9 = graph.NewNode(op, nil, nil);
769 USE(n9); 769 USE(n9);
770 n9->ReplaceInput(0, n8); 770 n9->ReplaceInput(0, n8);
771 n9->ReplaceInput(1, n0); 771 n9->ReplaceInput(1, n0);
772 n10->ReplaceInput(0, n9); 772 n10->ReplaceInput(0, n9);
773 n11->ReplaceInput(4, n10); 773 n11->ReplaceInput(4, n10);
774 n13->ReplaceInput(0, n11); 774 n13->ReplaceInput(0, n11);
775 op = js_builder.Multiply(); 775 op = js_builder.Multiply();
776 Node* n12 = graph.NewNode(op, nil, nil, nil, nil, nil); 776 Node* n12 = graph.NewNode(op, nil, nil, nil, nil, nil);
777 USE(n12); 777 USE(n12);
778 op = common_builder.Parameter(0); 778 op = common_builder.Parameter(0);
779 Node* n4 = graph.NewNode(op); 779 Node* n4 = graph.NewNode(op, n0);
780 USE(n4); 780 USE(n4);
781 n12->ReplaceInput(0, n4); 781 n12->ReplaceInput(0, n4);
782 n12->ReplaceInput(1, n4); 782 n12->ReplaceInput(1, n4);
783 n12->ReplaceInput(2, n7); 783 n12->ReplaceInput(2, n7);
784 n12->ReplaceInput(3, n11); 784 n12->ReplaceInput(3, n11);
785 n12->ReplaceInput(4, n10); 785 n12->ReplaceInput(4, n10);
786 n13->ReplaceInput(1, n12); 786 n13->ReplaceInput(1, n12);
787 n13->ReplaceInput(2, n7); 787 n13->ReplaceInput(2, n7);
788 n13->ReplaceInput(3, n12); 788 n13->ReplaceInput(3, n12);
789 n13->ReplaceInput(4, n10); 789 n13->ReplaceInput(4, n10);
790 n14->ReplaceInput(0, n13); 790 n14->ReplaceInput(0, n13);
791 n14->ReplaceInput(1, n2); 791 n14->ReplaceInput(1, n2);
792 n14->ReplaceInput(2, n7); 792 n14->ReplaceInput(2, n7);
793 n14->ReplaceInput(3, n13); 793 n14->ReplaceInput(3, n13);
794 n14->ReplaceInput(4, n10); 794 n14->ReplaceInput(4, n10);
795 n15->ReplaceInput(0, n14); 795 n15->ReplaceInput(0, n14);
796 op = common_builder.Parameter(0); 796 op = common_builder.Parameter(0);
797 Node* n5 = graph.NewNode(op); 797 Node* n5 = graph.NewNode(op, n0);
798 USE(n5); 798 USE(n5);
799 n15->ReplaceInput(1, n5); 799 n15->ReplaceInput(1, n5);
800 n15->ReplaceInput(2, n7); 800 n15->ReplaceInput(2, n7);
801 n15->ReplaceInput(3, n14); 801 n15->ReplaceInput(3, n14);
802 n15->ReplaceInput(4, n10); 802 n15->ReplaceInput(4, n10);
803 n16->ReplaceInput(0, n15); 803 n16->ReplaceInput(0, n15);
804 n16->ReplaceInput(1, n15); 804 n16->ReplaceInput(1, n15);
805 n16->ReplaceInput(2, n10); 805 n16->ReplaceInput(2, n10);
806 n22->ReplaceInput(0, n16); 806 n22->ReplaceInput(0, n16);
807 op = common_builder.Return(); 807 op = common_builder.Return();
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
860 PrintableUnique<Object> unique_constant = 860 PrintableUnique<Object> unique_constant =
861 PrintableUnique<Object>::CreateUninitialized(scope.main_zone(), object); 861 PrintableUnique<Object>::CreateUninitialized(scope.main_zone(), object);
862 862
863 // Manually transcripted code for: 863 // Manually transcripted code for:
864 // function turbo_fan_test(a, b) { 864 // function turbo_fan_test(a, b) {
865 // while (a < b) { 865 // while (a < b) {
866 // a++; 866 // a++;
867 // } 867 // }
868 // return a; 868 // return a;
869 // } 869 // }
870 op = common_builder.Start(0);
871 Node* n0 = graph.NewNode(op);
872 USE(n0);
870 Node* nil = graph.NewNode(common_builder.Dead()); 873 Node* nil = graph.NewNode(common_builder.Dead());
871 op = common_builder.End(); 874 op = common_builder.End();
872 Node* n20 = graph.NewNode(op, nil); 875 Node* n20 = graph.NewNode(op, nil);
873 USE(n20); 876 USE(n20);
874 op = common_builder.Return(); 877 op = common_builder.Return();
875 Node* n19 = graph.NewNode(op, nil, nil, nil); 878 Node* n19 = graph.NewNode(op, nil, nil, nil);
876 USE(n19); 879 USE(n19);
877 op = common_builder.Phi(2); 880 op = common_builder.Phi(2);
878 Node* n8 = graph.NewNode(op, nil, nil, nil); 881 Node* n8 = graph.NewNode(op, nil, nil, nil);
879 USE(n8); 882 USE(n8);
880 op = common_builder.Parameter(0); 883 op = common_builder.Parameter(0);
881 Node* n2 = graph.NewNode(op); 884 Node* n2 = graph.NewNode(op, n0);
882 USE(n2); 885 USE(n2);
883 n8->ReplaceInput(0, n2); 886 n8->ReplaceInput(0, n2);
884 op = js_builder.Add(); 887 op = js_builder.Add();
885 Node* n18 = graph.NewNode(op, nil, nil, nil, nil, nil); 888 Node* n18 = graph.NewNode(op, nil, nil, nil, nil, nil);
886 USE(n18); 889 USE(n18);
887 op = js_builder.ToNumber(); 890 op = js_builder.ToNumber();
888 Node* n16 = graph.NewNode(op, nil, nil, nil, nil); 891 Node* n16 = graph.NewNode(op, nil, nil, nil, nil);
889 USE(n16); 892 USE(n16);
890 n16->ReplaceInput(0, n8); 893 n16->ReplaceInput(0, n8);
891 op = common_builder.HeapConstant(unique_constant); 894 op = common_builder.HeapConstant(unique_constant);
892 Node* n5 = graph.NewNode(op); 895 Node* n5 = graph.NewNode(op);
893 USE(n5); 896 USE(n5);
894 n16->ReplaceInput(1, n5); 897 n16->ReplaceInput(1, n5);
895 op = js_builder.LessThan(); 898 op = js_builder.LessThan();
896 Node* n12 = graph.NewNode(op, nil, nil, nil, nil, nil); 899 Node* n12 = graph.NewNode(op, nil, nil, nil, nil, nil);
897 USE(n12); 900 USE(n12);
898 n12->ReplaceInput(0, n8); 901 n12->ReplaceInput(0, n8);
899 op = common_builder.Phi(2); 902 op = common_builder.Phi(2);
900 Node* n9 = graph.NewNode(op, nil, nil, nil); 903 Node* n9 = graph.NewNode(op, nil, nil, nil);
901 USE(n9); 904 USE(n9);
902 op = common_builder.Parameter(0); 905 op = common_builder.Parameter(0);
903 Node* n3 = graph.NewNode(op); 906 Node* n3 = graph.NewNode(op, n0);
904 USE(n3); 907 USE(n3);
905 n9->ReplaceInput(0, n3); 908 n9->ReplaceInput(0, n3);
906 n9->ReplaceInput(1, n9); 909 n9->ReplaceInput(1, n9);
907 op = common_builder.Loop(2); 910 op = common_builder.Loop(2);
908 Node* n6 = graph.NewNode(op, nil, nil); 911 Node* n6 = graph.NewNode(op, nil, nil);
909 USE(n6); 912 USE(n6);
910 op = common_builder.Start();
911 Node* n0 = graph.NewNode(op);
912 USE(n0);
913 n6->ReplaceInput(0, n0); 913 n6->ReplaceInput(0, n0);
914 op = common_builder.IfTrue(); 914 op = common_builder.IfTrue();
915 Node* n14 = graph.NewNode(op, nil); 915 Node* n14 = graph.NewNode(op, nil);
916 USE(n14); 916 USE(n14);
917 op = common_builder.Branch(); 917 op = common_builder.Branch();
918 Node* n13 = graph.NewNode(op, nil, nil); 918 Node* n13 = graph.NewNode(op, nil, nil);
919 USE(n13); 919 USE(n13);
920 n13->ReplaceInput(0, n12); 920 n13->ReplaceInput(0, n12);
921 n13->ReplaceInput(1, n6); 921 n13->ReplaceInput(1, n6);
922 n14->ReplaceInput(0, n13); 922 n14->ReplaceInput(0, n13);
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
986 // a++; 986 // a++;
987 // while (c < b) { 987 // while (c < b) {
988 // c++; 988 // c++;
989 // } 989 // }
990 // } 990 // }
991 // while (a < b) { 991 // while (a < b) {
992 // a += 2; 992 // a += 2;
993 // } 993 // }
994 // return a; 994 // return a;
995 // } 995 // }
996 op = common_builder.Start(0);
997 Node* n0 = graph.NewNode(op);
998 USE(n0);
996 Node* nil = graph.NewNode(common_builder.Dead()); 999 Node* nil = graph.NewNode(common_builder.Dead());
997 op = common_builder.End(); 1000 op = common_builder.End();
998 Node* n46 = graph.NewNode(op, nil); 1001 Node* n46 = graph.NewNode(op, nil);
999 USE(n46); 1002 USE(n46);
1000 op = common_builder.Return(); 1003 op = common_builder.Return();
1001 Node* n45 = graph.NewNode(op, nil, nil, nil); 1004 Node* n45 = graph.NewNode(op, nil, nil, nil);
1002 USE(n45); 1005 USE(n45);
1003 op = common_builder.Phi(2); 1006 op = common_builder.Phi(2);
1004 Node* n35 = graph.NewNode(op, nil, nil, nil); 1007 Node* n35 = graph.NewNode(op, nil, nil, nil);
1005 USE(n35); 1008 USE(n35);
1006 op = common_builder.Phi(2); 1009 op = common_builder.Phi(2);
1007 Node* n9 = graph.NewNode(op, nil, nil, nil); 1010 Node* n9 = graph.NewNode(op, nil, nil, nil);
1008 USE(n9); 1011 USE(n9);
1009 op = common_builder.Parameter(0); 1012 op = common_builder.Parameter(0);
1010 Node* n2 = graph.NewNode(op); 1013 Node* n2 = graph.NewNode(op, n0);
1011 USE(n2); 1014 USE(n2);
1012 n9->ReplaceInput(0, n2); 1015 n9->ReplaceInput(0, n2);
1013 op = common_builder.Phi(2); 1016 op = common_builder.Phi(2);
1014 Node* n23 = graph.NewNode(op, nil, nil, nil); 1017 Node* n23 = graph.NewNode(op, nil, nil, nil);
1015 USE(n23); 1018 USE(n23);
1016 op = js_builder.Add(); 1019 op = js_builder.Add();
1017 Node* n20 = graph.NewNode(op, nil, nil, nil, nil, nil); 1020 Node* n20 = graph.NewNode(op, nil, nil, nil, nil, nil);
1018 USE(n20); 1021 USE(n20);
1019 op = js_builder.ToNumber(); 1022 op = js_builder.ToNumber();
1020 Node* n18 = graph.NewNode(op, nil, nil, nil, nil); 1023 Node* n18 = graph.NewNode(op, nil, nil, nil, nil);
1021 USE(n18); 1024 USE(n18);
1022 n18->ReplaceInput(0, n9); 1025 n18->ReplaceInput(0, n9);
1023 op = common_builder.HeapConstant(unique_constant); 1026 op = common_builder.HeapConstant(unique_constant);
1024 Node* n6 = graph.NewNode(op); 1027 Node* n6 = graph.NewNode(op);
1025 USE(n6); 1028 USE(n6);
1026 n18->ReplaceInput(1, n6); 1029 n18->ReplaceInput(1, n6);
1027 op = js_builder.LessThan(); 1030 op = js_builder.LessThan();
1028 Node* n14 = graph.NewNode(op, nil, nil, nil, nil, nil); 1031 Node* n14 = graph.NewNode(op, nil, nil, nil, nil, nil);
1029 USE(n14); 1032 USE(n14);
1030 n14->ReplaceInput(0, n9); 1033 n14->ReplaceInput(0, n9);
1031 op = common_builder.Phi(2); 1034 op = common_builder.Phi(2);
1032 Node* n10 = graph.NewNode(op, nil, nil, nil); 1035 Node* n10 = graph.NewNode(op, nil, nil, nil);
1033 USE(n10); 1036 USE(n10);
1034 op = common_builder.Parameter(0); 1037 op = common_builder.Parameter(0);
1035 Node* n3 = graph.NewNode(op); 1038 Node* n3 = graph.NewNode(op, n0);
1036 USE(n3); 1039 USE(n3);
1037 n10->ReplaceInput(0, n3); 1040 n10->ReplaceInput(0, n3);
1038 op = common_builder.Phi(2); 1041 op = common_builder.Phi(2);
1039 Node* n24 = graph.NewNode(op, nil, nil, nil); 1042 Node* n24 = graph.NewNode(op, nil, nil, nil);
1040 USE(n24); 1043 USE(n24);
1041 n24->ReplaceInput(0, n10); 1044 n24->ReplaceInput(0, n10);
1042 n24->ReplaceInput(1, n24); 1045 n24->ReplaceInput(1, n24);
1043 op = common_builder.Loop(2); 1046 op = common_builder.Loop(2);
1044 Node* n21 = graph.NewNode(op, nil, nil); 1047 Node* n21 = graph.NewNode(op, nil, nil);
1045 USE(n21); 1048 USE(n21);
1046 op = common_builder.IfTrue(); 1049 op = common_builder.IfTrue();
1047 Node* n16 = graph.NewNode(op, nil); 1050 Node* n16 = graph.NewNode(op, nil);
1048 USE(n16); 1051 USE(n16);
1049 op = common_builder.Branch(); 1052 op = common_builder.Branch();
1050 Node* n15 = graph.NewNode(op, nil, nil); 1053 Node* n15 = graph.NewNode(op, nil, nil);
1051 USE(n15); 1054 USE(n15);
1052 n15->ReplaceInput(0, n14); 1055 n15->ReplaceInput(0, n14);
1053 op = common_builder.Loop(2); 1056 op = common_builder.Loop(2);
1054 Node* n7 = graph.NewNode(op, nil, nil); 1057 Node* n7 = graph.NewNode(op, nil, nil);
1055 USE(n7); 1058 USE(n7);
1056 op = common_builder.Start();
1057 Node* n0 = graph.NewNode(op);
1058 USE(n0);
1059 n7->ReplaceInput(0, n0); 1059 n7->ReplaceInput(0, n0);
1060 op = common_builder.IfFalse(); 1060 op = common_builder.IfFalse();
1061 Node* n30 = graph.NewNode(op, nil); 1061 Node* n30 = graph.NewNode(op, nil);
1062 USE(n30); 1062 USE(n30);
1063 op = common_builder.Branch(); 1063 op = common_builder.Branch();
1064 Node* n28 = graph.NewNode(op, nil, nil); 1064 Node* n28 = graph.NewNode(op, nil, nil);
1065 USE(n28); 1065 USE(n28);
1066 op = js_builder.LessThan(); 1066 op = js_builder.LessThan();
1067 Node* n27 = graph.NewNode(op, nil, nil, nil, nil, nil); 1067 Node* n27 = graph.NewNode(op, nil, nil, nil, nil, nil);
1068 USE(n27); 1068 USE(n27);
1069 op = common_builder.Phi(2); 1069 op = common_builder.Phi(2);
1070 Node* n25 = graph.NewNode(op, nil, nil, nil); 1070 Node* n25 = graph.NewNode(op, nil, nil, nil);
1071 USE(n25); 1071 USE(n25);
1072 op = common_builder.Phi(2); 1072 op = common_builder.Phi(2);
1073 Node* n11 = graph.NewNode(op, nil, nil, nil); 1073 Node* n11 = graph.NewNode(op, nil, nil, nil);
1074 USE(n11); 1074 USE(n11);
1075 op = common_builder.Parameter(0); 1075 op = common_builder.Parameter(0);
1076 Node* n4 = graph.NewNode(op); 1076 Node* n4 = graph.NewNode(op, n0);
1077 USE(n4); 1077 USE(n4);
1078 n11->ReplaceInput(0, n4); 1078 n11->ReplaceInput(0, n4);
1079 n11->ReplaceInput(1, n25); 1079 n11->ReplaceInput(1, n25);
1080 n11->ReplaceInput(2, n7); 1080 n11->ReplaceInput(2, n7);
1081 n25->ReplaceInput(0, n11); 1081 n25->ReplaceInput(0, n11);
1082 op = js_builder.Add(); 1082 op = js_builder.Add();
1083 Node* n32 = graph.NewNode(op, nil, nil, nil, nil, nil); 1083 Node* n32 = graph.NewNode(op, nil, nil, nil, nil, nil);
1084 USE(n32); 1084 USE(n32);
1085 op = js_builder.ToNumber(); 1085 op = js_builder.ToNumber();
1086 Node* n31 = graph.NewNode(op, nil, nil, nil, nil); 1086 Node* n31 = graph.NewNode(op, nil, nil, nil, nil);
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
1243 // while (c < b) { 1243 // while (c < b) {
1244 // c++; 1244 // c++;
1245 // if (d == 0) break; 1245 // if (d == 0) break;
1246 // a++; 1246 // a++;
1247 // } 1247 // }
1248 // if (a == 1) continue; 1248 // if (a == 1) continue;
1249 // d++; 1249 // d++;
1250 // } 1250 // }
1251 // return a + d; 1251 // return a + d;
1252 // } 1252 // }
1253 op = common_builder.Start(0);
1254 Node* n0 = graph.NewNode(op);
1255 USE(n0);
1253 Node* nil = graph.NewNode(common_builder.Dead()); 1256 Node* nil = graph.NewNode(common_builder.Dead());
1254 op = common_builder.End(); 1257 op = common_builder.End();
1255 Node* n58 = graph.NewNode(op, nil); 1258 Node* n58 = graph.NewNode(op, nil);
1256 USE(n58); 1259 USE(n58);
1257 op = common_builder.Return(); 1260 op = common_builder.Return();
1258 Node* n57 = graph.NewNode(op, nil, nil, nil); 1261 Node* n57 = graph.NewNode(op, nil, nil, nil);
1259 USE(n57); 1262 USE(n57);
1260 op = js_builder.Add(); 1263 op = js_builder.Add();
1261 Node* n56 = graph.NewNode(op, nil, nil, nil, nil, nil); 1264 Node* n56 = graph.NewNode(op, nil, nil, nil, nil, nil);
1262 USE(n56); 1265 USE(n56);
1263 op = common_builder.Phi(2); 1266 op = common_builder.Phi(2);
1264 Node* n10 = graph.NewNode(op, nil, nil, nil); 1267 Node* n10 = graph.NewNode(op, nil, nil, nil);
1265 USE(n10); 1268 USE(n10);
1266 op = common_builder.Parameter(0); 1269 op = common_builder.Parameter(0);
1267 Node* n2 = graph.NewNode(op); 1270 Node* n2 = graph.NewNode(op, n0);
1268 USE(n2); 1271 USE(n2);
1269 n10->ReplaceInput(0, n2); 1272 n10->ReplaceInput(0, n2);
1270 op = common_builder.Phi(2); 1273 op = common_builder.Phi(2);
1271 Node* n25 = graph.NewNode(op, nil, nil, nil); 1274 Node* n25 = graph.NewNode(op, nil, nil, nil);
1272 USE(n25); 1275 USE(n25);
1273 op = js_builder.Add(); 1276 op = js_builder.Add();
1274 Node* n22 = graph.NewNode(op, nil, nil, nil, nil, nil); 1277 Node* n22 = graph.NewNode(op, nil, nil, nil, nil, nil);
1275 USE(n22); 1278 USE(n22);
1276 op = js_builder.ToNumber(); 1279 op = js_builder.ToNumber();
1277 Node* n20 = graph.NewNode(op, nil, nil, nil, nil); 1280 Node* n20 = graph.NewNode(op, nil, nil, nil, nil);
1278 USE(n20); 1281 USE(n20);
1279 n20->ReplaceInput(0, n10); 1282 n20->ReplaceInput(0, n10);
1280 op = common_builder.HeapConstant(unique_constant); 1283 op = common_builder.HeapConstant(unique_constant);
1281 Node* n6 = graph.NewNode(op); 1284 Node* n6 = graph.NewNode(op);
1282 USE(n6); 1285 USE(n6);
1283 n20->ReplaceInput(1, n6); 1286 n20->ReplaceInput(1, n6);
1284 op = js_builder.LessThan(); 1287 op = js_builder.LessThan();
1285 Node* n16 = graph.NewNode(op, nil, nil, nil, nil, nil); 1288 Node* n16 = graph.NewNode(op, nil, nil, nil, nil, nil);
1286 USE(n16); 1289 USE(n16);
1287 n16->ReplaceInput(0, n10); 1290 n16->ReplaceInput(0, n10);
1288 op = common_builder.Phi(2); 1291 op = common_builder.Phi(2);
1289 Node* n11 = graph.NewNode(op, nil, nil, nil); 1292 Node* n11 = graph.NewNode(op, nil, nil, nil);
1290 USE(n11); 1293 USE(n11);
1291 op = common_builder.Parameter(0); 1294 op = common_builder.Parameter(0);
1292 Node* n3 = graph.NewNode(op); 1295 Node* n3 = graph.NewNode(op, n0);
1293 USE(n3); 1296 USE(n3);
1294 n11->ReplaceInput(0, n3); 1297 n11->ReplaceInput(0, n3);
1295 op = common_builder.Phi(2); 1298 op = common_builder.Phi(2);
1296 Node* n26 = graph.NewNode(op, nil, nil, nil); 1299 Node* n26 = graph.NewNode(op, nil, nil, nil);
1297 USE(n26); 1300 USE(n26);
1298 n26->ReplaceInput(0, n11); 1301 n26->ReplaceInput(0, n11);
1299 n26->ReplaceInput(1, n26); 1302 n26->ReplaceInput(1, n26);
1300 op = common_builder.Loop(2); 1303 op = common_builder.Loop(2);
1301 Node* n23 = graph.NewNode(op, nil, nil); 1304 Node* n23 = graph.NewNode(op, nil, nil);
1302 USE(n23); 1305 USE(n23);
1303 op = common_builder.IfTrue(); 1306 op = common_builder.IfTrue();
1304 Node* n18 = graph.NewNode(op, nil); 1307 Node* n18 = graph.NewNode(op, nil);
1305 USE(n18); 1308 USE(n18);
1306 op = common_builder.Branch(); 1309 op = common_builder.Branch();
1307 Node* n17 = graph.NewNode(op, nil, nil); 1310 Node* n17 = graph.NewNode(op, nil, nil);
1308 USE(n17); 1311 USE(n17);
1309 n17->ReplaceInput(0, n16); 1312 n17->ReplaceInput(0, n16);
1310 op = common_builder.Loop(2); 1313 op = common_builder.Loop(2);
1311 Node* n8 = graph.NewNode(op, nil, nil); 1314 Node* n8 = graph.NewNode(op, nil, nil);
1312 USE(n8); 1315 USE(n8);
1313 op = common_builder.Start();
1314 Node* n0 = graph.NewNode(op);
1315 USE(n0);
1316 n8->ReplaceInput(0, n0); 1316 n8->ReplaceInput(0, n0);
1317 op = common_builder.Merge(2); 1317 op = common_builder.Merge(2);
1318 Node* n53 = graph.NewNode(op, nil, nil); 1318 Node* n53 = graph.NewNode(op, nil, nil);
1319 USE(n53); 1319 USE(n53);
1320 op = common_builder.IfTrue(); 1320 op = common_builder.IfTrue();
1321 Node* n49 = graph.NewNode(op, nil); 1321 Node* n49 = graph.NewNode(op, nil);
1322 USE(n49); 1322 USE(n49);
1323 op = common_builder.Branch(); 1323 op = common_builder.Branch();
1324 Node* n48 = graph.NewNode(op, nil, nil); 1324 Node* n48 = graph.NewNode(op, nil, nil);
1325 USE(n48); 1325 USE(n48);
(...skipping 12 matching lines...) Expand all
1338 op = js_builder.LessThan(); 1338 op = js_builder.LessThan();
1339 Node* n30 = graph.NewNode(op, nil, nil, nil, nil, nil); 1339 Node* n30 = graph.NewNode(op, nil, nil, nil, nil, nil);
1340 USE(n30); 1340 USE(n30);
1341 op = common_builder.Phi(2); 1341 op = common_builder.Phi(2);
1342 Node* n27 = graph.NewNode(op, nil, nil, nil); 1342 Node* n27 = graph.NewNode(op, nil, nil, nil);
1343 USE(n27); 1343 USE(n27);
1344 op = common_builder.Phi(2); 1344 op = common_builder.Phi(2);
1345 Node* n12 = graph.NewNode(op, nil, nil, nil); 1345 Node* n12 = graph.NewNode(op, nil, nil, nil);
1346 USE(n12); 1346 USE(n12);
1347 op = common_builder.Parameter(0); 1347 op = common_builder.Parameter(0);
1348 Node* n4 = graph.NewNode(op); 1348 Node* n4 = graph.NewNode(op, n0);
1349 USE(n4); 1349 USE(n4);
1350 n12->ReplaceInput(0, n4); 1350 n12->ReplaceInput(0, n4);
1351 op = common_builder.Phi(2); 1351 op = common_builder.Phi(2);
1352 Node* n41 = graph.NewNode(op, nil, nil, nil); 1352 Node* n41 = graph.NewNode(op, nil, nil, nil);
1353 USE(n41); 1353 USE(n41);
1354 n41->ReplaceInput(0, n27); 1354 n41->ReplaceInput(0, n27);
1355 op = js_builder.Add(); 1355 op = js_builder.Add();
1356 Node* n35 = graph.NewNode(op, nil, nil, nil, nil, nil); 1356 Node* n35 = graph.NewNode(op, nil, nil, nil, nil, nil);
1357 USE(n35); 1357 USE(n35);
1358 op = js_builder.ToNumber(); 1358 op = js_builder.ToNumber();
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
1573 PrintableUnique<Object> unique_constant = 1573 PrintableUnique<Object> unique_constant =
1574 PrintableUnique<Object>::CreateUninitialized(scope.main_zone(), object); 1574 PrintableUnique<Object>::CreateUninitialized(scope.main_zone(), object);
1575 1575
1576 // Manually transcripted code for: 1576 // Manually transcripted code for:
1577 // function turbo_fan_test(a, b, c) { 1577 // function turbo_fan_test(a, b, c) {
1578 // while (a < b) { 1578 // while (a < b) {
1579 // a += b + c; 1579 // a += b + c;
1580 // } 1580 // }
1581 // return a; 1581 // return a;
1582 // } 1582 // }
1583 op = common_builder.Start(0);
1584 Node* n0 = graph.NewNode(op);
1585 USE(n0);
1583 Node* nil = graph.NewNode(common_builder.Dead()); 1586 Node* nil = graph.NewNode(common_builder.Dead());
1584 op = common_builder.End(); 1587 op = common_builder.End();
1585 Node* n22 = graph.NewNode(op, nil); 1588 Node* n22 = graph.NewNode(op, nil);
1586 USE(n22); 1589 USE(n22);
1587 op = common_builder.Return(); 1590 op = common_builder.Return();
1588 Node* n21 = graph.NewNode(op, nil, nil, nil); 1591 Node* n21 = graph.NewNode(op, nil, nil, nil);
1589 USE(n21); 1592 USE(n21);
1590 op = common_builder.Phi(2); 1593 op = common_builder.Phi(2);
1591 Node* n9 = graph.NewNode(op, nil, nil, nil); 1594 Node* n9 = graph.NewNode(op, nil, nil, nil);
1592 USE(n9); 1595 USE(n9);
1593 op = common_builder.Parameter(0); 1596 op = common_builder.Parameter(0);
1594 Node* n2 = graph.NewNode(op); 1597 Node* n2 = graph.NewNode(op, n0);
1595 USE(n2); 1598 USE(n2);
1596 n9->ReplaceInput(0, n2); 1599 n9->ReplaceInput(0, n2);
1597 op = js_builder.Add(); 1600 op = js_builder.Add();
1598 Node* n20 = graph.NewNode(op, nil, nil, nil, nil, nil); 1601 Node* n20 = graph.NewNode(op, nil, nil, nil, nil, nil);
1599 USE(n20); 1602 USE(n20);
1600 n20->ReplaceInput(0, n9); 1603 n20->ReplaceInput(0, n9);
1601 op = machine_builder.Int32Add(); 1604 op = machine_builder.Int32Add();
1602 Node* n19 = graph.NewNode(op, nil, nil); 1605 Node* n19 = graph.NewNode(op, nil, nil);
1603 USE(n19); 1606 USE(n19);
1604 op = common_builder.Phi(2); 1607 op = common_builder.Phi(2);
1605 Node* n10 = graph.NewNode(op, nil, nil, nil); 1608 Node* n10 = graph.NewNode(op, nil, nil, nil);
1606 USE(n10); 1609 USE(n10);
1607 op = common_builder.Parameter(0); 1610 op = common_builder.Parameter(0);
1608 Node* n3 = graph.NewNode(op); 1611 Node* n3 = graph.NewNode(op, n0);
1609 USE(n3); 1612 USE(n3);
1610 n10->ReplaceInput(0, n3); 1613 n10->ReplaceInput(0, n3);
1611 n10->ReplaceInput(1, n10); 1614 n10->ReplaceInput(1, n10);
1612 op = common_builder.Loop(2); 1615 op = common_builder.Loop(2);
1613 Node* n7 = graph.NewNode(op, nil, nil); 1616 Node* n7 = graph.NewNode(op, nil, nil);
1614 USE(n7); 1617 USE(n7);
1615 op = common_builder.Start();
1616 Node* n0 = graph.NewNode(op);
1617 USE(n0);
1618 n7->ReplaceInput(0, n0); 1618 n7->ReplaceInput(0, n0);
1619 op = common_builder.IfTrue(); 1619 op = common_builder.IfTrue();
1620 Node* n17 = graph.NewNode(op, nil); 1620 Node* n17 = graph.NewNode(op, nil);
1621 USE(n17); 1621 USE(n17);
1622 op = common_builder.Branch(); 1622 op = common_builder.Branch();
1623 Node* n16 = graph.NewNode(op, nil, nil); 1623 Node* n16 = graph.NewNode(op, nil, nil);
1624 USE(n16); 1624 USE(n16);
1625 op = js_builder.ToBoolean(); 1625 op = js_builder.ToBoolean();
1626 Node* n15 = graph.NewNode(op, nil, nil, nil, nil); 1626 Node* n15 = graph.NewNode(op, nil, nil, nil, nil);
1627 USE(n15); 1627 USE(n15);
(...skipping 21 matching lines...) Expand all
1649 n16->ReplaceInput(0, n15); 1649 n16->ReplaceInput(0, n15);
1650 n16->ReplaceInput(1, n7); 1650 n16->ReplaceInput(1, n7);
1651 n17->ReplaceInput(0, n16); 1651 n17->ReplaceInput(0, n16);
1652 n7->ReplaceInput(1, n17); 1652 n7->ReplaceInput(1, n17);
1653 n10->ReplaceInput(2, n7); 1653 n10->ReplaceInput(2, n7);
1654 n19->ReplaceInput(0, n2); 1654 n19->ReplaceInput(0, n2);
1655 op = common_builder.Phi(2); 1655 op = common_builder.Phi(2);
1656 Node* n11 = graph.NewNode(op, nil, nil, nil); 1656 Node* n11 = graph.NewNode(op, nil, nil, nil);
1657 USE(n11); 1657 USE(n11);
1658 op = common_builder.Parameter(0); 1658 op = common_builder.Parameter(0);
1659 Node* n4 = graph.NewNode(op); 1659 Node* n4 = graph.NewNode(op, n0);
1660 USE(n4); 1660 USE(n4);
1661 n11->ReplaceInput(0, n4); 1661 n11->ReplaceInput(0, n4);
1662 n11->ReplaceInput(1, n11); 1662 n11->ReplaceInput(1, n11);
1663 n11->ReplaceInput(2, n7); 1663 n11->ReplaceInput(2, n7);
1664 n19->ReplaceInput(1, n3); 1664 n19->ReplaceInput(1, n3);
1665 n20->ReplaceInput(1, n19); 1665 n20->ReplaceInput(1, n19);
1666 n20->ReplaceInput(2, n6); 1666 n20->ReplaceInput(2, n6);
1667 n20->ReplaceInput(3, n19); 1667 n20->ReplaceInput(3, n19);
1668 n20->ReplaceInput(4, n17); 1668 n20->ReplaceInput(4, n17);
1669 n9->ReplaceInput(1, n20); 1669 n9->ReplaceInput(1, n20);
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
1823 CHECK(!call_block->deferred_); 1823 CHECK(!call_block->deferred_);
1824 CHECK(!cont_block->deferred_); 1824 CHECK(!cont_block->deferred_);
1825 // The lazy deopt block contains framestate + bailout (and nothing else). 1825 // The lazy deopt block contains framestate + bailout (and nothing else).
1826 CHECK_EQ(deoptimization_node, deopt_block->control_input_); 1826 CHECK_EQ(deoptimization_node, deopt_block->control_input_);
1827 CHECK_EQ(2, static_cast<int>(deopt_block->nodes_.size())); 1827 CHECK_EQ(2, static_cast<int>(deopt_block->nodes_.size()));
1828 CHECK_EQ(lazy_deopt_node, deopt_block->nodes_[0]); 1828 CHECK_EQ(lazy_deopt_node, deopt_block->nodes_[0]);
1829 CHECK_EQ(state_node, deopt_block->nodes_[1]); 1829 CHECK_EQ(state_node, deopt_block->nodes_[1]);
1830 } 1830 }
1831 1831
1832 #endif 1832 #endif
OLDNEW
« no previous file with comments | « test/cctest/compiler/test-schedule.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698