[ARM] Enable tail call optimization for long call

Programming / Compilers / GCC - yufeng [138bc75d-0d04-0410-961f-82ee72b054a4] - 25 April 2014 12:00 UTC

gcc/

- config/arm/predicates.md (call_insn_operand): Add long_call check.
- config/arm/arm.md (sibcall, sibcall_value): Force the address to reg for long_call.
- config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call restriction.

gcc/testsuite

- gcc.target/arm/tail-long-call.c: New test.

3112c3f [ARM] Enable tail call optimization for long call
gcc/ChangeLog | 8 ++++++++
gcc/config/arm/arm.c | 5 -----
gcc/config/arm/arm.md | 12 ++++++++----
gcc/config/arm/predicates.md | 3 ++-
gcc/testsuite/ChangeLog | 4 ++++
gcc/testsuite/gcc.target/arm/tail-long-call.c | 12 ++++++++++++
6 files changed, 34 insertions(+), 10 deletions(-)

Upstream: gcc.gnu.org


  • Share