llvm-project/clang/test/CodeGenObjC
Akira Hatanaka 1900503595 [ObjC][ARC] Use operand bundle 'clang.arc.attachedcall' instead of
explicitly emitting retainRV or claimRV calls in the IR

This reapplies ed4718eccb, which was reverted
because it was causing a miscompile. The bug that was causing the miscompile
has been fixed in 75805dce5f.

Original commit message:

Background:

This fixes a longstanding problem where llvm breaks ARC's autorelease
optimization (see the link below) by separating calls from the marker
instructions or retainRV/claimRV calls. The backend changes are in
https://reviews.llvm.org/D92569.

https://clang.llvm.org/docs/AutomaticReferenceCounting.html#arc-runtime-objc-autoreleasereturnvalue

What this patch does to fix the problem:

- The front-end adds operand bundle "clang.arc.attachedcall" to calls,
  which indicates the call is implicitly followed by a marker
  instruction and an implicit retainRV/claimRV call that consumes the
  call result. In addition, it emits a call to
  @llvm.objc.clang.arc.noop.use, which consumes the call result, to
  prevent the middle-end passes from changing the return type of the
  called function. This is currently done only when the target is arm64
  and the optimization level is higher than -O0.

- ARC optimizer temporarily emits retainRV/claimRV calls after the calls
  with the operand bundle in the IR and removes the inserted calls after
  processing the function.

- ARC contract pass emits retainRV/claimRV calls after the call with the
  operand bundle. It doesn't remove the operand bundle on the call since
  the backend needs it to emit the marker instruction. The retainRV and
  claimRV calls are emitted late in the pipeline to prevent optimization
  passes from transforming the IR in a way that makes it harder for the
  ARC middle-end passes to figure out the def-use relationship between
  the call and the retainRV/claimRV calls (which is the cause of
  PR31925).

- The function inliner removes an autoreleaseRV call in the callee if
  nothing in the callee prevents it from being paired up with the
  retainRV/claimRV call in the caller. It then inserts a release call if
  claimRV is attached to the call since autoreleaseRV+claimRV is
  equivalent to a release. If it cannot find an autoreleaseRV call, it
  tries to transfer the operand bundle to a function call in the callee.
  This is important since the ARC optimizer can remove the autoreleaseRV
  returning the callee result, which makes it impossible to pair it up
  with the retainRV/claimRV call in the caller. If that fails, it simply
  emits a retain call in the IR if retainRV is attached to the call and
  does nothing if claimRV is attached to it.

- SCCP refrains from replacing the return value of a call with a
  constant value if the call has the operand bundle. This ensures the
  call always has at least one user (the call to
  @llvm.objc.clang.arc.noop.use).

- This patch also fixes a bug in replaceUsesOfNonProtoConstant where
  multiple operand bundles of the same kind were being added to a call.

Future work:

- Use the operand bundle on x86-64.

- Fix the auto upgrader to convert call+retainRV/claimRV pairs into
  calls with the operand bundles.

rdar://71443534

