Lines Matching refs:BC
40 BinaryContext &BC = Function.getBinaryContext(); in swap() local
41 const BitVector &AliasA = BC.MIB->getAliases(A, false); in swap()
42 const BitVector &AliasB = BC.MIB->getAliases(B, false); in swap()
53 Operand.setReg(BC.MIB->getAliasSized(B, BC.MIB->getRegSize(Reg))); in swap()
60 Operand.setReg(BC.MIB->getAliasSized(A, BC.MIB->getRegSize(Reg))); in swap()
71 if (!BC.MIB->isCFI(Inst)) in swap()
81 const MCPhysReg Reg2 = *BC.MRI->getLLVMRegNum(CFIReg2, /*isEH=*/false); in swap()
86 BC.MRI->getDwarfRegNum( in swap()
87 BC.MIB->getAliasSized(B, BC.MIB->getRegSize(Reg2)), in swap()
93 BC.MRI->getDwarfRegNum( in swap()
94 BC.MIB->getAliasSized(A, BC.MIB->getRegSize(Reg2)), in swap()
118 const MCPhysReg Reg = *BC.MRI->getLLVMRegNum(CFIReg, /*isEH=*/false); in swap()
122 BC.MRI->getDwarfRegNum( in swap()
123 BC.MIB->getAliasSized(B, BC.MIB->getRegSize(Reg)), false)); in swap()
127 BC.MRI->getDwarfRegNum( in swap()
128 BC.MIB->getAliasSized(A, BC.MIB->getRegSize(Reg)), false)); in swap()
139 BinaryContext &BC = Function.getBinaryContext(); in rankRegisters() local
145 const bool CannotUseREX = BC.MIB->cannotUseREX(Inst); in rankRegisters()
146 const MCInstrDesc &Desc = BC.MII->get(Inst.getOpcode()); in rankRegisters()
152 BC.MIB->getAliases(*ImplicitUses, false).find_first(); in rankRegisters()
162 BC.MIB->getAliases(*ImplicitDefs, false).find_first(); in rankRegisters()
177 size_t RegEC = BC.MIB->getAliases(Reg, false).find_first(); in rankRegisters()
189 if (BC.MIB->isUpper8BitReg(Reg) && ClassicCSR.test(Reg)) { in rankRegisters()
209 dbgs() << BC.MRI->getName(Reg) << ": " << RegScore[Reg] << "\n"; in rankRegisters()
211 dbgs() << BC.MRI->getName(Reg) << ": (blacklisted)\n"; in rankRegisters()
217 BinaryContext &BC = Function.getBinaryContext(); in aggressivePassOverFunction() local
260 AliveAtStart |= BC.MIB->getAliases(BC.MIB->getFramePointer(), false); in aggressivePassOverFunction()
262 BC.MIB->getDefaultLiveOut(AliveAtStart); in aggressivePassOverFunction()
281 LLVM_DEBUG(dbgs() << " Ending at " << BC.MRI->getName(ClassicReg) in aggressivePassOverFunction()
282 << " with " << BC.MRI->getName(ExtReg) in aggressivePassOverFunction()
288 AnyAliasAlive &= BC.MIB->getAliases(ClassicReg); in aggressivePassOverFunction()
290 LLVM_DEBUG(dbgs() << " Bailed on " << BC.MRI->getName(ClassicReg) in aggressivePassOverFunction()
291 << " with " << BC.MRI->getName(ExtReg) in aggressivePassOverFunction()
297 AnyAliasAlive &= BC.MIB->getAliases(ExtReg); in aggressivePassOverFunction()
299 LLVM_DEBUG(dbgs() << " Bailed on " << BC.MRI->getName(ClassicReg) in aggressivePassOverFunction()
300 << " with " << BC.MRI->getName(ExtReg) in aggressivePassOverFunction()
307 LLVM_DEBUG(dbgs() << "\n ** Swapping " << BC.MRI->getName(ClassicReg) in aggressivePassOverFunction()
308 << " with " << BC.MRI->getName(ExtReg) << "\n\n"); in aggressivePassOverFunction()
319 BinaryContext &BC = Function.getBinaryContext(); in conservativePassOverFunction() local
347 LLVM_DEBUG(dbgs() << "\n ** Swapping " << BC.MRI->getName(RBX) << " with " in conservativePassOverFunction()
348 << BC.MRI->getName(Candidate) << "\n\n"); in conservativePassOverFunction()
349 (void)BC; in conservativePassOverFunction()
355 void RegReAssign::setupAggressivePass(BinaryContext &BC, in setupAggressivePass() argument
357 setupConservativePass(BC, BFs); in setupAggressivePass()
358 CG.reset(new BinaryFunctionCallGraph(buildCallGraph(BC))); in setupAggressivePass()
359 RA.reset(new RegAnalysis(BC, &BFs, &*CG)); in setupAggressivePass()
361 GPRegs = BitVector(BC.MRI->getNumRegs(), false); in setupAggressivePass()
362 BC.MIB->getGPRegs(GPRegs); in setupAggressivePass()
366 BinaryContext &BC, std::map<uint64_t, BinaryFunction> &BFs) { in setupConservativePass() argument
368 ClassicRegs = BitVector(BC.MRI->getNumRegs(), false); in setupConservativePass()
369 CalleeSaved = BitVector(BC.MRI->getNumRegs(), false); in setupConservativePass()
370 ClassicCSR = BitVector(BC.MRI->getNumRegs(), false); in setupConservativePass()
371 ExtendedCSR = BitVector(BC.MRI->getNumRegs(), false); in setupConservativePass()
373 BC.MIB->getClassicGPRegs(ClassicRegs); in setupConservativePass()
375 ClassicRegs |= BC.MIB->getAliases(BC.MIB->getFramePointer(), false); in setupConservativePass()
377 BC.MIB->getCalleeSavedRegs(CalleeSaved); in setupConservativePass()
380 BC.MIB->getClassicGPRegs(ClassicRegs); in setupConservativePass()
386 RegStatePrinter P(BC); in setupConservativePass()
399 void RegReAssign::runOnFunctions(BinaryContext &BC) { in runOnFunctions() argument
400 RegScore = std::vector<int64_t>(BC.MRI->getNumRegs(), 0); in runOnFunctions()
401 RankedRegs = std::vector<size_t>(BC.MRI->getNumRegs(), 0); in runOnFunctions()
404 setupAggressivePass(BC, BC.getBinaryFunctions()); in runOnFunctions()
406 setupConservativePass(BC, BC.getBinaryFunctions()); in runOnFunctions()
408 for (auto &I : BC.getBinaryFunctions()) { in runOnFunctions()