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