From 2b2bef245d5b2c6faa2d6f36da14866b2d8f5e4f Mon Sep 17 00:00:00 2001 From: Mathieu Chartier Date: Thu, 26 Oct 2017 17:10:19 -0700 Subject: Refactor DexInstructionIterator Add a way to get the dex PC for the "for each" use case. Bug: 67104794 Test: test-art-host Change-Id: I144c459c9a2a03ec8d56842280338d1f7ce1caf0 --- compiler/optimizing/code_generator.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'compiler/optimizing/code_generator.cc') diff --git a/compiler/optimizing/code_generator.cc b/compiler/optimizing/code_generator.cc index b8d1f52995..23142514f7 100644 --- a/compiler/optimizing/code_generator.cc +++ b/compiler/optimizing/code_generator.cc @@ -919,10 +919,9 @@ static void CheckLoopEntriesCanBeUsedForOsr(const HGraph& graph, } ArenaVector covered( loop_headers.size(), 0, graph.GetAllocator()->Adapter(kArenaAllocMisc)); - IterationRange instructions = code_item.Instructions(); - for (auto it = instructions.begin(); it != instructions.end(); ++it) { - const uint32_t dex_pc = it.GetDexPC(instructions.begin()); - const Instruction& instruction = *it; + for (const DexInstructionPcPair& pair : code_item.Instructions()) { + const uint32_t dex_pc = pair.DexPc(); + const Instruction& instruction = pair.Inst(); if (instruction.IsBranch()) { uint32_t target = dex_pc + instruction.GetTargetOffset(); CheckCovers(target, graph, code_info, loop_headers, &covered); -- cgit v1.2.3-59-g8ed1b