OLD | NEW |
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 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
329 } | 329 } |
330 | 330 |
331 ZoneList<HUnknownOSRValue*>* osr_values() { | 331 ZoneList<HUnknownOSRValue*>* osr_values() { |
332 return osr_values_.get(); | 332 return osr_values_.get(); |
333 } | 333 } |
334 | 334 |
335 void set_osr_values(ZoneList<HUnknownOSRValue*>* values) { | 335 void set_osr_values(ZoneList<HUnknownOSRValue*>* values) { |
336 osr_values_.set(values); | 336 osr_values_.set(values); |
337 } | 337 } |
338 | 338 |
| 339 void MarkRecursive() { |
| 340 is_recursive_ = true; |
| 341 } |
| 342 |
| 343 bool is_recursive() const { |
| 344 return is_recursive_; |
| 345 } |
| 346 |
339 private: | 347 private: |
340 void Postorder(HBasicBlock* block, | 348 void Postorder(HBasicBlock* block, |
341 BitVector* visited, | 349 BitVector* visited, |
342 ZoneList<HBasicBlock*>* order, | 350 ZoneList<HBasicBlock*>* order, |
343 HBasicBlock* loop_header); | 351 HBasicBlock* loop_header); |
344 void PostorderLoopBlocks(HLoopInformation* loop, | 352 void PostorderLoopBlocks(HLoopInformation* loop, |
345 BitVector* visited, | 353 BitVector* visited, |
346 ZoneList<HBasicBlock*>* order, | 354 ZoneList<HBasicBlock*>* order, |
347 HBasicBlock* loop_header); | 355 HBasicBlock* loop_header); |
348 HConstant* GetConstant(SetOncePointer<HConstant>* pointer, | 356 HConstant* GetConstant(SetOncePointer<HConstant>* pointer, |
(...skipping 26 matching lines...) Expand all Loading... |
375 SetOncePointer<HConstant> constant_true_; | 383 SetOncePointer<HConstant> constant_true_; |
376 SetOncePointer<HConstant> constant_false_; | 384 SetOncePointer<HConstant> constant_false_; |
377 SetOncePointer<HConstant> constant_hole_; | 385 SetOncePointer<HConstant> constant_hole_; |
378 SetOncePointer<HArgumentsObject> arguments_object_; | 386 SetOncePointer<HArgumentsObject> arguments_object_; |
379 | 387 |
380 SetOncePointer<HBasicBlock> osr_loop_entry_; | 388 SetOncePointer<HBasicBlock> osr_loop_entry_; |
381 SetOncePointer<ZoneList<HUnknownOSRValue*> > osr_values_; | 389 SetOncePointer<ZoneList<HUnknownOSRValue*> > osr_values_; |
382 | 390 |
383 Zone* zone_; | 391 Zone* zone_; |
384 | 392 |
| 393 bool is_recursive_; |
| 394 |
385 DISALLOW_COPY_AND_ASSIGN(HGraph); | 395 DISALLOW_COPY_AND_ASSIGN(HGraph); |
386 }; | 396 }; |
387 | 397 |
388 | 398 |
389 Zone* HBasicBlock::zone() const { return graph_->zone(); } | 399 Zone* HBasicBlock::zone() const { return graph_->zone(); } |
390 | 400 |
391 | 401 |
392 // Type of stack frame an environment might refer to. | 402 // Type of stack frame an environment might refer to. |
393 enum FrameType { JS_FUNCTION, JS_CONSTRUCT, ARGUMENTS_ADAPTOR }; | 403 enum FrameType { JS_FUNCTION, JS_CONSTRUCT, ARGUMENTS_ADAPTOR }; |
394 | 404 |
(...skipping 1026 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1421 const char* filename_; | 1431 const char* filename_; |
1422 HeapStringAllocator string_allocator_; | 1432 HeapStringAllocator string_allocator_; |
1423 StringStream trace_; | 1433 StringStream trace_; |
1424 int indent_; | 1434 int indent_; |
1425 }; | 1435 }; |
1426 | 1436 |
1427 | 1437 |
1428 } } // namespace v8::internal | 1438 } } // namespace v8::internal |
1429 | 1439 |
1430 #endif // V8_HYDROGEN_H_ | 1440 #endif // V8_HYDROGEN_H_ |
OLD | NEW |