LCOV - code coverage report
Current view: top level - src/crankshaft - hydrogen-osr.h (source / functions) Hit Total Coverage
Test: app.info Lines: 1 1 100.0 %
Date: 2017-04-26 Functions: 0 0 -

          Line data    Source code
       1             : // Copyright 2013 the V8 project authors. All rights reserved.
       2             : // Use of this source code is governed by a BSD-style license that can be
       3             : // found in the LICENSE file.
       4             : 
       5             : #ifndef V8_CRANKSHAFT_HYDROGEN_OSR_H_
       6             : #define V8_CRANKSHAFT_HYDROGEN_OSR_H_
       7             : 
       8             : #include "src/crankshaft/hydrogen.h"
       9             : #include "src/zone/zone.h"
      10             : 
      11             : namespace v8 {
      12             : namespace internal {
      13             : 
      14             : class IterationStatement;
      15             : 
      16             : // Responsible for building graph parts related to OSR and otherwise
      17             : // setting up the graph to do an OSR compile.
      18             : class HOsrBuilder : public ZoneObject {
      19             :  public:
      20             :   explicit HOsrBuilder(HOptimizedGraphBuilder* builder)
      21             :     : unoptimized_frame_slots_(0),
      22             :       builder_(builder),
      23             :       osr_entry_(NULL),
      24             :       osr_loop_entry_(NULL),
      25      263913 :       osr_values_(NULL) { }
      26             : 
      27             :   // Creates the loop entry block for the given statement, setting up OSR
      28             :   // entries as necessary, and sets the current block to the new block.
      29             :   HBasicBlock* BuildOsrLoopEntry(IterationStatement* statement);
      30             : 
      31             :   // Process the hydrogen graph after it has been completed, performing
      32             :   // any OSR-specific cleanups or changes.
      33             :   void FinishGraph();
      34             : 
      35             :   // Process the OSR values and phis after initial graph optimization.
      36             :   void FinishOsrValues();
      37             : 
      38             :   // Return the number of slots in the unoptimized frame at the entry to OSR.
      39             :   int UnoptimizedFrameSlots() const {
      40             :     return unoptimized_frame_slots_;
      41             :   }
      42             : 
      43             :   bool HasOsrEntryAt(IterationStatement* statement);
      44             : 
      45             :  private:
      46             :   int unoptimized_frame_slots_;
      47             :   HOptimizedGraphBuilder* builder_;
      48             :   HBasicBlock* osr_entry_;
      49             :   HBasicBlock* osr_loop_entry_;
      50             :   ZoneList<HUnknownOSRValue*>* osr_values_;
      51             : };
      52             : 
      53             : }  // namespace internal
      54             : }  // namespace v8
      55             : 
      56             : #endif  // V8_CRANKSHAFT_HYDROGEN_OSR_H_

Generated by: LCOV version 1.10