mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-21 02:24:22 +00:00
Simplify RegScavenger::FindUnusedReg.
- Drop the Candidates argument and fix all callers. Now that RegScavenger tracks available registers accurately, there is no need to restict the search. - Make sure that no aliases of the found register are in use. This was a potential bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79369 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -941,12 +941,8 @@ bool ARMLoadStoreOpt::LoadStoreMultipleOpti(MachineBasicBlock &MBB) {
|
||||
// Try to find a free register to use as a new base in case it's needed.
|
||||
// First advance to the instruction just before the start of the chain.
|
||||
AdvanceRS(MBB, MemOps);
|
||||
// Find a scratch register. Make sure it's a call clobbered register or
|
||||
// a spilled callee-saved register.
|
||||
unsigned Scratch = RS->FindUnusedReg(&ARM::GPRRegClass, true);
|
||||
if (!Scratch)
|
||||
Scratch = RS->FindUnusedReg(&ARM::GPRRegClass,
|
||||
AFI->getSpilledCSRegisters());
|
||||
// Find a scratch register.
|
||||
unsigned Scratch = RS->FindUnusedReg(&ARM::GPRRegClass);
|
||||
// Process the load / store instructions.
|
||||
RS->forward(prior(MBBI));
|
||||
|
||||
|
Reference in New Issue
Block a user