diff options
Diffstat (limited to 'llvm/lib/Target/ARM/ARMSubtarget.cpp')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMSubtarget.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/ARMSubtarget.cpp b/llvm/lib/Target/ARM/ARMSubtarget.cpp index 7e107e4f8fd..e3855cc9a91 100644 --- a/llvm/lib/Target/ARM/ARMSubtarget.cpp +++ b/llvm/lib/Target/ARM/ARMSubtarget.cpp @@ -221,8 +221,8 @@ void ARMSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) { // baseline, since the LDM/POP instruction on Thumb doesn't take LR. This // means if we need to reload LR, it takes extra instructions, which outweighs // the value of the tail call; but here we don't know yet whether LR is going - // to be used. We generate the tail call here and turn it back into CALL/RET - // in emitEpilogue if LR is used. + // to be used. We take the optimistic approach of generating the tail call and + // perhaps taking a hit if we need to restore the LR. // Thumb1 PIC calls to external symbols use BX, so they can be tail calls, // but we need to make sure there are enough registers; the only valid |

