Lines Matching refs:CR

2029 bool SelectionDAGBuilder::handleSmallSwitchRange(CaseRec& CR,
2035 size_t Size = CR.Range.second - CR.Range.first;
2045 MachineFunction::iterator BBI = CR.CaseBB;
2056 // TODO: Handle cases where CR.CaseBB != SwitchBB.
2057 if (Size == 2 && CR.CaseBB == SwitchBB) {
2058 Case &Small = *CR.Range.first;
2059 Case &Big = *(CR.Range.second-1);
2109 for (CaseItr I = CR.Range.first, IE = CR.Range.second; I != IE; ++I) {
2112 for (CaseItr J = CR.Range.first; J < I; ++J) {
2120 Case &BackCase = *(CR.Range.second-1);
2126 for (Case *I = &*(CR.Range.second-2), *E = &*CR.Range.first-1; I != E; --I)
2136 MachineBasicBlock *CurBlock = CR.CaseBB;
2137 for (CaseItr I = CR.Range.first, E = CR.Range.second; I != E; ++I) {
2196 bool SelectionDAGBuilder::handleJTSwitchCase(CaseRec &CR,
2201 Case& FrontCase = *CR.Range.first;
2202 Case& BackCase = *(CR.Range.second-1);
2208 for (CaseItr I = CR.Range.first, E = CR.Range.second; I != E; ++I)
2233 MachineFunction::iterator BBI = CR.CaseBB;
2236 const BasicBlock *LLVMBB = CR.CaseBB->getBasicBlock();
2245 addSuccessorWithWeight(CR.CaseBB, Default);
2246 addSuccessorWithWeight(CR.CaseBB, JumpTableBB);
2254 for (CaseItr I = CR.Range.first, E = CR.Range.second; I != E; ++TEI) {
2267 // Calculate weight for each unique destination in CR.
2270 for (CaseItr I = CR.Range.first, E = CR.Range.second; I != E; ++I) {
2280 BitVector SuccsHandled(CR.CaseBB->getParent()->getNumBlockIDs());
2300 JumpTableHeader JTH(First, Last, SV, CR.CaseBB, (CR.CaseBB == SwitchBB));
2301 if (CR.CaseBB == SwitchBB)
2310 bool SelectionDAGBuilder::handleBTSplitSwitchCase(CaseRec& CR,
2320 MachineFunction::iterator BBI = CR.CaseBB;
2323 Case& FrontCase = *CR.Range.first;
2324 Case& BackCase = *(CR.Range.second-1);
2325 const BasicBlock *LLVMBB = CR.CaseBB->getBasicBlock();
2328 unsigned Size = CR.Range.second - CR.Range.first;
2333 CaseItr Pivot = CR.Range.first + Size/2;
2338 for (CaseItr I = CR.Range.first, E = CR.Range.second;
2347 for (CaseItr I = CR.Range.first, J=I+1, E = CR.Range.second;
2384 Pivot = CR.Range.first + Size/2;
2387 CaseRange LHSR(CR.Range.first, Pivot);
2388 CaseRange RHSR(Pivot, CR.Range.second);
2399 LHSR.first->High == CR.GE &&
2401 (cast<ConstantInt>(CR.GE)->getValue() + 1LL)) {
2406 WorkList.push_back(CaseRec(TrueBB, C, CR.GE, LHSR));
2413 // known to be less than the Constant CR.LT, and the current Case Value
2414 // is CR.LT - 1, then we can branch directly to the target block for
2416 if ((RHSR.second - RHSR.first) == 1 && CR.LT &&
2418 (cast<ConstantInt>(CR.LT)->getValue() - 1LL)) {
2423 WorkList.push_back(CaseRec(FalseBB,CR.LT,C,RHSR));
2432 CaseBlock CB(ISD::SETLT, SV, C, NULL, TrueBB, FalseBB, CR.CaseBB);
2434 if (CR.CaseBB == SwitchBB)
2445 bool SelectionDAGBuilder::handleBitTestsSwitchCase(CaseRec& CR,
2454 Case& FrontCase = *CR.Range.first;
2455 Case& BackCase = *(CR.Range.second-1);
2466 for (CaseItr I = CR.Range.first, E = CR.Range.second;
2474 for (CaseItr I = CR.Range.first, E = CR.Range.second; I!=E; ++I) {
2514 for (CaseItr I = CR.Range.first, E = CR.Range.second; I!=E; ++I) {
2544 MachineFunction::iterator BBI = CR.CaseBB;
2547 const BasicBlock *LLVMBB = CR.CaseBB->getBasicBlock();
2566 -1U, MVT::Other, (CR.CaseBB == SwitchBB),
2567 CR.CaseBB, Default, BTC);
2569 if (CR.CaseBB == SwitchBB)
2684 CaseRec CR = WorkList.back();
2687 if (handleBitTestsSwitchCase(CR, WorkList, SV, Default, SwitchMBB))
2692 if (handleSmallSwitchRange(CR, WorkList, SV, Default, SwitchMBB))
2699 if (handleJTSwitchCase(CR, WorkList, SV, Default, SwitchMBB))
2704 handleBTSplitSwitchCase(CR, WorkList, SV, Default, SwitchMBB);