17d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org// Copyright 2013 the V8 project authors. All rights reserved. 27d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org// Use of this source code is governed by a BSD-style license that can be 37d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org// found in the LICENSE file. 47d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org 57d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org#ifndef V8_COMPILER_OPERATOR_PROPERTIES_H_ 67d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org#define V8_COMPILER_OPERATOR_PROPERTIES_H_ 77d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org 87d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.orgnamespace v8 { 97d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.orgnamespace internal { 107d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.orgnamespace compiler { 117d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org 127d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.orgclass Operator; 137d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org 147d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.orgclass OperatorProperties { 157d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org public: 161af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org static inline bool HasValueInput(const Operator* op); 171af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org static inline bool HasContextInput(const Operator* op); 181af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org static inline bool HasEffectInput(const Operator* op); 191af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org static inline bool HasControlInput(const Operator* op); 201af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org static inline bool HasFrameStateInput(const Operator* op); 211af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org 221af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org static inline int GetValueInputCount(const Operator* op); 231af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org static inline int GetContextInputCount(const Operator* op); 241af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org static inline int GetEffectInputCount(const Operator* op); 251af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org static inline int GetControlInputCount(const Operator* op); 261af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org static inline int GetFrameStateInputCount(const Operator* op); 271af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org static inline int GetTotalInputCount(const Operator* op); 281af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org 291af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org static inline bool HasValueOutput(const Operator* op); 301af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org static inline bool HasEffectOutput(const Operator* op); 311af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org static inline bool HasControlOutput(const Operator* op); 321af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org 331af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org static inline int GetValueOutputCount(const Operator* op); 341af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org static inline int GetEffectOutputCount(const Operator* op); 351af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org static inline int GetControlOutputCount(const Operator* op); 361af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org 371af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org static inline bool IsBasicBlockBegin(const Operator* op); 387d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org}; 391af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org 401af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org} // namespace compiler 411af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org} // namespace internal 421af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org} // namespace v8 437d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org 447d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org#endif // V8_COMPILER_OPERATOR_PROPERTIES_H_ 45