[PATCH] D55348: Change the objc ARC optimizer to use the new objc.* intrinsics

Pete Cooper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 5 17:26:28 PST 2018


pete created this revision.
pete added reviewers: ahatanak, erik.pilkington.
Herald added a subscriber: llvm-commits.

Now that we have objc* intrinsics, this teaches ARC to use them instead of the objc_ methods.

The vast majority of the changes are in the tests where I really just replaced @objc_ with @llvm.objc.

In the ARC optimizer itself, the changes are to both use the new intrinsics as the source to optimize, and also, where necessary, create calls to the intrinsics instead of the objc_ methods.


Repository:
  rL LLVM

https://reviews.llvm.org/D55348

Files:
  include/llvm/Analysis/ObjCARCAnalysisUtils.h
  include/llvm/Analysis/ObjCARCInstKind.h
  lib/Analysis/ObjCARCInstKind.cpp
  lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h
  test/Transforms/ObjCARC/allocas.ll
  test/Transforms/ObjCARC/apelim.ll
  test/Transforms/ObjCARC/basic.ll
  test/Transforms/ObjCARC/cfg-hazards.ll
  test/Transforms/ObjCARC/clang-arc-use-barrier.ll
  test/Transforms/ObjCARC/comdat-ipo.ll
  test/Transforms/ObjCARC/contract-catchswitch.ll
  test/Transforms/ObjCARC/contract-end-of-use-list.ll
  test/Transforms/ObjCARC/contract-marker-funclet.ll
  test/Transforms/ObjCARC/contract-marker.ll
  test/Transforms/ObjCARC/contract-replace-arg-use.ll
  test/Transforms/ObjCARC/contract-storestrong-funclet.ll
  test/Transforms/ObjCARC/contract-storestrong-ivar.ll
  test/Transforms/ObjCARC/contract-storestrong.ll
  test/Transforms/ObjCARC/contract-testcases.ll
  test/Transforms/ObjCARC/contract.ll
  test/Transforms/ObjCARC/empty-block.ll
  test/Transforms/ObjCARC/ensure-that-exception-unwind-path-is-visited.ll
  test/Transforms/ObjCARC/escape.ll
  test/Transforms/ObjCARC/expand.ll
  test/Transforms/ObjCARC/funclet.ll
  test/Transforms/ObjCARC/gvn.ll
  test/Transforms/ObjCARC/intrinsic-use.ll
  test/Transforms/ObjCARC/invoke-2.ll
  test/Transforms/ObjCARC/invoke.ll
  test/Transforms/ObjCARC/move-and-form-retain-autorelease.ll
  test/Transforms/ObjCARC/move-and-merge-autorelease.ll
  test/Transforms/ObjCARC/nested.ll
  test/Transforms/ObjCARC/opt-catchswitch.ll
  test/Transforms/ObjCARC/path-overflow.ll
  test/Transforms/ObjCARC/pointer-types.ll
  test/Transforms/ObjCARC/post-inlining.ll
  test/Transforms/ObjCARC/pr12270.ll
  test/Transforms/ObjCARC/retain-block-side-effects.ll
  test/Transforms/ObjCARC/retain-not-declared.ll
  test/Transforms/ObjCARC/rle-s2l.ll
  test/Transforms/ObjCARC/rv.ll
  test/Transforms/ObjCARC/split-backedge.ll
  test/Transforms/ObjCARC/tail-call-invariant-enforcement.ll
  test/Transforms/ObjCARC/unsafe-claim-rv.ll
  test/Transforms/ObjCARC/weak-contract.ll
  test/Transforms/ObjCARC/weak-copies.ll
  test/Transforms/ObjCARC/weak-dce.ll
  test/Transforms/ObjCARC/weak.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D55348.176910.patch
Type: text/x-patch
Size: 386862 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181206/d1e0b57a/attachment-0001.bin>


More information about the llvm-commits mailing list