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

Side by Side Diff: src/hydrogen.h

Issue 6602031: Translate loops without using subgraphs. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 9 years, 9 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
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after
670 #undef INLINE_FUNCTION_GENERATOR_DECLARATION 670 #undef INLINE_FUNCTION_GENERATOR_DECLARATION
671 671
672 void Bailout(const char* reason); 672 void Bailout(const char* reason);
673 673
674 void PreProcessOsrEntry(IterationStatement* statement); 674 void PreProcessOsrEntry(IterationStatement* statement);
675 675
676 HBasicBlock* CreateJoin(HBasicBlock* first, 676 HBasicBlock* CreateJoin(HBasicBlock* first,
677 HBasicBlock* second, 677 HBasicBlock* second,
678 int join_id); 678 int join_id);
679 HBasicBlock* CreateWhile(IterationStatement* statement, 679 HBasicBlock* CreateWhile(IterationStatement* statement,
680 HBasicBlock* condition_entry, 680 HBasicBlock* loop_entry,
681 HBasicBlock* exit_block, 681 HBasicBlock* cond_false,
682 HBasicBlock* body_exit, 682 HBasicBlock* body_exit,
683 HBasicBlock* break_block, 683 HBasicBlock* break_block);
684 HBasicBlock* loop_entry,
685 HBasicBlock* loop_exit);
686 HBasicBlock* CreateDoWhile(IterationStatement* statement, 684 HBasicBlock* CreateDoWhile(IterationStatement* statement,
687 HBasicBlock* body_entry, 685 HBasicBlock* body_entry,
688 HBasicBlock* go_back, 686 HBasicBlock* go_back,
689 HBasicBlock* exit_block, 687 HBasicBlock* exit_block,
690 HBasicBlock* break_block); 688 HBasicBlock* break_block);
691 HBasicBlock* CreateEndless(IterationStatement* statement, 689 HBasicBlock* CreateEndless(IterationStatement* statement,
692 HBasicBlock* body_entry, 690 HBasicBlock* body_entry,
693 HBasicBlock* body_exit, 691 HBasicBlock* body_exit,
694 HBasicBlock* break_block); 692 HBasicBlock* break_block);
695 HBasicBlock* CreatePeeledWhile(IterationStatement* stmt,
696 HBasicBlock* condition_entry,
697 HBasicBlock* exit_block,
698 HBasicBlock* body_exit,
699 HBasicBlock* break_block);
700 HBasicBlock* JoinContinue(IterationStatement* statement, 693 HBasicBlock* JoinContinue(IterationStatement* statement,
701 HBasicBlock* exit_block, 694 HBasicBlock* exit_block,
702 HBasicBlock* continue_block); 695 HBasicBlock* continue_block);
703 696
704 697
705 void AddToSubgraph(HSubgraph* graph, ZoneList<Statement*>* stmts); 698 void AddToSubgraph(HSubgraph* graph, ZoneList<Statement*>* stmts);
706 void AddToSubgraph(HSubgraph* graph, Statement* stmt); 699 void AddToSubgraph(HSubgraph* graph, Statement* stmt);
707 void AddToSubgraph(HSubgraph* graph, Expression* expr); 700 void AddToSubgraph(HSubgraph* graph, Expression* expr);
708 701
709 HValue* Top() const { return environment()->Top(); } 702 HValue* Top() const { return environment()->Top(); }
(...skipping 29 matching lines...) Expand all
739 virtual void VisitStatements(ZoneList<Statement*>* statements); 732 virtual void VisitStatements(ZoneList<Statement*>* statements);
740 733
741 #define DECLARE_VISIT(type) virtual void Visit##type(type* node); 734 #define DECLARE_VISIT(type) virtual void Visit##type(type* node);
742 AST_NODE_LIST(DECLARE_VISIT) 735 AST_NODE_LIST(DECLARE_VISIT)
743 #undef DECLARE_VISIT 736 #undef DECLARE_VISIT
744 737
745 HBasicBlock* CreateBasicBlock(HEnvironment* env); 738 HBasicBlock* CreateBasicBlock(HEnvironment* env);
746 HSubgraph* CreateEmptySubgraph(); 739 HSubgraph* CreateEmptySubgraph();
747 HSubgraph* CreateGotoSubgraph(HEnvironment* env); 740 HSubgraph* CreateGotoSubgraph(HEnvironment* env);
748 HSubgraph* CreateBranchSubgraph(HEnvironment* env); 741 HSubgraph* CreateBranchSubgraph(HEnvironment* env);
749 HSubgraph* CreateLoopHeaderSubgraph(HEnvironment* env); 742 HBasicBlock* CreateLoopHeader();
750 HSubgraph* CreateInlinedSubgraph(HEnvironment* outer, 743 HSubgraph* CreateInlinedSubgraph(HEnvironment* outer,
751 Handle<JSFunction> target, 744 Handle<JSFunction> target,
752 FunctionLiteral* function); 745 FunctionLiteral* function);
753 746
754 // Helpers for flow graph construction. 747 // Helpers for flow graph construction.
755 void LookupGlobalPropertyCell(Variable* var, 748 void LookupGlobalPropertyCell(Variable* var,
756 LookupResult* lookup, 749 LookupResult* lookup,
757 bool is_store); 750 bool is_store);
758 751
759 bool TryArgumentsAccess(Property* expr); 752 bool TryArgumentsAccess(Property* expr);
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
1089 const char* filename_; 1082 const char* filename_;
1090 HeapStringAllocator string_allocator_; 1083 HeapStringAllocator string_allocator_;
1091 StringStream trace_; 1084 StringStream trace_;
1092 int indent_; 1085 int indent_;
1093 }; 1086 };
1094 1087
1095 1088
1096 } } // namespace v8::internal 1089 } } // namespace v8::internal
1097 1090
1098 #endif // V8_HYDROGEN_H_ 1091 #endif // V8_HYDROGEN_H_
OLDNEW
« no previous file with comments | « src/flag-definitions.h ('k') | src/hydrogen.cc » ('j') | src/hydrogen.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698