LCOV - code coverage report
Current view: top level - src/compiler - js-builtin-reducer.h (source / functions) Hit Total Coverage
Test: app.info Lines: 1 2 50.0 %
Date: 2017-10-20 Functions: 0 3 0.0 %

          Line data    Source code
       1             : // Copyright 2014 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_COMPILER_JS_BUILTIN_REDUCER_H_
       6             : #define V8_COMPILER_JS_BUILTIN_REDUCER_H_
       7             : 
       8             : #include "src/base/compiler-specific.h"
       9             : #include "src/compiler/graph-reducer.h"
      10             : #include "src/globals.h"
      11             : 
      12             : namespace v8 {
      13             : namespace internal {
      14             : 
      15             : // Forward declarations.
      16             : class CompilationDependencies;
      17             : class Factory;
      18             : 
      19             : namespace compiler {
      20             : 
      21             : // Forward declarations.
      22             : class CommonOperatorBuilder;
      23             : struct FieldAccess;
      24             : class JSGraph;
      25             : class JSOperatorBuilder;
      26             : class SimplifiedOperatorBuilder;
      27             : class TypeCache;
      28             : 
      29             : class V8_EXPORT_PRIVATE JSBuiltinReducer final
      30             :     : public NON_EXPORTED_BASE(AdvancedReducer) {
      31             :  public:
      32             :   JSBuiltinReducer(Editor* editor, JSGraph* jsgraph,
      33             :                    CompilationDependencies* dependencies,
      34             :                    Handle<Context> native_context);
      35      444101 :   ~JSBuiltinReducer() final {}
      36             : 
      37           0 :   const char* reducer_name() const override { return "JSBuiltinReducer"; }
      38             : 
      39             :   Reduction Reduce(Node* node) final;
      40             : 
      41             :  private:
      42             :   enum class ArrayIteratorKind { kArray, kTypedArray };
      43             : 
      44             :   Reduction ReduceArrayIterator(Node* node, IterationKind kind);
      45             :   Reduction ReduceTypedArrayIterator(Node* node, IterationKind kind);
      46             :   Reduction ReduceArrayIterator(Handle<Map> receiver_map, Node* node,
      47             :                                 IterationKind kind,
      48             :                                 ArrayIteratorKind iter_kind);
      49             :   Reduction ReduceArrayIteratorNext(Node* node);
      50             :   Reduction ReduceFastArrayIteratorNext(Handle<Map> iterator_map, Node* node,
      51             :                                         IterationKind kind);
      52             :   Reduction ReduceTypedArrayIteratorNext(Handle<Map> iterator_map, Node* node,
      53             :                                          IterationKind kind);
      54             :   Reduction ReduceTypedArrayToStringTag(Node* node);
      55             :   Reduction ReduceArrayIsArray(Node* node);
      56             :   Reduction ReduceArrayPop(Node* node);
      57             :   Reduction ReduceArrayPush(Node* node);
      58             :   Reduction ReduceArrayShift(Node* node);
      59             :   Reduction ReduceCollectionIterator(Node* node,
      60             :                                      InstanceType collection_instance_type,
      61             :                                      int collection_iterator_map_index);
      62             :   Reduction ReduceCollectionSize(Node* node,
      63             :                                  InstanceType collection_instance_type);
      64             :   Reduction ReduceCollectionIteratorNext(
      65             :       Node* node, int entry_size,
      66             :       InstanceType collection_iterator_instance_type_first,
      67             :       InstanceType collection_iterator_instance_type_last);
      68             :   Reduction ReduceDateNow(Node* node);
      69             :   Reduction ReduceDateGetTime(Node* node);
      70             :   Reduction ReduceGlobalIsFinite(Node* node);
      71             :   Reduction ReduceGlobalIsNaN(Node* node);
      72             :   Reduction ReduceMapHas(Node* node);
      73             :   Reduction ReduceMapGet(Node* node);
      74             :   Reduction ReduceMathAbs(Node* node);
      75             :   Reduction ReduceMathAcos(Node* node);
      76             :   Reduction ReduceMathAcosh(Node* node);
      77             :   Reduction ReduceMathAsin(Node* node);
      78             :   Reduction ReduceMathAsinh(Node* node);
      79             :   Reduction ReduceMathAtan(Node* node);
      80             :   Reduction ReduceMathAtanh(Node* node);
      81             :   Reduction ReduceMathAtan2(Node* node);
      82             :   Reduction ReduceMathCbrt(Node* node);
      83             :   Reduction ReduceMathCeil(Node* node);
      84             :   Reduction ReduceMathClz32(Node* node);
      85             :   Reduction ReduceMathCos(Node* node);
      86             :   Reduction ReduceMathCosh(Node* node);
      87             :   Reduction ReduceMathExp(Node* node);
      88             :   Reduction ReduceMathExpm1(Node* node);
      89             :   Reduction ReduceMathFloor(Node* node);
      90             :   Reduction ReduceMathFround(Node* node);
      91             :   Reduction ReduceMathImul(Node* node);
      92             :   Reduction ReduceMathLog(Node* node);
      93             :   Reduction ReduceMathLog1p(Node* node);
      94             :   Reduction ReduceMathLog10(Node* node);
      95             :   Reduction ReduceMathLog2(Node* node);
      96             :   Reduction ReduceMathMax(Node* node);
      97             :   Reduction ReduceMathMin(Node* node);
      98             :   Reduction ReduceMathPow(Node* node);
      99             :   Reduction ReduceMathRound(Node* node);
     100             :   Reduction ReduceMathSign(Node* node);
     101             :   Reduction ReduceMathSin(Node* node);
     102             :   Reduction ReduceMathSinh(Node* node);
     103             :   Reduction ReduceMathSqrt(Node* node);
     104             :   Reduction ReduceMathTan(Node* node);
     105             :   Reduction ReduceMathTanh(Node* node);
     106             :   Reduction ReduceMathTrunc(Node* node);
     107             :   Reduction ReduceNumberIsFinite(Node* node);
     108             :   Reduction ReduceNumberIsInteger(Node* node);
     109             :   Reduction ReduceNumberIsNaN(Node* node);
     110             :   Reduction ReduceNumberIsSafeInteger(Node* node);
     111             :   Reduction ReduceNumberParseInt(Node* node);
     112             :   Reduction ReduceObjectCreate(Node* node);
     113             :   Reduction ReduceObjectIs(Node* node);
     114             :   Reduction ReduceStringCharAt(Node* node);
     115             :   Reduction ReduceStringCharCodeAt(Node* node);
     116             :   Reduction ReduceStringConcat(Node* node);
     117             :   Reduction ReduceStringFromCharCode(Node* node);
     118             :   Reduction ReduceStringIndexOf(Node* node);
     119             :   Reduction ReduceStringIterator(Node* node);
     120             :   Reduction ReduceStringIteratorNext(Node* node);
     121             :   Reduction ReduceStringToLowerCaseIntl(Node* node);
     122             :   Reduction ReduceStringToUpperCaseIntl(Node* node);
     123             :   Reduction ReduceArrayBufferIsView(Node* node);
     124             :   Reduction ReduceArrayBufferViewAccessor(Node* node,
     125             :                                           InstanceType instance_type,
     126             :                                           FieldAccess const& access);
     127             : 
     128             :   Node* ToNumber(Node* value);
     129             :   Node* ToUint32(Node* value);
     130             : 
     131             :   Graph* graph() const;
     132             :   Factory* factory() const;
     133             :   JSGraph* jsgraph() const { return jsgraph_; }
     134             :   Isolate* isolate() const;
     135             :   Handle<Context> native_context() const { return native_context_; }
     136             :   CommonOperatorBuilder* common() const;
     137             :   SimplifiedOperatorBuilder* simplified() const;
     138             :   JSOperatorBuilder* javascript() const;
     139             :   CompilationDependencies* dependencies() const { return dependencies_; }
     140             : 
     141             :   CompilationDependencies* const dependencies_;
     142             :   JSGraph* const jsgraph_;
     143             :   Handle<Context> const native_context_;
     144             :   TypeCache const& type_cache_;
     145             : };
     146             : 
     147             : }  // namespace compiler
     148             : }  // namespace internal
     149             : }  // namespace v8
     150             : 
     151             : #endif  // V8_COMPILER_JS_BUILTIN_REDUCER_H_

Generated by: LCOV version 1.10