[PATCH] D62683: [ARM][FIX] Ran out of registers due tail recursion
Diogo N. Sampaio via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu May 30 08:30:40 PDT 2019
dnsampaio created this revision.
dnsampaio added reviewers: eli.friedman, dmgreen.
Herald added subscribers: llvm-commits, kristof.beyls, javed.absar.
Herald added a project: LLVM.
- pr42062
When compiling for MinSize,
ARMTargetLowering::LowerCall decides to indirect
multiple calls to a same function. However,
it disconsiders the limitation that thumb1
indirect calls require the callee to be in a
register from r0 to r3 (llvm limiation).
If all those registers are used by arguments, the
compiler dies with "error: run out of registers
during register allocation".
This patch tells the function
IsEligibleForTailCallOptimization if we intend to
perform indirect calls, as to avoid tail call
optimization.
Repository:
rL LLVM
https://reviews.llvm.org/D62683
Files:
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM/ARMISelLowering.h
test/CodeGen/ARM/pr42062.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D62683.202219.patch
Type: text/x-patch
Size: 5545 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190530/3d0e6e72/attachment.bin>
More information about the llvm-commits
mailing list