Home | History | Annotate | Download | only in compiler
      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_COMPILER_OPERATOR_PROPERTIES_H_
      6 #define V8_COMPILER_OPERATOR_PROPERTIES_H_
      7 
      8 namespace v8 {
      9 namespace internal {
     10 namespace compiler {
     11 
     12 class Operator;
     13 
     14 class OperatorProperties {
     15  public:
     16   static inline bool HasValueInput(const Operator* op);
     17   static inline bool HasContextInput(const Operator* op);
     18   static inline bool HasEffectInput(const Operator* op);
     19   static inline bool HasControlInput(const Operator* op);
     20   static inline bool HasFrameStateInput(const Operator* op);
     21 
     22   static inline int GetValueInputCount(const Operator* op);
     23   static inline int GetContextInputCount(const Operator* op);
     24   static inline int GetEffectInputCount(const Operator* op);
     25   static inline int GetControlInputCount(const Operator* op);
     26   static inline int GetFrameStateInputCount(const Operator* op);
     27   static inline int GetTotalInputCount(const Operator* op);
     28 
     29   static inline bool HasValueOutput(const Operator* op);
     30   static inline bool HasEffectOutput(const Operator* op);
     31   static inline bool HasControlOutput(const Operator* op);
     32 
     33   static inline int GetValueOutputCount(const Operator* op);
     34   static inline int GetEffectOutputCount(const Operator* op);
     35   static inline int GetControlOutputCount(const Operator* op);
     36 
     37   static inline bool IsBasicBlockBegin(const Operator* op);
     38 };
     39 
     40 }  // namespace compiler
     41 }  // namespace internal
     42 }  // namespace v8
     43 
     44 #endif  // V8_COMPILER_OPERATOR_PROPERTIES_H_
     45