| Index: runtime/vm/intermediate_language.cc
|
| diff --git a/runtime/vm/intermediate_language.cc b/runtime/vm/intermediate_language.cc
|
| index 1ba2c3f1992448e16255c9808d30d9407a3a3987..d05c601b87d7ae16473d35ed8491142a97f88521 100644
|
| --- a/runtime/vm/intermediate_language.cc
|
| +++ b/runtime/vm/intermediate_language.cc
|
| @@ -49,7 +49,19 @@ Definition::Definition(intptr_t deopt_id)
|
| ssa_temp_index_(-1),
|
| input_use_list_(NULL),
|
| env_use_list_(NULL),
|
| - constant_value_(Object::ZoneHandle(ConstantPropagator::Unknown())) {
|
| + constant_value_(NULL) {
|
| +}
|
| +
|
| +
|
| +// A value in the constant propagation lattice.
|
| +// - non-constant sentinel
|
| +// - a constant (any non-sentinel value)
|
| +// - unknown sentinel
|
| +Object& Definition::constant_value() {
|
| + if (constant_value_ == NULL) {
|
| + constant_value_ = &Object::ZoneHandle(ConstantPropagator::Unknown());
|
| + }
|
| + return *constant_value_;
|
| }
|
|
|
|
|
|
|