Differential Revision: https://reviews.llvm.org/D92808
2021-03-04 11:22:30 -08:00
..
Inputs [Sema] Diagnose default-initialization, destruction, and copying of 2019-09-07 00:34:43 +00:00
2007-04-03-ObjcEH.m
2007-05-02-Strong.m
2007-10-18-ProDescriptor.m
2007-10-23-GC-WriteBarrier.m
2008-08-25-incompatible-cond-expr.m
2008-10-3-EhValue.m
2008-10-23-invalid-icmp.m
2008-11-12-Metadata.m
2008-11-24-ConstCFStrings.m
2008-11-25-Blocks.m
2009-01-21-invalid-debug-info.m
2009-01-26-WriteBarrier-2.m
2009-02-05-VolatileProp.m
2009-08-05-utf16.m
2010-02-01-utf16-with-null.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
2010-02-09-DbgSelf.m
2010-02-15-Dbg-MethodStart.m
2010-02-23-DbgInheritance.m
2010-03-17-StructRef.m
2011-03-08-IVarLookup.m
NSFastEnumeration.m CodeGen: correct arguments for NSFastEnumeration 2017-09-08 23:41:17 +00:00
aarch64-sve-types.m [AArch64][SVE] clang: Add missing svbfloat16_t tests 2020-06-29 16:48:53 +00:00
arc-arm.m Generate objc intrinsics instead of runtime calls as the ARC optimizer now works only on intrinsics 2018-12-18 20:33:00 +00:00
arc-block-copy-escape.m Avoid needlessly copying a block to the heap when a block literal 2019-02-27 18:17:16 +00:00
arc-blocks-exceptions.m [CodeGen] Make sure the EH cleanup for block captures is conditional when the block literal is in a conditional context 2020-08-31 10:12:17 -04:00
arc-blocks.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
arc-bridged-cast.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
arc-captured-32bit-block-var-layout-2.m [CodeGen] Merge identical block descriptor global variables. 2018-08-17 15:46:07 +00:00
arc-captured-32bit-block-var-layout.m
arc-captured-block-var-inlined-layout.m [CodeGenObjC] Remove unused check prefixes 2020-11-11 15:44:58 +00:00
arc-captured-block-var-layout.m
arc-compound-stmt.m
arc-cond-stmt.m
arc-exceptions.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
arc-foreach.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
arc-i386.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
arc-ivar-layout.m
arc-linetable-autorelease.m [Driver] Pass -gno-column-info instead of -dwarf-column-info 2020-07-05 11:50:38 -07:00
arc-linetable.m [Driver] Pass -gno-column-info instead of -dwarf-column-info 2020-07-05 11:50:38 -07:00
arc-literals.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
arc-loadweakretained-release.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
arc-no-arc-exceptions.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
arc-no-runtime.m Generate objc intrinsics instead of runtime calls as the ARC optimizer now works only on intrinsics 2018-12-18 20:33:00 +00:00
arc-precise-lifetime.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
arc-property.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
arc-related-result-type.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
arc-rv-attr.m [ObjC][ARC] Use operand bundle 'clang.arc.attachedcall' instead of 2021-03-04 11:22:30 -08:00
arc-ternary-op.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
arc-unbridged-cast.m Generate objc intrinsics instead of runtime calls as the ARC optimizer now works only on intrinsics 2018-12-18 20:33:00 +00:00
arc-unopt.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
arc-unoptimized-byref-var.m Generate objc intrinsics instead of runtime calls as the ARC optimizer now works only on intrinsics 2018-12-18 20:33:00 +00:00
arc-unsafeclaim.m [ObjC][ARC] Use operand bundle 'clang.arc.attachedcall' instead of 2021-03-04 11:22:30 -08:00
arc-weak-property.m Generate objc intrinsics instead of runtime calls as the ARC optimizer now works only on intrinsics 2018-12-18 20:33:00 +00:00
arc-weak.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
arc-with-atthrow.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
arc.ll [NFCI] Add missing triple to several LTO tests 2020-12-09 13:13:58 -08:00
arc.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
arm-atomic-scalar-setter-getter.m
arm64-int32-ivar.m
assign.m [test] Add {{.*}} to make ELF tests immune to dso_local/dso_preemptable/(none) differences 2020-12-31 00:27:11 -08:00
atomic-aggregate-property.m
attr-availability.m Ensure that InheritedAttrs are properly inherited along a redeclaration 2020-10-12 19:22:31 -07:00
attr-callconv.m Update use of llvm::CallingConv:X86_64_Win64 after LLVM commit r308208 2017-07-17 20:05:56 +00:00
attr-exception.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
attr-minsize.m
attr-noreturn.m
attr-objc-arc-inert.m [CodeGen][ObjC] Annotate retain-agnostic ObjC globals with attribute 2019-06-14 22:06:28 +00:00
attr-objc-runtime-visible.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
attr-speculative-load-hardening.m [clang][slh] add Clang attr no_speculative_load_hardening 2019-01-18 17:20:46 +00:00
attr-strong.c
attr-used-on-method.m [IRGen] Fix an assert when __attribute__((used)) is used on an ObjC method 2020-09-02 12:19:11 -04:00
auto-property-synthesize-protocol.m
autorelease.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
availability-cf-link-guard.m [darwin] add support for __isPlatformVersionAtLeast check for if (@available) 2020-11-02 16:28:09 -08:00
availability-check.m [darwin] add support for __isPlatformVersionAtLeast check for if (@available) 2020-11-02 16:28:09 -08:00
availability-dso-local.m Add a testcase for PR36268. 2018-02-08 01:17:26 +00:00
bitfield-1.m
bitfield-access.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
bitfield-gnu.m
bitfield-ivar-metadata.m
bitfield-ivar-offsets.m
bitfield_encoding.m
block-6.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
block-byref-debuginfo.m Remove all uses of DIFlagBlockByrefStruct 2018-09-10 16:14:28 +00:00
block-byref-variable-layout.m
block-desc-str.m COMDAT-fold block descriptors. 2019-03-31 11:22:26 +00:00
block-over-align.m
block-ptr-type-crash.m
block-var-layout.m
blocks-1.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
blocks-2.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
blocks-3.m
blocks-4.m
blocks-5.m
blocks-ivar-debug.m
blocks.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
boxing.m [CodeGen][ObjC] Remove the leading `l_` from ObjC symbols and make 2019-05-09 17:43:52 +00:00
builtin-constant-p.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
builtin-memfns.m Change memcpy/memove/memset to have dest and source alignment attributes (Step 1). 2018-01-19 17:12:54 +00:00
builtins.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
catch-lexical-block.m
category-class.m
category-super-class-meth.m
class-getter-dotsyntax.m
class-stubs.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
class-type.m
compatibility-alias.m
complex-double-abi.m
complex-property.m
compound-literal-property-access.m
constant-non-fragile-ivar-offset.m [CodeGenObjC] Use a constant value for non-fragile ivar offsets when possible 2019-01-17 18:18:53 +00:00
constant-string-class-1.m
constant-string-class.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
constant-strings.m [test] Add {{.*}} to make ELF tests immune to dso_local/dso_preemptable/(none) differences 2020-12-31 00:27:11 -08:00
continuation-class.m
convert-messages-to-runtime-calls.m [CodeGen] Mark calls to objc_autorelease as tail 2020-11-10 13:48:25 -08:00
deadcode_strip_used_var.m
debug-info-block-helper.m [CodeGen] Merge equivalent block copy/helper functions. 2018-08-10 15:09:24 +00:00
debug-info-block-line.m Generate objc intrinsics instead of runtime calls as the ARC optimizer now works only on intrinsics 2018-12-18 20:33:00 +00:00
debug-info-block-type.m
debug-info-blocks.m Revert "[CGBlocks] Improve line info in backtraces containing *_helper_block" 2020-03-05 09:58:42 -08:00
debug-info-category.m [DebugInfo] NFC Clang test changes for: IR/Bitcode changes for DISubprogram flags. 2018-11-28 21:18:07 +00:00
debug-info-class-extension.m [Frontend] Replace CC1 option -masm-verbose with -fno-verbose-asm 2020-03-31 22:33:55 -07:00
debug-info-class-extension2.m [Frontend] Replace CC1 option -masm-verbose with -fno-verbose-asm 2020-03-31 22:33:55 -07:00
debug-info-class-extension3.m [Frontend] Replace CC1 option -masm-verbose with -fno-verbose-asm 2020-03-31 22:33:55 -07:00
debug-info-crash-2.m
debug-info-crash.m
debug-info-default-synth-ivar.m
debug-info-direct-method.m [ObjC][DWARF] Emit DW_AT_APPLE_objc_direct for methods marked as __attribute__((objc_direct)) 2019-12-17 09:40:36 +01:00
debug-info-fwddecl.m
debug-info-getter-name.m
debug-info-id-with-protocol.m
debug-info-impl.m
debug-info-instancetype.m
debug-info-ivars-extension.m
debug-info-ivars-indirect.m
debug-info-ivars-private.m
debug-info-ivars.m
debug-info-lifetime-crash.m
debug-info-linkagename.m
debug-info-nested-blocks.m
debug-info-nodebug.m
debug-info-objc-property-dwarf5.m Debug Info: Nest Objective-C property function decls inside their container. 2019-11-08 15:14:00 -08:00
debug-info-property-accessors.m
debug-info-property-class-extension.m
debug-info-property.m [Frontend] Replace CC1 option -masm-verbose with -fno-verbose-asm 2020-03-31 22:33:55 -07:00
debug-info-property2.m [Frontend] Replace CC1 option -masm-verbose with -fno-verbose-asm 2020-03-31 22:33:55 -07:00
debug-info-property3.m
debug-info-property4.m [Frontend] Replace CC1 option -masm-verbose with -fno-verbose-asm 2020-03-31 22:33:55 -07:00
debug-info-property5.m [Frontend] Replace CC1 option -masm-verbose with -fno-verbose-asm 2020-03-31 22:33:55 -07:00
debug-info-pubtypes.m
debug-info-selector.m
debug-info-self.m
debug-info-static-var.m
debug-info-synthesis.m Redeclare Objective-C property accessors inside the ObjCImplDecl in which they are synthesized. 2019-11-08 08:23:22 -08:00
debug-info-variadic-method.m
debug-property-synth.m Redeclare Objective-C property accessors inside the ObjCImplDecl in which they are synthesized. 2019-11-08 08:23:22 -08:00
debuginfo-properties.m Redeclare Objective-C property accessors inside the ObjCImplDecl in which they are synthesized. 2019-11-08 08:23:22 -08:00
default-property-synthesis.m
designated-initializers.m
direct-method-ret-mismatch.m [objc_direct] fix codegen for mismatched Decl/Impl return types 2020-01-30 18:17:45 -08:00
direct-method.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
direct-properties.m [objc_direct] do not add direct properties to the serialization array 2020-01-23 22:39:47 -08:00
disable-tail-call-escaping-block.m Fixed failing test 2021-02-20 07:11:42 +01:00
dllstorage.m Fixed typos in tests: s/CHEKC/CHECK/ 2019-02-25 13:41:59 +00:00
dot-syntax-1.m
dot-syntax-2.m
dot-syntax.m
empty-collection-literals.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
encode-cstyle-method.m
encode-test-2.m [CodeGen][ObjC] Push the properties of a protocol before pushing the 2020-01-06 16:16:02 -08:00
encode-test-3.m
encode-test-4.m
encode-test-5.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
encode-test-6.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
encode-test.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
exceptions-asm-attribute.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
exceptions-nonfragile.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
exceptions.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
extended-block-signature-encode.m
extern-void-class-decl.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
externally-initialized-selectors.m Specify target triple to fix the tests I committed in r360359 that are 2019-05-09 18:32:16 +00:00
externally-retained.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
for-in.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
forward-class-impl-metadata.m
forward-decl-param.m
forward-declare-protocol-gnu.m [ObjC] Error out when using forward-declared protocol in a @protocol 2018-08-17 22:18:08 +00:00
forward-protocol-metadata-symbols.m Specify target triple to fix the tests I committed in r360359 that are 2019-05-09 18:32:16 +00:00
fp2ret.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
fpret.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
fragile-arc.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
function-decay.m
gc-weak-attribute.m
gc.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
getter-property-mismatch.m [opaque pointer types] Fix the CallInfo passed to EmitCall in some 2019-02-05 16:05:50 +00:00
getter-property-type-mismatch.m
gnu-deterministic-selectors.m [gnu-objc] Make selector order deterministic. 2018-08-14 10:05:25 +00:00
gnu-empty-protocol-v3.m Revert "Revert r332955 "GNUstep Objective-C ABI version 2"" 2018-05-22 10:13:06 +00:00
gnu-exceptions.m [test] Add {{.*}} to make ELF tests immune to dso_local/dso_preemptable/(none) differences 2020-12-31 00:27:11 -08:00
gnu-init.m Emit Objective-C constructors as writable 2020-04-14 22:32:34 +02:00
gnu-method-only-once.m [GNU ObjC] Fix a regression listing methods twice. 2020-12-01 09:50:18 +00:00
gnustep2-category-protocol.m Fixed typos in tests: s/CHEKC/CHECK/ 2019-02-25 13:41:59 +00:00
gnustep2-category.m Revert "Revert r332955 "GNUstep Objective-C ABI version 2"" 2018-05-22 10:13:06 +00:00
gnustep2-class.m NFC - Fix typo in test/CodeGenObjC/gnustep2-class.m 2018-07-04 11:26:09 +00:00
gnustep2-ivar-offset.m [objc-gnustep] Fix encoding of ivar size for _Bool. 2019-02-03 15:05:52 +00:00
gnustep2-proto.m [test] Add {{.*}} to make ELF tests immune to dso_local/dso_preemptable/(none) differences 2020-12-31 00:27:11 -08:00
hidden-visibility.m [CodeGen][ObjC] Remove the leading 'l' from symbols for protocol 2019-03-14 15:17:37 +00:00
hidden.m
id-isa-codegen.m
illegal-UTF8.m The 'CodeGenObjC/illegal-UTF8.m' get failed with Clang built with 32-bit targets only (as example ARM-only) with the following error: 2019-05-06 03:30:09 +00:00
image-info.m Fix conflict value for metadata "Objective-C Garbage Collection" in the mix of swift and Objective-C bitcode 2020-03-11 13:26:06 -07:00
implicit-objc_msgSend.m
implicit-property.m
initialize-function-static.m Only destroy static locals if they have non-trivial destructors. 2020-01-10 15:18:36 -08:00
instance-method-metadata.m Redeclare Objective-C property accessors inside the ObjCImplDecl in which they are synthesized. 2019-11-08 08:23:22 -08:00
interface-layout-64.m [CodeGen][ObjC] Remove the leading `l_` from ObjC symbols and make 2019-05-09 17:43:52 +00:00
interface.m
ivar-base-as-invariant-load.m
ivar-invariant.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
ivar-layout-64-bitfields.m
ivar-layout-64.m
ivar-layout-array0-struct.m
ivar-layout-flexible-array.m [CodeGen] Add support for IncompleteArrayType in Obj-C ivars. 2017-10-27 00:56:23 +00:00
ivar-layout-no-optimize.m
ivar-layout-nonfragile-abi2.m
ivar-type-encoding.m Revert "Revert r332955 "GNUstep Objective-C ABI version 2"" 2018-05-22 10:13:06 +00:00
ivars.m
layout-bitfield-crash.m
link-errors.m [ObjC] Error out when using forward-declared protocol in a @protocol 2018-08-17 22:18:08 +00:00
local-static-block.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
mangle-blocks.m [CodeGen][ObjC] Build the global block structure before emitting the 2017-09-22 21:32:06 +00:00
matrix-type-builtins.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
matrix-type-operators.m [Matrix] Implement matrix index expressions ([][]). 2020-06-01 20:08:49 +01:00
message-arrays.m
messages-2.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
messages.m
metadata-class-properties.m [CodeGen][ObjC] Remove the leading `l_` from ObjC symbols and make 2019-05-09 17:43:52 +00:00
metadata-symbols-32.m [CodeGen][ObjC] Remove the leading `l_` from ObjC symbols and make 2019-05-09 17:43:52 +00:00
metadata-symbols-64.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
metadata_symbols.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
misc-atomic-property.m
mrc-weak.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
mrr-autorelease.m
mrr-captured-block-var-inlined-layout.m [CodeGenObjC] Remove unused check prefixes 2020-11-11 15:44:58 +00:00
nested-rethrow.m
newproperty-nested-synthesis-1.m
next-objc-dispatch.m
no-category-class.m
no-sanitize.m [Blocks] Inherit sanitizer options from parent decl 2017-12-08 02:47:58 +00:00
no-vararg-messaging.m
noescape.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
non-lazy-classes.m [CodeGenObjC] Privatize some ObjC metadata symbols 2020-03-09 15:40:24 -07:00
non-runtime-protocol.m [clang] Implement objc_non_runtime_protocol to remove protocol metadata 2020-10-02 17:35:50 -04:00
nonlazy-msgSend.m
nontrivial-c-struct-exception.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
nontrivial-c-struct-func-name-collision.m [ObjC] Allow declaring __strong pointer fields in structs in Objective-C 2018-02-28 07:15:55 +00:00
nontrivial-c-struct-within-struct-name.m [CodeGen] Add additional mangling for struct members of non trivial structs 2019-03-28 17:01:20 +00:00
nontrivial-struct-param-init.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
ns-constant-strings.m
ns_consume_null_check.m [CodeGen][ObjC] Fix broken IR generated when there is a nil receiver 2021-01-21 17:38:46 -08:00
nsvalue-objc-boxable-ios-arc.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
nsvalue-objc-boxable-ios.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
nsvalue-objc-boxable-mac-arc.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
nsvalue-objc-boxable-mac.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
null-check-bool-ret.m Fix crash when emitting NullReturn guards for functions returning BOOL 2021-01-21 14:29:36 -08:00
null-objc-empty-vtable.m
nullptr-assert.m
objc-align.m
objc-alloc-init.m Relax the rules around objc_alloc and objc_alloc_init optimizations. 2020-01-14 19:48:33 -08:00
objc-arc-container-subscripting.m [CodeGen][ObjC] Annotate calls to objc_retainAutoreleasedReturnValue 2019-03-21 19:59:49 +00:00
objc-asm-attribute-test.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
objc-assign-ivar.m
objc-container-subscripting-1.m [CodeGen] Ignore OpaqueValueExprs that are unique references to their 2018-03-20 01:47:58 +00:00
objc-container-subscripting.m
objc-dictionary-literal.m
objc-dispatch-null-check.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
objc-fixed-enum.m
objc-gc-aggr-assign.m
objc-literal-debugger-test.m
objc-literal-tests.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
objc-non-trivial-struct-nrvo.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
objc-read-weak-byref.m
objc-runtime-name.m [ObjC] Use the name specified by objc_runtime_name instead of the class 2018-04-03 22:50:16 +00:00
objc2-assign-global.m
objc2-ivar-assign.m
objc2-legacy-dispatch.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
objc2-new-gc-api-strongcast.m
objc2-no-strong-cast.m
objc2-no-write-barrier.m
objc2-nonfragile-abi-impl.m
objc2-property-encode.m
objc2-protocol-enc.m
objc2-protocol-metadata.m
objc2-retain-codegen.m
objc2-strong-cast-1.m
objc2-strong-cast-block-import.m
objc2-strong-cast.m
objc2-weak-assign.m
objc2-weak-block-call.m
objc2-weak-compare.m
objc2-weak-import-attribute.m
objc2-weak-ivar-debug.m
objc2-weak-ivar.m
objc2-write-barrier-2.m
objc2-write-barrier-3.m
objc2-write-barrier-4.m
objc2-write-barrier-5.m
objc2-write-barrier.m
objc_copyStruct.m CodeGen: make the type match the comment for a libcall 2017-06-17 17:30:31 +00:00
object-incr-decr-1.m
objfw.m [test] Add {{.*}} to make ELF tests immune to dso_local/dso_preemptable/(none) differences 2020-12-31 00:27:11 -08:00
optimize-ivar-offset-load.m [CodeGenObjC] Use a constant value for non-fragile ivar offsets when possible 2019-01-17 18:18:53 +00:00
optimized-setter-ios-device.m
optimized-setter.m
os_log.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
overloadable.m
parameterized_classes.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
pass-by-value-noalias.m [test] Add {{.*}} to make ELF tests immune to dso_local/dso_preemptable/(none) differences 2020-12-31 00:27:11 -08:00
personality.m [clang][cli] Squash multiple cc1 -fxxx-exceptions flags into single -exception-model=xxx option 2020-12-15 10:15:58 +01:00
ppc32-varargs-id.m [PowerPC] Fix va_arg in C++, Objective-C on 32-bit ELF targets 2021-01-23 00:13:36 -05:00
predefined-expr.m
private-extern-selector-reference.m [CodeGen][ObjC] Remove the leading `l_` from ObjC symbols and make 2019-05-09 17:43:52 +00:00
prop-metadata-gnu.m
property-aggregate.m
property-agrr-getter.m
property-array-type.m [opaque pointer types] Cleanup CGBuilder's Create*GEP. 2019-02-08 15:34:12 +00:00
property-atomic-bool.m NFC: update clang tests to check ordering and alignment for atomicrmw/cmpxchg. 2021-02-11 17:35:09 -05:00
property-category-impl.m [CodeGen][ObjC] Remove the leading `l_` from ObjC symbols and make 2019-05-09 17:43:52 +00:00
property-complex.m
property-dbg.m [Frontend] Replace CC1 option -masm-verbose with -fno-verbose-asm 2020-03-31 22:33:55 -07:00
property-getter-dot-syntax.m
property-incr-decr-1.m
property-list-in-class.m [CodeGen][ObjC] Remove the leading `l_` from ObjC symbols and make 2019-05-09 17:43:52 +00:00
property-list-in-extension.m [CodeGen][ObjC] Remove the leading `l_` from ObjC symbols and make 2019-05-09 17:43:52 +00:00
property-ref-cast-to-void.m
property-section-attribute.m
property-setter-attr.m
property-type-mismatch.m
property.m [test] Add {{.*}} to make ELF tests immune to dso_local/dso_preemptable/(none) differences 2020-12-31 00:27:11 -08:00
protocol-comdat.m [test] Use %clang_cc1 instead of %clang -cc1 2019-09-27 05:37:06 +00:00
protocol-in-extended-class.m [CodeGen][ObjC] Remove the leading 'l' from symbols for protocol 2019-03-14 15:17:37 +00:00
protocol-property-synth.m
protocols-lazy.m [ObjC] Error out when using forward-declared protocol in a @protocol 2018-08-17 22:18:08 +00:00
protocols.m [CodeGen][ObjC] Remove the leading `l_` from ObjC symbols and make 2019-05-09 17:43:52 +00:00
rdr-6732143-dangling-block-reference.m
related-result-type.m
reorder-synthesized-ivars.m [CodeGenObjC] Use a constant value for non-fragile ivar offsets when possible 2019-01-17 18:18:53 +00:00
return-objc-object.mm [CGCall] Annotate references with "align" attribute. 2020-05-19 20:21:30 -07:00
runtime-abi-match.m [test] Fix run line to use correct triple 2018-05-18 21:59:29 +00:00
runtime-fns.m
section-name.m [CodeGen][ObjC] Remove the leading `l_` from ObjC symbols and make 2019-05-09 17:43:52 +00:00
sections.m [CodeGenObjC] Privatize some ObjC metadata symbols 2020-03-09 15:40:24 -07:00
sel-as-builtin-type.m
selector-ref-invariance.m
simplify-exceptions.mm
stand-alone-implementation.m
stret-1.m Reapply "OpaquePtr: Add type to sret attribute" 2020-10-16 11:05:02 -04:00
stret-lifetime.m Generate objc intrinsics instead of runtime calls as the ARC optimizer now works only on intrinsics 2018-12-18 20:33:00 +00:00
stret.m
stret_lookup.m [test] Add {{.*}} to make ELF tests immune to dso_local/dso_preemptable/(none) differences 2020-12-31 00:27:11 -08:00
strong-in-c-struct.m [CodeGen] Call ConvertTypeForMem instead of ConvertType 2021-02-25 12:11:18 -08:00
super-classmethod-category.m
super-dotsyntax-property.m
super-dotsyntax-struct-property.m
super-message-fragileabi.m
synchronized.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
synthesize_ivar-cont-class.m
synthesize_ivar.m
tentative-cfconstantstring.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
terminate.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
try.m
ubsan-array-bounds.m
ubsan-bool.m Retry: [ubsan] Detect UB loads from bitfields 2017-03-09 16:06:27 +00:00
ubsan-check-debuglocs.m Ensure sanitizer check function calls have a !dbg location 2018-11-28 21:44:06 +00:00
ubsan-nonnull-and-nullability.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
ubsan-nonnull.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
ubsan-nullability-return-unreachable.m [ubsan] Omit return value check when return block is unreachable 2020-02-06 10:24:03 -08:00
ubsan-nullability.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
undefined-protocol.m
undefined-protocol2.m [CodeGen][ObjC] Remove the leading 'l' from symbols for protocol 2019-03-14 15:17:37 +00:00
unname-bf-metadata.m
unoptimized-setter.m
unqual-copy-restore.m
variadic-sends.m
weak-in-c-struct.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
weak-metaclass-visibility.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00
x86_64-struct-return-gc.m [test] Add {{.*}} to make tests immune to dso_local/dso_preemptable/(none) differences 2020-12-30 20:52:01 -08:00