Someone hit a bug (not in bugs.llvm.org) caused by the non-Darwin call instructions not being marked as using the frame pointer. Is it safe to just add r11 / r7 as uses to the appropriate instructions like we do on Darwin? Does anyone care about the slight pessimization this would cause in the -fomit-frame-pointer case? Thanks, Cameron
Jakob Stoklund Olesen
2011-Jun-26 15:44 UTC
[LLVMdev] ARM instructions clobbering frame pointer
On Jun 25, 2011, at 11:39 PM, Cameron Zwarich wrote:> Someone hit a bug (not in bugs.llvm.org) caused by the non-Darwin call instructions not being marked as using the frame pointer. Is it safe to just add r11 / r7 as uses to the appropriate instructions like we do on Darwin? Does anyone care about the slight pessimization this would cause in the -fomit-frame-pointer case?That sounds very odd, the frame pointer should be reserved so it shouldn't matter who clobbers it. Are you calling a function that uses a frame pointer from a function that omits the frame pointer? /jakob
On 2011-06-26, at 8:44 AM, Jakob Stoklund Olesen wrote:> On Jun 25, 2011, at 11:39 PM, Cameron Zwarich wrote: > >> Someone hit a bug (not in bugs.llvm.org) caused by the non-Darwin call instructions not being marked as using the frame pointer. Is it safe to just add r11 / r7 as uses to the appropriate instructions like we do on Darwin? Does anyone care about the slight pessimization this would cause in the -fomit-frame-pointer case? > > That sounds very odd, the frame pointer should be reserved so it shouldn't matter who clobbers it. > > Are you calling a function that uses a frame pointer from a function that omits the frame pointer?I guess it's not actually a clobber of the FP. The various call instructions are not marked as users of the FP, so post-RA scheduling will move the prologue FP setup code after the function call. Cameron