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