[PATCH] Allow the register scavenger to spill multiple registers

Jakob Stoklund Olesen stoklund at 2pi.dk
Fri Mar 22 15:59:09 PDT 2013


On Mar 22, 2013, at 3:25 PM, Hal Finkel <hfinkel at anl.gov> wrote:

> Jakob, et al.,
> 
> Please review the attached patch which lets the register scavenger make use of multiple spill slots in order to guarantee that it will be able to provide multiple registers simultaneously. I intend to use this capability in the PowerPC backend to handle spills where we need two registers (one for indexing and one for transfer) without keeping an extra reserved register.

Hi Hal,

This whole thing generally looks good, but there are a couple stylistic issues.

+    /// If none zero, the specific register is currently being

non-zero

+  void getScavengingFrameIndices(SmallVector<int, 2> &A) const {

Use a SmallVectorImpl for references to let the caller decide the small size.

+    SmallVector<int, 2> SFIs;

/jakob




More information about the llvm-commits mailing list