[PATCH] D59656: [CodeGen][ObjC] Annotate calls to objc_retainAutoreleasedReturnValue with notail on x86-64

Akira Hatanaka via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 21 11:09:59 PDT 2019


ahatanak created this revision.
ahatanak added reviewers: rjmccall, erik.pilkington.
ahatanak added a project: clang.
Herald added subscribers: dexonsmith, jkorous.

On x86-64, the epilogue code inserted before the tail jump blocks the autoreleased return optimization.

ARC optimizer unconditionally turns calls to `objc_retainAutoreleasedReturnValue` to tail calls. I plan to fix that too after this patch lands.

rdar://problem/38675807


Repository:
  rC Clang

https://reviews.llvm.org/D59656

Files:
  lib/CodeGen/CGObjC.cpp
  lib/CodeGen/TargetInfo.cpp
  lib/CodeGen/TargetInfo.h
  test/CodeGenObjC/arc-blocks.m
  test/CodeGenObjC/arc-foreach.m
  test/CodeGenObjC/arc-literals.m
  test/CodeGenObjC/arc-precise-lifetime.m
  test/CodeGenObjC/arc-property.m
  test/CodeGenObjC/arc-related-result-type.m
  test/CodeGenObjC/arc-ternary-op.m
  test/CodeGenObjC/arc-unsafeclaim.m
  test/CodeGenObjC/arc-with-atthrow.m
  test/CodeGenObjC/arc.m
  test/CodeGenObjC/objc-arc-container-subscripting.m
  test/CodeGenObjC/os_log.m
  test/CodeGenObjCXX/arc-forwarded-lambda-call.mm
  test/CodeGenObjCXX/arc.mm
  test/CodeGenObjCXX/inheriting-constructor-cleanup.mm
  test/CodeGenObjCXX/literals.mm

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D59656.191737.patch
Type: text/x-patch
Size: 39642 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190321/6f1aedb3/attachment-0001.bin>


More information about the cfe-commits mailing list