[PATCH] D23516: [ARM] Generate consistent frame records for Thumb2

Tim Northover via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 15 11:21:21 PDT 2016


t.p.northover added a comment.

> I've found these different conditions:

> 

> - isTargetIOS() || isTargetWatchOS() // In ARMFrameLowering::hasFP

> - isTargetMachO() // In ARMSubtarget::splitFramePushPop

> - isTargetDarwin() // In ARMBaseRegisterInfo::getCalleeSavedRegs


Oh dear, that is a bit of a mess! I think we might be trying too hard to support the current situation.

The iOS special snowflake code seems to be basically a hack to ignore -fomit-frame-pointer (I spoke to Jim about this, and the best we could work out was that it might have been a workaround for an llvm-gcc limitation, never revisited since Clang came along).

With that removed, we seem to be left with something that's basically a duplicate of `noFramePointerElim` (just above your `hasABIFP`). If you simplify this, I'll put together a Clang patch to ignore and warn about -fomit-frame-pointer on iOS & watchOS.


Repository:
  rL LLVM

https://reviews.llvm.org/D23516





More information about the llvm-commits mailing list