summaryrefslogtreecommitdiff
path: root/compiler/optimizing/code_sinking.cc
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/optimizing/code_sinking.cc')
-rw-r--r--compiler/optimizing/code_sinking.cc15
1 files changed, 2 insertions, 13 deletions
diff --git a/compiler/optimizing/code_sinking.cc b/compiler/optimizing/code_sinking.cc
index 930675b401..766bb01978 100644
--- a/compiler/optimizing/code_sinking.cc
+++ b/compiler/optimizing/code_sinking.cc
@@ -271,21 +271,10 @@ static HInstruction* FindIdealPosition(HInstruction* instruction,
}
}
for (const HUseListNode<HEnvironment*>& use : instruction->GetEnvUses()) {
- HEnvironment* env = use.GetUser();
- HInstruction* user = env->GetHolder();
+ HInstruction* user = use.GetUser()->GetHolder();
if (user->GetBlock() == target_block &&
(insert_pos == nullptr || user->StrictlyDominates(insert_pos))) {
- if (target_block->IsCatchBlock() && target_block->GetFirstInstruction() == user) {
- // We can sink the instructions past the environment setting Nop. If we do that, we have to
- // remove said instruction from the environment. Since we know that we will be sinking the
- // instruction to this block and there are no more instructions to consider, we can safely
- // remove it from the environment now.
- DCHECK(target_block->GetFirstInstruction()->IsNop());
- env->RemoveAsUserOfInput(use.GetIndex());
- env->SetRawEnvAt(use.GetIndex(), /*instruction=*/ nullptr);
- } else {
- insert_pos = user;
- }
+ insert_pos = user;
}
}
if (insert_pos == nullptr) {