Lines Matching refs:loopAnalysis
107 GrowableList *ivList = cUnit->loopAnalysis->ivList;
133 LoopAnalysis *loopAnalysis = cUnit->loopAnalysis;
136 for (i = 0; i < loopAnalysis->arrayAccessInfo->numUsed; i++) {
138 GET_ELEM_N(loopAnalysis->arrayAccessInfo,
147 LOGE(" endReg %d", loopAnalysis->endConditionReg);
150 LOGE(" opcode %d", loopAnalysis->loopBranchOpcode);
169 LoopAnalysis *loopAnalysis = cUnit->loopAnalysis; in isLoopOptimizable() local
171 if (loopAnalysis->numBasicIV != 1) return false; in isLoopOptimizable()
172 for (i = 0; i < loopAnalysis->ivList->numUsed; i++) { in isLoopOptimizable()
175 ivInfo = GET_ELEM_N(loopAnalysis->ivList, InductionVariableInfo*, i); in isLoopOptimizable()
182 loopAnalysis->isCountUpLoop = ivInfo->inc > 0; in isLoopOptimizable()
202 if (branch->ssaRep->uses[0] != loopAnalysis->ssaBIV) { in isLoopOptimizable()
206 if (loopAnalysis->isCountUpLoop) { in isLoopOptimizable()
226 loopAnalysis->endConditionReg = DECODE_REG(endReg); in isLoopOptimizable()
243 loopAnalysis->endConditionReg = DECODE_REG(endReg); in isLoopOptimizable()
248 loopAnalysis->loopBranchOpcode = opCode; in isLoopOptimizable()
261 LoopAnalysis *loopAnalysis = cUnit->loopAnalysis; in updateRangeCheckInfo() local
264 for (i = 0; i < loopAnalysis->ivList->numUsed; i++) { in updateRangeCheckInfo()
265 ivInfo = GET_ELEM_N(loopAnalysis->ivList, InductionVariableInfo*, i); in updateRangeCheckInfo()
268 for (j = 0; j < loopAnalysis->arrayAccessInfo->numUsed; j++) { in updateRangeCheckInfo()
270 GET_ELEM_N(loopAnalysis->arrayAccessInfo, in updateRangeCheckInfo()
291 dvmInsertGrowableList(loopAnalysis->arrayAccessInfo, in updateRangeCheckInfo()
373 if (dvmIsBitSet(cUnit->loopAnalysis->isIndVarV, in doLoopBodyCodeMotion()
390 LoopAnalysis *loopAnalysis = cUnit->loopAnalysis; in genHoistedChecks() local
396 for (i = 0; i < loopAnalysis->arrayAccessInfo->numUsed; i++) { in genHoistedChecks()
398 GET_ELEM_N(loopAnalysis->arrayAccessInfo, in genHoistedChecks()
406 rangeCheckMIR->dalvikInsn.opCode = (loopAnalysis->isCountUpLoop) ? in genHoistedChecks()
410 rangeCheckMIR->dalvikInsn.vC = loopAnalysis->endConditionReg; in genHoistedChecks()
413 rangeCheckMIR->dalvikInsn.arg[2] = loopAnalysis->loopBranchOpcode; in genHoistedChecks()
423 if (loopAnalysis->arrayAccessInfo->numUsed != 0) { in genHoistedChecks()
424 if (loopAnalysis->isCountUpLoop) { in genHoistedChecks()
431 if (loopAnalysis->loopBranchOpcode == OP_IF_LT || in genHoistedChecks()
432 loopAnalysis->loopBranchOpcode == OP_IF_LE) { in genHoistedChecks()
435 boundCheckMIR->dalvikInsn.vA = loopAnalysis->endConditionReg; in genHoistedChecks()
443 if (loopAnalysis->loopBranchOpcode == OP_IF_LE) { in genHoistedChecks()
447 } else if (loopAnalysis->loopBranchOpcode == OP_IF_LTZ) { in genHoistedChecks()
454 } else if (loopAnalysis->loopBranchOpcode == OP_IF_LEZ) { in genHoistedChecks()
476 LoopAnalysis *loopAnalysis = dvmCompilerNew(sizeof(LoopAnalysis), true); in dvmCompilerLoopOpt() local
482 cUnit->loopAnalysis = loopAnalysis; in dvmCompilerLoopOpt()
504 loopAnalysis->ivList = dvmCompilerNew(sizeof(GrowableList), true); in dvmCompilerLoopOpt()
505 dvmInitGrowableList(loopAnalysis->ivList, 4); in dvmCompilerLoopOpt()
506 loopAnalysis->isIndVarV = dvmAllocBitVector(cUnit->numSSARegs, false); in dvmCompilerLoopOpt()
515 loopAnalysis->arrayAccessInfo = dvmCompilerNew(sizeof(GrowableList), true); in dvmCompilerLoopOpt()
516 dvmInitGrowableList(loopAnalysis->arrayAccessInfo, 4); in dvmCompilerLoopOpt()
517 loopAnalysis->bodyIsClean = doLoopBodyCodeMotion(cUnit); in dvmCompilerLoopOpt()