[all-commits] [llvm/llvm-project] a2088a: [ARM] musttail fixes

Kiran via All-commits all-commits at lists.llvm.org
Tue Aug 27 02:44:31 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a2088a24dad31ebe44c93751db17307fdbe1f0e2
      https://github.com/llvm/llvm-project/commit/a2088a24dad31ebe44c93751db17307fdbe1f0e2
  Author: Kiran <kiran.sturt at arm.com>
  Date:   2024-08-27 (Tue, 27 Aug 2024)

  Changed paths:
    M clang/lib/CodeGen/CGCall.cpp
    M llvm/include/llvm/CodeGen/CallingConvLower.h
    M llvm/lib/CodeGen/CallingConvLower.cpp
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/test/CodeGen/ARM/2013-05-13-AAPCS-byval-padding.ll
    M llvm/test/CodeGen/ARM/2013-05-13-AAPCS-byval-padding2.ll
    M llvm/test/CodeGen/ARM/fp-arg-shuffle.ll
    M llvm/test/CodeGen/ARM/fp16-vector-argument.ll
    M llvm/test/CodeGen/ARM/struct_byval.ll
    M llvm/test/CodeGen/ARM/tail-call-float.ll

  Log Message:
  -----------
  [ARM] musttail fixes

Backend:
- Caller and callee arguments no longer have to match, just to take up the same space, as they can be changed before the call
- Allowed tail calls if callee and callee both (or neither) use sret, wheras before it would be dissalowed if either used sret
- Allowed tail calls if byval args are used
- Added debug trace for IsEligibleForTailCallOptimisation

Frontend (clang):
- Do not generate extra alloca if sret is used with musttail, as the space for the sret is allocated already

Change-Id: Ic7f246a7eca43c06874922d642d7dc44bdfc98ec


  Commit: 1a908c6be3317bbbac73e6a6fc52cabefbdebf7d
      https://github.com/llvm/llvm-project/commit/1a908c6be3317bbbac73e6a6fc52cabefbdebf7d
  Author: Kiran <kiran.sturt at arm.com>
  Date:   2024-08-27 (Tue, 27 Aug 2024)

  Changed paths:
    M clang/lib/CodeGen/CGCall.cpp
    M llvm/include/llvm/CodeGen/CallingConvLower.h
    M llvm/lib/CodeGen/CallingConvLower.cpp
    M llvm/test/CodeGen/ARM/tail-call-float.ll

  Log Message:
  -----------
  Seperate frontend changes, add debug directives, remove redundant stuff from tests


Compare: https://github.com/llvm/llvm-project/compare/ca3b9af98c0b...1a908c6be331

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list