diff options
Diffstat (limited to 'compiler/optimizing/licm.cc')
-rw-r--r-- | compiler/optimizing/licm.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/compiler/optimizing/licm.cc b/compiler/optimizing/licm.cc index 0c791b640d..729a277ee0 100644 --- a/compiler/optimizing/licm.cc +++ b/compiler/optimizing/licm.cc @@ -64,7 +64,9 @@ static bool InputsAreDefinedBeforeLoop(HInstruction* instruction) { /** * If `environment` has a loop header phi, we replace it with its first input. */ -static void UpdateLoopPhisIn(HEnvironment* environment, HLoopInformation* info) { +static void UpdateLoopPhisIn(ArenaAllocator* allocator, + HEnvironment* environment, + HLoopInformation* info) { for (; environment != nullptr; environment = environment->GetParent()) { for (size_t i = 0, e = environment->Size(); i < e; ++i) { HInstruction* input = environment->GetInstructionAt(i); @@ -72,7 +74,7 @@ static void UpdateLoopPhisIn(HEnvironment* environment, HLoopInformation* info) environment->RemoveAsUserOfInput(i); HInstruction* incoming = input->InputAt(0); environment->SetRawEnvAt(i, incoming); - incoming->AddEnvUseAt(environment, i); + incoming->AddEnvUseAt(allocator, environment, i); } } } @@ -152,7 +154,7 @@ bool LICM::Run() { // We need to update the environment if the instruction has a loop header // phi in it. if (instruction->NeedsEnvironment()) { - UpdateLoopPhisIn(instruction->GetEnvironment(), loop_info); + UpdateLoopPhisIn(graph_->GetAllocator(), instruction->GetEnvironment(), loop_info); } else { DCHECK(!instruction->HasEnvironment()); } |