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

Side by Side Diff: src/hydrogen.h

Issue 6516016: Refactor construction of polymorphic loads, stores, and calls. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge/build/ia32
Patch Set: Created 9 years, 10 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 | « no previous file | src/hydrogen.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 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 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 public: 53 public:
54 explicit HBasicBlock(HGraph* graph); 54 explicit HBasicBlock(HGraph* graph);
55 virtual ~HBasicBlock() { } 55 virtual ~HBasicBlock() { }
56 56
57 // Simple accessors. 57 // Simple accessors.
58 int block_id() const { return block_id_; } 58 int block_id() const { return block_id_; }
59 void set_block_id(int id) { block_id_ = id; } 59 void set_block_id(int id) { block_id_ = id; }
60 HGraph* graph() const { return graph_; } 60 HGraph* graph() const { return graph_; }
61 const ZoneList<HPhi*>* phis() const { return &phis_; } 61 const ZoneList<HPhi*>* phis() const { return &phis_; }
62 HInstruction* first() const { return first_; } 62 HInstruction* first() const { return first_; }
63 HInstruction* last() const { return last_; }
64 void set_last(HInstruction* instr) { last_ = instr; }
63 HInstruction* GetLastInstruction(); 65 HInstruction* GetLastInstruction();
64 HControlInstruction* end() const { return end_; } 66 HControlInstruction* end() const { return end_; }
65 HLoopInformation* loop_information() const { return loop_information_; } 67 HLoopInformation* loop_information() const { return loop_information_; }
66 const ZoneList<HBasicBlock*>* predecessors() const { return &predecessors_; } 68 const ZoneList<HBasicBlock*>* predecessors() const { return &predecessors_; }
67 bool HasPredecessor() const { return predecessors_.length() > 0; } 69 bool HasPredecessor() const { return predecessors_.length() > 0; }
68 const ZoneList<HBasicBlock*>* dominated_blocks() const { 70 const ZoneList<HBasicBlock*>* dominated_blocks() const {
69 return &dominated_blocks_; 71 return &dominated_blocks_;
70 } 72 }
71 const ZoneList<int>* deleted_phis() const { 73 const ZoneList<int>* deleted_phis() const {
72 return &deleted_phis_; 74 return &deleted_phis_;
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 private: 143 private:
142 void RegisterPredecessor(HBasicBlock* pred); 144 void RegisterPredecessor(HBasicBlock* pred);
143 void AddDominatedBlock(HBasicBlock* block); 145 void AddDominatedBlock(HBasicBlock* block);
144 146
145 HSimulate* CreateSimulate(int id); 147 HSimulate* CreateSimulate(int id);
146 148
147 int block_id_; 149 int block_id_;
148 HGraph* graph_; 150 HGraph* graph_;
149 ZoneList<HPhi*> phis_; 151 ZoneList<HPhi*> phis_;
150 HInstruction* first_; 152 HInstruction* first_;
151 HInstruction* last_; // Last non-control instruction of the block. 153 HInstruction* last_;
152 HControlInstruction* end_; 154 HControlInstruction* end_;
153 HLoopInformation* loop_information_; 155 HLoopInformation* loop_information_;
154 ZoneList<HBasicBlock*> predecessors_; 156 ZoneList<HBasicBlock*> predecessors_;
155 HBasicBlock* dominator_; 157 HBasicBlock* dominator_;
156 ZoneList<HBasicBlock*> dominated_blocks_; 158 ZoneList<HBasicBlock*> dominated_blocks_;
157 HEnvironment* last_environment_; 159 HEnvironment* last_environment_;
158 // Outgoing parameter count at block exit, set during lithium translation. 160 // Outgoing parameter count at block exit, set during lithium translation.
159 int argument_count_; 161 int argument_count_;
160 // Instruction indices into the lithium code stream. 162 // Instruction indices into the lithium code stream.
161 int first_instruction_index_; 163 int first_instruction_index_;
(...skipping 657 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 CaseClause* clause); 821 CaseClause* clause);
820 822
821 HValue* BuildContextChainWalk(Variable* var); 823 HValue* BuildContextChainWalk(Variable* var);
822 824
823 void AddCheckConstantFunction(Call* expr, 825 void AddCheckConstantFunction(Call* expr,
824 HValue* receiver, 826 HValue* receiver,
825 Handle<Map> receiver_map, 827 Handle<Map> receiver_map,
826 bool smi_and_map_check); 828 bool smi_and_map_check);
827 829
828 830
829 HBasicBlock* BuildTypeSwitch(ZoneMapList* maps, 831 HBasicBlock* BuildTypeSwitch(HValue* receiver,
830 ZoneList<HSubgraph*>* subgraphs, 832 ZoneMapList* maps,
831 HValue* receiver, 833 ZoneList<HSubgraph*>* body_graphs,
834 HSubgraph* default_graph,
832 int join_id); 835 int join_id);
833 836
834 TypeFeedbackOracle* oracle_; 837 TypeFeedbackOracle* oracle_;
835 HGraph* graph_; 838 HGraph* graph_;
836 HSubgraph* current_subgraph_; 839 HSubgraph* current_subgraph_;
837 IterationStatement* peeled_statement_; 840 IterationStatement* peeled_statement_;
838 // Expression context of the currently visited subexpression. NULL when 841 // Expression context of the currently visited subexpression. NULL when
839 // visiting statements. 842 // visiting statements.
840 AstContext* ast_context_; 843 AstContext* ast_context_;
841 844
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
1063 const char* filename_; 1066 const char* filename_;
1064 HeapStringAllocator string_allocator_; 1067 HeapStringAllocator string_allocator_;
1065 StringStream trace_; 1068 StringStream trace_;
1066 int indent_; 1069 int indent_;
1067 }; 1070 };
1068 1071
1069 1072
1070 } } // namespace v8::internal 1073 } } // namespace v8::internal
1071 1074
1072 #endif // V8_HYDROGEN_H_ 1075 #endif // V8_HYDROGEN_H_
OLDNEW
« no previous file with comments | « no previous file | src/hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698