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 8namespace v8 { 9namespace internal { 10namespace compiler { 11 12class Operator; 13 14class 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