[PATCH] LocalStackSlotAllocation improvements

Hal Finkel hfinkel at anl.gov
Tue Apr 16 13:39:40 PDT 2013


Ping.

 -Hal

----- Original Message -----
> From: "Hal Finkel" <hfinkel at anl.gov>
> To: "Jim Grosbach" <grosbach at apple.com>
> Cc: "Commit Messages and Patches for LLVM" <llvm-commits at cs.uiuc.edu>
> Sent: Monday, April 8, 2013 6:33:35 PM
> Subject: [PATCH] LocalStackSlotAllocation improvements
> 
> Jim, et al.,
> 
> Please review the attached patch that improves
> LocalStackSlotAllocation. It does a few things:
> 
>  - Taking advantage of the fact that the virtual base registers are
>  allocated in order of the local frame offsets, remove the quadratic
>  register-searching behavior. Because of the ordering, we only need
>  to check the last virtual base register created.
> 
>  - Store the frame index in the FrameRef structure, and get the frame
>  index and the local offset from this structure at the top of the
>  loop iteration. This allows us to de-nest the loops in
>  insertFrameReferenceRegisters (and I think makes the code cleaner).
>  I also moved the needsFrameBaseReg check into the first loop over
>  instructions so that we don't bother pushing FrameRefs for
>  instructions that don't want a virtual base register anyway.
> 
>  - Avoids the creation of single-use virtual base registers. These
>  are currently not useful because, in general, they end up replacing
>  what would be one r+r instruction with an add and a r+i
>  instruction.
> 
> Thanks again,
> Hal
> 
> P.S. I'll commit some tests to cover the single-use behavior when I
> enable this on PPC.
> 
> --
> Hal Finkel
> Postdoctoral Appointee
> Leadership Computing Facility
> Argonne National Laboratory
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 



More information about the llvm-commits mailing list