[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.
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
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 5545 bytes
Desc: not available
More information about the llvm-commits