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.
I think maybe the PostRA scheduler should treat writes to reserved registers as having unmodeled side-effects.