LCOV - code coverage report
Current view: top level - src/compiler - typed-optimization.h (source / functions) Hit Total Coverage
Test: app.info Lines: 2 2 100.0 %
Date: 2019-04-19 Functions: 2 3 66.7 %

          Line data    Source code
       1             : // Copyright 2016 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_TYPED_OPTIMIZATION_H_
       6             : #define V8_COMPILER_TYPED_OPTIMIZATION_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 Factory;
      17             : class Isolate;
      18             : 
      19             : namespace compiler {
      20             : 
      21             : // Forward declarations.
      22             : class CompilationDependencies;
      23             : class JSGraph;
      24             : class SimplifiedOperatorBuilder;
      25             : class TypeCache;
      26             : 
      27     1857610 : class V8_EXPORT_PRIVATE TypedOptimization final
      28             :     : public NON_EXPORTED_BASE(AdvancedReducer) {
      29             :  public:
      30             :   TypedOptimization(Editor* editor, CompilationDependencies* dependencies,
      31             :                     JSGraph* jsgraph, JSHeapBroker* broker);
      32             :   ~TypedOptimization() override;
      33             : 
      34          36 :   const char* reducer_name() const override { return "TypedOptimization"; }
      35             : 
      36             :   Reduction Reduce(Node* node) final;
      37             : 
      38             :  private:
      39             :   Reduction ReduceConvertReceiver(Node* node);
      40             :   Reduction ReduceCheckHeapObject(Node* node);
      41             :   Reduction ReduceCheckMaps(Node* node);
      42             :   Reduction ReduceCheckNumber(Node* node);
      43             :   Reduction ReduceCheckString(Node* node);
      44             :   Reduction ReduceCheckEqualsInternalizedString(Node* node);
      45             :   Reduction ReduceCheckEqualsSymbol(Node* node);
      46             :   Reduction ReduceLoadField(Node* node);
      47             :   Reduction ReduceNumberFloor(Node* node);
      48             :   Reduction ReduceNumberRoundop(Node* node);
      49             :   Reduction ReduceNumberSilenceNaN(Node* node);
      50             :   Reduction ReduceNumberToUint8Clamped(Node* node);
      51             :   Reduction ReducePhi(Node* node);
      52             :   Reduction ReduceReferenceEqual(Node* node);
      53             :   Reduction ReduceStringComparison(Node* node);
      54             :   Reduction ReduceStringLength(Node* node);
      55             :   Reduction ReduceSameValue(Node* node);
      56             :   Reduction ReduceSelect(Node* node);
      57             :   Reduction ReduceSpeculativeToNumber(Node* node);
      58             :   Reduction ReduceCheckNotTaggedHole(Node* node);
      59             :   Reduction ReduceTypeOf(Node* node);
      60             :   Reduction ReduceToBoolean(Node* node);
      61             :   Reduction ReduceSpeculativeNumberAdd(Node* node);
      62             :   Reduction ReduceSpeculativeNumberMultiply(Node* node);
      63             :   Reduction ReduceSpeculativeNumberBinop(Node* node);
      64             :   Reduction ReduceSpeculativeNumberComparison(Node* node);
      65             : 
      66             :   Reduction TryReduceStringComparisonOfStringFromSingleCharCode(
      67             :       Node* comparison, Node* from_char_code, Type constant_type,
      68             :       bool inverted);
      69             :   Reduction TryReduceStringComparisonOfStringFromSingleCharCodeToConstant(
      70             :       Node* comparison, const StringRef& string, bool inverted);
      71             :   const Operator* NumberComparisonFor(const Operator* op);
      72             : 
      73             :   Node* ConvertPlainPrimitiveToNumber(Node* node);
      74             :   Reduction ReduceJSToNumberInput(Node* input);
      75             : 
      76             :   SimplifiedOperatorBuilder* simplified() const;
      77             :   Factory* factory() const;
      78             :   Graph* graph() const;
      79             : 
      80             :   CompilationDependencies* dependencies() const { return dependencies_; }
      81             :   JSGraph* jsgraph() const { return jsgraph_; }
      82             :   JSHeapBroker* broker() const { return broker_; }
      83             : 
      84             :   CompilationDependencies* const dependencies_;
      85             :   JSGraph* const jsgraph_;
      86             :   JSHeapBroker* broker_;
      87             :   Type const true_type_;
      88             :   Type const false_type_;
      89             :   TypeCache const* type_cache_;
      90             : 
      91             :   DISALLOW_COPY_AND_ASSIGN(TypedOptimization);
      92             : };
      93             : 
      94             : }  // namespace compiler
      95             : }  // namespace internal
      96             : }  // namespace v8
      97             : 
      98             : #endif  // V8_COMPILER_TYPED_OPTIMIZATION_H_

Generated by: LCOV version 1.10