summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp
diff options
context:
space:
mode:
authorDiogo N. Sampaio <diogo.sampaio@arm.com>2019-06-03 08:58:05 +0000
committerDiogo N. Sampaio <diogo.sampaio@arm.com>2019-06-03 08:58:05 +0000
commitdf92f841105e23be1f2c3fe6bcc543d53cbf7576 (patch)
treed6fa4dbe02bea05bf6f1e6c2c8372c053a8e54b4 /llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp
parenta0bd6f8a1ae73887fc32b85cd44e85435310f9d3 (diff)
downloadbcm5719-llvm-df92f841105e23be1f2c3fe6bcc543d53cbf7576.tar.gz
bcm5719-llvm-df92f841105e23be1f2c3fe6bcc543d53cbf7576.zip
[ARM][FIX] Ran out of registers due tail recursion
Summary: - 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. Reviewers: dmgreen, efriedma Reviewed By: efriedma Subscribers: javed.absar, kristof.beyls, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62683 llvm-svn: 362366
Diffstat (limited to 'llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud