Lines Matching full:call
40 %0 = call i8* @objc_retain(i8* %a) nounwind
55 call void @objc_release(i8* %c) nounwind
65 %0 = call i8* @objc_retain(i8* %a) nounwind
80 call void @objc_release(i8* %c) nounwind, !clang.imprecise_release !0
96 %0 = call i8* @objc_retain(i8* %a) nounwind
107 call void @callee()
112 call void @objc_release(i8* %c) nounwind
126 %0 = call i8* @objc_retain(i8* %a) nounwind
137 call void @callee()
142 call void @objc_release(i8* %c) nounwind, !clang.imprecise_release !0
154 ; CHECK: tail call i8* @objc_retain(i8* %x) [[NUW]]
157 ; CHECK: tail call void @objc_release(i8* %x) [[NUW]]
162 tail call i8* @objc_retain(i8* %x) nounwind
166 tail call void @callee()
173 tail call void @use_pointer(i8* %x)
177 tail call void @objc_release(i8* %x) nounwind
183 ; CHECK: tail call i8* @objc_retain(i8* %x) [[NUW:#[0-9]+]]
186 ; CHECK: tail call void @objc_release(i8* %x) [[NUW]], !clang.imprecise_release ![[RELEASE:[0-9]+…
191 tail call i8* @objc_retain(i8* %x) nounwind
195 tail call void @callee()
202 tail call void @use_pointer(i8* %x)
206 tail call void @objc_release(i8* %x) nounwind, !clang.imprecise_release !0
211 ; Like test0 but the pointer is passed to an intervening call,
221 %0 = call i8* @objc_retain(i8* %a) nounwind
232 call void @use_pointer(i8* %0)
239 call void @objc_release(i8* %c) nounwind
250 %0 = call i8* @objc_retain(i8* %a) nounwind
261 call void @use_pointer(i8* %0)
268 call void @objc_release(i8* %c) nounwind, !clang.imprecise_release !0
284 %0 = call i8* @objc_retain(i8* %a) nounwind
289 call void @objc_release(i8* %c) nounwind
304 %0 = call i8* @objc_retain(i8* %a) nounwind
309 call void @objc_release(i8* %c) nounwind, !clang.imprecise_release !0
333 %0 = call i8* @objc_retain(i8* %a) nounwind
339 call void @objc_release(i8* %c) nounwind
353 %0 = call i8* @objc_retain(i8* %a) nounwind
359 call void @objc_release(i8* %c) nounwind, !clang.imprecise_release !0
364 ; Like test0 but the pointer is conditionally passed to an intervening call,
374 %0 = call i8* @objc_retain(i8* %a) nounwind
376 call void @use_pointer(i8* %s)
379 call void @objc_release(i8* %c) nounwind
390 %0 = call i8* @objc_retain(i8* %a) nounwind
392 call void @use_pointer(i8* %s)
395 call void @objc_release(i8* %c) nounwind, !clang.imprecise_release !0
405 ; CHECK: tail call i8* @objc_retain(
407 ; CHECK: call void @objc_release(
409 ; CHECK: call void @objc_release(
415 %0 = call i8* @objc_retain(i8* %a) nounwind
423 call void @objc_release(i8* %ct) nounwind
428 call void @callee()
430 call void @objc_release(i8* %cf) nounwind
443 %0 = call i8* @objc_retain(i8* %a) nounwind
451 call void @objc_release(i8* %ct) nounwind, !clang.imprecise_release !0
456 call void @callee()
458 call void @objc_release(i8* %cf) nounwind, !clang.imprecise_release !0
467 ; CHECK: tail call i8* @objc_retain(
469 ; CHECK: call void @objc_release(
471 ; CHECK: call void @objc_release(
477 %0 = call i8* @objc_retain(i8* %a) nounwind
485 call void @objc_release(i8* %ct) nounwind
490 call void @callee()
492 call void @objc_release(i8* %cf) nounwind, !clang.imprecise_release !0
501 ; CHECK: tail call i8* @objc_retain(
503 ; CHECK: call void @objc_release(
505 ; CHECK: call void @objc_release(
511 %0 = call i8* @objc_retain(i8* %a) nounwind
519 call void @objc_release(i8* %ct) nounwind, !clang.imprecise_release !0
524 call void @callee()
526 call void @objc_release(i8* %cf) nounwind
541 ; CHECK: call i8* @objc_retain
543 ; CHECK: call i8* @objc_retain
545 ; CHECK: call void @objc_release
553 %0 = call i8* @objc_retain(i8* %a) nounwind
560 %1 = call i8* @objc_retain(i8* %a) nounwind
562 call void @callee()
567 call void @objc_release(i8* %c) nounwind
580 %0 = call i8* @objc_retain(i8* %a) nounwind
587 %1 = call i8* @objc_retain(i8* %a) nounwind
589 call void @callee()
594 call void @objc_release(i8* %c) nounwind, !clang.imprecise_release !0
602 ; CHECK: call i8* @objc_retainBlock
604 ; CHECK: call i8* @objc_retain
606 ; CHECK: call void @objc_release
614 %0 = call i8* @objc_retainBlock(i8* %a) nounwind
621 %1 = call i8* @objc_retain(i8* %a) nounwind
623 call void @callee()
628 call void @objc_release(i8* %c) nounwind
654 %0 = call i8* @objc_retain(i8* %a) nounwind
661 %1 = call i8* @objc_retain(i8* %a) nounwind
669 call void @callee()
671 call void @objc_release(i8* %cu) nounwind
676 call void @objc_release(i8* %cg) nounwind
692 %0 = call i8* @objc_retain(i8* %a) nounwind
699 %1 = call i8* @objc_retain(i8* %a) nounwind
707 call void @callee()
709 call void @objc_release(i8* %cu) nounwind, !clang.imprecise_release !0
714 call void @objc_release(i8* %cg) nounwind, !clang.imprecise_release !0
740 %0 = call i8* @objc_retain(i8* %a) nounwind
747 %1 = call i8* @objc_retain(i8* %a) nounwind
755 call void @callee()
757 call void @objc_release(i8* %cu) nounwind
762 call void @objc_release(i8* %cg) nounwind, !clang.imprecise_release !0
788 %0 = call i8* @objc_retain(i8* %a) nounwind
795 %1 = call i8* @objc_retain(i8* %a) nounwind
803 call void @callee()
805 call void @objc_release(i8* %cu) nounwind, !clang.imprecise_release !0
810 call void @objc_release(i8* %cg) nounwind
824 %0 = call i8* @objc_retain(i8* %x) nounwind
825 call void @objc_release(i8* %0) nounwind
837 %0 = call i8* @objc_retain(i8* %x) nounwind
839 call void @objc_release(i8* %s) nounwind
853 %0 = call i8* @objc_retain(i8* %x) nounwind
854 call void @callee()
855 call void @use_pointer(i8* %x)
856 call void @objc_release(i8* %0) nounwind
865 ; CHECK: tail call i8* @objc_retain(i8* %x) [[NUW]]
866 ; CHECK: call i8* @objc_autorelease(i8* %0) [[NUW]]
870 %0 = call i8* @objc_retain(i8* %x) nounwind
871 call i8* @objc_autorelease(i8* %0) nounwind
872 call void @use_pointer(i8* %x)
876 ; Same as test11 but with no use_pointer call. Delete the pair!
884 %0 = call i8* @objc_retain(i8* %x) nounwind
885 call i8* @objc_autorelease(i8* %0) nounwind
894 ; CHECK: tail call i8* @objc_retain(i8* %x) [[NUW]]
895 ; CHECK: call i8* @objc_autorelease(i8* %0) [[NUW]]
899 %0 = call i8* @objc_retain(i8* %x) nounwind
900 call i8* @objc_autorelease(i8* %0) nounwind
915 call i8* @objc_retain(i8* %x) nounwind
916 call i8* @objc_retain(i8* %x) nounwind
917 call void @use_pointer(i8* %x)
918 call void @use_pointer(i8* %x)
919 call void @objc_release(i8* %x) nounwind
926 ; CHECK: tail call i8* @objc_retain(i8* %x) [[NUW]]
927 ; CHECK: tail call i8* @objc_retain(i8* %x) [[NUW]]
929 ; CHECK: call i8* @objc_autorelease(i8* %x) [[NUW]]
933 call i8* @objc_retain(i8* %x) nounwind
934 call i8* @objc_retain(i8* %x) nounwind
935 call void @use_pointer(i8* %x)
936 call i8* @objc_autorelease(i8* %x) nounwind
953 call i8* @objc_retain(i8* %x) nounwind
954 call i8* @objc_retain(i8* %x) nounwind
955 call void @use_pointer(i8* %x)
956 call void @use_pointer(i8* %x)
957 call void @objc_release(i8* %x) nounwind
958 call void @use_pointer(i8* %x)
959 call void @objc_release(i8* %x) nounwind
975 call i8* @objc_retain(i8* %x) nounwind
976 call void @objc_autoreleasePoolPop(i8* undef)
977 call i8* @objc_retain(i8* %x) nounwind
978 call void @use_pointer(i8* %x)
979 call void @use_pointer(i8* %x)
980 call void @objc_release(i8* %x) nounwind
999 call i8* @objc_retain(i8* %x) nounwind
1000 call i8* @objc_autoreleasePoolPush()
1001 call i8* @objc_retain(i8* %x) nounwind
1002 call void @use_pointer(i8* %x)
1003 call void @use_pointer(i8* %x)
1004 call void @objc_release(i8* %x) nounwind
1005 call void @use_pointer(i8* %x)
1006 call void @objc_release(i8* %x) nounwind
1010 ; Trivial retain,release pair with intervening call, and it's post-dominated by
1025 call i8* @objc_retain(i8* %x) nounwind
1026 call void @use_pointer(i8* %x)
1027 call void @use_pointer(i8* %x)
1028 call void @objc_release(i8* %x) nounwind
1029 call void @objc_release(i8* %x) nounwind
1033 ; Trivial retain,autorelease pair with intervening call, but it's post-dominated
1046 call i8* @objc_retain(i8* %x) nounwind
1047 call void @use_pointer(i8* %x)
1048 call i8* @objc_autorelease(i8* %x) nounwind
1049 call void @objc_release(i8* %x) nounwind
1065 call i8* @objc_retain(i8* %x) nounwind
1066 call i8* @objc_autorelease(i8* %x) nounwind
1067 call void @objc_release(i8* %x) nounwind
1078 call i8* @objc_retain(i8* %x) nounwind
1079 call i8* @objc_autorelease(i8* %x) nounwind
1080 call void @objc_release(i8* %x) nounwind, !clang.imprecise_release !0
1095 call i8* @objc_retain(i8* %x) nounwind
1099 call i8* @objc_retain(i8* %x) nounwind
1103 call i8* @objc_retain(i8* %x) nounwind
1107 call void @use_pointer(i8* %x)
1108 call void @use_pointer(i8* %x)
1112 call void @objc_release(i8* %x) nounwind
1116 call void @objc_release(i8* %x) nounwind
1120 call void @use_pointer(i8* %x)
1121 call void @objc_release(i8* %x) nounwind
1135 call i8* @objc_retain(i8* %x) nounwind
1139 call i8* @objc_retain(i8* %x) nounwind
1143 call i8* @objc_retain(i8* %x) nounwind
1147 call void @use_pointer(i8* %x)
1148 call void @use_pointer(i8* %x)
1152 call void @objc_release(i8* %x) nounwind, !clang.imprecise_release !0
1156 call void @objc_release(i8* %x) nounwind
1160 call void @use_pointer(i8* %x)
1161 call void @use_pointer(i8* %x)
1162 call void @objc_release(i8* %x) nounwind
1175 call i8* @objc_retain(i8* %x) nounwind
1179 call i8* @objc_retain(i8* %x) nounwind
1183 call i8* @objc_retain(i8* %x) nounwind
1187 call void @use_pointer(i8* %x)
1188 call void @use_pointer(i8* %x)
1192 call void @objc_release(i8* %x) nounwind, !clang.imprecise_release !0
1196 call void @objc_release(i8* %x) nounwind, !clang.imprecise_release !0
1200 call void @use_pointer(i8* %x)
1201 call void @objc_release(i8* %x) nounwind, !clang.imprecise_release !0
1211 call i8* @objc_retain(i8* %x) nounwind
1215 call i8* @objc_retain(i8* %x) nounwind
1219 call i8* @objc_retain(i8* %x) nounwind
1223 call void @use_pointer(i8* %x)
1224 call void @use_pointer(i8* %x)
1228 call void @objc_release(i8* %x) nounwind
1232 call void @objc_release(i8* %x) nounwind, !clang.imprecise_release !0
1245 call i8* @objc_retain(i8* null)
1246 call void @objc_release(i8* null)
1247 call i8* @objc_autorelease(i8* null)
1257 call i8* @objc_retain(i8* undef)
1258 call void @objc_release(i8* undef)
1259 call i8* @objc_autorelease(i8* undef)
1269 ; CHECK: %1 = tail call i8* @objc_retain(i8* %0)
1270 ; CHECK: call void @use_pointer(i8* %z)
1271 ; CHECK: call void @use_pointer(i8* %z)
1273 ; CHECK: call void @objc_release(i8* %2)
1279 %0 = call i8* @objc_retain(i8* %x) nounwind
1281 call void @use_pointer(i8* %z)
1282 call void @use_pointer(i8* %z)
1283 call void @objc_release(i8* %x)
1290 ; CHECK: %tmp1 = tail call i8* @objc_retain(i8* %tmp) [[NUW]]
1296 %tmp1 = call i8* @objc_retain(i8* %tmp) nounwind
1314 ; Delete a redundant retain,autorelease when forwaring a call result
1318 ; CHECK: call i8* @returner()
1319 ; CHECK-NEXT: ret i8* %call
1323 %call = call i8* @returner()
1324 %0 = call i8* @objc_retain(i8* %call) nounwind
1325 %1 = call i8* @objc_autorelease(i8* %0) nounwind
1329 ; Move an objc call up through a phi that has null operands.
1334 ; CHECK: call void @objc_release(i8* %1)
1348 call void @objc_release(i8* %c)
1352 ; Any call can decrement a retain count.
1359 call i8* @objc_retain(i8* %a)
1360 call void @use_pointer(i8* %r)
1362 call void @objc_release(i8* %a)
1371 ; CHECK: call i8* @objc_retain(i8* %p)
1374 ; CHECK: call void @objc_release(i8* %p)
1378 %f0 = call i8* @objc_retain(i8* %p)
1379 call void @callee()
1387 call void @objc_release(i8* %p)
1396 ; CHECK: call i8* @objc_retain(i8* %p)
1399 ; CHECK: call void @objc_release(i8* %p)
1403 %f0 = call i8* @objc_retain(i8* %p)
1407 call void @callee()
1412 call void @objc_release(i8* %p)
1420 ; CHECK: call i8* @objc_retain(i8* %p)
1424 ; CHECK: call void @objc_release
1428 %f0 = call i8* @objc_retain(i8* %p)
1432 call void @callee()
1437 call void @objc_release(i8* %p)
1446 ; CHECK: call i8* @objc_retain(
1447 ; CHECK: call void @callee()
1449 ; CHECK: call void @objc_release
1455 %f0 = call i8* @objc_retain(i8* %p)
1459 call void @callee()
1464 call void @objc_release(i8* %p), !clang.imprecise_release !0
1472 ; CHECK: call i8* @objc_retain(
1475 ; CHECK: call void @callee()
1484 %f0 = call i8* @objc_retain(i8* %p)
1488 call void @callee()
1494 call void @objc_release(i8* %p)
1504 ; CHECK: call i8* @objc_retain(
1505 ; CHECK: call void @callee()
1507 ; CHECK: call void @objc_release(i8* %p) [[NUW]], !clang.imprecise_release
1513 %f0 = call i8* @objc_retain(i8* %p)
1517 call void @callee()
1523 call void @objc_release(i8* %p), !clang.imprecise_release !0
1532 ; CHECK: call i8* @objc_retain(
1533 ; CHECK: call void @callee()
1535 ; CHECK: call void @objc_release
1544 %f0 = call i8* @objc_retain(i8* %p)
1548 call void @callee()
1553 call void @objc_release(i8* %p)
1557 call void @objc_release(i8* %p)
1561 ; Basic case with the use and call in a diamond
1567 ; CHECK: call i8* @objc_retain(
1568 ; CHECK: call void @callee()
1570 ; CHECK: call void @objc_release
1581 %f0 = call i8* @objc_retain(i8* %p)
1585 call void @callee()
1593 call void @objc_release(i8* %p)
1597 call void @objc_release(i8* %p)
1604 ; CHECK: call i8* @objc_retain(i8* %p)
1605 ; CHECK: call void @callee()
1607 ; CHECK: call void @objc_release
1618 %f0 = call i8* @objc_retain(i8* %p)
1619 call void @callee()
1623 call void @objc_release(i8* %p)
1626 call void @objc_release(i8* %p)
1635 ; CHECK: call i8* @objc_retain(
1636 ; CHECK: call void @callee()
1638 ; CHECK: call void @objc_release
1644 %f0 = call i8* @objc_retain(i8* %p)
1648 call void @callee()
1655 call void @objc_release(i8* %g)
1664 ; CHECK: call i8* @objc_retain(
1665 ; CHECK: call void @callee()
1667 ; CHECK: call void @objc_release
1673 %f0 = call i8* @objc_retain(i8* %p)
1677 call void @callee()
1684 call void @objc_release(i8* %g)
1692 ; CHECK: call i8* @objc_retain
1695 ; CHECK: call void @objc_release
1699 %f0 = call i8* @objc_retain(i8* %p)
1703 call void @callee()
1709 call void @objc_release(i8* %g)
1718 %f0 = call i8* @objc_retain(i8* %p)
1722 call void @callee()
1728 call void @objc_release(i8* %g), !clang.imprecise_release !0
1739 ; CHECK: call i8* @objc_retain
1742 ; CHECK: call void @objc_release
1746 %f0 = call i8* @objc_retain(i8* %p)
1756 call void @objc_release(i8* %g)
1766 %f0 = call i8* @objc_retain(i8* %p)
1776 call void @objc_release(i8* %g), !clang.imprecise_release !0
1784 ; CHECK: call void @callee()
1786 ; CHECK: call void @callee()
1791 call i8* @objc_retain(i8* %p)
1792 call void @callee()
1793 call void @callee()
1794 call void @objc_release(i8* %p)
1805 call i8* @objc_retain(i8* %p)
1806 call void @callee()
1807 call void @callee()
1808 call void @objc_release(i8* %p), !clang.imprecise_release !0
1819 call i8* @objc_retain(i8* %p)
1841 call void @use_pointer(i8* %h)
1842 call void @objc_release(i8* %p), !clang.imprecise_release !0
1853 %0 = call i8* @objc_retain(i8* %p)
1860 call void @objc_release(i8* %0), !clang.imprecise_release !0
1871 %0 = call i8* @objc_retain(i8* %p)
1879 call void @objc_release(i8* %0), !clang.imprecise_release !0
1890 %0 = call i8* @objc_retain(i8* %p)
1894 call void @use_pointer(i8* %0)
1898 call void @objc_release(i8* %0), !clang.imprecise_release !0
1910 %0 = call i8* @objc_retain(i8* %p)
1914 call void @use_pointer(i8* %0)
1918 call void @objc_release(i8* %0), !clang.imprecise_release !0
1927 ; CHECK-NEXT: call i8* @objc_retain(i8* %p)
1928 ; CHECK-NEXT: call i8* @objc_autorelease(i8* %p)
1929 ; CHECK-NEXT: call void @use_pointer(i8* %p)
1930 ; CHECK-NEXT: call void @use_pointer(i8* %p)
1931 ; CHECK-NEXT: call void @use_pointer(i8* %p)
1932 ; CHECK-NEXT: call void @use_pointer(i8* %p)
1933 ; CHECK-NEXT: call void @objc_release(i8* %p)
1938 call i8* @objc_retain(i8* %p)
1939 call i8* @objc_autorelease(i8* %p)
1940 call i8* @objc_retain(i8* %p)
1941 call void @use_pointer(i8* %p)
1942 call void @use_pointer(i8* %p)
1943 call void @objc_release(i8* %p)
1944 call void @use_pointer(i8* %p)
1945 call void @use_pointer(i8* %p)
1946 call void @objc_release(i8* %p)
1955 ; CHECK-NEXT: call i8* @objc_retain(i8* %p)
1956 ; CHECK-NEXT: call i8* @objc_autorelease(i8* %p)
1957 ; CHECK-NEXT: call i8* @objc_retain
1958 ; CHECK-NEXT: call void @use_pointer(i8* %p)
1959 ; CHECK-NEXT: call void @use_pointer(i8* %p)
1960 ; CHECK-NEXT: call void @objc_autoreleasePoolPop(i8* undef)
1961 ; CHECK-NEXT: call void @objc_release
1966 call i8* @objc_retain(i8* %p)
1967 call i8* @objc_autorelease(i8* %p)
1968 call i8* @objc_retain(i8* %p)
1969 call void @use_pointer(i8* %p)
1970 call void @use_pointer(i8* %p)
1971 call void @objc_autoreleasePoolPop(i8* undef)
1972 call void @objc_release(i8* %p)
1981 ; CHECK-NEXT: call i8* @objc_retain(i8* %p)
1982 ; CHECK-NEXT: call i8* @objc_autorelease(i8* %p)
1983 ; CHECK-NEXT: call void @use_pointer(i8* %p)
1984 ; CHECK-NEXT: call void @use_pointer(i8* %p)
1985 ; CHECK-NEXT: call i8* @objc_autoreleasePoolPush()
1986 ; CHECK-NEXT: call void @use_pointer(i8* %p)
1987 ; CHECK-NEXT: call void @objc_release
1992 call i8* @objc_retain(i8* %p)
1993 call i8* @objc_autorelease(i8* %p)
1994 call i8* @objc_retain(i8* %p)
1995 call void @use_pointer(i8* %p)
1996 call void @use_pointer(i8* %p)
1997 call i8* @objc_autoreleasePoolPush()
1998 call void @objc_release(i8* %p)
1999 call void @use_pointer(i8* %p)
2000 call void @objc_release(i8* %p)
2011 %q = call i8* @objc_retain(i8* %p)
2012 call void @objc_release(i8* %q)
2020 ; CHECK: call i8* @objc_retain(i8* %p)
2021 ; CHECK: call void @objc_release(i8* %q)
2022 ; CHECK: call void @use_pointer(i8* %p)
2023 ; CHECK: call void @objc_release(i8* %p)
2028 call i8* @objc_retain(i8* %p)
2029 call void @objc_release(i8* %q)
2030 call void @use_pointer(i8* %p)
2031 call void @objc_release(i8* %p)
2038 ; CHECK: tail call i8* @objc_retain(i8* %p) [[NUW]]
2040 ; CHECK: call i8* @objc_autorelease(i8* %p) [[NUW]]
2044 call i8* @objc_retain(i8* %p)
2048 call i8* @objc_autorelease(i8* %p)
2049 call void @use_pointer(i8* %p)
2059 ; CHECK-NOT: call
2063 %x = call i8* @objc_retainedObject(i8* %p)
2070 ; CHECK-NOT: call
2074 %x = call i8* @objc_unretainedObject(i8* %p)
2081 ; CHECK-NOT: call
2085 %x = call i8* @objc_unretainedPointer(i8* %p)
2093 ; CHECK-NEXT: call i8* @objc_retain
2094 ; CHECK-NEXT: call void @callee
2096 ; CHECK-NEXT: call void @objc_release
2100 call i8* @objc_retain(i8* %p)
2101 call void @callee()
2103 call void @objc_release(i8* %p)
2111 call i8* @objc_retain(i8* %p)
2112 call void @callee()
2114 call void @objc_release(i8* %p), !clang.imprecise_release !0
2123 ; CHECK: call i8* @objc_retain(i8* %p)
2124 ; CHECK: call void @objc_release(i8* %p)
2128 call i8* @objc_retain(i8* %p)
2129 call void @callee()
2131 call void @objc_release(i8* %p)
2136 ; CHECK: call i8* @objc_retain(i8* %p)
2137 ; CHECK: call void @objc_release(i8* %p)
2141 call i8* @objc_retain(i8* %p)
2142 call void @callee()
2144 call void @objc_release(i8* %p), !clang.imprecise_release !0
2152 ; CHECK: call i8* @objc_retain
2153 ; CHECK: call void @callee()
2154 ; CHECK: call void @use_pointer(i8* %z)
2155 ; CHECK: call void @objc_release
2160 %1 = call i8* @objc_retain(i8* %p)
2161 call void @callee()
2163 call void @use_pointer(i8* %z)
2164 call void @objc_release(i8* %p)
2169 ; CHECK: call i8* @objc_retain
2170 ; CHECK: call void @callee()
2171 ; CHECK: call void @use_pointer(i8* %z)
2172 ; CHECK: call void @objc_release
2177 %1 = call i8* @objc_retain(i8* %p)
2178 call void @callee()
2180 call void @use_pointer(i8* %z)
2181 call void @objc_release(i8* %p), !clang.imprecise_release !0
2195 %1 = call i8* @objc_retain(i8* %p)
2196 call void @callee()
2198 call void @callee_fnptr(void ()* %z)
2199 call void @objc_release(i8* %p)
2206 ; CHECK: call i8* @returner()
2207 ; CHECK-NEXT: call void @objc_release(i8* %t) [[NUW]], !clang.imprecise_release ![[RELEASE]]
2211 %t = call i8* @returner()
2212 call i8* @objc_autorelease(i8* %t)
2223 %0 = call i8* @objc_retain(i8* %x) nounwind
2224 %1 = call i8* @objc_retain(i8* %x) nounwind
2225 call void @objc_release(i8* %x) nounwind
2226 call void @objc_release(i8* %x) nounwind
2238 ; CHECK-NEXT: %0 = tail call i8* @objc_retain(i8* %x) [[NUW]]
2239 ; CHECK-NEXT: tail call void @use_pointer(i8* %x)
2240 ; CHECK-NEXT: tail call void @use_pointer(i8* %x)
2241 ; CHECK-NEXT: tail call void @objc_release(i8* %x) [[NUW]], !clang.imprecise_release ![[RELEASE]]
2247 %0 = tail call i8* @objc_retain(i8* %x) nounwind
2248 %1 = tail call i8* @objc_retain(i8* %0) nounwind
2253 %2 = tail call i8* @objc_retain(i8* %1) nounwind
2254 tail call void @use_pointer(i8* %2)
2255 tail call void @use_pointer(i8* %2)
2256 tail call void @objc_release(i8* %2) nounwind, !clang.imprecise_release !0
2260 tail call void @objc_release(i8* %1) nounwind, !clang.imprecise_release !0
2261 tail call void @objc_release(i8* %0) nounwind, !clang.imprecise_release !0
2271 ; CHECK-NEXT: tail call i8* @objc_retain(i8* %x) [[NUW]]
2272 ; CHECK-NEXT: call void @use_pointer(i8* %x)
2273 ; CHECK-NEXT: call void @use_pointer(i8* %x)
2274 ; CHECK-NEXT: tail call i8* @objc_retain(i8* %x) [[NUW]]
2275 ; CHECK-NEXT: call void @use_pointer(i8* %x)
2276 ; CHECK-NEXT: call void @use_pointer(i8* %x)
2277 ; CHECK-NEXT: call void @objc_release(i8* %x) [[NUW]]
2282 call i8* @objc_retain(i8* %x) nounwind
2283 call i8* @objc_retain(i8* %x) nounwind
2284 call void @use_pointer(i8* %x)
2285 call void @use_pointer(i8* %x)
2286 call void @objc_release(i8* %x) nounwind
2287 call i8* @objc_retain(i8* %x) nounwind
2288 call void @use_pointer(i8* %x)
2289 call void @use_pointer(i8* %x)
2290 call void @objc_release(i8* %x) nounwind
2300 ; CHECK-NEXT: call void @use_pointer(i8* %x)
2301 ; CHECK-NEXT: call void @use_pointer(i8* %x)
2306 call i8* @objc_retain(i8* %x) nounwind
2307 call i8* @objc_retain(i8* %x) nounwind
2308 call void @use_pointer(i8* %x)
2309 call void @use_pointer(i8* %x)
2310 call void @objc_release(i8* %x) nounwind
2311 call i8* @objc_retain(i8* %x) nounwind
2312 call void @objc_release(i8* %x) nounwind
2320 ; CHECK-NEXT: %0 = tail call i8* @objc_retain(i8* %x) [[NUW]]
2321 ; CHECK-NEXT: call void @use_pointer(i8* %x)
2322 ; CHECK-NEXT: call void @use_pointer(i8* %x)
2323 ; CHECK-NEXT: call void @objc_release(i8* %x) [[NUW]]
2328 %a = call i8* @objc_retain(i8* %x) nounwind
2329 call void @objc_release(i8* %x) nounwind
2330 %b = call i8* @objc_retain(i8* %x) nounwind
2331 call void @use_pointer(i8* %x)
2332 call void @use_pointer(i8* %x)
2333 call void @objc_release(i8* %x) nounwind
2346 ; CHECK: call i8* @objc_retain
2347 ; CHECK: call void @objc_release
2352 call i8* @objc_retain(i8* %s)
2353 call void @callee()
2354 call void @use_pointer(i8* %t)
2355 call void @objc_release(i8* %s)
2360 ; CHECK: call i8* @objc_retain
2361 ; CHECK-NOT: call i8* @objc_retain
2362 ; CHECK-NOT: call i8* @objc_release
2367 call i8* @objc_retain(i8* %t)
2368 call i8* @objc_retain(i8* %t)
2369 call void @callee()
2370 call void @use_pointer(i8* %s)
2371 call void @objc_release(i8* %t)
2381 call i8* @objc_retain(i8* %t)
2382 call void @callee()
2383 call void @use_pointer(i8* %s)
2384 call void @objc_release(i8* %t), !clang.imprecise_release !0
2394 call i8* @objc_retain(i8* %t)
2395 call void @callee()
2396 call void @use_pointer(i8* %s)
2397 call void @objc_release(i8* %t)
2407 call i8* @objc_retain(i8* %t)
2408 call void @callee()
2409 call void @use_pointer(i8* %s)
2410 call void @objc_release(i8* %t), !clang.imprecise_release !0
2422 call i8* @objc_retain(i8* %t)
2423 call void @callee()
2424 call void @use_pointer(i8* %t)
2425 call void @objc_release(i8* %t)
2440 call i8* @objc_retain(i8* %x)
2445 call void @objc_release(i8* %x)
2449 call void @objc_release(i8* %x)
2458 ; CHECK: tail call i8* @objc_retain(i8* %x)
2460 ; CHECK: call void @objc_release(i8* %x)
2467 call i8* @objc_retain(i8* %x)
2472 call void @objc_release(i8* %x)
2484 ; CHECK: tail call i8* @objc_retain(i8* %x)
2486 ; CHECK: call void @objc_release(i8* %x)
2493 call i8* @objc_retain(i8* %x)
2501 call void @objc_release(i8* %x)
2509 ; CHECK: call i8* @objc_autorelease(
2518 %c = call i8* @returner()
2519 %s = call i8* @objc_retainAutoreleasedReturnValue(i8* %c) nounwind
2524 %q = call i8* @objc_autorelease(i8* %retval) nounwind
2534 ; CHECK: call i8* @objc_autorelease(
2538 %t = call i8* @objc_autoreleasePoolPush()
2542 %c = call i8* @returner()
2543 %s = call i8* @objc_retainAutoreleasedReturnValue(i8* %c) nounwind
2548 call void @objc_autoreleasePoolPop(i8* %t)
2549 %q = call i8* @objc_autorelease(i8* %retval) nounwind
2560 ; CHECK: call i8* @objc_autoreleaseReturnValue(
2567 %c = call i8* @returner()
2568 %s = call i8* @objc_retainAutoreleasedReturnValue(i8* %c) nounwind
2573 %q = call i8* @objc_autoreleaseReturnValue(i8* %retval) nounwind
2581 ; CHECK: call i8* @objc_autoreleaseReturnValue(
2588 %c = call i8* @returner()
2589 %s = call i8* @objc_unsafeClaimAutoreleasedReturnValue(i8* %c) nounwind
2594 %q = call i8* @objc_autoreleaseReturnValue(i8* %retval) nounwind
2602 ; CHECK: tail call i8* @objc_retain(i8* %cond) [[NUW]]
2603 ; CHECK: tail call void @objc_release(i8* %call) [[NUW]]
2604 ; CHECK: tail call i8* @objc_retain(i8* %tmp8) [[NUW]]
2605 ; CHECK: tail call void @objc_release(i8* %cond) [[NUW]]
2607 define void @test66a(i8* %tmp5, i8* %bar, i1 %tobool, i1 %tobool1, i8* %call) {
2615 %cond = phi i8* [ %tmp5, %cond.true ], [ %call, %entry ]
2616 %tmp7 = tail call i8* @objc_retain(i8* %cond) nounwind
2617 tail call void @objc_release(i8* %call) nounwind
2619 %tmp9 = tail call i8* @objc_retain(i8* %tmp8) nounwind
2620 tail call void @objc_release(i8* %cond) nounwind
2625 ; CHECK: tail call i8* @objc_retain(i8* %cond) [[NUW]]
2626 ; CHECK: tail call void @objc_release(i8* %call) [[NUW]]
2627 ; CHECK: tail call i8* @objc_retain(i8* %tmp8) [[NUW]]
2628 ; CHECK: tail call void @objc_release(i8* %cond) [[NUW]]
2630 define void @test66b(i8* %tmp5, i8* %bar, i1 %tobool, i1 %tobool1, i8* %call) {
2638 %cond = phi i8* [ %tmp5, %cond.true ], [ %call, %entry ]
2639 %tmp7 = tail call i8* @objc_retain(i8* %cond) nounwind
2640 tail call void @objc_release(i8* %call) nounwind, !clang.imprecise_release !0
2642 %tmp9 = tail call i8* @objc_retain(i8* %tmp8) nounwind
2643 tail call void @objc_release(i8* %cond) nounwind
2648 ; CHECK: tail call i8* @objc_retain(i8* %cond) [[NUW]]
2649 ; CHECK: tail call void @objc_release(i8* %call) [[NUW]]
2650 ; CHECK: tail call i8* @objc_retain(i8* %tmp8) [[NUW]]
2651 ; CHECK: tail call void @objc_release(i8* %cond) [[NUW]]
2653 define void @test66c(i8* %tmp5, i8* %bar, i1 %tobool, i1 %tobool1, i8* %call) {
2661 %cond = phi i8* [ %tmp5, %cond.true ], [ %call, %entry ]
2662 %tmp7 = tail call i8* @objc_retain(i8* %cond) nounwind
2663 tail call void @objc_release(i8* %call) nounwind
2665 %tmp9 = tail call i8* @objc_retain(i8* %tmp8) nounwind, !clang.imprecise_release !0
2666 tail call void @objc_release(i8* %cond) nounwind
2671 ; CHECK: tail call i8* @objc_retain(i8* %cond) [[NUW]]
2672 ; CHECK: tail call void @objc_release(i8* %call) [[NUW]]
2673 ; CHECK: tail call i8* @objc_retain(i8* %tmp8) [[NUW]]
2674 ; CHECK: tail call void @objc_release(i8* %cond) [[NUW]]
2676 define void @test66d(i8* %tmp5, i8* %bar, i1 %tobool, i1 %tobool1, i8* %call) {
2684 %cond = phi i8* [ %tmp5, %cond.true ], [ %call, %entry ]
2685 %tmp7 = tail call i8* @objc_retain(i8* %cond) nounwind
2686 tail call void @objc_release(i8* %call) nounwind, !clang.imprecise_release !0
2688 %tmp9 = tail call i8* @objc_retain(i8* %tmp8) nounwind
2689 tail call void @objc_release(i8* %cond) nounwind, !clang.imprecise_release !0
2708 %1 = tail call i8* @objc_retain(i8* %0) nounwind
2709 …tail call void @llvm.dbg.value(metadata {}* %self, i64 0, metadata !DILocalVariable(scope: !2), me…
2710 …tail call void @llvm.dbg.value(metadata {}* %self, i64 0, metadata !DILocalVariable(scope: !2), me…
2731 …%call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str4,…
2736 tail call void @objc_release(i8* %0) nounwind
2754 %1 = tail call i8* @objc_retain(i8* %0) nounwind
2755 %puts = tail call i32 @puts(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @str, i64 0, i64 0))
2756 tail call void @objc_release(i8* %0) nounwind
2775 %0 = tail call i8* @objc_retain(i8* %x) nounwind
2781 %1 = tail call i8* @objc_retain(i8* %x) nounwind
2783 %call = tail call i8* (i8*, i8*, ...) @objc_msgSend(i8* %1, i8* %tmp5)
2784 tail call void @objc_release(i8* %1) nounwind, !clang.imprecise_release !0
2790 tail call void @objc_release(i8* %x) nounwind, !clang.imprecise_release !0
2797 ; CHECK-NOT: call i8* @objc_retain(i8* %tmp7)
2856 %tmp8 = call i8* @objc_retain(i8* %tmp7) nounwind
2862 %call5 = call i8* (i8*, i8*, ...) @objc_msgSend(i8* %tmp4, i8* %tmp3, %struct.__CFString* %tmp2)
2865 %call76 = call i8* (i8*, i8*, ...) @objc_msgSend(i8* %tmp6, i8* %tmp5, i8* %call5)
2866 %tmp9 = call i8* @objc_retain(i8* %call76) nounwind
2872 %call137 = call i8* (i8*, i8*, ...) @objc_msgSend(i8* %tmp6, i8* %tmp11, i8* %tmp9)
2874 %tmp10 = call i8* @objc_retain(i8* %call137) nounwind
2875 call void @objc_release(i8* null) nounwind
2876 %tmp12 = call i8* @objc_retain(i8* %call137) nounwind
2877 call void @objc_release(i8* null) nounwind
2883 …%call21 = call signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*)*)(i8* %call…
2891 %call2822 = call i8* (i8*, i8*, ...) @objc_msgSend(i8* %tmp27, i8* %tmp26, i8* %call137)
2893 %tmp14 = call i8* @objc_retain(i8* %call2822) nounwind
2894 call void @objc_release(i8* null) nounwind
2902 %call35 = call i8* (i8*, i8*, ...) @objc_msgSend(i8* %tmp34, i8* %tmp33)
2904 …%call3923 = call i8* (i8*, i8*, ...) @objc_msgSend(i8* %call35, i8* %tmp37, i8* %call2822, i32 sig…
2911 …%call51 = call %struct._NSRange bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to %struct._NSRange (i…
2915 …%call548 = call i8* (i8*, i8*, ...) @objc_msgSend(i8* %call137, i8* %tmp52, i64 %call513, i64 %cal…
2919 %call58 = call i8* (i8*, i8*, ...) @objc_msgSend(i8* %tmp57, i8* %tmp56)
2921 %call6110 = call i8* (i8*, i8*, ...) @objc_msgSend(i8* %call548, i8* %tmp59, i8* %call58)
2922 %tmp15 = call i8* @objc_retain(i8* %call6110) nounwind
2923 call void @objc_release(i8* %call137) nounwind
2925 …%call66 = call signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*, %1*)*)(i8* …
2931 %call7220 = call i8* (i8*, i8*, ...) @objc_msgSend(i8* %call6110, i8* %tmp70)
2932 %tmp16 = call i8* @objc_retain(i8* %call7220) nounwind
2933 call void @objc_release(i8* %call6110) nounwind
2941 …%call78 = call signext i8 (i8*, %struct._message_ref_t*, i8*, ...) %tmp18(i8* %call137, %struct._m…
2947 …%call84 = call signext i8 bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8 (i8*, i8*)*)(i8* %file…
2955 %call9218 = call i8* (i8*, i8*, ...) @objc_msgSend(i8* %tmp91, i8* %tmp90, i8* %filename.0.in)
2957 %tmp21 = call i8* @objc_retain(i8* %call9218) nounwind
2959 call void @objc_release(i8* %tmp22) nounwind
2963 %call97 = call i8* (i8*, i8*, ...) @objc_msgSend(i8* %tmp96, i8* %tmp95)
2965 …%call10119 = call i8* (i8*, i8*, ...) @objc_msgSend(i8* %call97, i8* %tmp99, i8* %call9218, i32 si…
2979 %call117 = call %1* @truncatedString(%1* %filename.0, i64 1034)
2983 …%call12113 = call i8* (i8*, i8*, ...) @objc_msgSend(i8* %tmp120, i8* %tmp119, %1* %call117, %1* %t…
2986 …%call12414 = call i8* (i8*, i8*, ...) @objc_msgSend(i8* %tmp123, i8* %tmp122, %1* %tmp114, i64 258…
2987 %tmp23 = call i8* @objc_retain(i8* %call12414) nounwind
2988 %tmp25 = call i8* @objc_autorelease(i8* %tmp23) nounwind
2998 %call13015 = call i8* (i8*, i8*, ...) @objc_msgSend(i8* %tmp129, i8* %tmp128, %4* %tmp127)
3000 %call13317 = call i8* (i8*, i8*, ...) @objc_msgSend(i8* %call13015, i8* %tmp131)
3007 call void @objc_release(i8* %tmp9) nounwind, !clang.imprecise_release !0
3009 call void @objc_release(i8* %tmp29) nounwind, !clang.imprecise_release !0
3011 call void @objc_release(i8* %tmp30) nounwind, !clang.imprecise_release !0
3013 call void @objc_release(i8* %tmp31) nounwind, !clang.imprecise_release !0
3014 call void @objc_release(i8* %tmp7) nounwind, !clang.imprecise_release !0
3027 ; CHECK-NEXT: call i32 @objc_sync_enter(i8* %x)
3028 ; CHECK-NEXT: call i32 @objc_sync_exit(i8* %x)
3032 call i8* @objc_retain(i8* %x)
3033 call i32 @objc_sync_enter(i8* %x)
3034 call i32 @objc_sync_exit(i8* %x)
3035 call void @objc_release(i8* %x), !clang.imprecise_release !0