• Home
  • Raw
  • Download

Lines Matching refs:cUnit

537 static BasicBlock *splitBlock(CompilationUnit *cUnit,  in splitBlock()  argument
551 cUnit->numBlocks++); in splitBlock()
552 dvmInsertGrowableList(&cUnit->blockList, (intptr_t) bottomBlock); in splitBlock()
608 static BasicBlock *findBlock(CompilationUnit *cUnit, in findBlock() argument
612 GrowableList *blockList = &cUnit->blockList; in findBlock()
624 BasicBlock *newBB = splitBlock(cUnit, codeOffset, bb); in findBlock()
629 bb = dvmCompilerNewBB(kDalvikByteCode, cUnit->numBlocks++); in findBlock()
630 dvmInsertGrowableList(&cUnit->blockList, (intptr_t) bb); in findBlock()
638 void dvmDumpCFG(CompilationUnit *cUnit, const char *dirPrefix) in dvmDumpCFG() argument
640 const Method *method = cUnit->method; in dvmDumpCFG()
644 sprintf(startOffset, "_%x", cUnit->entryBlock->fallThrough->startOffset); in dvmDumpCFG()
682 int numReachableBlocks = cUnit->numReachableBlocks; in dvmDumpCFG()
684 const GrowableList *blockList = &cUnit->blockList; in dvmDumpCFG()
687 int blockIdx = cUnit->dfsOrder.elemList[idx]; in dvmDumpCFG()
704 dvmCompilerFullDisassembler(cUnit, mir) : in dvmDumpCFG()
806 static bool verifyPredInfo(CompilationUnit *cUnit, BasicBlock *bb) in verifyPredInfo() argument
815 dvmGrowableListGetElement(&cUnit->blockList, blockIdx); in verifyPredInfo()
841 dvmDumpCFG(cUnit, "/sdcard/cfg/"); in verifyPredInfo()
851 static void processTryCatchBlocks(CompilationUnit *cUnit) in processTryCatchBlocks() argument
853 const Method *meth = cUnit->method; in processTryCatchBlocks()
864 BitVector *tryBlockAddr = cUnit->tryBlockAddr; in processTryCatchBlocks()
897 findBlock(cUnit, handler->address, in processTryCatchBlocks()
909 static void processCanBranch(CompilationUnit *cUnit, BasicBlock *curBlock, in processCanBranch() argument
941 BasicBlock *takenBlock = findBlock(cUnit, target, in processCanBranch()
951 BasicBlock *fallthroughBlock = findBlock(cUnit, in processCanBranch()
973 findBlock(cUnit, curOffset + width, in processCanBranch()
983 static void processCanSwitch(CompilationUnit *cUnit, BasicBlock *curBlock, in processCanSwitch() argument
986 u2 *switchData= (u2 *) (cUnit->method->insns + curOffset + in processCanSwitch()
1037 BasicBlock *caseBlock = findBlock(cUnit, curOffset + targetTable[i], in processCanSwitch()
1054 BasicBlock *fallthroughBlock = findBlock(cUnit, in processCanSwitch()
1065 static void processCanThrow(CompilationUnit *cUnit, BasicBlock *curBlock, in processCanThrow() argument
1070 const Method *method = cUnit->method; in processCanThrow()
1098 BasicBlock *catchBlock = findBlock(cUnit, handler->address, in processCanThrow()
1115 cUnit->numBlocks++); in processCanThrow()
1117 dvmInsertGrowableList(&cUnit->blockList, (intptr_t) ehBlock); in processCanThrow()
1131 BasicBlock *fallthroughBlock = findBlock(cUnit, in processCanThrow()
1159 CompilationUnit cUnit; in dvmCompileMethod() local
1172 memset(&cUnit, 0, sizeof(cUnit)); in dvmCompileMethod()
1173 cUnit.method = method; in dvmCompileMethod()
1175 cUnit.jitMode = kJitMethod; in dvmCompileMethod()
1178 dvmInitGrowableList(&cUnit.blockList, 4); in dvmCompileMethod()
1185 dvmInitGrowableList(&cUnit.pcReconstructionList, 8); in dvmCompileMethod()
1190 cUnit.tryBlockAddr = tryBlockAddr; in dvmCompileMethod()
1196 cUnit.entryBlock = entryBlock; in dvmCompileMethod()
1197 cUnit.exitBlock = exitBlock; in dvmCompileMethod()
1199 dvmInsertGrowableList(&cUnit.blockList, (intptr_t) entryBlock); in dvmCompileMethod()
1200 dvmInsertGrowableList(&cUnit.blockList, (intptr_t) exitBlock); in dvmCompileMethod()
1205 dvmInsertGrowableList(&cUnit.blockList, (intptr_t) curBlock); in dvmCompileMethod()
1213 cUnit.numBlocks = numBlocks; in dvmCompileMethod()
1216 processTryCatchBlocks(&cUnit); in dvmCompileMethod()
1235 processCanBranch(&cUnit, curBlock, insn, curOffset, width, flags, in dvmCompileMethod()
1250 findBlock(&cUnit, curOffset + width, in dvmCompileMethod()
1258 processCanThrow(&cUnit, curBlock, insn, curOffset, width, flags, in dvmCompileMethod()
1261 processCanSwitch(&cUnit, curBlock, insn, curOffset, width, flags); in dvmCompileMethod()
1264 BasicBlock *nextBlock = findBlock(&cUnit, curOffset, in dvmCompileMethod()
1289 if (cUnit.printMe) { in dvmCompileMethod()
1290 dvmCompilerDumpCompilationUnit(&cUnit); in dvmCompileMethod()
1294 cUnit.numDalvikRegisters = cUnit.method->registersSize; in dvmCompileMethod()
1298 dvmCompilerDataFlowAnalysisDispatcher(&cUnit, verifyPredInfo, in dvmCompileMethod()
1304 dvmCompilerMethodSSATransformation(&cUnit); in dvmCompileMethod()
1306 dvmCompilerInitializeRegAlloc(&cUnit); // Needs to happen after SSA naming in dvmCompileMethod()
1309 dvmCompilerLocalRegAlloc(&cUnit); in dvmCompileMethod()
1312 dvmCompilerMethodMIR2LIR(&cUnit); in dvmCompileMethod()
1318 if (cUnit.firstLIRInsn) { in dvmCompileMethod()
1321 dvmCompilerAssembleLIR(&cUnit, info); in dvmCompileMethod()
1322 cUnit.assemblerRetries++; in dvmCompileMethod()
1323 if (cUnit.printMe && cUnit.assemblerStatus != kSuccess) in dvmCompileMethod()
1324 LOGD("Assembler abort #%d on %d",cUnit.assemblerRetries, in dvmCompileMethod()
1325 cUnit.assemblerStatus); in dvmCompileMethod()
1326 } while (cUnit.assemblerStatus == kRetryAll); in dvmCompileMethod()
1328 if (cUnit.printMe) { in dvmCompileMethod()
1329 dvmCompilerCodegenDump(&cUnit); in dvmCompileMethod()
1346 static bool exhaustTrace(CompilationUnit *cUnit, BasicBlock *curBlock) in exhaustTrace() argument
1349 const u2 *codePtr = cUnit->method->insns + curOffset; in exhaustTrace()
1367 changed |= exhaustTrace(cUnit, curBlock->taken); in exhaustTrace()
1369 changed |= exhaustTrace(cUnit, curBlock->fallThrough); in exhaustTrace()
1389 curBlock->fallThrough = cUnit->exitBlock; in exhaustTrace()
1390 dvmCompilerSetBit(cUnit->exitBlock->predecessors, curBlock->id); in exhaustTrace()
1393 processCanBranch(cUnit, curBlock, insn, curOffset, width, flags, in exhaustTrace()
1396 exhaustTrace(cUnit, curBlock->taken); in exhaustTrace()
1399 exhaustTrace(cUnit, curBlock->fallThrough); in exhaustTrace()
1404 BasicBlock *nextBlock = findBlock(cUnit, curOffset, in exhaustTrace()
1418 curBlock->fallThrough == cUnit->exitBlock); in exhaustTrace()
1437 static bool compileLoop(CompilationUnit *cUnit, unsigned int startOffset, in compileLoop() argument
1450 cUnit->jitMode = kJitLoop; in compileLoop()
1453 dvmInitGrowableList(&cUnit->blockList, 4); in compileLoop()
1456 dvmInitGrowableList(&cUnit->pcReconstructionList, 8); in compileLoop()
1463 cUnit->entryBlock = entryBlock; in compileLoop()
1464 cUnit->exitBlock = exitBlock; in compileLoop()
1466 dvmInsertGrowableList(&cUnit->blockList, (intptr_t) entryBlock); in compileLoop()
1467 dvmInsertGrowableList(&cUnit->blockList, (intptr_t) exitBlock); in compileLoop()
1473 dvmInsertGrowableList(&cUnit->blockList, (intptr_t) curBlock); in compileLoop()
1481 cUnit->numBlocks = numBlocks; in compileLoop()
1484 dvmCompilerDataFlowAnalysisDispatcher(cUnit, in compileLoop()
1488 changed = exhaustTrace(cUnit, curBlock); in compileLoop()
1492 bb = dvmCompilerNewBB(kChainingCellBackwardBranch, cUnit->numBlocks++); in compileLoop()
1493 dvmInsertGrowableList(&cUnit->blockList, (intptr_t) bb); in compileLoop()
1494 cUnit->backChainBlock = bb; in compileLoop()
1497 bb = dvmCompilerNewBB(kPCReconstruction, cUnit->numBlocks++); in compileLoop()
1498 dvmInsertGrowableList(&cUnit->blockList, (intptr_t) bb); in compileLoop()
1501 bb = dvmCompilerNewBB(kExceptionHandling, cUnit->numBlocks++); in compileLoop()
1502 dvmInsertGrowableList(&cUnit->blockList, (intptr_t) bb); in compileLoop()
1503 cUnit->puntBlock = bb; in compileLoop()
1505 cUnit->numDalvikRegisters = cUnit->method->registersSize; in compileLoop()
1509 dvmCompilerDataFlowAnalysisDispatcher(cUnit, verifyPredInfo, in compileLoop()
1515 if (!dvmCompilerBuildLoop(cUnit)) in compileLoop()
1518 dvmCompilerLoopOpt(cUnit); in compileLoop()
1524 dvmCompilerInsertBackwardChaining(cUnit); in compileLoop()
1526 dvmCompilerInitializeRegAlloc(cUnit); in compileLoop()
1529 dvmCompilerLocalRegAlloc(cUnit); in compileLoop()
1532 dvmCompilerMIR2LIR(cUnit); in compileLoop()
1535 if (cUnit->quitLoopMode) { in compileLoop()
1536 if (cUnit->printMe || gDvmJit.receivedSIGUSR2) { in compileLoop()
1538 cUnit->entryBlock->startOffset); in compileLoop()
1545 dvmCompilerAssembleLIR(cUnit, info); in compileLoop()
1546 cUnit->assemblerRetries++; in compileLoop()
1547 if (cUnit->printMe && cUnit->assemblerStatus != kSuccess) in compileLoop()
1548 LOGD("Assembler abort #%d on %d", cUnit->assemblerRetries, in compileLoop()
1549 cUnit->assemblerStatus); in compileLoop()
1550 } while (cUnit->assemblerStatus == kRetryAll); in compileLoop()
1553 if (cUnit->assemblerStatus == kRetryHalve) { in compileLoop()
1557 if (cUnit->printMe || gDvmJit.receivedSIGUSR2) { in compileLoop()
1558 LOGD("Loop trace @ offset %04x", cUnit->entryBlock->startOffset); in compileLoop()
1559 dvmCompilerCodegenDump(cUnit); in compileLoop()
1569 if (cUnit->hasClassLiterals && info->codeAddress) { in compileLoop()
1570 dvmJitInstallClassObjectPointers(cUnit, (char *) info->codeAddress); in compileLoop()
1579 assert(cUnit->assemblerStatus == kSuccess); in compileLoop()
1583 methodStats->nativeSize += cUnit->totalSize; in compileLoop()
1614 CompilationUnit cUnit; in dvmCompileTrace() local
1636 memset(&cUnit, 0, sizeof(CompilationUnit)); in dvmCompileTrace()
1644 cUnit.bailPtr = bailPtr; in dvmCompileTrace()
1647 cUnit.printMe = gDvmJit.printMe; in dvmCompileTrace()
1650 cUnit.method = desc->method; in dvmCompileTrace()
1653 cUnit.traceDesc = desc; in dvmCompileTrace()
1654 cUnit.jitMode = kJitTrace; in dvmCompileTrace()
1657 dvmInitGrowableList(&cUnit.pcReconstructionList, 8); in dvmCompileTrace()
1660 blockList = &cUnit.blockList; in dvmCompileTrace()
1725 cUnit.allSingleStep = true; in dvmCompileTrace()
1731 cUnit.printMe = true; in dvmCompileTrace()
1747 if (cUnit.printMe) { in dvmCompileTrace()
1761 width = parseInsn(codePtr, &insn->dalvikInsn, cUnit.printMe); in dvmCompileTrace()
1768 cUnit.numInsts++; in dvmCompileTrace()
1787 if (cUnit.numInsts >= numMaxInsts) { in dvmCompileTrace()
1850 cUnit.hasInvoke = true; in dvmCompileTrace()
1859 return compileLoop(&cUnit, startOffset, desc, numMaxInsts, in dvmCompileTrace()
1911 cUnit.switchOverflowPad = in dvmCompileTrace()
2011 cUnit.puntBlock = curBB; in dvmCompileTrace()
2013 if (cUnit.printMe) { in dvmCompileTrace()
2029 cUnit.numBlocks = numBlocks; in dvmCompileTrace()
2032 cUnit.instructionSet = dvmCompilerInstructionSet(); in dvmCompileTrace()
2035 if (cUnit.hasInvoke && !(gDvmJit.disableOpt & (1 << kMethodInlining))) { in dvmCompileTrace()
2036 dvmCompilerInlineMIR(&cUnit, info); in dvmCompileTrace()
2039 cUnit.numDalvikRegisters = cUnit.method->registersSize; in dvmCompileTrace()
2042 dvmInitializeSSAConversion(&cUnit); in dvmCompileTrace()
2044 dvmCompilerNonLoopAnalysis(&cUnit); in dvmCompileTrace()
2046 dvmCompilerInitializeRegAlloc(&cUnit); // Needs to happen after SSA naming in dvmCompileTrace()
2048 if (cUnit.printMe) { in dvmCompileTrace()
2049 dvmCompilerDumpCompilationUnit(&cUnit); in dvmCompileTrace()
2053 dvmCompilerLocalRegAlloc(&cUnit); in dvmCompileTrace()
2056 dvmCompilerMIR2LIR(&cUnit); in dvmCompileTrace()
2060 dvmCompilerAssembleLIR(&cUnit, info); in dvmCompileTrace()
2061 cUnit.assemblerRetries++; in dvmCompileTrace()
2062 if (cUnit.printMe && cUnit.assemblerStatus != kSuccess) in dvmCompileTrace()
2063 LOGD("Assembler abort #%d on %d",cUnit.assemblerRetries, in dvmCompileTrace()
2064 cUnit.assemblerStatus); in dvmCompileTrace()
2065 } while (cUnit.assemblerStatus == kRetryAll); in dvmCompileTrace()
2067 if (cUnit.printMe) { in dvmCompileTrace()
2069 dvmCompilerCodegenDump(&cUnit); in dvmCompileTrace()
2072 cUnit.numInsts); in dvmCompileTrace()
2075 if (cUnit.assemblerStatus == kRetryHalve) { in dvmCompileTrace()
2080 return dvmCompileTrace(desc, cUnit.numInsts / 2, info, bailPtr, in dvmCompileTrace()
2091 if (cUnit.hasClassLiterals && info->codeAddress) { in dvmCompileTrace()
2092 dvmJitInstallClassObjectPointers(&cUnit, (char *) info->codeAddress); in dvmCompileTrace()
2101 assert(cUnit.assemblerStatus == kSuccess); in dvmCompileTrace()
2103 methodStats->nativeSize += cUnit.totalSize; in dvmCompileTrace()