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

Side by Side Diff: src/hydrogen.h

Issue 11575030: For the values defined in the loop and spilled outside sink spill store out of the loop down to loo… (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 8 years 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') | src/hydrogen.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 int current_; 210 int current_;
211 }; 211 };
212 212
213 213
214 class HLoopInformation: public ZoneObject { 214 class HLoopInformation: public ZoneObject {
215 public: 215 public:
216 HLoopInformation(HBasicBlock* loop_header, Zone* zone) 216 HLoopInformation(HBasicBlock* loop_header, Zone* zone)
217 : back_edges_(4, zone), 217 : back_edges_(4, zone),
218 loop_header_(loop_header), 218 loop_header_(loop_header),
219 blocks_(8, zone), 219 blocks_(8, zone),
220 stack_check_(NULL) { 220 stack_check_(NULL),
221 exit_block_(NULL) {
221 blocks_.Add(loop_header, zone); 222 blocks_.Add(loop_header, zone);
222 } 223 }
223 virtual ~HLoopInformation() {} 224 virtual ~HLoopInformation() {}
224 225
225 const ZoneList<HBasicBlock*>* back_edges() const { return &back_edges_; } 226 const ZoneList<HBasicBlock*>* back_edges() const { return &back_edges_; }
226 const ZoneList<HBasicBlock*>* blocks() const { return &blocks_; } 227 const ZoneList<HBasicBlock*>* blocks() const { return &blocks_; }
227 HBasicBlock* loop_header() const { return loop_header_; } 228 HBasicBlock* loop_header() const { return loop_header_; }
228 HBasicBlock* GetLastBackEdge() const; 229 HBasicBlock* GetLastBackEdge() const;
229 void RegisterBackEdge(HBasicBlock* block); 230 void RegisterBackEdge(HBasicBlock* block);
230 231
231 HStackCheck* stack_check() const { return stack_check_; } 232 HStackCheck* stack_check() const { return stack_check_; }
232 void set_stack_check(HStackCheck* stack_check) { 233 void set_stack_check(HStackCheck* stack_check) {
233 stack_check_ = stack_check; 234 stack_check_ = stack_check;
234 } 235 }
235 236
237 HBasicBlock* exit_block() const { return exit_block_; }
238 void set_exit_block(HBasicBlock* block) { exit_block_ = block; }
239
236 private: 240 private:
237 void AddBlock(HBasicBlock* block); 241 void AddBlock(HBasicBlock* block);
238 242
239 ZoneList<HBasicBlock*> back_edges_; 243 ZoneList<HBasicBlock*> back_edges_;
240 HBasicBlock* loop_header_; 244 HBasicBlock* loop_header_;
241 ZoneList<HBasicBlock*> blocks_; 245 ZoneList<HBasicBlock*> blocks_;
242 HStackCheck* stack_check_; 246 HStackCheck* stack_check_;
247 HBasicBlock* exit_block_;
243 }; 248 };
244 249
245 class BoundsCheckTable; 250 class BoundsCheckTable;
246 class HGraph: public ZoneObject { 251 class HGraph: public ZoneObject {
247 public: 252 public:
248 explicit HGraph(CompilationInfo* info); 253 explicit HGraph(CompilationInfo* info);
249 254
250 Isolate* isolate() { return isolate_; } 255 Isolate* isolate() { return isolate_; }
251 Zone* zone() const { return zone_; } 256 Zone* zone() const { return zone_; }
252 CompilationInfo* info() const { return info_; } 257 CompilationInfo* info() const { return info_; }
(...skipping 1274 matching lines...) Expand 10 before | Expand all | Expand 10 after
1527 const char* filename_; 1532 const char* filename_;
1528 HeapStringAllocator string_allocator_; 1533 HeapStringAllocator string_allocator_;
1529 StringStream trace_; 1534 StringStream trace_;
1530 int indent_; 1535 int indent_;
1531 }; 1536 };
1532 1537
1533 1538
1534 } } // namespace v8::internal 1539 } } // namespace v8::internal
1535 1540
1536 #endif // V8_HYDROGEN_H_ 1541 #endif // V8_HYDROGEN_H_
OLDNEW
« no previous file with comments | « no previous file | src/hydrogen.cc » ('j') | src/hydrogen.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698