/external/swiftshader/third_party/llvm-10.0/llvm/lib/Target/ARC/ |
D | ARCFrameLowering.cpp | 66 AdjOp = Positive ? ARC::ADD_rru6 : ARC::SUB_rru6; in generateStackAdjustment() 68 AdjOp = Positive ? ARC::ADD_rrs12 : ARC::SUB_rrs12; in generateStackAdjustment() 70 AdjOp = Positive ? ARC::ADD_rrlimm : ARC::SUB_rrlimm; in generateStackAdjustment() 81 assert(Reg.getReg() >= ARC::R13 && Reg.getReg() <= ARC::R25 && in determineLastCalleeSave() 94 SavedRegs.set(ARC::BLINK); in determineCalleeSaves() 110 ScalarAlloc, ARC::SP); in adjustStackToMatchRecords() 138 unsigned Opc = ARC::SUB_rrlimm; in emitPrologue() 140 Opc = ARC::SUB_rru6; in emitPrologue() 142 Opc = ARC::SUB_rrs12; in emitPrologue() 143 BuildMI(MBB, MBBI, dl, TII->get(Opc), ARC::SP) in emitPrologue() [all …]
|
D | ARCRegisterInfo.cpp | 48 if (MI.getOpcode() == ARC::LD_rs9 && (Offset >= 256 || Offset < -256)) { in ReplaceFrameIndex() 50 BuildMI(MBB, II, dl, TII.get(ARC::LD_rlimm), Reg) in ReplaceFrameIndex() 58 if (MI.getOpcode() != ARC::GETFI && (Offset >= 256 || Offset < -256)) { in ReplaceFrameIndex() 60 BaseReg = RS->FindUnusedReg(&ARC::GPR32RegClass); in ReplaceFrameIndex() 66 BaseReg = RS->scavengeRegister(&ARC::GPR32RegClass, II, SPAdj); in ReplaceFrameIndex() 74 unsigned AddOpc = isUInt<6>(Offset) ? ARC::ADD_rru6 : ARC::ADD_rrlimm; in ReplaceFrameIndex() 83 case ARC::LD_rs9: in ReplaceFrameIndex() 86 case ARC::LDH_rs9: in ReplaceFrameIndex() 87 case ARC::LDH_X_rs9: in ReplaceFrameIndex() 90 case ARC::LDB_rs9: in ReplaceFrameIndex() [all …]
|
D | ARCExpandPseudos.cpp | 48 case ARC::ST_FAR: in getMappedOp() 49 return ARC::ST_rs9; in getMappedOp() 50 case ARC::STH_FAR: in getMappedOp() 51 return ARC::STH_rs9; in getMappedOp() 52 case ARC::STB_FAR: in getMappedOp() 53 return ARC::STB_rs9; in getMappedOp() 62 unsigned AddrReg = MF.getRegInfo().createVirtualRegister(&ARC::GPR32RegClass); in ExpandStore() 64 isUInt<6>(SI.getOperand(2).getImm()) ? ARC::ADD_rru6 : ARC::ADD_rrlimm; in ExpandStore() 85 case ARC::ST_FAR: in runOnMachineFunction() 86 case ARC::STH_FAR: in runOnMachineFunction() [all …]
|
D | ARCInstrInfo.cpp | 47 : ARCGenInstrInfo(ARC::ADJCALLSTACKDOWN, ARC::ADJCALLSTACKUP), RI() {} in ARCInstrInfo() 54 return Opcode == ARC::LD_rs9 || Opcode == ARC::LDH_rs9 || in isLoad() 55 Opcode == ARC::LDB_rs9; in isLoad() 59 return Opcode == ARC::ST_rs9 || Opcode == ARC::STH_rs9 || in isStore() 60 Opcode == ARC::STB_rs9; in isStore() 137 static bool isUncondBranchOpcode(int Opc) { return Opc == ARC::BR; } in isUncondBranchOpcode() 140 return Opc == ARC::BRcc_rr_p || Opc == ARC::BRcc_ru6_p; in isCondBranchOpcode() 143 static bool isJumpOpcode(int Opc) { return Opc == ARC::J; } in isJumpOpcode() 285 assert(ARC::GPR32RegClass.contains(SrcReg) && in copyPhysReg() 287 assert(ARC::GPR32RegClass.contains(DestReg) && in copyPhysReg() [all …]
|
D | ARCBranchFinalize.cpp | 96 return !(MI->getOpcode() != ARC::BRcc_rr_p && in isBRccPseudo() 97 MI->getOpcode() != ARC::BRcc_ru6_p); in isBRccPseudo() 102 if (MI->getOpcode() == ARC::BRcc_rr_p) in getBRccForPseudo() 103 return ARC::BRcc_rr; in getBRccForPseudo() 104 return ARC::BRcc_ru6; in getBRccForPseudo() 109 if (MI->getOpcode() == ARC::BRcc_rr_p) in getCmpForPseudo() 110 return ARC::CMP_rr; in getCmpForPseudo() 111 return ARC::CMP_ru6; in getCmpForPseudo() 137 BuildMI(*MI->getParent(), MI, MI->getDebugLoc(), TII->get(ARC::Bcc)) in replaceWithCmpBcc()
|
/external/llvm-project/llvm/lib/Target/ARC/ |
D | ARCFrameLowering.cpp | 66 AdjOp = Positive ? ARC::ADD_rru6 : ARC::SUB_rru6; in generateStackAdjustment() 68 AdjOp = Positive ? ARC::ADD_rrs12 : ARC::SUB_rrs12; in generateStackAdjustment() 70 AdjOp = Positive ? ARC::ADD_rrlimm : ARC::SUB_rrlimm; in generateStackAdjustment() 80 assert(Reg.getReg() >= ARC::R13 && Reg.getReg() <= ARC::R25 && in determineLastCalleeSave() 93 SavedRegs.set(ARC::BLINK); in determineCalleeSaves() 109 ScalarAlloc, ARC::SP); in adjustStackToMatchRecords() 137 unsigned Opc = ARC::SUB_rrlimm; in emitPrologue() 139 Opc = ARC::SUB_rru6; in emitPrologue() 141 Opc = ARC::SUB_rrs12; in emitPrologue() 142 BuildMI(MBB, MBBI, dl, TII->get(Opc), ARC::SP) in emitPrologue() [all …]
|
D | ARCRegisterInfo.cpp | 48 if (MI.getOpcode() == ARC::LD_rs9 && (Offset >= 256 || Offset < -256)) { in ReplaceFrameIndex() 50 BuildMI(MBB, II, dl, TII.get(ARC::LD_rlimm), Reg) in ReplaceFrameIndex() 58 if (MI.getOpcode() != ARC::GETFI && (Offset >= 256 || Offset < -256)) { in ReplaceFrameIndex() 60 BaseReg = RS->FindUnusedReg(&ARC::GPR32RegClass); in ReplaceFrameIndex() 66 BaseReg = RS->scavengeRegister(&ARC::GPR32RegClass, II, SPAdj); in ReplaceFrameIndex() 74 unsigned AddOpc = isUInt<6>(Offset) ? ARC::ADD_rru6 : ARC::ADD_rrlimm; in ReplaceFrameIndex() 83 case ARC::LD_rs9: in ReplaceFrameIndex() 86 case ARC::LDH_rs9: in ReplaceFrameIndex() 87 case ARC::LDH_X_rs9: in ReplaceFrameIndex() 90 case ARC::LDB_rs9: in ReplaceFrameIndex() [all …]
|
D | ARCExpandPseudos.cpp | 48 case ARC::ST_FAR: in getMappedOp() 49 return ARC::ST_rs9; in getMappedOp() 50 case ARC::STH_FAR: in getMappedOp() 51 return ARC::STH_rs9; in getMappedOp() 52 case ARC::STB_FAR: in getMappedOp() 53 return ARC::STB_rs9; in getMappedOp() 62 unsigned AddrReg = MF.getRegInfo().createVirtualRegister(&ARC::GPR32RegClass); in ExpandStore() 64 isUInt<6>(SI.getOperand(2).getImm()) ? ARC::ADD_rru6 : ARC::ADD_rrlimm; in ExpandStore() 85 case ARC::ST_FAR: in runOnMachineFunction() 86 case ARC::STH_FAR: in runOnMachineFunction() [all …]
|
D | ARCInstrInfo.cpp | 47 : ARCGenInstrInfo(ARC::ADJCALLSTACKDOWN, ARC::ADJCALLSTACKUP), RI() {} in ARCInstrInfo() 54 return Opcode == ARC::LD_rs9 || Opcode == ARC::LDH_rs9 || in isLoad() 55 Opcode == ARC::LDB_rs9; in isLoad() 59 return Opcode == ARC::ST_rs9 || Opcode == ARC::STH_rs9 || in isStore() 60 Opcode == ARC::STB_rs9; in isStore() 137 static bool isUncondBranchOpcode(int Opc) { return Opc == ARC::BR; } in isUncondBranchOpcode() 140 return Opc == ARC::BRcc_rr_p || Opc == ARC::BRcc_ru6_p; in isCondBranchOpcode() 143 static bool isJumpOpcode(int Opc) { return Opc == ARC::J; } in isJumpOpcode() 285 assert(ARC::GPR32RegClass.contains(SrcReg) && in copyPhysReg() 287 assert(ARC::GPR32RegClass.contains(DestReg) && in copyPhysReg() [all …]
|
D | ARCBranchFinalize.cpp | 96 return !(MI->getOpcode() != ARC::BRcc_rr_p && in isBRccPseudo() 97 MI->getOpcode() != ARC::BRcc_ru6_p); in isBRccPseudo() 102 if (MI->getOpcode() == ARC::BRcc_rr_p) in getBRccForPseudo() 103 return ARC::BRcc_rr; in getBRccForPseudo() 104 return ARC::BRcc_ru6; in getBRccForPseudo() 109 if (MI->getOpcode() == ARC::BRcc_rr_p) in getCmpForPseudo() 110 return ARC::CMP_rr; in getCmpForPseudo() 111 return ARC::CMP_ru6; in getCmpForPseudo() 137 BuildMI(*MI->getParent(), MI, MI->getDebugLoc(), TII->get(ARC::Bcc)) in replaceWithCmpBcc()
|
/external/llvm-project/clang/test/CodeGenObjCXX/ |
D | lambda-expressions.mm | 1 …c++11 -fblocks -fobjc-arc -fobjc-runtime-has-weak -DWEAK_SUPPORTED | FileCheck -check-prefix=ARC %s 7 // ARC: %[[LAMBDACLASS:.*]] = type { i32 } 19 // ARC-LABEL: define i32 ()* @_Z1fv( 20 // ARC-LABEL: define internal i32 ()* @"_ZZ1fvENK3$_0cvU13block_pointerFivEEv" 21 // ARC: store i8* bitcast (i8** @_NSConcreteStackBlock to i8*) 22 // ARC: store i8* bitcast (i32 (i8*)* @"___ZZ1fvENK3$_0cvU13block_pointerFivEEv_block_invoke" to i8… 23 // ARC: call i8* @llvm.objc.retainBlock 24 // ARC: call i8* @llvm.objc.autoreleaseReturnValue 36 // ARC: define void @_Z2f2v() [[NUW:#[0-9]+]] { 37 // ARC: store i8* bitcast (i32 (i8*)* @___Z2f2v_block_invoke to i8*), [all …]
|
/external/llvm-project/llvm/lib/Target/ARC/Disassembler/ |
D | ARCDisassembler.cpp | 114 ARC::R0, ARC::R1, ARC::R2, ARC::R3, ARC::R4, ARC::R5, ARC::R6, 115 ARC::R7, ARC::R8, ARC::R9, ARC::R10, ARC::R11, ARC::R12, ARC::R13, 116 ARC::R14, ARC::R15, ARC::R16, ARC::R17, ARC::R18, ARC::R19, ARC::R20, 117 ARC::R21, ARC::R22, ARC::R23, ARC::R24, ARC::R25, ARC::GP, ARC::FP, 118 ARC::SP, ARC::ILINK, ARC::R30, ARC::BLINK};
|
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Target/ARC/Disassembler/ |
D | ARCDisassembler.cpp | 114 ARC::R0, ARC::R1, ARC::R2, ARC::R3, ARC::R4, ARC::R5, ARC::R6, 115 ARC::R7, ARC::R8, ARC::R9, ARC::R10, ARC::R11, ARC::R12, ARC::R13, 116 ARC::R14, ARC::R15, ARC::R16, ARC::R17, ARC::R18, ARC::R19, ARC::R20, 117 ARC::R21, ARC::R22, ARC::R23, ARC::R24, ARC::R25, ARC::GP, ARC::FP, 118 ARC::SP, ARC::ILINK, ARC::R30, ARC::BLINK};
|
/external/clang/test/SemaObjC/ |
D | warn-retain-block-property.m | 1 …yntax-only -fblocks -fobjc-arc -Wno-objc-root-class %s 2>&1 | FileCheck --check-prefix=CHECK-ARC %s 34 // CHECK-ARC: 14:1: warning: retain'ed block property does not copy the block - use copy attribute … 35 // CHECK-ARC: @property (retain) void (^aBlock)(void); 36 // CHECK-ARC: ^ 37 // CHECK-ARC: 15:1: error: property attributes 'retain' and 'weak' are mutually exclusive 38 // CHECK-ARC: @property (weak, retain) void (^aBlockW)(void); 39 // CHECK-ARC: ^ 40 // CHECK-ARC: 18:1: error: property attributes 'copy' and 'retain' are mutually exclusive 41 // CHECK-ARC: @property (copy, retain) void (^aBlockC)(void); 42 // CHECK-ARC: ^ [all …]
|
D | arc-system-header.m | 8 cp = test0(op); // expected-error {{'test0' is unavailable in ARC}} 9 cp = *test1(&op); // expected-error {{'test1' is unavailable in ARC}} 10 …cted-note@arc-system-header.h:1 {{inline function performs a conversion which is forbidden in ARC}} 11 …cted-note@arc-system-header.h:5 {{inline function performs a conversion which is forbidden in ARC}} 15 p->field = 0; // expected-error {{'field' is unavailable in ARC}} 16 … // expected-note@arc-system-header.h:14 {{declaration uses type that is ill-formed in ARC}} 20 p->field1 = 0; // expected-error {{'field1' is unavailable in ARC}} 21 … // expected-note@arc-system-header.h:19 {{declaration uses type that is ill-formed in ARC}} 26 p->field = 0; // expected-error {{'field' is unavailable in ARC}} 42 *p.prop = 0; // expected-error {{'prop' is unavailable in ARC}} [all …]
|
/external/llvm-project/clang/test/SemaObjC/ |
D | warn-retain-block-property.m | 1 …yntax-only -fblocks -fobjc-arc -Wno-objc-root-class %s 2>&1 | FileCheck --check-prefix=CHECK-ARC %s 34 // CHECK-ARC: 14:1: warning: retain'ed block property does not copy the block - use copy attribute … 35 // CHECK-ARC: @property (retain) void (^aBlock)(void); 36 // CHECK-ARC: ^ 37 // CHECK-ARC: 15:1: error: property attributes 'retain' and 'weak' are mutually exclusive 38 // CHECK-ARC: @property (weak, retain) void (^aBlockW)(void); 39 // CHECK-ARC: ^ 40 // CHECK-ARC: 18:1: error: property attributes 'copy' and 'retain' are mutually exclusive 41 // CHECK-ARC: @property (copy, retain) void (^aBlockC)(void); 42 // CHECK-ARC: ^ [all …]
|
D | arc-system-header.m | 8 cp = test0(op); // expected-error {{'test0' is unavailable in ARC}} 9 cp = *test1(&op); // expected-error {{'test1' is unavailable in ARC}} 10 …cted-note@arc-system-header.h:1 {{inline function performs a conversion which is forbidden in ARC}} 11 …cted-note@arc-system-header.h:5 {{inline function performs a conversion which is forbidden in ARC}} 15 p->field = 0; // expected-error {{'field' is unavailable in ARC}} 16 … // expected-note@arc-system-header.h:14 {{declaration uses type that is ill-formed in ARC}} 20 p->field1 = 0; // expected-error {{'field1' is unavailable in ARC}} 21 … // expected-note@arc-system-header.h:19 {{declaration uses type that is ill-formed in ARC}} 41 *p.prop = 0; // expected-error {{'prop' is unavailable in ARC}} 42 p.prop = 0; // expected-error {{'prop' is unavailable in ARC}} [all …]
|
D | externally-retained.m | 18 …0; // expected-error{{variable declared with 'objc_externally_retained' cannot be modified in ARC}} 19 …0; // expected-error{{variable declared with 'objc_externally_retained' cannot be modified in ARC}} 20 …}; // expected-error{{variable declared with 'objc_externally_retained' cannot be modified in ARC}} 26 …0; // expected-error{{variable declared with 'objc_externally_retained' cannot be modified in ARC}} 36 …0; // expected-error{{variable declared with 'objc_externally_retained' cannot be modified in ARC}} 45 …0; // expected-error{{variable declared with 'objc_externally_retained' cannot be modified in ARC}} 51 …0; // expected-error{{variable declared with 'objc_externally_retained' cannot be modified in ARC}} 61 …0; // expected-error{{variable declared with 'objc_externally_retained' cannot be modified in ARC}} 68 …0; // expected-error{{variable declared with 'objc_externally_retained' cannot be modified in ARC}} 74 …0; // expected-error{{variable declared with 'objc_externally_retained' cannot be modified in ARC}} [all …]
|
/external/clang/test/CodeGenObjCXX/ |
D | lambda-expressions.mm | 1 …0.0 -emit-llvm -o - %s -fexceptions -std=c++11 -fblocks -fobjc-arc | FileCheck -check-prefix=ARC %s 17 // ARC-LABEL: define i32 ()* @_Z1fv( 18 // ARC-LABEL: define internal i32 ()* @"_ZZ1fvENK3$_0cvU13block_pointerFivEEv" 19 // ARC: store i8* bitcast (i8** @_NSConcreteStackBlock to i8*) 20 // ARC: store i8* bitcast (i32 (i8*)* @"___ZZ1fvENK3$_0cvU13block_pointerFivEEv_block_invoke" to i8… 21 // ARC: call i8* @objc_retainBlock 22 // ARC: call i8* @objc_autoreleaseReturnValue 34 // ARC: define void @_Z2f2v() [[NUW:#[0-9]+]] { 35 // ARC: store i8* bitcast (i32 (i8*)* @___Z2f2v_block_invoke to i8*), 36 // ARC: call i8* @objc_retainBlock [all …]
|
/external/clang/test/Index/ |
D | complete-property-flags.m | 30 …tion-at=%s:7:11 %s -fobjc-arc -fobjc-runtime=macosx-10.7 | FileCheck -check-prefix=CHECK-CC1-ARC %s 31 // CHECK-CC1-ARC: {TypedText assign} 32 // CHECK-CC1-ARC-NEXT: {TypedText atomic} 33 // CHECK-CC1-ARC-NEXT: {TypedText copy} 34 // CHECK-CC1-ARC-NEXT: {TypedText getter}{Text =}{Placeholder method} 35 // CHECK-CC1-ARC-NEXT: {TypedText nonatomic} 36 // CHECK-CC1-ARC-NEXT: {TypedText nonnull} 37 // CHECK-CC1-ARC-NEXT: {TypedText null_resettable} 38 // CHECK-CC1-ARC-NEXT: {TypedText null_unspecified} 39 // CHECK-CC1-ARC-NEXT: {TypedText nullable} [all …]
|
/external/llvm-project/clang/test/Index/ |
D | complete-property-flags.m | 30 …tion-at=%s:7:11 %s -fobjc-arc -fobjc-runtime=macosx-10.7 | FileCheck -check-prefix=CHECK-CC1-ARC %s 31 // CHECK-CC1-ARC: {TypedText assign} 32 // CHECK-CC1-ARC-NEXT: {TypedText atomic} 33 // CHECK-CC1-ARC-NEXT: {TypedText copy} 34 // CHECK-CC1-ARC-NEXT: {TypedText getter}{Text =}{Placeholder method} 35 // CHECK-CC1-ARC-NEXT: {TypedText nonatomic} 36 // CHECK-CC1-ARC-NEXT: {TypedText nonnull} 37 // CHECK-CC1-ARC-NEXT: {TypedText null_resettable} 38 // CHECK-CC1-ARC-NEXT: {TypedText null_unspecified} 39 // CHECK-CC1-ARC-NEXT: {TypedText nullable} [all …]
|
/external/llvm-project/llvm/test/Bitcode/ |
D | upgrade-arc-runtime-calls.ll | 1 ; Test that calls to ARC runtime functions are converted to intrinsic calls if 9 ; RUN: llvm-dis < %S/upgrade-arc-runtime-calls.bc | FileCheck -check-prefixes=ARC %s 58 // ARC: define void @testRuntimeCalls(i8* %[[A:.*]], i8** %[[B:.*]], i8** %[[C:.*]], i32* %[[D:.*]]… 59 // ARC: %[[V0:.*]] = tail call i8* @llvm.objc.autorelease(i8* %[[A]]) 60 // ARC-NEXT: tail call void @llvm.objc.autoreleasePoolPop(i8* %[[A]]) 61 // ARC-NEXT: %[[V1:.*]] = tail call i8* @llvm.objc.autoreleasePoolPush() 62 // ARC-NEXT: %[[V2:.*]] = tail call i8* @llvm.objc.autoreleaseReturnValue(i8* %[[A]]) 63 // ARC-NEXT: tail call void @llvm.objc.copyWeak(i8** %[[B]], i8** %[[C]]) 64 // ARC-NEXT: tail call void @llvm.objc.destroyWeak(i8** %[[B]]) 65 // ARC-NEXT: %[[V100:.*]] = bitcast i32** %[[E]] to i8** [all …]
|
/external/llvm-project/clang/test/Driver/ |
D | objc-weak.m | 3 …6_64-apple-macosx10.7 -S -### %s -fobjc-arc -fobjc-weak 2>&1 | FileCheck %s --check-prefix ARC-WEAK 4 …x10.7 -S -### %s -fno-objc-weak -fobjc-weak -fobjc-arc 2>&1 | FileCheck %s --check-prefix ARC-WEAK 5 // ARC-WEAK: -fobjc-arc 6 // ARC-WEAK: -fobjc-weak 8 …apple-macos10.7 -S -### %s -fobjc-arc -fno-objc-weak 2>&1 | FileCheck %s --check-prefix ARC-NO-WEAK 9 ….7 -S -### %s -fobjc-weak -fno-objc-weak -fobjc-arc 2>&1 | FileCheck %s --check-prefix ARC-NO-WEAK 10 // ARC-NO-WEAK: -fobjc-arc 11 // ARC-NO-WEAK: -fno-objc-weak 13 …cosx10.5 -S -### %s -fobjc-arc -fobjc-weak 2>&1 | FileCheck %s --check-prefix ARC-WEAK-NOTSUPPORTED 14 … %s -fno-objc-weak -fobjc-weak -fobjc-arc 2>&1 | FileCheck %s --check-prefix ARC-WEAK-NOTSUPPORTED [all …]
|
/external/clang/test/Driver/ |
D | objc-weak.m | 3 …cosx-version-min=10.7 -S -### %s -fobjc-arc -fobjc-weak 2>&1 | FileCheck %s --check-prefix ARC-WEAK 4 …=10.7 -S -### %s -fno-objc-weak -fobjc-weak -fobjc-arc 2>&1 | FileCheck %s --check-prefix ARC-WEAK 5 // ARC-WEAK: -fobjc-arc 6 // ARC-WEAK: -fobjc-weak 8 …ersion-min=10.7 -S -### %s -fobjc-arc -fno-objc-weak 2>&1 | FileCheck %s --check-prefix ARC-NO-WEAK 9 ….7 -S -### %s -fobjc-weak -fno-objc-weak -fobjc-arc 2>&1 | FileCheck %s --check-prefix ARC-NO-WEAK 10 // ARC-NO-WEAK: -fobjc-arc 11 // ARC-NO-WEAK: -fno-objc-weak 13 …min=10.5 -S -### %s -fobjc-arc -fobjc-weak 2>&1 | FileCheck %s --check-prefix ARC-WEAK-NOTSUPPORTED 14 … %s -fno-objc-weak -fobjc-weak -fobjc-arc 2>&1 | FileCheck %s --check-prefix ARC-WEAK-NOTSUPPORTED [all …]
|
/external/llvm-project/clang/test/CodeGenObjC/ |
D | stret-lifetime.m | 3 …-fobjc-arc -S -emit-llvm -o - -O2 -disable-llvm-passes %s | FileCheck %s --check-prefixes=CHECK,ARC 4 …-fobjc-arc -S -emit-llvm -o - -O2 -disable-llvm-passes %s | FileCheck %s --check-prefixes=CHECK,ARC 22 // ARC: [[T0:%.*]] = icmp eq i8* 23 // ARC: br i1 [[T0]] 28 // ARC: br label 30 // ARC: call void @llvm.objc.release 31 // ARC: br label
|