Lines Matching defs:CPE

101   ///   CPE     - A constant pool entry that has been placed somewhere, which
510 const CPEntry & CPE = CPEntries[i][j];
511 if (CPE.CPEMI && CPE.CPEMI->getOperand(1).isCPI())
512 AFI->recordCPEClone(i, CPE.CPI);
536 // Create the basic block to hold the CPE's.
563 // identity mapping of CPI's to CPE's.
706 for (CPEntry &CPE : CPEs)
707 if (CPE.CPEMI == CPEMI)
708 return &CPE;
950 CPEntry *CPE = findConstPoolEntry(CPI, CPEMI);
951 assert(CPE && "Cannot find a corresponding CPEntry!");
952 CPE->RefCount++;
1119 /// isWaterInRange - Returns true if a CPE placed after the specified
1122 /// Compute how much the function will grow by inserting a CPE after Water.
1141 // The CPE may be able to hide in the alignment padding before the next
1146 // Compute the padding that would go at the end of the CPE to align the next
1150 // If the CPE is to be inserted before the instruction, that will raise
1152 // in blocks between CPE and the user.
1156 // CPE fits in existing padding.
1174 dbgs() << "User of CPE#" << CPEMI->getOperand(0).getImm()
1179 << format("CPE address=%#x offset=%+d: ", CPEOffset,
1211 CPEntry *CPE = findConstPoolEntry(CPI, CPEMI);
1212 assert(CPE && "Unexpected!");
1213 if (--CPE->RefCount == 0) {
1215 CPE->CPEMI = nullptr;
1229 /// LookForCPEntryInRange - see if the currently referenced CPE is in range;
1230 /// if not, see if an in-range clone of the CPE is in range, and if so,
1239 // Check to see if the CPE is already in-range.
1246 // No. Look for previously created clones of the CPE that are in range.
1249 for (CPEntry &CPE : CPEs) {
1251 if (CPE.CPEMI == CPEMI)
1254 if (CPE.CPEMI == nullptr)
1256 if (isCPEntryInRange(UserMI, UserOffset, CPE.CPEMI, U.getMaxDisp(),
1258 LLVM_DEBUG(dbgs() << "Replacing CPE#" << CPI << " with CPE#" << CPE.CPI
1261 U.CPEMI = CPE.CPEMI;
1265 MO.setIndex(CPE.CPI);
1269 CPE.RefCount++;
1294 /// we can place the CPE referenced from U so it's within range of U's MI.
1298 /// terminates, the CPE location for a particular CPUser is only allowed to
1362 /// CPUsers[CPUserIndex], so create a place to put the CPE. The end of the
1386 // Compute the offset where the CPE will begin.
1391 << format(", expected CPE offset %#x\n", CPEOffset));
1416 // entries are 4 bytes: if instruction I references island CPE, and
1417 // instruction I+1 references CPE', it will not work well to put CPE as far
1418 // forward as possible, since then CPE' cannot immediately follow it (that
1419 // location is 2 bytes farther away from I+1 than CPE was from I) and we'd
1566 // No existing clone of this CPE is within range.
1570 // Look for water where we can place this CPE.
1584 // The new CPE goes before the following block (NewMBB).
1613 // considerably reduces the number of times we have to move the same CPE
1624 // Now that we have an island to add the CPE to, clone the original CPE and
1652 dbgs() << " Moved CPE to #" << ID << " CPI=" << CPI
1691 for (CPEntry &CPE : CPEs) {
1692 if (CPE.RefCount == 0 && CPE.CPEMI) {
1693 removeDeadCPEMI(CPE.CPEMI);
1694 CPE.CPEMI = nullptr;