Displaying 2 results from an estimated 2 matches for "setscavengingframeindex".
2012 Oct 22
0
[LLVMdev] register scavenger
...r scavenger for MIPS to free up register AT
which is currently reserved to load large immediates.
All targets which currently use register scavenger to search for a scratch
register (ARM, CellSPU, PowerPC and XCore)
override function processFunctionBeforeCalleeSavedScan and call
RegisterScavenger::setScavengingFrameIndex
if they decide an emergency spill slot is needed. Since
processFunctionBeforeCalleeSavedScan is called before it is known
which callee-saved registers need to be spilled, the targets decide whether
the spill slot is needed without knowing the exact
stack frame size.
It seems to me that it would be...
2011 Dec 05
2
[LLVMdev] bug in ARMFrameLowering.cpp:processFunctionBeforeCalleeSavedScan
...after BigStack is initialized.
The specific issue this caused in my case was that BigStack got initialized as false because estimateRSSStackSizeLimit returned (1<<12)-1 instead of (1<<8)-1. The code thus never entered the if (BigStack && !ExtraCSSpill) block further down where setScavengingFrameIndex should have been set. As a result of it was not being set there, there was an assertion failure (ScavengingFrameIndex >= 0) and subsequent memory corruption in RegScavenger::scavengeRegister.
I fixed this by performing the CanEliminateFrame and RegInfo->cannotEliminateFrame checks before the...