[llvm-commits] [llvm] r161299 - in /llvm/trunk: lib/Target/ARM/ARMBaseInstrInfo.cpp test/CodeGen/ARM/2012-08-04-DtripleSpillReload.ll
Jakob Stoklund Olesen
stoklund at 2pi.dk
Sat Aug 4 10:17:39 PDT 2012
On Aug 4, 2012, at 6:16 AM, Anton Korobeynikov <asl at math.spbu.ru> wrote:
> Author: asl
> Date: Sat Aug 4 08:16:12 2012
> New Revision: 161299
>
> URL: http://llvm.org/viewvc/llvm-project?rev=161299&view=rev
> Log:
> Add stack spill / reload instructions for DTriple and DQuad register classes, which
> were missed for no reason. This fixes PR13377
Thanks!
> + // Use aligned spills if the stack can be realigned.
> + if (Align >= 16 && getRegisterInfo().canRealignStack(MF)) {
> + AddDefaultPred(BuildMI(MBB, I, DL, get(ARM::VST1d64TPseudo))
> + .addFrameIndex(FI).addImm(16)
> + .addReg(SrcReg, getKillRegState(isKill))
> + .addMemOperand(MMO));
I believe the 3-register vld1 instruction only supports 8-byte alignment.
>
> --- llvm/trunk/test/CodeGen/ARM/2012-08-04-DtripleSpillReload.ll (added)
> +++ llvm/trunk/test/CodeGen/ARM/2012-08-04-DtripleSpillReload.ll Sat Aug 4 08:16:12 2012
You can probably reduce this to a single basic block by adding an inline asm that clobbers the callee saved d registers.
/jakob
More information about the llvm-commits
mailing list