5 #ifndef V8_COMPILER_JS_TYPE_HINT_LOWERING_H_ 6 #define V8_COMPILER_JS_TYPE_HINT_LOWERING_H_ 8 #include "src/base/flags.h" 9 #include "src/compiler/graph-reducer.h" 10 #include "src/deoptimize-reason.h" 11 #include "src/handles.h" 41 enum Flag { kNoFlags = 0u, kBailoutOnUninitialized = 1u << 1 };
61 Node* value()
const {
return value_; }
62 Node* effect()
const {
return effect_; }
63 Node* control()
const {
return control_; }
65 bool Changed()
const {
return kind_ != LoweringResultKind::kNoChange; }
66 bool IsExit()
const {
return kind_ == LoweringResultKind::kExit; }
67 bool IsSideEffectFree()
const {
68 return kind_ == LoweringResultKind::kSideEffectFree;
73 DCHECK_NOT_NULL(effect);
74 DCHECK_NOT_NULL(control);
75 return LoweringResult(LoweringResultKind::kSideEffectFree, value, effect,
80 return LoweringResult(LoweringResultKind::kNoChange,
nullptr,
nullptr,
90 enum class LoweringResultKind { kNoChange, kSideEffectFree, kExit };
94 : kind_(kind), value_(value), effect_(effect), control_(control) {}
96 LoweringResultKind kind_;
129 int arg_count,
Node* effect,
Node* control,
134 int arg_count,
Node* effect,
157 DeoptimizeReason reson)
const;
159 JSGraph* jsgraph()
const {
return jsgraph_; }
161 Flags flags()
const {
return flags_; }
163 return feedback_vector_;
170 DISALLOW_COPY_AND_ASSIGN(JSTypeHintLowering);
177 #endif // V8_COMPILER_JS_TYPE_HINT_LOWERING_H_