| Index: runtime/vm/intermediate_language.cc
|
| ===================================================================
|
| --- runtime/vm/intermediate_language.cc (revision 27294)
|
| +++ runtime/vm/intermediate_language.cc (working copy)
|
| @@ -961,6 +961,30 @@
|
| }
|
|
|
|
|
| +bool BlockEntryInstr::IsEmptyBlock() {
|
| + return !HasParallelMove() &&
|
| + next()->IsGoto() &&
|
| + !next()->AsGoto()->HasParallelMove() &&
|
| + (!IsJoinEntry() || (AsJoinEntry()->phis() == NULL));
|
| +}
|
| +
|
| +
|
| +void BlockEntryInstr::ClearAllInstructions() {
|
| + JoinEntryInstr* join = this->AsJoinEntry();
|
| + if (join != NULL) {
|
| + for (PhiIterator it(join); !it.Done(); it.Advance()) {
|
| + it.Current()->UnuseAllInputs();
|
| + }
|
| + }
|
| + UnuseAllInputs();
|
| + for (ForwardInstructionIterator it(this);
|
| + !it.Done();
|
| + it.Advance()) {
|
| + it.Current()->UnuseAllInputs();
|
| + }
|
| +}
|
| +
|
| +
|
| void JoinEntryInstr::InsertPhi(intptr_t var_index, intptr_t var_count) {
|
| // Lazily initialize the array of phis.
|
| // Currently, phis are stored in a sparse array that holds the phi
|
|
|