This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Spill instructions w/o immediate field may require an emergency spill slot
Needs ReviewPublic

Authored by ssijaric on Nov 3 2016, 4:21 PM.

Details

Summary

Make sure to create an emergency spill slot if we are spilling or reloading with instructions that have no immediate field. Since we need to scavenge a spare register to hold the stack address, we currently assert if there is no spare register and no emergency spill slot to which to spill an existing register.

Diff Detail

Event Timeline

ssijaric updated this revision to Diff 76899.Nov 3 2016, 4:21 PM
ssijaric retitled this revision from to [AArch64] Spill instructions w/o immediate field may require an emergency spill slot.
ssijaric updated this object.
ssijaric set the repository for this revision to rL LLVM.
ssijaric added a subscriber: llvm-commits.
mcrosier resigned from this revision.Nov 7 2016, 6:13 AM
mcrosier edited reviewers, added: gberry; removed: mcrosier.
ssijaric updated this revision to Diff 85214.Jan 20 2017, 4:43 PM

Rebased to account for changes in AArch64FunctionInfo.

Hi,

Could you upload you patch with the full context?
Also, could you use a MIR test? I would expect we should be able to produce a small one with the use of clobber register lists.

Cheers,
-Quentin