[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