diff options
author | 2014-11-24 14:09:46 +0000 | |
---|---|---|
committer | 2014-11-24 14:40:22 +0000 | |
commit | 26e7d454b9924f3673b075b05e4c604ad658a062 (patch) | |
tree | 6cfc018247661e298137cb0985b6ce7c7fb400a6 /compiler/dex/global_value_numbering.cc | |
parent | c2155048075b4916536f3aa23a88cd483b0f64a2 (diff) |
Eliminate suspend checks on back-edges to return insn.
This optimization seems to have been broken for a long time.
Change-Id: I62ec85c71bb5253917ad9465a952911e917f6b52
Diffstat (limited to 'compiler/dex/global_value_numbering.cc')
-rw-r--r-- | compiler/dex/global_value_numbering.cc | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/compiler/dex/global_value_numbering.cc b/compiler/dex/global_value_numbering.cc index dbe98506b7..531ed6045a 100644 --- a/compiler/dex/global_value_numbering.cc +++ b/compiler/dex/global_value_numbering.cc @@ -108,11 +108,7 @@ LocalValueNumbering* GlobalValueNumbering::PrepareBasicBlock(BasicBlock* bb, bb->last_mir_insn->dalvikInsn.opcode == Instruction::RETURN || bb->last_mir_insn->dalvikInsn.opcode == Instruction::RETURN_OBJECT || bb->last_mir_insn->dalvikInsn.opcode == Instruction::RETURN_WIDE) && - (bb->first_mir_insn == bb->last_mir_insn || - (static_cast<int>(bb->first_mir_insn->dalvikInsn.opcode) == kMirOpPhi && - (bb->first_mir_insn->next == bb->last_mir_insn || - (static_cast<int>(bb->first_mir_insn->next->dalvikInsn.opcode) == kMirOpPhi && - bb->first_mir_insn->next->next == bb->last_mir_insn))))) { + bb->GetFirstNonPhiInsn() == bb->last_mir_insn) { merge_type = LocalValueNumbering::kReturnMerge; } // At least one predecessor must have been processed before this bb. |