LCOV - code coverage report
Current view: top level - src/compiler - machine-graph.cc (source / functions) Hit Total Coverage
Test: app.info Lines: 34 41 82.9 %
Date: 2019-04-19 Functions: 10 12 83.3 %

          Line data    Source code
       1             : // Copyright 2018 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             : #include "src/compiler/machine-graph.h"
       6             : 
       7             : #include "src/compiler/node-properties.h"
       8             : #include "src/external-reference.h"
       9             : 
      10             : namespace v8 {
      11             : namespace internal {
      12             : namespace compiler {
      13             : 
      14    14400485 : Node* MachineGraph::Int32Constant(int32_t value) {
      15             :   Node** loc = cache_.FindInt32Constant(value);
      16    14401842 :   if (*loc == nullptr) {
      17    17244710 :     *loc = graph()->NewNode(common()->Int32Constant(value));
      18             :   }
      19    14402822 :   return *loc;
      20             : }
      21             : 
      22     9833996 : Node* MachineGraph::Int64Constant(int64_t value) {
      23             :   Node** loc = cache_.FindInt64Constant(value);
      24     9834178 :   if (*loc == nullptr) {
      25     8688971 :     *loc = graph()->NewNode(common()->Int64Constant(value));
      26             :   }
      27     9834517 :   return *loc;
      28             : }
      29             : 
      30     9619464 : Node* MachineGraph::IntPtrConstant(intptr_t value) {
      31           0 :   return machine()->Is32() ? Int32Constant(static_cast<int32_t>(value))
      32     9619464 :                            : Int64Constant(static_cast<int64_t>(value));
      33             : }
      34             : 
      35           0 : Node* MachineGraph::RelocatableInt32Constant(int32_t value,
      36             :                                              RelocInfo::Mode rmode) {
      37             :   Node** loc = cache_.FindRelocatableInt32Constant(
      38             :       value, static_cast<RelocInfoMode>(rmode));
      39           0 :   if (*loc == nullptr) {
      40           0 :     *loc = graph()->NewNode(common()->RelocatableInt32Constant(value, rmode));
      41             :   }
      42           0 :   return *loc;
      43             : }
      44             : 
      45      185857 : Node* MachineGraph::RelocatableInt64Constant(int64_t value,
      46             :                                              RelocInfo::Mode rmode) {
      47             :   Node** loc = cache_.FindRelocatableInt64Constant(
      48             :       value, static_cast<RelocInfoMode>(rmode));
      49      185869 :   if (*loc == nullptr) {
      50      300814 :     *loc = graph()->NewNode(common()->RelocatableInt64Constant(value, rmode));
      51             :   }
      52      185885 :   return *loc;
      53             : }
      54             : 
      55      185842 : Node* MachineGraph::RelocatableIntPtrConstant(intptr_t value,
      56             :                                               RelocInfo::Mode rmode) {
      57             :   return kSystemPointerSize == 8
      58             :              ? RelocatableInt64Constant(value, rmode)
      59      185842 :              : RelocatableInt32Constant(static_cast<int>(value), rmode);
      60             : }
      61             : 
      62      125506 : Node* MachineGraph::Float32Constant(float value) {
      63             :   Node** loc = cache_.FindFloat32Constant(value);
      64      125518 :   if (*loc == nullptr) {
      65      214160 :     *loc = graph()->NewNode(common()->Float32Constant(value));
      66             :   }
      67      125536 :   return *loc;
      68             : }
      69             : 
      70      496330 : Node* MachineGraph::Float64Constant(double value) {
      71             :   Node** loc = cache_.FindFloat64Constant(value);
      72      496329 :   if (*loc == nullptr) {
      73      555427 :     *loc = graph()->NewNode(common()->Float64Constant(value));
      74             :   }
      75      496342 :   return *loc;
      76             : }
      77             : 
      78        1348 : Node* MachineGraph::PointerConstant(intptr_t value) {
      79             :   Node** loc = cache_.FindPointerConstant(value);
      80        1348 :   if (*loc == nullptr) {
      81         458 :     *loc = graph()->NewNode(common()->PointerConstant(value));
      82             :   }
      83        1348 :   return *loc;
      84             : }
      85             : 
      86     2311389 : Node* MachineGraph::ExternalConstant(ExternalReference reference) {
      87     2311389 :   Node** loc = cache_.FindExternalConstant(reference);
      88     2311392 :   if (*loc == nullptr) {
      89     3509391 :     *loc = graph()->NewNode(common()->ExternalConstant(reference));
      90             :   }
      91     2311397 :   return *loc;
      92             : }
      93             : 
      94           0 : Node* MachineGraph::ExternalConstant(Runtime::FunctionId function_id) {
      95           0 :   return ExternalConstant(ExternalReference::Create(function_id));
      96             : }
      97             : 
      98             : }  // namespace compiler
      99             : }  // namespace internal
     100      122036 : }  // namespace v8

Generated by: LCOV version 1.10