compiler-rt/lib/sanitizer_common/sanitizer_syscalls_netbsd.inc (299 lines): - line 95: // FIXME: do some kind of PRE_READ for all syscall arguments (int(s) and such). - line 150: /* TODO */ - line 155: /* TODO */ - line 157: PRE_SYSCALL(compat_43_ocreat)(void *path_, long long mode_) { /* TODO */ } - line 159: /* TODO */ - line 215: /* TODO */ - line 219: /* TODO */ - line 254: /* TODO */ - line 258: /* TODO */ - line 262: /* TODO */ - line 266: /* TODO */ - line 272: /* TODO */ - line 276: /* TODO */ - line 509: PRE_SYSCALL(compat_43_stat43)(void *path_, void *ub_) { /* TODO */ } - line 511: /* TODO */ - line 515: PRE_SYSCALL(compat_43_lstat43)(void *path_, void *ub_) { /* TODO */ } - line 517: /* TODO */ - line 561: /* TODO */ - line 565: /* TODO */ - line 570: /* TODO */ - line 574: /* TODO */ - line 616: PRE_SYSCALL(compat_13_sigpending13)(void) { /* TODO */ } - line 617: POST_SYSCALL(compat_13_sigpending13)(long long res) { /* TODO */ } - line 618: PRE_SYSCALL(compat_13_sigaltstack13)(void *nss_, void *oss_) { /* TODO */ } - line 620: /* TODO */ - line 628: PRE_SYSCALL(compat_12_oreboot)(long long opt_) { /* TODO */ } - line 629: POST_SYSCALL(compat_12_oreboot)(long long res, long long opt_) { /* TODO */ } - line 744: PRE_SYSCALL(compat_43_fstat43)(long long fd_, void *sb_) { /* TODO */ } - line 746: /* TODO */ - line 750: /* TODO */ - line 754: /* TODO */ - line 756: PRE_SYSCALL(compat_43_ogetpagesize)(void) { /* TODO */ } - line 757: POST_SYSCALL(compat_43_ogetpagesize)(long long res) { /* TODO */ } - line 758: PRE_SYSCALL(compat_12_msync)(void *addr_, long long len_) { /* TODO */ } - line 760: /* TODO */ - line 771: /* TODO */ - line 776: /* TODO */ - line 841: /* TODO */ - line 845: /* TODO */ - line 847: PRE_SYSCALL(compat_43_owait)(void) { /* TODO */ } - line 848: POST_SYSCALL(compat_43_owait)(long long res) { /* TODO */ } - line 849: PRE_SYSCALL(compat_12_oswapon)(void *name_) { /* TODO */ } - line 850: POST_SYSCALL(compat_12_oswapon)(long long res, void *name_) { /* TODO */ } - line 851: PRE_SYSCALL(compat_50_getitimer)(long long which_, void *itv_) { /* TODO */ } - line 853: /* TODO */ - line 856: /* TODO */ - line 860: /* TODO */ - line 863: /* TODO */ - line 867: /* TODO */ - line 869: PRE_SYSCALL(compat_43_ogetdtablesize)(void) { /* TODO */ } - line 870: POST_SYSCALL(compat_43_ogetdtablesize)(long long res) { /* TODO */ } - line 876: /* TODO */ - line 880: /* TODO */ - line 890: /* TODO */ - line 894: /* TODO */ - line 908: /* TODO */ - line 912: /* TODO */ - line 924: /* TODO */ - line 928: /* TODO */ - line 938: /* TODO */ - line 942: /* TODO */ - line 946: /* TODO */ - line 950: /* TODO */ - line 952: PRE_SYSCALL(compat_13_sigreturn13)(void *sigcntxp_) { /* TODO */ } - line 954: /* TODO */ - line 987: /* TODO */ - line 991: /* TODO */ - line 993: PRE_SYSCALL(compat_43_osigblock)(long long mask_) { /* TODO */ } - line 994: POST_SYSCALL(compat_43_osigblock)(long long res, long long mask_) { /* TODO */ } - line 995: PRE_SYSCALL(compat_43_osigsetmask)(long long mask_) { /* TODO */ } - line 997: /* TODO */ - line 999: PRE_SYSCALL(compat_13_sigsuspend13)(long long mask_) { /* TODO */ } - line 1001: /* TODO */ - line 1003: PRE_SYSCALL(compat_43_osigstack)(void *nss_, void *oss_) { /* TODO */ } - line 1005: /* TODO */ - line 1008: /* TODO */ - line 1012: /* TODO */ - line 1015: /* TODO */ - line 1019: /* TODO */ - line 1022: PRE_SYSCALL(compat_50_gettimeofday)(void *tp_, void *tzp_) { /* TODO */ } - line 1024: /* TODO */ - line 1026: PRE_SYSCALL(compat_50_getrusage)(long long who_, void *rusage_) { /* TODO */ } - line 1029: /* TODO */ - line 1033: /* TODO */ - line 1038: /* TODO */ - line 1093: PRE_SYSCALL(compat_50_settimeofday)(void *tv_, void *tzp_) { /* TODO */ } - line 1095: /* TODO */ - line 1111: /* TODO */ - line 1116: /* TODO */ - line 1148: PRE_SYSCALL(compat_43_otruncate)(void *path_, long long length_) { /* TODO */ } - line 1151: /* TODO */ - line 1154: /* TODO */ - line 1158: /* TODO */ - line 1235: PRE_SYSCALL(compat_50_utimes)(void *path_, void *tptr_) { /* TODO */ } - line 1237: /* TODO */ - line 1240: PRE_SYSCALL(compat_50_adjtime)(void *delta_, void *olddelta_) { /* TODO */ } - line 1242: /* TODO */ - line 1245: /* TODO */ - line 1249: /* TODO */ - line 1251: PRE_SYSCALL(compat_43_ogethostid)(void) { /* TODO */ } - line 1252: POST_SYSCALL(compat_43_ogethostid)(long long res) { /* TODO */ } - line 1253: PRE_SYSCALL(compat_43_osethostid)(long long hostid_) { /* TODO */ } - line 1255: /* TODO */ - line 1257: PRE_SYSCALL(compat_43_ogetrlimit)(long long which_, void *rlp_) { /* TODO */ } - line 1260: /* TODO */ - line 1262: PRE_SYSCALL(compat_43_osetrlimit)(long long which_, void *rlp_) { /* TODO */ } - line 1265: /* TODO */ - line 1268: /* TODO */ - line 1272: /* TODO */ - line 1278: /* TODO */ - line 1282: /* TODO */ - line 1284: PRE_SYSCALL(compat_43_oquota)(void) { /* TODO */ } - line 1285: POST_SYSCALL(compat_43_oquota)(long long res) { /* TODO */ } - line 1287: /* TODO */ - line 1291: /* TODO */ - line 1303: /* TODO */ - line 1307: /* TODO */ - line 1309: PRE_SYSCALL(compat_20_statfs)(void *path_, void *buf_) { /* TODO */ } - line 1311: /* TODO */ - line 1313: PRE_SYSCALL(compat_20_fstatfs)(long long fd_, void *buf_) { /* TODO */ } - line 1315: /* TODO */ - line 1319: PRE_SYSCALL(compat_30_getfh)(void *fname_, void *fhp_) { /* TODO */ } - line 1321: /* TODO */ - line 1324: /* TODO */ - line 1328: /* TODO */ - line 1331: /* TODO */ - line 1335: /* TODO */ - line 1337: PRE_SYSCALL(compat_09_ouname)(void *name_) { /* TODO */ } - line 1338: POST_SYSCALL(compat_09_ouname)(long long res, void *name_) { /* TODO */ } - line 1339: PRE_SYSCALL(sysarch)(long long op_, void *parms_) { /* TODO */ } - line 1340: POST_SYSCALL(sysarch)(long long res, long long op_, void *parms_) { /* TODO */ } - line 1344: /* TODO */ - line 1349: /* TODO */ - line 1351: PRE_SYSCALL(__futex_set_robust_list)(void *head_, long long len_) { /* TODO */ } - line 1354: /* TODO */ - line 1358: /* TODO */ - line 1362: /* TODO */ - line 1367: /* TODO */ - line 1372: /* TODO */ - line 1381: /* TODO */ - line 1386: /* TODO */ - line 1394: /* TODO */ - line 1398: /* TODO */ - line 1432: PRE_SYSCALL(compat_30_ntp_gettime)(void *ntvp_) { /* TODO */ } - line 1433: POST_SYSCALL(compat_30_ntp_gettime)(long long res, void *ntvp_) { /* TODO */ } - line 1451: /* TODO */ - line 1455: /* TODO */ - line 1458: /* TODO */ - line 1462: /* TODO */ - line 1464: PRE_SYSCALL(lfs_segclean)(void *fsidp_, long long segment_) { /* TODO */ } - line 1466: /* TODO */ - line 1468: PRE_SYSCALL(compat_50_lfs_segwait)(void *fsidp_, void *tv_) { /* TODO */ } - line 1470: /* TODO */ - line 1472: PRE_SYSCALL(compat_12_stat12)(void *path_, void *ub_) { /* TODO */ } - line 1474: /* TODO */ - line 1476: PRE_SYSCALL(compat_12_fstat12)(long long fd_, void *sb_) { /* TODO */ } - line 1478: /* TODO */ - line 1480: PRE_SYSCALL(compat_12_lstat12)(void *path_, void *ub_) { /* TODO */ } - line 1482: /* TODO */ - line 1504: /* TODO */ - line 1509: /* TODO */ - line 1529: /* TODO */ - line 1533: /* TODO */ - line 1629: PRE_SYSCALL(compat_50_futimes)(long long fd_, void *tptr_) { /* TODO */ } - line 1631: /* TODO */ - line 1658: /* TODO */ - line 1663: /* TODO */ - line 1676: /* TODO */ - line 1681: /* TODO */ - line 1706: /* TODO */ - line 1710: /* TODO */ - line 1749: /* TODO */ - line 1753: /* TODO */ - line 1765: /* TODO */ - line 1769: /* TODO */ - line 1772: /* TODO */ - line 1776: /* TODO */ - line 1779: /* TODO */ - line 1783: /* TODO */ - line 1798: /* TODO */ - line 1803: /* TODO */ - line 1806: /* TODO */ - line 1810: /* TODO */ - line 1816: PRE_SYSCALL(compat_50_nanosleep)(void *rqtp_, void *rmtp_) { /* TODO */ } - line 1818: /* TODO */ - line 1827: /* TODO */ - line 1831: /* TODO */ - line 1839: PRE_SYSCALL(modctl)(long long cmd_, void *arg_) { /* TODO */ } - line 1840: POST_SYSCALL(modctl)(long long res, long long cmd_, void *arg_) { /* TODO */ } - line 1962: /* TODO */ - line 1967: /* TODO */ - line 1972: /* TODO */ - line 1977: /* TODO */ - line 2002: PRE_SYSCALL(swapctl)(long long cmd_, void *arg_, long long misc_) { /* TODO */ } - line 2005: /* TODO */ - line 2008: /* TODO */ - line 2012: /* TODO */ - line 2046: PRE_SYSCALL(compat_50_lutimes)(void *path_, void *tptr_) { /* TODO */ } - line 2048: /* TODO */ - line 2057: PRE_SYSCALL(compat_30___stat13)(void *path_, void *ub_) { /* TODO */ } - line 2059: /* TODO */ - line 2061: PRE_SYSCALL(compat_30___fstat13)(long long fd_, void *sb_) { /* TODO */ } - line 2063: /* TODO */ - line 2065: PRE_SYSCALL(compat_30___lstat13)(void *path_, void *ub_) { /* TODO */ } - line 2067: /* TODO */ - line 2150: /* TODO */ - line 2154: /* TODO */ - line 2175: PRE_SYSCALL(compat_16___sigreturn14)(void *sigcntxp_) { /* TODO */ } - line 2177: /* TODO */ - line 2185: PRE_SYSCALL(compat_30_fhopen)(void *fhp_, long long flags_) { /* TODO */ } - line 2187: /* TODO */ - line 2189: PRE_SYSCALL(compat_30_fhstat)(void *fhp_, void *sb_) { /* TODO */ } - line 2191: /* TODO */ - line 2193: PRE_SYSCALL(compat_20_fhstatfs)(void *fhp_, void *buf_) { /* TODO */ } - line 2195: /* TODO */ - line 2199: /* TODO */ - line 2204: /* TODO */ - line 2208: /* TODO */ - line 2212: /* TODO */ - line 2216: /* TODO */ - line 2220: /* TODO */ - line 2307: /* TODO */ - line 2311: /* TODO */ - line 2355: /* TODO */ - line 2360: /* TODO */ - line 2362: PRE_SYSCALL(compat_60_sa_stacks)(long long num_, void *stacks_) { /* TODO */ } - line 2365: /* TODO */ - line 2367: PRE_SYSCALL(compat_60_sa_enable)(void) { /* TODO */ } - line 2368: POST_SYSCALL(compat_60_sa_enable)(long long res) { /* TODO */ } - line 2369: PRE_SYSCALL(compat_60_sa_setconcurrency)(long long concurrency_) { /* TODO */ } - line 2372: /* TODO */ - line 2374: PRE_SYSCALL(compat_60_sa_yield)(void) { /* TODO */ } - line 2375: POST_SYSCALL(compat_60_sa_yield)(long long res) { /* TODO */ } - line 2376: PRE_SYSCALL(compat_60_sa_preempt)(long long sa_id_) { /* TODO */ } - line 2378: /* TODO */ - line 2411: /* TODO */ - line 2416: /* TODO */ - line 2511: /* TODO */ - line 2515: /* TODO */ - line 2582: /* TODO */ - line 2587: /* TODO */ - line 2592: /* TODO */ - line 2597: /* TODO */ - line 2601: /* TODO */ - line 2605: /* TODO */ - line 2655: /* TODO */ - line 2660: /* TODO */ - line 2694: /* TODO */ - line 2699: /* TODO */ - line 2703: /* TODO */ - line 2707: /* TODO */ - line 2810: /* TODO */ - line 2814: /* TODO */ - line 2840: PRE_SYSCALL(fremovexattr)(long long fd_, void *name_) { /* TODO */ } - line 2842: /* TODO */ - line 2844: PRE_SYSCALL(compat_50___stat30)(void *path_, void *ub_) { /* TODO */ } - line 2846: /* TODO */ - line 2848: PRE_SYSCALL(compat_50___fstat30)(long long fd_, void *sb_) { /* TODO */ } - line 2850: /* TODO */ - line 2852: PRE_SYSCALL(compat_50___lstat30)(void *path_, void *ub_) { /* TODO */ } - line 2854: /* TODO */ - line 2865: PRE_SYSCALL(compat_30___fhstat30)(void *fhp_, void *sb_) { /* TODO */ } - line 2867: /* TODO */ - line 2869: PRE_SYSCALL(compat_50___ntp_gettime30)(void *ntvp_) { /* TODO */ } - line 2871: /* TODO */ - line 2950: /* TODO */ - line 2954: /* TODO */ - line 3084: PRE_SYSCALL(__lfs_segwait50)(void *fsidp_, void *tv_) { /* TODO */ } - line 3086: /* TODO */ - line 3196: /* TODO */ - line 3200: /* TODO */ - line 3564: PRE_SYSCALL(fexecve)(long long fd_, void *argp_, void *envp_) { /* TODO */ } - line 3566: /* TODO */ - line 3854: /* TODO */ - line 3858: /* TODO */ - line 3861: /* TODO */ - line 3865: /* TODO */ - line 3867: PRE_SYSCALL(__acl_delete_link)(void *path_, long long type_) { /* TODO */ } - line 3869: /* TODO */ - line 3872: /* TODO */ - line 3876: /* TODO */ - line 3879: /* TODO */ - line 3883: /* TODO */ - line 3886: /* TODO */ - line 3890: /* TODO */ - line 3893: /* TODO */ - line 3897: /* TODO */ - line 3900: /* TODO */ - line 3904: /* TODO */ - line 3906: PRE_SYSCALL(__acl_delete_file)(void *path_, long long type_) { /* TODO */ } - line 3908: /* TODO */ - line 3910: PRE_SYSCALL(__acl_delete_fd)(long long filedes_, long long type_) { /* TODO */ } - line 3913: /* TODO */ - line 3916: /* TODO */ - line 3920: /* TODO */ - line 3924: /* TODO */ - line 3928: /* TODO */ - line 3930: PRE_SYSCALL(lpathconf)(void *path_, long long name_) { /* TODO */ } - line 3932: /* TODO */ compiler-rt/utils/generate_netbsd_syscalls.awk (150 lines): - line 470: pcmd("// FIXME: do some kind of PRE_READ for all syscall arguments (int(s) and such).") - line 598: pcmd("/* TODO */") - line 600: pcmd("/* TODO */") - line 654: pcmd("/* TODO */") - line 686: pcmd("/* TODO */") - line 688: pcmd("/* TODO */") - line 692: pcmd("/* TODO */") - line 896: pcmd("/* TODO */") - line 900: pcmd("/* TODO */") - line 934: pcmd("/* TODO */") - line 938: pcmd("/* TODO */") - line 980: pcmd("/* TODO */") - line 982: pcmd("/* TODO */") - line 986: pcmd("/* TODO */") - line 1101: pcmd("/* TODO */") - line 1103: pcmd("/* TODO */") - line 1105: pcmd("/* TODO */") - line 1107: pcmd("/* TODO */") - line 1111: pcmd("/* TODO */") - line 1155: pcmd("/* TODO */") - line 1157: pcmd("/* TODO */") - line 1159: pcmd("/* TODO */") - line 1161: pcmd("/* TODO */") - line 1163: pcmd("/* TODO */") - line 1165: pcmd("/* TODO */") - line 1167: pcmd("/* TODO */") - line 1171: pcmd("/* TODO */") - line 1175: pcmd("/* TODO */") - line 1181: pcmd("/* TODO */") - line 1191: pcmd("/* TODO */") - line 1195: pcmd("/* TODO */") - line 1197: pcmd("/* TODO */") - line 1199: pcmd("/* TODO */") - line 1223: pcmd("/* TODO */") - line 1225: pcmd("/* TODO */") - line 1227: pcmd("/* TODO */") - line 1229: pcmd("/* TODO */") - line 1231: pcmd("/* TODO */") - line 1233: pcmd("/* TODO */") - line 1235: pcmd("/* TODO */") - line 1237: pcmd("/* TODO */") - line 1239: pcmd("/* TODO */") - line 1241: pcmd("/* TODO */") - line 1293: pcmd("/* TODO */") - line 1299: pcmd("/* TODO */") - line 1327: pcmd("/* TODO */") - line 1329: pcmd("/* TODO */") - line 1395: pcmd("/* TODO */") - line 1397: pcmd("/* TODO */") - line 1399: pcmd("/* TODO */") - line 1401: pcmd("/* TODO */") - line 1403: pcmd("/* TODO */") - line 1405: pcmd("/* TODO */") - line 1407: pcmd("/* TODO */") - line 1409: pcmd("/* TODO */") - line 1413: pcmd("/* TODO */") - line 1415: pcmd("/* TODO */") - line 1417: pcmd("/* TODO */") - line 1421: pcmd("/* TODO */") - line 1423: pcmd("/* TODO */") - line 1425: pcmd("/* TODO */") - line 1427: pcmd("/* TODO */") - line 1429: pcmd("/* TODO */") - line 1431: pcmd("/* TODO */") - line 1433: pcmd("/* TODO */") - line 1435: pcmd("/* TODO */") - line 1437: pcmd("/* TODO */") - line 1439: pcmd("/* TODO */") - line 1441: pcmd("/* TODO */") - line 1443: pcmd("/* TODO */") - line 1445: pcmd("/* TODO */") - line 1447: pcmd("/* TODO */") - line 1469: pcmd("/* TODO */") - line 1479: pcmd("/* TODO */") - line 1481: pcmd("/* TODO */") - line 1483: pcmd("/* TODO */") - line 1485: pcmd("/* TODO */") - line 1487: pcmd("/* TODO */") - line 1489: pcmd("/* TODO */") - line 1491: pcmd("/* TODO */") - line 1507: pcmd("/* TODO */") - line 1527: pcmd("/* TODO */") - line 1589: pcmd("/* TODO */") - line 1608: pcmd("/* TODO */") - line 1610: pcmd("/* TODO */") - line 1628: pcmd("/* TODO */") - line 1648: pcmd("/* TODO */") - line 1654: pcmd("/* TODO */") - line 1656: pcmd("/* TODO */") - line 1658: pcmd("/* TODO */") - line 1664: pcmd("/* TODO */") - line 1666: pcmd("/* TODO */") - line 1670: pcmd("/* TODO */") - line 1678: pcmd("/* TODO */") - line 1686: pcmd("/* TODO */") - line 1780: pcmd("/* TODO */") - line 1782: pcmd("/* TODO */") - line 1804: pcmd("/* TODO */") - line 1806: pcmd("/* TODO */") - line 1834: pcmd("/* TODO */") - line 1838: pcmd("/* TODO */") - line 1840: pcmd("/* TODO */") - line 1842: pcmd("/* TODO */") - line 1891: pcmd("/* TODO */") - line 1901: pcmd("/* TODO */") - line 1907: pcmd("/* TODO */") - line 1909: pcmd("/* TODO */") - line 1911: pcmd("/* TODO */") - line 1913: pcmd("/* TODO */") - line 1915: pcmd("/* TODO */") - line 1917: pcmd("/* TODO */") - line 1985: pcmd("/* TODO */") - line 2011: pcmd("/* TODO */") - line 2013: pcmd("/* TODO */") - line 2015: pcmd("/* TODO */") - line 2017: pcmd("/* TODO */") - line 2019: pcmd("/* TODO */") - line 2021: pcmd("/* TODO */") - line 2031: pcmd("/* TODO */") - line 2069: pcmd("/* TODO */") - line 2119: pcmd("/* TODO */") - line 2121: pcmd("/* TODO */") - line 2123: pcmd("/* TODO */") - line 2161: pcmd("/* TODO */") - line 2187: pcmd("/* TODO */") - line 2189: pcmd("/* TODO */") - line 2267: pcmd("/* TODO */") - line 2293: pcmd("/* TODO */") - line 2295: pcmd("/* TODO */") - line 2297: pcmd("/* TODO */") - line 2299: pcmd("/* TODO */") - line 2305: pcmd("/* TODO */") - line 2307: pcmd("/* TODO */") - line 2373: pcmd("/* TODO */") - line 2452: pcmd("/* TODO */") - line 2539: pcmd("/* TODO */") - line 2819: pcmd("/* TODO */") - line 3039: pcmd("/* TODO */") - line 3041: pcmd("/* TODO */") - line 3043: pcmd("/* TODO */") - line 3045: pcmd("/* TODO */") - line 3047: pcmd("/* TODO */") - line 3049: pcmd("/* TODO */") - line 3051: pcmd("/* TODO */") - line 3053: pcmd("/* TODO */") - line 3055: pcmd("/* TODO */") - line 3057: pcmd("/* TODO */") - line 3059: pcmd("/* TODO */") - line 3061: pcmd("/* TODO */") - line 3063: pcmd("/* TODO */") llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (84 lines): - line 239: // TODO: Should load to s16 be legal? Most loads extend to 32-bits, but we - line 246: // FIXME: Private element size. - line 287: // TODO: We should be able to widen loads if the alignment is high enough, but - line 402: // TODO: Could check dereferenceable for less aligned cases. - line 516: // TODO: All multiples of 32, vectors of pointers, all v2s16 pairs, more - line 592: // FIXME: DAG expansion gets better results. The widening uses the smaller - line 635: // TODO: .scalarize(0) - line 798: // TODO: Do we need to clamp maximum bitwidth? - line 816: // TODO: Split s1->s64 during regbankselect for VALU. - line 907: // FIXME: fpow has a selection pattern that should move to custom lowering. - line 969: // FIXME: Fixing non-power-of-2 before clamp is workaround for - line 993: // TODO: Should have same legality without v_perm_b32 - line 997: // FIXME: Fixing non-power-of-2 before clamp is workaround for - line 1065: // TODO: May be able to widen depending on alignment etc. - line 1083: // TODO: Refine based on subtargets which support unaligned access or 128-bit - line 1085: // TODO: Unsupported flat for SI. - line 1092: // TODO: Does this help compile time at all? - line 1127: // TODO: Should generalize bitcast action into coerce, which will also cover - line 1151: // FIXME: load/store narrowing should be moved to lower action - line 1192: // FIXME: Handle widened to power of 2 results better. This ends - line 1194: // FIXME: 3 element stores scalarized on SI - line 1210: // FIXME: Refine when odd breakdowns handled - line 1220: // FIXME: We could probably handle weird extending loads better. - line 1228: // to the widest type. TODO: Account for alignment. As-is it - line 1246: // FIXME: Unaligned accesses not lowered. - line 1269: // TODO: Should generalize bitcast action into coerce, which will also cover - line 1305: // TODO: Pointer types, any 32-bit or 64-bit vector - line 1325: // TODO: Only the low 4/5/6 bits of the shift amount are observed, so we can - line 1336: // TODO: Support 16-bit shift amounts for all types - line 1409: // TODO: Clamp elements for 64-bit vectors? - line 1425: // FIXME: Doesn't handle extract of illegal sizes. - line 1430: // TODO: verify immediate offset here since lower only works with - line 1435: // FIXME: Multiples of 16 should not be legal. - line 1468: // FIXME: Should probably widen s1 vectors straight to s32 - line 1488: // FIXME: Clamp maximum size - line 1492: .clampMaxNumElements(1, S16, 2) // TODO: Make 4? - line 1495: // TODO: Don't fully scalarize v2s16 pieces? Or combine out thosse - line 1529: // TODO: Only do this on targets with legal s16 shifts - line 1552: // TODO: Use 16-bit shifts if legal for 8-bit values? - line 1611: // TODO: Only Try to form v2s16 with legal packed instructions. - line 1650: // TODO: Verify V_BFI_B32 is generated from expanded bit ops - line 1661: // TODO: Implement - line 1767: // FIXME: Use inline constants (src_{shared, private}_base) instead of - line 1801: // TODO: can we be smarter about machine pointer info? - line 1829: // TODO: Avoid reloading from the queue ptr for each cast, or at least each - line 1852: // FIXME: This is a bit ugly due to creating a merge of 2 pointers to - line 1902: // TODO: Should we allow mismatched types but matching sizes in merges to - line 1924: // TODO: Should this propagate fast-math-flags? - line 1960: // TODO: Should this propagate fast-math-flags? - line 2009: // TODO: Should this use extract since the low half is unused? - line 2068: // TODO: Should this propagate fast-math-flags? - line 2105: // TODO: Copied from DAG implementation. Verify logic and document how this - line 2196: // TODO: Should move some of this into LegalizerHelper. - line 2198: // TODO: Promote dynamic indexing of s16 to s32 - line 2200: // FIXME: Artifact combiner probably should have replaced the truncated - line 2228: // TODO: Should move some of this into LegalizerHelper. - line 2230: // TODO: Promote dynamic indexing of s16 to s32 - line 2232: // FIXME: Artifact combiner probably should have replaced the truncated - line 2397: // TODO: We could emit code to handle the initialization somewhere. - line 2566: // TODO: Always legal with future ftz flag. - line 2567: // FIXME: Do we need just output? - line 2707: // TODO: We can avoid the neg on the fract? The input sign to fract - line 2737: // TODO: This should probably be a bitcast action in LegalizerHelper. - line 2838: // TODO: Should we try to emit this once in the entry block? - line 2882: return false; // TODO: Handle these - line 3067: // TODO: Here and below portions of the code can be enclosed into if/endif. - line 3409: // FIXME: Doesn't correctly model the FP mode switch, and the FP operations - line 3558: // FIXME: Why do we handle this one but not other removed instructions? - line 3651: // FIXME: This should be nuw - line 3941: // FIXME: Verifier should enforce 1 MMO for these intrinsics. - line 4041: // FIXME: G_TRUNC should work, but legalization currently fails - line 4313: // TODO: Do we need to guard against already legalized intrinsics? - line 4368: // TODO: Allow atomic swap and bit ops for v2s16/v4s16 - line 4414: // TODO: Change intrinsic opcode and remove operand instead or replacing - line 4496: // TODO: Handle dmask trim - line 4554: // TODO: Should we change s16 case to s32 or <2 x s16>? - line 4563: // TODO: For TFE with d16, if we used a TFE type that was a multiple of <2 x - line 4582: // TODO: Make sure the TFE operand bit is set. - line 4632: // TODO: We don't really need to use load s32 elements. We would only need one - line 4709: // FIXME: We don't really need this intermediate instruction. The intrinsic - line 4715: // FIXME: When intrinsic definition is fixed, this should have an MMO already. - line 4716: // TODO: Should this use datalayout alignment? - line 4740: // TODO: Move to selection - line 4965: // FIXME: IRTranslator should probably not do this clang/lib/AST/ASTImporter.cpp (82 lines): - line 88: // FIXME: Improve error texts. - line 136: // FIXME: Other flags or attrs? - line 274: // FIXME: Check if a better solution is possible. - line 346: // FIXME: DependentSizedExtVectorType - line 355: // FIXME: DependentTypeOfExprType - line 364: // FIXME: DependentDecltypeType - line 556: // FIXME: MSAsmStmt - line 557: // FIXME: SEHExceptStmt - line 558: // FIXME: SEHFinallyStmt - line 559: // FIXME: SEHTryStmt - line 560: // FIXME: SEHLeaveStmt - line 561: // FIXME: CapturedStmt - line 565: // FIXME: MSDependentExistsStmt - line 1066: // FIXME: for Char16, Char32, and NullPtr, make sure that the "to" - line 1069: // FIXME: for ObjCId, ObjCClass, and ObjCSel, make sure that the "to" - line 1092: // FIXME: If not in C++, shall we translate to the C equivalent of - line 1125: // FIXME: Check for blocks support in "to" context. - line 1135: // FIXME: Check for C++ support in "to" context. - line 1145: // FIXME: Check for C++0x support in "to" context. - line 1155: // FIXME: Check for C++ support in "to" context. - line 1242: // FIXME: What happens if we're importing a function without a prototype - line 1356: // FIXME: Make sure that the "to" context supports C++0x! - line 1384: // FIXME: Make sure that the "to" context supports C++11! - line 1408: // FIXME: Make sure that the "to" context supports C++17! - line 1430: // FIXME: ASTContext::getInjectedClassNameType is not suitable for AST reading - line 1658: // FIXME: We could support these constructs by importing a different type of - line 1806: // FIXME Clients of the ASTImporter should be able to choose an - line 2103: // FIXME: Also import the initializer value. - line 2106: // FIXME: Other bits to merge? - line 2136: // FIXME: we might need to merge the number of positive or negative bits - line 2157: // FIXME: Do not forget to remove this and use only 'import'. - line 2334: // FIXME: Not testable. - line 2481: // FIXME Handle redecl chain. When you do that make consistent changes - line 2507: // FIXME: ToUnderlyingType is not used. - line 2822: // FIXME: Structural equivalence check should check for same - line 2913: // FIXME: The previous type is cleared but not removed from - line 3251: // FIXME handle member function templates (TK_MemberSpecialization) similarly? - line 3283: // FIXME: Check for overloading more carefully, e.g., by boosting - line 3332: // FIXME Merge the functions into one decl. - line 3488: // FIXME Probably we should merge exception specifications. E.g. In the - line 3568: // FIXME: Other bits to merge? - line 3649: // FIXME: warning message? - line 3658: // FIXME: Why is this case not handled with calling HandleNameConflict? - line 3731: // FIXME: Why is this case not handled with calling HandleNameConflict? - line 3760: // FIXME here we leak `NamedChain` which is allocated before - line 3997: // FIXME Check for ODR error if the two definitions have - line 4005: // FIXME Diagnose ODR error if the two initializers are different? - line 4280: // FIXME: Any other bits we need to merge? - line 4302: // FIXME: When we decide to merge method definitions, we'll need to - line 4439: // FIXME: If we're merging, make sure that the protocol list is the same. - line 4496: // FIXME: If we're merging, make sure that the protocol list is the same. - line 4604: // FIXME: We return error here but the definition is already created - line 4742: // FIXME: We return error here but the definition is already created - line 4946: // FIXME: If we're merging, make sure that the protocol list is the same. - line 5158: // FIXME: It would be nice to have the location of the superclass - line 5217: // FIXME: Check property attributes, getters, setters, etc.? - line 5591: // FIXME: Import definition! - line 5655: // TODO Import instantiated default arguments. - line 5656: // TODO Import instantiated exception specifications. - line 5663: // FIXME HandleNameConflict - line 5808: // FIXME Check for ODR error if the two definitions have - line 5832: // FIXME: Value not used? - line 5874: // FIXME: Import definition! - line 5925: // FIXME: Check for specialization vs. instantiation errors. - line 5984: // FIXME: Use this update if VarTemplatePartialSpecializationDecl is fixed - line 6047: // FIXME Split this into a separate function. - line 6066: // TODO: handle conflicting names - line 7506: // FIXME: Should ManglingNumber get numbers associated with 'to' context? - line 8354: // FIXME: Handle BlockDecl when we implement importing BlockExpr in - line 8396: // FIXME: For now we just create a "trivial" type source info based - line 8542: // FIXME: Is there some kind of AttrVisitor to use here? - line 8663: // FIXME: Handle every attribute type that has arguments of type to import - line 8752: // FIXME: AST may contain remaining references to the failed object. - line 8773: //FIXME Should we remove these Decls from ImportedDecls? - line 8778: // FIXME Should we remove these Decls from the LookupTable, - line 8789: // FIXME: Handle the "already imported with error" case. We can get here - line 9244: // FIXME: We probably want to use getVirtualFile(), so we don't hit the - line 9246: // FIXME: We definitely want to re-use the existing MemoryBuffer, rather - line 9250: // FIXME: The filename may be a virtual name that does probably not - line 9260: // FIXME: We want to re-use the existing MemoryBuffer! - line 9340: // FIXME: assert? - line 9472: // FIXME: STATICS! llvm/lib/Transforms/IPO/AttributorAttributes.cpp (75 lines): - line 199: /// TODO: This could probably live somewhere more prominantly if it doesn't - line 504: // TODO: If we know we visited all returned values, thus no are assumed - line 610: // TODO: If we know we visited all incoming values, thus no are assumed - line 716: // FIXME: Currently, recursive branches are not handled. For example, we - line 1194: // TODO: Use range information. - line 1243: // TODO: This is not great as we look at the pointer type. However, it - line 1259: // TODO: Approximate in case we know the direction of the recurrence. - line 1302: // TODO: Allow some call uses - line 1411: // TODO: Once we have call site specific value information we can provide - line 1500: // TODO: Once we have call site specific value information we can provide - line 1752: // TODO: Once we have call site specific value information we can provide - line 1898: // TODO: Once we have call site specific value information we can provide - line 1965: // TODO: Once we have call site specific value information we can provide - line 2047: // TODO: Once we have call site specific value information we can provide - line 2348: // TODO: We should build a call graph ourselves to enable this in the module - line 2420: // TODO: Once we have call site specific value information we can provide - line 2472: // TODO: Expand it to not only check constant values. - line 2895: // TODO: Once we have call site specific value information we can provide - line 2916: // TODO: Return the number of reachable queries. - line 2987: // TODO: Implement this. - line 3039: // TODO: add no-alias but make sure it doesn't break synchronization by - line 3146: // TODO: We should inspect the operands and allow those that cannot alias - line 3196: // TODO: AbstractCallSite - line 3257: /// FIXME: add more support. - line 3297: // TODO: Once we have call site specific value information we can provide - line 3524: // TODO: Once we have call site specific value information we can provide - line 3630: // TODO: Rewrite the signature to return void? - line 3933: // TODO: look for (assumed) UB to backwards propagate "deadness". - line 4018: // TODO: Once we have call site specific value information we can provide - line 4122: // TODO: Add *_globally support - line 4165: // TODO: track globally. - line 4345: // TODO: This is a HACK to avoid getPointerAlignment to introduce a ptr2int - line 4399: // TODO: Provide a helper to determine the implied ABI alignment and check in - line 4476: // TODO: If we know we visited all incoming values, thus no are assumed - line 4634: // TODO: Once we have call site specific value information we can provide - line 4708: // TODO: Once we have memory behavior attributes we should use them here. - line 4952: // TODO: we could do this in a more sophisticated way inside - line 5040: // TODO: Once we have call site specific value information we can provide - line 5110: // FIXME: Add a typecast support. - line 5327: // FIXME: This is a hack to prevent us from propagating function poiner in - line 5343: // TODO: We probably need to verify synchronization is not an issue, e.g., - line 5473: // TODO: add other stuffs - line 5645: // TODO: Look the instruction and check recursively. - line 6139: // TODO: Allow multi exit functions that have different free calls. - line 6329: /// TODO: This is merely a stub for now as we should manage a mapping as well. - line 6352: // TODO: Do this for call site arguments (probably also other values) as well. - line 6374: // TODO: We can additionally analyze the accesses in the callee to create - line 6602: // TODO: For now we expand the privatization type to the fullest which can - line 6706: // TODO: Be smarter about new allocas escaping into tail calls. - line 6788: // TODO: We can privatize more than arguments. - line 6884: // TODO: We can privatize more than arguments. - line 6900: // TODO: We can privatize more than arguments. - line 7045: // TODO: Make IgnoreSubsumingPositions a property of an IRAttribute so we - line 7060: // TODO: Pointer arguments are not supported on vectors of pointers yet. - line 7064: // TODO: From readattrs.ll: "inalloca parameters are always - line 7109: // TODO: Once we have call site specific value information we can provide - line 7199: // TODO: Once we have call site specific value information we can provide - line 7352: // TODO: Handle all atomics and other side-effect operations we know of. - line 7585: // TODO: Add pointers for argmemonly and globals to improve the results of - line 7700: // TODO: recognize the TBAA used for constant accesses. - line 7705: // TODO: For now we do not treat byval arguments as local copies performed - line 7934: // TODO: Once we have call site specific value information we can provide - line 8100: // TODO: Make SCEV use Attributor assumption. - line 8136: // TODO: If there exists a known range which containts assumed range, we - line 8312: // TODO: Allow non integers as well. - line 8332: // TODO: Track a known state too. - line 8342: // TODO: Allow non integers as well. - line 8395: // TODO: Allow non integers as well. - line 8438: // TODO: Track a known state too. - line 8483: // TODO: Add other instructions - line 8490: // TODO: Check how the range evolves and if we stripped anything, see also - line 8717: // TODO: we should look at nsw and nuw keywords to handle operations - line 8823: // TODO: make use of undef flag to limit potential values aggressively. - line 9015: // TODO: make use of undef flag to limit potential values aggressively. - line 9528: // TODO: Be more specific with the unknown callee. llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp (68 lines): - line 301: // FIXME: Currently we cannot really respect all IEEE predicates due to libgcc - line 506: // FIXME: ISD::SELECT, ISD::SELECT_CC - line 615: // TODO: We can probably do more work on calculating the known bits and - line 631: // TODO: Can we merge SelectionDAG::GetDemandedBits into this? - line 632: // TODO: Under what circumstances can we create nodes? Constant folding? - line 689: // TODO - bigendian once we have test coverage. - line 774: // FIXME: We're limiting to integer types here, but this should also work - line 909: // TODO: We can probably do more work on calculating the known bits and - line 987: // TODO: Call SimplifyDemandedBits for non-constant demanded elements. - line 1424: // FIXME: We're limiting to integer types here, but this should also work - line 1431: // TODO: Should we check for other forms of sign-bit comparisons? - line 1454: // TODO - support non-uniform vector amounts. - line 1475: // TODO - support non-uniform vector amounts. - line 1497: // TODO - support non-uniform vector amounts. - line 1562: // TODO - support non-uniform vector amounts. - line 1820: // FIXME: Limit to scalars for now. - line 2005: // TODO: Handle ANY_EXTEND? - line 2196: // TODO - bigendian once we have test coverage. - line 2384: // TODO: Ideally we would use FoldConstantArithmetic() here, but that does - line 2408: // TODO: For now we assume we know nothing about scalable vectors. - line 2489: // TODO - investigate calling SimplifyDemandedBits/ComputeKnownBits? - line 2512: // TODO - bigendian once we have test coverage. - line 2715: // TODO: If a condition element is undef, we can choose from one arm of the - line 2718: // TODO - add support for constant vselect masks (see IR version of this). - line 2861: // TODO: There are more binop opcodes that could be handled here - MIN, - line 2898: // TODO - use KnownUndef to relax the demandedelts? - line 2922: KnownUndef = UndefLHS & UndefRHS; // TODO: use getKnownUndefForVectorBinop? - line 2925: // TODO - use KnownUndef to relax the demandedelts? - line 2946: // TODO: Extend getKnownUndefForVectorBinop to also deal with known zeros - line 2953: // TODO - use KnownUndef to relax the demandedelts? - line 2991: // TODO: Handle zero cases as well. - line 3152: // FIXME: Ideally, this would use ISD::isConstantSplatVector(), but that must - line 3423: // FIXME: best to use isConstantOrConstantVector(). - line 3509: // FIXME: Add vector support? Need to be careful with setcc result type below. - line 3522: // TODO: Should we check if CTPOP is legal(or custom) for scalars? - line 3587: // TODO: Handle non-splat vector constants. All undef causes trouble. - line 3588: // FIXME: We can't yet fold constant scalable vector splats, so avoid an - line 3641: // FIXME: Support vectors. - line 3987: // TODO: Handle more splat vector cases. - line 4007: if (!VT.isVector()) { // TODO: Support this for vectors. - line 4028: if (!VT.isVector()) { // TODO: Support this for vectors. - line 4046: // TODO: Support this for vectors after legalize ops. - line 4064: // TODO: Support this for vectors after legalize ops. - line 4149: // TODO: Support this for vectors after legalize ops. - line 4170: // TODO: Can we do these for vector splats? - line 4470: // FIXME: If running after legalize, we probably can't do this. - line 5167: // TODO: For UDIV use SRL instead of SRA. - line 5203: // FIXME: We should be more aggressive here. - line 5287: // FIXME: We should support doing a MUL in a wider type. - line 5351: // FIXME: We should be more aggressive here. - line 5374: // FIXME: We should use a narrower constant when the upper - line 5445: // FIXME: We should support doing a MUL in a wider type. - line 5710: return SDValue(); // FIXME: Could/should use `ISD::ADD`? - line 5825: // TODO: Could support comparing with non-zero too. - line 5843: // FIXME: we don't fold `rem %X, -C` to `rem %X, C` in DAGCombine. - line 6429: // TODO non-MUL case? - line 6639: // TODO: Merge with expandFunnelShift. - line 6755: // FIXME: Only f32 to i64 conversions are supported. - line 6883: // TODO: Should any fast-math-flags be set for the FSUB? - line 6909: // TODO: Should any fast-math-flags be set for the FSUB? - line 7055: // TODO: Add support for irregular type lengths. - line 7322: // TODO: We can easily support i4/i2 legal types if any target ever does. - line 7717: // FIXME: Does not handle truncating floating point stores! - line 7911: unsigned EltSize = EltVT.getFixedSizeInBits() / 8; // FIXME: should be ABI size. - line 8044: // FIXME: Should really try to split the vector in case it's legal on a - line 8096: // FIXME: Should really try to split the vector in case it's legal on a - line 8345: // FIXME: This is a bit unfortunate as it means that for an 8-bit 7-scale - line 8371: // FIXME: Ideally we would always produce an SDIVREM here, but if the clang/lib/Sema/SemaExprCXX.cpp (66 lines): - line 118: // FIXME: RequireCompleteDeclContext doesn't check dependent contexts - line 141: // FIXME: This area of the standard is very messy, and the current - line 322: // FIXME: The intent is unclear here. Should type-name::~type-name look in - line 357: // FIXME: What if we have no nested-name-specifier? - line 415: // FIXME: If we have a scope specifier, suggest its last component? - line 427: // FIXME: Attempt typo-correction? - line 1480: // FIXME: CXXUnresolvedConstructExpr does not model list-initialization - line 1543: // FIXME: Creating a CXXFunctionalCastExpr around a CXXConstructExpr - line 1822: // FIXME: GCC permits constant folding here. We should either do so consistently - line 2145: // FIXME: Per CWG1464, we are required to check the value prior to - line 2342: // FIXME: We should not create these in the first place. - line 2349: // FIXME: If we have a KnownArraySize, check that the array bound of the - line 2355: // FIXME: Track that the array size was inferred rather than explicitly - line 2482: // FIXME: Find out how this interacts with the std::align_val_t fallback - line 2489: // FIXME: This will give bad diagnostics pointing at the wrong functions. - line 2593: // FIXME: Should the Sema create the expression and embed it in the syntax - line 2595: // FIXME: Using a dummy value will interact poorly with attribute enable_if. - line 2700: return true; // FIXME: clean up expressions? - line 2705: // FIXME: This is not covered by the language rules yet. - line 2741: // FIXME: Should (size_t, std::align_val_t) also be considered non-placement? - line 2768: // FIXME: This is not part of the standard's rule. - line 2870: // FIXME: Suppress this warning if the construction cannot throw. - line 3111: // FIXME: It's possible for this to result in ambiguity, through a - line 3163: // FIXME: DiagnoseUseOfDecl? - line 3180: // FIXME: The standard doesn't say to do this; it appears that the intent - line 3498: // FIXME: If we have an operator T* and an operator void*, we must pick - line 3551: // FIXME: PerformContextualImplicitConversion should return ExprError - line 3577: // FIXME: This can result in errors if the definition was imported from a - line 3938: // FIXME: Return this value to the caller so they don't need to recompute it. - line 4162: // Overall FIXME: we are recomputing too many types here and doing far too - line 4169: // FIXME: When can ToType be a reference type? - line 4175: /*FIXME:ConstructLoc*/ SourceLocation(), ConstructorArgs)) - line 4178: /*FIXME:ConstructLoc*/ SourceLocation(), ToType, - line 4185: /*FIXME:ConstructLoc*/ SourceLocation(), ToType, - line 4397: // FIXME: doing this here is really ugly. - line 4950: // FIXME: This appears to be a g++ bug: more complex cases reveal that it - line 5081: // TODO: Propagate nothrowness for implicitly declared special members. - line 5133: // FIXME: However, it may actually be selected at the actual overload - line 5147: // TODO: check whether evaluating default arguments can throw. - line 5172: // FIXME: In C++0x, a constructor template can be a default constructor. - line 5185: // FIXME: check whether evaluating default arguments can throw. - line 5664: // FIXME: This should likely be tracked as an APInt to remove any host - line 6018: // FIXME: Print the possible common types by printing the return types of - line 6170: // FIXME: Handle C99's complex types, block pointers and Obj-C++ interface - line 6290: // FIXME: - line 6295: // FIXME: If LTy and RTy have a composite pointer type, should we convert to - line 6301: // FIXME: Should we allow ObjC conversions here? - line 6554: /// it. It does not emit diagnostics (FIXME: that's not true if \p ConvertArgs - line 6693: // FIXME: In C, we merge __strong and none to __strong at the top level. - line 6714: // FIXME: Can we unify the following with UnwrapSimilarTypes? - line 6805: // FIXME: block pointer types? - line 6833: // FIXME: In order to match the standard wording as closely as possible, we - line 6918: // FIXME: Let the caller know if these fail to avoid duplicate diagnostics. - line 6986: // actual method. FIXME: we should infer retention by selector in - line 7134: // FIXME: In order to attach the temporaries, wrap the statement into - line 7142: /*FIXME TemplateDepth=*/0); - line 7261: // FIXME: Make this configurable? - line 7813: // FIXME: This note should be produced by a CodeSynthesisContext. - line 7950: // FIXME: We don't emit lifetime markers for the temporaries due to this. - line 7951: // FIXME: Do any other AST consumers care about this? - line 7958: // FIXME: stupid workaround for a codegen bug! - line 8009: // FIXME: Teach the constant evaluator to deal with the non-dependent parts - line 8261: // FIXME: Add any other expr types that could be be seen by the delayed typo - line 8476: // FIXME: If we would typo-correct to an invalid declaration, it's - line 8588: // FIXME: Also consider what happens for something like this that involves - line 8604: // FIXME: PR 17877 showed that getCurLambda() can return a valid pointer clang/lib/Sema/SemaType.cpp (50 lines): - line 183: // FIXME: The two-phase mechanism by which we construct Types and fill - line 292: // FIXME: This is quadratic if we have lots of reuses of the same - line 1267: // FIXME: Should move the logic from DeclSpec::Finish to here for validity - line 1611: // FIXME: Preserve type source info. - line 1726: // FIXME: we want resulting declarations to be marked invalid, but claiming - line 1786: // FIXME: Imaginary. - line 2492: // FIXME: Add a note to explain why this isn't a VLA. - line 2863: // FIXME: Loc is too inprecise here, should use proper locations for args. - line 3012: // TODO: should we care about decl qualifiers? - line 3100: // TODO: mark whether we did this inference? - line 3194: // FIXME: We can't currently provide an accurate source location and a - line 3311: // FIXME: Retain some type sugar to indicate that this was written - line 3379: // FIXME: The standard wording doesn't currently describe this. - line 3516: // FIXME: P0091R3 (erroneously) does not permit class template argument - line 3521: // FIXME: P0091R3 does not permit class template argument deduction here, - line 3716: // FIXME: Maybe we should suggest adding braces instead of parens - line 3785: // FIXME: Suppress the warning here if there is no initializer; we're - line 3797: // FIXME: "A(f())" deserves a vexing-parse warning, not just a - line 3813: // FIXME: If there is an initializer, assume that this is not intended to be - line 3854: // FIXME: A cast to void is probably a better suggestion in cases where it's - line 4503: // FIXME: Rejecting this is a little silly. - line 4929: // FIXME: This check isn't quite right: it allows star in prototypes - line 5081: // FIXME: This really should be in BuildFunctionType. - line 5304: // FIXME: This really should be in BuildFunctionType. - line 5371: // FIXME: It's rather inefficient to have to split into two vectors - line 5392: // FIXME: Set address space from attrs for C++ mode here. - line 5591: // FIXME: Checking this here is insufficient. We accept-invalid on: - line 5717: case DeclaratorContext::ObjCParameter: // FIXME: special diagnostic here? - line 5718: case DeclaratorContext::ObjCResult: // FIXME: special diagnostic here? - line 5738: // FIXME: We may want to allow parameter packs in block-literal contexts - line 5817: // TODO: mark whether we did this inference? - line 5982: // FIXME: This holds only because we only have one unary transform. - line 6107: // FIXME: add other typespec types and change this to an assert. - line 6272: // FIXME: Provide a source location for the _Atomic keyword. - line 6362: // FIXME: Ordering here? - line 6385: // FIXME: LocInfoTypes are "transient", only needed for passing to/from Parser - line 7102: // FIXME: Should we really be disallowing this attribute if there is any - line 7292: // FIXME: Handle dependent types that aren't yet object types. - line 7364: // FIXME: MemberPointer chunks don't carry the location of the *. - line 8186: // FIXME: This attribute needs to actually be handled, but if we ignore - line 8384: // FIXME: Is this really the right behavior? - line 8400: // FIXME: Update the type on all intervening expressions. - line 8420: // FIXME: Are there other cases which require instantiating something other - line 8490: // FIXME: Add a specific mode for C11 6.2.7/1 in StructuralEquivalenceContext - line 8627: // FIXME: Add this assertion to make sure we always get instantiation points. - line 8629: // FIXME: Add this assertion to help us flush out problems with - line 8722: // FIXME: Can this ever happen? - line 8765: // FIXME: If we didn't instantiate a definition because of an explicit - line 9078: // FIXME: It isn't entirely clear whether incomplete atomic types - line 9107: // FIXME: Do we need any handling for ARC here? llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (48 lines): - line 659: // FIXME: What does the original arg index mean here? - line 851: // FIXME: Support other types - line 866: // FIXME: Support other types - line 911: // FIXME: Although this would also be legal for the general case, it causes - line 1062: // FIXME: Need to split the load. - line 1158: // FIXME: add support for when SizeOp0 isn't an exact multiple of - line 1206: // TODO: Handle the non-equality case for weird sizes. - line 1261: // TODO: Handle non-power-of-two types. - line 1706: // TODO: If this is an integral address space, cast to integer and anyext. - line 2519: // TODO: Probably should be zext - line 2541: // TODO: Probably should be zext - line 3040: // TODO: If this requires multiple splits, handle them all at once. - line 3049: // TODO: Handle vector extloads - line 3053: // TODO: We can do better than scalarizing the vector and at least split it - line 3088: // FIXME: We currently consider this to be illegal for non-integral address - line 3139: // TODO: Handle vector trunc stores - line 3143: // TODO: We can do better than scalarizing the vector and at least split it - line 3341: // TODO: Handle vector types once we are able to - line 3538: // FIXME: It would probably make more sense to see if G_SADDO is preferred, - line 3574: // FIXME: We're missing a way to go back from LLT to llvm::Type to query the - line 3618: unsigned EltSize = EltTy.getSizeInBits() / 8; // FIXME: should be ABI size. - line 3990: // TODO: Handle total scalarization case. - line 4045: // TODO: We could emit a chain of compare/select to figure out which piece to - line 4053: // FIXME: Don't know how to handle secondary types yet. - line 4067: // FIXME: Do we need a distinct NarrowMemory legalize action? - line 4255: if (TypeIdx != 1) // TODO: This probably does work as expected already. - line 4496: return UnableToLegalize; // FIXME: handle implicit extensions. - line 4674: // TODO: Optimize if constant shift amount. - line 4708: // TODO: Expand with known bits. - line 5044: // FIXME: add support for vector types - line 5196: // FIXME: add support for when SizeOp1 isn't an exact multiple of - line 5257: // FIXME: Don't know how to handle secondary types yet. - line 5409: if (CondTy.isVector()) // TODO: Handle vselect - line 5777: // FIXME: Emit optimized urem by constant instead of letting it expand later. - line 5833: // TODO: Use smarter heuristic that accounts for vector legalization. - line 6008: // TODO: SelectionDAG has several alternative expansions to port which may - line 6115: // FIXME: Only f32 to i64 conversions are supported. - line 6180: if (MRI.getType(Src).isVector()) // TODO: Handle vectors directly. - line 6296: // TODO: If RHS is a constant SelectionDAGBuilder expands this into a - line 6900: // TODO: If SADDSAT/SSUBSAT is legal, compare results to detect overflow. - line 6963: // TODO: AMDGPU can use a "median of 3" instruction here: - line 7319: return UnableToLegalize; // FIXME: handle extension. - line 7359: // FIXME: check for the largest legal type we can load/store to. - line 7369: // FIXME: check for mem op safety and legality of the types. Not all of - line 7571: // FIXME: support dynamically sized G_MEMCPY_INLINE - line 7618: // FIXME: infer better src pointer alignment like SelectionDAG does here. - line 7619: // FIXME: also use the equivalent of isMemSrcFromConstant and alwaysinlining - line 7734: // FIXME: SelectionDAG always passes false for 'AllowOverlap', apparently due llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp (47 lines): - line 100: // TODO: This should be legalized to s32 if needed - line 135: // TODO: Should probably leave the copy and let copyPhysReg expand it. - line 154: // TODO: Skip masking high bits if def is known boolean. - line 205: // TODO: Verify this doesn't have insane operands (i.e. VGPR to SGPR copy) - line 226: // TODO: Verify that all registers have the same bank - line 457: // TODO: We should probably legalize these to only using 32-bit results. - line 467: // TODO: Should handle any multiple of 32 offset. - line 473: // FIXME: Probably should not allow 16-bit G_EXTRACT results. - line 628: // TODO: This should probably be a combine somewhere - line 686: // FIXME: Interface for getConstrainedRegClassForOperand needs work. The - line 711: // FIXME: These cases should have been illegal and unnecessary to check here. - line 798: // TODO: Match source modifiers. - line 898: // TODO: Match source modifiers. - line 930: // FIXME: Manually selecting to avoid dealing with the SReg_1 trick - line 1244: // FIXME: Manually selecting to avoid dealing with the SReg_1 trick - line 1375: // TODO: Look into changing the default m0 initialization value. If the - line 1454: // TODO: Should this try to look through readfirstlane like GWS? - line 1575: // FIXME: Check this in verifier. - line 1626: // TODO: Check this in verifier. - line 1631: CPol |= AMDGPU::CPol::GLC; // TODO no-return optimization - line 2033: // FIXME: This should probably be illegal and split earlier. - line 2217: // FIXME: This is a workaround for 2.5 different tablegen problems. Because - line 2269: // FIXME: This is a workaround for the same tablegen problems as G_FNEG - line 2297: // TODO: Should this used S_BITSET0_*? - line 2332: // TODO: Could handle constant base + variable offset, but a combine - line 2409: // TODO: No rtn optimization. - line 2512: // FIXME: Should scc->vcc copies and with exec? - line 2760: // TODO: Fold insert_vector_elt (extract_vector_elt) into movrelsd - line 2906: // TODO: This also should have been folded out - line 3010: // FIXME: This is only needed because tablegen requires number of dst operands - line 3099: // FIXME: This is only needed because tablegen requires number of dst operands - line 3395: // TODO: Treat f32 fneg as only high bit. - line 3402: // TODO: Match op_sel through g_build_vector_trunc and g_shuffle_vector. - line 3441: // FIXME: Handle op_sel - line 3498: // FIXME: We should shrink the GEP if the offset is known to be <= 32-bits, - line 3690: // FIXME: We should probably have folded COPY (G_IMPLICIT_DEF) earlier, and - line 3786: // TODO: Should this be inside the render function? The iterator seems to - line 4091: // FIXME: Why are half the "default" bits ignored based on the addressing - line 4100: // FIXME: Why are half the "default" bits ignored based on the addressing - line 4124: // FIXME: Need to fix extra SGPR->VGPRcopies inserted - line 4125: // FIXME: Don't know this was defined by operand 0 - line 4127: // TODO: Remove this when we have copy folding optimizations after - line 4166: // FIXME: Predicates should stop this from reaching here. - line 4218: // FIXME: Pattern should not reach here. - line 4231: // TODO: Look through extensions for 32-bit soffset. - line 4249: // FIXME: Use defaulted operands for trailing 0s and remove from the complex - line 4309: // FIXME: Use defaulted operands for trailing 0s and remove from the complex llvm/lib/Analysis/ValueTracking.cpp (46 lines): - line 211: // FIXME: We currently have no way to represent the DemandedElts of a scalable - line 338: // TODO: We'd doing two recursive queries here. We should factor this such - line 380: // FIXME: We currently have no way to represent the DemandedElts of a scalable - line 1007: // TODO: Should we just carry on? - line 1085: // TODO: This could be generalized to clearing any bit set in y where the - line 1195: // TODO: For now, not handling conversions like: - line 1430: // inferred hold at original context instruction. TODO: It may be - line 1621: // TODO: we could bound KnownOne using the lower bound on the number - line 1703: // TODO: VLEN might be capped at 16 bits in a future V spec update. - line 1741: // FIXME: Do we need to handle ConstantExpr involving shufflevectors? - line 1805: // FIXME: there's probably *something* we can do with scalable vectors - line 2129: // FIXME: Support vector-GEPs. - line 2242: // TODO: Support similar logic of OR and EQ predicate? - line 2326: // FIXME: We currently have no way to represent the DemandedElts of a scalable - line 2599: // FIXME: We currently have no way to represent the DemandedElts of a scalable - line 2812: // FIXME: This is missing a generalization to handle the case where one is - line 2938: // FIXME: We currently have no way to represent the DemandedElts of a scalable - line 2958: // same behavior for poison though -- that's a FIXME today. - line 3173: // FIXME: it's tricky to do anything useful for this, but it is an - line 3189: // FIXME: Add support for shufflevector constant expressions. - line 3528: // TODO: This function does not do the right thing when SignBitOnly is true - line 3624: // TODO: This could be improved. We could also check that neither operand - line 3658: // TODO: This is not correct. Given that exp is an integer, here are the - line 3788: // FIXME: If neither side can be zero fmul never produces NaN. - line 3796: // FIXME: Only 0/0, Inf/Inf, Inf REM x and x REM 0 produce NaN. - line 4267: // TODO: See if we can integrate these two together. - line 5015: // TODO: Add more intrinsics. - line 5064: // TODO: what about inrange on constexpr? - line 5319: // FIXME: Move this check into Instruction::willReturn. - line 5338: // TODO: This is slightly conservative for invoke instruction since exiting - line 5371: // FIXME: Relax this constraint to cover all basic blocks that are - line 5392: // TODO: Add more intrinsics. - line 5507: // FIXME: Expand this to consider uses beyond the same basic block. To do - line 5735: // TODO: Allow FP min/max with nnan/nsz. - line 5826: /// TODO: This could be extended to handle non-splat vector integer constants. - line 5981: // FIXME: Include OGT/OLT/UGT/ULT. - line 6340: // TODO: Support floating point min/max. - line 6395: // TODO: Expand list -- xor, div, gep, uaddo, etc.. - line 6445: assert(!LHS->getType()->isVectorTy() && "TODO: extend to handle vectors!"); - line 6638: // FIXME: Make this non-recursion. - line 6666: // FIXME: Extending the code below to handle vectors. - line 6680: /// FIXME: Add support for and/or/select on the RHS. - line 6713: // TODO: This is a poor/cheap way to determine dominance. Should we use a - line 6846: } else if (BO.hasNoSignedWrap()) { // TODO: What if both nuw+nsw? - line 7147: // TODO: Set "ForSigned" parameter via Cmp->isSigned()? - line 7212: // TODO: Handle the case when both Ptr1 and Ptr2 are GEPs of some common base llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp (45 lines): - line 77: /// TODO: Refactor with decomposeBitTestICmp()? - line 788: // FIXME: Support vector of pointers. - line 839: // FIXME: Support vector pointer GEPs. - line 907: // FIXME: Support vector of pointers. - line 942: // FIXME: Handle vector of pointers. - line 948: // FIXME: Handle vector of pointers. - line 961: // FIXME: Better support for vector of pointers. - line 1183: // FIXME: This should always be handled by InstSimplify? - line 1222: // FIXME: This should always be handled by InstSimplify? - line 1408: /// TODO: This code structure does not make sense. The saturating add fold - line 1418: // TODO: This could probably be generalized to handle other overflow-safe - line 1519: // TODO: This will be unnecessary if we canonicalize to min/max intrinsics. - line 1742: // TODO: We canonicalize to the longer form for scalars because we have - line 1787: // TODO: Is this a good transform for vectors? Wider types may reduce - line 1863: // TODO: These all require that Y is constant too, so refactor with the above. - line 2237: // TODO: If we could guarantee that InstSimplify would handle all of the - line 2336: // TODO: The one-use check is standard because we do not typically want to - line 2407: // FIXME: If the operand types don't match the type of the divide - line 2591: // TODO: This is an artificial restriction for all of the transforms below - line 2666: // TODO: Can we assert there is no overflow because InstSimplify always - line 2742: // TODO: Generalize this to work with other comparison idioms or ensure - line 2941: // TODO: Try harder to reduce compare of 2 freely invertible operands? - line 3049: // TODO: These folds could be refactored to be part of the above calls. - line 3081: // TODO: Some of these folds could work with arbitrary constants, but this - line 3230: // TODO: This transform is safe to re-use undef elts in a vector, but - line 3596: const APInt *C0, *C1; // FIXME: non-splats, potentially with undef. - line 3630: // FIXME: are more folds possible? - line 3760: // FIXME: could also rely on ConstantRange. - line 3922: /// TODO: A large part of this logic is duplicated in InstSimplify's - line 4077: // TODO: The subtraction-related identities shown below also hold, but - line 4674: // TODO: This is too strict. We can handle some predicates (equality?). - line 5166: // FIXME: we may want to go through inttoptrs or bitcasts. - line 5347: // FIXME: This constraint may go away if min/max intrinsics are canonical. - line 5604: // TODO: in case of poison, it is safe; let's replace undefs only. - line 5808: // TODO: We could generalize this for more than splats. See/use the code in - line 5955: // FIXME: We only do this after checking for min/max to prevent infinite - line 5957: // FIXME: The organization of folds is a mess. These would naturally go into - line 5979: // FIXME: It may be possible to enhance select folding to make this - line 6018: // TODO: Hoist this above the min/max bailout. - line 6148: // TODO: Can never be -0.0 and other non-representable values - line 6160: // TODO: If the constant is exactly representable, is it always OK to do - line 6165: // enough that preserves all bits. TODO: check here for "known" sign bits. - line 6623: // TODO: Simplify if the copysign constant is 0.0 or NaN. - line 6624: // TODO: Handle non-zero compare constants. - line 6625: // TODO: Handle other predicates. mlir/python/mlir/_mlir_libs/_mlir/ir.pyi (45 lines): - line 124: # TODO: Auto-generated. Audit and fix. - line 210: # TODO: Auto-generated. Audit and fix. - line 216: # TODO: Auto-generated. Audit and fix. - line 225: # TODO: Auto-generated. Audit and fix. - line 231: # TODO: Auto-generated. Audit and fix. - line 239: # TODO: Auto-generated. Audit and fix. - line 247: # TODO: Auto-generated. Audit and fix. - line 257: # TODO: Auto-generated. Audit and fix. - line 263: # TODO: Auto-generated. Audit and fix. - line 301: # TODO: Auto-generated. Audit and fix. - line 309: # TODO: Auto-generated. Audit and fix. - line 315: # TODO: Auto-generated. Audit and fix. - line 321: # TODO: Auto-generated. Audit and fix. - line 329: # TODO: Auto-generated. Audit and fix. - line 341: # TODO: Auto-generated. Audit and fix. - line 347: # TODO: Auto-generated. Audit and fix. - line 403: # TODO: Auto-generated. Audit and fix. - line 413: # TODO: Auto-generated. Audit and fix. - line 444: # TODO: Auto-generated. Audit and fix. - line 456: # TODO: Auto-generated. Audit and fix. - line 464: # TODO: Auto-generated. Audit and fix. - line 511: # TODO: Auto-generated. Audit and fix. - line 525: # TODO: Auto-generated. Audit and fix. - line 531: # TODO: Auto-generated. Audit and fix. - line 537: # TODO: Auto-generated. Audit and fix. - line 543: # TODO: Auto-generated. Audit and fix. - line 553: # TODO: Auto-generated. Audit and fix. - line 565: # TODO: Auto-generated. Audit and fix. - line 575: # TODO: Auto-generated. Audit and fix. - line 605: # TODO: Auto-generated. Audit and fix. - line 615: # TODO: Auto-generated. Audit and fix. - line 647: # TODO: Auto-generated. Audit and fix. - line 655: # TODO: Auto-generated. Audit and fix. - line 665: # TODO: Auto-generated. Audit and fix. - line 706: # TODO: Auto-generated. Audit and fix. - line 739: # TODO: Auto-generated. Audit and fix. - line 831: # TODO: Auto-generated. Audit and fix. - line 859: # TODO: Auto-generated. Audit and fix. - line 878: # TODO: Auto-generated. Audit and fix. - line 909: # TODO: Auto-generated. Audit and fix. - line 918: # TODO: Auto-generated. Audit and fix. - line 928: # TODO: Auto-generated. Audit and fix. - line 936: # TODO: Auto-generated. Audit and fix. - line 944: # TODO: Auto-generated. Audit and fix. - line 950: # TODO: Auto-generated. Audit and fix. llvm/lib/Target/AMDGPU/SIInstrInfo.cpp (44 lines): - line 154: // FIXME: Handle this case: - line 163: // TODO: We should report true if the used offsets are adjacent (excluded - line 273: // TODO: find the implicit use operand for M0 and use that as BaseOp? - line 470: // FIXME: This behaves strangely. If, for example, you have 32 load + stores, - line 666: // FIXME: This is hack to resolve copies between 16 bit and 32 bit - line 710: // FIXME: Hack until VReg_1 removed. - line 743: // FIXME: Hack until VReg_1 removed. - line 797: // FIXME: Pass should maintain scavenger to avoid scan through the block on - line 913: // TODO: In 96-bit case, could do a 64-bit mov and then a 32-bit mov. - line 923: // FIXME: The pass should maintain this for us so we don't have to re-scan the - line 1642: // FIXME: Maybe this should not include a memoperand because it will be - line 1710: return 1; // FIXME: Do wait states equal cycles? - line 1715: // FIXME: Any other pseudo instruction? - line 1794: // FIXME: Will this work for 64-bit floating point immediates? - line 2220: // FIXME: Found two non registers to commute. This does happen. - line 2302: // FIXME: Virtual register workaround for RegScavenger not working with empty - line 2334: // FIXME: If spilling is necessary, this will fail because this scavenger has - line 2509: // FIXME: It's messy that these need to be considered here at all. - line 2645: // FIXME: We could insert for VGPRs if we could replace the original compare - line 2727: // TODO: Split 96-bit into 64-bit and 32-bit, not 3x 32-bit. - line 2830: // TODO: We could fold 64-bit immediates, but this get compilicated - line 2842: // FIXME: We could handle FrameIndex values here. - line 2894: // TODO: We could fold this here instead of letting SIFoldOperands do it - line 2928: // FIXME: This would be a lot easier if we could return a new instruction - line 3011: // FIXME: This would be a lot easier if we could return a new instruction - line 3085: // FIXME: Handle ds_read2 / ds_write2. - line 3107: // TODO: Should we check the address space from the MachineMemOperand? That - line 3345: // TODO: Do we really want this barrier? It triggers unnecessary hazard nops - line 3522: // TODO: Theoretically we could use op-sel to use the high bits of the - line 3537: // TODO: Do the 32-bit immediates work? We shouldn't really need to handle - line 3963: // FIXME: Ideally we would have separate instruction definitions with the - line 3965: // FIXME: We do not verify inline asm operands, but custom inline asm - line 4549: // FIXME: These are not consistently handled, and selected when the carry is - line 4977: // TODO: Other immediate-like operand kinds could be commuted if there was a - line 5239: // FIXME: Remove this when SelectionDAG is obsoleted. - line 5728: // FIXME: We may need to legalize operands besided srsrc. - line 5791: "FIXME: Need to emit flat atomics here"); - line 5889: // FIXME: The u32 versions currently selected use the carry. - line 6056: // TODO: remove as soon as everything is ready - line 7006: // FIXME: Can do a lot better if we know the high bits of src0 or src1 are - line 7222: // TODO: If some of the operands are 64-bit SGPRs and some 32, we should - line 7605: // TODO: Users need to deal with this. - line 7689: // TODO: Should 0 be special cased? - line 7805: // TODO: remove this when we discard GFX80 encoding. clang/lib/Sema/SemaTemplateInstantiateDecl.cpp (44 lines): - line 124: // FIXME: Use the actual location of the ellipsis. - line 611: // FIXME: This function is called multiple times for the same template - line 618: // FIXME: If any of the special case versions from InstantiateAttrs become - line 654: // FIXME: This should be generalized to more than just the AlignedAttr. - line 1621: // TODO: do we want to track the instantiation progeny of this - line 1853: // FIXME: Check against AS_none is an ugly hack to work around the issue that - line 2013: // FIXME: Concepts: Do not substitute into constraint expressions - line 2237: // FIXME: If this is a friend function template definition, we should check - line 2370: // FIXME: Concepts: Do not substitute into constraint expressions - line 2608: // FIXME: Is this necessary? - line 2718: // TODO: Concepts: do not instantiate the constraint (delayed constraint - line 3059: // FIXME: UsingShadowDecl doesn't preserve its immediate target, so - line 3725: // FIXME: This is wrong in standard C++. - line 3831: // FIXME: We need to be able to instantiate FriendTemplateDecls. - line 3884: // FIXME: Set the correct return type when we initially transform the type, - line 3962: // FIXME: Concepts: Substitution into requires clause should only happen when - line 4375: // FIXME: Updating the type to work around this is at best fragile. - line 4429: // FIXME: Pass in a correct Pattern argument, otherwise - line 4485: /*FIXME:EqualLoc*/ UninstExpr->getBeginLoc()); - line 4523: // FIXME: Corresponding rule in the standard? - line 4537: // FIXME: We can't use getTemplateInstantiationPattern(false) in general - line 4621: // FIXME: This is a hack. - line 4706: // FIXME: New needs a pointer to Tmpl - line 4821: // FIXME: We need to track the instantiation stack in order to know which - line 4881: // FIXME: Optimize to allow individual templates to be deserialized. - line 5021: // FIXME: Is CurContext correct for this? Should we go to the (instantiation - line 5059: // FIXME: finishing the function body while in an expression evaluation - line 5121: // TODO: Set LateAttrs and StartingScope ... - line 5332: // FIXME: Not too happy about invalidating the declaration - line 5400: // FIXME: This largely duplicates what we would do below. The difference - line 5407: // FIXME: Factor out the duplicated instantiation context setup/tear down - line 5468: // FIXME: We need to track the instantiation stack in order to know which - line 5470: // FIXME: Produce diagnostics when Var->getInstantiatedFromStaticDataMember(). - line 5483: // FIXME: That's not exactly the same as "might be usable in constant - line 5722: /*FIXME: ColonLoc */ - line 5728: // TODO: this could be templated if the various decl types used the - line 5991: // FIXME: Parameters of pointer to functions (y below) that are themselves - line 6147: // FIXME: The standard doesn't say what should happen here. - line 6199: // FIXME: If the name is a dependent name, this lookup won't necessarily - line 6219: // FIXME: Find a better way to find these instantiations! - line 6232: // FIXME: Use more fine-grained 'invalid' tracking for this. - line 6292: InstantiateFunctionDefinition(/*FIXME:*/ Inst.second, CurFD, true, - line 6298: InstantiateFunctionDefinition(/*FIXME:*/ Inst.second, Function, true, - line 6349: InstantiateVariableDefinition(/*FIXME:*/ Inst.second, Var, true, llvm/lib/Target/X86/X86TargetTransformInfo.cpp (43 lines): - line 36: /// TODO: Develop and implement the target dependent cost model and - line 63: // TODO: Currently the __builtin_popcount() implementation using SSE3 - line 183: // TODO: Handle more cost kinds. - line 332: // TODO: Merge this into generiic vXi32 MUL patterns above. - line 1119: // FIXME: Remove some of the alignment restrictions. - line 1120: // FIXME: We can use permq for 64-bit or larger extracts from 256-bit - line 1350: // FIXME: This just applies the type legalization cost rules above - line 1575: // TODO: Allow non-throughput costs that aren't binary. - line 1585: // FIXME: Need a better design of the cost table to handle non-simple types of - line 1697: // TODO: For AVX512DQ + AVX512VL, we also have cheap casts for 128-bit and - line 1793: { ISD::SIGN_EXTEND, MVT::v32i16, MVT::v32i8, 3 }, // FIXME: May not be right - line 1794: { ISD::ZERO_EXTEND, MVT::v32i16, MVT::v32i8, 3 }, // FIXME: May not be right - line 2535: // TODO: Handle other cost kinds. - line 2551: // TODO: Should we invert this and assume worst case cmp costs - line 2626: { ISD::SETCC, MVT::v32i16, 2 }, // FIXME: should probably be 4 - line 2627: { ISD::SETCC, MVT::v64i8, 2 }, // FIXME: should probably be 4 - line 2629: { ISD::SELECT, MVT::v32i16, 2 }, // FIXME: should be 3 - line 2630: { ISD::SELECT, MVT::v64i8, 2 }, // FIXME: should be 3 - line 2751: // TODO: Overflow intrinsics (*ADDO, *SUBO, *MULO) with vector types are not - line 3546: // TODO: On some SSE41+ targets, we expand to cmp+splat+select patterns: - line 3549: // TODO: Move this to BasicTTIImpl.h? We'd need better gep + index handling. - line 3632: // TODO: Under what circumstances should we shuffle using the full width? - line 3732: // TODO: Use default extraction for now, but we should investigate extending this - line 3855: // TODO: Handle other cost kinds. - line 4080: // TODO: AVX2 is the current cut-off because we don't have correct - line 4111: { ISD::ADD, MVT::v2i32, 2 }, // FIXME: chosen to be less than v4i32 - line 4138: // FIXME: Is there a better way to do this? - line 4193: // FIXME: These assume a naive kshift+binop lowering, which is probably - line 4501: {ISD::UMIN, MVT::v8i16, 4}, // FIXME: umin is cheaper than umax - line 4509: {ISD::UMIN, MVT::v16i8, 6}, // FIXME: umin is cheaper than umax - line 4514: {ISD::UMIN, MVT::v16i16, 6}, // FIXME: umin is cheaper than umax - line 4521: {ISD::UMIN, MVT::v32i16, 8}, // FIXME: umin is cheaper than umax - line 4528: // FIXME: Is there a better way to do this? - line 4839: // TODO: Remove the explicit hasAVX512()?, That would mean we would only - line 4855: // FIXME: Add TargetCostKind support. - line 4932: /// FIXME: Add TargetCostKind support. - line 5117: // TODO: Remove the explicit ST->hasAVX512()?, That would mean we would only - line 5146: // cost of vector-4 for KNL. TODO: Check, maybe the gather/scatter - line 5251: // FIXME: Look at the size of vectors. - line 5252: // FIXME: Look at the element types of aggregates to see if there are vectors. - line 5290: // TODO: We expect this to be beneficial regardless of arch, - line 5506: // FIXME: discount dead loads. - line 5516: // TODO: Complete for other data-types and strides. llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp (43 lines): - line 187: // FIXME: In principle we should probably add the instruction to NewInsts, - line 222: // TODO: Should there be a UniformVGPRRegBank which can use readfirstlane? - line 255: // FIXME: Is there a better way to do this? - line 267: // TODO: Cost of 0 hits assert, though it's not clear it's what we really - line 270: // TODO: 32-bit insert to a 64-bit SGPR may incur a non-free copy due to SGPR - line 284: // FIXME: This probably came from a copy from a physical register, which - line 414: // FIXME: Should have no register for immediate - line 436: // FIXME: Returns uniform if there's no source value information. This is - line 621: // TODO: Change type to 32 for scalar - line 957: // FIXME: Build merge seems to switch to CONCAT_VECTORS but not - line 1246: // TODO: Need to emit a wave reduction to get the maximum size. - line 1307: // TODO: Guard against this being an implicit def - line 1415: // FIXME: 96-bit case was widened during legalize. We need to narrow it back - line 1439: // TODO: 96-bit loads were widened to 128-bit results. Shrink the result if we - line 1442: const Align MemAlign(4); // FIXME: ABI type alignment? - line 1487: // TODO: If only the resource is a VGPR, it may be better to execute the - line 1611: // TODO: It might be worth using a pseudo here to avoid scc clobber and - line 1712: // TODO: Handle G_OR used for add case - line 2185: // FIXME: Should use legalizer helper, but should change bool ext type. - line 2335: // FIXME: s16 shift amounts should be legal. - line 2467: // FIXME: Should handle any type that round to s64 when irregular - line 2475: // TODO: Should really be buildSExtOrCopy - line 2505: // TODO: Should s16 select be legal? - line 2930: // FIXME: Should this be a waterfall loop instead? - line 3005: // FIXME: Should this use a waterfall loop? - line 3243: // TODO: Unary ops are trivially OK, so accept SGPRs? - line 3288: // TODO: Should packed/unpacked D16 difference be reported here as part of - line 3301: // FIXME: Probably need a new intrinsic register bank searchable table to - line 3379: // FIXME: Do we want to add a mapping for FLAT load, or should we just - line 3484: // TODO: There are additional exec masking dependencies to analyze. - line 3497: // FIXME: Assuming VGPR for any undetermined inputs. - line 3503: // FIXME: Need to promote SGPR case to s32 - line 3621: case AMDGPU::G_SADDSAT: // FIXME: Could lower sat ops for SALU - line 3648: case AMDGPU::G_BSWAP: // TODO: Somehow expand for scalar? - line 3649: case AMDGPU::G_FSHR: // TODO: Expand for scalar - line 3681: // TODO: This should be the same as other constants, but eliminateFrameIndex - line 3827: // FIXME: We need to specify a different reg bank once scalar stores are - line 3856: // TODO: Use 32-bit for scalar output size. - line 3912: // FIXME: Shouldn't this be the default? Why do we need to handle this? - line 4239: // FIXME: Should we eventually add an alternative mapping with AGPR src - line 4347: // FIXME: Could we support packed types here? - line 4391: // FIXME: Should make intrinsic ID the last operand of the instruction, - line 4479: // TODO: Should report 32-bit for scalar condition type. openmp/runtime/src/kmp_runtime.cpp (42 lines): - line 162: TODO: Fix it. --ln */ - line 463: // TODO: Eliminate g_abort global variable and this function. - line 650: /* TODO replace with general release procedure */ - line 684: /* TODO: Should this be acquire or release? */ - line 1169: TODO increase performance by making this locks more specific */ - line 1195: /* TODO the above breaks the requirement that if we run out of resources, - line 1224: /* TODO: GEH: do ICVs work for nested serialized teams? Don't we need an - line 1340: ompt_task_implicit); // TODO: Can this be ompt_task_initial? - line 1707: // TODO: get nproc directly from current task - line 1765: /* TODO this sucks, use the compiler itself to pass args! :) */ - line 1979: // TODO: GEH - cannot do this assertion because root thread not set up as - line 2081: KMP_CHECK_UPDATE(team->t.t_invoke, invoker); // TODO move to root, maybe - line 2082: // TODO: parent_team->t.t_level == INT_MAX ??? - line 2637: // TODO: GEH - cannot do this assertion because root thread not set up as - line 2864: // TODO: Hint needs attention in case we change the default schedule. - line 4165: /* TODO optimize with one big memclr, take out what isn't needed, split - line 4215: // TODO: Initialize ICVs from parent; GEH - isn't that already done in - line 4218: /* TODO no worksharing in speculative threads */ - line 4479: // TODO: check if we need to also suppress b_arrived flags - line 4651: /* team->t.t_parent = NULL; TODO not needed & would mess up hot team */ - line 5470: /* TODO: consider resizing undersized teams instead of reaping them, now - line 5527: /* TODO: Use technique to find the right size hot-team, don't reap them */ - line 5596: /* TODO implement hot-teams at all levels */ - line 5597: /* TODO implement lazy thread release on demand (disband request) */ - line 5739: /* TODO limit size of team pool, call reap_team if pool too large */ - line 5783: /* TODO clean the threads that are a part of this? */ - line 5944: // TODO: add a configuration option for time granularity - line 6100: // TODO: Can some of this comment about GVS be removed? - line 6310: /* TODO move this to cleanup code */ - line 6317: KMP_ASSERT(!__kmp_root[i]->r.r_active); // TODO: can they be active? - line 6377: // FIXME: push both code fragments down and CSE them? - line 6406: /* TODO abort? */ - line 6463: TODO: do a thorough shutdown instead */ - line 6481: /* TODO abort? */ - line 6529: /* TODO abort? */ - line 6610: /* TODO abort? */ - line 6787: // WARN( ... ); // TODO: Issue a warning. - line 6966: /* TODO reinitialization of library */ - line 7367: /* TODO reinitialization after we have already shut down */ - line 7941: ompt_task_implicit); // TODO: Can this be ompt_task_initial? - line 8273: /* TODO this can cause some odd behaviour with sibling parallelism... */ - line 8883: // TODO: add warning messages llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp (40 lines): - line 558: // FIXME: This is only partially true. If we have to do vector compares, any - line 653: // TODO: handle llvm.amdgcn.fma.legacy - line 685: // TODO: Should really be looking at the users of the bitcast. These are - line 751: // FIXME: Why are we reporting vectors of FP immediates as legal? - line 768: // TODO: This may be worth removing. Check regression tests for diffs. - line 828: // FIXME: These should really have the size as a parameter. - line 1176: // FIXME: Fails for r600 tests - line 1368: // TODO: We could emit code to handle the initialization somewhere. - line 1929: // TODO: Here and below portions of the code can be enclosed into if/endif. - line 2147: // TODO: For f32 use FMAD instead if !hasFastFMA32? - line 2172: // TODO: Should this propagate fast-math-flags? - line 2247: // TODO: Should this propagate fast-math-flags? - line 2283: // TODO: Should this propagate fast-math-flags? - line 2326: // TODO: Should this propagate fast-math-flags? - line 2554: // TODO: Should this propagate fast-math-flags? - line 2560: // TODO: Factor out code common with LowerSINT_TO_FP. - line 2614: // TODO: Factor out code common with LowerUINT_TO_FP. - line 2679: // TODO: Should this propagate fast-math-flags? - line 2853: // TODO: Don't scalarize on Evergreen? - line 3083: // FIXME: This should go in generic DAG combiner with an isTruncateFree check, - line 3124: // FIXME: This is probably wrong. If src is an sNaN, it won't be quieted - line 3606: // TODO: If zero is not undef, we could also do this if the output is compared - line 3609: // TODO: Should probably combine against FFBH_U32 instead of ctlz directly. - line 3687: // TODO: Support vector constants. - line 3744: if (Cond.hasOneUse()) { // TODO: Look for multiple select uses. - line 3889: // TODO: handle llvm.amdgcn.fma.legacy - line 3932: // TODO: This constant check should be generalized to other operations. - line 4106: // TODO: Generalize and move to DAGCombiner - line 4205: // TODO: The sext_inreg of extended types ends, although we can could - line 4549: // TODO: There is also f64 rsq instruction, but the documentation is less - line 4570: // TODO: There is also f64 rcp instruction, but the documentation is less - line 4731: // TODO: Could probably figure something out with non-0 offsets. - line 4767: // TODO: Check range metadata on MMO. - line 4793: // TODO: Can check no nans on one of the operands for each one, but which - line 4827: // TODO: Need is known positive check. - line 4839: // TODO: Refine on operands. - line 4843: // TODO: Need check for infinity - line 4849: // TODO: Handle more intrinsics - line 4873: // TODO: Need is known positive check. - line 4878: // TODO: Refine on operand clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp (40 lines): - line 191: // FIXME: Add a test for `has()` that does not depend on C++. - line 288: // FIXME: Add a test for `unless()` that does not depend on C++. - line 330: // FIXME: Add a test for `hasDescendant()` that does not depend on C++. - line 432: // FIXME: Add a test for `anyOf()` that does not depend on C++. - line 1094: // FIXME: Once we have better matchers for template type matching, - line 1345: // FIXME: Add a test for `hasType()` that does not depend on C++. - line 1474: // FIXME: Add thread_local variables to the source code snippet. - line 1507: // FIXME: Add a similar negative test for `isInteger()` that does not depend - line 1533: // FIXME: Add a test for `isAnyPointer()` that does not depend on C++. - line 1559: // FIXME: Add a test for `isArrow()` that does not depend on C++. - line 1563: // FIXME: Fix this test to work with delayed template parsing. - line 1582: // FIXME: Add a test for `isArrow()` that does not depend on C++. - line 1596: // FIXME: Add a test for `isArrow()` that does not depend on C++. - line 1600: // FIXME: Fix this test to work with delayed template parsing. - line 1679: // FIXME: Add a test for `references()` that does not depend on C++. - line 1699: // FIXME: Add a test for `hasLocalQualifiers()` that does not depend on C++. - line 2363: // FIXME: Fix this test to also work in non-C++ language modes. - line 2515: // FIXME: Add a test for `hasAnyName()` that does not depend on C++. - line 2567: // FIXME: Add an equivalent test that does not depend on C++. - line 2571: // FIXME: Add a Type matcher so we can replace uses of this - line 2637: // FIXME: Add a test for `member()` that does not depend on C++. - line 2646: // FIXME: Add a test for `member()` that does not depend on C++. - line 2798: // FIXME: Fix this test to work with delayed template parsing. - line 2823: // FIXME: Fix this test to work with delayed template parsing. - line 3046: // FIXME: Figure out whether this makes sense. It doesn't affect the - line 3164: // FIXME: Node sharing is an implementation detail, exposing it is ugly - line 3176: // FIXME: Fix this test to work with delayed template parsing. - line 3187: // FIXME: Fix this test to work with delayed template parsing. - line 3197: // FIXME: Fix this test to work with delayed template parsing. - line 3207: // FIXME: Fix this test to work with delayed template parsing. - line 3226: // FIXME: Fix this test to work with delayed template parsing. - line 3236: // FIXME: Fix this test to work with delayed template parsing. - line 3246: // FIXME: Fix this test to work with delayed template parsing. - line 3391: // FIXME: Add a test for `booleanType()` that does not depend on C++. - line 3403: // FIXME: Add a test for `voidType()` that does not depend on C++. - line 3413: // FIXME: Add a test for `realFloatingPointType()` that does not depend on - line 3574: // FIXME: Add a test for `equalsBoundNode()` for declarations that does not - line 3591: // FIXME: Add a test for `equalsBoundNode()` for types that does not depend - line 3695: // FIXME: Fix this test to work with delayed template parsing. - line 3934: // FIXME: Add a test for `hasInit()` that does not depend on C++. clang/lib/CodeGen/CGCall.cpp (40 lines): - line 59: // TODO: Add support for __pascal to LLVM. - line 61: // TODO: Add support for __vectorcall to LLVM. - line 184: // FIXME: Kill copy. - line 400: // FIXME: Kill copy. - line 481: // FIXME: Kill copy? - line 518: // FIXME: Do we need to handle ObjCMethodDecl? - line 600: // FIXME: Kill copy. - line 646: // FIXME: Kill copy. - line 690: // FIXME: Kill copy. - line 1047: // FIXME: What are the right qualifiers here? - line 1262: // FIXME: Assert that we aren't truncating non-padding bits when have access - line 1310: // FIXME: Do we need to recurse here? - line 1384: // FIXME: Assert that we aren't truncating non-padding bits when have access - line 1503: // FIXME: handle sseregparm someday... - line 1834: // TODO: Are these all needed? - line 1851: // TODO: Reciprocal estimate codegen options should apply to instructions? - line 1898: // TODO: call GetCPUAndFeaturesAttributes? - line 1954: // TODO: This will result in a modest amount of values not marked noundef - line 1975: // TODO: Some member pointers are `noundef`, but it depends on the ABI. For - line 1990: // TODO: Some structs may be `noundef`, in specific situations. - line 2044: // FIXME: handle sseregparm someday... - line 2162: // FIXME: what if we just haven't processed the function definition - line 2283: // FIXME: fix this properly, https://reviews.llvm.org/D100388 - line 2325: // FIXME: fix this properly, https://reviews.llvm.org/D100388 - line 2342: // FIXME dereferenceable should be correct here, regardless of - line 2416: // TODO: We could add the byref attribute if not byval, but it would - line 2434: // TODO: be less lazy about updating test cases. - line 2557: // FIXME: __attribute__((nonnull)) can also be applied to: - line 2601: // initialize the return value. TODO: it might be nice to have - line 2613: // FIXME: We no longer need the types from FunctionArgList; lift up and - line 2698: // FIXME: We should have a common utility for generating an aggregate - line 3678: // FIXME: Generate IR in one pass, rather than going back and fixing up these - line 3684: // FIXME: When we generate this IR in one pass, we shouldn't need - line 4050: // TODO: Consider limiting inalloca use to only calling conventions supported - line 4613: // FIXME: We no longer need the types from CallArgs; lift up and simplify. - line 4664: // FIXME: Do this earlier rather than hacking it in here! - line 4935: // FIXME: Avoid the conversion through memory if possible. - line 5186: // TODO: work this into building the attribute set. - line 5189: // FIXME: should this really take priority over __try, below? - line 5351: // FIXME: For now, emit a dummy basic block because expr emitters in clang/lib/Sema/SemaDeclAttr.cpp (39 lines): - line 174: // FIXME: Should we walk the chain of classes? - line 196: // FIXME: Include the type in the argument list. - line 519: // FIXME -- Check the type that the smart pointer points to. - line 590: // FIXME -- need to check this again on template instantiation - line 606: // FIXME -- need to check this again on template instantiation - line 1279: // FIXME: This check is currently being done in the analysis. It can be - line 1311: // FIXME: This check is currently being done in the analysis. It can be - line 1943: // FIXME: it would be good for us to keep the WeakRefAttr as-written instead - line 1999: // FIXME: demangle Str for C++, as the attribute refers to the mangled - line 2990: // FIXME: This error message could be improved, it would be nice - line 3069: // FIXME: If WG14 does not seem likely to adopt the same feature, add an - line 3079: // FIXME: C2x should support this feature as well, even as an extension. - line 3464: // FIXME: We could probably figure out how to get this to work for lambdas - line 3775: // FIXME: Do we need to bounds check? - line 3799: // FIXME: do we need to check if the type is NSString*? What are the - line 3954: // TODO: Check the type of the callee arguments. - line 4056: // FIXME: this isn't fully correct; we also need to test whether the - line 4275: // FIXME: Cache the number on the AL object? - line 4343: // FIXME: Cache the number on the AL object if non-dependent? - line 4344: // FIXME: Perform checking of type validity - line 4469: // FIXME: glibc uses 'word' to define register_t; this is narrower than a - line 4542: // FIXME: Sync this with InitializePredefinedMacros; we need to match int8_t - line 4544: // FIXME: Make sure floating-point mappings are accurate - line 4545: // FIXME: Support XF and TF types - line 4972: // FIXME: Warn if the rule name is unknown. This is tricky because only - line 5060: // TODO: diagnose uses of these conventions on the wrong target. - line 6746: // FIXME: It'd be nice to also emit a fixit removing uuid(...) (and, if it's - line 6966: // FIXME: Check for decl - it should be void ()(void). - line 7457: // TODO: Investigate what happens with the next major version of MSVC. - line 7720: // FIXME: Rather than create a NoSanitizeSpecificAttr, this creates a - line 8754: // FIXME: We should be able to handle these cases in TableGen. - line 8765: // FIXME: We should be able to handle this in TableGen as well. It would be - line 8772: // FIXME: This emits a different error message than - line 8887: // FIXME: Missing call to CheckFunctionDeclaration(). - line 8888: // FIXME: Mangling? - line 8889: // FIXME: Is the qualifier info correct? - line 8890: // FIXME: Is the DeclContext correct? - line 8938: // FIXME: "hideous" code from Sema::LazilyCreateBuiltin - line 9048: // FIXME: we may want to suppress diagnostics for all clang/lib/Serialization/ASTReaderDecl.cpp (39 lines): - line 261: // FIXME: We should avoid this pattern of getting the ASTContext. - line 435: // FIXME: Reorder according to DeclNodes.td? - line 556: // FIXME: Can we diagnose ODR violations somehow? - line 1187: // FIXME: odr checking? - line 1260: // FIXME: odr checking? - line 1557: // FIXME: If this is a redeclaration of a function from another module, handle - line 1885: // FIXME: Issue a diagnostic if the base classes don't match when we come - line 1888: // FIXME: Issue a diagnostic if the list of conversion functions doesn't - line 1895: // FIXME: Issue a diagnostic if FirstFriend doesn't match when we come to - line 1899: // FIXME: ODR-checking for merging lambdas (this happens, for instance, - line 2006: // FIXME: This is wrong for the ARM ABI, where some other module may have - line 2060: // FIXME: Check consistency if we have an old and new operator delete. - line 2168: // FIXME: Actually merge here, don't just overwrite. - line 2198: /// TODO: Unify with ClassTemplateDecl version? - line 2323: /// TODO: Unify with ClassTemplateSpecializationDecl version? - line 2373: // FIXME: If it's already present, merge it. - line 2386: /// TODO: Unify with ClassTemplatePartialSpecializationDecl version? - line 2533: // FIXME: Provide a known merge target to the second and subsequent such - line 2612: // FIXME: This is duplicated in several places. Refactor. - line 2689: // TODO: implement merge for other necessary decls. - line 3025: // FIXME: For namespaces and types, we're permitted to check that the entity - line 3164: // FIXME: This needs to cope with merging of prototyped/non-prototyped - line 3275: // FIXME: Also check the bitwidth is odr-equivalent, if any. - line 3288: // FIXME: Also check the value is odr-equivalent. - line 3583: // FIXME: We should do something similar if we merge two definitions of the - line 3653: // FIXME: Cache the definition once we've found it. Building a chain with - line 3684: // FIXME: [dcl.fct.spec]p4: - line 3780: // FIXME: In this case, the declaration should only be visible if a module - line 3794: // FIXME: Only the logic of merging MSInheritableAttr is present, it should - line 4258: // FIXME don't do a fatal error. - line 4359: // FIXME: We have several different dispatches on decl kind here; maybe - line 4394: // FIXME: We should not warn for duplicates in diamond: - line 4516: // FIXME: If we also have an update record for instantiating the - line 4520: // FIXME: We should call addHiddenDecl instead, to add the member - line 4585: // TODO: Add a function to skip over the next expr record. - line 4615: // FIXME: Maybe check for ODR violations. - line 4671: // FIXME: If we already have a partial specialization set, - line 4701: // FIXME: Check consistency if we have an old and new operator delete. - line 4716: // FIXME: If the exception specification is already present, check that it llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp (38 lines): - line 35: // TODO: More sophistication in the way Formulae are generated and filtered. - line 37: // TODO: Handle multiple loops at a time. - line 39: // TODO: Should the addressing mode BaseGV be changed to a ConstantExpr instead - line 42: // TODO: When truncation is free, truncate ICmp users' operands to make it a - line 45: // TODO: When a negated register is used by an add (such as in a list of - line 434: // FIXME: AR->getNoWrapFlags() - line 730: // FIXME: AR->getNoWrapFlags(SCEV::FlagNW) - line 807: // FIXME: AR->getNoWrapFlags(SCEV::FlagNW) - line 833: // FIXME: AR->getNoWrapFlags(SCEV::FlagNW) - line 960: /// TODO: Allow UDivExpr if we can find an existing IV increment that is an - line 1165: /// information about how the use may be satisfied. TODO: Represent multiple - line 1178: // TODO: Add a generic icmp too? - line 1318: // TODO: The non-affine case isn't precisely modeled here. - line 1403: // TODO: This should probably be the pointer size. - line 1423: // TODO: Need distinguish register class? - line 2203: // correctly. TODO: Remove this restriction. - line 2437: // FIXME: Overly conservative, termination condition could be an 'or' etc.. - line 2575: // TODO: Be less conservative when the type is similar and can use the same - line 2823: // FIXME: not sure if we want to recognize negation. - line 2873: /// TODO: Consider IVInc free if it's already used in another chains. - line 3083: /// TODO: Walk the entire domtree within this loop, not just the path to the - line 3438: /// TODO: This currently misses non-constant addrec step registers. - line 3439: /// TODO: Should this give more weight to users inside the loop? - line 3576: //FIXME: AR->getNoWrapFlags(SCEV::FlagNW) - line 3765: // TODO: If Sum is zero, it probably means ScalarEvolution missed an - line 3903: // TODO: For now, just add the min and max offset, because it usually isn't - line 4036: // TODO: Reconsider this special case. - line 4060: // TODO: This could be optimized to avoid all the copying. - line 4126: // TODO: This assumes we've done basic processing on all uses and - line 4262: // TODO: Use a more targeted data structure. - line 4265: // FIXME: The code for the scaled and unscaled registers looks - line 4517: //FIXME: Formulas should store bitwidth to do wrapping properly. - line 5568: // with the same value. TODO: Reorganize this. - line 5728: // FIXME: add profitable chain optimization for other kinds major cost, for - line 5934: // TODO: Identify and omit noop casts. - line 5948: // TODO: MinMax - although these haven't been encountered in the test suite. - line 6061: // TODO: Is this check needed? - line 6359: // TODO: Allow for multiple IV references for nested AddRecSCEVs clang/tools/libclang/CIndex.cpp (37 lines): - line 629: // FIXME: Eventually remove. This part of a hack to support proper - line 664: // FIXME: ObjCClassRef/ObjCProtocolRef for forward class/protocol - line 748: // FIXME: Visit the "outer" template parameter lists on the TagDecl - line 853: // FIXME: Visit explicitly-specified template arguments! - line 863: // FIXME: Attributes? - line 942: // FIXME: Visit the "outer" template parameter lists on the FunctionDecl - line 952: // FIXME: Visit the "outer" template parameter lists on the TagDecl - line 1020: // FIXME: Eventually convert back to just 'VisitDeclContext()'. Essentially - line 1118: // FIXME: This implements a workaround with @property declarations also being - line 1209: // FIXME: No source location information! - line 1332: // FIXME: Per-identifier location info? - line 1341: // FIXME: This whole routine is a hack to work around the lack of proper - line 1455: // FIXME: Visit DeclarationName? - line 1459: // FIXME: Visit nested-name-specifier. - line 1463: // FIXME: Visit nested-name-specifier. - line 2782: // FIXME: If we ever want to show these implicit accesses, this will be - line 3593: // FIXME: Add a flag for modules. - line 4557: return /*FIXME:*/ Msg->getLeftLoc(); - line 4889: // FIXME: A CXCursor_InclusionDirective should give the location of the - line 4892: // FIXME: A CXCursor_AnnotateAttr should give the location of the annotation - line 4895: // FIXME: A CXCursor_AsmLabelAttr should give the location of the label - line 5933: // FIXME: Setting "FirstInDeclGroup" in CXCursors is a hack that only works - line 6079: // FIXME: Need a way to enumerate all non-reference cases. - line 6127: // FIXME: Multiple variables declared in a single declaration - line 6211: // FIXME: Need a way to enumerate all non-reference cases. - line 6261: // FIXME: Multiple variables declared in a single declaration - line 6300: // FIXME: Multiple variables declared in a single declaration - line 6416: // FIXME: We end up faking the "parent" declaration here because we - line 6488: case Decl::Label: // FIXME: Is this right?? - line 6596: // FIXME: The ASTs should make finding the definition easier. - line 6636: // FIXME: We don't really know where to find the - line 6730: // FIXME: This is, unfortunately, linear time. - line 6805: // FIXME: Provide an argv0 here so we can find llvm-symbolizer. - line 7673: // FIXME: Some simple tests here could identify macro definitions and - line 7775: // FIXME: We use a ridiculous stack size here because the data-recursion - line 8274: // FIXME: Note that we can't easily compute the lexical context of a - line 9221: // TODO: Portability. clang/lib/CodeGen/CGObjCMac.cpp (36 lines): - line 50: // FIXME: We should find a nicer way to make the labels for metadata, string - line 196: // FIXME: It would be nice to unify this with the opaque type, so that the - line 899: /// defined. We should not need this, see FIXME in GenerateProtocol. - line 937: // FIXME: This is a horrible name. - line 946: // FIXME: This can be dropped once string functions are unified. - line 1594: // be fixed. FIXME: Can we do this if see a chain of super classes with - line 1790: // FIXME: maybe we should be doing things differently for all the - line 2102: // FIXME: We shouldn't need to do this cast, rectify the ASTContext and - line 2962: // FIXME: I don't understand why gcc generates this, or where it is - line 2971: // FIXME: We shouldn't need this, the protocol decl should contain enough - line 3032: // FIXME: I don't understand why gcc generates this, or where it is - line 3079: // FIXME: Is this necessary? Why only for protocol? - line 3334: // FIXME: This is poor design, the OCD should have a pointer to the category - line 3507: // FIXME: Gross - line 3528: // FIXME: Set CXX-structors flag. - line 3669: // FIXME: Should we look these up somewhere other than the module. Its a bit - line 4054: // TODO: If this method is inlined, the caller might know that `self` is - line 4550: - FIXME: If there is no @finally block we can do a few more - line 4745: // FIXME: For the time being we also match id; this should - line 4775: // FIXME: @catch (Class c) ? - line 5158: // FIXME: Get from somewhere - line 5625: // FIXME: Avoid std::string in "Sel.getAsString()" - line 5631: // FIXME: Merge into a single cstring creation function. - line 5657: // FIXME: Merge into a single cstring creation function. - line 5665: // FIXME: Merge into a single cstring creation function. - line 5666: // FIXME: This Decl should be more precise. - line 5700: // FIXME: It would be nice if we had an LLVM construct for this. - line 5761: // FIXME: This is leaked. - line 5762: // FIXME: Merge with rewriter code? - line 5966: // FIXME: This is the size of the setjmp buffer and should be target - line 6499: // FIXME: Is this correct (that meta class size is never computed)? - line 6517: // FIXME: why is this flag set on the metaclass? - line 6893: // FIXME: This matches gcc, but shouldn't the visibility be set on the use - line 7155: // FIXME: We shouldn't need to do this lookup here, should we? - line 7287: // FIXME: don't use this for that. - line 7596: // FIXME: We shouldn't need to do this cast, rectify the ASTContext and clang/lib/CodeGen/CGExpr.cpp (35 lines): - line 137: // FIXME: Should we prefer the preferred type alignment here? - line 235: // FIXME: This function should take an LValue as an argument. - line 268: // FIXME: This should be looking at E, not M. - line 289: // FIXME: We should probably register a cleanup in this case. - line 409: // FIXME: Should we put the new global into a COMDAT? - line 437: // FIXME: ideally this would use EmitAnyExprToMem, however, we cannot do so - line 733: // FIXME: If Address Sanitizer is enabled, insert dynamic instrumentation - line 735: // FIXME: Get object address space - line 808: // FIXME: This is not guaranteed to be deterministic! Move to a - line 873: // FIXME: This is inconsistent with the warning code in SemaChecking. Unify - line 877: // FIXME: Sema doesn't treat [1] as a flexible array member if the bound - line 888: // FIXME: If the base type of the member expr is not FD->getParent(), - line 891: // FIXME: Sema doesn't treat a T[1] union member as a flexible array - line 1130: // TODO: Support accesses to members of base classes in TBAA. For now, we - line 1143: // TODO: Is there any reason to treat base-to-derived conversions - line 1160: // TODO: conditional operators, comma. - line 1355: // FIXME: Is it possible to create an ExprWithCleanups that produces a - line 2272: // FIXME: since we're shuffling with undef, can we just use the indices - line 2649: // FIXME: This is unnecessarily broad. Check whether this would actually be a - line 2718: // FIXME: Handle other kinds of non-odr-use DeclRefExprs. - line 2762: // FIXME: We should be able to assert this for FunctionDecls as well! - line 2763: // FIXME: We should be able to assert this for all DeclRefExprs, not just - line 2854: // FIXME: While we're emitting a binding from an enclosing scope, all other - line 3368: // FIXME: consider emitting an intrinsic call like - line 3561: // TODO: Support TBAA for member arrays. - line 3809: // correctly, so we need to cast to i8*. FIXME: is this actually - line 4324: // TODO: Support TBAA for bit fields. - line 4331: // FIXME: this should get propagated down through anonymous structs - line 4342: // TODO: Support TBAA for unions. - line 4461: // TODO: Generate TBAA information that describes this access as a structure - line 4697: // FIXME: Once pointee types are removed from IR, remove this. - line 4727: // TODO: Support accesses to members of base classes in TBAA. For now, we - line 5058: // FIXME: This shouldn't require another copy. - line 5128: // FIXME: A lot of the code below could be shared with EmitMemberExpr. - line 5272: // FIXME: Revisit this based on C++ committee response to unimplementability. llvm/lib/Transforms/IPO/OpenMPOpt.cpp (35 lines): - line 359: // TODO: We should output information to the user (under debug output - line 392: // TODO: We directly convert uses into proper calls and unknown uses. - line 477: // TODO: We should attach the attributes defined in OMPKinds.def. - line 702: // TODO: This assumes the instruction \p Before is in the same - line 779: // TODO: This should be folded into buildCustomStateMachine. - line 812: /// FIXME: This should be done from the Attributor once it is added. - line 1010: // TODO: Change the interface to allow single CIs expanded, e.g, to - line 1104: // TODO: Remove barrier if the merged parallel region includes the - line 1139: // TODO: support merging across basic-blocks. - line 1174: // TODO: ICV tracking to detect compatibility. - line 1183: // TODO: Keep track of possible OpenMP calls in the callpath. - line 1361: // TODO: Check if can be moved upwards. - line 1449: /// TODO: Move this to a unittest when unittests are available for OpenMPOpt. - line 1482: // FIXME: This traverses only the BasicBlock where RuntimeCall is. - line 1489: // TODO: Once we detect the regions to be offloaded we should use the - line 1499: // FIXME: For now if we move it over anything without side effect - line 1556: // TODO: Figure out how to actually combine multiple debug locations. For - line 1592: // TODO: Use the debug locations of the calls instead. - line 1618: // TODO: Use dominance to find a good position instead. - line 1707: // TODO: Below we basically perform a fixpoint iteration with a pessimistic - line 1912: // TODO: We should use an AA to create an (optimistic and callback - line 1956: // TODO: In the future we want to track more than just a unique kernel. - line 2024: // TODO: Checking the number of uses is not a necessary restriction and - line 2128: // FIXME: come up with better string. - line 2131: // FIXME: come up with some stats. - line 2160: // FIXME: handle setters with more that 1 arguments. - line 2185: /// TODO: Figure out a way to avoid adding entry in - line 2316: // FIXME: come up with better string. - line 2321: // FIXME: come up with some stats. - line 2417: // FIXME: come up with better string. - line 2420: // FIXME: come up with some stats. - line 2456: // FIXME: come up with better string. - line 2461: // FIXME: come up with some stats. - line 4039: // TODO: Once we have call site specific value information we can provide - line 4857: // TODO: Create a more cross-platform way of determining device kernels. clang/lib/AST/ItaniumMangle.cpp (34 lines): - line 969: // FIXME: This is a hack; extern variables declared locally should have - line 1040: // FIXME: Preserve hierarchy in module names rather than flattening - line 1206: // FIXME: GCC does not appear to mangle the template arguments when - line 1220: // FIXME: GCC does not appear to mangle the template arguments when - line 1384: // FIXME: Non-standard mangling for decomposition declarations: - line 1591: // FIXME: The template arguments are part of the enclosing prefix or - line 2216: // FIXME: not clear how to mangle this! - line 2271: // FIXME: not clear how to mangle this! - line 2346: // FIXME: not clear how to mangle this! - line 2358: // FIXME: Other compilers mangle partially-resolved template arguments in - line 2742: // FIXME: This is an approximation of the instantiation-dependent name - line 2755: // FIXME: This is wrong when mapping to the canonical type for a dependent - line 2782: // FIXME: We presumably shouldn't strip off ElaboratedTypes with - line 3078: // TODO: Check the mangling scheme for RISC-V V. - line 3104: // FIXME: we should be mangling all of the above. - line 3108: // FIXME: To match mingw GCC, thiscall should only be mangled in when it is - line 3144: // FIXME: regparm - line 3145: // FIXME: noreturn - line 3205: // FIXME: We don't have enough information in the AST to produce the 'Y' - line 3381: // FIXME: not clear how to mangle this! - line 3823: // FIXME: GCC does not appear to mangle the template arguments when - line 3869: // TODO: avoid making this TemplateName. - line 3875: // FIXME: GCC does not appear to mangle the template arguments when - line 3883: // FIXME: this is pretty unsatisfactory, but there isn't an obvious - line 3889: // FIXME: this is pretty unsatisfactory, but there isn't an obvious - line 4195: // FIXME: invent manglings for all these. - line 4768: // FIXME: Add isImplicit to CXXConstructExpr. - line 4842: // FIXME: not clear how to mangle this! - line 4851: // FIXME: not clear how to mangle this! - line 5039: // FIXME: Propose a non-vendor mangling. - line 5046: // FIXME: Propose a non-vendor mangling. - line 5053: // FIXME: Propose a non-vendor mangling. - line 5122: // transformed to have pointer type. FIXME: apparently these don't - line 5416: // FIXME: mangleValueInTemplateArg has quadratic time complexity in clang/lib/Driver/ToolChains/Clang.cpp (34 lines): - line 151: // TODO: Add support for other offloading programming models here. - line 968: // FIXME: There should be a simpler way to find the object file for this - line 1235: // FIXME: This should use the computed output file location. - line 1390: // FIXME: There is a very unfortunate problem here, some troubled - line 1412: // FIXME: We should probably sink the logic for handling these from the - line 1456: // FIXME: Move to target hook. - line 1613: // FIXME: Support -meabi. - line 1614: // FIXME: Parts of this are duplicated in the backend, unify this somehow. - line 1679: // FIXME: This changes CPP defines, we need -target-soft-float. - line 2736: // FIXME: The target may have picked a non-IEEE default mode here based on - line 3196: // FIXME: Verify the argument is a valid integer. - line 3759: // FIXME: It seems like this entire block, and several around it should be - line 4136: // FIXME: Move backend command line options to the module. - line 4402: // FIXME: Implement custom jobs for internal actions. - line 4488: // FIXME: Subclass ToolChain for SPIR and move this to addClangWarningOptions. - line 4986: // FIXME: Validate the argument here so we don't produce meaningless errors - line 5225: // TODO: Audit uses of KernelOrKext and see where it'd be more appropriate to - line 5267: // FIXME: Handle -mtune=. - line 5306: // FIXME: For now we want to demote any errors to warnings, when they have - line 5515: // FIXME: Support -fpreprocessed - line 5617: // FIXME: Clang doesn't correctly handle -std= when the input language - line 5647: // behavior for now. FIXME: Directly diagnose uses of a string literal as - line 5650: // FIXME: This should behave just like a warning flag, and thus should also - line 5951: // FIXME: It would be better to have a mode which *only* omits IR - line 6374: // FIXME: MSVC introduced /Zc:twoPhase- to disable this behavior in their - line 6396: // FIXME: Find a better way to determine whether the language has modules - line 6651: // TODO: Once -module-dependency-dir works with -frewrite-includes it'd be - line 6767: // FIXME: -fembed-bitcode -save-temps will save optimized bitcode instead of - line 7570: // FIXME: Think about this more. - line 7642: // FIXME: Implement custom jobs for internal actions. - line 7765: // FIXME: Add -static support, once we have it. - line 7816: // FIXME: Stop lying and consume only the appropriate driver flags - line 7932: // TODO: Replace parsing of -march flag. Can be done by storing GPUArch - line 8026: // TODO: Replace parsing of -march flag. Can be done by storing GPUArch clang/lib/Sema/SemaTemplateDeduction.cpp (34 lines): - line 394: // FIXME: We may still need to deduce parts of the type here! But we - line 406: // FIXME: It's not clear how deduction of a parameter of reference - line 555: // FIXME: Try to preserve type sugar here, which is hard - line 566: // FIXME: Should not lose sugar here. - line 700: // FIXME: What if we encounter multiple packs with different numbers of - line 732: // FIXME: Also collect the unexpanded packs in any type and template - line 809: // FIXME: If we could represent a "depth i, index j, pack elem k" - line 875: // FIXME: This isn't required by the normative wording, but substitution - line 898: // FIXME: This is wrong, it's possible that some pack elements are - line 1077: // FIXME: There is no wording to say what we should do in this case. We - line 1161: // FIXME: Compatible calling conventions. - line 1587: // FIXME: Implement deduction in dependent case. - line 1764: // FIXME: Per core-2016/10/1019 (no corresponding core issue yet), permit - line 1782: // FIXME: Should we? - line 1795: // FIXME: Detect non-deduced exception specification mismatches? - line 2320: // FIXME: If this is a fixed-arity pack expansion from an outer level of - line 2654: // FIXME: This should not be a template, but - line 2672: // FIXME: Where did the word "trailing" come from? - line 2705: // FIXME: These template arguments are temporary. Free them! - line 2758: // FIXME: These template arguments are temporary. Free them! - line 2892: // FIXME: Factor out duplication with partial specialization version above. - line 3317: // FIXME: Resolve core issue (no number yet): if the original P is a - line 3399: // FIXME: We should track this in OriginalCallArgs so we don't need to - line 3538: // FIXME: This presumably means a pack ended up smaller than we - line 4054: // FIXME: The above rule allows the size of the parameter pack to change - line 4076: // FIXME: Should we add OriginalCallArgs for these? What if the - line 4482: // FIXME: Is this still necessary? - line 4515: // FIXME: We're just going to throw this information away. Don't build it. - line 4549: // FIXME: Are there other cases for which a custom diagnostic is more useful - line 5063: // FIXME: We fail to implement [temp.deduct.type]p1 along this path. We need - line 5181: // FIXME: This mimics what GCC implements, but doesn't match up with the - line 5287: // FIXME: Can we order the candidates in some sane way? - line 5474: // FIXME: Cache the injected template arguments rather than recomputing - line 5811: // FIXME: C++17 [temp.deduct.call]p1: clang/lib/Serialization/ASTWriter.cpp (33 lines): - line 1092: // FIXME: This is wrong. We distinguish them by asking if the path is - line 1299: Record.push_back((unsigned)M.Kind); // FIXME: Stable encoding - line 1579: // FIXME: The path should be taken from the FileEntryRef. - line 1623: // FIXME: The path should be taken from the FileEntryRef. - line 1836: // FIXME: If the header is excluded, we should write out some - line 1877: // FIXME: It'd be preferable to avoid doing this if we were given - line 1907: // FIXME: Deal with cases where there are multiple unresolved header - line 2020: /// TODO: We should probably use an on-disk hash table (stored in a - line 2084: Record.push_back(File.getFileCharacteristic()); // FIXME: stable encoding - line 2299: // FIXME: Include a location for the use, and say which one was used. - line 2605: // FIXME: This can easily happen, if we have a reference to a submodule that - line 2811: // FIXME: This may fail; we don't require that all exported modules - line 2819: //FIXME: How do we emit the 'use'd modules? They may not be submodules. - line 2832: // FIXME: This may fail; we don't require that all conflicting modules - line 3775: // FIXME: We need to build the lookups table, which is logically const. - line 3811: // FIXME: While we might want to start emitting on-disk entries for negative - line 4272: Record.push_back(A->getKind() + 1); // FIXME: stable encoding, target attrs - line 4296: // FIXME: When reading literal tokens, reconstruct the literal pointer - line 4299: // FIXME: Should translate token kind to a stable encoding. - line 4301: // FIXME: Should translate token flags to a stable encoding. - line 4650: // FIXME: Why do we not do this if there's already an update block? - line 4936: // FIXME: If the module has macros imported then later has declarations - line 5005: // FIXME: Do we need to also save the template specialization kind here? - line 5070: // FIXME: Ensure we don't get here for explicit instantiations. - line 5253: // FIXME: Is this right? - line 5384: // FIXME: ParmVarDecls that are part of a function type of a parameter of - line 5582: // FIXME: Move this out of the main ASTRecordWriter interface. - line 5606: // FIXME: Move this out of the main ASTRecordWriter interface. - line 5646: // FIXME: Move this out of the main ASTRecordWriter interface. - line 5674: // FIXME: Make VBases lazily computed when needed to avoid storing them. - line 5733: // FIXME: Also emit the constant initializer value. - line 5819: // FIXME: This happens during template instantiation, should we - line 5834: // FIXME: This is a gross hack. llvm/lib/Passes/PassBuilderPipelines.cpp (33 lines): - line 247: // TODO: Investigate the cost/benefit of tail call elimination on debugging. - line 277: // FIXME: Currently this is split into two loop pass pipelines because we run - line 295: // TODO: Investigate promotion cap for O1. - line 300: // TODO: Investigate promotion cap for O1. - line 353: // FIXME: It isn't clear why we do this *after* loop passes rather than - line 374: // TODO: Investigate if this is too expensive. - line 449: // FIXME: Currently this is split into two loop pass pipelines because we run - line 467: // TODO: Investigate promotion cap for O1. - line 473: // TODO: Investigate promotion cap for O1. - line 537: // FIXME: It isn't clear why we do this *after* loop passes rather than - line 561: // TODO: Investigate if this is too expensive. - line 605: // FIXME: The hint threshold has the same value used by the regular inliner - line 608: // FIXME: this comment is cargo culted from the old pass manager, revisit). - line 717: // FIXME: The current CGSCC pipeline has its origins in the legacy pass - line 734: // FIXME: It isn't at all clear why this should be limited to O3. - line 818: // TODO: See if we can move later and consolidate with the location where - line 820: // TODO: We pass HasSampleProfile (whether there was a sample profile file - line 853: // FIXME: revisit how SampleProfileLoad/Inliner/ICP is structured. - line 902: // FIXME: This position in the pipeline hasn't been carefully considered in - line 914: // FIXME: Should this instead by a run of SROA? - line 915: // FIXME: We should probably run instcombine and simplifycfg afterward to - line 965: /// TODO: Should LTO cause any differences to this set of passes? - line 976: // FIXME: It would be really good to use a loop-integrated instruction - line 1059: // FIXME: It would be really good to use a loop-integrated instruction - line 1118: // FIXME: Is this really an optimization rather than a canonicalization? - line 1154: // FIXME: We need to run some loop optimizations to re-rotate loops after - line 1169: // FIXME: see discussion in https://reviews.llvm.org/D112851, - line 1236: // FIXME: It would seem like these should come first in the optimization - line 1242: // TODO: Relative look table converter pass caused an issue when full lto is - line 1321: // FIXME: It isn't clear whether this is really the right place to run this - line 1414: // FIXME: We should use a customized pre-link pipeline! - line 1498: // FIXME: Is this really an optimization rather than a canonicalization? - line 1635: // FIXME: Add loop interchange. llvm/lib/Transforms/InstCombine/InstructionCombining.cpp (33 lines): - line 130: // FIXME: these limits eventually should be as low as 2. - line 157: // FIXME: Remove this flag when it is no longer necessary to convert - line 257: // TODO: This could be extended to allow vectors. Datalayout changes might be - line 330: // TODO: Enhance logic for other casts and remove this check. - line 335: // TODO: Enhance logic for other BinOps and remove this check. - line 349: // TODO: This assumes a zext cast. - line 592: // TODO: It would be nice to handle division, aka "(X + Y)/Z = X/Z + Y/Z", - line 624: // TODO: We can add other conversions e.g. shr => div etc. - line 974: // TODO: Handle non-commutative binop (constant is operand 0). - line 975: // TODO: Handle zext. - line 976: // TODO: Peek through 'not' of cast. - line 1008: // TODO: Handle non-commutative binary intrinsics as below for binops. - line 1080: // FIXME: This is a hack to avoid infinite looping with min/max patterns. - line 1092: // TODO: Deal with FP constants? - line 1232: // FIXME: This can lead to an increase in IR generation because we might - line 1603: // TODO: We could ease the mask requirement to allow different undef lanes, - line 1646: // TODO: Allow shuffles that contain undefs in the mask? - line 1648: // TODO: Allow arbitrary shuffles by shuffling after binop? - line 1716: // TODO: We could shuffle those non-undef constant values into the - line 1763: // FIXME: This may not be safe if the analysis allows undef elements. By - line 2043: // TODO: 1) Scalarize splat operands, 2) scalarize entire instruction if - line 2247: // TODO: The basic approach of these folds is not compatible with opaque - line 2582: // TODO: add recursion if returned attribute is present - line 2586: // TODO: remove implementation restriction - line 2822: // FIXME: We can extend the number of predecessor, but in that case, we - line 2996: // FIXME: recurse into unconditional predecessors? - line 3085: // TODO: A better way to determine this would use ComputeNumSignBits(). - line 3098: // TODO: We can make it aggressive again after fixing PR39569. - line 3764: // TODO: handle e.g. store to alloca here - only worth doing if we extend - line 3773: // TODO: allow malloc? - line 3775: // TODO: allow memory access dominated by move point? Note that since AI - line 3796: // TODO: support lifetime.start/end here - line 3821: /// FIXME: We could remove droppable uses that are not dominated by clang/include/clang/AST/RecursiveASTVisitor.h (32 lines): - line 276: // FIXME: migrate callers to TemplateArgumentLoc instead. - line 290: // FIXME: take a TemplateArgumentLoc* (or TemplateArgumentListInfo) instead. - line 389: // FIXME: revamp to take TypeLoc's rather than Types. - line 410: // FIXME: this currently just calls the matching Type methods - line 801: // FIXME: no template name location? - line 802: // FIXME: no source locations for a template argument pack? - line 816: // FIXME: how can TSI ever be NULL? - line 1129: // FIXME: ComplexTypeLoc is unfinished - line 1194: // FIXME: order? why not size expr first? - line 1195: // FIXME: base VectorTypeLoc is unfinished - line 1202: // FIXME: VectorTypeLoc is unfinished - line 1213: // FIXME: size and attributes - line 1214: // FIXME: base VectorTypeLoc is unfinished - line 1234: // FIXME: location of exception specifications (attributes?) - line 1267: // FIXME: location of underlying expr - line 1301: // FIXME: use the loc for the template name? - line 1490: DEF_TRAVERSE_DECL(ObjCPropertyImplDecl, {// FIXME: implement this - line 1541: DEF_TRAVERSE_DECL(ObjCCompatibleAliasDecl, {// FIXME: implement - line 1544: DEF_TRAVERSE_DECL(ObjCCategoryDecl, {// FIXME: implement - line 1552: DEF_TRAVERSE_DECL(ObjCCategoryImplDecl, {// FIXME: implement - line 1555: DEF_TRAVERSE_DECL(ObjCImplementationDecl, {// FIXME: implement - line 1558: DEF_TRAVERSE_DECL(ObjCInterfaceDecl, {// FIXME: implement - line 1570: DEF_TRAVERSE_DECL(ObjCProtocolDecl, {// FIXME: implement - line 1746: // FIXME: For now traverse explicit instantiations here. Change that - line 2020: // FIXME: implement the rest. - line 2027: // FIXME: implement the rest. - line 2242: {// FIXME: MS Asm doesn't currently parse Constraints, Clobbers, etc. Once - line 2389: // All we need are the default actions. FIXME: use a helper function. - line 2582: // We traverse those if so. FIXME: implement these. - line 2638: // FIXME: The source expression of the OVE should be listed as - line 3703: // FIXME: look at the following tricky-seeming exprs to see if we - line 3711: // FIXME: go through all the stmts and exprs again, and see which of them llvm/lib/Target/X86/X86InstrInfo.cpp (31 lines): - line 1271: // TODO: For a 32-bit target, we need to adjust the LEA variables with - line 1667: /// FIXME: Support these similar to ADD8ri/ADD16ri*. - line 1918: // TODO: Commuting the 1st operand of FMA*_Int requires some additional - line 2450: // TODO/FIXME: The commute still may be legal if it is known that the - line 3670: // FIXME: We use a fatal error here because historically LLVM has tried - line 3923: // FIXME: Relying on memoperands() may not be right thing to do here. Check - line 4264: // FIXME: These are not the only instructions in this switch that clear the - line 4315: // TODO: TBM instructions. - line 5013: // FIXME: A more advanced approach would be to choose the best input mask - line 5060: /// FIXME: This should be turned into a TSFlags. - line 5708: // TODO: In most cases AVX doesn't have a 8-byte alignment requirement. - line 5789: // FIXME: AsmPrinter doesn't know how to handle - line 5796: // FIXME: Need to exclude other relocations that only support specific - line 5850: // FIXME: Allow scalar intrinsic instructions like ADDSSrm_Int. - line 6297: // TODO: Support the case where LoadMI loads a wide register, but MI - line 6414: // FIXME: PICBase = getGlobalBaseReg(&MF); - line 6585: // TODO: Check if 32-byte or greater accesses are slow too? - line 6753: // FIXME: If a VR128 can have size 32, we should be checking if a 32-byte - line 6824: // FIXME: If a VR128 can have size 32, we should be checking if a 32-byte - line 7066: return false; // FIXME: overly conservative? - line 7127: // FIXME: Return false for x87 stack register classes for now. We can't - line 7138: /// TODO: Eliminate this and move the code to X86MachineFunctionInfo. - line 7640: // TODO: Should we run EVEX->VEX earlier? - line 7662: // FIXME: Some shuffle and unpack instructions have equivalents in different - line 7795: // FIXME: This doesn't catch all the cases we would like. If the input - line 8381: // TODO: There are many more machine instruction opcodes to match: - line 8826: // TODO: Handle MOV8ri and MOV16ri. - line 8889: // TODO: There should be a helper function for copying only fast-math-flags. - line 9228: // FIXME: x86 doesn't implement getInstSizeInBytes, so - line 9260: // FIXME: Use real size in bytes for call and ret instructions. - line 9332: // FIXME: There are instructions which are being manually built without clang/lib/Driver/Driver.cpp (31 lines): - line 231: // TODO: Make sure that Clang-only options don't pollute Flang output - line 462: // FIXME: Already done in Compilation *Driver::BuildCompilation - line 675: // FIXME: We could use a nicer diagnostic here. - line 815: // TODO: Add support for other offloading programming models here. - line 1032: // FIXME: Handle environment options which affect driver behavior, somewhere - line 1042: // FIXME: What are we going to do with -V and -b? - line 1109: // FIXME: This stuff needs to go into the Compilation, not the driver. - line 1128: // FIXME: We need to figure out where this behavior should live. Most of it - line 1148: // FIXME: TargetTriple is used by the target-prefixed calls to as/ld - line 1337: // FIXME: the driver can dispatch multiple cc1 invocations, leading to - line 1622: // FIXME: See FIXME above regarding result code interpretation. - line 1659: // FIXME: The following handlers should use a callback mechanism, we don't - line 1704: // TODO: Make sure that Clang-only options don't pollute Flang output - line 1758: // TODO: Find a good way to add them to OptTable instead and them remove - line 1887: // FIXME: The following handlers should use a callback mechanism, we don't - line 2345: // FIXME: Clean this up if we move the phase sequence into the type. - line 3353: /// TODO: Add the implementation for other specialized builders here. - line 3380: // TODO: Build other specialized builders here. - line 3721: // FIXME: If the main compilation fails, the PCH generation should - line 3729: // FIXME: Understand why the last Phase List length is used here. - line 3783: // FIXME: Linking separate translation units for SPIR-V is not supported yet. - line 3833: // FIXME: OpenCL - we could strip linking phase out from OpenCL - line 3842: // TODO: Consider removing this because the merged may not end up being - line 3863: // FIXME: Should we include any prior module file outputs as inputs of - line 4157: // FIXME: This is a hack; find a cleaner way to integrate this into the - line 4251: // FIXME: It would be nice to be able to send the argument to the - line 4639: // FIXME: Remove when darwin's toolchain is initialized during construction. - line 4697: // FIXME: It would be nice to not claim this here; maybe the old scheme of - line 4773: // FIXME: Clean this up. - line 5255: // FIXME: Needs a better variable than TargetTriple - line 5335: // FIXME: If anybody needs it, implement this obscure rule: llvm/lib/Analysis/InlineCost.cpp (30 lines): - line 500: /// FIXME: if it is necessary to derive from InlineCostCallAnalyzer, note - line 501: /// the FIXME in onLoweredCall, when instantiating an InlineCostCallAnalyzer - line 639: /// FIXME: if InlineCostCallAnalyzer is derived from, this may need - line 794: // TODO: Improve this hacky condition. - line 953: // FIXME: It would be nice to remove all such bonuses. At least it would be - line 1036: // FIXME: These constants are taken from the heuristic-based cost visitor. - line 1043: // FIXME: These are taken from the heuristic-based cost visitor: we should - line 1207: // FIXME: we shouldn't repeat this logic in both the Features and Cost - line 1346: // FIXME: If the threshold is removed or lowered too much, we could end up - line 1367: // FIXME: This is overly conservative. Dynamic allocas are inefficient for - line 1378: // FIXME: We need to propagate SROA *disabling* through phi nodes, even - line 1383: // FIXME: Pointer sizes may differ between different address spaces, so do we - line 1554: /// FIXME: Given that we know CB's parent (F) caller - line 1711: // FIXME: Note that it is possible that an unreachable-terminated block has a - line 1844: // FIXME: After switching to the new passmanager, simplify the logic below - line 1855: // FIXME: This should update the threshold only if it exceeds the - line 2059: // FIXME: - line 2100: // FIXME: Using the instsimplify logic directly for this is inefficient - line 2163: // FIXME: Lift this into part of the InstVisitor. - line 2345: // FIXME: This logic isn't really right; we can safely inline functions with - line 2353: // FIXME: It's not clear that a single instruction is an accurate model for - line 2359: // FIXME: It's not clear that a single instruction is an accurate model for - line 2365: // FIXME: It's not clear that a single instruction is an accurate model for - line 2371: // FIXME: It might be reasonably to discount the cost of instructions leading - line 2403: // FIXME: Currently, the number of instructions in a function regardless of - line 2617: // FIXME: If a caller has multiple calls to a callee, we end up recomputing - line 2654: // FIXME: pr/39560: continue relaxing this overt restriction. - line 2771: // FIXME: The maxStoresPerMemcpy setting from the target should be used - line 3045: // FIXME: Remove this check (and make the assignment unconditional) after - line 3112: // FIXME: Redesign the usage of InlineParams to expand the scope of this pass. clang/lib/Sema/SemaStmt.cpp (30 lines): - line 572: // FIXME: this code should move when a planned refactoring around statement - line 609: // FIXME: Replace Expr::IgnoreImplicitAsWritten() with this function. - line 627: // FIXME: Add Expr::IgnoreParenImplicitAsWritten() with this definition. - line 1072: // FIXME: PerformContextualImplicitConversion doesn't always tell us if it - line 1130: // FIXME: Introduce a second, default-ignored warning for this case? - line 1135: // FIXME: Use different diagnostics for overflow in conversion to promoted - line 1244: // FIXME: Grab an IntRange for the condition rather than using the unpromoted - line 1273: // FIXME: Remove the default statement from the switch block so that - line 1302: // FIXME: This duplicates the check performed for warn_not_in_enum below. - line 1375: // FIXME: We really want to remove the bogus case stmt from the - line 1468: // FIXME: We really want to remove the bogus case stmt from the - line 1478: // TODO: it would be nice if we printed enums as enums, chars as - line 1612: // FIXME: If the case list was broken is some way, we don't have a good system - line 2219: // TODO: should we do a contextual conversion? - line 2267: // TODO: check for an incompatible signature? - line 2383: // FIXME: ARC may want to turn this into 'const __unsafe_unretained' if - line 2475: // FIXME: Support init-statements in Objective-C++20 ranged for statement. - line 2580: // FIXME: getCurScope() should not be used during template instantiation. - line 2730: // FIXME: This should not be used during template instantiation. We should - line 2836: // FIXME: This results in codegen generating IR that recalculates the - line 2998: // FIXME: getCurScope() should not be used during template instantiation. - line 3587: // FIXME: Blocks might have a return type of 'auto' explicitly specified. - line 3595: // FIXME: preserve the ill-formed return expression. - line 3603: // FIXME: Fold this into the 'auto' codepath above. - line 3659: // Delay processing for now. TODO: there are lots of dependent - line 3690: // FIXME: Cleanup temporaries here, anyway? - line 3982: // FIXME: Add a flag to the ScopeInfo to indicate whether we're performing - line 4143: // FIXME: Clean up temporaries here anyway? - line 4157: // FIXME: Clean up temporaries here anyway? - line 4664: // FIXME: Bail out now if the capture is not used and the initializer has clang/lib/StaticAnalyzer/Core/RegionStore.cpp (29 lines): - line 235: // TODO: We might need a .printJson for I.getKey() as well. - line 474: // FIXME: The offsets of empty bases can be tricky because of - line 660: // FIXME: Possibly incorporate the offset? - line 895: // FIXME: This doesn't catch the case where we're really invalidating a - line 911: // FIXME: This is probably incorrect; consider invalidating an outer - line 980: // FIXME: This isn't very precise; see the example in - line 1372: // TODO: This could possibly be more precise with modules. - line 1423: // FIXME: We can consider lazily symbolicating such memory, but we really - line 1453: // FIXME: Perhaps this method should just take a 'const MemRegion*' argument - line 1458: // FIXME: we do not yet model the parts of a complex type, so treat the - line 1463: // FIXME: We should eventually handle funny addressing. e.g.: - line 1474: // FIXME: Handle unions. - line 1485: // FIXME: handle Vector types. - line 1493: // FIXME: Here we actually perform an implicit conversion from the loaded - line 1502: // FIXME: Here we actually perform an implicit conversion from the loaded - line 1512: // FIXME: Here we actually perform an implicit conversion from the loaded - line 1737: // FIXME: We also need to take ElementRegions with symbolic indexes into - line 1796: // FIXME: Should return UndefinedVal. - line 1818: // FIXME: Handle CompoundLiteralExpr. - line 1865: // FIXME: Support other SVals. - line 1891: /// FIXME: Nevertheless, we can't do the same for pointer declaraions, like: - line 1921: // FIXME: Handle loads from strings where the literal is treated as - line 1948: // FIXME: This is a hack, and doesn't do anything really intelligent yet. - line 2058: // FIXME: This is a hack to deal with RegionStore's inability to distinguish a - line 2098: // FIXME: This is a hack to deal with RegionStore's inability to distinguish a - line 2148: // FIXME: We also need to take ElementRegions with symbolic indexes into - line 2231: // FIXME: This is only true when we're starting analysis from main(). - line 2446: // FIXME: It's not responsibility of the Store to transform this lvalue - line 2612: // FIXME: The annoying part about compound values is that they don't carry llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp (29 lines): - line 179: // FIXME: Thumb2 support. - line 1077: // TODO: We don't handle cases where the forwarding reg is narrower/wider - line 1249: // FIXME: It's possible to only store part of the QQ register if the - line 1309: case ARM::t2STRs: // FIXME: don't use t2STRs to access frame. - line 1559: case ARM::t2LDRs: // FIXME: don't use t2LDRs to access frame. - line 1774: // FIXME: The below assumes PIC relocation model and that the function - line 1942: /// FIXME: remove this in favor of the MachineInstr interface once pre-RA-sched - line 2023: /// FIXME: remove this in favor of the MachineInstr interface once pre-RA-sched - line 2046: return false; // FIXME: overly conservative? - line 2077: // FIXME: This is a big hammer. But the alternative is to add all potential - line 2760: // FIXME: When addrmode2 goes away, this will simplify (like the - line 3124: // FIXME: We could try to reschedule the AND. - line 3433: // FIXME: t2ADDrr should be split, as different rulles apply when writing to SP. - line 3677: // FIXME: The current MachineInstr design does not support relying on machine - line 3703: // FIXME: The scheduler currently can't handle values larger than 16. But - line 4152: // FIXME: This doesn't properly handle multiple uses. - line 4180: // FIXME: Shifter op hack: no shift (i.e. [r +/- r]) or [r + r << 2] - line 4205: // FIXME: Properly handle all of the latency adjustments for address - line 4413: // FIXME: Use Function::hasOptSize(). - line 4486: // FIXME: Shifter op hack: no shift (i.e. [r +/- r]) or [r + r << 2] - line 4513: // FIXME: Properly handle all of the latency adjustments for address - line 5397: // FIXME: In some cases, VLDRS can be changed to a VLD1DUPd32 which defines - line 5541: // TODO: Handle cases where Reg is a super- or sub-register of the - line 5553: // TODO: Third operand can be global address (usually some string). Since - line 6139: // FIXME: Values are already scaled in this addressing mode. - line 6197: // FIXME: Allow outlining from multiple functions with the same section - line 6202: // FIXME: Thumb1 outlining is not handled - line 6395: // FIXME: This is very restrictive; the flags check the whole block, - line 6405: // FIXME: We could handle some instructions which add a constant offset to clang/lib/StaticAnalyzer/Core/ExprEngine.cpp (29 lines): - line 237: // FIXME: It would be nice if we had a more general mechanism to add - line 313: // FIXME: This function is a hack that works around the quirky AST - line 405: // FIXME: Unimplemented. - line 414: // FIXME: In other words, what we should always do is copy value of the - line 464: // FIXME: Currently the state might already contain the marker due to - line 493: // FIXME: Currently the state might already contain the marker due to - line 728: // and the store. TODO: The function should just return new env and store, - line 936: // TODO: We're not evaluating allocators for all cases just yet as - line 963: // FIXME: This should not happen. The language guarantees a presence - line 973: // FIXME: We need to run the same destructor on every element of the array. - line 1010: // FIXME: We need to run the same destructor on every element of the array. - line 1057: // FIXME: We need to run the same destructor on every element of the array. - line 1079: // FIXME: Currently we insert temporary destructors for default parameters, - line 1104: // FIXME: Currently CleanDtorState can be empty here due to temporaries being - line 1164: // FIXME: Currently the state might also already contain the marker due to - line 1672: // FIXME: ChooseExpr is really a constant. We need to fix - line 1796: // FIXME: This is not complete. We basically treat @throw as - line 1932: // TODO: Clean up the unneeded nodes. - line 2002: // FIXME: Refactor this into a checker. - line 2349: // FIXME: add checker visit. - line 2355: // FIXME: Implement dispatch for symbolic pointers. - line 2381: // FIXME: We currently cannot assert that temporaries are clear, because - line 2454: // FIXME: add checker - line 2602: // FIXME: proper support for bound declarations. - line 2650: // FIXME: non-glvalue vector reads are not modelled. - line 2664: // FIXME: Prechecks eventually go in ::Visit(). - line 2748: // FIXME: Ideally we should model the behavior of the atomics precisely here. - line 3015: // FIXME: If I pass null tag, the graph is incorrect, e.g for - line 3090: // FIXME: Some day in the future it would be nice to allow a "plug-in" llvm/lib/Target/X86/X86ISelDAGToDAG.cpp (28 lines): - line 335: // TODO: We'd like to remove this restriction. - line 640: // TODO: We could shrink the load and fold if it is non-volatile. - line 668: // FIXME: This is probably also true for non-TLS addresses. - line 741: // FIXME: Are there cheap opcodes we might want to duplicate? - line 1148: // FIXME: Can we do this during lowering/combine. - line 1236: // FIXME: This should only happen when not compiled with -O0. - line 1277: // FIXME: optimize the case where the src/dest is a load or store? - line 1333: // FIXME: optimize the case where the src/dest is a load or store? - line 1791: // TODO: Which other code models can use this? - line 1923: // FIXME: Generalize this to other ANY_EXTEND than i32 to i64? - line 2162: // FIXME: JumpTable and ExternalSymbol address currently don't like - line 2511: // TODO: Support other operations. - line 2638: // FIXME: We could use 'movl' when we know we are targeting MC. - line 2725: // FIXME: We are artificially lowering the criteria to turn ADD %reg, $GA - line 2748: /* TODO: These opcodes can be added safely, but we may want to justify - line 2762: // TODO: This could be an 'or' rather than 'and' to make the transform more - line 3686: // FIXME: only if the shift is one-use? - line 3707: // FIXME: only if the shift is one-use? - line 3758: // TODO: Maybe load folding, greater than 32-bit masks, or a guarantee of LICM - line 3793: // TODO: If we are able to fold a load, BEXTR might still be better than AH. - line 3989: // TODO: This isn't guaranteed to replace the sub if there is a logic cone - line 4056: // FIXME: Generalize this to other ANY_EXTEND than i32 to i64? - line 4085: // TODO: Using 16 and 8 bit operations is also possible for or32 & xor32. - line 4275: // FIXME: Handle more complex patterns that use an operand more than once? - line 4329: // TODO: There may be a bitcast before the xor that we should peek through. - line 4866: // FIXME: Match displacement and scale. - line 5007: // FIXME: Handle unsigned 32 bit immediates for 64-bit AND. - line 5550: // TODO: Should we check the users and use the BEXTR flags directly? clang/lib/Sema/SemaLookup.cpp (28 lines): - line 394: // FIXME: In the presence of ambiguous default arguments, we should keep both, - line 404: // FIXME: When we track visibility for default function arguments, check - line 617: // FIXME: This diagnostic should really be delayed until we're done with - line 1167: // FIXME: Calling convention! - line 1409: // FIXME: In some cases, we know that every name that could be found by - line 1421: // FIXME: This really, really shouldn't be happening. - line 1431: // FIXME: Cache this sorted list in Scope structure, and DeclContext, so we - line 1664: // FIXME: This is a hack. There should be a better way to determine this. - line 1665: // FIXME: What about MS-style explicit specializations declared within a - line 1742: // FIXME: Do something better in this case. - line 1793: // FIXME: If there are both visible and hidden declarations, we need to take - line 1824: // FIXME: This is subtle and fragile. - line 1846: // FIXME: This is wrong in the case where the previous declaration is not - line 2362: // FIXME: The language rule says that this applies irrespective of - line 2372: // FIXME: This language rule no longer exists. Checking for ambiguous base - line 2786: // FIXME: If we want to support export, we probably need to add the - line 3074: // FIXME: Get the caller to pass in a location for the lookup. - line 3623: // FIXME: Preserve D as the FoundDecl. - line 3726: // rather than hide. FIXME: Look for hiding based on function - line 3906: // FIXME: It would be nice to be able to determine whether referencing - line 4047: // FIXME: We would like the translation unit's Scope object to point to - line 4781: // FIXME: We should not suggest _Alignof if the alignof macro - line 4880: // TODO: Figure out why typo correction misbehaves in this case, fix it, and - line 4941: // FIXME: Re-add the ability to skip very unlikely potential corrections. - line 4946: // FIXME: Re-add the ability to skip very unlikely potential corrections. - line 5373: // FIXME: Suppress the note backtrace even under - line 5401: // FIXME: Find a smart place to suggest inserting a #include, and add - line 5429: // FIXME: Add a FixItHint that imports the corresponding module. clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp (28 lines): - line 38: // FIXME: This is the sort of code that should eventually live in a Core - line 172: // TODO: In fact, we need to call the constructor for every - line 180: // TODO: Detect when the allocator returns a null pointer. - line 212: // TODO: We probably need a new MemRegion kind to represent the storage - line 215: // TODO: Do we need to track the region to avoid having it dead - line 250: // FIXME: This definition of "copy elision has not failed" is unreliable. - line 274: // FIXME: Is there a better way to retrieve this information from - line 309: // FIXME: Support for variadic arguments is not implemented here yet. - line 487: // FIXME: Handle arrays, which run the same constructor for every element. - line 529: // FIXME: For now this code essentially bails out. We need to find the - line 531: // FIXME: Instead of relying on the ParentMap, we should have the - line 585: // FIXME: Is it possible and/or useful to do this before PreStmt? - line 592: // FIXME: Once we properly handle constructors in new-expressions, we'll - line 598: // FIXME: This isn't actually correct for arrays -- we need to zero- - line 624: // FIXME: Handle other kinds of trivial constructors as well. - line 712: // FIXME: There should always be a Decl, otherwise the destructor call - line 718: // FIXME: PostImplicitCall with a null decl may crash elsewhere anyway. - line 729: // FIXME: We probably don't really need to recover when we're dealing - line 784: // FIXME: Provide evalCall for checkers? - line 794: // FIXME: Because CNE serves as the "call site" for the allocator (due to - line 809: // FIXME: GCC has a -fcheck-new option, which forces it to consider the case - line 834: // FIXME: Much of this should eventually migrate to CXXAllocatorCall. - line 872: // FIXME: Once we figure out how we want allocators to work, - line 882: // FIXME: GCC has a -fcheck-new option, which forces it to consider the case - line 900: // FIXME: allocating an array requires simulating the constructors. - line 913: // FIXME: Once we have proper support for CXXConstructExprs inside - line 1032: // FIXME: is this the right program point kind? - line 1037: // FIXME: Move all post/pre visits to ::Visit(). llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp (28 lines): - line 58: /// FIXME: It's possible to create more instructions than previously existed. - line 195: // TODO: Allow FP dest type by casting the trunc to FP? - line 273: // TODO: This limitation is more strict than necessary. We could sum the - line 430: // TODO come up with a n-ary matcher that subsumes both unary and - line 681: // TODO: This restriction matches the basic block check below when creating - line 693: // TODO: This restriction matches the check in visitInsertElementInst() and - line 706: // TODO: Insert before the earliest ExtractElementInst that is replaced. - line 837: // FIXME: any interesting patterns to be caught with larger limit? - line 846: // FIXME: deal with more complex, not one-dimensional, aggregate types - line 876: return nullptr; // FIXME: deal with more complex aggregates? - line 884: // FIXME: should we handle chain-terminating undef base operand? - line 930: // FIXME: deal with multiple levels of PHI indirection? - line 965: // FIXME: we could special-case undef element, IFF we know that in the - line 1052: if (Preds.size() >= PredCountLimit) // FIXME: only count duplicates once? - line 1209: // TODO: If the base vector is not undef, it might be better to create a splat - line 1454: /// TODO: This can be extended to include other cast opcodes, but particularly - line 1460: // TODO: We could ease the use-clause to "if at least one op has one use" - line 1461: // (assuming that the source types match - see next TODO comment). - line 1478: // TODO: We can allow mismatched types by creating an intermediate cast. - line 1503: // TODO: Generalize for insert into any constant, not just undef? - line 1546: // TODO: Looking at the user(s) to determine if this insert is a - line 2042: // TODO: Can we assert that both operands of a shuffle-select are not undef - line 2073: // TODO: We drop "nsw" if shift is converted into multiply because it may - line 2127: // TODO: To allow this case, create a new shuffle mask with no undefs. - line 2212: // TODO: The one-use requirement could be eased if X and/or Y are constants. - line 2317: // TODO: This restriction could be removed if the insert has only one use - line 2388: // TODO: If we can verify the same behavior for arbitrary types, the - line 2480: // TODO: This could be extended to allow length-changing shuffles. llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp (28 lines): - line 1300: // TODO: Remove this when foldLogOpOfMaskedICmps can handle undefs. - line 1753: // TODO: One use checks are conservative. We just need to check that a total - line 1809: // TODO: One use checks are conservative. We just need to check that a total - line 1859: // FIXME: We use commutative matchers (m_c_*) for some, but not all, matches - line 1999: // TODO: The one-use restrictions could be relaxed a little if the AND - line 2124: // TODO: Make this recursive; it's a little tricky because an arbitrary - line 2159: // TODO: Move this into foldBinopOfSextBoolToSelect as a more generalized fold - line 2219: // TODO: Can we reduce the code duplication between this and the related - line 2274: // TODO: Add general funnel-shift compatible patterns. - line 2279: // TODO: Is it worth matching urem as well? - line 2438: // TODO: The one-use checks are unnecessary or misplaced. If the caller - line 2455: // TODO: Use ConstantExpr::getNot()? - line 2637: // TODO: Remove this when foldLogOpOfMaskedICmps can handle undefs. - line 2654: // FIXME: We use commutative matchers (m_c_*) for some, but not all, matches - line 2885: // TODO: Make this recursive; it's a little tricky because an arbitrary - line 2921: // TODO: Move this into foldBinopOfSextBoolToSelect as a more generalized fold - line 3097: // TODO: This can be generalized to compares of non-signbits using - line 3133: // TODO: If OrICmp is true, then the definition of xor simplifies to !(X&Y). - line 3134: // TODO: If OrICmp is false, the whole thing is false (InstSimplify?). - line 3136: // TODO: Independently handle cases where the 'and' side is a constant. - line 3231: // FIXME: one-use check is not needed in general, but currently we are unable - line 3422: // FIXME: is it really beneficial to sink the `not` here? - line 3462: // TODO: Remove folds if we canonicalize to intrinsics (see above). - line 3542: // FIXME: We use commutative matchers (m_c_*) for some, but not all, matches - line 3652: // TODO: We could handle 'ashr' here as well. That would be matching - line 3658: // FIXME: This should not be limited to scalar (pull into APInt match above). - line 3697: // TODO: A 'not' op is better for analysis and codegen, but demanded bits must - line 3744: // TODO: Loosen one-use restriction if common operand is a constant. mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp (27 lines): - line 40: // FIXME: Diagnostic should be able to natively handle types that have - line 152: // FIXME: Obtain the filename from DILocationInfo. - line 161: // FIXME: Diagnostic should be able to natively handle types that have - line 431: // FIXME: switch - line 432: // FIXME: indirectbr - line 433: // FIXME: invoke - line 435: // FIXME: unreachable - line 436: // FIXME: cleanupret - line 437: // FIXME: catchret - line 438: // FIXME: catchswitch - line 439: // FIXME: callbr - line 440: // FIXME: fneg - line 449: // FIXME: atomiccmpxchg - line 450: // FIXME: atomicrmw - line 456: // FIXME: cleanuppad - line 457: // FIXME: catchpad - line 459: // FIXME: fcmp - line 462: // FIXME: select - line 463: // FIXME: vaarg - line 464: // FIXME: extractelement - line 465: // FIXME: insertelement - line 466: // FIXME: shufflevector - line 467: // FIXME: extractvalue - line 468: // FIXME: insertvalue - line 469: // FIXME: landingpad - line 540: // FIXME: Support uses of SubtargetData. Currently inbounds GEPs, fast-math - line 751: // FIXME: Support inbounds GEPs. llvm/lib/Transforms/Scalar/SROA.cpp (27 lines): - line 401: // FIXME: We should probably define a "concat_iterator" helper and use that - line 440: /// FIXME: Do we really? - line 723: // FIXME: This is a manually un-factored variant of the basic code inside - line 816: // FIXME: We should instead consider the pointer to have escaped if this - line 843: // Don't replace this with a store with a different address space. TODO: - line 868: // TODO: Use a store with the casted new alloca? - line 877: // FIXME: Yet another place we really should bypass this when - line 932: // FIXME: What about debug intrinsics? This matches old behavior, but - line 1011: // TODO: We could use SimplifyInstruction here to fold PHINodes and - line 1047: // FIXME: This should instead be escaped in the event we're instrumenting - line 1074: // FIXME: We should sink the escape vs. abort info into the caller nicely, - line 1197: /// FIXME: This should be hoisted into a generic utility, likely in - line 1204: // TODO: Allow recursive phi users. - line 1205: // TODO: Allow stores. - line 1892: // FIXME: It'd be nice to replace them with integer vector types, but we can't - line 2081: // FIXME: We shouldn't consider split slices that happen to start in the - line 2507: // FIXME: Add support for range metadata here. Currently the utilities - line 2713: /// FIXME: Heed the advice above. - line 3076: // TODO For now we forget assumed information, this can be improved. - line 3087: // FIXME: Check whether the alloca is promotable before dropping the - line 3639: // FIXME: This isn't right for vectors with non-byte-sized or - line 3709: // FIXME: We could potentially recurse down through the last element in the - line 3780: // FIXME: This is all pretty gross. It means that we can be more aggressive - line 3832: // Skip stores *of* pointers. FIXME: This shouldn't even be possible! - line 4284: // FIXME: We should be able to bail at this point with "nothing changed". - line 4285: // FIXME: We might want to defer PHI speculation until after here. - line 4286: // FIXME: return nullptr; llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp (26 lines): - line 241: // TODO: Can handle more cases here. - line 324: // TODO: We could allow size-changing ops if that doesn't harm codegen. - line 329: // TODO: Allow scalable vectors? - line 430: // TODO: It is enough to check that the bits we would be shifting in are - line 448: // TODO: It is enough to check that the bits we would be shifting in are - line 485: // TODO: Can handle more cases here. - line 587: // TODO: Add more general funnel-shift compatible patterns. - line 639: /// TODO: Transforms for truncated shifts should be moved into here. - line 809: // TODO: We canonicalize to more instructions here because we are probably - line 870: // TODO: Mask high bits with 'and'. - line 1204: // TODO: If important, we could handle the case when the BitsToClear are - line 1219: // TODO: If important, we could handle the case when the BitsToClear - line 1226: // TODO: Can handle more cases here. - line 1285: // TODO: Subsume this into EvaluateInDifferentType. - line 1485: // TODO: Can handle more cases here. - line 1578: // TODO: Eventually this could be subsumed by EvaluateInDifferentType. - line 1597: // TODO: If the dest type is different, use a cast (adjust use check). - line 1651: // TODO: Make these support undef elements. - line 1746: // TODO: - line 1821: // TODO: Tighten bound via rigorous analysis of the unbalanced case. - line 1854: // FIXME: The FMF should propagate from the fptrunc, not the source op. - line 2351: // TODO: Create and use a pattern matcher for ExtractElementInst. - line 2378: // FIXME: This transform is restricted to vector types to avoid backend - line 2431: // FIXME: This transform is restricted from changing the select between - line 2509: // TODO: Remove this check when bitcast between vector and x86_amx - line 2819: // TODO: We should match the related pattern for bitreverse. llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp (26 lines): - line 447: // TODO: put the FunctionOptions::ConstructorWithVirtualBases flag. - line 844: // TODO: Figure out which other flags need to be set. - line 905: const MDNode *Node = *CUs->operands().begin(); // FIXME: Multiple CUs. - line 912: // FIXME: Path to compiler and command line. PDB is intentionally blank unless - line 1168: // FIXME: Make sure we don't overflow the max record size. - line 1242: // FIXME: Try to handle DW_OP_deref as well. - line 1302: // FIXME: Find a way to represent constant variables, since they are - line 1374: // FIXME: Do more range combining. - line 1457: // FIXME: Set HasLongJmp if we ever track that info. - line 1482: // FIXME: Set GuardCfg when it is implemented. - line 1489: // FIXME: is there a simpler a way to do this? Can we just search - line 1573: // TODO: What if the ClosestSubprogram is neither null or the current - line 1602: // TODO: add support for DW_TAG_atomic_type here - line 1735: // FIXME: Translate - line 1933: // FIXME: Need to add DWARF tags for __unaligned and _Atomic - line 2087: // FIXME: Handle other MethodOptions. - line 2130: // FIXME: Investigate the consequences of not following them here. - line 2195: // FIXME: Is it correct to always emit these as unsigned here? - line 2287: // FIXME: we should apply the qualifier types to the indirect fields - line 2394: // FIXME: not true for a nested unnamed struct. - line 2469: // FIXME: Despite the accessor name, the offset is really in bytes. - line 2560: // FIXME: Make this use its own ContinuationBuilder so that - line 3043: // FIXME: Handle the case where the BB has no valid locations. This would - line 3221: // FIXME: emitDebugInfoForGlobal() doesn't handle DIExpressions. - line 3233: // FIXME: Add to global/local DTU list. - line 3242: // FIXME: emitDebugInfoForGlobal() doesn't handle DIExpressions. llvm/lib/Transforms/Utils/SimplifyCFG.cpp (26 lines): - line 375: // TODO: While this recursion limit does prevent pathological behavior, it - line 860: // TODO: Preserve branch weight metadata, similarly to how - line 1437: // FIXME: Can we define a safety predicate for CallBr? - line 1553: // FIXME: Can we define a safety predicate for CallBr? - line 1557: // TODO: callbr hoisting currently disabled pending further study. - line 1665: // TODO: Refine this. This should avoid cases like turning constant memcpy sizes - line 1739: // FIXME: This is a workaround for a deficiency in SROA - see - line 2063: // FIXME: this check is overly optimistic. We may end up not sinking - line 2082: // FIXME: would it be better, after we detect that not all are profitable. - line 2120: // FIXME: is this the most performant approach? - line 2306: // FIXME: Try to remove some of the duplication with HoistThenElseCodeToIf. - line 2337: // FIXME: This doesn't account for how many operations are combined in the - line 2565: // FIXME: Is it possible to do this in a more elegant way? Moving/merging the - line 3112: // TODO: If BB is reachable from all paths through PredBlock, then we - line 3369: // FIXME: We could relax this restriction with a bit more work and performance - line 3617: // TODO: This can be generalized in two important ways: - line 4227: // TODO: Preserve branch weight metadata, similarly to how - line 5670: // FIXME: If the type is wider than it needs to be, e.g. i8 but all values - line 5692: // TODO: We could relax this to any integer that fits in a register and rely - line 5702: // TODO: We could support larger than legal types by limiting based on the - line 5742: // FIXME: Find the best cut-off. - line 5844: // FIXME: If the switch is too sparse for a lookup table, perhaps we could - line 5847: // FIXME: This creates arrays of GEPs to constant strings, which means each - line 5916: if (SI->getNumCases() < 4) // FIXME: Find best threshold value (benchmark). - line 6135: // FIXME: It's possible that optimizing a switch on powers of two might also - line 6300: /// TODO - This transformation could remove entries from a phi in the target llvm/lib/Target/PowerPC/PPCFastISel.cpp (25 lines): - line 269: // FIXME: Copied directly from ARM -- factor into base class? - line 399: // FIXME: References to parameters fall through to the behavior - line 550: // Get the RR opcode corresponding to the RI one. FIXME: It would be - line 590: // FIXME: No atomic loads are supported. - line 700: // Get the RR opcode corresponding to the RI one. FIXME: It would be - line 739: // FIXME: No atomics loads are supported. - line 807: // FIXME: ARM looks for a case where the block containing the compare - line 831: // FIXME: Operands are not in canonical order at -O0, so an immediate - line 1011: // FIXME: When direct register moves are implemented (see PowerISA 2.07), - line 1014: // FIXME: The code here is sloppy for the 4-byte case. Can use a 4-byte - line 1060: // FIXME: Once fast-isel has better support for VSX, conversions using - line 1107: // FIXME: For now we require the newer floating-point conversion operations - line 1149: // FIXME: When direct register moves are implemented (see PowerISA 2.07), - line 1185: // FIXME: Once fast-isel has better support for VSX, conversions using - line 1414: // FIXME: On ELFv2, it may be unnecessary to allocate the parameter area. - line 1464: // FIXME: Not yet handled. - line 1498: // FIXME: No multi-register return values yet, though I don't foresee - line 1583: // FIXME: No multi-register return values yet. - line 1625: // FIXME: FastISel cannot handle non-simple types yet, including 128-bit FP - line 1650: // FIXME: No handling for function pointers yet. This requires - line 1665: // FIXME: We can and should optimize away the NOP for local calls. - line 1714: // FIXME: Only one output register for now. - line 2069: // FIXME: Jump tables are not yet required because fast-isel doesn't - line 2073: // FIXME: We don't yet handle the complexity of TLS. - line 2287: // FIXME: We can have multiple redundant extend/trunc instructions mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp (25 lines): - line 101: // TODO: support values if Op vectorized to Many-Ops whose results we need to - line 140: // TODO: use in LinalgOp verification, there is a circular dependency atm. - line 253: // TODO: Scan for an opportunity for reuse. - line 254: // TODO: use a map. - line 447: // TODO: relax the restrictions on indexing map. - line 462: /// TODO: Reuse opportunities for RAR dependencies. - line 492: // TODO: the common vector shape is equal to the static loop sizes only when - line 508: // TODO: can we keep this simplification? - line 530: // TODO: remove this. - line 576: // TODO: drop reliance on a specific pattern. - line 583: // TODO: probably need some extra checks for reduction followed by consumer - line 603: // TODO: isaConvolutionOpInterface that can also infer from generic features. - line 608: // TODO: the common vector shape is equal to the static loop sizes only when - line 637: // TODO: isaConvolutionOpInterface that can also infer from generic - line 879: // TODO: support 0-d corner case. - line 1101: // TODO: cleanup all the convolution vectorization patterns. - line 1249: // TODO: this is too conservative, use dominance info in the future. - line 1275: /// TODO: use interfaces, side-effects and aliasing analysis as appropriate, - line 1280: // TODO: support mask. - line 1359: /// TODO: use interfaces, side-effects and aliasing analysis as appropriate, - line 1363: // TODO: support mask. - line 1479: /// TODO: w (resp. kw) is unrolled when the strideW ( resp. dilationW) is - line 1605: /// TODO: w (resp. kw) is unrolled when the strideW ( resp. dilationW) is - line 1758: // TODO: extend the generic vectorization to support windows and drop this. - line 1761: // TODO: these are legitimately part of ConvolutionOpInterface. clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp (25 lines): - line 23: // FIXME: Add a test for `decl()` that does not depend on C++. - line 112: // FIXME: Add a test for `translationUnitDecl()` that does not depend on - line 194: // FIXME: Fix this test in non-C++ language modes. - line 225: // FIXME: Fix this test in non-C++ language modes. - line 233: // FIXME: Fix this test in non-C++ language modes. - line 244: // FIXME: Fix this test in non-C++ language modes. - line 261: // FIXME: Fix this test to work with delayed template parsing. - line 312: // FIXME: Add a test for `callExpr()` that does not depend on C++. - line 315: // FIXME: Do we want to overload Call() to directly take - line 454: // FIXME: operator new takes size_t, for which we need stddef.h, for which - line 505: // FIXME: Add a test for `declRefExpr()` that does not depend on C++. - line 562: // FIXME: Uncomment once alignof is enabled. - line 581: // FIXME: Fix this test to work with delayed template parsing. - line 593: // FIXME: Fix this test to work with delayed template parsing. - line 649: // FIXME: Fix this test to work with delayed template parsing. - line 1017: // FIXME: Make this test pass with other C++ standard versions. - line 1062: // FIXME: Add a test for `hasCondition()` that does not depend on C++. - line 1078: // FIXME: Add a test for `conditionalOperator()` that does not depend on - line 1105: // FIXME: This test should work in non-C++ language modes. - line 1158: // FIXME: Add a similar test that does not depend on C++. - line 1572: // FIXME: Make this work for MSVC. - line 1594: // FIXME: Matching against the type-as-written can't work here, because the - line 1657: // FIXME: Reactive when these tests can be more specific (not matching - line 1839: // FIXME: Add a test for `elaboratedType()` that does not depend on C++. - line 2547: // FIXME: This is a hack to work around the fact that there's no way to do llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp (25 lines): - line 323: /// FIXME: It's really frustrating that we have to do this, but SSA-form in MIR - line 349: // FIXME: It is really frustrating that we have to use a quadratic - line 414: // FIXME: Support for 32-bit. - line 459: // FIXME: We could skip this for functions which unconditionally return - line 516: // FIXME: Handle non-itanium ABI EH models. - line 837: /// FIXME: This should probably live in X86InstrInfo, potentially by adding - line 901: // FIXME: We don't have test coverage for all of these! - line 1287: // FIXME: We should consider an aggressive mode where we continue to keep as - line 1296: // FIXME: Do a more careful analysis of x86 to build a conservative - line 1320: // FIXME: This doesn't handle loading pseudo instructions which we often - line 1355: // FIXME: Is this true in the case where we are hardening loads after - line 1489: // FIXME: We should see if this is necessary or if we could be more - line 1504: // FIXME: Hard coding this to a 32-bit register class seems weird, but matches - line 1534: // FIXME: This hard codes a shift distance based on the number of bits needed - line 1603: // FIXME: When using a segment base (like TLS does) we end up with the - line 1671: // FIXME: We could skip this at the cost of longer encodings with AVX-512 - line 1734: // FIXME: Need to support GR32 here for 32-bit code. - line 1878: // FIXME: This seems like a pretty lame hack. The way this comes up is when we - line 1903: /// larger than the predicate state register. FIXME: We should support vector - line 1920: // FIXME: Need to teach this about 32-bit mode. - line 2066: // FIXME: We should also handle noreturn calls. - line 2117: // FIXME: It isn't clear that this is reliable in the face of - line 2122: // FIXME: It is even less clear why MachineCSE can't just fold this when we - line 2166: // FIXME: Could we fold this with the load? It would require careful EFLAGS - line 2256: // FIXME: It is a little suspect that we use partially hardened registers that llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp (24 lines): - line 303: // load/select idiom. TODO: use DT for context sensitive query - line 506: // FIXME: This should be in InstSimplify because we're replacing an - line 524: // TODO: Handle splat vectors. - line 597: // FIXME: Try to simplify vectors of integers. - line 766: // TODO: Match vectors with undef elements, but undef may not propagate. - line 1019: // TODO: Copy nsw if it was present on the neg? - line 1109: // TODO: Canonicalize neg after min/max if I1 is constant. - line 1516: // TODO: Conservatively intersecting FMF. If Res == C2, the transform - line 1535: // TODO: Remove one-use limitation? That is obviously better for max. - line 1618: // TODO: There should be a ValueTracking sibling like SignBitMustBeOne. - line 1905: // TODO: Do we need this? Unless there are conflicting assumptions, the - line 1944: // TODO: apply nonnull return attributes to calls and invokes - line 1945: // TODO: apply range metadata for range check patterns? - line 1984: /// TODO: we can generate a GEP instead of merging the alignment with - line 2440: // TODO: This is probably something which should be expanded to all - line 2582: // TODO: We really should just emit deref_or_null here and then - line 2709: // TODO: Drop this transform once opaque pointer transition is done. - line 2793: // TODO: provide a hook for this in GCStrategy. There might be some - line 2819: // TODO: bitcast(relocate(p)) -> relocate(bitcast(p)) - line 2822: // TODO: relocate((gep p, C, C2, ...)) -> gep(relocate(p), C, C2, ...) - line 2885: // TODO: Do the transform if it only requires adding pointer casts. - line 2903: return false; // TODO: Handle multiple return values. - line 2932: // FIXME: Be conservative for callbr to avoid a quadratic search. - line 3061: // TODO: if (!FT->isVarArg()) this call may be unreachable. PR14722 mlir/lib/Transforms/LoopFusion.cpp (24 lines): - line 44: // TODO: Support fusion of source loop nests which write to multiple - line 46: // TODO: Extend this pass to check for fusion preventing dependences, - line 100: // TODO: Add a more flexible dependence graph representation. - line 101: // TODO: Add a depth parameter to dependence graph construction. - line 660: // TODO: Move this to a loop fusion utility once 'mdg' is also moved. - line 734: // TODO: Add support for taking a Block arg to construct the - line 740: // TODO: support multi-block functions. - line 871: // TODO: improve/complete this when we have target data. - line 889: // TODO: consider refactoring the common code from generateDma and - line 960: // TODO: Create/move alloc ops for private memrefs closer to their - line 1088: // TODO: Extend profitability analysis to support scenarios with multiple - line 1200: // TODO: Write region check should check sizes and offsets in - line 1224: // TODO: This is a placeholder cost model. - line 1357: // fusing along single producer consumer edges, but there is a TODO: to fix - line 1360: // TODO: Experiment with other fusion policies. - line 1389: // TODO: Add a priority queue for prioritizing nodes by different - line 1416: // TODO: Run this repeatedly until a fixed-point is reached. - line 1440: // TODO: support loop nests that return values. - line 1474: // TODO: support loop nests that return values. - line 1563: // TODO: Suppport multiple producer stores in profitability - line 1657: // TODO: Use union of memref write regions to compute - line 1729: // TODO: Check that 'sibStoreOpInst' post-dominates all other - line 1751: // TODO: Choose the store which postdominates all other stores. - line 1823: // TODO: Remove restrict to single load op restriction. clang/lib/Frontend/CompilerInvocation.cpp (23 lines): - line 1005: // TODO: Check checker options too, possibly in CheckerRegistry. - line 1083: // TODO: There's no need to store the entire configtable, it'd be plenty - line 1106: // FIXME: Here we try to validate the silenced checkers or packages are valid. - line 1458: // TODO: Check if we need to generate arguments stored in CmdArgs. (Namely - line 1484: // TODO: Consider removing marshalling annotations from f[no_]emulated_tls. - line 1563: // TODO: This could be done in Driver - line 1774: // FIXME: For backend options that are not yet recorded as function - line 1863: // TODO: We might want to consider enabling these options on AIX in the - line 1962: // FIXME: Report unrecoverable sanitizers incorrectly specified here. - line 2489: // FIXME: Simplify the complex 'AST dump' command line. - line 2751: // FIXME: Supporting '-header-cpp-output' would be useful. - line 2809: // FIXME: Warn on this? - line 2812: // FIXME: Remove this hack. - line 3047: StringRef Prefix = ""; // FIXME: This isn't the correct default prefix. - line 3110: // FIXME: Perhaps a better model would be for a single source file to have - line 3276: // FIXME: What -std= values should be permitted for CUDA compilations? - line 3285: // FIXME: The -std= value is not ignored; it affects the tokenization - line 3608: // FIXME: Should we really be parsing this for an Language::Asm input? - line 3610: // FIXME: Cleanup per-file based stuff. - line 3990: // FIXME: Eliminate this dependency. - line 4464: // FIXME: We shouldn't have to pass the DashX option around here - line 4490: // FIXME: Override value name discarding when asan or msan is used because the - line 4545: // FIXME: Consider using SHA1 instead of MD5. clang/lib/AST/TypePrinter.cpp (23 lines): - line 389: // FIXME: this should include vectors, but vectors use attributes I guess. - line 399: // FIXME: this should include vectors, but vectors use attributes I guess. - line 433: // FIXME: this should include vectors, but vectors use attributes I guess. - line 445: // FIXME: this should include vectors, but vectors use attributes I guess. - line 458: // FIXME: this should include vectors, but vectors use attributes I guess. - line 470: // FIXME: this should include vectors, but vectors use attributes I guess. - line 482: // FIXME: this should include vectors, but vectors use attributes I guess. - line 498: // FIXME: this should include vectors, but vectors use attributes I guess. - line 654: // FIXME: We prefer to print the size directly here, but have no way - line 666: // FIXME: We prefer to print the size directly here, but have no way - line 718: // FIXME: We prefer to print the size directly here, but have no way - line 731: // FIXME: We prefer to print the size directly here, but have no way - line 819: // FIXME:Is it useful to print out the expression for a non-dependent - line 934: // FIXME: It would be better to be explicit in certain contexts, such as a - line 1150: // FIXME: Track a TypeConstraint as type sugar, so that we can print the - line 1247: // FIXME: Consider replacing this with NamedDecl::printNestedNameSpecifier, - line 1599: // FIXME: Generate this with TableGen. - line 1643: // FIXME: Generate this with TableGen. - line 1698: // FIXME: Update printAttributedBefore to print these once we generate - line 1723: // FIXME: When Sema learns to form this AttributedType, avoid printing the - line 1909: // FIXME: Recurse into array types. - line 1955: // FIXME: Handle more cases. - line 1992: // FIXME: Handle more cases. clang/lib/Analysis/CFG.cpp (23 lines): - line 1327: // FIXME: Add support for dependent-sized array types in C++? - line 1382: // FIXME: This, like the main visit, doesn't support CUDAKernelCallExpr. - line 1383: // FIXME: An isa<> would look much better but this whole switch is a - line 1457: // TODO: Handle other cases. For now, fail to find construction contexts. - line 1726: // TODO: Support adding LoopExit element to the CFG in case where the loop is - line 1883: // TODO: Add a VirtualBaseBranch to see if the most derived class - line 1978: // FIXME: This is incorrect. Non-reference declarations can lifetime-extend - line 1986: // FIXME: It doesn't really mean that the object has a trivial destructor. - line 2062: /// FIXME: This mechanism for adding automatic destructors doesn't handle - line 2191: // FIXME: The expression inside a CXXDefaultArgExpr is owned by the - line 2645: // TODO: Support construction contexts for variadic function arguments. - line 2950: // FIXME: This does not find the VLA if it is embedded in other types, - line 3214: // FIXME: Implement __finally support. - line 3251: // (FIXME: or if the __try has a __finally, to the __finally.) - line 3665: // TODO: consider adding cleanups for the end of @autoreleasepool scope. - line 3669: // FIXME: Add locking 'primitives' to CFG for @synchronized. - line 3914: // FIXME: Implement @finally support. - line 3941: // FIXME: This needs updating when @finally support is added. - line 4069: // FIXME: Can we do this more efficiently without adding another block? - line 5072: // TODO: While this should still be very fast, - line 5128: // FIXME: See CFGBuilder::addLocalScopeForVarDecl. - line 5981: // FIXME: Throw-expressions are currently generating sinks during analysis: - line 6047: // FIXME: Is there a better condition expression we can return in this case? llvm/lib/Target/MSP430/MSP430ISelLowering.cpp (22 lines): - line 58: setBooleanVectorContents(ZeroOrOneBooleanContent); // FIXME: Is this correct? - line 120: // FIXME: Implement efficiently multiplication by a constant - line 177: // TODO The following IS implemented in libgcc - line 180: // TODO The following IS implemented in libgcc but is not in the EABI - line 182: // TODO The following IS implemented in libgcc - line 187: // TODO The following IS implemented in libgcc - line 190: // TODO The following IS implemented in libgcc but is not in the EABI - line 192: // TODO The following IS implemented in libgcc - line 240: // TODO: __mspabi_[srli/srai/slli] ARE implemented in libgcc - line 263: // TODO The __mspabi_mpysl*_hw functions ARE implemented in libgcc - line 264: // TODO The __mspabi_mpyul*_hw functions ARE implemented in libgcc - line 278: // TODO The __mspabi_mpysl*_hw32 functions ARE implemented in libgcc - line 279: // TODO The __mspabi_mpyul*_hw32 functions ARE implemented in libgcc - line 293: // TODO The __mspabi_mpysl*_f5hw functions ARE implemented in libgcc - line 294: // TODO The __mspabi_mpyul*_f5hw functions ARE implemented in libgcc - line 332: // TODO: __mspabi_srall, __mspabi_srlll, __mspabi_sllll - line 616: // FIXME: struct return stuff - line 1042: // FIXME: Handle bittests someday - line 1045: // FIXME: Handle jump negative someday - line 1149: // FIXME: since we're doing a post-processing, use a pseudoinstr here, so - line 1203: // FIXME: somewhere this is turned into a SRL, lower it MSP specific? - line 1297: SDLoc dl(Op); // FIXME probably not meaningful llvm/include/llvm/IR/DebugInfoMetadata.h (22 lines): - line 81: // FIXME: Fix callers and remove condition on N. - line 117: // FIXME: Fix callers and remove condition on N. - line 296: /// TODO: Merge into node for DW_TAG_array_type, which should have a custom - line 410: /// TODO: Add a pointer to the context (DW_TAG_enumeration_type) once that no - line 475: /// TODO: Separate the concepts of declaration contexts and lexical scopes. - line 528: /// TODO: Merge with directory/file node (including users). - line 529: /// TODO: Canonicalize paths on creation. - line 662: /// TODO: Remove the hardcoded name and context, since many types don't use - line 664: /// TODO: Split up flags. - line 769: /// TODO: Split out DW_TAG_unspecified_type. - line 770: /// TODO: Drop unused accessors. - line 918: /// TODO: Split out members (inheritance, fields, methods, etc.). - line 1000: /// TODO: Separate out types that need this extra operand: pointer-to-member - line 1058: /// TODO: Detach from DerivedTypeBase (split out MDEnumType?). - line 1059: /// TODO: Create a custom, unrelated node for DW_TAG_array_type. - line 1282: /// TODO: Fold the array of types in directly as operands. - line 2089: /// FIXME: Should this be looking through bitcasts? - line 2593: /// TODO: Co-allocate the expression elements. - line 2594: /// TODO: Separate from MDNode, or otherwise drop Distinct and Temporary - line 2651: /// TODO: Store arguments directly and change \a DIExpression to store a - line 2956: /// TODO: Remove DisplayName. It's always equal to Name. - line 3103: /// TODO: Split up flags. llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp (22 lines): - line 297: // TODO: If the backend knew how to deal with casts better, we could - line 309: // TODO: The one-use restrictions for a scalar select could be eased if - line 784: /// TODO: Also support a - UMIN(a,b) patterns. - line 1184: /// TODO: Wrapping flags could be preserved in some cases with better analysis. - line 1219: // FIXME: The replacement could be performed recursively. - line 1318: // FIXME: we shouldn't care about lanes that are 'undef' in the end? - line 1378: // FIXME: this restriction could be relaxed if Cmp1 can be reused as one of - line 1382: // FIXME: we shouldn't care about lanes that are 'undef' in the end? - line 1486: // FIXME: Are there more magic icmp predicate+constant pairs we must avoid? - line 1575: // FIXME: This code is nearly duplicated in InstSimplify. Using/refactoring - line 1698: // TODO: This could be done in instsimplify. - line 1704: // TODO: This could be done in instsimplify. - line 1717: // TODO: This could be done in instsimplify. - line 1738: // TODO: This could be done in instsimplify. - line 1748: // TODO: This could be done in instsimplify. - line 2247: // TODO: If InstSimplify could fold all cases where C2 <= C1, we could change - line 2304: // FIXME: This isn't quite right for vectors, but using the scalar type is a - line 2346: // TODO: Allow FP min/max with nnan/nsz. - line 2485: // TODO: Generalize to handle a negated variable operand? - line 2724: // FIXME: Remove this workaround when freeze related patches are done. - line 2753: // TODO: Can we assert instead by improving canonicalizeSelectToShuffle()? - line 2950: // FIXME: The FMF should propagate from the select, not the fcmp. llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp (22 lines): - line 486: // FIXME: This should be target-independent, inferred from the types declared - line 692: // FIXME: Support non-register operands. - line 698: // FIXME: Can generic operations have physical registers operands? If - line 908: // FIXME: I'm not sure if this case holds true outside of copies. If it does, - line 1204: // FIXME: All of these patterns already exist in tablegen. We should be - line 1356: // FIXME: Can we canonicalize the constant so that it's always on the - line 2182: // FIXME: This would probably be a lot nicer in PostLegalizerLowering. - line 2433: // TODO: 16-bit elements. - line 2473: // FIXME: Redundant check, but even less readable when factored out. - line 2554: // FIXME: Is going through int64_t always correct? - line 2966: // FIXME: Should the type be always reset in setDesc? - line 3000: // TODO: Implement arbitrary cases - line 3228: // FIXME: Can we avoid manually doing this? - line 4095: // TODO: Handle unmerging into GPRs and from scalars to scalars. - line 4545: // TODO: some of this code is common with G_BUILD_VECTOR handling. - line 4712: // TODO: Handle FCMP_UEQ and FCMP_ONE. After that, this check will be - line 5258: // FIXME: We should refactor our copy code into an emitCopy helper and - line 5396: // FIXME: Should this be an assert? - line 5845: // TODO: Check if they are memory ops. If they are, then we can still fold - line 6059: // TODO: add heuristics like isWorthFoldingADDlow() from SelectionDAG. - line 6276: // FIXME: We should have an emitCopy function? - line 6330: // FIXME: We actually emit the extend right now even though we don't have llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp (22 lines): - line 109: // FIXME: Ideally we would like TableGen to generate this information. - line 1136: // FIXME: We ought to do this for -integrated-as without -via-file-asm too. - line 1137: // FIXME: This should propagate failure up to parseStatement. - line 1147: // FIXME: We ought to do this for -integrated-as without -via-file-asm too. - line 1453: return getGPR32Reg(); // FIXME: GPR64 too - line 2118: // FIXME: This is checking the expression can be handled by the later stages - line 2198: // TODO: Handle this with the AsmOperandClass.PredicateMethod. - line 2974: // FIXME: In case of N32 / N64 ABI and emabled XGOT, local addresses - line 2976: // FIXME: Implement XGOT for microMIPS. - line 3029: // FIXME: Offsets greater than 16 bits are not yet implemented. - line 3030: // FIXME: The correct range is a 32-bit sign-extended number. - line 3277: // FIXME: This method is too general. In principle we should compute the number - line 3308: // FIXME: This is technically correct but gives a different result to gas, - line 3311: // FIXME: With -msym32 option, the address expansion for N64 should probably - line 3404: // FIXME: Enhance this expansion to use the .lit4 & .lit8 sections - line 3539: // FIXME: Enhance this expansion to use the .lit4 & .lit8 sections - line 3743: // FIXME: - line 3763: // FIXME: Implement 64-bit case. - line 4028: // FIXME: All of these Opcode-specific if's are needed for compatibility - line 6982: // FIXME: Given that these have the same name, these should both be - line 7629: // FIXME: Only keep track of IsPicEnabled in one place, instead of in both - line 8225: // TODO : get a better message. clang/lib/Basic/Targets/ARM.cpp (22 lines): - line 69: // FIXME: Enumerated types are variable width in straight AAPCS. - line 110: // FIXME: Override "preferred align" for double and long long. - line 256: // FIXME: the isOSBinFormatMachO is a workaround for identifying a Darwin-like - line 282: // FIXME: This duplicates code from the driver that sets the -target-abi - line 298: // FIXME: this is invalid for WindowsCE - line 361: // FIXME: We need support for -meabi... we could just mangle it into the - line 396: // FIXME: This should be based on Arch attributes, not CPU names. - line 763: // FIXME: It's more complicated than this and we don't really support - line 1049: // FIXME: should check if immediate value would be valid for a Thumb2 - line 1053: // FIXME: should check if immediate value would be valid for an ARM - line 1066: // FIXME: should check if immediate value can be obtained from shifting - line 1070: // FIXME: should check if immediate value would be valid for a Thumb2 - line 1074: // FIXME: should check if immediate value would be valid for an ARM - line 1083: // FIXME: should check if immediate value would be valid for a Thumb2 - line 1087: // FIXME: should check if immediate value would be valid for an ARM - line 1093: // FIXME: should check if immediate value is a multiple of 4 between 0 and - line 1097: // FIXME: should check if immediate value is a power of two or a integer - line 1111: // FIXME: should check if immediate value is a multiple of 4 between -508 - line 1195: // FIXME: Is this really right? - line 1251: // FIXME: this is invalid for WindowsCE - line 1262: // TODO map the complete set of values - line 1357: // FIXME: This should be based off of the target features in llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp (22 lines): - line 743: // FIXME: At the moment we don't do any splitting optimizations here like - line 904: // FIXME: Optimize away range check based on pivot comparisons. - line 953: JT->Default = Fallthrough; // FIXME: Move Default to JumpTableHeader. - line 1123: // FIXME: Optimize away range check based on pivot comparisons. - line 1797: // TODO: Include ConstainedOps.def when all strict instructions are defined. - line 1938: // FIXME: Get alignment - line 1960: // FIXME: This does not handle register-indirect values at offset 0. The - line 2002: // TODO: Preserve "int min is poison" arg in GMIR? - line 2030: // TODO: Revisit this to see if we should move this part of the - line 2044: // FIXME: This intrinsic should probably be removed from the IR. - line 2050: // FIXME: This intrinsic should probably be removed from the IR. - line 2335: // FIXME: support Windows dllimport function calls. - line 2341: // FIXME: support control flow guard targets. - line 2410: // TODO: Add a GlobalISel version of getTgtMemIntrinsic. - line 2490: // FIXME: support invoking patchpoint and statepoint intrinsics. - line 2494: // FIXME: support whatever these are. - line 2498: // FIXME: support control flow guard targets. - line 2502: // FIXME: support Windows exception handling. - line 2564: // FIXME: Implement this. - line 2646: // FIXME: support stack probing for Windows. - line 2689: // FIXME: We may need more info about the type. Because of how LLT works, - line 3218: // TODO: test using android subtarget when we support @llvm.thread.pointer. llvm/lib/Transforms/Scalar/NewGVN.cpp (22 lines): - line 1171: // TODO: 25% of our time is spent in SimplifyCmpInst with pointer operands - line 1209: // TODO: There are a lot of Simplify*'s we could call here, if we - line 1277: // FIXME: Add operand bundles for calls. - line 1278: // FIXME: Allow commutative matching for intrinsics. - line 1363: // TODO: Value number heap versions. We may be able to discover - line 1381: // TODO: Value number heap versions. We may be able to discover - line 1406: // value, and it's the same value as our current store. FIXME: Right now, we - line 1881: // TODO: Along the false edge, we may know more things too, like - line 1884: // TODO: We only handle actual comparison conditions below, not - line 1947: // TODO: memory intrinsics. - line 1948: // TODO: Some day, we should do the forward propagation and reassociation - line 2019: // FIXME: Add support for shufflevector to createExpression. - line 2124: // TODO: If this ends up to slow, we can maintain a next memory leader like we - line 2430: // FIXME: We should just add a union op on a Bitvector and - line 2687: // TODO: We don't do phi translation on memory accesses because it's - line 2767: // FIXME: For those things that are not safe we could generate - line 2887: // FIXME: This is trying to discover which instructions are uses of phi - line 3016: // TODO: We could do cycle-checking on the memory phis to allow valueizing for - line 3034: // FIXME: mapped_iterator should have a range version. - line 3350: // TODO: As we hit a new block, we should push and pop equalities into a - line 3569: // available, or the value operand. TODO: We could do dominance checks to - line 3819: // TODO: If we wanted to be faster, We could remove any members with no clang/lib/Frontend/Rewrite/RewriteObjC.cpp (22 lines): - line 448: // FIXME: This predicate seems like it would be useful to add to ASTContext. - line 782: return; // FIXME: is this correct? - line 967: // FIXME: handle properties that are declared across multiple lines. - line 973: // FIXME: handle category headers that are declared across multiple lines. - line 992: // FIXME: handle protocol headers that are declared across multiple lines. - line 1027: // FIXME: handle forward protocol that are declared across multiple lines. - line 1036: // FIXME: handle forward protocol that are declared across multiple lines. - line 1264: // TODO: avoid this copy. - line 1621: // FIXME: If this should support Obj-C++, support CXXTryStmt - line 2986: // FIXME: Value of 8 is base on ppc32/x86 ABI for the most common cases. - line 3111: // FIXME: This has potential of causing problem. If - line 3176: // FIXME: presence of @public, etc. inside comment results in - line 3184: // FIXME: If there are cases where '<' is used in ivar declaration part - line 3658: // FIXME: Handle enums. - line 4296: // FIXME: This approach avoids rewriting the initializer expression. It - line 4444: // FIXME: Conform to ABI ([[obj retain] autorelease]). - line 4643: // FIXME: Missing definition of - line 4678: // FIXME: What we're doing here is modifying the type-specifier that - line 4796: // FIXME: If this should support Obj-C++, support CXXTryStmt - line 5060: // FIXME: The hack below doesn't work for bitfields. For now, we simply - line 5270: // FIXME: Implementation of a class with no @interface (legacy) does not - line 5850: // FIXME: consider sharing some of this code with the code above. clang/lib/CodeGen/CGDebugInfo.cpp (22 lines): - line 842: // FIXME: For targets where long double, __ibm128 and __float128 have the - line 1093: // TODO: This is using the RTTI name. Is there a better way to get - line 1108: // FIXME: This could be a struct type giving a default visibility different - line 1394: // [FIXME: swiftasynccc] Update to SwiftAsync once LLVM support lands. - line 1587: // TODO: Need to handle 'this' in some way by probably renaming the - line 1785: // TODO: This and the artificial type below are misleading, the - line 1828: // FIXME: 'isFunctionLocalClass' seems like an arbitrary/unintentional - line 1968: // FIXME: Handle Using(Shadow?)Decls here to create - line 2044: // FIXME: Inconsistent units for BaseOffset. It is in bytes when - line 2847: // TODO: Support "Source" from external AST providers? - line 3070: // FIXME: Create another debug type for matrices - line 3099: // FIXME: make getTypeAlign() aware of VLAs and incomplete array types - line 3119: // Add the dimensions of the array. FIXME: This loses CV qualifiers from - line 3457: // TODO: When D is a CXXRecordDecl or a C++ Enum, the ODR applies - line 3592: // TODO: Currently used for context chains when limiting debug info. - line 3805: // FIXME: Generalize this for even non-member global variables where the - line 4175: // FIXME: The function declaration we're constructing here is mostly reusing - line 4546: // FIXME: Remove this code as soon as GDB supports this. - line 4896: // FIXME: This recomputes the layout of the BlockByRefWrapper. - line 5271: // FIXME: This is probably unnecessary, since Ty should reference RD - line 5285: // FIXME: Add a representation for integer constants wider than 64 bits. - line 5366: // FIXME: Skip functions with undeduced auto return type for now since we clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp (21 lines): - line 35: // FIXME: Remove constructor in C++17 to turn it into an aggregate. - line 43: using AnyArgExpr::AnyArgExpr; // FIXME: Remove using in C++17. - line 47: using AnyArgExpr::AnyArgExpr; // FIXME: Same. - line 51: using AnyArgExpr::AnyArgExpr; // FIXME: Same. - line 325: // FIXME: This was originally copied from ArrayBoundChecker.cpp. Refactor? - line 402: // FIXME: This assumes the caller has already checked that the access length - line 596: // FIXME: It would be nice to eventually make this diagnostic more clear, - line 707: // FIXME: This can happen if we strcpy() into a string region. This is - line 721: // FIXME: Handle element regions by upper-bounding the parent region's - line 728: // FIXME: These are rare but not impossible. We should output some kind of - line 825: // FIXME: Can we track this? Is it necessary? - line 828: // FIXME: How can we handle this? It's not good enough to subtract the - line 920: // FIXME: Does this crash when a non-standard definition - line 946: // FIXME: This is a simplified version of what's in CFRefCount.cpp -- it makes - line 956: // FIXME: What about layers of ElementRegions? - line 989: // FIXME: is this necessary or correct? This handles the non-Region - line 1083: // FIXME: Since there is no perfect way to bind the non-zero character, we - line 1210: // FIXME: Even if we can't perfectly model the copy, we should see if we - line 1587: // FIXME: Why do we choose the srcExpr if the access has no size? - line 1882: // FIXME: Even if we can't perfectly model the copy, we should see if we - line 2326: // FIXME: Handle array fields of structs. llvm/lib/Target/AArch64/AArch64InstrInfo.cpp (21 lines): - line 92: // FIXME: We currently only handle pseudoinstructions that don't get expanded - line 365: // TODO: Should we handle b.cc? - line 634: // FIXME: Fold in x+1, -x, and ~x when applicable. - line 648: // FIXME: Form fabs, fmin, and fmax when applicable. - line 804: // FIXME: this implementation should be micro-architecture dependent, so a - line 4027: // FIXME: If the offset won't fit in 24-bits, compute the offset into a - line 4608: // TODO: There are many more machine instruction opcodes to match: - line 6797: // FIXME: We could handle some instructions which add a constant - line 6836: // FIXME: Add handling for instructions like "add x0, sp, #8". - line 6859: // FIXME: Do we need to check if the code after this uses the value of LR? - line 6880: // FIXME: We can probably do better than always disabling this in - line 6926: // TODO: Check if fixing up the stack more than once is safe so we can - line 7037: // FIXME: Allow outlining from multiple functions with the same section - line 7049: // FIXME: Teach the outliner to generate/handle Windows unwind info. - line 7154: // FIXME: If the proper fixups for the offset are implemented, this should be - line 7205: // FIXME: Allow calls to functions which construct a stack frame, as long - line 7207: // FIXME: Figure out some way to analyze functions defined in other modules. - line 7412: // TODO: Check if fixing up twice is safe so we can outline these. - line 7538: // FIXME: This logic should be sunk into a target-specific interface so that - line 7613: // TODO: Handle cases where Reg is a super- or sub-register of the - line 7632: // TODO: Third operand can be global address (usually some string). clang/lib/Sema/SemaDeclObjC.cpp (21 lines): - line 1008: // FIXME: If necessary, add a bit to indicate that this ObjCInterfaceDecl - line 1125: // FIXME: Consider whether this should be an invalid loc since the loc - line 1217: // FIXME: Deal with AttrList. - line 1230: // FIXME: Can we turn this into an error? - line 1329: // FIXME: Recover nicely in the hidden case. - line 1466: // FIXME: Recover nicely in the hidden case. - line 1871: // FIXME: PushOnScopeChains? - line 1933: // FIXME: PushOnScopeChains? - line 1979: // FIXME: This will produce an error if the definition of the interface has - line 2033: // FIXME: Do we support attributes on the @implementation? If so we should - line 2071: // FIXME: Don't leak everything! - line 2223: // FIXME: For now ignore 'IncompleteImpl'. - line 2657: /// FIXME: Type hierarchies in Objective-C can be deep. We could most likely - line 2733: // FIXME: Use a general GetUnarySelector method for this. - line 3100: // FIXME: If necessary, add a bit to indicate that this ObjCInterfaceDecl - line 3244: /// TODO: Handle protocol list; such as id in type comparisons - line 3398: // FIXME: should we clear the other bits in ListWithSameDeclaration? - line 3471: // FIXME: should we handle the case of bounding to id differently? - line 3998: // FIXME: Remove these and use the ObjCContainerDecl/DeclContext. - line 5104: /*FIXME: StartL=*/ID->getLocation(), - line 5138: // FIXME: Recover from "NSObject foo" by inserting the * in "NSObject *foo"? llvm/lib/Analysis/ConstantFolding.cpp (21 lines): - line 197: if (!isa(C) && // FIXME: Remove ConstantVector. - line 947: // TODO: Should we avoid extra zero indices if ResElemTy can't be reached and - line 1186: // FIXME: The following comment is out of data and the DataLayout is here now. - line 1675: // TODO: Handle undef. - line 2024: // TODO: What about hosts that lack a C99 library? - line 2027: // TODO: What about hosts that lack a C99 library? - line 2153: // TODO: What about hosts that lack a C99 library? - line 2161: // TODO: What about hosts that lack a C99 library? - line 2302: // TODO: We should have undef handling for all of the FP intrinsics that - line 2451: // FIXME: Should flush denorms depending on FP mode, but that's ignored - line 2594: // FIXME: Support other rounding modes? - line 3060: // TODO: If this is a library function, we already discovered that above, - line 3069: // FIXME: Refactor this code; this duplicates logic in LibCallsShrinkWrap - line 3099: // FIXME: These boundaries are slightly conservative. - line 3109: // FIXME: These boundaries are slightly conservative. - line 3127: // FIXME: Stop using the host math library. - line 3128: // FIXME: The computation isn't done in the right precision. - line 3150: // FIXME: These boundaries are slightly conservative. - line 3162: // FIXME: Add more functions: sqrt_finite, atanh, expm1, log1p, - line 3181: // FIXME: Stop using the host math library. - line 3182: // FIXME: The computation isn't done in the right precision. clang/lib/Analysis/ThreadSafety.cpp (21 lines): - line 76: // FIXME: add a note about the attribute location in MutexExp or D - line 104: /// FIXME: this analysis does not currently support re-entrant locking. - line 642: // FIXME -- handle compound assignment operators - line 823: // FIXME: Handle other CFGElement kinds. - line 835: // FIXME: Handle other CFGElement kinds. - line 1325: // FIXME: Don't always warn when we have support for reentrant locks. - line 1586: /// FIXME: In future, we may be able to not inherit from a visitor. - line 1812: /// FIXME: For classes annotated with one of the guarded annotations, we need - line 1939: // FIXME -- should only fully remove if the attribute refers to 'this'. - line 1965: // FIXME: does this store a pointer to DRE? - line 2001: /// FIXME: Deal with non-primitive types. - line 2014: /// FIXME: Deal with non-primitive types. - line 2087: // TODO: get rid of this, and rely on pass-by-ref instead. - line 2178: // FIXME: Is this really the best way to handle this situation? - line 2288: // TODO: this whole function needs be rewritten as a visitor for CFGWalker. - line 2305: // FIXME: Do something a bit more intelligent inside constructor and - line 2340: // FIXME: is there a more intelligent way to check lock/unlock functions? - line 2384: // FIXME -- Loc can be wrong here. - line 2407: // FIXME: By keeping the intersection, we may output more errors in future - line 2518: // FIXME: the location here is not quite right. - line 2528: // FIXME: Should we call this function for all blocks which exit the function? llvm/lib/Transforms/Scalar/GVN.cpp (21 lines): - line 448: // FIXME: Move the checking logic to MemDep! - line 466: // FIXME: All duplicated with non-local case. - line 663: // FIXME: The order of evaluation of these 'getResult' calls is very - line 1253: // FIXME: How do we retain source locations without causing poor debugging - line 1370: // FIXME: Can we support the fallthrough edge? - line 1408: // FIXME: If we could restructure the CFG, we could make a common pred with - line 1508: // FIXME: We really _ought_ to insert these value numbers into their - line 1527: // TODO: Generalize to other loop blocks that dominate the latch. - line 1588: // TODO: Support critical edge splitting if blocker has more than 1 successor. - line 1715: // FIXME: We should do this optimization if 'no signed zeros' is - line 1722: // TODO: Handle vector floating point constants - line 1741: // FIXME: We should do this optimization if 'no signed zeros' is - line 1748: // TODO: Handle vector floating point constants - line 1769: // this code is not reachable. FIXME: We could insert unreachable - line 1859: // TODO: pull this out as a helper function and reuse w/existing - line 1892: // local cases. TODO: There's a bunch of logic in propagateEqualiy which - line 2510: // FIXME: Should perform GVN again after PRE does something. PRE can move - line 2527: // FIXME: Kill off InstrsToErase by doing erasing eagerly in a helper function - line 2600: // FIXME: Rewrite the infrastructure to let it easier to value number - line 2750: // FIXME: Can we do this across the fallthrough edge? - line 2810: // FIXME: Intended to be markInstructionForDeletion(CurInst), but it causes llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (21 lines): - line 430: // FIXME: move this to the DAG Combiner! Note that we can't regress due - line 919: // FIXME: This does not work for vectors on most targets. Sign- - line 1062: // FIXME: Model these properly. LOAD and STORE are complicated, and - line 1068: // FIXME: This shouldn't be necessary. These nodes have special properties - line 1279: // FIXME: The handling for custom lowering with multiple results is - line 2077: // FIXME: This doesn't support tail calls. - line 2313: // TODO: Should any fast-math-flags be set for the created nodes? - line 2385: // TODO: Generalize this for use with other types. - line 2399: // TODO: This really should be implemented using a branch rather than a - line 2906: // TODO: Do this for vectors too? - line 3406: // FIXME: We might want to retry here with a wider type if we fail, if that - line 3408: // FIXME: Technically, so long as we only have sdivfixes where BW+Scale is - line 3612: // FIXME: It seems Legalized is false iff CCCode is Legal. I don't - line 3638: // TODO: need to add STRICT_SELECT_CC and STRICT_SELECT_CCS - line 3714: // TODO: need to add STRICT_BR_CC and STRICT_BR_CCS - line 3798: // FIXME: Custom lowering for these operations shouldn't return null! - line 3805: // FIXME: We were asked to expand a strict floating-point operation, - line 3867: // FIXME: Check flags on the node to see if we can use a finite call. - line 3872: // FIXME: handle "fence singlethread" more efficiently. - line 4176: // TODO - Common the code with DAGTypeLegalizer::SoftenFloatRes_XINT_TO_FP - line 4217: // TODO - Common the code with DAGTypeLegalizer::SoftenFloatOp_FP_TO_XINT. clang/lib/Lex/PPDirectives.cpp (21 lines): - line 620: // FIXME: We should probably do at least some minimal parsing of the - line 663: // FIXME: We should probably do at least some minimal parsing of the - line 734: // FIXME: Look into directly passing the FileEntry from LookupFile instead. - line 776: // FIXME: If there's a public header in some module that re-exports it, - line 801: // FIXME: If we're bailing out due to a private header, we shouldn't suggest - line 1000: // FIXME: Traditional: # with whitespace before it not recognized by K&R? - line 1140: //isExtension = true; // FIXME: implement #assert - line 1143: //isExtension = true; // FIXME: implement #unassert - line 1610: // FIXME: Consider warning on some of the cases described in C11 6.4.7/3 and - line 1656: // FIXME: Produce this as the current token directly, rather than - line 1770: // FIXME: Track the location at which the requirement was specified, and - line 2070: // FIXME: Remove this; loadModule does the same check (but produces - line 2081: // FIXME: Should we have a second loadModule() overload to avoid this - line 2095: // FIXME: Pass SuggestedModule in here rather than converting it to a path - line 2139: // FIXME: If we have a suggested module for a '#include', and we've already - line 2158: // FIXME: We don't do this when compiling a PCH because the AST - line 2178: // FIXME: Use a different callback for a pp-import? - line 2364: // FIXME: This is the wrong way to handle this. We should produce a PCH - line 2382: // FIXME: There's no point doing this if we're handling a #__include_macros - line 2419: // FIXME: Track enough information so we know which case we're in. - line 3160: // FIXME: Pass in the location of the macro name, not the 'if' token. llvm/lib/Target/ARM/ARMFastISel.cpp (21 lines): - line 276: // TODO: If we want to support thumb1 then we'll need to deal with optional - line 390: // TODO: Don't worry about 64-bit now, but when this is fixed remove the - line 643: // TODO: unsigned ARMFastISel::TargetMaterializeFloatZero(const ConstantFP *CF); - line 971: // FIXME: Unaligned loads need special handling. Doublewords require - line 1112: // FIXME: Unaligned stores need special handling. Doublewords require - line 1352: // FIXME: At -O0 we don't have anything that canonicalizes operand order. - line 1380: // TODO: Verify compares. - line 1758: // TODO: Often the 2nd operand is an immediate, which can be encoded directly - line 1778: // FIXME: Support vector types where possible. - line 1785: // FIXME: It'd be nice to use NEON instructions. - line 1823: // TODO: We may not support all of this. - line 1899: // TODO: We need custom lowering for vector (v2f64) args. - line 1901: // TODO: Only handle register args for now. - line 1981: // TODO: We need custom lowering for vector (v2f64) args. - line 1985: // FIXME: ArgLocs[++i] may extend beyond ArgLocs.size() - line 2197: // TODO: Try to unify this and the normal call bits for ARM, then try to unify - line 2304: // TODO: Avoid some calling conventions? - line 2351: // FIXME: Only handle *easy* calls for now. - line 2483: // FIXME: Handle more intrinsics. - line 2819: // TODO: SoftFP support. - line 3061: // FIXME: Unfortunately it's necessary to emit a copy from the livein copy. llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp (21 lines): - line 313: // TODO: If the size between the source and destination don't match - line 870: // FIXME: The following use traversal needs a bail out for patholigical cases. - line 884: // FIXME: we really care about dependency here. The offset calculation might - line 893: // FIXME: check whether all uses of Base are load/store with foldable - line 969: // FIXME: check whether all uses of the base pointer are constant PtrAdds. - line 1187: // FIXME: Does int/fp matter for this? If so, we might need to restrict - line 1597: // TODO: Should handle vector splat. - line 1851: if (Ty.isVector()) // TODO: - line 2672: // FIXME: detect splat constant vectors. - line 2748: // FIXME: This should be removed once GISelKnownBits supports vectors. - line 2794: // FIXME: This should be removed once GISelKnownBits supports vectors. - line 3122: // TODO: Handle other types of loads. - line 3151: // TODO: Support multiple MachineBasicBlocks. - line 3178: // TODO: Handle multiple MachineBasicBlocks. Currently not handled because - line 3231: // FIXME: Is there a better way to check for load fold barriers? - line 3251: // FIXME: Is there a better way to check for load fold barriers? - line 3654: // TODO: Extending a vector may be expensive, don't do this until heuristics - line 4071: // TODO: do this for vectors and scalars via a demanded bits analysis. - line 4248: // TODO: remove the G_AND via demanded bits analysis. - line 5074: // FIXME: This turns two single-precision and one double-precision - line 5115: // FIXME: This turns two single-precision and one double-precision clang-tools-extra/clangd/refactor/tweaks/ExtractFunction.cpp (21 lines): - line 243: // FIXME: Support extraction from methods. - line 246: // FIXME: Support extraction from templated functions. - line 275: // FIXME: check if EnclosingFunction has any attributes as the AST doesn't - line 289: // FIXME: We should extract expressions that are "statements" i.e. not - line 301: // FIXME: Check we're not extracting from the initializer/condition of a control - line 407: // FIXME: Generate tooling::Replacements instead of std::string to - line 428: // FIXME: Capture mutation information - line 442: // FIXME: capture TypeAliasDecl and UsingDirectiveDecl - line 443: // FIXME: Capture type information as well. - line 489: // FIXME: Check which statements we don't allow to extract. - line 540: // FIXME: check if reference mutates the Decl being referred. - line 583: // FIXME: Check if the declaration has a local/anonymous type - line 590: // FIXME: Support Decl Hoisting. - line 607: // FIXME: Need better qualifier checks: check mutated status for - line 609: // FIXME: check if parameter will be a non l-value reference. - line 610: // FIXME: We don't want to always pass variables of types like int, - line 659: // FIXME: Generate new return statement if needed. - line 664: // FIXME: add support for adding other function return types besides void. - line 665: // FIXME: assign the value returned by non void extracted function. - line 748: // FIXME: Get rid of this check once we support hoisting. - line 760: // FIXME: Add more types of errors. llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp (20 lines): - line 1195: // FIXME: Can tablegen auto-generate this? - line 1199: // FIXME: Can tablegen auto-generate this? - line 1203: // FIXME: Can tablegen auto-generate this? - line 1382: // FIXME: This should be done using Requires and - line 3065: // FIXME: The mnemonic won't match correctly if its not in lower case. - line 3085: // FIXME: The mnemonic won't match correctly if its not in lower case. - line 3124: // FIXME: Hack to recognize setneb as setne. - line 3131: // FIXME: Hack to recognize cmp{sh,ss,sd,ph,ps,pd}. - line 3209: // FIXME: Hack to recognize vpcmp{ub,uw,ud,uq,b,w,d,q}. - line 3238: // FIXME: Hack to recognize vpcom{ub,uw,ud,uq,b,w,d,q}. - line 3269: // FIXME: - line 3304: // TODO: there could be several prefixes one after another - line 3308: // FIXME: The mnemonic won't match correctly if its not in lower case. - line 3316: // FIXME: The mnemonic won't match correctly if its not in lower case. - line 3341: // TODO Generalize. - line 3665: // FIXME: It would be great if we could just do this with an InstAlias. - line 3717: // FIXME: It would be great if we could just do this with an InstAlias. - line 4206: // FIXME: This should be replaced with a real .td file alias mechanism. - line 4364: // FIXME: Ideally, we would only attempt suffix matches for things which are - line 4394: // FIXME: This flag is a workaround for legacy instructions that didn't llvm/lib/Target/X86/X86MCInstLower.cpp (20 lines): - line 224: // FIXME: We would like an efficient form for this, so we don't have to do a - line 402: // FIXME: We know TLVP symbol refs aren't, but there should be a better way - line 943: // FIXME: Change the immediate to improve opportunities? - line 1018: // TODO Delete the workaround when GOTPCRELX becomes commonplace. - line 1102: // FIXME: We can use NOOPL on 32-bit targets with FeatureNOPL, but the - line 1245: // symbol is to far away. (TODO: support non-relative addressing) - line 1253: // address is to far away. (TODO: support non-relative addressing) - line 1256: // FIXME: Add retpoline support and remove this. - line 1334: // FIXME: Make this work on non-ELF. - line 1453: /// FIXME: Add a verifier check for bad callee types. - line 1476: // FIXME: Add retpoline support and remove this. - line 1524: // FIXME: Find another less hacky way do force the relative jump. - line 1553: // FIXME: This doesn't work if one of the later SrcRegs is equal to an - line 1620: // FIXME: Find another less hacky way do force the relative jump. - line 1638: // TODO: Is register only support adequate? - line 1656: // FIXME: This doesn't work if one of the later SrcRegs is equal to an - line 1722: // FIXME: Find another less hacky way do force the relative jump. - line 1777: // FIXME: Find another less hacky way do force the relative jump. - line 2512: // FIXME: We would like an efficient form for this, so we don't have to do a - line 2522: // TODO: This is needed only if we require precise CFA. clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp (20 lines): - line 47: // FIXME: Prechecks eventually go in ::Visit(). - line 65: // FIXME: Handle structs. - line 83: // TODO: This can be removed after we enable history tracking with - line 162: // FIXME: Handle structs. - line 192: // FIXME: postvisits eventually go in ::Visit() - line 255: // FIXME: Move all post/pre visits to ::Visit(). - line 585: //TODO:AZ: remove explicit insertion after refactoring is done. - line 590: // FIXME: all pre/post visits should eventually be handled by ::Visit(). - line 667: // FIXME: We do not model vector arithmetic yet. When adding support for - line 806: // FIXME: a more robust solution which does not walk up the tree. - line 864: // FIXME: Handle the case where __builtin_offsetof is not a constant. - line 872: // FIXME: Prechecks eventually go in ::Visit(). - line 887: // FIXME: Add support for VLA type arguments and VLA expressions. - line 914: // FIXME: We can probably just have some magic in Environment::getSVal() - line 930: // FIXME: Prechecks eventually go in ::Visit(). - line 950: // FIXME: We don't have complex SValues yet. - line 967: // FIXME: We don't have complex SValues yet. - line 1027: // FIXME: Do we need to handle promotions? - line 1031: // FIXME: Do we need to handle promotions? - line 1044: // FIXME: handle floating point types. llvm/lib/Target/PowerPC/PPCInstrInfo.cpp (20 lines): - line 121: // FIXME: Leaving this as-is until we have POWER9 scheduling info - line 210: // FIXME: Is this needed for POWER9? - line 302: // FIXME: Add more FMA instructions like XSNMADDADP and so on. - line 449: // FIXME: add support for other types. - line 629: // FIXME: add more supported targets, like Small and Large code model, PPC32, - line 1029: // FIXME: when add more fma instructions support, like fma/fmas, adjust - line 1254: case PPC::DIR_PWR8: Opcode = PPC::NOP_GT_PWR7; break; /* FIXME: Update when P8 InstrScheduling model is ready */ - line 1255: // FIXME: Update when POWER9 scheduling model is ready. - line 1565: // FIXME: These numbers are for the A2, how well they work for other cores is - line 1846: // TODO: Handle G8RC to G8pRC (and vice versa) copy. - line 2178: // TODO: Model FPSCR in PPC instruction definitions and remove the workaround - line 2496: // FIXME: Conservatively refuse to convert an instruction which isn't in the - line 2598: // FIXME: On the non-embedded POWER architectures, only some of the record - line 3015: // FIXME: This can easily be improved to look up to the top of the MBB - line 3117: // FIXME: Maybe we can expand it in 'PowerPC Expand Atomic' pass. - line 3597: // TODO: sync the logic between instrHasImmForm() and ImmToIdxMap. - line 3638: // TODO: handle the cases where there are other "add + Imminstr" pairs - line 4498: // FIXME: Any branches conditional on such a comparison can be made - line 4718: // FIXME: extend this to post-ra. Need to do some change in getForwardingDefMI - line 4786: // FIXME: fix kill/dead flag if MI and DefMI are not in same basic block. clang/lib/Parse/ParseDecl.cpp (20 lines): - line 415: break; // FIXME: Multiple type arguments are not implemented. - line 1609: // FIXME: use err_attributes_misplaced - line 2319: // FIXME: This check should be for a variable template instantiation only. - line 2504: /// TODO: diagnose attribute-specifiers and alignment-specifiers. - line 2800: // TODO: Could inject an invalid typedef decl in an enclosing scope to - line 2833: /// FIXME: Simply returns an alignof() expression if the argument is a - line 3016: // FIXME: Split the DeclSpec into pieces for the standalone - line 3151: // FIXME: It would be good to recover by accepting the attributes, - line 5357: // FIXME: What about type templates that have only been annotated as - line 5370: // FIXME: What about type templates that have only been annotated as - line 5540: // FIXME: We can actually do this whether or not the name is qualified, - line 6216: // FIXME: Revisit this once core issue 1488 is resolved. - line 6337: // FIXME: Consume the l_square first so we don't need extra lookahead for - line 6515: // FIXME: currently, "static" case isn't handled correctly. - line 6530: // FIXME: Collect C++ address spaces. - line 6639: // FIXME: Accept these components in any order, and produce fixits to - line 6662: // FIXME: Per [class.mem]p6, all exception-specifications at class scope - line 6894: // FIXME: Issue a diagnostic if we parsed an attribute-specifier-seq - line 6913: // FIXME: If we can leave the attributes in the token stream somehow, we can - line 7326: // FIXME: Not accurate, the range gets one token more than it should. clang/utils/TableGen/ClangAttrEmitter.cpp (19 lines): - line 526: // FIXME: Do not do the calculation here - line 527: // FIXME: Handle types correctly - line 561: // FIXME: move the definition in Sema::InstantiateAttrs to here. - line 702: // FIXME: Traverse the elements. - line 832: // FIXME: Emit a proper error - line 890: // FIXME: this isn't 100% correct -- some enum arguments require printing - line 955: // FIXME: this isn't 100% correct -- some enum arguments require printing - line 972: // FIXME: Emit a proper error - line 1511: // FIXME: arg->getIsOmitted() == "false" means we haven't implemented - line 1689: // FIXME: Handle non-GNU attributes - line 1833: // FIXME: #pragma clang attribute does not currently support statement - line 2287: // FIXME: Currently, documentation is generated as-needed due to the fact - line 3460: // FIXME: this is not particularly good for localization purposes and ideally - line 3537: // FIXME: subset subjects are added to the declaration list until there are - line 3549: // FIXME: this assertion will be wrong if we ever add type attribute subjects. - line 3738: // FIXME: it would be nice not to walk over the list of potential attributes - line 3935: // TODO: If the attribute's kind appears in the list of duplicates, that is - line 4327: // FIXME: there is no way to have a per-spelling category for the attribute - line 4381: // TODO: List Microsoft (IDL-style attribute) spellings once we fully openmp/runtime/src/kmp_tasking.cpp (19 lines): - line 522: // TODO: GEH - make sure root team implicit task is initialized properly. - line 545: // GEH TODO: shouldn't we pass some sort of location identifier here? - line 954: // TODO: What would be the balance between the conditions in the function - line 992: // TODO: GEH - make sure root team implicit task is initialized properly. - line 1080: // TODO: Get better loc_ref. Value passed in may be NULL - line 1359: // GEH - TODO: fix this to copy parent task's value of tasking_ser flag - line 1362: // GEH - TODO: fix this to copy parent task's value of team_serial flag - line 1394: // TODO: What would be the balance between the conditions in the function and - line 1539: // TODO: cancel tasks if the parallel region has also been cancelled - line 1540: // TODO: check if this sequence can be hoisted above __kmp_task_start - line 2515: // FIXME: I think this is wrong for lwt! - line 2542: // FIXME: I think this is wrong for lwt! - line 2622: // TODO: is relaxed store enough here (whole barrier should follow)? - line 2640: // TODO: is relaxed store enough here (whole barrier should follow)? - line 3234: /* // TODO: Check the comment consistency - line 3562: // TODO: GEH - this may be is wrong because some sync would be necessary - line 3576: // TODO: GEH - add this check for Linux* OS / OS X* as well? - line 3780: // TODO: What about itt_sync_obj?? - line 4659: // TODO: can we choose better default heuristic? llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp (19 lines): - line 930: // FIXME: On a 64 bit architecture this prevents us from using the - line 995: // TODO: The case where both inputs are constants does not need to be limited - line 1032: // TODO: This is limited to i8 arrays. - line 1162: // TODO: Attach return value attributes to the 1st operand to preserve them? - line 1355: // TODO: Can this be shared to also handle LLVM intrinsics? - line 1449: // TODO: Loosen the requirement for fully relaxed math semantics. - line 1450: // TODO: Handle exp10() when more targets have it available. - line 1543: // TODO: There is no exp10() intrinsic yet, but some day there shall be one. - line 1592: // TODO: We also should check that the target can in fact lower the sqrt() - line 1712: // TODO: This whole transformation should be backend specific (e.g. some - line 1969: // TODO: There is no exp10() intrinsic yet. - line 1974: // FIXME: Add more precise value of e for long double. - line 1997: // TODO: Once we have a way (other than checking for the existince of the - line 2062: // TODO: Generalize to handle any trig function and its inverse. - line 3029: // TODO: Split out the code below that operates on FP calls so that - line 3183: // TODO: - line 3334: // TODO: It might be nice to get a maximum length out of the possible - line 3353: // FIXME: There is really no guarantee that sizeof(size_t) is equal to - line 3487: // FIXME: We shouldn't be changing "nobuiltin" or TLI unavailable calls here. clang/lib/Tooling/Refactoring/Extract/Extract.cpp (19 lines): - line 96: // FIXME: Support C++ method extraction. - line 97: // FIXME: Support Objective-C method extraction. - line 106: // FIXME (Alex L): Add code that accounts for macro locations. - line 113: // FIXME: Capture used variables. - line 117: // FIXME (Alex L): Account for the return statement in extracted code. - line 118: // FIXME (Alex L): Check for lexical expression instead. - line 121: // FIXME (Alex L): Get a more user-friendly type if needed. - line 125: // FIXME: Rewrite the extracted code performing any required adjustments. - line 127: // FIXME: Capture any field if necessary (method -> function extraction). - line 129: // FIXME: Sort captured variables by name. - line 131: // FIXME: Capture 'this' / 'self' if necessary. - line 133: // FIXME: Compute the actual parameter types. - line 138: // FIXME: Adjust the location to account for any preceding comments. - line 140: // FIXME: Adjust with PP awareness like in Sema to get correct 'bool' - line 143: // FIXME: PP.UseStdFunctionForLambda = true; - line 155: // FIXME: Use 'inline' in header. - line 159: // FIXME: Arguments. - line 181: // FIXME: Forward arguments. - line 192: // FIXME: Add support for assocciated symbol location to AtomicChange to mark mlir/lib/Dialect/Vector/VectorTransforms.cpp (19 lines): - line 795: // TODO: make is ND/1D to allow generic ND->1D->MD. - line 803: // TODO: consider evolving the semantics to only allow 1D source or dest and - line 1070: // TODO: implement masks - line 1202: // TODO: may be better to fail and use some vector -> scalar reduction. - line 1217: // TODO: may be better to fail and use some vector -> scalar reduction. - line 1299: // TODO: implement masks - line 1333: // TODO: implement masks - line 1460: // TODO: break down into transpose/reshape/cast ops - line 1462: // TODO: investigate lowering order impact on performance - line 1466: // TODO: implement masks. - line 1473: // TODO: support mixed mode contract lowering. - line 1479: // TODO: implement benefits, cost models. - line 1540: // TODO: consider reusing existing contract unrolling - line 1765: // TODO: we shouldn't cross the vector/scalar domains just for this - line 1801: // TODO: Unifiy once ExtractOp supports 0-d vectors. - line 2207: // TODO: when the leaf transfer rank is k > 1, we need the last `k` - line 2266: // TODO: support 0-d corner case. - line 2270: // TODO: support mask. - line 2344: // TODO: support mask. compiler-rt/lib/sanitizer_common/sanitizer_win.cpp (19 lines): - line 121: // FIXME: is it possible for the stack to not be a single allocation? - line 228: // FIXME: is this really "NoReserve"? On Win32 this does not matter much, - line 250: // FIXME: Windows support large pages too. Might be worth checking - line 301: // FIXME: make this really NoReserve? - line 354: // FIXME: probably similar to ReleaseMemoryToOS. - line 359: // FIXME: add madvise-analog when we move to 64-bits. - line 720: // FIXME: Use the wide variants to handle Unicode filenames. - line 760: // FIXME: support colored output. - line 875: // FIXME: Decide what to do on Windows. - line 879: // FIXME: Decide what to do on Windows. - line 884: // FIXME: Decide what to do on Windows. - line 888: // FIXME: Decide what to do on Windows. - line 999: // FIXME: Implement this. - line 1095: // FIXME: Actually implement this function. - line 1100: // FIXME: Actually implement this function. - line 1107: // FIXME: implement on this platform - line 1115: // FIXME: implement on this platform. - line 1121: // FIXME implement on this platform. - line 1128: // FIXME: implement on this platform. clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp (19 lines): - line 184: // FIXME: This is an approximation of Sema::UsualArithmeticConversions. - line 289: // FIXME: Can we use assume() without getting into an infinite recursion? - line 300: // FIXME: Maybe it'd be better to have consistency in - line 349: // FIXME: After putting complexity threshold to the symbols we can always - line 458: // FIXME: at the moment the implementation - line 466: // FIXME: at the moment the implementation - line 471: // FIXME: This only makes sense for comparisons. If we want to, say, - line 478: // most likely evaluate to concrete false anyway. FIXME: We might - line 506: // FIXME: This is not correct. char + short will result in a promotion - line 682: // FIXME: This doesn't handle casts yet, and simply stripping the casts - line 692: // FIXME: This is probably where inheritance would be a problem. - line 718: // FIXME: all this logic will change if/when we have MemRegion::getLocation(). - line 775: // FIXME: we can probably do a comparison against other MemRegions, though. - line 776: // FIXME: is there a way to tell if two labels refer to the same location? - line 864: // FIXME: we can probably make a more useful statement about non-code - line 894: // FIXME: ObjC object pointers always reside on the heap, but currently - line 918: // FIXME: This should do something useful even if the types don't match, - line 1095: // TODO: Is this actually reliable? Maybe improving our MemRegion - line 1207: // TODO: Support SymbolCast. mlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp (19 lines): - line 36: // TODO: generate these strings using ODS. - line 229: // TODO Make sure to merge this and the previous function into one template - line 286: // TODO Make sure to merge this and the previous function into one template - line 354: // TODO: Add the validation rules for the following Image Operands. - line 456: // TODO Make sure to merge this and the previous function into one template - line 530: // TODO: Check that the value type satisfies restrictions of - line 620: // TODO: Make sure not caller relies on the actual pointer width value. - line 867: // TODO: support specialization constant here. - line 1024: // TODO: this should be relaxed to allow - line 1221: // TODO: Unequal cannot be set to Release or Acquire and Release. - line 1285: // TODO: The SPIR-V spec validation rules are different for different - line 1443: // TODO: Add support for constructing a vector type from the vector operands. - line 1707: // TODO: support constant struct - line 2045: // TODO: verify other bits like linkage type. - line 2238: // TODO: Currently only variable initialization with specialization - line 2782: // TODO: move this check to spv.func. - line 3091: // TODO: further verification needs to analyze reachability from - line 3179: // TODO: generate these strings using ODS. - line 3475: // TODO - According to the spec: llvm/lib/Transforms/IPO/Attributor.cpp (19 lines): - line 76: // TODO: Determine a good default value. - line 190: // TODO: Inspect and cache more complex instructions. - line 574: // TODO: We need to look at the operand bundles similar to the redirection - line 582: // TODO: We need to look at the operand bundles similar to the redirection - line 602: // TODO: We need to look at the operand bundles similar to the redirection - line 1205: // TODO: Maintain a cache of Values that are - line 1224: // TODO: use the function scope once we have call site AAReturnedValues. - line 1242: // TODO: use the function scope once we have call site AAReturnedValues. - line 1298: // TODO: use the function scope once we have call site AAReturnedValues. - line 1324: // TODO: use the function scope once we have call site AAReturnedValues. - line 1936: // TODO: Check if we need to keep it for F as well. - line 2099: // TODO: - line 2265: // TODO: Exose the attribute set to the ACS repair callback - line 2612: // TODO: Even if the callee is not known now we might be able to simplify - line 2850: // TODO: for now we eagerly internalize functions without calculating the - line 2947: // FIXME: Think about passes we will preserve and add them here. - line 2975: // FIXME: Think about passes we will preserve and add them here. - line 3054: // FIXME: Think about passes we will preserve and add them here. - line 3091: // FIXME: Think about passes we will preserve and add them here. clang/lib/AST/Expr.cpp (18 lines): - line 156: // FIXME: Should we look through any cast expression in !Semantic mode? - line 638: // FIXME: Maybe this should use DeclPrinter with a special "print predefined - line 971: // TODO: K&R: the meaning of '\\a' is different in traditional C - line 999: // FIXME: multicharacter literals such as '\xFF\xFF\xFF\xFF' - line 1168: // FIXME: Convert UTF-8 back to codepoints before rendering. - line 1187: // FIXME: Is this the best way to print wchar_t? - line 1681: // FIXME: remove remaining dependence computation to computeDependence(). - line 1684: // FIXME: Wrong. We should be looking at the member declaration we found. - line 1748: // FIXME: We don't want this to happen. Rather, we should be able to - line 2825: // FIXME: In theory, there might be new expressions that don't have side - line 3209: // FIXME: We should be able to return "true" here, but it can lead to extra - line 3217: // FIXME: This accepts other cases it shouldn't! - line 3466: // FIXME: Move this into the "return false;" block above. - line 3555: // FIXME: The children for an InitListExpr doesn't include the array filler. - line 3668: // FIXME: Classify these cases better. - line 3964: // FIXME: Why do we not just look at the ObjectKind here? - line 4120: // FIXME: Refactor this code to an accessor on the AST node which returns the - line 4434: // FIXME: this is wrong, set it correctly. mlir/lib/Transforms/Utils/LoopUtils.cpp (18 lines): - line 162: // TODO: extend this for arbitrary affine bounds. - line 621: // TODO: Handle non-constant lower bounds. - line 716: // TODO: Handle non-constant lower bounds. - line 930: // TODO: handle non hyper-rectangular spaces. - line 974: // TODO: handle non hyper-rectangular spaces. - line 1193: // TODO: option to specify cleanup loop unrolling. - line 1287: // TODO: Add dynamic asserts for negative lb/ub/step, or - line 1916: // TODO: Use cheap structural assertions that targets are nested under - line 2015: // TODO: loads to immutable memory regions are ok. - line 2083: // TODO: for now we just ignore the result of band isolation. - line 2111: // TODO: introduce support for negative steps or emit dynamic asserts - line 2472: // TODO: also need to be checking this for regions symbols that - line 2500: // TODO: make this work with non-identity layout maps. - line 2784: // TODO: use all stride levels once DmaStartOp is extended for - line 3040: // TODO: in the future, when regions don't intersect and satisfy - line 3225: // TODO: if necessary, this can be extended to also compose in any - line 3274: // TODO: Non-unit stride is not an issue to generalize to. - line 3341: // TODO: straightforward to generalize to a non-unit stride. lld/MachO/InputFiles.cpp (18 lines): - line 315: // FIXME: parallelize this? - line 333: // TODO: Evaluate whether the bitcode metadata is needed. - line 460: fatal("TODO: Scattered relocations not supported"); - line 482: // FIXME This logic was written around x86_64 behavior -- ARM64 doesn't - line 652: error("TODO: support symbols of type " + std::to_string(type)); - line 680: // FIXME: may need special handling. - line 784: // TODO: ld64 appears to preserve the original alignment as well as each - line 864: // TODO: Error on missing LC_SYMTAB? - line 900: // TODO: Since object files can contain a lot of DWARF info, we should verify - line 903: // FIXME: There can be more than one compile unit per object file. See - line 1029: // TODO: Handle -dylib_file - line 1037: // FIXME: Consider using finalOutput instead of outputFile. - line 1058: // FIXME: Should this be further up? - line 1200: // FIXME: What about LC_LOAD_UPWARD_DYLIB, LC_LAZY_LOAD_DYLIB, - line 1227: // FIXME: Add test for the missing TBD code path. - line 1279: // TODO: handle weak defs, thread locals - line 1348: // TODO: ld64 contains some logic for non-empty symbolName as well. - line 1503: // TODO: Write a test demonstrating why computing isPrivateExtern before mlir/lib/Dialect/Affine/Transforms/SuperVectorize.cpp (18 lines): - line 229: /// TODO: point to the proper places. - line 241: /// 2. analyzing those patterns for profitability (TODO: and - line 260: /// TODO: Support more uniform cases. - line 263: /// TODO: Support more complex loops with divergent lbs and/or ubs. - line 641: /// TODO: In the future we should additionally increase the power of the - line 663: ///// end TODO: Hoist to a VectorizationStrategy.cpp when appropriate ///// - line 1068: // TODO: For now, only values that are induction variables of loops not in - line 1117: /// TODO: handle more complex cases. - line 1272: // TODO: Vectorization of reduction loops is not supported for non-unit steps. - line 1334: // TODO: A vector replacement will also be added in the future when - line 1405: // TODO: The following assumes there is always an op with a fixed - line 1407: // TODO: Is it worth considering an Operation.clone operation which - line 1458: // TODO: consider adding a trait to Op to describe how it gets vectorized. - line 1533: // TODO: implement a non-greedy profitability analysis that keeps only - line 1681: // TODO: depending on profitability, elect to reduce the vector size. - line 1692: // TODO: if pattern does not apply, report it; alter the cost/benefit. - line 1693: // TODO: some diagnostics if failure to vectorize occurs. - line 1801: /// TODO: Vectorizing reductions is supported only for 1-D vectorization. llvm/lib/DWARFLinker/DWARFLinker.cpp (18 lines): - line 488: // FIXME: dsymutil-classic compat. dsymutil-classic doesn't consider labels - line 654: // FIXME: compatibility with dsymutil-classic. UseODR shouldn't - line 658: // FIXME: compatibility with dsymutil-classic. There is no - line 914: // FIXME: we should be able to design DIEEntry reliance on - line 1048: // FIXME: If DIEBlock and DIELoc just reuses the Size field of - line 1192: // FIXME: use DWARFAttribute::mayHaveLocationDescription(). - line 1297: // FIXME: The missing space here may be a bug, but - line 1318: // FIXME: Use the string offset table with Dwarf 5. - line 1322: // FIXME: for some reason dsymutil-classic keeps the location attributes - line 1453: // FIXME: This is slightly wrong. An inline_subroutine without a - line 1591: /// FIXME: this could actually be done right in patchRangesForUnit, - line 1618: // FIXME: this only removes the unneeded end_sequence if the - line 1685: // FIXME: This logic is meant to generate exactly the same output as - line 1720: // FIXME: Understand exactly what cases this addresses and - line 1762: // FIXME: LLVM hard-codes its prologue values. We just copy the - line 1963: // FIXME: dsymutil-classic compatibility. Ignore modules. - line 2026: // FIXME: Until PR27449 (https://llvm.org/bugs/show_bug.cgi?id=27449) is - line 2093: // FIXME: Until PR27449 (https://llvm.org/bugs/show_bug.cgi?id=27449) is clang/lib/AST/Decl.cpp (18 lines): - line 532: // FIXME: we should warn if -fvisibility-inlines-hidden is used with c. - line 579: // FIXME: Handle isModulePrivate. - line 692: // FIXME: This gives internal linkage to names that should have no linkage - line 697: // FIXME: The check for extern "C" here is not justified by the standard - line 866: // FIXME: This is not part of the C++ standard any more. - line 970: // FIXME: If we're only computing linkage, can we bail out here? - line 1028: // FIXME: If the type's linkage is not externally visible, we can - line 1815: // FIXME: In this case, we should not add this decl to the lookup table. - line 2164: // FIXME: How do you declare (but not define) a partial specialization of - line 2448: // first time it is evaluated. FIXME: The notes won't always be emitted the - line 2454: // FIXME: Produce a diagnostic for self-initialization. - line 2611: // instantiated from. FIXME: Is this necessary? - line 2712: // FIXME: Remove ? - line 2801: // FIXME: isParamDestroyedInCallee() should probably imply - line 2860: // FIXME: We should just return false for DAK_None here once callers are - line 3511: // FIXME: What happens if gnu_inline gets added on after the first - line 3767: // FIXME: Remove this, it's not clear what it means. (Which template - line 4244: // FIXME: This might be Itanium ABI specific; we don't yet know what the MS llvm/lib/Target/AMDGPU/SIFrameLowering.cpp (18 lines): - line 202: // TODO: If we know we don't have flat instructions earlier, we can omit - line 205: // TODO: We only need to know if we access scratch space through a flat - line 371: // FIXME: It might be safer to use a pseudoregister before replacement. - line 373: // FIXME: We should be able to eliminate unused input registers. We only - line 407: // FIXME: If we only have SGPR spills, we won't actually be using scratch - line 411: // FIXME: We still have implicit uses on SGPR spill instructions in case they - line 416: // FIXME: Remove all of the isPhysRegUsed checks - line 576: // TODO: convert to using SCRATCH instructions or multiple SRD buffers - line 658: // TODO: Evaluate if it is better to just construct an SRD using the flat - line 808: // FIXME: Split block and make terminator. - line 1118: // FIXME: Split block and make terminator. - line 1190: // FIXME: change to enterBasicBlockEnd() - line 1218: // FIXME: The dead frame indices are replaced with a null register from - line 1235: // FIXME: The other checks should be redundant with allStackObjectsAreDead, - line 1275: // FIXME: Is this really hasReservedCallFrame? - line 1389: // TODO: We could try sorting the objects to find a hole in the first bytes - line 1445: /// FIXME: Should also check hasOpaqueSPAdjustment and if any inline asm - line 1464: // FIXME: This function is pretty broken, since it can be called before the lld/MachO/Arch/ARM.cpp (18 lines): - line 50: {"VANILLA", /* FIXME populate this */ B(_0)}, - line 51: {"PAIR", /* FIXME populate this */ B(_0)}, - line 52: {"SECTDIFF", /* FIXME populate this */ B(_0)}, - line 53: {"LOCAL_SECTDIFF", /* FIXME populate this */ B(_0)}, - line 54: {"PB_LA_PTR", /* FIXME populate this */ B(_0)}, - line 57: {"32BIT_BRANCH", /* FIXME populate this */ B(_0)}, - line 58: {"HALF", /* FIXME populate this */ B(_0)}, - line 59: {"HALF_SECTDIFF", /* FIXME populate this */ B(_0)}, - line 70: // FIXME: implement this - line 115: error("TODO: implement interworking shim"); - line 123: error("TODO: Implement ARM_RELOC_BR24 for dylib symbols"); - line 144: fatal("TODO: implement this"); - line 148: fatal("TODO: implement this"); - line 153: fatal("TODO: implement this"); - line 157: fatal("TODO: implement this"); - line 164: stubSize = 0 /* FIXME */; - line 165: stubHelperHeaderSize = 0 /* FIXME */; - line 166: stubHelperEntrySize = 0 /* FIXME */; llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp (18 lines): - line 310: // TODO: Once we can get to the GCStrategy, this becomes - line 467: // TODO: There a number of local optimizations which could be applied here - line 583: // TODO: I have absolutely no idea how to implement this part yet. It's not - line 973: // effect the result. TODO: We could use a worklist here and make this run - line 1031: // TODO: In many cases, the new instruction is just EE itself. We should - line 1053: // TODO: adjust naming patterns to avoid this order of iteration dependency - line 1162: // that remains TODO is changing findBaseOrBDV to return an - line 1523: // FIXME: Calls have a *really* confusing interface around attributes - line 1561: // TODO: This flag no longer serves a purpose and can be removed later - line 2196: // TODO: Use TTI->getGEPCost here (it exists, but appears to be not - line 2286: // TODO: We can also account for cases when we will be able to remove some - line 2593: // TODO: We should create a separate data structure that does not contain - line 2615: // TODO: It would be nice to test consistency as well - line 2765: // TODO: This should check the GCStrategy - line 2834: // TODO: only the ones with the flag set! - line 2879: // TODO: Extend this to handle switches - line 2885: // TODO: Handle more than just ICmps here. We should be able to move - line 2940: // TODO: Consider using bitvectors for liveness, the set of potentially llvm/lib/CodeGen/MIRParser/MIParser.cpp (18 lines): - line 684: // TODO: Report an error when multiple same attributes are specified. - line 707: // TODO: Report an error when both name and ir block are specified. - line 793: return error("expected '}'"); // FIXME: Report a note that shows '{'. - line 1092: // FIXME: Move the implicit operand verification to the machine verifier. - line 1097: // TODO: Check for extraneous machine operands. - line 1440: // TODO: Check that the VReg name is not the same as a physical register name. - line 1470: // TODO: Parse other register kinds. - line 1620: // FIXME: add note with the def operand. - line 1634: // FIXME: Verify that for non INLINEASM instructions, the def and use tied - line 1980: // TODO: Only parse the name if it's a MachineBasicBlockLabel. Deprecate once - line 2179: // FIXME: Share this parsing with the IL parser. - line 2488: // TODO: Parse the other CFI operands. - line 2700: // TODO: Report an error if the same register is used more than once. - line 2726: // TODO: Report an error if the same register is used more than once. - line 2836: // FIXME: Parse the MCSymbol machine operand. - line 2868: // TODO: Report an error when using a duplicate bit target flag. - line 3306: // TODO: Report an error on duplicate metadata nodes. - line 3389: // FIXME: Currently we can't recognize temporary or local symbols and call all llvm/lib/Target/AMDGPU/R600ISelLowering.cpp (18 lines): - line 150: // TODO: turn these into Legal? - line 203: // FIXME: May need no denormals check - line 224: // FIXME: This was moved from AMDGPUTargetLowering, I'm not sure if we - line 280: // FIXME: getLDSNoRetOp method only handles LDS_1A1D LDS ops. Add - line 333: //TODO: Perhaps combine this instruction with the next if possible - line 337: //TODO: Ugh this is rather ugly - line 743: // TODO: Should this propagate fast-math-flags? - line 1054: //TODO: Who creates the i8 stores? - line 1084: // TODO: this should be eliminated by the future SHR ptr, 2 - line 1089: // TODO: can we be smarter about machine pointer info? - line 1103: // TODO: Contrary to the name of the functiom, - line 1129: // TODO: Can we be smarter about MachinePointerInfo? - line 1164: // TODO: can the chain be replaced without creating a new store? - line 1320: // TODO: can we be smarter about machine pointer info? - line 1387: //TODO: Does this even work? - line 1533: // FIXME: This should really check the extload type, but the handling of - line 1589: // TODO: This is a rough estimate. - line 1713: //TODO: Support smaller loads clang/lib/Sema/SemaTemplateInstantiate.cpp (17 lines): - line 520: // FIXME: In all of these cases, we need to show the template arguments - line 740: // FIXME: For synthesized functions that are not defaulted, - line 887: // FIXME: This should not be treated as a SFINAE context, because - line 1266: // FIXME: This needs testing w/ member access expressions. - line 1329: // TODO: should we even warn on struct/class mismatches for this? Seems - line 1450: // FIXME: This can lead to the same subexpression appearing multiple times - line 1823: // TODO: only do this uniquing once, at the start of instantiation. - line 2091: // FIXME: Make a copy of the TypeLoc data here, so that we can - line 2178: // FIXME: Set the exception specification to EST_Uninstantiated here, - line 2392: // TODO: Concepts: do not instantiate the constraint (delayed constraint - line 2435: // FIXME: if we non-lazily instantiated non-dependent default args for - line 2452: // FIXME: OldParm may come from a FunctionProtoType, in which case CurContext - line 2695: // FIXME: This loses the as-written tag kind for an explicit instantiation. - line 2767: // FIXME: Eventually, a NULL return will mean that one of the - line 2811: // FIXME: We should do something similar for explicit instantiations so they - line 3083: // TODO: Actually use the failed-deduction info? - line 3222: // FIXME: We need to notify the ASTMutationListener that we did all of these llvm/lib/Transforms/Scalar/LICM.cpp (17 lines): - line 380: // FIXME: This would unfortunately hurt the performance of coroutines, however - line 472: // FIXME: This is really heavy handed. It would be a bit better to use an - line 636: // TODO: This could be expanded to allowing branches where both ends - line 667: // TODO: In some cases this could be relaxed if the successor is dominated - line 687: // TODO: This could be handled be erasing some of the duplicate incoming - line 860: // FIXME MSSA: Such replacements may make accesses unoptimized (D51960). - line 872: // TODO: It may be safe to hoist if we are hoisting to a conditional block - line 1211: // TODO: expand to writeable arguments - line 1234: // FIXME: This should use mod/ref information to see if we can hoist or - line 1245: // constant memory for instance, TODO: handle better - line 1262: // load store promotion instead. TODO: We can extend this to cases where - line 1287: // TODO: Cache set of Uses on the first walk in runOnLoop, update when - line 1301: // FIXME: More precise: no Uses that alias SI. - line 1894: // FIXME: true for safety, false may still be correct. - line 1920: // TODO: ReturnCaptures=true shouldn't be necessary here. - line 2333: // FIXME: Increase precision: Safe to sink if Use post dominates the Def; - line 2335: // FIXME: More precise: no Defs that alias this Use. llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp (17 lines): - line 47: // FIXME: This can create globals so should be a module pass. - line 72: // FIXME: This should be per-kernel. - line 357: // FIXME we only support simple cases - line 370: // TODO: Check isTriviallyVectorizable for calls and handle other - line 446: // FIXME: There is no reason why we can't support larger arrays, we - line 448: // FIXME: We also reject alloca's of the form [ 2 x [ 2 x i32 ]] or equivalent. Potentially these - line 600: // TODO: We should be able to replace undefs with the right pointer type. - line 602: // TODO: If we know the other base object is another promotable - line 699: // TODO: Handle more complex cases. We should be able to replace loops - line 797: // FIXME: We should really do something to fix the addresses to a more optimal - line 807: // FIXME: Try to account for padding here. The real padding and address is - line 822: // TODO: Have some sort of hint or other heuristics to guess occupancy based - line 856: // FIXME: Should try to pick the most likely to be profitable allocas first. - line 904: // FIXME: This computed padding is likely wrong since it depends on inverse - line 907: // FIXME: It is also possible that if we're allowed to use all of the memory - line 994: // FIXME: It doesn't really make sense to try to do this for all - line 1043: // FIXME: I think the invariant marker should still theoretically apply, clang/lib/CodeGen/CGClass.cpp (17 lines): - line 135: // TODO: if we're currently emitting a complete-object ctor/dtor, - line 234: // TODO: for complete types, this should be possible with a GEP. - line 320: // TODO: "devirtualize" this for accesses to known-complete objects. - line 657: // FIXME: This is hacky at best... if we had a bit more explicit information - line 743: // TODO: white-list trivial vbase initializers. This case wouldn't - line 746: // TODO: white-list cases where: - line 765: // FIXME: Decide if we can do a delegation of a delegating constructor. - line 868: // TODO: in restricted cases, we can emit the vbase initializers of - line 2074: // FIXME: It would be better to preserve alignment information into CallArg. - line 2188: // FIXME: If vtable is used by ctor/dtor, or if vtable is external and we are - line 2191: // FIXME: It looks like InstCombine is very inefficient on dealing with - line 2211: // FIXME: Can we just pass undef's for the remaining arguments if we don't - line 2280: // FIXME: This is dumb, we should ask the ABI not to try to set the return - line 2362: // FIXME: The location of the VTT parameter in the parameter list is - line 2374: // FIXME: per-argument source location - line 2907: // FIXME: Making this work correctly is nasty because it requires either - line 2962: // FIXME: Making this work correctly is nasty because it requires either llvm/lib/MC/MCParser/AsmParser.cpp (17 lines): - line 1045: // FIXME: We would really like to refer back to where the symbol was - line 1459: /// TODO: Adding single quote as a string. - line 1900: // FIXME: Recurse on local labels? - line 1919: // FIXME: Diagnostics. Note the location of the definition as a label. - line 1920: // FIXME: This doesn't diagnose assignment to a symbol which has been - line 2498: // FIXME: This is mostly duplicated from the function in AsmLexer.cpp. The - line 3442: // FIXME: Diagnose overflow. - line 3487: // FIXME: Target specific behavior about how the "extra" bytes are filled. - line 3499: // FIXME: I'm not sure what this is. - line 3621: // FIXME: Do something with the .line. - line 4865: // FIXME: Sometimes the fill expr is 'nop' if it isn't supplied, instead of 0. - line 5055: // FIXME: Diagnose overflow. - line 5077: // FIXME: Use loc from directive. - line 5088: // FIXME: Actually abort assembly here. - line 6389: // FIXME: Use better location, we should use proper tokens. - line 6407: // FIXME: Diagnostics. Note the location of the definition as a label. - line 6408: // FIXME: Diagnose assignment to protected identifier (e.g., register name). clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp (17 lines): - line 442: // TODO: Remove mutable by moving the initializtaion to the registry function. - line 605: // TODO: Needs some refactoring, as all other deallocation modeling - line 802: // TODO: Operator delete is hardly the only deallocator -- Can we reuse - line 807: // TODO: Ownership my change with an attempt to store the allocated memory. - line 848: // TODO: Implement. - line 856: // TODO: Implement. - line 863: // TODO: Factor the logic of "what constitutes as an entity being passed - line 1124: // FIXME: We need a more general way of getting the M_ZERO value. - line 1619: // FIXME: We should not rely on fully-constrained symbols being folded. - line 1695: // TODO: We could rewrite post visit to eval call; 'malloc' does not have - line 1794: // FIXME: This doesn't handle indirect calls. - line 1924: // FIXME: at the time this code was written, malloc() regions were - line 2106: // FIXME: where the block came from? - line 2904: // TODO: This logic should be a part of generic symbol escape callback. - line 2916: // TODO: Blocks should be either inlined or should call invalidate regions - line 3086: // TODO: If we want to be more optimistic here, we'll need to make sure that - line 3366: // FIXME: We will eventually need to handle non-statement-based events mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp (17 lines): - line 194: // TODO: support error propagation in OpenMPIRBuilder and use it instead of - line 212: // TODO: Perform appropriate actions according to the data-sharing - line 223: // TODO: Perform finalization actions for variables. This has to be - line 236: // TODO: Is the Parallel construct cancellable? - line 253: // TODO: support error propagation in OpenMPIRBuilder and use it instead of - line 266: // TODO: Perform finalization actions for variables. This has to be - line 283: // TODO: support error propagation in OpenMPIRBuilder and use it instead of - line 296: // TODO: Perform finalization actions for variables. This has to be - line 521: // TODO: The code generation for ordered simd directive is not supported yet. - line 525: // TODO: support error propagation in OpenMPIRBuilder and use it instead of - line 538: // TODO: Perform finalization actions for variables. This has to be - line 559: // TODO: Support the following clauses: private, firstprivate, lastprivate, - line 599: // TODO: Perform appropriate actions according to the data-sharing - line 609: // TODO: Perform finalization actions for variables. This has to be - line 626: // TODO: this should be in the op verifier instead. - line 696: // TODO: support error propagation in OpenMPIRBuilder and use it instead of - line 723: // TODO: this currently assumes WsLoop is semantically similar to SCF loop, clang/lib/Parse/ParseOpenMP.cpp (17 lines): - line 123: // TODO: add other combined directives in topological order. - line 677: // FIXME: Track CurTemplateDepth? - line 772: // TODO: add parsing of other clauses. - line 889: // FIXME: We should move the diagnosis string generation into libFrontend. - line 1608: // TODO: Keep some source location in the TI to provide better diagnostics. - line 1609: // TODO: Perform some kind of equivalence check on the condition and score - line 1731: // TODO: We ignore absent, contains, and holds assumptions for now. We - line 2194: // TODO Track the selector locations in a way that is accessible here to - line 2542: // TODO: In OpenMP 5.1 generate multiple directives based upon the matches - line 2583: // TODO: Generate nothing directive from OpenMP 5.1. - line 2598: // FIXME: Should this be permitted in C++? - line 2617: // FIXME: Should this be permitted in C++? - line 2862: // FIXME: We create a bogus CompoundStmt scope to hold the contents of - line 3795: /// FIXME: It will return an OpenMPMapClauseKind if that's what it parses. - line 3881: /// FIXME: It will return an OpenMPMapModifierKind if that's what it parses. - line 4189: // TODO: Is that intentional? - line 4203: // OpenMP 5.1 permits a ':' even without a preceding modifier. TODO: Is mlir/lib/Analysis/Utils.cpp (17 lines): - line 230: // TODO: Store the result of the fast check, as it might be used again in - line 238: // TODO: Store the source's domain to avoid computation at each depth. - line 249: // TODO: Handle local ids in the source domains while using the 'projectOut' - line 276: // TODO: Store 'srcSet' to avoid recalculating for each depth. - line 445: // TODO: extend this to any other memref dereferencing ops - line 512: // TODO: rewrite this to use getInstIndexSet; this way - line 584: // TODO: Support dynamic memref dimensions. - line 643: // TODO: improve/complete this when we have target data. - line 687: // TODO: handle dynamic dim sizes. - line 725: // FIXME: This algorithm is unnecessarily O(n) and should be improved to not - line 778: // TODO: Move this to LoopUtils. - line 973: // TODO: extend this to handle multiple result maps. - line 992: // TODO: Make this work with non-unit step loops. - line 1152: // TODO: extend the slicing utility to compute slices that - line 1155: // TODO: the slice computation is incorrect in the cases - line 1180: // TODO: This code is incorrect since srcLoopIVs can be 0-d. - line 1265: /// TODO: this does not account for aliasing of memrefs. clang/lib/StaticAnalyzer/Core/CallEvent.cpp (17 lines): - line 119: // TODO: We could check the types of the arguments here. - line 175: // TODO: If we were to keep CFG element information as part of the CallEvent - line 260: // TODO: Factor this out + handle the lower level const pointers. - line 268: // TODO: Support placement arguments once we start - line 270: // TODO: This is unnecessary when there's no destructor, but that's - line 362: // FIXME: All blocks should have signatures-as-written, even if the return - line 442: // TODO: Support allocator calls. - line 447: // TODO: Allocators should receive the correct size and possibly alignment, - line 460: // FIXME: Variadic arguments are not handled at all right now. - line 649: // TODO: We might as well look at the dynamic type of the object. - line 670: // FIXME: This doesn't handle an overloaded ->* operator. - line 717: // FIXME: This is checking that our DynamicTypeInfo is at least as good as - line 764: // FIXME: CallEvent maybe shouldn't be directly accessing StoreManager. - line 820: // FIXME: This also needs to invalidate captured globals. - line 933: // FIXME: Is this the best way to handle class receivers? - line 1012: // FIXME: Can this ever happen? - line 1066: // TODO: It could actually be subclassed if the subclass is private as well. clang/lib/Analysis/Consumed.cpp (17 lines): - line 39: // TODO: Adjust states of args to constructors in the same way that arguments to - line 41: // TODO: Use information from tests in for- and while-loop conditional. - line 42: // TODO: Add notes about the actual and expected state for - line 43: // TODO: Correctly identify unreachable blocks when chaining boolean operators. - line 44: // TODO: Adjust the parser and AttributesList class to support lists of - line 46: // TODO: Warn about unreachable code. - line 47: // TODO: Switch to using a bitmap to track unreachable blocks. - line 48: // TODO: Handle variable definitions, e.g. bool valid = x.isValid(); - line 50: // TODO: Take notes on state transitions to provide better warning messages. - line 52: // TODO: Test nested conditionals: A) Checking the same value multiple times, - line 746: // TODO: Make this more specific. (Deferred) - line 779: // FIXME: What should happen if someone annotates the move constructor? - line 781: // TODO: Adjust state of args appropriately. - line 796: // TODO: Adjust state of args appropriately. - line 915: // TODO: See if I need to check for reference types here. - line 1209: // FIXME: This should be removed when template instantiation propagates - line 1375: // TODO: Handle other forms of branching with precision, including while- clang/lib/CodeGen/CGExprAgg.cpp (17 lines): - line 401: // FIXME: Perform the checks on the field types in SemaInit. - line 470: // FIXME: Are there other cases where we can avoid emitting an initializer? - line 564: // element. TODO: some of these stores can be trivially - line 706: // FIXME: Can this actually happen? We have no test coverage for it. - line 710: // FIXME: Do we also need to handle property references here? - line 1125: // FIXME: pointer arithmetic? - line 1443: // FIXME: ABI-dependent. - line 1452: // FIXME: Check these. - line 1461: // FIXME: Do all fixed-point types represent zero as all 0 bits? - line 1470: // FIXME: Preserves zeroes only if zero pointers and null pointers have the - line 1530: // FIXME: Ignore result? - line 1531: // FIXME: Are initializers affected by volatile? - line 1596: // FIXME: Assess perf here? Figure out what cases are worth optimizing here - line 1693: // FIXME: volatility - line 1740: // FIXME: if we have an array of structures, all explicitly - line 1938: // FIXME: This overestimates the number of non-zero bytes for bit-fields. - line 2130: // FIXME: If we have a volatile struct, the optimizer can remove what might llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp (17 lines): - line 141: // FIXME: This sanitizer does not yet handle scalable vectors - line 798: // FIXME: this function should have "Cold" calling conv, - line 1247: // FIXME: Insert UnreachableInst if !MS.Recover? - line 2247: // TODO: handle struct types. - line 2428: /// FIXME: output seems suboptimal when one of the operands is a constant - line 2580: // FIXME: consider doing manual inline for small constant sizes and proper - line 2630: // FIXME: factor out common code from materializeStores - line 2734: // FIXME: detect and handle SSE maskstore/maskload - line 2804: // FIXME: consider propagating shadow of ConvertOp, at least in the case of - line 3281: // FIXME: Handle is_int_min_poison. - line 3519: // FIXME: For x86_avx_cmp_pd_256 and x86_avx_cmp_ps_256 this function - line 3793: // FIXME: this case is tricky, so we are just conservative here. - line 3800: // FIXME: NextInsn is likely in a basic block that has not been visited yet. - line 3836: // FIXME: Consider using SpecialCaseList to specify a list of functions that - line 3979: // FIXME: consider tracking vector origins for app vectors? - line 4360: // FIXME: magic ABI constants. - line 4961: // FIXME: magic ABI constants. flang/lib/Optimizer/CodeGen/CodeGen.cpp (17 lines): - line 33: // TODO: This should really be recovered from the specified target. - line 565: /// TODO: Part of supporting Fortran 2003 procedure pointers. - line 721: // TODO: Converting between two floating-point representations with the - line 865: // FIXME: this should be specialized by the runtime target - line 1089: // TODO: String comparaison should be avoided. Replace linkName with an - line 1159: /// TODO: lowering of CHARACTER type cases is not handled yet. - line 1312: /// TODO: how do we want to enforce this in LLVM-IR? Can we manipulate the fast - line 1415: // TODO: create ConstantAggregateZero for FIR aggregate/array types. - line 1576: // FIXME: use the target pointer size rather than sizeof(void*) - line 1660: // TODO: The symbol should be lowered to constant in lowering, they are read - line 1793: /// TODO: Part of supporting Fortran 2003 procedure pointers. - line 2466: // TODO: array offset subcomponents must be converted to LLVM's - line 2592: // TODO: Can we use a call to __muldc3 ? - line 2628: // TODO: Can we use a call to __divdc3 instead? - line 2861: /// TODO: Part of supporting Fortran 2003 procedure pointers. - line 2984: /// TODO: Either implement the unsupported cases or extend the verifier - line 3072: // 2.4. TODO: Either document or disable any other case that the following llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp (17 lines): - line 166: // FIXME: The liveness analysis is limited and does not tell if a register - line 237: // FIXME This inserts an unnecessary waitcnt - line 412: // FIXME: Should have a helper function like getEquivalentVGPRClass to get the - line 591: // TODO: it shall be possible to estimate maximum AGPR/VGPR pressure and - line 639: // TODO: May need to reserve a VGPR if doing LDS spilling. - line 680: // FIXME: Stop using reserved registers for this. - line 698: // FIXME: Should be able to specify the entry frame alignment per calling - line 831: // FIXME: Is it possible to be storing a frame index to itself? - line 1368: // FIXME: change to scavengeRegisterBackwards() - line 1515: // FIXME: Since this spills to another register instead of an actual - line 1556: // TODO: Can we detect this and skip the spill? - line 1691: // TODO: Can we detect this and skip the spill? - line 1994: // TODO: for flat scratch another attempt can be made with a VGPR index - line 2055: // TODO: Fold if use instruction is another add of a constant. - line 2057: // FIXME: This can fail - line 2366: // FIXME: This is very slow. It might be worth creating a map from physreg to - line 2537: // TODO: 64-bit operands have extending behavior from 32-bit literal. llvm/lib/Transforms/Utils/Local.cpp (17 lines): - line 1325: // TODO: Ideally, this function would not be called if PrefAlign is smaller - line 1343: // TODO: as above, this shouldn't be necessary. - line 1469: // FIXME: If storing to a part of the variable described by the dbg.declare, - line 1493: // FIXME: If only referring to a part of the variable described by the - line 1524: // FIXME: If only referring to a part of the variable described by the - line 1539: // FIXME: Insert dbg.value markers in the successors when appropriate. - line 1873: // TODO: Salvage from each kind of binop we know about. - line 2045: // TODO: This is not exhaustive. - line 2071: // FIXME: Use DW_OP_convert when it's available everywhere. - line 2099: // TODO: Floating-point conversions, vectors. - line 2538: // FIXME: If K does move, we should drop the range info and nonnull. - line 2577: // FIXME: we should try to preserve both invariant.group md if they are - line 2662: // FIXME: If both the original and replacement value are part of the - line 2791: // FIXME: It would be nice to propagate this in more ways, but the type - line 2830: // TODO: Extend llvm.dbg.value to take more than one SSA Value (PR39141) to - line 3168: return false; // TODO - handle null value? - line 3379: // TODO: There are a bunch of cases of restrictive memory effects we llvm/lib/CodeGen/CodeGenPrepare.cpp (17 lines): - line 346: // FIXME: When we can selectively preserve passes, preserve the domtree. - line 804: // FIXME: Is this really needed? Is this a correctness issue? - line 1029: // TODO: We might want to insert a new base object relocate and gep off - line 1078: // A duplicate relocate call. TODO: coalesce duplicates. - line 1853: // FIXME: always querying the result type is just an - line 2154: // into their uses. TODO: generalize this to work over profiling data - line 3908: // TODO: The result of the intrinsics above is two-compliment. However when - line 4544: // TODO: We can handle "Or Val, Imm" iff this OR is equivalent to an ADD. - line 5483: // FIXME: We should support this by sinking the GEP. - line 5501: // FIXME: This isn't strictly required. All that's required is that they are - line 5738: // FIXME: It would be possible to propagate a negative value instead of - line 6514: // TODO: Look into removing this restriction by fixing backends to either - line 6580: // FIXME: This should use the same heuristics as IfConversion to determine - line 7775: // TODO: Move into the switch on opcode below here. - line 7857: // TODO: Move this into the switch on opcode - it handles shifts already. - line 8014: // FIXME: Ideally this should never be necessary, and this has the potential - line 8126: /// FIXME: Remove the (equivalent?) implementation in SelectionDAG. clang/lib/Tooling/Syntax/BuildTree.cpp (16 lines): - line 290: /// FIXME: \p Name must be a source range. - line 318: /// FIXME: expose this as public API. - line 388: // FIXME: add mapping for TypeLocs - line 540: // FIXME: do not consume trailing semicolon on function definitions. - line 722: // FIXME: make RAV call WalkUpFrom* instead. - line 746: // FIXME: build the ClassSpecifier node. - line 831: // FIXME: should do this in RAV instead? - line 920: // FIXME: Fix `NestedNameSpecifierLoc::getLocalSourceRange` for the - line 939: // TODO: Treat the case of incorrect code. - line 968: // FIXME: Support Microsoft's __super - line 991: // TODO: Build `SimpleTemplateNameSpecifier` children and implement - line 1005: // TODO: Implement accessor to `DecltypeNameSpecifier` inner - line 1218: // FIXME: Assert that `LParenToken` is indeed a `l_paren` once we have fixed - line 1295: // FIXME: Assert that `LParenToken` is indeed a `l_paren` once we have - line 1324: // FIXME: build corresponding nodes for the name of this namespace. - line 1331: // FIXME: Deleting the `TraverseParenTypeLoc` override doesn't change test clang/lib/Parse/ParseDeclCXX.cpp (16 lines): - line 257: // FIXME: Preserve the source information through to the AST rather than - line 428: // FIXME: Factor out a ParseExternalDeclarationWithAttrs. - line 547: // FIXME: Are there cases, when we would like to call ActOnUsingDirective? - line 590: // FIXME: This is wrong; we should parse this as a typename-specifier. - line 1080: // FIXME: this should return the location of the last token - line 1246: // FIXME: Invoke ParseOptionalCXXScopeSpecifier in a "'template' is neither - line 1346: // FIXME: we should emit semantic diagnostic when declaration - line 1709: // FIXME: Name may be null here. - line 1888: // (FIXME: "template friend class A::B;"). - line 2630: // TODO: recover from mistakenly-qualified operator declarations. - line 2637: // FIXME: We should do something with the 'template' keyword here. - line 3260: // FIXME: We don't accept GNU attributes on access specifiers in OpenCL mode - line 3575: // FIXME: Suggest where the close brace should have gone by looking - line 3702: // FIXME: Can we get here with a scope specifier? - line 3723: // FIXME: Add support for signature help inside initializer lists. - line 4667: // FIXME: If this is actually a C++11 attribute, parse it as one. llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp (16 lines): - line 186: // TODO: If we had the source node we could see if the source was fma/mad - line 321: // TODO: Move into isKnownNeverNaN - line 629: // TODO: Technically we could try to pattern match scalar bitshifts of - line 829: // FIXME: Should only handle addcarry/subcarry - line 922: // FIXME: We should probably rename the opcodes here. - line 1089: // FIXME: Select to VOP3 version for with-carry. - line 1147: // TODO: If offset is too big, put low 16-bit into offset. - line 1245: // FIXME: This should be a pattern predicate and not reach here - line 1331: // FIXME: This should be a pattern predicate and not reach here - line 1575: // TODO: Should this try to use a scalar add pseudo if the base address - line 2205: // TODO: We can select this with f32 denormals enabled if all the sources are - line 2376: // TODO: Look into changing the default m0 initialization value. If the - line 2429: // TODO: Match source modifiers. - line 2722: // FIXME: Handle op_sel - line 2729: // FIXME: Handle op_sel - line 2767: // TODO: Should we try to look for neg/abs here? lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp (16 lines): - line 119: // FIXME: This should detect covariant return types, but currently doesn't. - line 136: // FIXME: In C++14 and later, we can just pass m2Type->param_type_end() - line 457: // FIXME: Cleanup per-file based stuff. - line 533: // FIXME: Eliminate this dependency. - line 543: // FIXME: This is affected by other options (-fno-inline). - line 1425: clang::Expr *const requires_clause = nullptr; // TODO: Concepts - line 1452: // TODO: verify which decl context we should put template_param_decls into.. - line 2196: // TODO: Detect calling convention in DWARF? - line 2311: // TODO: Do something intelligent with the Declaration object passed in - line 2315: // TODO: ask about these... - line 2328: // TODO: check if we should be setting the promotion type too? - line 2331: enum_decl->setAccess(AS_public); // TODO respect what's in the debug info - line 4636: decl->setAccess(clang::AS_public); // TODO respect proper access specifier - line 4786: // TODO: Set this to more than one??? - line 8297: /// TODO This really needs to be fixed. - line 9552: // TODO fix this and add a testcase that depends on it. clang/lib/Frontend/CompilerInstance.cpp (16 lines): - line 134: // FIXME: can we disable FEnvAccess? - line 144: // FIXME: We shouldn't need to do this, the target should be immutable once - line 511: // and also (a) collect header maps and (b) TODO: input vfs overlay files. - line 970: // FIXME: include the error in the diagnostic even when it's not stdin. - line 1031: consumeError(std::move(Err)); // FIXME this drops errors on the floor. - line 1306: // FIXME: We only need to fake up an input file here as a way of - line 1412: // FIXME: have LockFileManager return an error_code so that we can - line 1860: // FIXME: We shouldn't be setting HadFatalFailure below if we only - line 1870: // FIXME: The ASTReader will already have complained, but can we shoehorn - line 1965: /// FIXME: perhaps we should (a) look for a module using the module name - line 1999: // @import Foo_Private instead. FIXME: remove this when existing clients - line 2081: // FIXME: Should we detect this at module load time? It seems fairly - line 2130: // FIXME: Using a randomized filename here means that our intermediate .pcm - line 2151: // FIXME: We shouldn't need to do this. - line 2205: // FIXME this drops the error on the floor. This code is only used for - line 2239: // FIXME As above, this drops the error on the floor. clang/include/clang/AST/DeclObjC.h (16 lines): - line 1346: // FIXME: Should make sure no callers ever do this. - line 1357: // FIXME: Should make sure no callers ever do this. - line 1375: // FIXME: Should make sure no callers ever do this. - line 1386: // FIXME: Should make sure no callers ever do this. - line 1405: // FIXME: Should make sure no callers ever do this. - line 1418: // FIXME: Should make sure no callers ever do this. - line 1439: // FIXME: Should make sure no callers ever do this. - line 1447: // FIXME: Should make sure no callers ever do this. - line 1549: // FIXME: Should make sure no callers ever do this. - line 1760: // FIXME: Should make sure no callers ever do this. - line 1999: /*TInfo=*/nullptr, // FIXME: Do ObjCAtDefs have declarators ? - line 2281: /// FIXME: this should not be a singly-linked list. Move storage elsewhere. - line 2435: // FIXME: Context should be set correctly before we get here. - line 2441: // FIXME: Context should be set correctly before we get here. - line 2661: // FIXME: This is a bad API, we are hiding NamedDecl::getName with a different - line 2670: // FIXME: Move to StringRef API. llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp (16 lines): - line 531: // FIXME: Swap ADDS<->SUBS if Offset < 0, erase instruction if - line 568: // FIXME: Because of a bug, live registers are sometimes missing from - line 710: // FIXME: There are no Thumb1 load/store instructions with negative - line 721: // FIXME: Try add with register operand? - line 1468: // FIXME: Use LDM/STM with single register instead. - line 1579: // FIXME: post-indexed stores use am2offset_imm, which still encodes - line 1707: // TODO: We could allow unordered and monotonic atomics here, but we need to - line 1719: // FIXME: Use str as a wildcard to enable better stm folding. - line 1743: // FIXME: This is overly conservative; the new instruction accesses 4 - line 1752: // FIXME: This is overly conservative; the new instruction accesses 4 - line 1762: // FIXME: Code/comments below check Opcode == t2STRDi8, but this check returns - line 2193: // FIXME: tune this limit, and/or come up with some better heuristics. - line 2262: // FIXME: VLDRS / VSTRS -> VLDRD / VSTRD - line 2400: bool DoMove = (LastLoc - FirstLoc) <= NumMove*4; // FIXME: Tune this. - line 2442: // FIXME: We're converting from LDRi12 to an insn that still - line 2456: // FIXME: We're converting from LDRi12 to an insn that still llvm/lib/Analysis/InstructionSimplify.cpp (16 lines): - line 2707: // FIXME: We should also fold the compare when the pointer escapes, but the - line 3017: // TODO: allow non-constant shift amount/divisor - line 3079: // TODO: only support icmp slt for now. - line 3100: /// TODO: A large part of this logic is duplicated in InstCombine's - line 3229: // TODO: This is overly constrained. LHS can be any power-of-2. - line 3533: // TODO: Sink/common this with other potentially expensive calls that use - line 3849: // TODO: Use match with a specific FP value, so these work with vectors with - line 3896: // TODO: We can catch more cases by using a range check rather than - line 4080: // TODO: We could hand off more cases to instsimplify here. - line 4100: // TODO: This may be unsound, because it only catches some forms of - line 4813: // TODO: Look through bitcasts? What if the bitcast changes the vector element - line 4926: // TODO: Should we allow this? - line 4988: // TODO: Should we quiet a signaling NaN? - line 5028: // TODO: Move this out to a header file: - line 5706: // TODO: loosen undef/splat restrictions for vector constants. - line 6306: // TODO: Use NewOps llvm/lib/Transforms/Scalar/LoopInterchange.cpp (16 lines): - line 68: // TODO: Check if we can use a sparse matrix here. - line 315: // FIXME: Handle loops with more than one induction variable. Note that, - line 474: // TODO: Add a better heuristic to select the loop to be interchanged based - line 649: // TODO: Handle triangular loops. - line 660: // TODO: Handle triangular loops of another form. - line 833: // TODO: Currently we handle only loops with 1 induction variable. - line 862: // TODO: Currently we handle only loops with 1 induction variable. - line 878: // TODO: Triangular loops are not handled for now. - line 925: // FIXME: We currently are not able to detect floating point reductions - line 941: // FIXME: We could weaken this logic and allow multiple predecessors, - line 958: // TODO: Handle transformation of lcssa phis in the InnerLoop latch in case of - line 1033: // TODO: The loops could not be interchanged due to current limitations in the - line 1136: // TODO: Improve this heuristic to catch more cases. - line 1142: // TODO: We need to improve this heuristic. - line 1155: // TODO: Add better profitability checks. - line 1335: // FIXME: Should we interchange when we have a constant condition? llvm/utils/TableGen/CodeGenDAGPatterns.cpp (16 lines): - line 1355: // all have the same class. FIXME: Is there a way to find a common - line 1814: if (Constraint.OperandNo >= NumResults) // FIXME: need value # - line 1893: return 1; // FIXME: Generalize SDNodeXForm - line 2224: assert(ResNo == 0 && "FIXME: PatFrag with multiple results?"); - line 2268: assert(ResNo == 0 && "FIXME: ComplexPattern with multiple results?"); - line 2540: // FIXME: This sucks, it should apply all implicit defs. - line 2544: // FIXME: Generalize to multiple possible types and multiple possible - line 2556: assert(getChild(0)->getNumTypes() == 1 && "FIXME: Unhandled"); - line 2683: // TODO: AArch64 and AMDGPU use ComplexPattern and then - line 2742: // TODO: - line 3086: "FIXME: cannot name multiple result nodes yet"); - line 3098: "FIXME: cannot name multiple result nodes yet"); - line 3654: // FIXME: To match historical behavior of TableGen, for now add those flags - line 3887: assert(ResNodes[i]->getNumTypes() == 1 && "FIXME: Unhandled"); - line 3892: // FIXME: Assume only the first tree is the pattern. The others are clobber - line 3904: // FIXME: InstImpResults should not be part of DAGInstruction. clang-tools-extra/clangd/index/SymbolCollector.cpp (16 lines): - line 53: // FIXME: make filtering extensible when there are more use cases for symbol - line 73: // FIXME: the heuristic relies on naming style (i.e. no underscore in - line 335: // FIXME: Need a matcher for ExportDecl in order to include symbols declared - line 455: // FIXME: we should try to use the file locations for other fields. - line 468: // FIXME: ObjCPropertyDecl are not properly indexed here: - line 563: // FIXME: Populate container information for macro references. - line 583: // FIXME: remove macro with ID if it is undefined. - line 601: // FIXME: use the result to filter out symbols. - line 635: // TODO: There may be cases where the object decl is not indexed for some - line 725: // FIXME: use the result to filter out references. - line 739: // FIXME: All MacroRefs are marked as Spelled now, but this should be checked. - line 749: // FIXME: It's better to use TokenBuffer by passing spelled tokens from - line 784: // FIXME: this returns foo:bar: for objective-C methods, we prefer only foo: - line 800: // FIXME: use the result to filter out symbols. - line 810: // FIXME: we may want to choose a different redecl, or combine from several. - line 858: // FIXME: use the result to filter out symbols. llvm/lib/Target/VE/VEISelLowering.cpp (15 lines): - line 172: // TODO: Use MPD instruction to implement SMUL_LOHI for i32 type. - line 264: // FIXME: Support "atmam" instructions. - line 302: // TODO We will custom-widen into VVP_* nodes in the future. While we are - line 498: // TODO: need to calculate offset correctly once we support f128. - line 576: // FIXME: Use hasReservedCallFrame to avoid %sp adjustments around all calls - line 1073: // FIXME: "fencem 3" doesn't wait for for PCIe deveices accesses, - line 1092: // FIXME: Support "ATMAM" instruction for LOAD_ADD/SUB/AND/OR. - line 2065: // FIXME: Better to not use SX10 here - line 2131: // FIXME: Better to not use SX10 here - line 2412: // FIXME: Avoid quadratic complexity. - line 2567: // FIXME: Although we could sometimes handle this, and it does occur in - line 2660: // FIXME: Change hasAndNot function to have two operands to make it work - line 2695: MVT MaskVT = MVT::v256i1; // TODO: packed mode. - line 2754: // TODO: optimized implementation using constant values - line 2812: // TODO: optimized implementation using constant values clang-tools-extra/clangd/XRefs.cpp (15 lines): - line 127: // FIXME: figure out a good home for it, and share the implementation with - line 290: // FIXME: Canonical declarations of some symbols might refer to built-in - line 394: // FIXME: extend it to ^virtual, unfortunately, virtual location is not - line 584: // FIXME: For extra strictness, consider AnyScope=false. - line 629: // FIXME: Alternatively, try a stricter query? - line 1131: // FIXME: We don't analyze catch blocks, throw is treated the same as return. - line 1176: // FIXME: for do-while, this only covers the `do`.. - line 1236: // FIXME: show references to macro within file? - line 1250: // FIXME: we may get multiple DocumentHighlights with the same location - line 1281: // FIXME: Index can be stale, so we may loose some latest results from the - line 1389: // TODO: we could skip TU-scoped symbols here (e.g. static functions) if - line 1493: // FIXME: our index should definitely store def | decl separately! - line 1606: // FIXME: This is not classifying constructors, destructors and operators - line 1662: // FIXME: Populate 'range' correctly - line 1933: // FIXME: Consider also using AST information when feasible. llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp (15 lines): - line 71: // FIXME: support subtargets which have neon/fp-armv8 disabled. - line 194: // FIXME: This sholdn't be needed as v2s64 types are going to - line 276: // TODO: We could support sum-of-pow2's but the lowering code doesn't know - line 521: // FIXME: This is wrong since G_BITCAST is not allowed to change the - line 654: // TODO: Custom lowering for v2s32, v4s32, v2s64. - line 662: // TODO: Handle vector types. - line 705: // FIXME: Legal types are only legal with NEON. - line 762: // TODO: Use generic lowering when custom lowering is not possible. - line 779: // TODO: Vector types. - line 782: // TODO: Vector types. - line 788: // TODO: Vector types. - line 793: // TODO: Libcall support for s128. - line 794: // TODO: s16 should be legal with full FP16 support. - line 1034: // FIXME: This should be removed and replaced with the generic bitcast legalize - line 1156: // TODO: Lower this otherwise. clang/lib/CodeGen/CGExprCXX.cpp (15 lines): - line 390: // FIXME: Uses of 'MD' past this point need to be audited. We may need to use - line 540: // TODO: there are other patterns besides zero that we can usefully memset, - line 542: // TODO: isZeroInitializable can be over-conservative in the case where a - line 613: // FIXME: This only handles the simplest case, where the source object - line 959: // FIXME: Refactor with EmitExprAsInit. - line 1009: // FIXME: If the type is a pointer-to-data-member under the Itanium ABI, - line 1098: // element. TODO: some of these stores can be trivially - line 1105: // FIXME: If the last initializer is an incomplete initializer list for - line 1164: // FIXME: Share this cleanup with the constructor call emission rather than - line 1213: // FIXME: Recurse into nested InitListExprs. - line 1462: // FIXME: Use the right type as the parameter type. Note that in a call - line 1613: CharUnits cookieAlign = getSizeAlign(); // FIXME: Ask the ABI. - line 1636: // FIXME: Why do we not pass a CalleeDecl here? - line 1728: // FIXME: If we have an array cookie and a potentially-throwing allocator, - line 1930: // do a virtual call. FIXME: handle the case where it is llvm/lib/Target/AArch64/AArch64FrameLowering.cpp (15 lines): - line 118: // FIXME: also explain the redzone concept. - line 251: // TODO: Window is supported yet. - line 254: // TODO: SVE is not supported yet. - line 284: // FIXME: For now, just conservatively guestimate based on unscaled indexing - line 419: // FIXME: in-function stack adjustment for calls is limited to 24-bits - line 583: // FIXME: This is a bit conservative, since in the above case we could use one - line 638: // TODO: When implementing stack protectors, take that into account - line 1334: // TODO: Fix to use multiple stack alloc unwind codes for stacks - line 1462: // FIXME: in the case of dynamic re-alignment, NumBytes doesn't have - line 1502: // FIXME: Clarify FrameSetup flags here. - line 1938: // FIXME: Rather than doing the math here, we should instead just use - line 1982: /// references for now. FIXME: This can go wrong when references are - line 2020: // TODO: This function currently does not work for scalable vectors. - line 2801: // FIXME: the usual format is actually better if unwinding isn't needed. - line 3063: // FIXME: Given that the length of SVE vectors is not necessarily a power of clang/lib/Serialization/ASTWriterDecl.cpp (15 lines): - line 138: // FIXME: Put in the same order is DeclNodes.td? - line 181: // FIXME: We can skip entries that we know are implied by others. - line 255: // FIXME: We can do the same thing if there is any local declaration of - line 323: // FIXME: Can we handle this in AddedVisibleDecl instead? - line 413: Record.push_back((unsigned)D->getTagKind()); // FIXME: stable encoding - line 548: Record.push_back(static_cast(D->getStorageClass())); // FIXME: stable encoding - line 685: // FIXME: convert to LazyStmtPtr? - line 709: // FIXME: stable encoding for @required/@optional - line 711: // FIXME: stable encoding for in/out/inout/bycopy/byref/oneway/nullability - line 794: // FIXME: stable encoding for @public/@private/@protected/@package - line 861: // FIXME: stable encoding - line 864: // FIXME: stable encoding - line 1093: Record.push_back(D->getObjCDeclQualifier()); // FIXME: stable encoding - line 1847: // FIXME: This is not correct; when we reach an imported declaration we - line 2439: // FIXME: Can/should this happen? clang/lib/CodeGen/CGObjC.cpp (15 lines): - line 52: // FIXME: This bitcast should just be made an invariant on the Runtime. - line 262: // FIXME: This should pass the Decl not the name. - line 784: // TODO: possibly have several entry points to elide the check - line 848: // FIXME: Allow unaligned atomic load/store on x86. (It is not - line 949: // TODO: falling all the way back to objc_setProperty here is - line 1189: // FIXME: Can't this be simpler? This might even be worse than the - line 1204: // FIXME: We shouldn't need to get the function info here, the - line 1321: // FIXME: should this really always be false? - line 1503: // FIXME: We shouldn't need to get the function info here, the runtime - line 1870: // FIXME: We shouldn't need to get the function info here, the runtime already - line 1905: // TODO: this pointer should actually be invariant between - line 2359: // FIXME: Do this on all targets and at -O0 too. This can be enabled only if - line 2934: // FIXME: We should find a way to emit the runtime call immediately - line 3290: // TODO: handle conditional operators here - line 3392: // TODO: maybe special-case visitBinAssignWeak? flang/lib/Lower/IntrinsicCall.cpp (15 lines): - line 83: // TODO: Not implemented. - line 90: // TODO error handling -> return a code or directly emit messages ? - line 323: // TODO : Fill-up this table with more intrinsic. - line 437: // FIXME: Get width another way for fir.real/complex - line 642: // FIXME: need to access other ExtendedValue variants and handle them - line 660: // TODO: get the result shape and create the loop... - line 680: // TODO: get the result shape and create the loop... - line 713: // FIXME: using toValue to get the type won't work with array arguments. - line 721: "TODO: missing intrinsic lowering: " + llvm::Twine(name)); - line 827: // TODO: absent optional in outlining is an issue: we cannot just ignore - line 869: "TODO: missing intrinsic lowering: " + llvm::Twine(name)); - line 1161: // TODO: consider using mlir::arith::RemFOp when possible, that may help - line 1187: // TODO: Requirements when second argument is +0./0. - line 1241: // TODO: ieeeMinNum/ieeeMaxNum - line 1249: // TODO: ! character min and max is tricky because the result clang/lib/Parse/ParseTentative.cpp (15 lines): - line 120: // FIXME: TryParseSimpleDeclaration doesn't look past the first initializer, - line 128: // FIXME: Add statistics about the number of ambiguous statements encountered - line 185: // FIXME: We don't support class-specifiers nor enum-specifiers here. - line 309: // FIXME: Handle this case correctly. - line 316: // FIXME: Change if above assumption does not hold. - line 348: // FIXME: Unify the parsing codepaths for condition variables and - line 440: // FIXME: We could disallow non-type decl-specifiers here, but it makes no - line 494: // FIXME: A tag definition unambiguously tells us this is an init-statement. - line 505: // FIXME: Disambiguate properly after an = instead of assuming that it's a - line 579: // FIXME: Add statistics about the number of ambiguous statements encountered - line 703: // FIXME: If this disambiguation is too slow, fold the tentative lambda parse - line 711: // FIXME: Don't parse and annotate expressions when disambiguating - line 1315: // FIXME: If this happens due to an undeclared identifier, treat it as - line 1967: // FIXME: If we reach a ')' without consuming any '>'s, then this must - line 2109: // FIXME: In many contexts, X can only be a llvm/include/llvm/CodeGen/BasicTTIImpl.h (15 lines): - line 459: // TODO: Triggers issues on aarch64 on darwin, so temporarily disable it - line 681: /// FIXME: a bitfield is not a reasonable abstraction for talking about - line 770: // TODO: Handle more cost kinds. - line 786: // TODO: Once we have extract/insert subvector cost we need to use them. - line 822: // TODO: If one of the types get legalized by splitting, handle this - line 1078: // TODO: Handle other cost kinds. - line 1100: // TODO: If one of the types get legalized by splitting, handle this - line 1258: // TODO: Note that legalization can turn masked loads/stores into unmasked - line 1386: // FIXME: If necessary, this should go in target-specific overrides. - line 1392: // FIXME: If necessary, this should go in target-specific overrides. - line 1422: // FIXME: Handle case where a scalable vector is extracted from a scalable - line 1432: // FIXME: Handle case where a scalable vector is inserted into a scalable - line 1685: // FIXME: We should return 0 whenever getIntrinsicCost == TCC_Free. - line 1746: // TODO: Should we add an OperandValueProperties::OP_Zero property? - line 1936: // TODO: Once we have extract/insert subvector cost we need to use them. clang/lib/AST/DeclBase.cpp (15 lines): - line 257: // FIXME: Should local extern declarations be treated like friends? - line 341: // FIXME: We shouldn't be changing the lexical context of declarations - line 536: /// FIXME: Make these strings localizable, since they end up in - line 982: // FIXME: a ParmVarDecl can have ClassTemplateSpecialization - line 985: // FIXME: a ClassTemplateSpecialization or CXXRecordDecl can have - line 1094: // FIXME: Find a better way to identify friends. - line 1167: // FIXME: A variable template is a dependent context, but is not a - line 1463: // FIXME: This feels like a hack. Should DeclarationName support - line 1671: // FIXME: Make buildLookup const? - line 1755: // FIXME: Should we be checking these flags on the primary context? - line 1771: // FIXME: If we have lazy external declarations, this will not find them! - line 1772: // FIXME: Should we CollectAllContexts and walk them all here? - line 1863: // FIXME: As a performance hack, don't add such decls into the translation - line 1933: // FIXME: Use something more efficient than normal lookup for using - line 2002: // TODO: Maybe we shouldn't reverse the order during insertion. llvm/utils/TableGen/GlobalISelEmitter.cpp (15 lines): - line 27: /// FIXME: We'll probably want to eventually define a base - line 826: /// FIXME: This currently supports a single match position but could be - line 997: // FIXME: Remove this as soon as possible - line 1828: // TODO: This is used for the SwitchMatcher optimization. We should be able to - line 2806: // TODO: This is encoded as a 64-bit element, but only 16 or 32-bits are - line 3134: // TODO: Simple permutation looks like it could be almost as common as - line 3149: // TODO: Limit this to matched instructions that mayLoad/mayStore or have - line 3165: // FIXME: This is a hack but it's sufficient for ISel. We'll need to do - line 3387: // FIXME: Emit checks to determine it's _actually_ safe to fold and/or - line 3843: // FIXME: If MemoryVT is set, we end up with 2 checks for the MMO size. - line 4377: // TODO: Handle both G_BUILD_VECTOR and G_BUILD_VECTOR_TRUNC We could - line 4447: // FIXME: The target should be able to choose sign-extended when appropriate - line 4586: // TODO: Assert there's exactly one result. - line 5153: // FIXME: Long term, we don't want to have to rely on this implicit - line 5325: // FIXME: This may introduce an extra copy if the chosen class doesn't llvm/include/llvm/CodeGen/TargetLowering.h (15 lines): - line 344: /// FIXME: The default needs to be removed once all the code is updated. - line 350: /// the pointer type from the data layout. FIXME: The default needs to be - line 369: /// TODO: Let fence operands be of i32 type and remove this. - line 755: /// FIXME: we could avoid passing XC, but we can't use isConstOrConstSplat() - line 1201: // FIXME: Using the pointer type doesn't seem ideal. - line 1221: // FIXME: I don't think NumCmps is the correct metric: a single case and a - line 1971: /// FIXME: Please note that the default implementation here in terms of - line 2408: /// mode is legal for a load/store of any legal type. TODO: Handle - line 2413: /// TODO: Remove default argument - line 2423: /// TODO: Handle pre/postinc as well. - line 2424: /// TODO: Remove default argument - line 2484: // FIXME: This should get its info from the td file. - line 2891: // TODO: The default logic is inherited from code in CodeGenPrepare. - line 4119: /// zeroext/signext integer return value. FIXME: Some C calling conventions - line 4192: /// TODO: Consider merging with ReplaceNodeResults. clang/lib/Serialization/ASTWriterStmt.cpp (15 lines): - line 330: // FIXME: Move this to ASTRecordWriter? - line 598: Record.push_back(E->getIdentKind()); // FIXME: stable encoding - line 738: Record.push_back(E->getOpcode()); // FIXME: stable encoding - line 755: Record.push_back(ON.getKind()); // FIXME: Stable encoding - line 953: Record.push_back(E->getBridgeKind()); // FIXME: Stable encoding - line 962: Record.push_back(E->getCastKind()); // FIXME: stable encoding - line 978: Record.push_back(E->getOpcode()); // FIXME: stable encoding - line 1408: Record.push_back((unsigned)E->getReceiverKind()); // FIXME: stable encoding - line 1474: VisitStmt(S); // FIXME: no test coverage. - line 1494: VisitStmt(S); // FIXME: no test coverage. - line 1502: VisitStmt(S); // FIXME: no test coverage. - line 1600: Record.push_back(E->getConstructionKind()); // FIXME: stable encoding - line 1630: Record.push_back(E->LambdaExprBits.CaptureDefault); // FIXME: stable encoding - line 1968: Record.push_back(E->TypeTraitExprBits.Kind); // FIXME: Stable encoding - line 2091: // TODO: Figure out sane writer behavior for a TypoExpr, if necessary llvm/lib/CodeGen/MachineScheduler.cpp (15 lines): - line 537: // TODO: Visit blocks in global postorder or postorder within the bottom-up - line 605: // FIXME: Ideally, no further passes should rely on kill flags. However, - line 639: /// FIXME: Adjust SuccSU height based on MinLatency. - line 676: /// FIXME: Adjust PredSU height based on MinLatency. - line 1122: /// FIXME: Currently assuming single-use physregs. - line 1523: // FIXME: Don't compare everything twice. Maybe use C++20 three way - line 1639: // FIXME: Is this check really required? - line 2167: /// TODO: Also check whether the SU must start a new group. - line 2579: // FIXME: Re-enable assert once PR20057 is resolved. - line 2824: /// TODO: Consider refactor return type of these functions as integer or enum, - line 3002: /// TODO: Check execution resources in addition to IssueCount. - line 3097: /// FIXME: This is an unnecessary check on the critical path. Most are root/leaf - line 3294: /// TODO: getMaxPressureDelta results can be mostly cached for each SUnit during - line 3474: /// FIXME: Eventually, we may bundle physreg copies rather than rescheduling - line 3497: // FIXME: extend the mutation API to allow earlier mutations to instantiate llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp (15 lines): - line 91: // TODO: Lots more we could do here: - line 98: // TODO: This is a specific form of a much more general pattern. - line 360: // TODO: We are not checking one-use because the elimination of the multiply - line 362: // TODO: Should we canonicalize to '(X < 0) ? Y : 0' instead? That would be - line 760: // TODO: Adapt simplifyDivRemOfSelectWithZeroOp to allow this and other folds. - line 961: // FIXME: assert that Op1 isn't/doesn't contain undef. - line 982: // FIXME: missed optimization: if one of the hands of select is/contains - line 984: // FIXME: can both hands contain undef? - line 1062: // TODO: Could use isKnownNegative() to handle non-constant values. - line 1080: // TODO: The code would be reduced if we had m_c_NUWMul pattern matching. - line 1081: // TODO: If -reassociation handled this generally, we could remove this. - line 1187: // TODO: This could be enhanced to handle arbitrary vector constants by - line 1265: // TODO: Use Intrinsic::canonicalize or let function attributes tell us that - line 1300: // TODO: Use Intrinsic::canonicalize or let function attributes tell us that - line 1475: // TODO: Adapt simplifyDivRemOfSelectWithZeroOp to allow this and other folds. llvm/lib/Target/AMDGPU/SIFoldOperands.cpp (15 lines): - line 173: // TODO: Add heuristic that the frame index might not fit in the addressing mode - line 287: // FIXME: We should not invert how this pass looks at operands to avoid - line 615: // FIXME: Fold operands with subregs. - line 650: // FIXME: Should probably use stack pseudos before frame lowering. - line 904: // FIXME: We could try to change the instruction from 64-bit to 32-bit - line 1049: // TODO: See if a frame index with a fixed offset can fold. - line 1262: // FIXME: This will also reduce register usage, which may be better - line 1311: // FIXME: Probably shouldn't bother trying to fold if not an - line 1369: // FIXME: Clamp for v_mad_mixhi_f16 handled during isel. - line 1444: // FIXME: Does this really not support denormals with f16? - line 1445: // FIXME: Does this need to check IEEE mode bit? SNaNs are generally not - line 1511: // FIXME: Does this need to check IEEE bit on function? - line 1743: // FIXME: Also need to check strictfp - line 1769: // TODO: Omod might be OK if there is NSZ only on the source - line 1797: // FIXME: We could also be folding things like TargetIndexes. lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp (15 lines): - line 175: // TODO Randomly assigning a port is unsafe. We should get an unused - line 1074: return; // TODO: Handle non-uniform responses. - line 1883: // FIXME: We are still missing the case where we single step - line 1957: // FIXME: we're silently ignoring invalid data here - line 3294: // TODO: clear software watchpoints if we implement them - line 3773: // // FIXME: Implement talking to the remote debugserver. - line 3918: // FIXME the final character of a JSON dictionary, '}', is the escape - line 3990: // FIXME the final character of a JSON dictionary, '}', is the escape - line 4023: // FIXME the final character of a JSON dictionary, '}', is the escape - line 4204: // FIXME: we're silently ignoring invalid data here - line 4368: // FIXME: we're silently ignoring invalid data here - line 4534: // FIXME: we're silently ignoring invalid data here - line 4542: // FIXME: we're silently ignoring invalid data here - line 4616: // FIXME: we're silently ignoring invalid data here - line 4938: // TODO: grab error message from the packet? StringExtractor seems to clang/lib/Lex/HeaderSearch.cpp (14 lines): - line 325: // FIXME: Figure out how header maps and module maps will work together. - line 384: // FIXME: Use the name from \c DirectoryEntryRef. - line 873: // FIXME: Portability. Filename concatenation should be in sys::Path. - line 878: // FIXME: We don't cache the result of getFileInfo across the call to - line 1088: // FIXME: SuggestedModule. - line 1117: // FIXME: Should we permit '\' on Windows? - line 1254: // FIXME: Use a generation count to check whether this is really up to date. - line 1275: // FIXME: Use a generation count to check whether this is really up to date. - line 1347: // FIXME: this is a workaround for the lack of proper modules-aware support - line 1571: // FIXME: This can find a module not part of ModuleName, which is - line 1626: // FIXME: This assert can fail if there's a race between the above check - line 1792: // FIXME: Deal with header maps. - line 1855: // FIXME: We assume that the path name currently cached in the FileEntry is - line 1912: // FIXME: Support this search within frameworks. clang/lib/Sema/SemaCast.cpp (14 lines): - line 740: // FIXME: Accept these as an extension too? - line 1153: //FIXME: &f; is overloaded and resolvable - line 1488: // FIXME: Should allow casting away constness if CStyle. - line 1553: // FIXME: If the source is a prvalue, we should issue a warning (because the - line 1635: // FIXME: Being 100% compliant here would be nice to have. - line 1852: // FIXME: Per DR242, we should check for an implicit conversion sequence - line 2026: // FIXME: Scoped enums? - line 2179: // TODO: what if this fails because of DiagnoseUseOfDecl or something - line 2244: // FIXME: Use a specific diagnostic for the rest of these cases. - line 2353: // FIXME: Allow for reinterpret cast between 3 and 4 element vectors - line 2501: // FIXME: Conditionally-supported behavior should be configurable in the - line 2549: // FIXME: As compiler doesn't have any information about overlapping addr - line 2556: // FIXME: Should this be generalized to references? The reference parameter - line 3204: // FIXME: 'restrict' is not properly handled here. llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp (14 lines): - line 416: // TODO: Check why we would force simple calls or to ignore the cancel flag. - line 494: // TODO: This branch will not be needed once we moved to the - line 509: /* TODO weight */ nullptr, nullptr); - line 809: // FIXME: if there are more than 15 trailing arguments, they must be - line 1537: // FIXME: schedule(static) is NOT the same as schedule(static,1) - line 1560: // TODO: this can eventually move to CanonicalLoopInfo or to a new - line 1830: // TODO: Find common/largest indvar type. - line 1841: // TODO: Enable UndefinedSanitizer to diagnose an overflow here. - line 1963: // TODO: It would be sufficient to only sink them into body of the - line 2312: // TODO: Determine trip count of \p CLI if constant, computeUnrollCount might - line 2887: // TODO: Replace the twine arg with stringref to get rid of the conversion - line 2901: // TODO: investigate the appropriate linkage type used for the global - line 3029: // TODO: pass `FlushAO` after memory ordering support is added - line 3416: // TODO: To support simple redirecting of the end of the body code that has clang/lib/Parse/ParseExprCXX.cpp (14 lines): - line 964: // FIXME: Suggest a fixit here. - line 1030: // FIXME: This is horrible. Adding a mechanism to skip an expression - line 1032: // FIXME: If there is a ',' before the next ']' or ':', we can skip to - line 1246: // FIXME: Call into Actions to add any init-capture declarations to the - line 1456: // FIXME: Rename BlockScope -> ClosureScope if we decide to continue using - line 1687: /// decltype-specifier :: FIXME: not implemented, but probably only - line 1717: // FIXME: Carry on and build an AST representation for tooling. - line 1756: // FIXME: This is not a context in which a '<' is assumed to start a template - line 1794: switch (Tok.getKind()) { // FIXME: move this predicate somewhere common. - line 2471: // FIXME: Store name for literal operator too. - line 2727: if (ParseCXXTypeSpecifierSeq(DS)) // FIXME: ObjectType? - line 2863: // FIXME: Consider passing invalid template-ids on to callers; they may - line 2962: // FIXME: Suggest replacing the attempted destructor name with a correct - line 3532: // FIXME: Don't traverse these tokens twice (here and in clang/lib/Lex/ModuleMap.cpp (14 lines): - line 552: // FIXME: Considering whether the module is available rather than merely - line 683: // FIXME: Is this necessary? - line 951: // FIXME: we should be able to give a fix-it hint for the correct spelling. - line 1020: // FIXME: If there's no umbrella header, we could probably scan the - line 1100: // FIXME: Do we want to warn about subframeworks without umbrella headers? - line 1171: // FIXME: Add support for lazily stat'ing umbrella headers and excluded - line 1220: // FIXME: Should we diagnose if a header is listed twice in the - line 1246: // FIXME: Should we only exclude it from umbrella modules within the - line 2278: /// FIXME: Support 'private textual header'. - line 2501: // FIXME: Support string-literal module names here. - line 2641: // FIXME: Support macros with the same name as a keyword here. - line 2658: // FIXME: Support macros with the same name as a keyword here. - line 2796: // FIXME: Handle the 'framework' keyword. - line 2825: // FIXME: Support string-literal module names here. clang-tools-extra/clangd/unittests/HoverTests.cpp (14 lines): - line 387: HI.LocalScope = "X::"; // FIXME: X:: - line 393: {"class X { [[^~]]X(); };", // FIXME: Should be [[~X]]() - line 671: // FIXME: Maybe force instantiation to make use of real template - line 899: ^[[{]]1} // FIXME: why the hover range is 1 character? - line 999: HI.Type = {"A", "type-parameter-0-0"}; // FIXME: should be 'T' - line 1202: // FIXME: "decltype(auto)" should be a single hover - line 1204: // FIXME: not supported yet - line 1445: // FIXME: Initializer for x is a DesignatedInitListExpr, hence it is - line 1667: // FIXME: This should be `(anon enum)::` - line 1687: // FIXME: Value shouldn't be set in this case - line 1741: // FIXME: We should populate template parameters with arguments in - line 2231: // FIXME: not sure this is what we want, but this - line 2334: // FIXME: Handle composite types with decltype with a printing - line 2565: HI.Kind = index::SymbolKind::Unknown; // FIXME: no suitable value clang/lib/CodeGen/CodeGenModule.cpp (14 lines): - line 635: // FIXME: we could support it by stripping all the information introduced - line 1082: // FIXME: even thread local variables? - line 1492: // FIXME: Type coercion of void()* types. - line 1506: // FIXME: Type coercion of void()* types. - line 2848: // FIXME: This may get padding wrong under esoteric struct layout rules. - line 4098: // FIXME: This code is overly simple and should be merged with other global - line 5022: // FIXME: this is redundant with part of setFunctionDefinitionAttributes - line 5360: // FIXME: We set the section explicitly to avoid a bug in ld64 224.1. - line 5651: // FIXME: If an externally-visible declaration extends multiple temporaries, - line 6139: // non-top-level decl. FIXME: Would be nice to have an isTopLevelDeclKind - line 6189: // FIXME: DeferredEmptyCoverageMappingDecls is getting mutated because - line 6254: // TODO: should we report variant information for ctors/dtors? - line 6377: // FIXME: should we even be calling this method if RTTI is disabled - line 6545: // FIXME: This duplicates logic in ASTContext::getTypeAlignIfKnown. But llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp (14 lines): - line 116: // TODO: Do we want runtime unrolling? - line 350: // TODO: Support element-size less than 32bit? - line 406: // FIXME: Really we would like to issue multiple 128-bit loads and stores per - line 409: // FIXME: Should we use narrower types for local/region, or account for when - line 412: // FIXME: This could use fine tuning and microbenchmarks. - line 478: // TODO: Enable this again. - line 610: // FIXME: frem should be handled separately. The fdiv in it is most of it, - line 624: // TODO: This is more complicated, unsafe flags etc. - line 671: case Intrinsic::fma: // TODO: fmuladd - line 710: // TODO: Get more refined intrinsic costs? - line 825: // TODO: Handle complex extract indices - line 852: // FIXME: This is a workaround for getRegForInlineAsmConstraint - line 1028: // TODO: Do we need to thread more context in here? - line 1090: // FIXME: dx10_clamp can just take the caller setting, but there seems to be mlir/lib/Analysis/Presburger/IntegerPolyhedron.cpp (14 lines): - line 147: // TODO: Make 'removeIdRange' a lambda called from here. - line 1091: // TODO: Add division normalization to support divisions that differ by - line 1093: // TODO: Add division ordering such that a division representation for local - line 1338: // TODO: this can be handled in the future by using the explicit - line 1611: // TODO: consider doing this for equalities as well, but probably not worth - line 1678: // TODO: a slight modification to yield dark shadow version of FM (tightened), - line 1711: // TODO: refactor removeColumns to use it from here. - line 1775: // TODO: refactor this loop to avoid all branches inside. - line 1790: // TODO: we need to have a way to add inequalities in-place in - line 1953: // TODO: symbolic extents when necessary. - line 1954: // TODO: handle union if a dimension is unbounded. - line 1960: // TODO: symbolic extents when necessary. - line 2030: // TODO: copy over pure symbolic constraints from this and 'other' over to the - line 2084: // TODO: This method can be made more efficient (because removal of each clang/lib/CodeGen/ItaniumCXXABI.cpp (14 lines): - line 1294: // FIXME: Provide a source location here even though there's no - line 1685: // FIXME: avoid the fake decl - line 2075: // FIXME we can still emit a copy of the vtable if we - line 2759: // FIXME: shouldn't this be guarded by some variable? - line 2807: // FIXME: If VD is a definition, we should regenerate the function attributes - line 3065: // FIXME: need setObjCGCLValueClass? - line 3259: // FIXME: We do not emit RTTI information for decimal types here. - line 3350: llvm_unreachable("FIXME: Objective-C types are unsupported!"); - line 3407: // FIXME: this may need to be reconsidered if the key function - line 3540: // FIXME: GCC treats block pointers as fundamental types?! - line 4075: // FIXME: Consider updating libc++abi to match, and extend this logic to all - line 4293: // FIXME: Should we allow available_externally aliases? - line 4378: // FIXME: The deleting destructor is equivalent to the selected operator - line 4778: // TODO Consider code transformation that makes calling __clang_call_terminate llvm/lib/Transforms/Scalar/LoopUnswitch.cpp (14 lines): - line 142: // FIXME: The way that MaxSize works is subtle and depends on the - line 307: // FIXME: This is overly conservative because it does not take into - line 451: // TODO: Handle: br (VARIANT|INVARIANT). - line 596: /// FIXME: Remove this workaround when freeze related patches are done. - line 672: // FIXME: Use Function::hasOptSize(). - line 682: // FIXME: This could be refined to only bail if the convergent operation is - line 772: // FIXME: this should chose the most expensive case! - line 773: // FIXME: scan for a case with a non-critical edge? - line 858: // TODO: Instead of duplicating the checks, we could also just directly - line 1551: // FIXME: Support correlated properties, like: - line 1644: // FIXME: This is a hack. We need to keep the successor around - line 1682: /// FIXME: When the loop optimizer is more mature, separate this out to a new - line 1709: // 'false'. TODO: update the domtree properly so we can pass it here. - line 1771: // FIXME: there may be other opportunities, e.g. comparison with floating clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp (14 lines): - line 170: // FIXME: This does not handle other kinds of null references, - line 214: // FIXME: As seen in VisitCommonDeclRefExpr, sometimes DeclRefExpr may - line 1102: // FIXME: We should have a more generalized location printing mechanism. - line 1475: // FIXME: Handle CXXThisRegion as well. (This is not a priority because - line 1531: // TODO: support other situations better. - line 1908: // TODO: Cache CFGBlocks for each ExplodedNode. - line 1991: // FIXME: There's a hack in our Store implementation that always computes - line 1996: // See the FIXME in StoreManager's getLValueFieldOrIvar() method. - line 2085: // TODO: Shouldn't we track control dependencies of every bug location, - line 2135: // TODO: extract it into more handlers - line 2251: // FIXME: This code currently bypasses the call site for the - line 2320: // FIXME: this is a hack for fixing a later crash when attempting to - line 2621: // FIXME: Stmt::SwitchStmtClass is worth handling, however it is a bit - line 2938: // FIXME: If there's already a constraint tracker for this variable, clang/lib/CodeGen/CGExprConstant.cpp (14 lines): - line 322: // FIXME: This assumes vector elements are byte-sized. - line 353: // FIXME: This assumes vector elements are byte-sized. - line 354: // FIXME: If possible, split into two ConstantDataSequentials at Hint. - line 385: // FIXME: We could split a ConstantInt if the need ever arose. - line 607: // FIXME: This should never occur, but currently it can because initializer - line 682: // cases. FIXME: There are still a few more cases we can handle this way. - line 1637: // FIXME: Implement C++11 [basic.start.init]p2: if the initializer of a - line 1826: // FIXME: the chain of casts required should be reflected in the APValue. - line 1852: // an integer. FIXME: performAddrSpaceCast - line 1866: // FIXME: integer offsets from non-zero null pointers. - line 1872: // FIXME: signedness depends on the original integer type. - line 2002: // FIXME: need to deal with UCN conversion issues. - line 2061: // FIXME: the target may want to specify that this is packed. - line 2084: // FIXME: the target may want to specify that this is packed. clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp (14 lines): - line 541: // FIXME: This predicate seems like it would be useful to add to ASTContext. - line 936: return; // FIXME: is this correct? - line 1126: // FIXME: handle properties that are declared across multiple lines. - line 1132: // FIXME: handle category headers that are declared across multiple lines. - line 1158: // FIXME: handle protocol headers that are declared across multiple lines. - line 1193: // FIXME: handle forward protocol that are declared across multiple lines. - line 1202: // FIXME: handle forward protocol that are declared across multiple lines. - line 1448: // TODO: avoid this copy. - line 1828: // FIXME: If this should support Obj-C++, support CXXTryStmt - line 4471: // FIXME: Handle enums. - line 5306: // FIXME: Conform to ABI ([[obj retain] autorelease]). - line 5533: // FIXME: Missing definition of - line 5573: // FIXME: What we're doing here is modifying the type-specifier that - line 5697: // FIXME: If this should support Obj-C++, support CXXTryStmt clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp (14 lines): - line 16: // TODO: Path notes. - line 91: // TODO: pthread_rwlock_init(2 arguments). - line 92: // TODO: lck_mtx_init(3 arguments). - line 93: // TODO: lck_mtx_alloc_init(2 arguments) => returns the mutex. - line 94: // TODO: lck_rw_init(3 arguments). - line 95: // TODO: lck_rw_alloc_init(2 arguments) => returns the mutex. - line 124: // TODO: pthread_rwlock_destroy(1 argument). - line 125: // TODO: lck_rw_destroy(2 arguments). - line 263: // TODO: Maybe make this the default behavior of CallDescription - line 265: // FIXME: Try to handle cases when the implementation was inlined rather - line 449: // FIXME: If the lock function was inlined and returned true, - line 657: // TODO: We probably need to clean up the lock stack as well. - line 684: // FIXME: This is a bit quadratic. - line 691: // TODO: We need to invalidate the lock stack as well. This is tricky mlir/lib/Dialect/Vector/VectorOps.cpp (14 lines): - line 287: // TODO: update to support 0-d vectors when available. - line 401: // TODO: Add remaining reduction operations. - line 449: // TODO: Unify linalg op attribute parsing. - line 487: // TODO: Unify printing code with linalg ops. - line 791: // TODO: This should be a folding of Add into Contract in core but while they - line 1168: // TODO: This case could be support in a canonicalization pattern. - line 1720: // TODO: Should be moved to Tablegen Confined attributes. - line 2649: // TODO: support more aggressive createOrFold on: - line 2666: // TODO: support 0-d corner case. - line 2667: // TODO: Be less conservative. - line 2773: // TODO: support 0-d corner case. - line 3003: // TODO: support 0-d corner case. - line 3014: // TODO: support 0-d corner case. - line 3189: // TODO: support 0-d corner case. llvm/lib/CodeGen/TargetLoweringBase.cpp (14 lines): - line 94: // FIXME: This option is only to test if the strict fp operation processed - line 162: // FIXME: What about other targets? - line 719: // TODO: the default will be switched to 0 in the next commit, along - line 1120: // FIXME: We don't support non-power-of-2-sized vectors for now. - line 1590: // FIXME: We don't support non-power-of-2-sized vectors for now. Ideally - line 1633: // FIXME: This function check the maximum table size and density, but the - line 1653: /// TODO: Move this out of TargetLowering.cpp. - line 1672: // FIXME: C calling convention requires the return type to be promoted to - line 1715: // TODO: While using the data layout works in practice, a better solution - line 1989: // TODO: add LOAD_STACK_GUARD support. - line 2005: // TODO: add LOAD_STACK_GUARD support. - line 2069: // TODO: Handle "half" or other float types? - line 2268: // FIXME: Not preserving dereferenceable - line 2287: // FIXME: Not preserving dereferenceable clang/lib/Lex/LiteralSupport.cpp (14 lines): - line 113: // TODO: K&R: the meaning of '\\a' is different in traditional C - line 564: // FIXME: Make the type of the result buffer correct instead of - line 573: // FIXME: Make the type of the result buffer correct instead of - line 685: /// TODO: add rules... - line 905: // FIXME: Don't bother expanding UCNs if !tok.hasUCN(). - line 1453: // FIXME: Don't bother with this if !tok.hasUCN(). - line 1462: // FIXME: The "Value" is an uint64_t so we can handle char literals of - line 1464: // FIXME: This extensively assumes that 'char' is 8-bits. - line 1724: // TODO: K&R warning: "traditional C rejects string constant concatenation" - line 1809: // TODO: Input character set mapping support. - line 1912: // FIXME: Make the type of the result buffer correct instead of - line 1918: // FIXME: Make the type of the result buffer correct instead of - line 1933: // FIXME: Make the type of the result buffer correct instead of - line 1938: // FIXME: Make the type of the result buffer correct instead of llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp (14 lines): - line 16: /// TODO: This pass currently keeps one timeline per hardware counter. A more - line 475: // TODO: Handle TTMP - line 615: #if 0 // TODO: check if this is handled by MUBUF code above. - line 620: unsigned OpNo;//TODO: find the OpNo for this operand; - line 910: // TODO: If IPRA is enabled, and the callee is isSafeForNoCSROpt, it may make - line 942: // FIXME: This should have already been handled by the memory legalizer. - line 970: #if 0 // TODO: the following blocks of logic when we have fence. - line 1071: // FIXME: Should not be relying on memoperands. - line 1147: // TODO: Remove this work-around, enable the assert for Bug 457939 - line 1279: // TODO: Use the (TSFlags & SIInstrFlags::LGKM_CNT) property everywhere. - line 1533: #if 0 // TODO: implement resource type check controlled by options with ub = LB. - line 1549: // TODO: Remove this work-around after fixing the scheduler and enable the - line 1608: // TODO: Could insert earlier and schedule more liberally with operations - line 1715: // FIXME: It would be better to insert this before a waitcnt if any. clang/lib/AST/RecordLayoutBuilder.cpp (14 lines): - line 53: // FIXME: Document. - line 579: // FIXME: Remove this and make the appropriate fields public. - line 1741: // TODO: figure it out what needs to be done on targets that don't honor - line 2377: // FIXME: To the extent that this is meant to cover the Itanium ABI - line 2863: // TODO: Double check with the next version of MSVC. - line 2866: // TODO: Some later version of MSVC will change the default behavior of the - line 2970: // TODO: Add a Sema warning that MS ignores bitfield alignment in unions. - line 2987: // TODO: Add a Sema warning that MS ignores alignment for zero - line 2996: // TODO: Add a Sema warning that MS ignores bitfield alignment in unions. - line 3296: // FIXME: this should be stored in the record layout. - line 3300: // FIXME: This should be done in FinalizeLayout. - line 3379: // FIXME: remember that we did this for module / chained PCH state? - line 3410: // FIXME: We should eliminate the need to have ObjCImplementationDecl passed - line 3424: // FIXME: The index here is closely tied to how ASTContext::getObjCLayout is clang/lib/Lex/Preprocessor.cpp (14 lines): - line 295: // FIXME: List information for all submodules. - line 325: // FIXME: Include sizes from all submodules, and include MacroInfo sizes, - line 510: // FIXME: We could consider re-using spelling for tokens we see repeatedly. - line 719: // FIXME: the raw_identifier may contain leading whitespace which is removed - line 851: // FIXME: This warning is disabled in cases where it shouldn't be, like - line 862: // FIXME: This warning is disabled in cases where it shouldn't be, - line 1009: // FIXME: A header-name could be formed starting or ending with an - line 1022: // FIXME: Provide code completion for #includes. - line 1078: // FIXME: For error recovery, consider recognizing attribute syntax here - line 1139: // FIXME: Should we allow this in all language modes that support an import - line 1212: // FIXME: Call the moduleImport callback? - line 1273: // FIXME: Is this the right level to be performing this transformation? - line 1310: // FIXME: Include the path in the diagnostic. - line 1311: // FIXME: Include the import location for the conflicting module. clang/lib/AST/DeclCXX.cpp (13 lines): - line 141: // FIXME: DelayTypeCreation seems like such a hack - line 646: // FIXME: We don't check the bases of X. That matches the standard, but - line 655: // FIXME: Should we really care about the type of the first non-static - line 711: // FIXME: Pass NamedDecl* to addedMember? - line 866: // FIXME: We use the 'unsafe' accessor for the access specifier here, - line 1278: // FIXME: We should check all base classes here, not just direct - line 1946: // FIXME: Any access specifiers is supposed to make this no longer interface - line 2687: // FIXME: other qualifiers? - line 2704: // FIXME: This has nothing to do with the definition of converting - line 2920: // FIXME: Preserve the aliased namespace as written. - line 2942: // FIXME: This is not necessarily correct for a temporary materialized - line 2946: // FIXME: This only works because storage class specifiers are not allowed - line 3300: // FIXME: We only need to check this once, not once each time we compute a clang/lib/CodeGen/CGDecl.cpp (13 lines): - line 202: // FIXME: We need to force the emission/use of a guard variable for - line 303: // FIXME: Ensure that global blocks get emitted. - line 458: // FIXME: It is really dangerous to store this in the map; if anyone - line 974: // TODO: Should budget depends on the size? Avoiding a large global warrants - line 986: /// FIXME We could be more clever, as we are for bzero above, and generate - line 1096: // FIXME: Add handling for tail padding in vectors. Vectors don't - line 1223: // FIXME: handle the case when STy != Loc.getElementType(). - line 1235: // FIXME: handle the case when ATy != Loc.getElementType(). - line 1457: // TODO: We should constant-evaluate the initializer of any variable, - line 1585: // FIXME: in general circumstances, this should be an EH cleanup. - line 1958: // TODO: how can we delay here if D is captured by its initializer? - line 2140: // FIXME: When popping normal cleanups, we need to keep this EH cleanup - line 2437: // FIXME: Why isn't ImplicitParamDecl a ParmVarDecl? clang-tools-extra/clangd/Hover.cpp (13 lines): - line 147: // FIXME: This doesn't handle composite types that contain a decltype in them. - line 209: // FIXME: TemplateTemplateParameter doesn't store the info on whether this - line 381: // FIXME: handle variadics. - line 643: // FIXME: Populate documentation - line 644: // FIXME: Populate parameters - line 706: // FIXME: distinguish decltype(auto) vs decltype(expr) - line 737: // FIXME: Come up with names for `special` expressions. - line 742: // TODO: Once GCC5 is fully retired and not the minimal requirement as stated - line 748: // FIXME: Support hover for literals (esp user-defined) - line 979: // FIXME: We don't have a fitting value for Kind. - line 1028: // FIXME: Fill in HighlightRange with range coming from N->ASTNode. - line 1045: // FIXME: support hovers for other nodes? - line 1239: // FIXME: make FlushParagraph handle this. clang/lib/Sema/SemaLambda.cpp (13 lines): - line 783: // FIXME: This is a poor diagnostic for ReturnStmts without expressions. - line 784: // TODO: It's possible that the *first* return is the divergent one. - line 863: // FIXME: Retain the TypeSourceInfo from buildLambdaInitCaptureInitialization - line 872: // FIXME: Pass in separate source locations for '&' and identifier. - line 877: // FIXME: Pass in a VarDecl::InitializationStyle. - line 1101: // FIXME: we should create the init capture variable and mark it invalid - line 1163: // FIXME: Disable corrections that would add qualification? - line 1478: // FIXME: Instead of passing in the CallOperator->getTypeSourceInfo() - line 1713: // FIXME: Should we really be doing this? A null TypeSourceInfo seems more - line 1781: // FIXME: Is this really the best choice? Keeping the lexical decl context - line 1811: // FIXME: Where did the IsGenericLambda here come from? - line 1869: // FIXME: Skip this capture if the capture is not used, the initializer - line 1898: // FIXME: Fix generic lambda to block conversions. clang/lib/Parse/ParseExpr.cpp (13 lines): - line 441: // FIXME: We can't check this via lookahead before we consume the token - line 549: // FIXME: Errors generated by the delayed typo correction should be - line 586: // FIXME: Errors generated by the delayed typo correction should be - line 960: // FIXME: What should we do if a vector literal is followed by a - line 1778: // FIXME: Don't parse a primary-expression suffix if we encountered a parse - line 2134: // FIXME: Creating a TentativeAnalysisScope from outside Sema is a - line 2169: // FIXME: Add support for explicit call of template constructor. - line 2507: // TODO: Build AST. - line 2560: // FIXME: This loop leaks the index expressions on error. - line 3033: // TODO: For cast expression with CastTy. - line 3060: // FIXME: If we ever support comma expressions as operands to - line 3260: // FIXME: These expressions should be parsed in a potentially potentially - line 3498: // FIXME: Since the return type isn't actually parsed, it can't be used to clang/lib/Sema/SemaExceptionSpec.cpp (13 lines): - line 372: // FIXME: What if the exceptions are described in terms of the old - line 466: // FIXME: Preserve enough information so that we can produce a correct fixit - line 694: // FIXME: ObjC pointer types? - line 712: // FIXME: Should we treat the exception as catchable if a lifetime - line 780: // FIXME: As usual, we could be more specific in our error messages, but - line 949: // FIXME: If there is a nested dependent exception specification, we should - line 1142: // FIXME: Properly determine whether a variably-modified type can throw. - line 1179: // FIXME: Properly determine whether a variably-modified type can throw. - line 1301: // FIXME: Properly determine whether a variably-modified type can throw. - line 1321: // FIXME: Properly determine whether a variably-modified type can throw. - line 1375: // FIXME: Many of the above can throw. - line 1519: // FIXME: Properly determine whether a variably-modified type can throw. - line 1540: // FIXME: We should add a DiscardedStmt marker to the AST. clang/lib/Format/UnwrappedLineParser.cpp (13 lines): - line 447: // FIXME: Add parameter whether this can happen - if this happens, we must - line 576: // FIXME: Some of these do not apply to JS, e.g. "} {" can never be a - line 737: // FIXME: Closure-library specific stuff should not be hard-coded but be - line 1028: // FIXME: This returns true for C/C++ keywords like 'struct'. - line 1523: // FIXME: Figure out cases where this is not true, and add projections - line 1816: // FIXME: This also accepts sequences of operators that are not in the scope - line 1825: // FIXME: This heuristic is incorrect for C++20 generic lambdas with - line 1960: // FIXME: Once we have an expression parser in the UnwrappedLineParser, - line 2336: // FIXME: Add error handling. - line 2415: // FIXME: Add error handling. - line 2472: // FIXME: fix handling of complex expressions here. - line 2771: // FIXME: This will also mark enums with braces in the arguments to enum - line 3286: // FIXME: Consider putting separate line comment sections as children to the clang/lib/StaticAnalyzer/Core/SValBuilder.cpp (13 lines): - line 73: // FIXME: Handle floats. - line 415: // TODO: When the Max Complexity is reached, we should conjure a symbol - line 450: // FIXME: Support C++20 spaceship operator. - line 522: // FIXME: Doing this after unwrapping the types doesn't make any sense. A - line 587: /// FIXME: If `OriginalTy.isNull()` is true, then cast performs based on CastTy - line 602: // FIXME: Move this check to the most appropriate - line 734: // FIXME: Currently we are using an extent symbol here, - line 745: // FIXME: Cleanup remainder of `getZeroWithPtrWidth ()` - line 771: // FIXME: Keep these here for now in case we decide soon that we - line 790: // FIXME: We really need a single good function to perform casts for us - line 856: // FIXME: There can be gross cases where one casts the result of a - line 953: // FIXME: Correctly support promotions/truncations. - line 984: // FIXME: Remove this hack when we support symbolic truncation/extension. llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp (13 lines): - line 415: // FIXME: Can we sink instructions without violating dominance when TheSrc - line 582: // FIXME: We could probably with some care handle both volatile and ordered - line 620: // FIXME: We should also canonicalize loads of vectors when their elements are - line 626: // FIXME: We could probably with some care handle both volatile and atomic - line 734: // FIXME: This should probably live in ValueTracking (or similar). - line 810: // FIXME: We could fold any GEP index to zero that would cause UB if it were - line 872: // FIXME: If the GEP is not inbounds, and there are extra indices after the - line 973: // TODO: Consider a target hook for valid address spaces for this xforms. - line 1109: // FIXME: We could probably with some care handle both volatile and ordered - line 1141: // FIXME: We should also canonicalize stores of vectors when their elements - line 1147: // FIXME: We could probably with some care handle both volatile and atomic - line 1359: // FIXME: Some bits are legal for ordered atomic stores; needs refactoring. - line 1523: // FIXME: This should really be AA driven. llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp (13 lines): - line 391: // TODO: Handle more cost kinds. - line 397: // TODO: return a good value for BB-VECTORIZER that includes the - line 528: // FIXME: VF 2 for these FP operations are currently just as - line 547: // FIXME: VF 2 for float is currently just as expensive as for VF 4. - line 567: // TODO: Since fp32 is expanded, the shuffle cost should always be 0. - line 621: // TODO: Since fp32 is expanded, the extract cost should always be 0. - line 627: // typically gets hoisted out of a loop. TODO: return a good value for - line 726: // FIXME: Can the logic below also be used for these cost kinds? - line 769: // TODO: tune vector-to-scalar cast. - line 801: // TODO: Fix base implementation which could simplify things a bit here - line 831: // FIXME: VF 2 for float<->i32 is currently just as expensive as for VF 4. - line 933: // floats. FIXME: <2 x float> generates same code as <4 x float>. - line 1074: // TODO: Handle other cost kinds. clang/lib/Frontend/ASTUnit.cpp (13 lines): - line 589: // FIXME: We shouldn't need to do this, the target should be immutable once - line 694: // FIXME: In the long run, ee don't want to drop source managers from modules. - line 951: // FIXME: Currently ObjC method declarations are incorrectly being - line 1040: // FIXME: Currently ObjC method declarations are incorrectly being - line 1159: "FIXME: AST inputs not yet supported here!"); - line 1211: consumeError(std::move(Err)); // FIXME this drops errors on the floor. - line 1569: "FIXME: AST inputs not yet supported here!"); - line 1619: consumeError(std::move(Err)); // FIXME this drops errors on the floor. - line 2191: "FIXME: AST inputs not yet supported here!"); - line 2250: // FIXME: there is no way to update VFS if it was changed by - line 2268: consumeError(std::move(Err)); // FIXME this drops errors on the floor. - line 2283: // FIXME: Can we somehow regenerate the stat cache here, or do we need to - line 2338: // FIXME: There should be a cleaner way to do this. llvm/lib/IR/Instructions.cpp (13 lines): - line 118: // FIXME: we could just swap with the end of the list, then erase. However, - line 2303: // TODO: We don't recognize self-insertion/widening. - line 2334: // TODO: How should we handle undefs at the start of subvector insertions? - line 2371: // FIXME: Not currently possible to express a shuffle mask for a scalable - line 2398: // FIXME: Not currently possible to express a shuffle mask for a scalable - line 2417: // FIXME: Not currently possible to express a shuffle mask for a scalable - line 2904: // TODO: Target informations may give a more accurate answer here. - line 2986: // TODO: This logic could be encoded into the table above and handled in the - line 3050: // FIXME: Is this always true? - line 3095: // FIXME: this state can be merged with (1), but the following assert - line 3117: // FIXME: this state can be merged with (1), but the following assert - line 3129: // FIXME: this state can be merged with (2), but the following assert - line 3444: // FIXME: Check address space sizes here flang/lib/Semantics/resolve-names.cpp (13 lines): - line 1831: // TODO: for all of these errors, reference previous statement too - line 2090: // TODO: Statement functions - line 2145: symbol.attrs() = hostSymbol.attrs(); // TODO: except PRIVATE, PUBLIC? - line 2254: // TODO: check no INTENT(OUT)? - line 2900: // TODO: check that attrs are compatible with stmt func - line 3459: // TODO: may be under StructureStmt - line 4227: // TODO: This would be more appropriate in CheckDerivedType() - line 6090: // TODO: check C762 - all bounds and type parameters of component - line 6117: // TODO: Need to Walk(init.u); when implementing this case - line 6122: // TODO - DATA statements and DATA-like initialization extension - line 6560: // TODO: what about instantiations in BLOCK? - line 6564: // TODO: warn for the case where the EQUIVALENCE statement is in a - line 6730: // TODO: global directives clang/lib/AST/DeclObjC.cpp (13 lines): - line 340: // FIXME: Should make sure no callers ever do this. - line 373: // FIXME: Should make sure no callers ever do this. - line 620: // FIXME: Should make sure no callers ever do this. - line 651: // FIXME: Should make sure no callers ever do this. - line 686: // FIXME: Should make sure no callers ever do this. - line 740: // FIXME: Should make sure no callers ever do this. - line 1198: // FIXME: Handle related result types here. - line 1597: // FIXME: Should make sure no callers ever do this. - line 1632: // FIXME: Should make sure no callers ever do this. - line 1704: // FIXME: Should make sure no callers ever do this. - line 1757: // FIXME: Treat this as an extension, and flag this as an error when GCC - line 1798: // FIXME: This should really be asserting this: - line 2134: // FIXME: The context should be correct before we get here. llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp (13 lines): - line 392: // FIXME: this is probably unneeded with GlobalISel. - line 461: // FIXME: The vectorizer is highly sensistive to the cost of these - line 478: // TODO: Allow non-throughput costs that aren't binary. - line 643: // TODO: Get these tables to know at least what the related operations are. - line 1465: // TODO: Handle other cost kinds. - line 1576: // TODO: Splitting, once we do that. - line 1824: // TODO Handle scalar operations properly. - line 1882: // FIXME: Unfortunately the approach of checking the Operation Action does - line 2014: // TODO: Check whether the trip count calculation is expensive. If L is the - line 2032: // FIXME: This is a workaround for poor cost modelling. Min/Max intrinsics are - line 2136: // TODO: for now only allow consecutive strides of 1. We could support - line 2147: // TODO: don't tail predicate if there is a reversed load? - line 2151: // TODO: Loop variant strides should in theory work, too, but llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp (13 lines): - line 21: // TODO List: - line 438: // FIXME: This could check for UndefValue because it can be merged into any - line 460: // TODO: If CI is larger than 16-bytes, we can try slicing it in half to see - line 1024: // TODO: For this to be really effective, we have to dive into the pointer - line 1131: // TODO: ideally we should still be able to generate memset if SCEV expander - line 1165: // TODO: ideally we should still be able to generate memset if SCEV expander - line 1318: // FIXME: until llvm.memcpy.inline supports dynamic sizes, we need to - line 1341: // TODO: Deal with non-constant size; Currently expect constant store size - line 1803: // TODO: We can skip the step. If loop trip count is known (CTLZ), - line 2347: // FIXME: support right-shift? - line 2646: // FIXME: Val could be a one-input PHI node, which we should look past. - line 2854: // FIXME: or when the offset was `add nuw` - line 2890: /*HasNSW=*/true); // FIXME: what about NUW? llvm/lib/Transforms/Scalar/JumpThreading.cpp (13 lines): - line 287: // FIXME: We currently only set the profile data when it is missing. - line 527: // FIXME: THREADING will delete values that are just used to compute the - line 663: // FIXME: This should be an edge property, not a block end property. - line 664: /// TODO: Per PR2563, we could infer value range information about a - line 667: // FIXME: change this to use the more-rich 'getPredicateOnEdge' method if - line 965: // FIXME: Do this more cleverly if both values are known constants? - line 1131: // FIXME: Unify this with code below. - line 1141: // TODO: This should be extended to handle switches as well. - line 1210: // TODO: There are other places where load PRE would be profitable, such as - line 1438: // TODO: If this logic becomes more complex, and we will perform PRE insertion - line 1804: // TODO: We could make use of this to do it once for blocks with common PHI - line 2577: // FIXME this locally as well so that BPI and BFI are consistent as well. We - line 2980: // TODO: Look up deeper than to immediate predecessor? llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp (13 lines): - line 68: // FIXME: Assert this is a shader return. - line 239: // FIXME: Compatibility shim - line 390: // TODO: Handle CalleeSavedRegsViaCopy. - line 457: // FIXME: How should these inputs interact with inreg / custom SGPR inputs? - line 499: // TODO: Add GridWorkGroupCount user SGPRs when used. For now with HSA we read - line 526: // TODO: Align down to dword alignment and extract bits for extending loads. - line 772: // TODO: Unify with private memory register handling. This is complicated by - line 878: // FIXME: Should consider known workgroup size to eliminate known 0 cases. - line 1001: // FIXME: We are not accounting for potential differences in implicitly passed - line 1075: // TODO Check divergence info if the call really is divergent. - line 1202: // FIXME: Not accounting for callee implicit inputs - line 1270: // FIXME: We should define regbankselectable call instructions to handle - line 1380: // FIXME: We should define regbankselectable call instructions to handle flang/runtime/matmul.cpp (13 lines): - line 20: // Places where BLAS routines could be called are marked as TODO items. - line 201: // TODO: call BLAS-3 SGEMM - line 203: // TODO: call BLAS-3 DGEMM - line 205: // TODO: call BLAS-3 CGEMM - line 207: // TODO: call BLAS-3 ZGEMM - line 217: // TODO: call BLAS-2 SGEMV(x,y) - line 219: // TODO: call BLAS-2 DGEMV(x,y) - line 221: // TODO: call BLAS-2 CGEMV(x,y) - line 223: // TODO: call BLAS-2 ZGEMV(x,y) - line 233: // TODO: call BLAS-2 SGEMV(y,x) - line 235: // TODO: call BLAS-2 DGEMV(y,x) - line 237: // TODO: call BLAS-2 CGEMV(y,x) - line 239: // TODO: call BLAS-2 ZGEMV(y,x) llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp (13 lines): - line 336: // TODO: Fix these when we implement atomic support - line 355: // TODO: Fix these when we implement atomic support - line 418: // TODO: Fix these when we implement atomic support - line 686: #if 0 // TODO: Enable this when wasm gets multiple-return-value support. - line 695: #if 0 // TODO: Enable this when wasm gets multiple-return-value support. - line 704: #if 0 // TODO: Enable this when wasm gets multiple-return-value support. - line 714: #if 0 // TODO: Enable this when wasm gets multiple-return-value support. - line 724: #if 0 // TODO: Enable this when wasm gets multiple-return-value support. - line 734: #if 0 // TODO: Enable this when wasm gets multiple-return-value support. - line 746: #if 0 // TODO: Enable this when wasm gets multiple-return-value support. - line 759: #if 0 // TODO: Enable this when wasm gets multiple-return-value support. - line 773: #if 0 // TODO: Enable this when wasm gets multiple-return-value support. - line 889: // TODO: If the RTLIB::Libcall-taking flavor of GetSignature remains unsed llvm/lib/Transforms/IPO/PassManagerBuilder.cpp (13 lines): - line 322: // FIXME: A lightweight version of the pass should run in the backend - line 357: // FIXME: The hint threshold has the same value used by the regular inliner - line 434: // TODO: Investigate the cost/benefit of tail call elimination on debugging. - line 455: // TODO: Investigate promotion cap for O1. - line 459: // TODO: Investigate promotion cap for O1. - line 465: // FIXME: We break the loop pass pipeline here in order to do full - line 521: // TODO: Investigate if this is too expensive at O1. - line 544: /// FIXME: Should LTO cause any differences to this set of passes? - line 554: // FIXME: It would be really good to use a loop-integrated instruction - line 687: // FIXME: The BarrierNoopPass is a HACK! The inliner pass above implicitly - line 820: // FIXME: This is a HACK! The inliner pass above implicitly creates a CGSCC - line 935: // FIXME: We shouldn't bother with this anymore. - line 1172: // FIXME: this is profitable (for compiler time) to do at -O0 too, but llvm/lib/Transforms/Scalar/IndVarSimplify.cpp (13 lines): - line 298: // TODO: We could use i64 if it is native and the range requires it. - line 706: // TODO: Allow non-icmp loop test. - line 710: // TODO: Allow indirect use. - line 839: /// TODO: If we decide that this is a good approach to checking for undef, we - line 1099: // TODO: This handling is inaccurate for one case: If we switch to a - line 1241: // FIXME: Refactor this check somehow? - line 1489: // TODO: Extend to handle corresponding sext/signed-cmp case - line 1490: // TODO: Extend to other invertible functions - line 1612: // TODO: We might have proved that we can skip the last iteration for - line 1682: // TODO: There might be another oppurtunity to leverage SCEV's reasoning - line 1736: // have already been removed; TODO: generalize - line 1804: // TODO:isGuaranteedToTransfer - line 1990: // FIXME: SCEV expansion has no way to bail out, so the caller must llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp (13 lines): - line 352: // TODO: Only walk until we hit Start. - line 613: // TODO: Simplify this once P will be determined by MSSA, in which case the - line 672: // TODO: We should really distinguish between libcall availability and - line 683: // TODO: Can use MSSA for this. - line 750: // TODO: Support non-local call-slot optimization? - line 782: // TODO: We should really distinguish between libcall availability and - line 910: // TODO: This is currently not checked. - line 1060: // FIXME: MD_tbaa_struct and MD_mem_parallel_loop_access should also be - line 1105: // TODO: If the code between M and MDep is transparent to the destination "c", - line 1107: // TODO: It would be sufficient to check the MDep source up to the memcpy - line 1126: // TODO: Is this worth it if we're creating a less aligned memcpy? For - line 1426: // TODO: Support non-local call-slot optimization? - line 1429: // FIXME: Can we pass in either of dest/src alignment here instead clang/include/clang/AST/Expr.h (13 lines): - line 855: /// FIXME: Should IgnoreImplicit do this? - line 875: /// FIXME: IgnoreParenImpCasts really ought to be equivalent to - line 908: /// FIXME: This is intended purely as a temporary workaround for code - line 1859: // FIXME: StringRef may not be the right type to use as a result for this. - line 3032: /// FIXME: Find a way to remove it. - line 3450: // FIXME: Init should never be null. - line 3458: // FIXME: Init should never be null. - line 4360: // FIXME: A templated statement expression should have an associated - line 4793: // FIXME: Eliminate this vector in favor of ASTContext allocation - line 4922: // FIXME: This is wrong; InitListExprs created by semantic analysis have - line 4986: // FIXME: This does not include the array filler expression. - line 5704: // FIXME: This iterator could conceptually be a random access iterator, and - line 5722: StmtPtrPtrTy E; // = nullptr; FIXME: Once support for gcc 4.8 is dropped. llvm/lib/Transforms/IPO/FunctionImport.cpp (12 lines): - line 116: // FIXME: This multiplier was not really tuned up. - line 168: /// FIXME: select "best" instead of first that fits. But what is "best"? - line 265: // FIXME: Consider adding a check that the suitable prevailing definition - line 373: // FIXME: Consider not skipping import if the module contains - line 537: // FIXME: Change the GVSummaryMapTy to hold ValueInfo instead of GUID - line 890: // FIXME: If we knew which edges were created for indirect call profiles, - line 1066: // TODO: propagate ReadNone and ReadOnly. - line 1109: // FIXME: Change this to collect replaced GVs and later erase - line 1158: // FIXME: Eventually we should control promotion instead of promoting - line 1172: // FIXME: This may not be needed once PR27866 is fixed. - line 1180: // FIXME: See if we can just internalize directly here via linkage changes - line 1409: // FIXME: Probably need to propagate Errors through the pass manager. mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp (12 lines): - line 432: // TODO: OpEmitter should not have a Record directly, - line 492: // TODO: verify the default value is valid (perhaps in debug mode only). - line 739: // TODO: this is inefficient, we are recreating the attribute for every - line 1268: // TODO: Subsume this with general checking if type can be - line 1270: // TODO: Expand to handle regions. - line 1367: // TODO: Expand to support regions. - line 1622: // TODO: Expand to handle successors. - line 1682: // TODO: Adjust the 'returnType' field of such attributes - line 2120: // TODO: We could verify equality here, but skipping that for verification. - line 2497: // TODO: We could also add a flag to allow operations to opt in to this - line 2621: // TODO: this is inefficient, we are recreating the attribute for every - line 2765: // TODO: We are constructing the Operator wrapper instance just for llvm/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp (12 lines): - line 553: // on top of. FIXME: spill locations created before this pass runs - line 943: /// TODO: Store optimization can fold spills into other stores (including - line 1295: // TODO: Try to keep tracking of an entry value if we encounter a propagated - line 1526: // FIXME: Can we break out of this loop early if no insertion occurs? - line 1579: // TODO: Handle multiple stores folded into one. - line 1611: // FIXME: Current solution does not cover search for killed register in - line 1636: // FIXME: Handle folded restore instructions with more than one memory - line 1738: // FIXME: A comment should explain why it's correct to return early here, - line 1812: // FIXME: A comment should explain why it's correct to return early here, - line 2034: // TODO: Add support for local variables that are expressed in terms of - line 2036: // TODO: Add support for modified arguments that can be expressed - line 2059: // TODO: Add support for parameters that have a pre-existing debug expressions llvm/include/llvm/Object/ELFObjectFile.h (12 lines): - line 562: // TODO: Test this error. - line 584: // TODO: Test this error. - line 712: // TODO: Test this error. - line 721: // TODO: Test this error. - line 730: // TODO: Actually report errors helpfully. - line 736: // TODO Investigate why empty name symbols need to be marked. - line 741: // TODO: Actually report errors helpfully. - line 752: // TODO: Actually report errors helpfully. - line 778: // TODO: Test this error. - line 940: // TODO: Report the error message properly. - line 1014: // FIXME: error check symbolIdx - line 1235: // FIXME: Proper error handling. flang/lib/Semantics/check-omp-structure.cpp (12 lines): - line 414: // TODO: Expand the check to include `LOOP` construct as well when it is - line 421: // TODO: Check for declare simd regions. - line 719: // TODO: This check needs to be extended while implementing nesting of - line 733: // TODO: Expand the check to include `LOOP` construct as well when it is - line 830: // TODO: Verify the popping of dirContext requirement after nowait - line 865: // TODO: Check for procedure name in declare target directive. - line 1013: // TODO: Expand the check to include `LOOP` construct as well when it is - line 1315: // TODO: Verify the popping of dirContext requirement after nowait - line 1397: // TODO: ordered region binding check (requires nesting implementation) - line 1688: // TODO: Verify the assumption here that the immediately enclosing region is - line 1905: // 2.8.1 TODO: list-item attribute check - line 2387: // TODO:: Generate the tuples using TableGen. clang/lib/Parse/ParseObjc.cpp (12 lines): - line 473: // FIXME: If these aren't protocol references, we'll need different - line 478: // FIXME: Better recovery here?. - line 626: // FIXME: This should use ConsumeExtraSemi() for extraneous semicolons, - line 694: // FIXME: If someone forgets an @end on a protocol, this loop will - line 1121: // FIXME: May have to do additional look-ahead to only allow for - line 1197: // FIXME: Diagnose redundant specifiers. - line 1500: // FIXME: Add support for optional parameter list... - line 1627: // FIXME: Also include types here. - line 2672: // FIXME: This is wrong, due to C++11 braced initialization. - line 2911: // proper recovery can happen. FIXME: Perhaps filter the corrected expr to - line 2995: // FIXME: Should not be querying properties of types from the parser. - line 3035: // FIXME: This doesn't benefit from the same typo-correction we openmp/runtime/src/kmp_csupport.cpp (12 lines): - line 619: /* TODO the below shouldn't need to be adjusted for serialized teams */ - line 749: // TODO: explicit barrier_wait_id: - line 960: // TODO: ordered_wait_id - line 1027: // TODO: ordered_wait_id - line 1271: // TODO: add THR_OVHD_STATE - line 1948: // !!!!! TODO: check the per-task binding - line 1983: // !!!!! TODO: check the per-task binding - line 2215: __kmp_threads[gtid]->th.th_ident = loc; // TODO: check if it is needed (e.g. - line 2243: // TODO: Make check abort messages use location info & pass it into - line 3847: // TODO: implicit barrier: should be exposed - line 3873: // TODO: implicit barrier: should be exposed - line 3904: // TODO: implicit barrier: should be exposed llvm/lib/Transforms/Utils/LoopUtils.cpp (12 lines): - line 135: // FIXME: I believe that this could use copy_if if the Inst reference could - line 185: // FIXME: When all loop passes preserve MemorySSA, it can be required and - line 727: // TODO: Generalize ConstantFoldTerminator so that it can be used - line 829: // TODO: incorporate information from other exits - line 1080: // TODO: Support in-order reductions based on the recurrence descriptor. - line 1214: // TODO: If we see testcase with multiple ExitingBlocks can be deleted - line 1318: // TODO: This should probably be sunk into SCEV in some way; maybe a - line 1337: // the ExitValue already. TODO: This should be merged into SCEV - line 1359: // TODO: evaluate whether it is beneficial to change how we calculate - line 1565: // TODO: Move noalias annotation code from LoopVersioning here and share with LV if possible. - line 1566: // TODO: Pass RtPtrChecking instead of PointerChecks and SE separately, if possible - line 1641: // TODO: support additional instructions. llvm/utils/gn/secondary/compiler-rt/lib/asan/BUILD.gn (12 lines): - line 108: # FIXME: have SANITIZER_COMMON_CFLAGS thingy? should fno-builtin be in - line 115: # FIXME: link rt dl m pthread log - line 116: # FIXME: dep on libcxx-headers? - line 117: # FIXME: add_sanitizer_rt_version_list (cf hwasan) - line 118: # FIXME: need libclang_rt.asan*.a.syms? - line 119: # FIXME: windows flags (-Zl -nodefaultlibs) - line 120: # FIXME: asan_ignorelist.txt - line 172: # FIXME: better - line 175: # FIXME: -Wl,-rpath - line 176: # FIXME: codesign (??) - line 194: # FIXME: Move these to real targets. - line 201: # FIXME: These are in clang_rt.asan_static in the CMake build. llvm/include/llvm/Analysis/IRSimilarityIdentifier.h (12 lines): - line 74: // TODO: Shared with MachineOutliner - line 107: /// TODO: Handle types of Instructions which can be equal even with different - line 109: /// TODO: Handle CallInsts, which are only checked for function type - line 111: /// TODO: Handle GetElementPtrInsts, as some of the operands have to be the - line 317: /// TODO: This is very similar to the MachineOutliner, and should be - line 459: // TODO: Determine a scheme to resolve when the label is similar enough. - line 465: // TODO: Determine a scheme to resolve when the labels are similar enough. - line 467: // TODO: Handle allocas. - line 480: // TODO: Handle specific intrinsics. - line 490: // TODO: We do not current handle similarity that changes the control flow. - line 492: // TODO: We do not current handle similarity that changes the control flow. - line 494: // TODO: Handle interblock similarity. llvm/lib/Target/ARM/ARMAsmPrinter.cpp (12 lines): - line 328: // FIXME: The register allocator not only may not have given us the - line 584: // FIXME: - line 619: // FIXME: For ifunc related functions we could iterate over and look - line 727: // FIXME: add more flags to ARMBuildAttributes.h - line 736: // FIXME: To support emitting this build attribute as GCC does, the - line 746: // FIXME: There is no way to emit value 0 (wchar_t prohibited). - line 756: // FIXME: There is no way to emit value 0 (enums prohibited) or value 3 - line 855: // FIXME: Remove this when Darwin transition to @GOT like syntax. - line 1372: // FIXME: Need to also handle globals and externals - line 1791: // FIXME: Ideally we could vary the LDRB index based on the padding - line 1909: // FIXME: Remove this special case when they do. - line 1926: // FIXME: Remove this special case when they do. llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp (12 lines): - line 221: // TODO: AArch64TargetLowering::LowerCTPOP() supports 128bit popcount. - line 903: // TODO: this is naive. The optimization is still valid if DupPg - line 1190: // TODO: Add additional widening operations (e.g., mul, shl, etc.) once we - line 1265: // TODO: Allow non-throughput costs that aren't binary. - line 1616: // TODO: Handle more cost kinds. - line 1700: // TODO: if one of the arguments is scalar, then it's not necessary to - line 1767: // TODO: Handle other cost kinds. - line 1826: // TODO: Add cost modeling for strict align. Misaligned loads expand to - line 1833: // TODO: Though vector loads usually perform well on AArch64, in some targets - line 1888: // TODO: At the moment this is applied unilaterally for all CPUs, but at some - line 1921: // TODO: consider latency as well for TCK_SizeAndLatency. - line 2483: // TODO: handle vXi8/vXi16. llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp (12 lines): - line 331: // TODO: We could infer when VPTs are implicitly predicated on the - line 648: // TODO: Check whether this is just a mov of a register that would be - line 857: // FIXME: VNEG FP and -0? I think we'll need to handle this once we allow - line 1031: // TODO: Instead of blocking predication, we could move the vctp to the exit - line 1081: // TODO Maybe there's cases where the target doesn't have to be the header, - line 1223: // TODO: Allow VPSEL and VPNOT, we currently cannot because: - line 1359: // FIXME: I don't see why we shouldn't be supporting multiple predecessors - line 1382: // TODO: Though the call will require LE to execute again, does this - line 1406: // TODO: Check for copy chains that really have no effect. - line 1422: // TODO: We could also try to generate a cbz if the value in LR is also in - line 1731: // TODO: We should be able to automatically remove these branches before we - line 1807: // FIXME: For some reason, the live-in print order is non-deterministic for clang/lib/Sema/SemaModule.cpp (12 lines): - line 79: // FIXME: Consider creating an explicit representation of this declaration. - line 119: // FIXME: Most of this work should be done by the preprocessor rather than - line 234: // FIXME: Create a ModuleDecl. - line 268: // FIXME: Check this isn't a module interface partition. - line 269: // FIXME: Check that this translation unit does not import any partitions; - line 296: // FIXME: Consider creating an explicit representation of this declaration. - line 342: // FIXME: we should support importing a submodule within a different submodule - line 345: // Import-from-implementation is valid in the Modules TS. FIXME: Should we - line 347: // FIXME: Import of a module from an implementation partition of the same - line 370: // FIXME: Pass in and use the location of the header-name token in this case. - line 414: // FIXME: Should we even get ActOnModuleInclude calls for those? - line 449: // FIXME: Consider creating a child DeclContext to hold the entities llvm/lib/Support/YAMLParser.cpp (12 lines): - line 719: // FIXME: Error reporting. - line 1331: // FIXME: Remove once llvm optimizes this to the faster version without hints. - line 1733: // FIXME: Actually parse the c-ns-shorthand-tag rule. - line 1924: // TODO: Tag resolution. - line 1960: // TODO: Handle newlines properly. We need to remove leading whitespace. - line 2096: // TODO: Report error. - line 2100: // TODO: Report error. - line 2108: // TODO: Report error. - line 2112: // TODO: Report error. - line 2120: // TODO: Report error. - line 2124: // TODO: Report error. - line 2486: // TODO: Properly handle tags. "[!!str ]" should resolve to !!str "", not llvm/lib/Transforms/Vectorize/VectorCombine.cpp (12 lines): - line 128: // TODO: Handle non-zero insert index. - line 350: // TODO: Evaluate whether that always results in lowest cost. Alternatively, - line 386: // TODO: The cost model has an option for a "broadcast" shuffle - line 498: // TODO: If we add a larger pattern match that starts from an insert, this - line 547: // TODO: We could allow any shuffle. - line 600: // TODO: Can we account for that in the cost model? - line 612: // TODO: Deal with mismatched index constants and variable indexes? - line 633: // TODO: Handle this once getVectorInstrCost can cost for load/stores. - line 719: // TODO: Relax the one-use constraints. - line 731: // TODO: Relax the one-use constraints. - line 932: // TODO: Combine more complicated patterns (multiple insert) by referencing - line 1031: // TODO: Freeze index if it is safe to do so. openmp/runtime/src/kmp.h (12 lines): - line 1177: /* josh TODO: what about OS X* tuning? */ - line 1205: /* TODO: tune for KMP_OS_DARWIN */ - line 1209: /* TODO: tune for KMP_OS_DRAGONFLY */ - line 1213: /* TODO: tune for KMP_OS_FREEBSD */ - line 1217: /* TODO: tune for KMP_OS_NETBSD */ - line 1221: /* TODO: tune for KMP_OS_HURD */ - line 1225: /* TODO: tune for KMP_OS_OPENBSD */ - line 2610: /* TODO use these in more places as determined to be needed via profiling */ - line 2660: /* TODO the first serial team should actually be stored in the info_t - line 2863: // CACHE_LINE=64. TODO: investigate more and get rid if this padding. - line 2913: // TODO: GEH - combine r_active with r_in_parallel then r_active == - line 2915: // TODO: GEH - then replace r_active with t_active_levels if we can to reduce clang/lib/StaticAnalyzer/Core/MemRegion.cpp (12 lines): - line 478: // FIXME: More elaborate pretty-printing. - line 808: // FIXME: The following are being used in 'SimpleSValBuilder' and in - line 929: // FIXME: This can be made more efficient. - line 988: // TODO: We could walk the complex types here and see if everything is - line 998: // FIXME: Once we implement scope handling, we will need to properly lookup - line 1010: // FIXME: Assign a more sensible memory space to static locals - line 1027: // FIXME: The fallback type here is totally bogus -- though it should - line 1084: // FIXME: Once we implement scope handling, we want the parent region - line 1241: // FIXME: when operator() of lambda is analyzed as a top level function and - line 1368: // FIXME: Handle multi-dimensional arrays. - line 1373: // FIXME: generalize to symbolic offsets. - line 1527: // TODO: Store the base type in the CXXDerivedObjectRegion and use it. llvm/lib/CodeGen/IfConversion.cpp (12 lines): - line 625: DebugLoc dl; // FIXME: this is nowhere - line 989: // FIXME: Allow true block to have an early exit? - line 1130: // FIXME: This instruction is already predicated before the - line 1146: // FIXME: Make use of PredDefs? e.g. ADDC, SUBC sets predicates but are - line 1474: DebugLoc dl; // FIXME: this is nowhere - line 1497: // FIXME: Const cast here is nasty, but better than making StepForward - line 1614: // FIXME: Must maintain LiveIns. - line 1624: DebugLoc dl; // FIXME: this is nowhere - line 1758: // FIXME: Must maintain LiveIns. - line 2040: // FIXME: Must maintain LiveIns. - line 2110: // FIXME: Must maintain LiveIns. - line 2262: // FIXME: This usage is too tricky and in the future we would like to llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp (12 lines): - line 193: // FIXME: Add memmove if it's also safe to transform. - line 206: // FIXME: Handle only memset for now. Supporting memcpy/memmove should be - line 256: // TODO: check that KillingII's mask is a superset of the DeadII's mask. - line 348: // TODO: Maybe come up with a better name? - line 491: // TODO: Limit maximum alignment by preferred (or abi?) alignment of the - line 650: // TODO: Deal with other constant types (vectors, etc), and probably - line 852: // FIXME: Vet that this works for size upper-bounds. Seems unlikely that we'll - line 1074: // TODO: Add support for phi translation to handle the loop case. - line 1078: // TODO: Checking for aliasing is expensive. Consider reducing the amount - line 1467: // TODO: It would probably be better to check for self-reads before - line 1829: // TODO: Skip no alias MemoryDefs that have no aliasing reads. - line 2035: // TODO: implement tryToMergeParialOverlappingStores using MemorySSA. llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp (12 lines): - line 351: // FIXME: Can this happen for floating point types? - line 2508: // FIXME: This is to handle i1 vectors with elements promoted to i8. - line 2784: // TODO: If the input elements are power-two vectors, we could convert this to - line 3236: // FIXME: This could lead to an infinite split/widen loop. We only handle the - line 3544: // TODO: This might result in a widen/split loop. - line 3718: // FIXME: Optimizations need to be implemented here. - line 4164: // FIXME: Not all targets may support EVL in VP_LOAD. These will have been - line 4325: // FIXME: This code seems to be too restrictive, we might consider - line 4404: // FIXME: This support could be added in the future. - line 4841: // FIXME: This isn't safe for StrictFP. Other optimization here is needed. - line 5045: // FIXME: Not all targets may support EVL in VP_STORE. These will have been - line 5493: // TODO: We don't currently have any tests that exercise this code path. llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (12 lines): - line 302: // FIXME: This logic should not be necessary anymore, as we now have proper - line 460: // FIXME: In the future, enable this by default for Split DWARF where the - line 625: // TODO: Entry value operations can currently not be combined with any - line 835: // TODO: Handle situations when call site parameter value can be described - line 953: // TODO: Omit call site entries for runtime calls (objc_msgSend, etc). - line 1124: // FIXME: Come up with a more comprehensive comparator so - line 1194: // FIXME: Move local imported entities into a list attached to the - line 1248: // FIXME: Consider the time-space tradeoff of just storing the unit pointer - line 1331: // FIXME: We should use ranges allow reordering of code ala - line 1488: // FIXME: AbstractVariables.clear(); - line 1703: // TODO: Add support for single value fragment locations. - line 2598: // TODO TargetIndexLocation is a target-independent. Currently only the clang/lib/CodeGen/CGExprScalar.cpp (12 lines): - line 1095: // FIXME: can we encounter non-scalar VTy here? - line 1804: // TODO: Should we emit bounds checks with SanitizerKind::ArrayBounds? - line 1963: // FIXME: evaluate codegen vs. shuffling against constant null vector. - line 2132: // TODO: since the llvm.experimental.vector.{insert,extract} intrinsics - line 2181: // FIXME: Once pointee types are removed from IR, remove this. - line 2411: // TODO: kill this function off, inline appropriate case here - line 2864: // TODO: Could dynamically modify easy computations here. For example, if - line 2916: // FIXME: It would be nice if we didn't have to loop here! - line 3136: // FIXME: For floating point types, we should be saving and restoring the - line 3915: // TODO: This misses out on the sanitizer check below. - line 3993: // TODO: This misses out on the sanitizer check below. - line 4735: // FIXME Volatility. llvm/lib/Analysis/MemoryDependenceAnalysis.cpp (12 lines): - line 295: // FIXME: this could be fixed by filtering instructions from outside - line 314: // FIXME: This loop is O(N^2) because dominates can be O(n) and in worst case - line 333: // FIXME: we are not sure if some bitcast should be canonicalized to gep 0 - line 454: // FIXME: This only considers queries directly on the invariant-tagged - line 501: // FIXME: This is overly conservative. - line 550: // FIXME: This is overly conservative. - line 559: // FIXME: this is overly conservative. - line 576: // FIXME: Use ModRefInfo::Must bit from getModRefInfo call above. - line 865: // TODO: volatiles can't be elided, but they can be reordered with other - line 870: // TODO: Handle ordered instructions - line 1071: // FIXME: We may be able to do better in the face of results with mixed - line 1358: // FIXME: it is entirely possible that PHI translating will end up with clang/lib/AST/MicrosoftMangle.cpp (11 lines): - line 1290: // FIXME: Add a vector deleting dtor type. It goes in the vtable, so we need - line 1694: // FIXME: MSVC doesn't allow this, so we can't be sure how it should be - line 1728: // FIXME: This mangles 0 cast to a pointer the same as a null pointer, - line 1733: // FIXME: This can only happen as an extension. Invent a mangling. - line 1786: // FIXME: The below manglings don't include a conversion, so bail if there - line 2031: // FIXME: For now, just drop all extension qualifiers on the floor. - line 2372: // TODO: Determine size and mangle accordingly - line 2515: // FIXME: This may not be lambda-friendly. - line 2662: // FIXME: Is there a defined extension notation for the MS ABI, or is it - line 3514: // FIXME: Actually, the dtor thunk should be emitted for vector deleting - line 3632: // FIXME: It is known that the Ctor is present in 2013, and in 2017.7 llvm/lib/Analysis/IVDescriptors.cpp (11 lines): - line 357: // FIXME: FMF is allowed on phi, but propagation is not handled correctly. - line 362: // TODO: This is a hack to work-around the fact that FMF may not be - line 371: // TODO: Can we eliminate the need for a 2nd InstDesc by keeping 'Kind' - line 508: // TODO: We should not rely on InstCombine to rewrite the reduction in the - line 525: // TODO: A better way to represent this may be to tag in some way all the - line 882: // TODO: Consider extending this sinking to handle memory instructions. - line 916: // TODO: We can support this case, by sinking the instruction after the - line 972: // FIXME: Ideally we should not need to check FMF for FAdd and should always - line 1049: // FIXME: We also do not attempt to look through Phi/Select's yet, which might - line 1257: // FORNOW/TODO: We currently expect the def-use chain to include only - line 1381: // FIXME: We should treat this as a uniform. Unfortunately, we clang/lib/AST/Type.cpp (11 lines): - line 414: // FIXME: ConstantArrayType is not trivially destructible because of its - line 497: // FIXME: this seems inherently un-qualifiers-safe. - line 1139: // FIXME: Non-trivial to implement, but important for C++ - line 1174: // FIXME: Non-trivial to implement, but important for C++ - line 1502: // FIXME: Because ASTContext::getAttributedType() is non-const. - line 2021: // FIXME: In C++, enum types are never integer types. - line 2071: // FIXME: In C++, enum types are never integer types. - line 2660: // FIXME: This is a bit dubious, but plain C structs should trivially meet - line 3544: // FIXME: Generate this with TableGen. - line 3568: // FIXME: Generate this with TableGen? - line 3581: // FIXME: Generate this with TableGen. llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp (11 lines): - line 174: // TODO: Create and use isKnownFiniteNonZero instead of just matching - line 197: // TODO: Move to ConstantFolding/InstSimplify? - line 214: // TODO: The instruction always flushes denormal results (except for f16), - line 224: // TODO: Move to ConstantFolding/InstSimplify? - line 447: // TODO: This allows folding to undef when the hardware has specific - line 800: // FIXME: This doesn't introduce new instructions and belongs in - line 815: // FIXME: Should flush denorms depending on FP mode, but that's ignored - line 833: // FIXME: We just need to make the nan quiet here, but that's unavailable - line 854: // TODO: Move to InstSimplify? - line 875: // TODO: Move to InstSimplify? - line 966: // TODO: handle tbuffer* intrinsics. llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp (11 lines): - line 127: // TODO: On code like this: - line 139: // TODO: It should be possible to delete - line 145: // TODO: Critical-edge splitting. If the optimial insertion point is - line 151: // TODO: OptimizeSequences could generalized to be Interprocedural. - line 153: // TODO: Recognize that a bunch of other objc runtime calls have - line 157: // TODO: Sink autorelease calls as far as possible. Unfortunately we - line 161: // TODO: The pointer returned from objc_loadWeakRetained is retained. - line 163: // TODO: Delete release+retain pairs (rare). - line 2021: // TODO: If the fully aggressive solution isn't valid, try to find a - line 2039: // TODO: It's theoretically possible to do code motion in this case, as - line 2141: // TODO: For now, just look for an earlier available version of this value llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp (11 lines): - line 401: // FIXME: We don't currently support creating pre-indexed loads/stores when - line 1127: // FIXME: Currently we disable this transformation in big-endian targets as - line 1217: // FIXME: Move this function to include/MathExtras.h? - line 1329: // FIXME: We don't support merging narrow stores with mixed scaled/unscaled - line 1344: // FIXME: Can we also match a mixed sext/zext unscaled/scaled pair? - line 1421: // TODO: This might be overly conservative and we could handle those cases - line 1926: // FIXME: For now, we always block the optimization over SP in windows - line 1988: // FIXME: For now, we always block the optimization over SP in windows - line 2047: // FIXME: It is possible to extend it to handle reg+reg cases. - line 2293: // FIXME: Do we need/want a pre-alloc pass like ARM has to try to keep loads and - line 2298: // FIXME: When pairing store instructions it's very possible for this pass to llvm/lib/CodeGen/MachineOutliner.cpp (11 lines): - line 266: // FIXME: Should this all just be handled in the target, rather than using - line 426: /// FIXME: This should be handled by the pass manager, not the outliner. - line 427: /// FIXME: This is nearly identical to the initSizeRemarkInfo in the legacy - line 433: // FIXME: This should be handled by the pass manager, not the outliner. - line 457: // FIXME: Right now, we arbitrarily choose some Candidate from the - line 572: // FIXME: Should getOutliningCandidateInfo move to TargetMachine? - line 580: // FIXME: This should take target-specified instruction sizes into account. - line 598: // FIXME: We should have a better naming scheme. This should be stable, - line 886: // FIXME: This should be based off of the maximum size in B of an outlined - line 1029: // FIXME: This shouldn't be in the outliner at all; it should ultimately be - line 1047: // FIXME: This should be in the pass manager. llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp (11 lines): - line 344: // FIXME: Cost arbitrarily set to 1 because there doesn't seem to be a - line 486: /// TODO: It would be better to give CALLSEQ_END an explicit operand to point - line 644: // FIXME: Instead of visiting the pending Q each time, set a dirty flag on the - line 655: // FIXME: Nodes such as CopyFromReg probably should not advance the current - line 676: // FIXME: For resource conflicts in very long non-pipelined stages, we - line 746: // FIXME: Do not modify node height. It may interfere with - line 952: // FIXME: use ready cycle instead of height - line 1275: /// FIXME: Move to SelectionDAG? - line 2062: // FIXME: This assumes all of the defs are used as call operands. - line 2134: // FIXME: This encompasses the logic in HighRegPressure and MayReduceRegPressure - line 2191: // FIXME: The ScheduleDAG currently loses information about which of a llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp (11 lines): - line 430: // TODO: Find out how SALU supports extension of 32-bit literals to 64 bits. - line 1219: // TODO: Possibly make subtargetHasRegister const. - line 1293: // TODO: make those pre-defined variables read-only. - line 1809: // TODO: We should avoid using host float here. It would be better to - line 1878: // FIXME: 64-bit operands can zero extend, sign extend, or pad zeroes for FP - line 2759: // TODO: add syntactic sugar for 1/(2*PI) - line 3629: // TODO: Check that src0 = src1 or src2. - line 5220: // TODO: Restructure/combine with PAL metadata directive. - line 5418: // FIXME: use real operand location rather than the current location. - line 5484: // FIXME: How to verify the number of elements matches the number of src - line 7629: // FIXME: This is messy. Parse the modifiers as if it was a normal VOP3 llvm/lib/Transforms/IPO/GlobalOpt.cpp (11 lines): - line 1325: // FIXME: This will only emit address for debugger on which will - line 1469: // FIXME: Even though this will always have worst-case quadratic time, we - line 1585: // FIXME: Pass Global's alignment when globals have alignment - line 1790: // FIXME: Is it worth transforming x86_stdcallcc and x86_fastcallcc? - line 1794: // FIXME: Change CC for the whole chain of musttail calls when possible. - line 2059: // FIXME: We should also hoist alloca affected by this to the entry - line 2067: // FIXME: handle invokes - line 2068: // FIXME: handle musttail - line 2369: // TODO: Try to handle non-zero GEPs of local aliasees. - line 2441: // FIXME: We could eliminate C++ destructors if they're readonly/readnone and - line 2549: // TODO: Move all global ctors functions to the end of the module for code clang/lib/Format/Format.cpp (11 lines): - line 1373: // TODO: still under discussion whether to switch to SLS_All. - line 1380: // TODO: enable once decided, in particular re disabling bin packing. - line 1794: // FIXME: handle error. For now, print error message and skip the - line 2033: // FIXME: eliminate unused parameters. - line 2038: // FIXME: in the current implementation the granularity of affected range - line 2110: // FIXME: error handling if there is no left brace. - line 2223: // FIXME: better error handling. for now just print error message and skip - line 2559: // FIXME: better error handling. For now, just skip the replacement for the - line 2592: // FIXME: Do some validation, e.g. edit distance of the base name, to fix - line 2760: // FIXME: better error handling. For now, just skip the replacement for the - line 2913: // FIXME: insert empty lines between newly created blocks. llvm/lib/Target/Mips/MipsISelLowering.cpp (11 lines): - line 995: // FIXME: For the moment, disable this completely for MIPS64. - line 2280: // FIXME: We currently align too often. The code generator doesn't notice - line 2442: // TODO: Provide DAG patterns which transform (and x, cst) - line 2451: // FIXME: For mips32r2, the sequence of (BuildPairF64 (ins (ExtractElementF64 - line 2560: // FIXME: Need pseudo-fence for 'singlethread' fences - line 2561: // FIXME: Set SType for weaker fences where supported/appropriate. - line 2834: // TODO: Implement a generic logic using tblgen that can support this. - line 3192: // FIXME: We should do the same for efficiency and space. - line 4324: // FIXME: For space reasons this should be: EK_GPRel32BlockAddress. - line 4545: // FIXME: The O32 case actually describes no shadow registers. - line 4558: // FIXME: This condition happens to do the right thing but it's not the llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp (11 lines): - line 532: // FIXME there is no actual debug info here - line 578: // TODO: Expand ISD::PARITY. Need to move ExpandPARITY from LegalizeDAG to - line 2112: // FIXME: Implement this if some target needs it. - line 2672: // FIXME: If Amt is zero, the following shift generates an undefined result - line 2781: // them. TODO: Teach operation legalization how to expand unsupported - line 4207: // FIXME: This is not an optimal expansion, but better than crashing. - line 4368: // TODO For VECREDUCE_(AND|OR|XOR) we could split the vector and calculate - line 4539: // FIXME: This generated code sucks. - line 4584: // FIXME: Is the HiCmpC->isOne() here correct for - line 4609: // FIXME: Make all targets support this, then remove the other lowering. - line 4917: // TODO: We may be able to use this for types other than scalable clang/lib/Frontend/FrontendAction.cpp (11 lines): - line 339: // FIXME: If the name resolves to a file with different stat information, - line 386: // FIXME: This shouldn't happen unless there is a file system race. Is - line 476: // FIXME: Eventually, we could consider asking whether there was just - line 505: // FIXME: It would be preferable to fill this in as part of processing - line 598: // FIXME: What if the input is a memory buffer? - line 667: // FIXME: What if the input is a memory buffer? - line 870: // FIXME: should not overwrite ASTMutationListener when parsing model files? - line 934: // FIXME: If this is a problem, recover from it by creating a multiplex - line 978: // FIXME this drops the error on the floor, but - line 1004: // FIXME: There is more per-file stuff we could just drop here? - line 1060: // FIXME: Move the truncation aspect of this into Sema, we delayed this till clang-tools-extra/clangd/CodeComplete.cpp (11 lines): - line 106: // FIXME: pick a better option when we have one. - line 161: // FIXME: find a home for this (that can depend on both markup and Protocol). - line 693: // FIXME: consider allowing completion, but restricting the result types. - line 730: // FIXME: Provide identifier based completions for the following contexts: - line 784: // FIXME: Sema is scary. Can we store ASTContext and Preprocessor, instead? - line 794: // FIXME: in case there is no future sema completion callback after the - line 957: // FIXME: Add support for per-signature activeParameter field. - line 1060: // FIXME: only set 'labelOffsets' when all clients migrate out of it. - line 1635: // FIXME: in addition to querying for extra/overlapping symbols, we should - line 1677: // FIXME: we should send multiple weighted paths here. - line 1916: // FIXME: ideally, we should support doxygen in some form, e.g. do markdown llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (11 lines): - line 430: // FIXME: This is a horrible hack and should be processed via - line 593: // FIXME: VR def may not be in entry block. - line 1944: // TODO: check to see if missing bits are just not demanded. - line 1976: // TODO: check to see if missing bits are just not demanded. - line 2224: // TODO: We don't have FREEZE pseudo-instruction in MachineInstr-level now. - line 2380: // FIXME: This is a horrible hack and broken in obscure cases, no worse - line 2735: // FIXME: Should these even be selected? Handle these cases in the caller? - line 3267: // FIXME: What if other value results of the node have uses not matched - line 3304: // FIXME: What if other value results of the node have uses not matched - line 3500: // FIXME: This is vastly incorrect for patterns with multiple outputs - line 3574: // TODO: This never happens in our tests and I think it can be removed / llvm/lib/Analysis/Lint.cpp (11 lines): - line 14: // not yet implemented. Some of these are indicated by TODO comments, but - line 187: // TODO: Check for irreducible control flow. - line 217: // TODO: Verify that caller and callee attributes are compatible. - line 287: // TODO: Check more intrinsics - line 387: // TODO: Check that the reference is in bounds. - line 388: // TODO: Check readnone/readonly function attributes. - line 582: // TODO: Check for an unusual size (MSB set?) - line 643: // TODO: Look through sext or zext cast, when the result is known to - line 645: // TODO: Look through eliminable cast pairs. - line 646: // TODO: Look through calls with unique return values. - line 647: // TODO: Look through vector insert/extract/shuffle. clang/unittests/Tooling/Syntax/BuildTreeTest.cpp (11 lines): - line 516: // FIXME: conditional expression is not modeled yet. - line 670: // FIXME: Make `decltype(x)` a child of `MemberExpression`. It is currently - line 936: // FIXME: Make this test work on Windows by generating the expected syntax - line 2265: // FIXME: `` should be a child of `MemberExpression` and `;` of - line 2425: // FIXME: The first 'template' keyword is a child of `NestedNameSpecifier`, - line 4102: // FIXME: Note that the substitutions for `X` and `Y` are marked modifiable. - line 4265: // FIXME: 's...' is a declarator and '{...}' is initializer - line 4322: // FIXME: '= {...}' is initializer - line 4380: // FIXME: 's...' is a declarator and '(...)' is initializer - line 4425: // FIXME: 's...' is a declarator and '(...)' is initializer - line 5660: // FIXME: Generate the right syntax tree for this type, mlir/lib/Transforms/NormalizeMemRefs.cpp (11 lines): - line 56: // TODO: Change this to work on FuncLikeOp once there is an operation - line 76: // TODO: Drop this conservative assumption in the future. - line 93: /// TODO: Extend this for DimOps. - line 114: // TODO: Extend this for ops that are FunctionLike. This would require - line 190: /// TODO: An update to the calling function signature is required only if the - line 222: // TODO: When selective normalization is implemented, handle multiple - line 249: // TODO: Handle cases where a non-CallOp symbol use of a function deals with - line 295: // TODO: If funcOp doesn't return any memref type then no need to update - line 297: // TODO: Further optimization - Check if the memref is indeed part of - line 300: // TODO: Extend this for ops that are FunctionLike. This would require - line 410: // TODO: Assume single layout map. Multiple maps not supported. llvm/lib/CodeGen/AtomicExpandPass.cpp (11 lines): - line 256: // TODO: add a TLI hook to control this so that each target can - line 266: // TODO: add a TLI hook to control this so that each target can - line 288: // TODO: add a TLI hook to control this so that each target can - line 307: // TODO: when we're ready to make the change at the IR level, we can - line 312: // TODO: add a TLI hook to control this so that each target can - line 597: // TODO: Handle atomicrmw fadd/fsub - line 715: // TODO: we could skip some of this if AddrAlign >= MinWordSize. - line 773: // TODO: update to use - line 1435: // FIXME: we could also treat Min/Max/UMin/UMax by the INT_MIN/INT_MAX/... - line 1555: // TODO: "LargestSize" is an approximation for "largest type that - line 1724: // TODO: the "order" argument type is "int", not int32. So llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp (11 lines): - line 87: // FIXME: Remove this once the bug has been fixed! - line 480: // FIXME: This is a bit of a big hammer since we don't get the benefits - line 512: // TODO: These asserts should be updated as more support for the toc data - line 2024: // FIXME: We've biased here against using andi/andis, which is right for - line 5498: // FIXME: Remove this once the ANDI glue bug is fixed: - line 5564: // FIXME: Implement this optzn for PPC64. - line 5769: // FIXME: Should custom lower this. - line 6301: // FIXME: When the semantics of the interaction between select and undef - line 6830: // FIXME: Handle Op1Set, Op1Unset here too. - line 7188: // TODO: Make this complete and replace with a table-gen bit. - line 7240: // TODO: Can we put this a common method for DAG? llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp (11 lines): - line 108: // TODO: We should get rid of this function when APFloat can be constructed - line 968: // TODO: The smallest IR representation is (select X, 0, 1), and that would - line 1255: // TODO: Also handle mul by doubling the shift amount? - line 1523: // TODO: This is copied from a previous implementation. Is it necessary? - line 1577: // TODO: This check is overly conservative. In many cases known bits - line 2080: // TODO: This is the same logic as above but handles the cmp-select idioms - line 2172: // TODO: The one-use restriction is not strictly necessary, but it may - line 2199: // TODO: Should the m_OneUse restriction be removed? - line 2221: // TODO: We could propagate nsz/ninf from fdiv alone? - line 2317: // FIXME This matcher does not respect FTZ or DAZ yet: - line 2448: // TODO: This performs reassociative folds for FP ops. Some fraction of the llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp (11 lines): - line 56: // FIXME: It seems some instructions do not support single precision denormals - line 112: // TODO: Which one is called first, emitStartOfAsmFile or - line 181: // TODO: Which one is called first, emitStartOfAsmFile or - line 451: // FIXME: This should be an explicit check for Mesa. - line 609: // TODO: Fold this into emitFunctionBodyStart. - line 647: // TODO: CodeSize should account for multiple functions. - line 649: // TODO: Should we count size of debug info? - line 747: // FIXME: We should be using the number of registers determined during - line 945: // TODO: Should probably note flat usage somewhere. SC emits a "FlatPtr32 = - line 1095: // FIXME: The metadata treats the minimum as 4? - line 1117: // TODO: Should be able to support other operand types like globals. clang/lib/Parse/Parser.cpp (11 lines): - line 1036: /// [!C99] init-declarator-list ';' [TODO: warn in c99 mode] - line 1098: // FIXME: This still needs better diagnostics. We should only accept - line 1277: // FIXME: Should we really fall through here? - line 1650: // FIXME: Move the tentative declaration logic into ClassifyName so we can - line 1913: // FIXME: check whether the next token is '<', first! - line 2019: // FIXME: This appears to be dead code. We already have formed template-id - line 2208: SourceLocation TemplateKWLoc; // FIXME: parsed, but unused. - line 2270: // FIXME: Support module import within __if_exists? - line 2308: // FIXME: Suggest moving the attributes later with a fixit. - line 2351: // FIXME: Support module partition declarations. - line 2411: // FIXME: Support module partition import. clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp (11 lines): - line 163: // FIXME: For now we invalidate the tracking of all symbols passed to blocks - line 222: // FIXME: If we get an error during a bridge cast, should we report it? - line 392: // FIXME: We may be able to do this with related result types instead. - line 504: /// FIXME: This could definitely be improved upon. - line 931: // FIXME: this branch is very strange. - line 1052: // FIXME: What is the convention for blocks? Is there one? - line 1153: // FIXME: We may add to the interface of evalAssume the list of symbols - line 1222: // FIXME: Handle sending 'autorelease' to already released object. - line 1395: // FIXME: we should instead check for imbalances of the retain/releases, - line 1499: // TODO: Ideally, we should have a checker for each of these bug types. - line 1519: // FIXME: We want bug reports to always have the same checker name associated openmp/runtime/src/kmp_atomic.cpp (11 lines): - line 1078: // TODO: eliminate ATOMIC_CRIT_{L,EQV} macros as not used - line 1936: // TODO: check if it is still necessary - line 2058: // !!! TODO: Remove lock operations for "char" since it can't be non-atomic - line 3118: // !!! TODO: check if we need to return void for cmplx4 routines - line 3335: // !!! TODO: check if we need to return void for cmplx4 routines - line 3421: /* TODO: Should this be acquire or release? */ - line 3468: /* TODO: Should this be acquire or release? */ - line 3504: // FIXME: On IA-32 architecture, gcc uses cmpxchg only for 4-byte ints. - line 3517: /* TODO: Should this be acquire or release? */ - line 3566: /* TODO: Should this be acquire or release? */ - line 3684: // TODO: consider adding GTID parameter after consultation with Ernesto/Xinmin. clang/lib/Analysis/PathDiagnostic.cpp (10 lines): - line 103: // FIXME: This probably shouldn't mutate the original path piece. - line 203: return; // FIXME: Emit a warning? - line 517: // FIXME: Ironically, this assert actually fails in some cases. - line 647: // FIXME: Should handle CXXTryStmt if analyser starts supporting C++. - line 671: // TODO: VirtualBaseBranches should also appear for destructors. - line 792: // FIXME: Provide better range information for different - line 1094: // FIXME: Add profiling support for code hints. - line 1186: // FIXME: Print which macro is being invoked. - line 1211: // FIXME: actually print the range. - line 1228: // FIXME: Make this nicer. llvm/lib/LTO/ThinLTOCodeGenerator.cpp (10 lines): - line 249: // FIXME: should get it from the bitcode? - line 579: // TODO Conf.VisibilityScheme can be lto::Config::ELF for ELF. - line 589: // FIXME this looks pretty terrible... - line 632: // FIXME: At the moment, we don't take advantage of this extra information, - line 672: // FIXME diagnose - line 774: // FIXME Set ClearDSOLocalOnDeclarations. - line 807: // FIXME Set ClearDSOLocalOnDeclarations. - line 936: // FIXME Set ClearDSOLocalOnDeclarations. - line 1089: // FIXME: This needs linker information via a - line 1111: // FIXME: we should be able to compute the caching hash for the entry based clang/lib/CodeGen/CodeGenFunction.cpp (10 lines): - line 310: // FIXME: We are at an unreachable point, there is no reason to emit the block - line 1154: // FIXME: Should we generate a new load for each use of 'this'? The - line 1200: // TODO: Do we need to handle this in two places like we do with - line 1469: // TODO: If anyone cared, we could track __label__'s, since we know that you - line 1558: // FIXME: Rename and handle conversion of other evaluatable things - line 1977: // TODO: there are other patterns besides zero that we can usefully memset, - line 2149: // FIXME: Teach -fsanitize=undefined to trap this. - line 2436: // FIXME We create a new bitcast for every annotation because that's what - line 2457: // FIXME Always emit the cast inst so we can differentiate between - line 2712: // FIXME: Assumption still has it's original basic block as it's Parent. llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp (10 lines): - line 305: // FIXME: This is really, really gross. It would be much cleaner if LLVM - line 791: // FIXME: It'd be great if we could merge this with the loop below but LLVM's - line 2364: // FIXME: Remove this when the bugs stop showing up and rely on existing - line 2419: // FIXME: This could be made more efficient by tracking which exit blocks are - line 2624: /// TODO: Make a proper accounting of "explosion" effect for all kinds of - line 2729: // TODO: Support AND, OR conditions and partial unswitching. - line 2815: // FIXME: We should teach SplitBlock to handle this and remove this - line 2842: // FIXME: We might be able to safely handle some of these in non-duplicated - line 2883: // FIXME: Need to actually do the number of candidates part above. - line 3050: // FIXME: If divergence analysis becomes available to a loop clang/include/clang/ASTMatchers/ASTMatchers.h (10 lines): - line 1991: /// FIXME: figure out why these do not match? - line 3226: // FIXME: Refactor this and isDerivedFrom to reuse implementation. - line 3608: /// FIXME: Overload to allow directly matching types? - line 4075: /// FIXME: Overload to allow directly matching types? - line 5290: // FIXME: Figure out whether it makes sense to allow this - line 5717: /// FIXME: Unit test this matcher - line 5852: /// FIXME: Generalize this for other kinds of declarations. - line 5853: /// FIXME: What other kind of declarations would we need to generalize - line 7435: /// FIXME: Implement for other node types. - line 7473: // FIXME: getSwitchCaseList() does not necessarily guarantee a stable llvm/lib/IR/Verifier.cpp (10 lines): - line 368: // FIXME: It's really gross that we have to cast away constness here. - line 386: // FIXME: We strip const here because the inst visitor strips const. - line 2212: // TODO: Remove this limitation - line 2446: // FIXME: Should also disallow LDS and GDS, but we don't have the enum - line 2628: // FIXME: Check this incrementally while visiting !dbg attachments. - line 2629: // FIXME: Only check when N is the canonical subprogram for F. - line 4342: // FIXME: If this operand is a MetadataAsValue (wrapping a LocalAsMetadata) - line 4344: // related FIXME in Mapper::mapLocalAsMetadata in ValueMapper.cpp. - line 5687: // FIXME: Remove this check as soon as clang stops doing this; it hides bugs. - line 5858: // TODO: Sort on Metadata ID to avoid non-deterministic error messages. mlir/tools/mlir-tblgen/RewriterGen.cpp (10 lines): - line 347: // TODO: Verify the constants here - line 608: // TODO: Operand is a Value, check if we should remove `getDefiningOp()`. - line 767: // TODO: This should use getter method to avoid duplication. - line 801: // FIXME: This could be improved as some null dereferences could slip - line 865: // TODO: replace formatv arguments with the exact specified - line 891: // TODO: we should be able to emit equality checks early - line 990: // TODO: capture ops with consistent numbering so that it can be - line 1083: // TODO: Revisit the need for materializing a vector. - line 1597: // TODO: Refactor out into map to avoid recomputing these. - line 1666: // TODO: Use better location mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp (10 lines): - line 150: // TODO: generator number, bound, schema - line 228: // TODO: This function should also be auto-generated. For now, since only a - line 283: // TODO: Update StructType to contain this information since - line 655: /// TODO: Types might be forward declared in some instructions and need to be - line 816: // TODO: The count can also come frome a specialization constant. - line 908: // TODO: Find a way to handle identified structs when debug info is stripped. - line 989: // TODO: Update StructType to have member name as attribute as - line 1021: // TODO: Use the 2nd operand (Storage Class) to validate the OpTypePointer - line 1029: // TODO: Add support for Access Qualifier. - line 1845: // TODO: The asserts in the following assumes input SPIR-V blob forms clang/lib/Parse/ParseTemplate.cpp (10 lines): - line 67: /// TODO: requires-clause - line 470: // FIXME: Missing greatergreatergreater support. - line 662: // FIXME: Fix ParseTemplateParameterList to better handle nullptr results - line 985: // FIXME: The type should probably be restricted in some way... Not all - line 1340: // FIXME: This can lead to duplicate diagnostics if we retry parsing this - line 1447: // FIXME: Handle '>>>'. - line 1767: // FIXME: We could look at the token sequence in a lot more detail here. - line 1805: // FIXME: Perform error recovery. - line 1813: // FIXME: Avoid the tentative parse when NextToken() can't begin a type. - line 1819: // FIXME: Perform error recovery. llvm/lib/Target/M68k/M68kISelLowering.cpp (10 lines): - line 97: // FIXME It would be better to use a custom lowering - line 158: // FIXME can it be just 2^1? - line 403: // TODO Interrupt handlers - line 407: // FIXME For now, all byval parameter objects are marked mutable. This can - line 420: // TODO Interrupt handlers - line 434: // TODO Interrupt handlers - line 493: // FIXME Add tailcalls support - line 643: // FIXME Make sure PIC style GOT works as expected - line 928: // TODO Make sure this handling on indirect arguments is correct - line 984: // FIXME Can we use a less constrained schedule? mlir/lib/Transforms/Utils/DialectConversion.cpp (10 lines): - line 800: // FIXME: We simply pass through the replacement argument if there wasn't a - line 1276: // TODO: There currently isn't any mechanism to do 1->N type conversion - line 1281: // TODO: What we should do here is just set `desiredType` to `origType` - line 1500: // TODO: To support this we will need to rework a bit of how replacements are - line 1880: // TODO: Should we always try to do this, even if the op is - line 2652: // TODO: Avoid materializing other types of conversions here. - line 2664: // FIXME: For argument materializations, we currently need to check if any - line 2747: // TODO: Avoid materializing other types of conversions here. - line 2752: // FIXME: Determine a suitable insertion location when there are multiple - line 2763: // FIXME: The current argument materialization hook expects the original llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp (10 lines): - line 3287: // FIXME: Unsupported extensions - line 4576: // FIXME: Is this the correct way to handle these? Or should the parser - line 4639: // FIXME: This entire function is a giant hack to provide us with decent - line 5499: // FIXME: Horrible hack to handle BFC->BFM alias. - line 5553: // FIXME: Horrible hack to handle the BFI -> BFM, SBFIZ->SBFM, and - line 5616: // FIXME: Horrible hack to handle the BFXIL->BFM, SBFX->SBFM, and - line 5696: // FIXME: Horrible hack for sxtw and uxtw with Wn src and Xd dst operands. - line 5710: // FIXME: Likewise for sxt[bh] with a Xd dst operand - line 5727: // FIXME: Likewise for uxt[bh] with a Xd dst operand - line 6268: // FIXME This is using tablegen data, but should be moved to ARMTargetParser flang/lib/Evaluate/intrinsics.cpp (10 lines): - line 834: // TODO: Coarray intrinsic functions - line 837: // TODO: Non-standard intrinsic functions - line 846: // TODO: Optionally warn on use of non-standard intrinsics: - line 848: // TODO: Optionally warn on operand promotion extension - line 1143: // TODO: Intrinsic subroutine EVENT_QUERY - line 1144: // TODO: Atomic intrinsic subroutines: ATOMIC_ADD &al. - line 1145: // TODO: Collective intrinsic subroutines: CO_BROADCAST &al. - line 1569: // TODO: validate the reduction operation -- it must be a pure - line 1811: // TODO: any other built-in derived types used as optional intrinsic - line 2406: // TODO test feature AdditionalIntrinsics, warn on nonstandard clang/lib/Format/TokenAnnotator.cpp (10 lines): - line 162: // FIXME: This is getting out of hand, write a decent parser. - line 213: // FIXME: This is a bit of a hack. Do better. - line 670: // FIXME: Do we incorrectly label ":" with this? - line 1400: // FIXME: Closure-library specific stuff should not be hard-coded but be - line 2631: // FIXME: Only calculate this if CanBreakBefore is true once static - line 2633: // FIXME: Move magic numbers to a better place. - line 3214: // TODO add Operator overloading specific Options to - line 3626: // incorrectly classified the parenthesis as a cast. FIXME: Detect correctly. - line 3763: // FIXME: This might apply to other languages and token kinds. - line 4279: return Left.isNot(tok::period); // FIXME: Properly parse ObjC calls. clang/lib/AST/DeclPrinter.cpp (10 lines): - line 149: // FIXME: This should be on the Type class! - line 447: // FIXME: Need to be able to tell the DeclPrinter when - line 823: // FIXME: add printing of pragma attributes if required. - line 979: // FIXME: add printing of pragma attributes if required. - line 1026: // FIXME: Doesn't print access specifiers, e.g., "public:" - line 1080: // FIXME: print the default argument, if present. - line 1279: // FIXME: selector is missing here! - line 1393: // FIXME: implement the rest... - line 1425: // FIXME: implement the rest... - line 1451: // FIXME: implement the rest... clang/lib/Format/ContinuationIndenter.cpp (10 lines): - line 360: // FIXME: This is a temporary workaround for the case where clang-format - line 424: // FIXME: We should find a more generic solution to this problem. - line 856: // FIXME: This is hacky, find a better way. The problem is that in an ObjC - line 1327: // FIXME: This is ugly, find a better way. - line 1495: // FIXME: We likely want to do this for more combinations of brackets. - line 1922: // FIXME: String literal breaking is currently disabled for C#, Java, Json - line 1950: // FIXME: Handle whitespace between '_T', '(', '"..."', and ')'. - line 1951: // FIXME: Store Prefix and Suffix (or PrefixLength and SuffixLength to - line 2077: // FIXME: Use the earliest possible split while reflowing to correctly - line 2205: // FIXME: Do we need to adjust the penalty? llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp (10 lines): - line 73: /// TODO: - line 253: /// FIXME: could just examine mloctracker instead of passing in \p mlocs? - line 824: // TODO: support variables that are located in spill slots, with non-zero - line 1107: // FIXME: no index for this? - line 1233: // FIXME: stack slot colouring should account for slots that get merged. - line 1265: // store folded into an instruction. FIXME: Take a guess that's it's 64 - line 1330: // FIXME: Can we break out of this loop early if no insertion occurs? - line 1428: // TODO: Handle multiple stores folded into one. - line 1461: // FIXME: Handle folded restore instructions with more than one memory - line 1921: // TODO: Reimplement NumInserted and NumRemoved. llvm/lib/Target/AArch64/AArch64FastISel.cpp (10 lines): - line 1106: // FIXME: We shouldn't be using getObjectSize/getObjectAlignment. The size - line 2979: // FIXME: Unfortunately it's necessary to emit a copy from the livein copy. - line 3048: // FIXME: Handle custom args. - line 3103: // TODO: Handle big-endian results - line 3134: // FIXME: we could and should support this, but for now correctness at -O0 is - line 3144: // FIXME: Add large code model support for ELF. - line 3152: // FIXME: Only handle *simple* calls for now. - line 3407: // FIXME: Handle more intrinsics. - line 3950: // FIXME: We're SExt i1 to i64. - line 4997: // FIXME: MachineMemOperand doesn't support cmpxchg yet. clang/lib/Sema/SemaExprObjC.cpp (10 lines): - line 151: // FIXME: Is there a better way to avoid quotes than using getName()? - line 631: // FIXME: Do I need to do anything special with BoolTy expressions? - line 1165: // FIXME: Preserve type source info ? - line 2034: // FIXME: The logic for looking up nullary and unary selectors should be - line 2227: // FIXME: refactor/share with ActOnMemberReference(). - line 2305: // FIXME: This is a hack. Ivar lookup should be part of normal - line 2462: // FIXME: Don't emit diagnostic at all if fixits are non-commitable. - line 2919: // TODO: specialized warning on null receivers? - line 3061: // FIXME: In the non-ARC case, this will still be a hard error if the - line 3098: // compatibility. FIXME: should we deviate?? mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp (10 lines): - line 75: // TODO: allow fusing the producer of an output operand. - line 169: // TODO: allow fusing the producer of an output operand. - line 191: // TODO: bbArg index of - line 206: // TODO: allow fusion of multi-result producers. - line 218: // TODO: allow fusion of multi-result producers. - line 253: // TODO: allow fusing the producer of an output operand. - line 308: // TODO: allow fusion of multi-result producers. - line 316: // TODO: handle outputs. - line 1019: // TODO: We could support non-identity map as long as the merged - line 1199: // TODO: handle outputs. llvm/lib/CodeGen/MachineBlockPlacement.cpp (10 lines): - line 105: // FIXME: Find a good default for this flag and remove the flag. - line 772: // opportunities. Don't duplicate them. TODO: When conditional exits are - line 1421: // successor breaks the CFG constraints (FIXME: define these constraints). - line 1697: // FIXME: If this shows up on profiles, it could be folded (at the cost of - line 1728: // FIXME: Using probability is probably (!) not the best way to achieve - line 2138: // FIXME: in theory there is a case that does not introduce a new branch, - line 2630: // FIXME: This is a really lame way of walking the chains in the loop: we - line 2793: // FIXME: It would be awesome of updateTerminator would just return rather - line 2829: // // FIXME: This should never take place. - line 2875: DebugLoc dl; // FIXME: this is nowhere clang/lib/Driver/ToolChains/Gnu.cpp (10 lines): - line 95: // FIXME: The triple class should directly provide the information we want - line 131: // FIXME: For the linker case specifically, can we safely convert - line 387: // FIXME: The Linker class constructor takes a ToolChain and not a - line 599: // FIXME: Only pass GompNeedsRT = true for platforms with libgomp that - line 605: // FIXME: Does this really make sense for all GNU toolchains? - line 947: // TODO: Currently only works on linux with newer objcopy. - line 1557: // FIXME: when clang starts to support msp430x ISA additional logic - line 1585: // TODO: support MULTILIB_REUSE - line 1879: /// FIXME: We shouldn't need an explicit TargetTriple parameter here, and - line 2552: // FIXME: We hack together the directory name here instead of clang/lib/Driver/ToolChains/Arch/ARM.cpp (10 lines): - line 65: // FIXME: Use ARMTargetParser. - line 208: // FIXME: Thumb should just be another -target-feaure, not in the triple. - line 215: // FIXME: this is invalid for WindowsCE - line 331: // FIXME: this is invalid for WindowsCE - line 452: // FIXME: Note, this is a hack, the LLVM backend doesn't actually use these - line 591: // FIXME: this fp16fml option handling will be reimplemented after the - line 655: // FIXME: this needs reimplementation after the TargetParser rewrite - line 925: // FIXME: Warn on inconsistent use of -mcpu and -march. - line 954: // FIXME: horrible hack to get around the fact that Cortex-A7 is only an - line 965: // FIXME: This is redundant with -mcpu, why does LLVM use this. llvm/utils/TableGen/AsmMatcherEmitter.cpp (10 lines): - line 254: // FIXME: This is an oversimplification, they should only be related if they - line 357: // FIXME: We should be able to just return false here, as we only need a - line 1283: // FIXME: diagnostic type. - line 1632: // FIXME: The tied operands checking is not yet integrated with the - line 1789: // FIXME: The long term goal is for the MCOperand list to not contain - line 2070: // FIXME: Handle the operand number lookup for custom match functions. - line 2462: // FIXME: Use a more specific diagnostic type. - line 2686: // FIXME: Totally just a placeholder name to get the algorithm working. - line 2732: // FIXME: Allow AssemblerVariantName to be a comma separated list. - line 3454: // FIXME: We can reduce the size of this table very easily. First, we change lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp (10 lines): - line 258: // FIXME: Should we try to filter out FixIts that apply to our generated - line 308: // FIXME: 'using' is used by LLDB for local variables, so we can't remove - line 482: // FIXME: Generalize this. Only RenderScriptRuntime currently supports this - line 535: // FIXME: the following language option is a temporary workaround, - line 544: // FIXME: the following language option is a temporary workaround, - line 605: // FIXME: We could use the modules-ts, but that currently doesn't work. - line 609: // FIXME: We should ask the driver for the appropriate default flags. - line 659: // FIXME: We shouldn't need to do this, the target should be immutable once - line 1053: // TODO: We probably could also simulate to Clang's file manager that there - line 1288: // FIXME - do we want to try to propagate specific errors here? clang/lib/Basic/FileManager.cpp (10 lines): - line 13: // TODO: This should index all interesting directories with dirent calls. - line 249: // FIXME: Use the directory info to prune this, before doing the stat syscall. - line 250: // FIXME: This will reduce the # syscalls. - line 286: // FIXME: This is pretty complicated. It's also inconsistent with how - line 311: // FIXME: this hack ensures that if we look up a file by a virtual path in - line 321: // FIXME: Neither this nor always using the first reference is correct; we - line 325: // FIXME: LastRef should be removed from FileEntry once all clients adopt - line 429: // FIXME: Surely this should add a reference by the new name, and return - line 513: // FIXME: the semantic of RealPathName is unclear, and the name might be - line 569: // FIXME: FileSystemOpts shouldn't be passed in here, all paths should be llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (10 lines): - line 138: // FIXME: this option currently only applies to DWARF, and not CodeView, tables - line 234: return TM.getPointerSize(0); // FIXME: Default address space - line 284: // FIXME: If we end up with a collection of these sorts of Darwin-specific - line 317: // TODO: Add timestamp and description. - line 635: // TODO: This should become an "emit thread local global" method on TLOF. - line 1443: // FIXME: Hide this behind some API in e.g. MCAsmInfo or MCTargetStreamer. - line 1780: // FIXME: Figure out when is the safest time to emit this section. It should - line 1852: // FIXME: This is not lazy, it would be nice to only print weak references - line 2185: // FIXME: This doesn't have to have any specific name, just any randomly - line 3192: /// FIXME: privatize to AsmPrinter. llvm/lib/MC/MCParser/DarwinAsmParser.cpp (10 lines): - line 273: // FIXME: Different on PPC and ARM. - line 481: // FIXME: Arch specific. - line 489: // FIXME: This isn't really what 'as' does; I think it just uses the implicit - line 599: // FIXME: If/when .dump and .load are implemented they will be done in the - line 658: // FIXME: Diagnostic location! - line 720: // FIXME: Arch specific. - line 721: bool isText = Segment == "__TEXT"; // FIXME: Hack. - line 864: // FIXME: Diagnose overflow. - line 951: // FIXME: Diagnose overflow. - line 961: // FIXME: Arch specific. clang/lib/CodeGen/MicrosoftCXXABI.cpp (10 lines): - line 243: // FIXME: might want to have a more precise type in the non-virtual - line 835: // FIXME: Implement for other architectures. - line 840: // FIXME: This is incompatible with MSVC for arguments with a dtor and no - line 871: // FIXME: Provide a source location here even though there's no - line 1297: // TODO: 'for base' flag - line 1379: // FIXME: To match MSVC, this should only be done when the class is exported - line 1480: // FIXME: Update the code that emits this adjustment in thunks prologues. - line 1533: // FIXME: Do something better for DWARF debuggers, which won't expect this, - line 1659: // TODO: Should VirtualFunctionElimination also be supported here? - line 4133: // FIXME: Figure out how bits 2 or 8 can get set. llvm/utils/gn/secondary/compiler-rt/lib/tsan/rtl/BUILD.gn (10 lines): - line 134: # FIXME: have SANITIZER_COMMON_CFLAGS thingy? should fno-builtin be in - line 138: # FIXME: link rt dl m pthread log - line 139: # FIXME: dep on libcxx-headers? - line 140: # FIXME: add_sanitizer_rt_version_list (cf hwasan) - line 141: # FIXME: need libclang_rt.tsan*.a.syms? - line 142: # FIXME: tsan_ignorelist.txt - line 163: # FIXME: better - line 166: # FIXME: -Wl,-rpath - line 167: # FIXME: codesign (??) - line 184: # FIXME: llvm/include/llvm/Analysis/TargetTransformInfo.h (10 lines): - line 199: // FIXME: We should probably in some way ensure that the subtarget - line 277: /// TODO: This is a rather blunt instrument. Perhaps altering the costs of - line 292: /// FIXME: It would be nice to base the bonus values on something more - line 409: /// FIXME: It's not clear that this is a good or useful query API. Client's - line 418: /// TODO: Some of these could be merged. Also, a lexical ordering - line 613: /// TODO: Handle pre/postinc as well. - line 697: /// TODO: Handle pre/postinc as well. - line 903: /// FIXME: It's not currently possible to determine how many registers - line 1063: /// FIXME: This handles the types of load/store that the vectorizer can - line 2441: /// FIXME: Should we really use std::function? It's relatively inefficient. llvm/lib/Transforms/Utils/SCCPSolver.cpp (10 lines): - line 633: // TODO: Switch on undef is UB. Stop passing false once the rest of LLVM - line 643: // TODO: Determine whether default case is reachable. - line 722: // TODO: We could do a lot better than this if code actually uses this. - line 913: // TODO: We could do a lot better than this if code actually uses this. - line 987: // TODO: Use information from notconstant better. - line 1023: // TODO: Currently we do not exploit special values that produce something - line 1290: // TODO: Actually filp MayIncludeUndef for the created range to false, - line 1544: // FIXME: Distinguish between dead code and an LLVM "undef" value. - line 1573: // FIXME: IndirectBr on "undef" doesn't actually need to go anywhere: - line 1599: // FIXME: Distinguish between dead code and an LLVM "undef" value. clang/lib/Driver/ToolChains/Darwin.cpp (10 lines): - line 114: // FIXME: at run-time detect assembler capabilities or rely on version - line 170: // FIXME: Is this needed anymore? - line 222: // FIXME: Pass most of the flags below that check Version if LinkerIsLLD too. - line 281: // FIXME: gcc replaces -lobjc in forward args with -lobjc-gnu - line 287: // FIXME: Why do this only on this path? - line 941: // FIXME: Make sure this MachO triple mangling is really necessary. - line 2227: // FIXME: this should not be necessary, remove usages in the frontend - line 2368: // FIXME: This should be removed someday when we don't have to care about - line 2414: // FIXME: We really want to get out of the tool chain level argument - line 2691: // FIXME: It would be far better to avoid inserting those -static arguments, clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp (10 lines): - line 233: // TODO: Update CallDescription to support anonymous calls? - line 234: // TODO: Handle other methods, such as .get() or .release(). - line 314: // TODO: ExprEngine should do this for us. - line 351: // FIXME: Once we model std::move for smart pointers clean up this and use - line 357: // TODO: Model this case as well. At least, avoid invalidation of - line 362: // TODO: Add a note to bug reports describing this decision. - line 621: // TODO: Make sure to ivalidate the region in the Store if we don't have - line 656: // TODO: Add support to enable MallocChecker to start tracking the raw - line 702: // TODO: We need to emit some note here probably!! - line 724: // TODO: Add NoteTag, for how the raw pointer got using 'get' method. clang/lib/AST/ASTStructuralEquivalence.cpp (10 lines): - line 147: return true; // FIXME When do we consider two using directives equal? - line 181: // FIXME: IsStructurallyEquivalent requires non-const Decls. - line 554: return true; // FIXME: Is this correct? - line 692: // FIXME: Deal with Char_S/Char_U. - line 1309: // FIXME: Check for 'final'. - line 1332: // TODO: Names do not match, add warning like at check for FieldDecl. - line 1922: // FIXME: Consider checking for function attributes as well. - line 1932: // FIXME: Check for known structural equivalences via a callback of some sort. - line 2070: // FIXME: Better encapsulation and separation of internal and public - line 2108: // FIXME: Move check for identifier names into this function. llvm/lib/CodeGen/TargetPassConfig.cpp (10 lines): - line 153: // FIXME: remove this after switching to NPM or GlobalISel, whichever gets there - line 893: // TODO: add a pass insertion point here - line 1030: // FIXME: Injecting into the DAGISel pipeline seems to cause issues with - line 1125: /// TODO: We could use a single addPre/Post(ID) hook to allow pass injection - line 1242: // FIXME: Some backends are incompatible with running the verifier after - line 1261: // FIXME: In principle, BasicBlockSection::Labels and splitting can used - line 1364: /// FIXME: When MachinePassRegistry register pass IDs instead of function ptrs, - line 1430: // FIXME: Once TwoAddressInstruction pass no longer uses kill flags, - line 1434: // FIXME: UnreachableMachineBlockElim is a dependant pass of LiveVariables. - line 1474: // FIXME: can this move into MachineLateOptimization? llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp (10 lines): - line 100: // FIXME: Thumb variants? - line 123: // FIXME: Thumb variants? - line 258: // FIXME: We would really like to be able to tablegen'erate this. - line 344: // FIXME: Should we always treat this as if it is a constant literal and - line 491: if (!MO1.isReg()) { // FIXME: This is for CP entries, but isn't right. - line 655: if (!MO1.isReg()) { // FIXME: This is for CP entries, but isn't right. - line 679: if (!MO1.isReg()) { // FIXME: This is for CP entries, but isn't right. - line 1092: if (!MO1.isReg()) { // FIXME: This is for CP entries, but isn't right. - line 1114: if (!MO1.isReg()) { // FIXME: This is for CP entries, but isn't right. - line 1181: if (!MO1.isReg()) { // FIXME: This is for CP entries, but isn't right. clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp (10 lines): - line 83: // FIXME: Should we cache this at all? - line 395: // FIXME: We need a way to map from names to Type*. - line 447: // FIXME: We really should allow ranges of valid theType values, and - line 456: // FIXME: In some cases we can emit an error. - line 467: // FIXME: Eventually we should handle arbitrary locations. We can do this - line 479: // FIXME: If the pointee isn't an integer type, should we flag a warning? - line 490: // FIXME: We can actually create an abstract "CFNumber" object that has - line 551: // TODO: Make this check part of CallDescription. - line 680: // FIXME: Ideally we'd look at the receiver interface here, but that's not - line 895: // FIXME: Copied from ExprEngineObjC. llvm/lib/Target/Mips/MipsSEISelLowering.cpp (10 lines): - line 738: // TODO: - line 1820: // TODO: If intrinsics have fast-math-flags, propagate them. - line 1866: // TODO: If intrinsics have fast-math-flags, propagate them. - line 1891: // TODO: If intrinsics have fast-math-flags, propagate them. - line 1906: // TODO: If intrinsics have fast-math-flags, propagate them. - line 1911: // TODO: If intrinsics have fast-math-flags, propagate them. - line 1923: // TODO: If intrinsics have fast-math-flags, propagate them. - line 3336: // FIXME: This should be true for N32 too. - line 3605: // FIXME: This copying is strictly unnecessary. If we could tie FGR32Opnd:$Fs - line 3717: // FIXME: This copying is strictly unnecessary. If we could tie FGR32Opnd:$Fd mlir/lib/Transforms/Utils/LoopFusionUtils.cpp (10 lines): - line 168: // TODO: Consider other insertion points in valid range. - line 193: // TODO: Generalize this check for sibling and more generic fusion scenarios. - line 194: // TODO: Support forward slice fusion. - line 199: // TODO: Revisit this case with a specific example. - line 239: // TODO: Cache dependence analysis results, check cache here. - line 256: // TODO: Prevent fusion of loop nests with side-effecting operations. - line 257: // TODO: This pass performs some computation that is the same for all the depths - line 306: // TODO: Enable this check for sibling and more generic loop fusion - line 309: // TODO: 'getMaxLoopDepth' does not support forward slice fusion. - line 597: // TODO: Add load coalescing to memref data flow opt pass. llvm/lib/IR/ConstantFold.cpp (10 lines): - line 289: // TODO: Handle the 'partially zero' case. - line 312: // TODO: Handle the 'partially zero' case. - line 346: // TODO: Handle the 'partially zero' case. - line 586: // TODO: We can analyze ConstExpr by opcode to determine if there is any - line 598: // TODO: Recursively analyze aggregates or other constants. - line 881: // FIXME: remove unnecessary duplicated identity patterns below. - line 882: // FIXME: Use AllowRHSConstant with getBinOpIdentity to handle additional ops, - line 969: // TODO: undef >>a X -> poison if the shift is exact - line 1071: // FIXME: This code should be deleted once existing targets have - line 1986: // TODO: This code may be extended to handle vectors as well. llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp (10 lines): - line 270: // FIXME - What about special registers used in mfspr/mtspr? - line 375: // FIXME: Currently for PowerPC memory operands are always loaded - line 751: // FIXME: We would like an efficient form for this, so we - line 1139: // FIXME: We would like an efficient form for this, so we don't have to do - line 1521: // TODO: Define a trampoline `__xray_FunctionTailExit` and differentiate a - line 1808: // FIXME: We should fill in the eight-byte mandatory fields as described in - line 1857: // TODO: "exported" and "internal" Visibility needs to go here. - line 2289: // TODO: Linker could still eliminate the GV if we just skip - line 2505: // TODO: Use source file full path to generate the unique module id - line 2512: // FIXME: Adjust the comment accordingly after we use source file full polly/lib/Analysis/ScopBuilder.cpp (10 lines): - line 708: // FIXME: This was an side-effect-free (and possibly infinite) loop when - line 1303: /// TODO: ScopDetection could avoid including such loops or warp them as - line 1555: // TODO: Handle delinearization with differing element sizes. - line 1596: // TODO: We could use this to optimize the region further, e.g., intersect - line 1626: // TODO: See above TODO - line 1923: /// TODO: This is an overpessimization. We only have to ensure that the PHI - line 2376: // TODO: Make ScopStmt::ensureValueRead(Value*) offer the same functionality - line 2699: // TODO: Loads that are not loop carried, hence are in a statement with - line 2785: // TODO: We can provide more information for better but more expensive - line 2793: // TODO: This is probably too conservative. clang/lib/Sema/Sema.cpp (10 lines): - line 858: // FIXME: We can promote this to an error. The function or variable can't - line 880: // FIXME: This is ill-formed; we should reject. - line 1039: // FIXME: When we perform these implicit instantiations, we do not - line 1195: // FIXME: Make a better guess as to where to put the module declaration. - line 1212: // FIXME: Actually complain, once we figure out how to teach the - line 1351: // FIXME: Load additional unused private field candidates from the external - line 1440: // FIXME: It doesn't make sense to me that DiagID is an incoming argument here - line 1522: // TODO: Stop doing that. See: https://reviews.llvm.org/D45093#1090292 - line 2265: // FIXME: We should swap out the FunctionScopes during code synthesis - line 2568: // FIXME: Try this before emitting the fixit, and suppress diagnostics llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp (10 lines): - line 124: // FIXME: add a better feature test than hasRawTextSupport. Even better, - line 279: // TODO: add debug info for emulated thread local mode. - line 281: // FIXME: Make this work with -gsplit-dwarf. - line 476: // FIXME: duplicated from Target/WebAssembly/WebAssembly.h - line 484: // FIXME: this repeats what WebAssemblyMCInstLower:: - line 500: // FIXME: when writing dwo, we need to avoid relocations. Probably - line 580: // FIXME: For DWARF v5, do not generate the DW_AT_ranges attribute under - line 629: // FIXME: Debug Info Emission depends on block order and this assumes that - line 799: // TODO: Consider chunking expressions containing overly wide - line 812: // TODO TargetIndexLocation is a target-independent. Currently only the lldb/source/Target/Process.cpp (9 lines): - line 603: // FIXME: We need to do some work on events before the general Listener sees - line 764: // FIXME: Do we want to report this, or would that just be annoyingly - line 3223: // FIXME: This will have to be a process setting: - line 3357: // TODO: make this work correctly. For now always report - line 3619: // FIXME: should cons up an exited event, and discard this one. - line 3965: // FIXME: we might have run. - line 4322: // FIXME: error handling? - line 4771: // FIXME: To make this prettier we should invent some stop reason for this, - line 5931: // FIXME: should we return an error if there are type names nobody clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp (9 lines): - line 43: // TODO: In some case the type stored in this map is exactly the same that is - line 343: // TODO: We should mitigate this problem some time in the future - line 381: // FIXME: In C++17 classes with non-virtual bases may be treated as - line 384: // FIXME: Instead of relying on the ParentMap, we should have the - line 398: /// TODO: Handle explicit casts. - line 546: // TODO: The above 4 cases are not exhaustive. In particular, it is possible - line 905: // TODO: right now it only tracks generic types. Extend this to track every - line 956: // TODO: we can probably pay closer attention to cases when the class - line 1002: // TODO: we have duplicated information in DynamicTypeMap and mlir/lib/Bindings/Python/IRCore.cpp (9 lines): - line 1101: // TODO: Verify result type originate from the same context. - line 1122: // TODO: Verify attribute originates from the same context. - line 1142: // TODO: Verify successor originate from the same context. - line 1218: // TODO: Fix memory hazards when erasing a tree of operations for which a deep - line 1520: // TODO: pybind11 2.6 supports a more direct form. Upgrade many years from - line 2418: // TODO: Rework error reporting once diagnostic engine is exposed - line 2853: // TODO: Rework error reporting once diagnostic engine is exposed - line 2940: // TODO: When named attribute is removed/refactored, also remove - line 2964: // TODO: Rework error reporting once diagnostic engine is exposed llvm/lib/CodeGen/GlobalISel/Utils.cpp (9 lines): - line 65: // FIXME: The copy needs to have the classes constrained for its operands. - line 128: // FIXME: Just bailing out like this here could be not enough, unless we - line 206: // FIXME: This logical is mostly duplicated with - line 583: // FIXME: These operations were unfortunately named. fminnum/fmaxnum do not - line 708: DebugLoc DL; // FIXME: Is no location the right choice? - line 715: // FIXME: Should the verifier check this is in the entry block? - line 818: // TODO: Constant splat - line 835: // TODO: Probably should have a recursion depth guard since you could have - line 1146: // TODO: Also handle fconstant llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp (9 lines): - line 228: // FIXME: Division expansion needs to preserve the dominator tree. - line 271: // TODO: The set of packed operations is more limited, so may want to - line 600: // TODO: Should probably try to handle some cases with multiple - line 624: // TODO: Handle special 0/-1 cases DAG combine does, although we only really - line 797: // FIXME: Doesn't do the right thing for cases where the vector is partially - line 1017: // TODO: It would be better to just directly handle those optimizations here. - line 1026: // TODO: Sdiv check for not exact for some reason. - line 1030: // TODO: Should really know for each vector element. - line 1305: // TODO: We get much worse code in specially handled constant cases. clang/lib/Frontend/SerializedDiagnosticReader.cpp (9 lines): - line 49: // FIXME this drops the error on the floor. - line 61: // FIXME this drops the error on the floor. - line 69: // FIXME this drops the error on the floor. - line 79: // FIXME this drops the error on the floor. - line 99: // FIXME this drops the error on the floor. - line 165: // FIXME this drops the error on the floor. - line 183: // FIXME this drops the error on the floor. - line 214: // FIXME this drops the error on the floor. - line 237: // FIXME this drops the error on the floor. llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp (9 lines): - line 25: // FIXME: Move this. - line 80: // FIXME: Remove this when we don't need this: - line 83: // FIXME: A lot of code in PPCDispatchGroupSBHazardRecognizer is P7 specific. - line 87: // FIXME: Indirectly, this information is contained in the itinerary, and - line 117: // FIXME: Add sync/isync (here and in the itinerary). - line 122: // FIXME: record-form instructions need a different itinerary class. - line 163: // FIXME: the same for P9 as previous gen until POWER9 scheduling is ready - line 224: // FIXME: the same for P9 as previous gen until POWER9 scheduling is ready - line 256: // FIXME: This is missing some significant cases: llvm/lib/MC/MachObjectWriter.cpp (9 lines): - line 355: // FIXME: Should this update Data as well? - line 360: // FIXME: Are the prebound or indirect fields possible here? - line 370: // FIXME: Set STAB bits. - line 483: // FIXME: Revisit this when the dust settles. - line 532: // FIXME: Do not hardcode. - line 668: // FIXME: We don't handle things like - line 847: // FIXME: Is this machine dependent? - line 893: // FIXME: Currently empty tools. Add clang version in the future. - line 1048: // FIXME: Check that offsets match computed ones. llvm/lib/ExecutionEngine/Orc/Core.cpp (9 lines): - line 317: // FIXME: Should this be reported / treated as failure to materialize? - line 686: // FIXME: Return all duplicates. - line 1200: // FIXME: Come up with a sane mapping of state to - line 1467: // FIXME: Implement 'find_as' for shared_ptr/T*. - line 1547: // FIXME: Should this discard the symbols? - line 1869: // TODO: notifiy platform? run static deinits? - line 2319: // FIXME: Use a "materialization-side-effects-only symbols must be - line 2355: // FIXME: We should attach the query as we go: This provides a result in a - line 2586: // FIXME: Use a "materialization-side-effects-only symbols must be llvm/lib/Target/SystemZ/SystemZISelLowering.cpp (9 lines): - line 122: // TODO: It may be better to default to latency-oriented scheduling, however - line 1503: // FIXME: Pre-include call frame size in the offset, should not - line 1547: // FIXME: Add support for lowering varargs for XPLINK64 in a later patch. - line 1587: // FIXME: For XPLINK64, Add in support for handling incoming "ADA" special - line 1631: // FIXME: z/OS support to be added in later. - line 1759: // FIXME: Add support for XPLINK using the ADA register. - line 3393: // FIXME The frontend should detect this case. - line 3414: // FIXME The frontend should detect this case. - line 6308: // FIXME - we could handle more complex cases via TokenFactor, llvm/lib/Analysis/MemorySSA.cpp (9 lines): - line 303: // FIXME: We probably don't actually want MemorySSA to model these at all - line 345: // FIXME: This is a temporary hack to allow a single instructionClobbersQuery - line 841: // FIXME: This is broken, because the Blocker may be reported to be - line 1427: // TODO: Some day we should be able to reset to last kill, rather than - line 1778: // FIXME: Replace this special casing with a more accurate modelling of - line 1815: // will still give an answer that bypasses other volatile loads. TODO: - line 2106: /// TODO: We currently just number in order. If we numbered by N, we could - line 2501: // FIXME: this could be fixed by filtering instructions from outside of - line 2512: // FIXME: This loop is O(n^2) because dominates can be O(n) and in worst case llvm/lib/Target/ARM/ARMConstantIslandPass.cpp (9 lines): - line 1096: // FIXME: Make use full range of soimm values. - line 1100: // FIXME: Make use full range of soimm values. - line 1669: // FIXME: remove the empty blocks after all the work is done? - line 1862: // FIXME: Check if offset is multiple of scale if scale is not 4. - line 2072: // FIXME: what about CC and IdxReg? - line 2219: // FIXME: After the tables are shrunk, can we get rid some of the - line 2241: // Negative offset is not ok. FIXME: We should change BB layout to make - line 2257: if (!MI->getOperand(0).isKill()) // FIXME: needed now? - line 2487: // heuristic. FIXME: We can definitely improve it. llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp (9 lines): - line 50: // FIXME: Don't do this here. - line 72: // FIXME: We are managing our modules, so we do not want the base class - line 256: // FIXME: Rename this. - line 314: // FIXME: Do we need to worry about global aliases? - line 354: // FIXME: Support nested archives? - line 358: // TODO: Actually report errors helpfully. - line 385: // FIXME: Should we instead have a LazySymbolCreator callback? - line 434: // FIXME: Asking for the pointer to a function that hasn't been registered, - line 440: // FIXME: Should the Dyld be retaining module information? Probably not. clang/lib/Parse/ParsePragma.cpp (9 lines): - line 784: case tok::OOS_DEFAULT: // FIXME: Add this cli option when it makes sense. - line 858: // FIXME: Default behavior of the extension pragma is not defined. - line 1134: // FIXME: Add support for the '[, func-name]' part of the pragma. - line 1586: // FIXME: We can emit a "fix-it" with a subject list placeholder when - line 1662: // FIXME: The practical usefulness of completion here is limited because - line 1666: // FIXME: suppress completion of unsupported attributes? - line 2173: // FIXME: Should we be expanding macros here? My guess is no. - line 2965: // FIXME: warn that 'exestr' is deprecated. - line 2966: // FIXME: If the kind is "compiler" warn if the string is present (it is clang/lib/CodeGen/CodeGenFunction.h (9 lines): - line 105: /// TODO: should vectors maybe be split out into their own thing? - line 1567: // FIXME: Maybe this could be a stack of maps that is pushed/popped as we - line 1713: // TODO: this is temporary class for things that are being moved out of - line 1878: // TODO: Remove the call, after making sure the counter is not used by - line 2670: // FIXME: Assuming no overlap here breaks guaranteed copy elision for base - line 2755: // FIXME: We should be able to get rid of this method and use the va_arg - line 2800: // FIXME: Every place that calls LoadCXXVTT is something - line 2833: /// FIXME: VTTs are Itanium ABI-specific, so the definition should move - line 3608: /// TODO: The \p Depth paramter is not yet implemented and must be 1. In the llvm/lib/Analysis/BasicAliasAnalysis.cpp (9 lines): - line 838: // FIXME Consider handling this in InferFunctionAttr.cpp together with other - line 847: // TODO: memset_pattern4, memset_pattern8 - line 848: // TODO: _chk variants - line 849: // TODO: strcmp, strcpy - line 1001: // routines do not read values visible in the IR. TODO: Consider special - line 1107: // TODO: We can handle other cases here - line 1125: // TODO: This limitation exists for compile-time reasons. Relax it if we - line 1443: // FIXME: Remove this once we can guarantee that we have PhiInfo always - line 1627: // FIXME: If this depth limit is hit, then we may cache sub-optimal results llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp (9 lines): - line 274: // TODO: This is required to be implemented, but appears unused. - line 433: // FIXME: there is probably a cleaner way to do this. - line 787: // TODO: any time we return an error, at least one token must have been - line 858: // TODO: would be good to factor this into a common function, but the - line 881: // TODO: backend also calls TOut.emitIndIdx, but that is not implemented. - line 933: // TODO: backend also calls TOut.emitIndIdx, but that is not implemented. - line 1081: // TODO: If the user explicitly creates a new function section, we ignore - line 1089: // TODO: Currently the only place that the symbols' comdat flag matters is - line 1136: // FIXME: linear search! lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp (9 lines): - line 239: // TODO: fill in FPU regs.... - line 444: // TODO: fill in FPU regs.... - line 1540: // TODO: categorize sections by other flags for regular sections - line 2928: // FIXME: In the .o files, we have a GSYM and a debug - line 3351: // TODO: warn about this? - line 3864: // FIXME: In the .o files, we have a GSYM and a debug symbol for all - line 4244: // TODO: warn about this? - line 4981: // TODO: add BridgeOS & DriverKit once in llvm/lib/Support/Triple.cpp - line 5324: // FIXME: We will need to have a "RegisterContext data provider" class at some llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp (9 lines): - line 144: // TODO: Should be possible to merge FrameIndexes and maybe some other - line 149: // TODO: We should be able to merge physical reg addresses. - line 287: // FIXME: Handle d16 correctly - line 351: // TODO: Support IMAGE_GET_RESINFO and IMAGE_GET_LOD. - line 771: // TODO: Should be possible to support more formats, but if format loads - line 996: // FIXME: nothing is illegal in a ds_write2 opcode with two AGPR data - line 1514: // FIXME: Handle d16 correctly - line 1846: // TODO: Support flat and scratch. - line 1921: // TODO: Support finding an anchor(with same base) from store addresses or mlir/lib/Dialect/Vector/VectorTransferOpTransforms.cpp (9 lines): - line 133: // TODO: if the read and write have the same ancestor we could recurse in - line 197: // TODO: if the store and read have the same ancestor we could recurse in - line 266: // TODO: support tensor types. - line 271: // TODO: generalize this pattern, relax the requirements here. - line 309: // TODO: support tensor type. - line 314: // TODO: generalize this pattern, relax the requirements here. - line 341: // TODO: move helper function - line 386: // TODO: generalize this pattern, relax the requirements here. - line 438: // TODO: generalize this pattern, relax the requirements here. llvm/lib/CodeGen/BranchFolding.cpp (9 lines): - line 84: // TODO: This should be replaced with a target query. - line 335: // FIXME: This check is dubious. It's used to get around a problem where - line 581: // TODO: Re-visit successor size for non-layout tail merging. - line 602: // TODO: If the blocks are not adjacent, move one of them so that they are? - line 1292: // TODO: This function only handles some simple cases. An alternative would be - line 1347: // TODO: Simplify preds to not branch here if possible! - line 1351: // TODO: Is it ever worth rewriting predecessors which don't already - line 1527: // TODO: It would be nice if analyzeBranch() could provide a pointer - line 1953: // instruction at the point insertion. FIXME: This is overly clang/lib/CodeGen/CGStmtOpenMP.cpp (9 lines): - line 1021: // TODO: Avoid ptrtoint conversion. - line 1727: // TODO: This defaults to shared right now. - line 3922: // TODO: This defaults to shared right now. - line 4127: // TODO: This is slightly different from what's currently being done in - line 4603: // FIXME: This must removed once the runtime library is fixed. - line 4652: // FIXME: This must removed once the runtime library is fixed. - line 6630: // TODO: This check is necessary as we only generate `omp parallel` through - line 6932: // TODO: Add support for clauses. - line 7074: // TODO: Check if we should emit tied or untied task. llvm/lib/DebugInfo/DWARF/DWARFContext.cpp (9 lines): - line 1064: /// TODO: change input parameter from "uint64_t Address" - line 1203: // FIXME: missing DW_AT_location is OK here, but other errors should be - line 1426: // TODO: Should this error be handled (maybe in a high verbosity mode) - line 1436: // TODO: Actually report errors helpfully. - line 1751: // FIXME: Use the other dwo range section when we emit it. - line 1802: // TODO: Add support for relocations in other sections as needed. - line 1829: // FIXME: it's not clear how to correctly handle scattered - line 1844: // TODO Don't store Resolver in every RelocAddrEntry. - line 1866: // FIXME: Support more relocations & change this to an error llvm/lib/Target/ARM/ARMFrameLowering.cpp (9 lines): - line 863: // FIXME: It will be better just to find spare register here. - line 881: // FIXME: Clarify FrameSetup flags here. - line 1037: /// references for now. FIXME: This can go wrong when references are - line 1118: // FIXME: Maybe prefer sp on Thumb1 if it's legal and the offset is cheaper? - line 1657: // FIXME: Make generic? - line 1675: // FIXME: Move to TII? - line 1851: // FIXME: It will be better just to find spare register here. - line 1877: // FIXME: It will be better just to find spare register here. - line 1984: // FIXME: We could add logic to be more precise about negative offsets clang/unittests/Format/FormatTestComments.cpp (9 lines): - line 742: // FIXME: One day we might want to implement adjustment of leading whitespace - line 1119: // FIXME: Do we need to fix up the " */" at the end? - line 1949: "// TODO: long", - line 1951: "// TODO: long", - line 1957: "// FIXME: long", - line 1959: "// FIXME: long", - line 2131: // FIXME: This assumes we do not continue compressing whitespace once we are - line 2189: // FIXME: We do not reflow if the indent of two subsequent lines differs; - line 2199: // FIXME: Use the earliest possible split while reflowing to compress the clang/lib/AST/JSONNodeDumper.cpp (9 lines): - line 38: // FIXME: it would be useful for us to output the spelling kind as well as - line 583: // FIXME: I cannot find a way to trigger these cases while dumping the AST. I - line 618: // FIXME: this should use ZExt instead of SExt, but JSON doesn't allow a - line 745: // FIXME: There are likely other contexts in which it makes no sense to ask - line 1288: // FIXME: This may not be useful information as it can be obtusely gleaned - line 1470: // FIXME: This should probably print the character literal as a string, - line 1526: // FIXME: it would be nice for the ASTNodeTraverser would handle the catch - line 1549: // FIXME: cannot just call dump() on the argument, as that doesn't specify - line 1554: // FIXME: cannot just call dump() on the argument, as that doesn't specify clang-tools-extra/clangd/refactor/tweaks/ExtractVariable.cpp (9 lines): - line 116: // FIXME: Extraction from label, switch and case statements - line 117: // FIXME: Doens't work for FoldExpr - line 118: // FIXME: Ensure extraction from loops doesn't change semantics. - line 178: // FIXME: Replace auto with explicit type and add &/&& as necessary - line 197: // FIXME: it would be nice to exclude these references, by micromanaging - line 375: // FIXME: really? What if it's e.g. `std::is_same::value`? - line 380: // FIXME: we could still hoist the assignment, and leave the variable there? - line 465: // FIXME: Enable non-C++ cases once we start spelling types explicitly instead - line 478: // FIXME: get variable name from user or suggest based on type openmp/runtime/src/kmp_ftn_entry.h (9 lines): - line 1131: // TODO: Issue an error. - line 1134: // TODO: Issue an error. - line 1149: // TODO: Issue an error. - line 1164: // TODO: Issue an error. - line 1167: // TODO: Issue an error. - line 1182: // TODO: Issue an error. - line 1185: // TODO: Issue an error. - line 1200: // TODO: Issue an error. - line 1219: // TODO: Issue an error. llvm/include/llvm/IR/Instructions.h (9 lines): - line 133: // FIXME: Remove this one transition to Align is over. - line 223: /// FIXME: Remove this function once transition to Align is over. - line 354: /// FIXME: Remove this function once transition to Align is over. - line 2082: /// TODO: This is temporary until we decide a new bitcode encoding for - line 2131: /// TODO: Optionally allow length-changing shuffles. - line 2193: /// TODO: Optionally allow length-changing shuffles. - line 2213: /// TODO: Optionally allow length-changing shuffles. - line 2234: /// TODO: Optionally allow length-changing shuffles. - line 2235: /// TODO: Optionally allow splats from other elements. llvm/lib/Object/XCOFFObjectFile.cpp (9 lines): - line 241: // TODO: report the error up the stack. - line 256: // TODO: report the error up the stack. - line 467: // TODO: report the error up the stack. - line 477: // TODO: report the error up the stack. - line 493: // TODO: report the error up the stack. - line 503: // TODO: report the error up the stack. - line 668: // TODO FIXME Should get from auxiliary_header->o_entry when support for the - line 825: // TODO: report the error up the stack. - line 1121: // FIXME: This is not necessarily the case when -ffunction-sections is clang/lib/Sema/SemaAccess.cpp (9 lines): - line 357: // TODO: this is very conservative - line 370: // TODO: this is very conservative. - line 442: // TODO: we can do better than this - line 567: // FIXME: declarations with dependent or templated scope. - line 815: // FIXME: we're probably not correctly adding the - line 948: // FIXME: fail correctly when there are dependent paths. - line 1066: // TODO: it would be great to have a fixit here, since this is - line 1623: Entity.setDiag(PDiag); // TODO: avoid copy - line 1687: // FIXME: If we have a parent, we're initializing the base class subobject llvm/lib/Target/X86/X86InstructionSelector.cpp (9 lines): - line 73: // TODO: remove after supported by Tablegen-erated instruction selection. - line 167: // FIXME: This should be target-independent, inferred from the types declared - line 338: // TODO: This should be implemented by tblgen. - line 596: return false; // TODO: we don't support TLS yet. - line 607: // TODO: The ABI requires an extra load. not supported yet. - line 611: // TODO: This reference is relative to the pic base. not supported yet. - line 667: // TODO: in case isUInt<32>(Val), X86::MOV32ri can be used - line 1196: // TODO: support scalar types - line 1431: return false; // TODO support the mode. llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp (9 lines): - line 39: // FIXME: This class is only here to support the transition to llvm::Error. It - line 223: // TODO: Test this error. - line 247: // TODO: Test this error. - line 619: // TODO: Test this error. - line 678: // FIXME: this is an inefficient way to handle this. We should computed the - line 992: // TODO: There is only ARM far stub now. We should add the Thumb stub, - line 1144: // FIXME: Implement error handling that doesn't kill the host program! - line 1304: // FIXME: There's a potential issue lurking here if a single instance of - line 1448: // FIXME: Kill this with fire once we have a new JIT linker: this is only here llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp (9 lines): - line 47: // TODO: Move size-based thresholds out of legality checking, make cost based - line 188: // FIXME: Add interleave.disable metadata. This will allow - line 487: // FIXME: We skip these checks when VPlan predication is enabled as we - line 686: // TODO: Instead of recording the AllowedExit, it would be good to record the - line 749: // TODO: Ideally, we should not use clang-specific language here, - line 1011: // TODO: there might be cases that it should block the vectorization. Let's - line 1130: // TODO: ORE should be improved to show more accurate information when an - line 1221: // TODO: Implement DoExtraAnalysis when subsequent legal checks support - line 1295: // TODO: handle non-reduction outside users when tail is folded by masking. llvm/lib/CodeGen/SafeStack.cpp (9 lines): - line 278: // Non-constant size => unsafe. FIXME: try SCEV getRange. - line 350: // FIXME: a more precise solution would require an interprocedural - line 451: // FIXME: On some platforms this could be handled by the longjmp/exception - line 489: // FIXME: respect -fsanitize-trap / -ftrap-function here? - line 558: // FIXME: tell SSL that we start at a less-then-MaxAlignment aligned location - line 645: // FIXME: no need to update BasePointer in leaf functions. - line 807: // FIXME: use a dedicated register for it ? - line 813: // FIXME: implement weaker forms of stack protector. - line 836: // FIXME: a better alternative might be to store the unsafe stack pointer llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp (9 lines): - line 132: // TODO: Is ValueType the right thing to use here? - line 206: // TODO: We can do better for PHI nodes. In cases like this: - line 217: // TODO: handle simple updates. If a value is modified and the original - line 292: // TODO: currently we reserve space for gc arguments after doing - line 524: // errors during statepoint insertion. TODO: This should actually be in the - line 814: // TODO: Currently, all of these operands are being marked as read/write in - line 984: // TODO: A better future implementation would be to emit a single variable - line 1029: // TODO: There a couple of major stackmap size optimizations we could do - line 1103: // TODO: To eliminate this problem we can remove gc.result intrinsics llvm/lib/MC/MCParser/MasmParser.cpp (9 lines): - line 151: // FIXME: This should probably use a class hierarchy, raw pointers between the - line 1410: // FIXME: We would really like to refer back to where the symbol was - line 2243: // FIXME: Recurse on local labels? - line 2262: // FIXME: Diagnostics. Note the location of the definition as a label. - line 2263: // FIXME: This doesn't diagnose assignment to a symbol which has been - line 4778: // FIXME: Target specific behavior about how the "extra" bytes are filled. - line 4838: // FIXME: I'm not sure what this is. - line 4961: // FIXME: Do something with the .line. - line 6114: // FIXME: Diagnose overflow. llvm/lib/Analysis/LazyValueInfo.cpp (9 lines): - line 95: /// we do not make this guarantee. TODO: This would be a useful enhancement. - line 119: // TODO: Arbitrary choice, could be improved - line 632: // TODO: Use NullPointerIsDefined instead. - line 646: // FIXME: check whether it has a valuerange that excludes zero? - line 687: // find a path to function entry. TODO: We should consider explicitly - line 861: // TODO: We could potentially refine an overdefined true value above. - line 1129: // TODO: An upper bound could be computed as well. - line 1146: // TODO: This only works with a constant RHS for now. We could also compute - line 1301: // TODO: Handle more complex conditionals. If (v == 0 || v2 < 1) is false, we clang/lib/CodeGen/CGBlocks.cpp (9 lines): - line 219: // FIXME: What is the right way to say this doesn't fit? We should give - line 999: // TODO: this can be generalized into the normal initialization logic: - line 1027: // FIXME: Pass a specific location for the expr init so that the store is - line 1579: // FIXME: also for 'this' - line 1941: // FIXME: it would be nice if these were mergeable with things with - line 2128: // FIXME: We'd like to put these into a mergable by content, with - line 2375: // FIXME: We'd like to put these into a mergable by content, with - line 2444: // FIXME: We'd like to put these into a mergable by content, with - line 2865: // TODO: support static blocks runtime llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp (9 lines): - line 492: // TODO: Relax the one-use checks because we are removing an instruction? - line 700: // FIXME: Take the demanded mask of the result into account. - line 1189: // TODO: Just compute the UndefElts information recursively. - line 1449: // TODO: We are not doing anything with UndefElts based on this call. - line 1466: // TODO: If a select condition element is undef, we can demand from - line 1480: // TODO: This can be improved. See comment in select condition handling. - line 1573: // TODO: can strengthen via mask as well. - line 1591: // TODO: We bail completely on integer div/rem and shifts because they have - line 1604: // TODO: Intersect w/demanded lanes llvm/lib/Target/X86/X86FrameLowering.cpp (9 lines): - line 386: /* TODO: Add support for the case where there are multiple CFI instructions - line 1028: // FIXME: Add indirect thunk support and remove this. - line 1406: // FIXME: Emit FPO data for EH funclets. - line 1976: // FIXME: Create "cld" instruction only in these cases: - line 3016: // FIXME: Add retpoline support and remove the error here.. - line 3345: // TODO: We don't need to reset this between subsequent functions, - line 3361: // TODO: This is needed only if we require precise CFA. - line 3395: // TODO: When not using precise CFA, we also need to adjust for the - line 3486: // FIXME: Don't set FrameSetup flag in catchret case. llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp (9 lines): - line 30: /// FIXME: This is a local version of RTLIB::getFPLibCall that should be - line 535: // FIXME: Should we just use 'normal' FP_EXTEND / FP_TRUNC instead of special - line 591: // FIXME: Implement this if some target needs it. - line 1668: // TODO: Any other flags to propagate? - line 1715: // FIXME: For unsigned i128 to ppc_fp128 conversion, we need to carefully - line 1741: // TODO: Are there other fast-math-flags to propagate to this FADD? - line 1833: // FIXME: This generated code sucks. We want to generate - line 2333: // FIXME We might be able to do the conversion during compilation and get rid - line 2533: // TODO: This is non-optimal, but dealing with the concurrently happening llvm/lib/IR/ConstantRange.cpp (9 lines): - line 686: // TODO: This can be implemented more efficiently. - line 695: // TODO: This can be implemented more efficiently. - line 722: // TODO: use input range if available - line 729: // TODO: use input range if available - line 1061: // TODO: If either operand is a single element and the multiply is known to - line 1380: // TODO: replace this with something less conservative - line 1395: // TODO: replace this with something less conservative - line 1415: // TODO: replace this with something less conservative - line 1445: // FIXME: implement the other tricky cases llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp (9 lines): - line 218: // FIXME: The N64 ABI probably ought to use DW_EH_PE_sdata8 but we can't - line 617: // FIXME: this is getting the alignment of the character, not the - line 1294: // FIXME: Alignment check should be handled by section classifier. - line 1490: // FIXME: we should be able to use private labels for sections that can't be - line 1724: // FIXME: we should produce a symbol for F instead. - line 1993: // FIXME: These may not be appropriate for non-x86 architectures. - line 2202: // FIXME: check presence of canary word - line 2351: // TODO: We may put Kind.isReadOnlyWithRel() under option control, because - line 2423: // TODO: Enable emiting constant pool to unique sections when we support it. llvm/lib/FuzzMutate/Operations.cpp (9 lines): - line 176: // TODO: Handle aggregates and vectors - line 177: // TODO: Support multiple indices. - line 178: // TODO: Try to avoid meaningless accesses. - line 213: // TODO: It's pretty inefficient to shuffle this all through constants. - line 217: // TODO: Should we handle multiple indices? - line 272: // TODO: It's pretty inefficient to shuffle this all through constants. - line 286: // TODO: Try to avoid undefined accesses. - line 294: // TODO: Try to avoid undefined accesses. - line 307: // TODO: It's straighforward to make up reasonable values, but listing them clang/lib/Lex/Lexer.cpp (9 lines): - line 187: /// TODO: It would really be nice to make _Pragma just be a wrapper around a - line 466: // TODO: this could be special cased for common tokens like identifiers, ')', - line 1246: // FIXME: Take LangOpts into account; the language might not - line 1446: // FIXME: What exactly does the StartOfLine bit mean? There are two - line 1542: // FIXME: Handle Unicode quotation marks (smart quotes, fullwidth quotes). - line 2347: // FIXME: The next token will not have LeadingSpace set. - line 3336: // FIXME: The next token will not have LeadingSpace set. - line 3804: // TODO: -fpreprocessed mode?? - line 3995: // TODO: -fpreprocessed mode?? lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp (9 lines): - line 790: // FIXME implement register handling for exec'd inferiors. - line 1453: // FIXME add continue at address support for $C{signo}[;{continue-address}]. - line 1470: // TODO discuss with Greg Clayton, make sure this makes sense. - line 1860: // FIXME for now we return the full thread list in the initial packet and - line 1989: // FIXME flip as needed to get data in big/little endian format for this host. - line 2189: // TODO: enqueue this block in circular buffer and send window size to - line 2248: // FIXME replace with Hex U64 read with no default value that fails on failed - line 2405: // FIXME replace with Hex U64 read with no default value that fails on failed - line 2782: // TODO investigate: on MacOSX we might need to do an UpdateThreads () here. clang/lib/Lex/PPLexerChange.cpp (9 lines): - line 234: // FIXME: Handle other kinds of lexers? It generally shouldn't matter, - line 546: // FIXME: This is hacky, the code-completion point should probably be - line 703: // FIXME: Can we enable Complain here? - line 704: // FIXME: Can we do this when local visibility is disabled? - line 718: // FIXME: If we have local visibility but not modules enabled, the - line 724: // FIXME: Do this lazily, when each macro name is first referenced. - line 812: // FIXME: It'd be better to start at the state from when we most recently - line 841: // FIXME: Issue a warning if multiple headers for the same submodule - line 862: // FIXME: Before we leave this submodule, we should parse all the other flang/lib/Semantics/resolve-directives.cpp (8 lines): - line 1105: // TODO others - line 1252: // TODO:[OpenMP 5.1] DO CONCURRENT indices are private - line 1259: // TODO: conflict checks with explicitly determined DSA - line 1456: // TODO: Investigate whether searching the clause list can be done with - line 1466: // TODO: expand this check to exclude the case when a requires - line 1483: // TODO: create a separate function to go through the rules for - line 1559: // TODO: Investigate whether the following block can be replaced by, or - line 1567: // TODO: Investigate whether the following block can be replaced by, or mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp (8 lines): - line 126: // TODO: swap Generic and StorageBuffer assignment to be more akin - line 188: // TODO: This is a utility function that should probably be exposed by the - line 213: // TODO: Layout should also be controlled by the ABI attributes. For now - line 259: // TODO: Add size computation for other types. - line 305: // TODO: Vector types with more than four elements can be translated into - line 339: // TODO: Handle dynamic shapes. - line 502: // TODO: this assumes that the SPIR-V types are valid to use in - line 774: // TODO: Consider moving to use affine.apply and patterns converting llvm/lib/Bitcode/Reader/BitcodeReader.cpp (8 lines): - line 2827: // FIXME: support upgrading in opaque pointers mode. - line 2854: // FIXME: support upgrading in opaque pointers mode. - line 2886: // FIXME: support upgrading in opaque pointers mode. - line 3221: return true; // FIXME Handle the error. - line 4665: // FIXME: It is not clear whether values in the range should be - line 5012: // FIXME: Make this an optional field. - line 6665: // FIXME: This class is only here to support the transition to llvm::Error. It - line 7070: // TODO: Restore the use-lists to the in-memory state when the bitcode was clang/lib/Analysis/RetainSummaryManager.cpp (8 lines): - line 254: // TODO: Add support for the slightly common *Matching(table) idiom. - line 352: // FIXME: This function has an out parameter that returns an - line 392: // FIXME: this hack should possibly go away once we can handle - line 680: // FIXME: These calls are currently unsupported. - line 1037: // FIXME: Does the non-threaded performSelector family really belong here? - line 1145: // FIXME: The receiver could be a reference to a class, meaning that - line 1242: // FIXME: For now we opt for false negatives with NSWindow, as these objects - line 1255: // FIXME: For now we don't track NSPanels. object for the same reason llvm/lib/IR/DIBuilder.cpp (8 lines): - line 308: // FIXME: Why is there a name here? - line 608: // FIXME: Restrict this to the nodes where it's valid. - line 615: // FIXME: Restrict this to the nodes where it's valid. - line 637: // FIXME: Define in terms of createReplaceableForwardDecl() by calling - line 762: // FIXME: Why getNonCompileUnitScope()? - line 763: // FIXME: Why is "!Context" okay here? - line 764: // FIXME: Why doesn't this check for a subprogram or lexical block (AFAICT - line 875: // FIXME: Do we want to use different scope/lines? llvm/lib/CodeGen/MachineSink.cpp (8 lines): - line 477: // TODO: Sort the candidates using a cost-model. - line 581: // FIXME: Need much better heuristics. - line 699: // FIXME: need a accurate and cheap register pressure estiminate model here. - line 762: // FIXME - If finding successor is compile time expensive then cache results. - line 1228: // FIXME: Come up with a proper cost model that estimates whether sinking - line 1302: // FIXME: This should include support for sinking instructions within the - line 1667: // FIXME: instead of isUse(), readsReg() would be a better fix here, - line 1695: // FIXME: For now, we sink only to a successor which has a single predecessor clang/lib/AST/VTableBuilder.cpp (8 lines): - line 250: // FIXME: This should probably use CharUnits or something. Maybe we should - line 447: // FIXME: This should be a real map and not a vector. - line 496: // FIXME: We need to check more things here. - line 1886: // FIXME: write more tests that actually use the dumpLayout output to prevent - line 2813: // FIXME: if a structor knows it belongs to MDC, why doesn't it use a vftable - line 2815: // FIXME: how are vtordisp handled in the presence of nooverride/final? - line 3169: // FIXME: Figure out how to print the real thunk type, since they can - line 3293: /// TODO: Presumably vftables use the same algorithm. clang/lib/Index/USRGeneration.cpp (8 lines): - line 279: // FIXME: OpenCL: Need to consider address spaces - line 433: // FIXME: We should be able to generate this USR even if the - line 457: // FIXME: We should be able to generate this USR even if the - line 623: // FIXME: Encode the qualifier, don't just print it. - line 668: c = 'u'; break; // FIXME: Check this doesn't collide - line 708: case BuiltinType::Ibm128: // FIXME: Need separate tag - line 948: // FIXME: Visit dependent template names. - line 971: // FIXME: Visit expressions. llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp (8 lines): - line 170: // TODO: Support with G_IMPLICIT_DEF + G_INSERT sequence or G_EXTRACT - line 215: // TODO: - line 232: // TODO: - line 268: // TODO: It may be possible to actually avoid the copy. - line 281: // TODO: use a dedicated constant for ImpossibleCost. - line 405: // FIXME: The machine representation is currently broken - line 517: // FIXME: We will have to rework the repairing cost model. - line 685: // FIXME: This should be in the MachineVerifier. openmp/runtime/src/kmp_taskdeps.cpp (8 lines): - line 23: // TODO: Improve memory allocation? keep a list of pre-allocated structures? - line 25: // TODO: don't use atomic ref counters for stack-allocated nodes. - line 26: // TODO: find an alternate to atomic refs for heap-allocated nodes? - line 27: // TODO: Finish graph output support - line 28: // TODO: kmp_lock_t seems a tad to big (and heavy weight) for this. Check other - line 30: // TODO: Any ITT support needed? - line 61: // TODO alternate to try: set = (((Addr64)(addrUsefulBits * 9.618)) % - line 492: // TODO: Different algorithm for large dep_list ( > 10 ? ) clang/lib/CodeGen/CGException.cpp (8 lines): - line 406: // FIXME: this isn't quite right! If there's a final unelided call - line 485: // TODO: Revisit exception specifications for the MS ABI. There is a way to - line 491: // TODO Correctly handle exception specification in Wasm EH - line 505: // TODO Correctly handle exception specification in Emscripten EH - line 589: // TODO: Revisit exception specifications for the MS ABI. There is a way to - line 595: // TODO Correctly handle exception specification in wasm - line 626: // FIXME: Dropping the reference type on the type into makes it - line 2215: // TODO: Model unwind edges from instructions, either with iload / istore or openmp/runtime/src/kmp_dispatch.cpp (8 lines): - line 383: // AC: TODO: check if 16-byte CAS available and use it to - line 1135: //!!!!! TODO check if the inc should be unsigned, or signed??? - line 1218: // TODO (optional): check presence and use 16-byte CAS - line 1308: // TODO: is this heuristics good enough?? - line 1450: // TODO: is this heuristics good enough?? - line 1510: // TODO: count executed chunks locally with rare update of shared location - line 1967: // TODO: implement count - line 2220: /* TODO replace with general release procedure? */ libcxxabi/src/demangle/ItaniumDemangle.h (8 lines): - line 17: // FIXME: (possibly) incomplete list of features that clang mangles that this - line 250: // FIXME: Make these protected. - line 1067: // FIXME: This should demangle as "vector pixel". - line 2740: // FIXME: If TempParams is empty and none of the function parameters - line 4257: // FIXME: ::= L _ E # complex floating point literal (C 2000) - line 4338: // FIXME: We need to include the string contents in the mangling. - line 4352: // FIXME: Should we support LUb... for block literals? - line 4442: // FIXME: This map is duplicated in parseOperatorName and parseExpr. llvm/lib/Target/X86/X86FastISel.cpp (8 lines): - line 749: // FIXME: How do we know Base.Reg is free?? - line 2042: // FIXME: Add support for i8. - line 2412: // TODO: We could sign extend narrower types. - line 2597: // FIXME: Handle more intrinsics. - line 2812: // FIXME: Update this code once tablegen can handle it. - line 3132: // FIXME: Unfortunately it's necessary to emit a copy from the livein copy. - line 3386: // FIXME: Indirect doesn't need extending, but fast-isel doesn't fully - line 3458: // Materialize callee address in a register. FIXME: GV address can be llvm/lib/CodeGen/MachineVerifier.cpp (8 lines): - line 297: // FIXME: Remove this mechanism when all problematic passes have been - line 324: // TODO: Use MFAM after porting below analyses. - line 1160: // TODO: Is the offset allowed to be a scalar with a vector? - line 1405: // TODO: Should verify number of def and use operands, but the current - line 1814: // TODO: verify we have properly encoded deopt arguments - line 1984: // FIXME: This restriction should probably be broadened to all SSA - line 2350: // TODO: verify that earlyclobber ops are not used. - line 2972: // TODO: Before tied operands are rewritten, a live segment can only end at an lld/MachO/Driver.cpp (8 lines): - line 66: // TODO: -r, -dylinker, -preload... - line 299: // TODO: no need to look for ObjC sections for a given archive member if - line 536: // FIXME: Remove this once LTO.cpp honors config->exportDynamic. - line 578: // FIXME: CommonSymbol should store isReferencedDynamically, noDeadStrip - line 659: // TODO: check validity of version strings, which varies by platform - line 895: // FIXME: return false when -final_name ... - line 1270: // FIXME: Add a commandline flag for this too. - line 1466: // FIXME: should terminate the link early based on errors encountered so clang/lib/Parse/ParseStmt.cpp (8 lines): - line 321: ProhibitAttributes(Attrs); // TODO: is it correct? - line 1116: // FIXME: This loses extension expressions in the AST! - line 1128: // FIXME: Save the __extension__ on the decl as a node somehow? - line 1610: // FIXME: This is not optimal recovery, but parsing the body is more - line 2096: // FIXME: The C++11 standard doesn't actually say that this is a - line 2266: // FIXME: Code completion for co_return. - line 2481: // TODO: Factor into common return ParseSEHHandlerCommon(...) - line 2574: // FIXME: Possible draft standard bug: attribute-specifier should be allowed? clang/include/clang/AST/Type.h (8 lines): - line 377: // TODO: The diagnostic messages where Addr may be 0 should be fixed - line 2058: // FIXME: change this to 'raw' interface type, so we can used 'interface' type - line 2771: // FIXME: this might strip inner qualifiers; okay? - line 5285: friend class ASTReader; // FIXME: ASTContext::getInjectedClassNameType is not - line 6664: // FIXME: It's really annoying that we don't have an - line 6986: // FIXME: Should we allow complex __fp16? Probably not. - line 7019: // FIXME: In C++, enum types are never integer types. - line 7285: // TODO: At some point, we should change the arguments to instead just accept an clang-tools-extra/clangd/unittests/XRefsTests.cpp (8 lines): - line 243: // FIXME: match exception type against catch blocks - line 270: TU.ExtraArgs.push_back("-fexceptions"); // FIXME: stop testing on PS4. - line 1259: // FIXME: Go-to-definition in a template requires disabling delayed template - line 1270: // FIXME: Target the constructor as well. - line 1272: // FIXME: Target the constructor as well. - line 1274: // FIXME: Target the constructor as well. - line 1890: namespace $decl[[ns]] { // FIXME: def? - line 1973: // FIXME: Maybe report this foo as a ref to ns::foo (because of ADL) llvm/include/llvm/MC/MCAssembler.h (8 lines): - line 44: // FIXME: This really doesn't belong here. See comments below. - line 50: // FIXME: Ditto this. Purely so the Streamer and the ObjectWriter can talk - line 129: // FIXME: We really would like this in target specific code rather than - line 226: // FIXME: How are we going to parameterize this? Two obvious options are stay - line 333: // FIXME: This does not belong here. - line 388: // FIXME: This is a total hack, this should not be here. Once things are - line 423: // FIXME: This is a total hack, this should not be here. Once things are - line 444: // FIXME: This is a total hack, this should not be here. Once things are llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp (8 lines): - line 107: // FIXME: It may be possible to remove the isKill() restriction once PR18663 - line 163: // FIXME: The issue with predicated instruction is more complex. We are being - line 235: // FIXME: can this check be relaxed to account for undef uses - line 456: // FIXME: Replace this with the existing map in ScheduleDAGInstrs::MISUnitMap - line 523: // TODO: If we tracked more than one register here, we could potentially - line 540: // FIXME: It may be possible to remove the isKill() restriction once PR18663 - line 555: // TODO: Instructions with multiple defs could have multiple - line 643: // TODO: Instead of picking the first free register, consider which might openmp/runtime/src/z_Windows_NT_util.cpp (8 lines): - line 197: /* TODO associate cv with a team instead of a thread so as to optimize - line 375: /* TODO: shouldn't this use release semantics to ensure that - line 1055: // TODO: hide "2" in enum (like {true,false,started}) - line 1121: /* TODO this is not valid for sibling threads!! - line 1156: /* TODO: GetCurrentThread() returns a pseudo-handle that is unsuitable for - line 1255: // FIXME - on Windows* OS, if __kmp_monitor_stksize = 0, figure out how - line 1326: // TODO: This code is very similar to KMP_WAIT. Need to generalize - line 1641: // !!! TODO: Why comment does not match the code??? llvm/lib/Analysis/VectorUtils.cpp (8 lines): - line 327: // TODO: Use getBinOpIdentity() to generalize this. - line 387: // FIXME: We can allow undefs, but if Index was specified, we may want to - line 394: // FIXME: We can safely allow undefs here. If Index was specified, we will - line 422: // TODO: Add support for unary ops (fneg), casts, intrinsics (overflow ops). - line 778: // TODO: support reversed access. - line 955: /// TODO: This is a lot like known bits, but for - line 1241: // TODO: Change to Assume=true but making sure we don't exceed the threshold - line 1245: // TODO: If we are peeling the loop and we know that the first pointer doesn't llvm/lib/MC/XCOFFObjectWriter.cpp (8 lines): - line 282: needsAuxiliaryHeader() const { /* TODO aux header support not implemented. */ - line 657: // TODO FIXME How to assert a symbol's visibilty is default? - line 658: // TODO Set the function indicator (bit 10, 0x0020) for functions - line 724: // TODO FIXME How to assert a symbol's visibilty is default? - line 725: // TODO Set the function indicator (bit 10, 0x0020) for functions - line 849: // FIXME: support 64-bit C_FILE symbol. - line 855: // FIXME: add the real source filename. - line 956: // TODO Error check that the number of symbol table entries fits in 32-bits clang-tools-extra/clangd/unittests/FindTargetTests.cpp (8 lines): - line 364: // FIXME: deduced type missing in AST. https://llvm.org/PR42914 - line 462: // FIXME: Should we truncate the pretty-printed form of a concept decl - line 617: // FIXME: why both auto and int? - line 979: // FIXME: We currently can't disambiguate between multiple protocols. - line 1037: // FIXME: Auto-completion in a template requires disabling delayed template - line 1078: if (Pos.isMacroID()) // FIXME: figure out how to show macro locations. - line 1436: // FIXME: This should have only one reference to Bar. - line 1471: // FIXME: It's better to target destructor's FunctionDecl instead of llvm/lib/Target/M68k/M68kFrameLowering.cpp (8 lines): - line 52: // FIXME Make sure no other factors prevent us from reserving call frame - line 99: // TODO: Support tail calls - line 258: // TODO: We don't need to reset this between subsequent functions, - line 275: // TODO: This is needed only if we require precise CFA. - line 306: // TODO: When not using precise CFA, we also need to adjust for the - line 425: // TODO can `lea` be used to adjust stack? - line 434: // FIXME Update CCR as well. For now we just - line 662: // TODO Interrupt handlers clang-tools-extra/clangd/SemanticHighlighting.cpp (8 lines): - line 179: // FIXME: This is separate from whether *a particular usage* can mutate D. - line 439: // FIXME: we should reduce the scope of the inactive region to not - line 536: // FIXME ...here it would make sense though. - line 562: // FIXME The condition !T->idDependentType() could be relaxed a bit, - line 570: // FIXME Add "unwrapping" for ArraySubscriptExpr and UnaryOperator, - line 572: // FIXME Handle dependent expression types - line 959: // FIXME: better method with static modifier? - line 1030: // FIXME: use a real diff instead, this is bad with include-insertion. clang/include/clang/AST/TypeLoc.h (8 lines): - line 245: // TODO: is this alignment already sufficient? - line 1759: // FIXME: size expression and attribute locations (or keyword if we - line 1785: // FIXME: size expression and attribute locations (or keyword if we - line 1808: // FIXME: size expression and attribute locations. - line 1813: // FIXME: attribute locations. - line 1898: // FIXME: location of the '_Complex' keyword. - line 2000: // FIXME: add LParenLoc, it is tricky to support due to the limitation of - line 2029: // FIXME: While there's only one unary transform right now, future ones may openmp/runtime/src/kmp_settings.cpp (8 lines): - line 1035: // AC: TODO: change to print_int? (needs documentation change) - line 1221: // TODO: Remove this option. OMP_NUM_THREADS is a list of positive integers! - line 1549: // !!! TODO: Move buffer initialization of of this file! It may works - line 1632: // TODO: Remove __kmp_barrier_branch_bit_env_name varibale, remove loops from - line 1697: // TODO: Remove __kmp_barrier_pattern_name variable, remove loops from parse and - line 2179: // FIXME - there's got to be a better way to print an error - line 4069: // AC: TODO: probably remove TRAPEZOIDAL (OMP 3.0 does not allow it) - line 4311: // TODO: allocate th_cons if called from kmp_set_defaults. clang/lib/AST/ASTDiagnostic.cpp (8 lines): - line 212: // FIXME: Handle other pointer-like types. - line 267: // FIXME: Playing with std::string is really slow. - line 306: // TODO: Handle ak_declcontext case. - line 475: // FIXME: Get the strings for DeclContext from some localized place - line 1268: // TODO: Sometimes, the desugared template argument Expr differs from - line 1688: // TODO: merge this with other aka printing above. - line 1874: // FIXME: Diffing the APValue would be neat. - line 1875: // FIXME: Suppress this and use the full name of the declaration if the lldb/source/Expression/FunctionCaller.cpp (8 lines): - line 122: // FIXME: Assure that the ValueList we were passed in is consistent with the one - line 165: // TODO: verify fun_addr needs to be a callable address - line 172: // FIXME: We will need to extend this for Variadic functions. - line 186: // FIXME: We should sanity check sizes. - line 191: // FIXME: For now just do scalars: - line 240: // FIXME: Use the errors Stream for better error reporting. - line 266: // FIXME: How does clang tell us there's no return value? We need to handle - line 268: // FIXME: Create our ThreadPlanCallFunction with the return CompilerType, and clang/lib/Headers/__clang_hip_math.h (8 lines): - line 296: float jnf(int __n, float __x) { // TODO: we could use Ahmes multiplication - line 408: const float *__a) { // TODO: placeholder until OCML adds support. - line 463: const float *__a) { // TODO: placeholder until OCML adds support. - line 544: float ynf(int __n, float __x) { // TODO: we could use Ahmes multiplication - line 851: double jn(int __n, double __x) { // TODO: we could use Ahmes multiplication - line 955: const double *__a) { // TODO: placeholder until OCML adds support. - line 1016: const double *__a) { // TODO: placeholder until OCML adds support. - line 1106: double yn(int __n, double __x) { // TODO: we could use Ahmes multiplication clang/lib/Sema/SemaCoroutine.cpp (8 lines): - line 187: // FIXME: This also covers [expr.await]p2: "An await-expression shall not - line 327: // FIXME: Fix BuildMemberReferenceExpr to take a const CXXScopeSpec&. - line 360: // FIXME: Add convertability check to coroutine_handle<>. Possibly via - line 1046: // FIXME: We didn't implement following selection: - line 1365: // FIXME: We should add an error here. According to: - line 1450: // FIXME Improve this diagnostic - line 1683: ExprValueKind::VK_LValue, Loc); // FIXME: scope? - line 1724: // TODO: Become stricter when is removed. llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp (8 lines): - line 119: // objects. TODO: Move this KnownBits.h if this is usable in more cases. - line 280: // G_PTR_ADD is like G_ADD. FIXME: Is this true for all targets? - line 329: // TODO: Handle clamp pattern with number of sign bits - line 339: // TODO: Handle clamp pattern with number of sign bits - line 487: return; // TODO: Handle vectors. - line 521: // TODO: we could bound Known.One using the lower bound on the number of - line 625: // FIXME: We need an in-memory type representation. - line 634: // FIXME: We need an in-memory type representation. llvm/lib/ExecutionEngine/ExecutionEngine.cpp (8 lines): - line 12: // FIXME: This file needs to be updated to support scalable vectors - line 175: // FIXME: This is silly, we shouldn't end up with a mapping -> 0 in the - line 400: // FIXME: It is marginally lame that we just do nothing here if we see an - line 669: // FIXME long double - line 675: // FIXME long double - line 1066: /// FIXME: document - line 1090: // FIXME: Will not trap if loading a signaling NaN. - line 1218: // symbol. FIXME is this right for common? llvm/lib/MC/MCAsmStreamer.cpp (8 lines): - line 783: // FIXME: Currently emit unprefix'ed registers. - line 1356: // FIXME: Emit location directives - line 1379: // FIXME: Emit location directives - line 1433: // FIXME: Parameterize this based on MAI. - line 1460: // FIXME: Verify that Offset is associated with the current section. - line 2192: // FIXME: Note the fixup comments for Thumb2 are completely bogus since the - line 2214: // FIXME: Some of the 8 bits require fix up. - line 2436: // FIXME: use section end symbol as end of the Section. We need to consider clang-tools-extra/clangd/SourceCode.cpp (8 lines): - line 285: // FIXME: Here we check whether the token at the location is a greatergreater - line 607: // FIXME: InMemoryFileAdapter crashes unless the buffer is null terminated! - line 622: // FIXME: Should this function really return keywords too ? - line 922: // FIXME: consider mid-sentence Capitalization? - line 1032: // FIXME: This check is too conservative now, it should be enough to only - line 1114: // FIXME: In addition to namespaces try to generate events for function - line 1188: // FIXME: This makes headers with #ifdef LINUX/WINDOWS/MACOS marked as non - line 1227: // FIXME: Should files that have been #import'd be considered clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp (8 lines): - line 246: // FIXME: To be completely thorough this matcher should also ensure the - line 251: // FIXME: Also, a record doesn't necessarily need begin() and end(). Free - line 306: // FIXME: Maybe allow declaration/initialization outside of the for loop. - line 408: // FIXME: Make this function more generic. - line 566: // FIXME: Clang includes the location of the ';' but only for DeclStmt's - line 605: // FIXME: This won't catch cases where the address is taken outside - line 811: // FIXME: Try to put most of this logic inside a matcher. - line 932: // FIXME: Determine when the external dependency isn't an expression converted llvm/cmake/modules/HandleLLVMOptions.cmake (8 lines): - line 221: # FIXME: Remove this warning if this rpath is no longer hardcoded. - line 353: # TODO: support other platforms and toolchains. - line 362: # FIXME: CMAKE_SIZEOF_VOID_P is still 8 - line 375: # FIXME: It isn't handled in LLVM_BUILD_32_BITS. - line 427: elseif(MINGW) # FIXME: Also cygwin? - line 925: # FIXME: With MSVS, consider compiling with /Gy and linking with /OPT:REF? - line 1082: # FIXME: We should move all this logic into the clang driver. - line 1226: # FIXME: it is unknown if this is the actual minimum bound clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp (8 lines): - line 303: // FIXME: these lines can be removed in C++17 - line 423: // TODO: Currently, we might lose precision here: we always mark a return - line 431: // TODO: Add support for vfscanf & family. - line 507: // FIXME: use fold expression in C++17 - line 681: // FIXME: we might want to consider more than just the first byte. - line 739: // TODO: So far we are just going one level down; ideally we'd need to - line 869: // TODO: It might make sense to run this check on demand. In some cases, - line 892: // TODO: Should this check be a part of the CString checker? llvm/cmake/modules/AddLLVM.cmake (8 lines): - line 95: # FIXME: `-Wl,-bE:` bypasses whatever handling there is in the build - line 103: # FIXME: Don't write the "local:" line on OpenBSD. - line 153: # FIXME: This is not safe because this will create the same target - line 273: # TODO Revisit this later on z/OS. - line 337: # TODO: Enable for MinGW Windows builds too. - line 542: # FIXME: Add name_static to anywhere in TARGET ${name}'s PROPERTY. - line 1643: # FIXME: "ENABLE_SHARED" doesn't make sense, since it is used just for - line 2150: # FIXME: update this when there is better solution. llvm/include/llvm/Demangle/ItaniumDemangle.h (8 lines): - line 17: // FIXME: (possibly) incomplete list of features that clang mangles that this - line 250: // FIXME: Make these protected. - line 1067: // FIXME: This should demangle as "vector pixel". - line 2740: // FIXME: If TempParams is empty and none of the function parameters - line 4257: // FIXME: ::= L _ E # complex floating point literal (C 2000) - line 4338: // FIXME: We need to include the string contents in the mangling. - line 4352: // FIXME: Should we support LUb... for block literals? - line 4442: // FIXME: This map is duplicated in parseOperatorName and parseExpr. clang/lib/Frontend/InitPreprocessor.cpp (8 lines): - line 374: // FIXME: Use correct value for C23. - line 387: // FIXME: Use correct value for C++23. - line 639: // FIXME: OpenCL options which affect language semantics/syntax - line 834: // FIXME: clang currently ignores -fexec-charset=. If this changes, - line 838: // FIXME: 32-bit wchar_t signals UTF-32. This may change - line 842: // FIXME: Less-than 32-bit wchar_t generally means UTF-16 - line 1054: // FIXME: This is target-dependent. - line 1237: // FIXME: This will create multiple definitions for most of the predefined llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp (8 lines): - line 933: // FIXME: For lack of any better information, do no harm... - line 939: // FIXME: the same for P9 as previous gen until POWER9 scheduling is ready - line 940: // FIXME: the same for P10 as previous gen until POWER10 scheduling is ready - line 999: // TODO: Handle more cost kinds. - line 1054: // TODO: Allow non-throughput costs that aren't binary. - line 1072: // TODO: Handle other cost kinds. - line 1169: // TODO: Handle other cost kinds. - line 1423: // TODO: Handle other cost kinds. llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp (8 lines): - line 505: // FIXME: This is very similar to TargetLowering::LowerOperationWrapper. Can we - line 651: // TODO: Should we only do this if FP_TO_UINT itself isn't legal? - line 840: // FIXME: We do not expand SMULFIXSAT/UMULFIXSAT here yet, not sure exactly - line 905: // FIXME: Should we also permit fixed-length SPLAT_VECTOR as a fallback to - line 1183: // FIXME: Sign extend 1 to all ones if that's legal on the target. - line 1317: // TODO: Can any fast-math-flags be set on these nodes? - line 1342: // TODO: Can any fast-math-flags be set on these nodes? - line 1356: // TODO: If FNEG had fast-math-flags, they'd get propagated to this FSUB. llvm/lib/Support/SourceMgr.cpp (8 lines): - line 196: // FIXME: Note that the formatting of source locations is spread between - line 310: // FIXME: Handle multibyte characters. - line 401: // FIXME: Handle multibyte characters in the source line. - line 419: // FIXME: This assertion is intended to catch unintended use of multibyte - line 435: // FIXME: Handle multibyte characters in the source line. - line 519: // FIXME: If there are multibyte or multi-column characters in the source, all - line 539: // FIXME: Find the beginning of the line properly for multibyte characters. - line 593: // FIXME: This is trying not to break up replacements, but then to re-sync clang/lib/Format/FormatTokenLexer.cpp (8 lines): - line 167: // FIXME: Investigate what token type gives the correct operator priority. - line 863: // FIXME: This is wrong. A '\' followed by a newline is always removed, - line 865: // FIXME: Newlines can also be escaped by a '?' '?' '/' trigraph. - line 872: // FIXME: This miscounts tok:unknown tokens that are not just - line 946: // FIXME: Add a more explicit test. - line 971: // FIXME: Add the trimmed whitespace to Column. - line 1007: // FIXME: ColumnWidth actually depends on the start column, we need to - line 1014: // FIXME: ColumnWidth actually depends on the start column, we need to clang/include/clang/AST/DeclTemplate.h (8 lines): - line 488: /// FIXME: Normally null; tail-allocate this. - line 1151: // FIXME: These probably don't need to be ints. int:5 for depth, int:8 for - line 1398: // FIXME: Collapse this into TemplateParamPosition; or, just move depth/index - line 1876: // FIXME: This is broken. CXXRecordDecl::getMostRecentDecl() returns a - line 2081: /// FIXME: redundant with TypeAsWritten? - line 2602: /// FIXME: This is redundant; we could store the same information directly on - line 2757: // TODO: Always set this when creating the new specialization? - line 2931: /// FIXME: redundant with TypeAsWritten? llvm/include/llvm/Support/ARMTargetParser.h (8 lines): - line 72: // FIXME: TableGen this. - line 91: // FIXME: TableGen this. - line 113: // FIXME: TableGen this. - line 166: // FIXME: BE8 vs. BE32? - line 174: // FIXME: TableGen this. - line 198: // FIXME: SubArch values were simplified to fit into the expectations - line 201: // FIXME: TableGen this. - line 240: // FIXME: These should be moved to TargetTuple once it exists clang-tools-extra/clang-tidy/add_new_check.py (8 lines): - line 85: /// FIXME: Write a short description. - line 138: // FIXME: Add matchers. - line 143: // FIXME: Add callback implementation. - line 266: FIXME: add release notes. - line 283: // FIXME: Add something that triggers the check here. - line 287: // FIXME: Verify the applied fix. - line 293: // FIXME: Add something that doesn't trigger the check here. - line 416: FIXME: Describe what patterns does the check detect and why. Give examples. clang/unittests/StaticAnalyzer/CallDescriptionTest.cpp (8 lines): - line 68: // FIXME: Maybe use std::variant and std::visit for these. - line 200: // FIXME: Test matching destructors: {"std", "basic_string", "~basic_string"} - line 242: // FIXME: We should **not** match. - line 270: // FIXME: We should **not** skip non-inline namespaces. - line 374: // FIXME: We should be able to see-through aliases. - line 397: // FIXME: We should be able to see-through aliases. - line 429: // FIXME: We should be able to see-through namespace aliases. - line 460: // FIXME: We should be able to see-through namespace aliases. mlir/include/mlir/Transforms/LoopFusionUtils.h (8 lines): - line 28: // TODO: Extend this module to include utility functions for querying fusion - line 50: // TODO: Remove 'memref' when we support more generic scenarios. - line 51: // TODO: Generalize utilities so that producer-consumer and sibling fusion - line 60: // TODO: Generic fusion is not fully implemented by fusion utilities yet. - line 111: /// TODO: Update comments when this function is fully implemented. - line 140: // TODO: Consider moving this to LoopUtils. - line 147: // TODO: Improve this cost model. - line 156: // TODO: Improve this cost model. clang/lib/StaticAnalyzer/Core/Store.cpp (8 lines): - line 83: // FIXME: We may need different solutions, depending on the symbol - line 137: // FIXME: Need to handle arbitrary downcasts. - line 169: // FIXME: Handle symbolic raw offsets. - line 380: // be fine with ElementRegion. TODO: Should we instead make - line 416: // FIXME: What we should return is the field offset, not base. For example, - line 459: // FIXME: For absolute pointer addresses, we just return that value back as - line 461: // value. See also the similar FIXME in getLValueFieldOrIvar(). - line 498: // FIXME: This is a somewhat arbitrary restriction. We should be using llvm/include/llvm/CodeGen/CodeGenPassBuilder.h (8 lines): - line 63: // FIXME: Dummy target independent passes definitions that have not yet been - line 320: // FIXME: Rename `addPreEmitPass` to something more sensible given its actual - line 552: // FIXME: For new PM, use pass name directly in commandline seems good. - line 625: // FIXME: use -stop-after so we could remove PrintLSR - line 641: // TODO: add a pass insertion point here - line 725: // TODO: Default ctor'd RewriteSymbolPass is no-op. - line 1055: // FIXME: Re-enable coloring with register when it's capable of adding - line 1111: // FIXME: can this move into MachineLateOptimization? clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h (8 lines): - line 546: // TODO: Refactor to put elsewhere - line 557: // FIXME: This should be a cast from a 1-bit integer type to a boolean type, - line 570: // TODO: Refactor to use built-in conversion functions - line 595: // TODO: Refactor to Sema::FindCompositePointerType(), and - line 602: // TODO: Be more strict about this. - line 640: // TODO: Refine behavior for invalid type casts - line 645: // TODO: Refactor to use Sema::handleIntegerConversion() - line 727: // TODO: Refactor to use Sema::handleFloatConversion() llvm/lib/CodeGen/PeepholeOptimizer.cpp (8 lines): - line 1129: /// TODO: HandleMultipleSources should be removed once we test PHI handling - line 1151: // TODO: Remove once multiple srcs w/ coalescable copies are supported. - line 1214: // Get the new source to rewrite. TODO: Only enable handling of multiple - line 1228: // TODO: We could have a clean-up method to tidy the instruction. - line 1395: // FIXME: This is very simple and misses some cases which should be handled when - line 1438: // TODO: If we have multiple copies to different register classes, we may want - line 1514: // TODO: Curerntly, we only allow the last instruction of the recurrence - line 1710: // FIXME: handle explicit asm clobbers. clang/lib/StaticAnalyzer/Core/BugReporter.cpp (8 lines): - line 128: /// TODO: PathDiagnostic has a stack doing the same thing, shouldn't we use - line 293: // FIXME: Use CallEvent to abstract this over all calls. - line 776: // FIXME: Maybe this should be an assertion. Are there cases - line 1730: // FIXME: There are enough /bytes/ between the endpoints of the edge, but - line 1943: // FIXME: We should just generate invalid edges anyway and have the optimizer - line 2209: // TODO: The statement may be null if the report was emitted before any - line 2260: // FIXME: No tests exist for this code and it is questionable: - line 2485: // FIXME: There are leaks from checkers that assume that the BugTypes they clang-tools-extra/clang-change-namespace/ChangeNamespace.cpp (8 lines): - line 110: // FIXME: get rid of this helper function if this is supported in clang-refactor - line 119: // FIXME: this is a bit hacky to get ReadToEndOfLine work. - line 251: // FIXME: consider code style for comments. - line 603: // FIXME: this would qualify "ns::VALUE" as "ns::EnumValue::VALUE". Fix it - line 628: // FIXME: ignore overloaded operators. This would miss cases where operators - line 882: // FIXME: do not rename template parameter. - line 935: // FIXME: it might not be always accurate to use the first using-decl. - line 939: // FIXME: check if target_decl_name is in moved ns, which doesn't make much clang/bindings/python/clang/cindex.py (8 lines): - line 157: FIXME: Make libclang expose additional error information in this scenario. - line 313: # FIXME: Eliminate this and make normal constructor? Requires hiding ctypes - line 1517: # TODO: Should probably check that this is either a reference or - line 1830: # FIXME: Expose iteration from CIndex, PR6125. - line 1832: # FIXME: Document this assertion in API. - line 1833: # FIXME: There should just be an isNull method. - line 1890: # FIXME: There should just be an isNull method. - line 2210: # FIXME Support slice objects. llvm/lib/Support/RISCVISAInfo.cpp (8 lines): - line 106: // TODO: We might set default version based on profile or ISA spec. - line 527: // TODO: Use version number when setting target features - line 565: // TODO: Use version number when setting target features - line 645: // TODO: Save Type, Name, Major, Minor to avoid parsing them later. - line 681: // TODO: This has been removed in later specs, which specify that D implies F - line 687: // TODO: The 'q' extension requires rv64. - line 688: // TODO: It is illegal to specify 'e' extensions with 'f' and 'd'. - line 737: // TODO: Handle q extension. llvm/lib/Target/AArch64/AArch64Subtarget.cpp (7 lines): - line 138: // FIXME: remove this to enable 64-bit SLP if performance looks good. - line 152: // FIXME: remove this to enable 64-bit SLP if performance looks good. - line 182: // FIXME: remove this to enable 64-bit SLP if performance looks good. - line 193: // FIXME: remove this to enable 64-bit SLP if performance looks good. - line 203: // FIXME: remove this to enable 64-bit SLP if performance looks good. - line 219: // FIXME: remove this to enable 64-bit SLP if performance looks good. - line 248: // FIXME: At this point, we can't rely on Subtarget having RBI. mlir/include/mlir/IR/OpDefinition.h (7 lines): - line 1089: // but currently this check is under a FIXME and is not actually done. - line 1113: // but currently this check is under a FIXME and is not actually done. - line 1165: // TODO: We should verify that the operation can always be folded, but this - line 1283: // TODO: Right now, the operands of an operation are either all normalizable, - line 1308: /// TODO: Avoid hardcoding vector/tensor, and generalize this trait to a new - line 1901: // TODO: Remove the parse/print/build here (new ODS functionality obsoletes the - line 1907: // TODO: These methods are deprecated in favor of CastOpInterface. Remove them polly/lib/CodeGen/PPCGCodeGeneration.cpp (7 lines): - line 2756: // TODO: investigate this further. PPCG calls collect_call_domains. - line 2820: // TODO: Also mark one-element accesses to arrays as fixed-element. - line 2834: /// TODO: Initialize the list of memory accesses. - line 3106: // TODO: verify that this assignment is correct. - line 3511: // TODO: Handle LICM - line 3555: // TODO: actually think if this is the correct exiting block to place - line 3642: // FIXME: We do not yet add regions for the newly generated code to the llvm/tools/llvm-pdbutil/TypeReferenceTracker.cpp (7 lines): - line 58: // FIXME: Are there other type-referencing subsections? Inlinees? - line 85: // FIXME: Should we walk Ids? - line 102: // FIXME: Check for failure. - line 111: // FIXME: Report OOB slice instead of truncating. - line 134: continue; // FIXME: Report a reference to a non-existant type. - line 137: // FIXME: Check for failure. - line 143: // FIXME: This limitation makes this feature somewhat useless on object file clang/lib/Parse/ParseInit.cpp (7 lines): - line 79: // FIXME: Tell the caller this happened so they can recover. - line 87: // FIXME: If our tentative parse was not incomplete, parse the lambda from - line 94: // FIXME: Should we disambiguate against a message-send? - line 282: // FIXME: potentially-potentially evaluated expression above? - line 340: // FIXME: We also need to tell Sema that we're in a - line 515: // FIXME: This comment doesn't sound right. If there is a r_brace - line 527: // TODO: save comma locations if some client cares. llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp (7 lines): - line 61: // FIXME: Should have analysis or something rather than attribute to detect - line 81: // TODO: Pick a high register, and shift down, similar to a kernel. - line 137: // FIXME: This attribute is a hack, we just need an analysis on the function - line 141: // TODO: This could be refined a lot. The attribute is a poor way of - line 255: // FIXME: This only works after processFunctionBeforeFrameFinalized - line 388: // FIXME: Move allocation logic out of MachineFunctionInfo and initialize - line 398: // TODO: Should include register tuples, but doesn't matter with current lld/MachO/SyntheticSections.cpp (7 lines): - line 669: // TODO: Just precompute output size here instead of writing to a temporary - line 801: // TODO: Add support for thumbs, in that case - line 1027: // TODO populate n_desc with more flags - line 1147: strings.push_back(str); // TODO: consider deduplicating strings - line 1166: // FIXME: Consider using finalOutput instead of outputFile. - line 1290: // FIXME: add more data to XAR - line 1482: // FIXME: Assign the right address value for these symbols clang/lib/Analysis/ThreadSafetyCommon.cpp (7 lines): - line 340: // FIXME: this does not work with multiple inheritance. - line 586: // FIXME: handle different kinds of casts. - line 625: // TODO: add alloca - line 835: // FIXME: right now we emulate params with loads; that should be fixed. - line 852: // FIXME: the entry block will hold function parameters. - line 909: // TODO: set index - line 919: // FIXME: make sure these aren't critical edges. lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp (7 lines): - line 475: // TODO : Remove this function - line 1071: // FIXME we have the minimal version number, we could be propagating - line 2581: // FIXME: This asserts with this input: - line 2916: // TODO: determine this for ELF - line 3267: // TODO: is there any way to detect that an executable is a kernel - line 3274: // TODO: is there any way to detect that an shared library is a kernel - line 3281: // TODO: is there any way to detect that an core file is a kernel llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp (7 lines): - line 739: // FIXME: This really, really shouldn't use TargetMachine. We don't want - line 1032: // FIXME: The immediate operand should have already been encoded like this - line 1135: // FIXME: The immediate operand should have already been encoded like this - line 1163: // FIXME: The immediate operand should have already been encoded like this - line 1599: // FIXME: Needs fixup support. - line 1617: // FIXME: Needs fixup support. - line 1641: // FIXME: Needs fixup support. mlir/python/mlir/dialects/linalg/opdsl/lang/emitter.py (7 lines): - line 77: # TODO: Add support for shape symbols. - line 84: # TODO: Linalg verification does not currently allow symbols. - line 111: # TODO: Support emission of pure memref form. - line 141: doc=None, # TODO: Make optional. - line 142: library_call=None) # TODO: Make optional. - line 424: # TODO: Create a FloatType in the Python API and implement the switch - line 439: # TODO: Create a FloatType in the Python API and implement the switch clang/lib/CodeGen/CodeGenTBAA.cpp (7 lines): - line 86: // FIXME: We should follow GCC and model may_alias as a type attribute - line 187: // TODO: Implement C++'s type "similarity" and consider dis-"similar" - line 201: // TODO: Is there a way to get a program-wide unique name for a - line 240: // TODO: Combine getTypeInfo() and getBaseTypeInfo() into a single function. - line 288: // TODO: Handle C++ base classes. - line 443: // TODO: Implement the rest of the logic here. For example, two accesses - line 461: // TODO: Implement the rest of the logic here. For example, two accesses lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp (7 lines): - line 1134: // FIXME: Rather than parsing the whole line table and then copying it over - line 1684: /// FIXME: Technically 0 is a valid hash. - line 1843: // FIXME: Technically "0" is a valid hash. - line 3011: // TODO: Currently ParseTypeFromDWARF(...) which is called by ParseType(...) - line 3207: // TODO: Implement this. - line 3799: // TODO: In the future it may be worthwhile to support call_all_source_calls. - line 3811: // TODO: A recursive scan of all blocks in the subprogram is needed in order clang-tools-extra/clangd/FindTarget.cpp (7 lines): - line 129: // FIXME: improve common dependent scope using name lookup in primary templates. - line 379: // FIXME: In practice this doesn't work: the AutoType you find inside - line 385: // FIXME: This is a workaround for https://llvm.org/PR42914, - line 638: // FIXME: decide on how to surface destructors when we need them. - line 728: // FIXME: handle more complicated cases: more ObjC, designated initializers. - line 993: // FIXME: can we just make RecursiveASTVisitor do this? - line 1020: break; // FIXME: can this actually happen in TemplateArgumentLoc? llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp (7 lines): - line 340: // TODO: when implementing other Wasm backends, make this generic or only do - line 390: // TODO - do we have any exceptions? - line 847: // FIXME Volatile isn't really correct, but currently all LLVM atomic - line 1331: // TODO: Use signatures in WebAssemblyMachineFunctionInfo too and unify - line 1705: // TODO: remove this and implement proper TLS models once Emscripten - line 2043: // TODO: Tune this. For example, lanewise swizzling is very expensive, so - line 2046: // TODO: Investigate looping rather than always extracting/replacing specific llvm/tools/llvm-diff/lib/DifferenceEngine.cpp (7 lines): - line 234: // FIXME: call attributes - line 255: // FIXME: metadata (if Complain is set) - line 458: // block. FIXME: tentative matches? - line 549: // FIXME: inbounds? - line 795: // FIXME: types - line 796: // FIXME: attributes and CC - line 797: // FIXME: parameter attributes mlir/lib/IR/AsmPrinter.cpp (7 lines): - line 430: // TODO: Allow deferring argument locations. - line 465: // TODO: Allow deferring argument locations. - line 2521: // TODO: We should allow location aliases on block arguments. - line 2645: // TODO: We should allow location aliases on block arguments. - line 2836: // TODO: Improve BlockArgument print'ing. - line 2850: // TODO: Improve BlockArgument print'ing. - line 2862: // TODO: This doesn't necessarily capture all potential cases. llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp (7 lines): - line 309: // TODO: Compute memory dependencies in a way that doesn't require always - line 311: // TODO: Compute memory dependencies in a way that uses AliasAnalysis to be - line 329: // TODO: This could be loosened to be the first *live* def, but care would - line 883: // TODO: Encode this properly as a stackified value. - line 904: // subsequent defs. TODO: Handle the case where the consecutive uses are - line 914: // TODO: This single-use restriction could be relaxed by using tees - line 975: // TODO: Generalize this code to support keeping values on the stack across clang/include/clang/Tooling/Syntax/Nodes.h (7 lines): - line 213: /// FIXME: add accessors for semicolon of statements that have it. - line 271: /// FIXME: add condition that models 'expression or variable declaration' - line 350: /// FIXME: use custom iterator instead of 'vector'. - line 414: /// FIXME: use custom iterator instead of 'vector'. - line 524: // TODO: add an accessor for the "static" keyword. - line 536: // TODO: add accessors for specifiers. - line 538: // FIXME: This should be a `type-id` following the grammar. Fix this once we llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h (7 lines): - line 254: /// TODO: May need to add additional parameters to represent: - line 360: /// TODO: Workshare loops with static scheduling may contain up to two loops - line 581: // TODO: provide atomic and non-atomic reduction generators for reduction - line 687: /// TODO: Create a enum class for the Reserve2Flags - line 1369: /// TODO: Consider adding another standardized BasicBlock between Body CFG and - line 1409: /// TODO: Provide mechanisms for exception handling and cancellation points. - line 1427: /// FIXME: This currently includes the Preheader and After blocks even though mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp (7 lines): - line 148: // TODO: Move this to a utility library. - line 166: // TODO: These helpers are currently type polymorphic over the class of integer - line 691: // TODO: may need to move output parsing before region parsing. - line 1072: // TODO: Replace custom directive with AllTypesMatch as soon as it - line 2427: // TODO: atm all operands go through getElementTypeOrSelf, - line 2555: // TODO: Enable when ods-gen supports captures. - line 2560: // TODO: consider merging results parsing into region parsing. llvm/lib/Transforms/Scalar/EarlyCSE.cpp (7 lines): - line 246: // TODO: We should also detect FP min/max. - line 293: // TODO: Extend this to handle intrinsics with >2 operands where the 1st - line 362: // TODO: Extend this for >2 args by matching the trailing N-2 args. - line 386: // TODO: We should also detect FP min/max. - line 830: // TODO: We could insert relevant casts on type mismatch here. - line 1003: // FIXME: We could be more aggressive when checking doesNotAccessMemory(), - line 1375: // TODO: Currently some fast-math flags are not treated as bolt/lib/Target/X86/X86MCPlusBuilder.cpp (7 lines): - line 473: // FIXME: For compatibility with old LLVM only! - line 1658: // FIXME: PUSH can be technically a leak, but let's ignore this for now - line 1743: /// TODO: this implementation currently works for the most common opcodes that - line 1911: /// TODO: this implementation currently works for the most common opcodes that - line 2862: // TODO: this is a bit hacky. It finds the correct operand by - line 3222: // FIXME: this should depend on the calling convention. - line 3715: // TODO: Would be preferable to only load this value once. clang/lib/Sema/SemaTemplateVariadic.cpp (7 lines): - line 299: // FIXME: Store 'Unexpanded' on the lambda so we don't need to recompute it - line 323: // FIXME: We could probably support this for statement expressions that - line 325: // FIXME: This is insufficient to detect this problem; consider - line 469: // FIXME: We shouldn't need this null check! - line 1062: // FIXME: We shouldn't ever have to worry about missing - line 1077: // FIXME: Find some way to avoid the copy? - line 1119: // FIXME: We could find a size in more cases by looking for a substituted clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp (7 lines): - line 171: // FIXME: A callback should disable checkers at the start of functions. - line 180: // FIXME this really should be context sensitive, where we record - line 198: // FIXME: A callback should disable checkers at the start of functions. - line 211: // FIXME: A callback should disable checkers at the start of functions. - line 239: // FIXME: A callback should disable checkers at the start of functions. - line 267: // FIXME: A callback should disable checkers at the start of functions. - line 384: // FIXME: A callback should disable checkers at the start of functions. llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp (7 lines): - line 11: // TODO: - line 57: // TODO: Allow and use non-square tiles. - line 1295: // FIXME: Use lazy DTU and update SplitBlock to accept a DTU instead of a - line 1385: // TODO: Also consider cost of copying if operands alias. - line 1455: // FIXME: The unroller should make this decision directly instead, but - line 1577: // TODO: add a fake entry for the folded instruction so that this is - line 1679: // TODO: Improve estimate of operations needed for transposes. Currently we llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp (7 lines): - line 1813: // FIXME: simplify-demanded-bits in DAGCombine will probably have - line 1859: // FIXME: Currently we limit this to the bigger pattern, because - line 2003: // FIXME: Currently we limit this to the bigger pattern case, - line 2324: // FIXME: Can we turn that into an assert? - line 2525: // FIXME: It's okay if the OrImm sets NotKnownZero bits to 1, but we don't - line 2630: // FIXME: This constraint is to catch bitfield insertion we may - line 3327: // FIXME: above applies in any case when offset between Op1 and Op2 is a clang/include/clang/AST/Decl.h (7 lines): - line 286: // FIXME: This function should be renamed to indicate that it is not just an - line 289: // FIXME: Deprecated, move clients to getName(). - line 335: // FIXME: Remove string version. - line 909: // TODO: It is a bit unfortunate to use a PointerUnion inside the VarDecl for - line 990: // FIXME: We need something similar to CXXRecordDecl::DefinitionData. - line 2880: // FIXME: Tail-allocate this to reduce the size of FieldDecl in the - line 4015: /// FIXME: This should be set as part of completeDefinition. llvm/lib/Target/VE/VEInstrInfo.cpp (7 lines): - line 372: // TODO: reuse a register if vl is already assigned to a register - line 373: // FIXME: it would be better to scavenge a register here instead of - line 559: // FIXME: We may need to support FPImm too. - line 570: // FIXME: We may need to support FPImm too. - line 598: // FIXME: Need to support i32. Current implementtation requires - line 603: // FIXME: Need to support shift, cmov, and more instructions. - line 604: // FIXME: Need to support lvl too, but LVLGen runs after peephole-opt. llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp (7 lines): - line 212: // TODO: structure this as an analysis pass, cache the result for subloops, - line 255: // This returns an exact expression only. TODO: We really only need an - line 277: // FIXME: This code does not handle invokes - line 342: // TODO: We can create an inner loop which runs a finite number of - line 448: // TODO: This should check the GCStrategy - line 459: // TODO: These should become properties of the GCStrategy, possibly with - line 583: // TODO: else we should assert that there was, in fact, a policy choice to openmp/runtime/src/kmp_barrier.cpp (7 lines): - line 1319: // TODO: can we make the above op faster? - line 1922: /* TODO: In case of split reduction barrier, primary thread may send - line 2022: /* GEH: TODO: Move this under if-condition above and also include in - line 2388: // TODO now, mark worker threads as done so they may be disbanded - line 2395: // TODO release worker threads' fork barriers as we are ready instead of all at - line 2522: ompt_task_implicit); // TODO: Can this be ompt_task_initial? - line 2659: // TODO: GEH - pass in better source location info since usually NULL here llvm/lib/Analysis/MemorySSAUpdater.cpp (7 lines): - line 117: // FIXME: Figure out whether this is dead code and if so remove it. - line 355: // TODO: There are other cases we can skip this work, such as when we have a - line 520: // processed. FIXME: Double check this - line 912: // TODO: this can be optimized by starting the search at the node with the - line 1019: // TODO: if this becomes a bottleneck, we can save on GetLastDef calls by - line 1120: // FIXME: some updates may be redundant, try to optimize and skip some. - line 1411: // FIXME: If this becomes too expensive, iterate until the first instruction clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h (7 lines): - line 534: // FIXME: We can possibly optimize this later to cache this value. - line 594: // TODO: We might want to return a different type here (ex: id (*ty)(...)) - line 926: // FIXME: We can cache this if needed. - line 961: // FIXME: We can cache this if needed. - line 981: // FIXME: `ParamVarRegion` only supports parameters of functions, C++ - line 1075: // FIXME: We can cache this if needed. - line 1132: // FIXME: Eventually support symbolic offsets. llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp (7 lines): - line 596: // FIXME: we need to reimplement saveVarArgsRegisters from - line 749: // TODO: Port this over to CallLowering as general code once swiftself is - line 758: // FIXME: If the caller's calling convention is C, then we can - line 792: // TODO: We should handle this. - line 809: // FIXME: In AArch64ISelLowering, this isn't worked around. Can/should we try - line 817: // FIXME: Check whether the callee also has an "inreg" argument. - line 926: // TODO: Right now, regbankselect doesn't know how to handle the rtcGPR64 mlir/lib/Dialect/Linalg/ComprehensiveBufferize/ModuleBufferization.cpp (7 lines): - line 241: // TODO: non-zero address space. - line 242: // TODO: layout information if relevant. - line 256: // TODO: This does not handle cyclic function call graphs etc. - line 306: // TODO: Atm we have 3 cases: - line 405: // TODO: add support to erase aliasInfo entries if deemed necessary. - line 540: // TODO: on the callee side, this may even have to trigger a copy to - line 799: // TODO: do not rely on this behavior. mlir/lib/Transforms/Utils/RegionUtils.cpp (7 lines): - line 78: // TODO: We could likely merge this with the DCE algorithm below. - line 145: // TODO: For results that are removable, e.g. for region based control flow, - line 153: // TODO: For results that are removable, e.g. for region based control flow, - line 269: // TODO: We could track these and enable removing dead operands/arguments - line 535: // TODO allow merging of operations when one block does not dominate the - line 573: // TODO: We could try and sub-partition this cluster if only some blocks - line 656: // TODO: Add support for regions if necessary. llvm/tools/llvm-jitlink/llvm-jitlink.cpp (7 lines): - line 576: // FIXME: Run dealloc actions. - line 633: // FIXME: Return memory to slab. - line 696: // TODO: Test this error. - line 768: // FIXME: Add support for Windows. - line 886: // FIXME: Add TCP support for Windows. - line 1241: // FIXME: Remove once we enable remote slab allocation. - line 1569: // TODO: On first reference to LibPath this should create a JITDylib llvm/lib/IR/Attributes.cpp (7 lines): - line 388: // FIXME: These should be output like this: - line 583: // TODO: Is this actually needed? - line 1212: // TODO: Insert at correct position and avoid sort. - line 1254: // FIXME it is not obvious how this should work for alignment. For now, say - line 1551: // FIXME: Remove this ctor, use AttributeSet. - line 1745: // FIXME: What if both have an int/type attribute, but they don't match?! - line 1763: // FIXME: What if both have an int/type attribute, but they don't match?! llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp (7 lines): - line 180: // TODO: On some of these floating point instructions, USR is marked as Use. - line 1679: // TODO: Fix this - line 2097: // TODO: In order to have isExtendable for fpimm/f32Ext, we need to handle - line 2252: // TODO: This is largely obsolete now. Will need to be removed - line 2338: // TODO: This will need to be changed to use MC level - line 2373: // TODO: Add all the compound branches here. Can we do this in Relation model? - line 4683: // TODO: Add more rigorous validation. llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp (7 lines): - line 14: // FIXME: Must stop RegScavenger spills in later passes. - line 127: // FIXME: Just emit the readlane/writelane directly - line 181: // TODO: To support shrink wrapping, this would need to copy - line 205: // FIXME: This is a lie. The CalleeSavedInfo is incomplete, but this is - line 318: // TODO: CSR VGPRs will never be spilled to AGPRs. These can probably be - line 352: // FIXME: Adding to live-ins redundant with reserving registers. - line 358: // FIXME: The dead frame indices are replaced with a null register from llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp (7 lines): - line 53: // TODO: If the x86 backend knew how to convert a bool vector mask back to an - line 83: // TODO: If the x86 backend knew how to convert a bool vector mask back to an - line 607: // TODO: Model this case as 2 shuffles or a 'logical and' plus shuffle? - line 963: // TODO should we turn this into 'and' if shift is 0? Or 'shl' if we - line 987: // TODO should we convert this to an AND if the RHS is constant? - line 1818: // TODO: If only low elt lower SQRT to FSQRT (with rounding/exceptions - line 1911: // TODO: Add fmaddsub support? llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp (7 lines): - line 250: // TODO: What about other languages? - line 333: // FIXME: Should report this for all address spaces - line 369: // TODO: Emit Arg.mActualAccQual. - line 634: // TODO: What about other languages? - line 732: // FIXME: Need to distinguish in memory alignment from pointer alignment. - line 777: // TODO: Emit Arg[".actual_access"]. - line 873: // FIXME: The metadata treats the minimum as 16? llvm/include/llvm/Analysis/TargetTransformInfoImpl.h (7 lines): - line 127: // FIXME: These should almost certainly not be handled here, and instead - line 466: // FIXME: A number of transformation tests seem to require these values - line 477: // FIXME: Unlikely to be true for CodeSize. - line 871: // FIXME: Need to take absolute value for negative stride case. - line 926: // TODO: handle scalable vectors - line 956: // FIXME: Unlikely to be true for anything but CodeSize. - line 1085: // TODO: Also handle ICmp/FCmp constant expressions. llvm/lib/Transforms/IPO/FunctionSpecialization.cpp (7 lines): - line 88: // TODO: This needs checking to see the impact on compile-times, which is why - line 200: // TODO: Generalize for any read only arguments. - line 421: // FIXME: Only one argument per function. - line 512: // TODO: Any other instructions to be added here? - line 633: // TODO 1: currently it won't specialize if there are over the threshold of - line 638: // TODO 2: this currently does not support constants, i.e. integer ranges. - line 844: // FIXME: The solver may make changes to the function here, so set llvm/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp (7 lines): - line 191: // FIXME: We also need to handle big values here, but it's - line 279: // FIXME: There are no test cases covering this function. - line 281: // See FIXME at CodeViewDebug.cpp : CodeViewDebug::lowerTypeEnum. - line 300: Streamer->emitIntValue(Value, 4); // FIXME: Why not 8 (size of quadword)? - line 301: incrStreamedLen(6); // FIXME: Why not 10 (8 + 2)? - line 322: // FIXME: There are no test cases covering this block. - line 326: incrStreamedLen(6); // FIXME: Why not 10 (8 + 2)? clang-tools-extra/clangd/refactor/tweaks/DefineOutline.cpp (7 lines): - line 49: // FIXME: This is shared with define inline, move them to a common header once - line 112: // FIXME: Make the function take a parameter to return only the function body, - line 143: // FIXME: Drop attributes in function signature. - line 299: // FIXME: This selection can be made smarter by looking at the definition - line 376: // FIXME: We might want to consider moving method definitions below class - line 421: // FIXME: Maybe we should consider creating the implementation file if it - line 445: // FIXME: We should also get rid of inline qualifier. llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp (7 lines): - line 120: return nullptr; // FIXME: could perform constant-folding. - line 125: // FIXME: zero shift amount is also legal here, but we can't *easily* check - line 346: // TODO: Remove the one-use check if the other logic operand (Y) is constant. - line 415: // FIXME: Should this get moved into SimplifyDemandedBits by saying we don't - line 1061: // TODO: Consolidate with the more general transform that starts from shl - line 1163: // TODO: Generalize to allow more than just half-width shifts? - line 1345: // FIXME: iff X is already masked, we don't need the one-use check. llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp (7 lines): - line 557: // FIXME: With a proper cost model we should be able to do it. - line 887: // FIXME: This function is used by LoopUnroll and LoopUnrollAndJam, but consumes - line 1232: // TODO: Relax for multiple exits. - line 1245: // TODO: This is quite conservative. In practice, convergent_op() - line 1298: // TODO: This decision should probably be pushed up into - line 1425: // FIXME: Loop passes are required to preserve domtree, and for now we just - line 1445: // TODO: It would make more sense for this function to take the optionals clang/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp (7 lines): - line 61: // TODO: Visit array new and mallocs for arrays. - line 76: // TODO: Figure out why we are going through declarations and not only - line 84: // TODO: Support other combinations of base classes and fields. - line 127: // TODO: Recurse into the fields to see if they have excess padding. - line 132: // TODO: Figure out why we are going through declarations and not only - line 154: // TODO: Handle more base class scenarios. - line 325: // TODO: make this show up better in the console output and in lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp (7 lines): - line 541: // TODO: We should consider making the switch above exhaustive to simplify - line 1063: // FIXME do something with these failures that's - line 1233: // FIXME This is fixing some even uglier behavior but we - line 1422: // TODO: implement DW_TAG_inheritance type parsing. - line 2672: // FIXME: Remove the workarounds below and make this const. - line 2678: // FIXME: Make Clang ignore Objective-C accessibility for expressions - line 2845: // FIXME: This check should verify that this is indeed an artificial member llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp (7 lines): - line 14: // FIXME: This sanitizer does not yet handle scalable vectors - line 1233: // FIXME: It would be cleaner to instead attach relevant metadata to the globals - line 1618: // FIXME: Metadata should be attched directly to the global directly instead - line 1982: // FIXME: Metadata should be attched directly to the global directly instead - line 2001: // FIXME: We can instrument comdat globals on ELF if we are using the - line 2494: // FIXME: Metadata should be attched directly to the global directly instead - line 3015: // FIXME: remove once the bug 11395 is fixed. llvm/lib/CodeGen/TwoAddressInstructionPass.cpp (7 lines): - line 294: // FIXME: Sometimes tryInstructionTransform() will add instructions and - line 607: // FIXME: - line 851: // FIXME: Needs more sophisticated heuristics. - line 894: if (NumVisited > 10) // FIXME: Arbitrary limit to reduce compile time cost. - line 913: // FIXME: This may be too conservative. It's ok if the instruction - line 1068: if (NumVisited > 10) // FIXME: Arbitrary limit to reduce compile time cost. - line 1193: // FIXME: This assumes that the new instruction's operands are in the clang-tools-extra/clang-move/Move.cpp (7 lines): - line 30: // FIXME: Move to ASTMatchers. - line 66: // FIXME: figure out why this is necessary. - line 99: // FIXME: getCanonicalName might fail to get real path on VFS. - line 298: // FIXME: this is a bit hacky to get ReadToEndOfLine work. - line 319: // FIXME: Don't delete a preceding comment, if there are no other entities - line 440: // FIXME: Don't add empty lines between using declarations. - line 768: // FIXME: Minimize the include path like clang-include-fixer. clang/lib/Sema/SemaExprMember.cpp (7 lines): - line 301: // FIXME: Share logic with ExtVectorElementExpr::containsDuplicateElements, - line 302: // see FIXME there. - line 304: // FIXME: This logic can be greatly simplified by splitting it along - line 867: // FIXME: these are somewhat meaningless - line 1067: // FIXME: diagnose the presence of template arguments now. - line 1410: // FIXME: For a c-style function nested inside an objc implementation - line 1597: // FIXME: this expr should store IsArrow. openmp/runtime/src/kmp_lock.cpp (7 lines): - line 2714: __kmp_acquire_hle_lock(lck, gtid); // TODO: add checks - line 2727: return __kmp_release_hle_lock(lck, gtid); // TODO: add checks - line 2736: return __kmp_test_hle_lock(lck, gtid); // TODO: add checks - line 3454: int __kmp_num_locks_in_block = 1; // FIXME - tune this value - line 3776: int __kmp_num_locks_in_block = 1; // FIXME - tune this value - line 3875: __kmp_release_lock(&__kmp_global_lock, gtid); // AC: TODO move this line upper - line 3943: // FIXME - we are iterating through a list of (pointers to) objects of type clang/lib/Tooling/Tooling.cpp (7 lines): - line 71: // FIXME: This file contains structural duplication with other parts of the - line 249: // FIXME: Should '.\\' be accepted on Win32? - line 523: // FIXME: Make the compilation database interface more explicit about the - line 533: // FIXME: chdir is thread hostile; on the other hand, creating the same - line 565: // FIXME: On linux, GetMainExecutable is independent of the value of the - line 570: // FIXME: We need a callback mechanism for the tool writer to output a - line 578: // FIXME: Diagnostics should be used instead. llvm/include/llvm/Transforms/IPO/IROutliner.h (7 lines): - line 334: // TODO: Determine a scheme to resolve when the labels are similar enough. - line 336: // TODO: Handle allocas. - line 350: // TODO: Handle specific intrinsics individually from those that can be - line 361: // TODO: Handle FreezeInsts. Since a frozen value could be frozen inside - line 365: // TODO: We do not current handle similarity that changes the control flow. - line 367: // TODO: We do not current handle similarity that changes the control flow. - line 369: // TODO: Handle interblock similarity. llvm/lib/Analysis/StackSafetyAnalysis.cpp (7 lines): - line 187: // TODO: describe return value as depending on one or more of its arguments. - line 193: // TODO: Consider different printout format after - line 447: // FIXME: Process parameters correctly. This is a leak only if we return - line 495: // FIXME: consult devirt? - line 813: // FIXME: Simplify printing and remove copying here. - line 837: // FIXME: This is needed only to preserve calls in print() results. - line 1043: // FIXME: Lookup Module Summary. lldb/tools/debugserver/source/MacOSX/MachProcess.mm (7 lines): - line 381: // FIXME: What is the FBS equivalent of BKSApplicationStateMonitor - line 1518: // FIXME: Shouldn't we use the launch flavor we were started with? - line 2051: // TODO: clear software watchpoints if we implement them - line 2156: // TODO: Add software watchpoints by doing page protection tricks. - line 3383: // TODO: Verify if we can set the working directory back immediately - line 3397: // TODO: Verify if we can set the working directory back immediately - line 3866: // FIXME: Should we silently eat an argument that we can't convert into a clang/lib/CodeGen/CGDeclCXX.cpp (7 lines): - line 80: // FIXME: __attribute__((cleanup)) ? - line 130: // FIXME: On addr space mismatch we are passing NULL. The generation - line 409: // FIXME: For the TLS case, collect and use profiling information to - line 548: // FIXME: Should we support init_priority for thread_local? - line 549: // FIXME: We only need to register one __cxa_thread_atexit function for the - line 589: // FIXME: Do we need to restrict this to ELF and Wasm? - line 702: // FIXME: Some more work might be needed to handle destructors correctly. clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h (7 lines): - line 554: // TODO: defer actual comparison to LiteralT - line 1336: // TODO: implement CFG comparisons - line 1395: // TODO: implement CFG comparisons - line 1447: // TODO: implement CFG comparisons - line 1639: // TODO: implement CFG comparisons - line 1707: // TODO: set entry and exit! - line 1769: // TODO: implement CFG comparisons llvm/lib/CodeGen/MachineLICM.cpp (7 lines): - line 478: // FIXME: For now, avoid instructions with multiple defs, unless - line 504: // operands. FIXME: Consider unfold load folding instructions. - line 536: // FIXME: That means a reload that're reused in successor block(s) will not - line 839: /// FIXME: Figure out a way to consider 'RegSeen' from all code paths. - line 854: // FIXME: It seems bad to use RegSeen only for some of these calculations. - line 946: // FIXME: If targets would like to look through instructions that aren't - line 1180: // FIXME: If there are long latency loop-invariant instructions inside the llvm/lib/Transforms/Scalar/Reassociate.cpp (7 lines): - line 273: // FIXME: It's not safe to lower a unary FNeg into a FMul by -1.0. - line 337: // TODO: Reduce the weight by exploiting nsw/nuw? - line 352: // TODO: Reduce the weight by exploiting nsw/nuw? (Could do much better than - line 541: #if 0 // TODO: Re-enable once PR13021 is fixed. - line 1427: // TODO: Support non-splat vectors. - line 1769: // FIXME: Have Ops be (ValueEntry, Multiplicity) pairs, simplifying this. - line 2053: // TODO: This could look through floating-point casts. clang/include/clang/ASTMatchers/ASTMatchersInternal.h (7 lines): - line 501: /// FIXME: Document the requirements this imposes on matcher - line 694: /// FIXME: Find a better name. - line 707: /// FIXME: Currently we only allow Stmt and Decl nodes to start a traversal. - line 781: // FIXME: Implement support for BindKind. - line 1087: // FIXME: We desugar elaborated types. This makes the assumption that users - line 1444: // TODO: Use std::apply from c++17 - line 1970: // FIXME: unify ClassTemplateSpecializationDecl and TemplateSpecializationType's clang/unittests/AST/ASTImporterODRStrategiesTest.cpp (6 lines): - line 597: // FIXME: These fail on Windows. - line 630: // FIXME: Make VarTemplate tests work. - line 640: // FIXME: Make VarTemplateSpec tests work. - line 645: // FIXME: These fail on Windows. - line 678: // FIXME: Make VarTemplate tests work. - line 688: // FIXME: Make VarTemplateSpec tests work. llvm/lib/CodeGen/GlobalMerge.cpp (6 lines): - line 105: // FIXME: This is only useful as a last-resort way to disable the pass. - line 130: // FIXME: this could be a transitional option, and we probably need to remove - line 143: // FIXME: Infer the maximum possible offset depending on the actual users - line 152: /// FIXME: This could learn about optsize, and be used in the cost model. - line 223: // FIXME: Find better heuristics - line 277: // FIXME: Grouping uses by function is way too aggressive, so we should have clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp (6 lines): - line 1126: // TODO: Add support for global variables on the device after declare target - line 1409: // FIXME: We should use the variables actual alignment as an argument. - line 1534: // TODO: Is that needed? - line 3477: // TODO: We should pass the if condition to the runtime function and do the - line 3661: // TODO: implement aupport for user-defined allocators. - line 3940: // FIXME: nvlink does not handle weak linkage correctly (object with the llvm/lib/Target/Mips/MipsInstrInfo.cpp (6 lines): - line 57: // FIXME: This appears to be dead code. - line 653: // FIXME: Certain atomic sequences on mips64 generate 32bit references to - line 900: // TODO: Special MIPS instructions that need to be described separately. - line 915: // TODO: Handle cases where the Reg is sub- or super-register of the - line 926: // TODO: Handle cases where Reg is a super- or sub-register of the - line 942: // TODO: Handle case where Sop1 is a frame-index. llvm/include/llvm/CodeGen/SelectionDAG.h (6 lines): - line 1186: /// FIXME: Remove once transition to Align is over. - line 1204: /// FIXME: Remove once transition to Align is over. - line 1236: /// FIXME: Remove once transition to Align is over. - line 1270: /// FIXME: Remove once transition to Align is over. - line 1296: /// FIXME: Remove once transition to Align is over. - line 2028: /// FIXME: Remove once transition to Align is over. polly/lib/Transform/ManualOptimizer.cpp (6 lines): - line 93: // TODO: Isl's codegen also supports unrolling by isl_ast_build via - line 117: // TODO: Make it possible to selectively fission substatements. - line 118: // TODO: Apply followup loop properties. - line 119: // TODO: Instead of fission every statement, find the maximum set that does - line 234: // TODO: Works only for original loop; for transformed loops, should track - line 246: // FIXME: If there are more than one transformation in the LoopMD (making llvm/lib/Analysis/MemoryBuiltins.cpp (6 lines): - line 71: // FIXME: certain users need more information. E.g., SimplifyLibCalls needs to - line 115: // TODO: Handle "int posix_memalign(void **, size_t, size_t)" - line 357: // FIXME: workaround for PR5130, this will be obsolete when a nobuiltin - line 432: // FIXME: Does it make sense to just return a failure value if the size won't - line 640: // TODO: How should this work with address space casts? We currently just drop - line 855: // TODO: implement evaluation of strdup/strndup llvm/lib/Support/VirtualFileSystem.cpp (6 lines): - line 415: // FIXME: handle symlinks that cross file systems - line 426: // FIXME: handle symlinks that cross file systems - line 942: // FIXME: errc::not_a_file? - line 1571: // FIXME: this is only for directories, what about files? - line 2111: if (!Result->getExternalRedirect()) // FIXME: errc::not_a_file? - line 2134: // FIXME: Update the status with the name and VFSMapped. llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp (6 lines): - line 72: const Align KernArgBaseAlign(16); // FIXME: Increase if necessary - line 76: // FIXME: Alignment is broken broken with explicit arg offset.; - line 122: // FIXME: Hack. We rely on AssertZext to be able to fold DS addressing - line 131: // FIXME: We can replace this with equivalent alias.scope/noalias - line 150: if (DoShiftOpt) { // FIXME: Handle aggregate types - line 214: // TODO: Convert noalias arg to !noalias clang/lib/AST/APValue.cpp (6 lines): - line 66: // FIXME: It's unclear where we're supposed to take the type from, and - line 292: // FIXME: Reduce the malloc traffic here. - line 788: // FIXME: If CastToBase is non-0, we should prefix the output with - line 850: // FIXME: This is not enough to unambiguously identify the member in a - line 1102: // FIXME: These should be modeled as having the - line 1104: // FIXME: If we permit Objective-C object literals in template arguments, clang/include/clang/AST/DeclCXX.h (6 lines): - line 306: /// FIXME: This is wasted space for a union. - line 523: // FIXME: Does injected class name need to be in the redeclarations chain? - line 750: // FIXME: Proposed fix to core wording issue: if a class inherits - line 2671: // FIXME: Don't allocate storage for these except in the first declaration - line 2954: // FIXME: Could omit 'Key' in name. - line 3493: // FIXME: This logic belongs in Sema. mlir/lib/Bindings/Python/IRAttributes.cpp (6 lines): - line 204: // TODO: Rework error reporting once diagnostic engine is exposed - line 353: // TODO: Support construction of string elements. - line 501: // TODO: Currently crashes the program. - line 569: // TODO: Currently crashes the program. - line 668: // TODO: consider caching the type properties in the constructor to avoid - line 780: // TODO: consider caching the type properties in the constructor to avoid compiler-rt/lib/sanitizer_common/sanitizer_solaris.cpp (6 lines): - line 113: // FIXME: There's only _ftruncate64 beginning with Solaris 11. - line 183: // FIXME: This might be wrong: _getdents doesn't take a struct linux_dirent *. - line 193: // FIXME: This might be wrong: _sigfillset doesn't take a - line 199: // FIXME: This might be wrong: _sigprocmask doesn't take __sanitizer_sigset_t *. - line 216: // FIXME: No internal variant. - line 222: // FIXME: implement actual blocking. clang/include/clang/Sema/DeclSpec.h (6 lines): - line 161: /// FIXME: This routine should be used very, very rarely, in cases where we - line 323: // FIXME: Attributes should be included here. - line 649: /// TODO: use a more general approach that still allows these - line 906: // FIXME: These two are unrelated and mutually exclusive. So perhaps - line 2074: // FIXME: It's not clear that the proposal meant to allow file-scope - line 2399: // FIXME: sizeof(...) permits an expression. mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp (6 lines): - line 236: // TODO: there are cases where we may still want to pad to larger sizes. - line 288: // TODO: Add support for scf.parallel and affine.for loops. - line 371: // TODO: remove hasIndexSemantics check once index ops are supported. - line 683: // TODO: We cannot use root update here. This pattern is creating other ops, - line 990: // TODO: dropDim 1-liner helper. - line 1076: // TODO: dropDim 1-liner helper. clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp (6 lines): - line 207: // FIXME: Really use a short string. - line 225: // FIXME: Add support for InsertFromRange and BeforePreviousInsertion. - line 531: // FIXME: Will be used by a later planned change. - line 541: // TODO: Emit an error here. - line 558: // TODO: Emit an error here. - line 714: // FIXME: handle blocks, which have no name. llvm/lib/DWARFLinker/DWARFLinkerDeclContext.cpp (6 lines): - line 48: // FIXME: dsymutil-classic compat: We should bail out here if we - line 93: // FIXME: For dsymutil-classic compatibility. I think uniquing within - line 122: // FIXME: dsymutil-classic compatibility. I'd rather not - line 149: // FIXME: dsymutil-classic won't unique the same type presented - line 154: // FIXME: dsymutil-classic compatibility: when we don't have a name, - line 180: // FIXME: dsymutil-classic compatibility. Union types aren't llvm/lib/CodeGen/MachineInstr.cpp (6 lines): - line 222: // FIXME: Allow mixed explicit and implicit operands on inline asm. - line 224: // implicit-defs, but they must not be moved around. See the FIXME in - line 350: // FIXME: Maybe we should make the symbols in the extra info mutable? - line 459: // TODO: We could fully implement merge semantics here if needed. - line 1255: // FIXME: Modify API to hide this math from "user" - line 1853: // TODO: DBG_LABEL llvm/lib/Transforms/Vectorize/VPlan.h (6 lines): - line 317: /// FIXME: The vector preheader should also be modeled in VPlan, so any code - line 841: /// TODO: We currently execute only per-part unless a specific instance is - line 856: // TODO: we can use attributes of the called function to rule out memory - line 1549: /// TODO: We currently execute only per-part unless a specific instance is - line 1856: // FIXME: DominatorTreeBase is doing 'A->getParent()->front()'. 'front' is a - line 2168: // TODO: Introduce a specific representation for external definitions in mlir/lib/Dialect/Affine/IR/AffineOps.cpp (6 lines): - line 248: // TODO: getAffineScope should be publicly exposed for affine passes/utilities. - line 1004: // TODO: Check that map operands are loop IVs or symbols. - line 1170: // TODO: Check that map operands are loop IVs or symbols. - line 1371: // TODO: improve error message when SSA value is not of index type. - line 1666: /// TODO: This should be moved into the folding hook. - line 2493: // TODO: Fold more cases: llvm/lib/CodeGen/RegisterPressure.cpp (6 lines): - line 262: /// TODO: Add support for pressure without LiveIntervals. - line 466: /// FIXME: always ignore tied opers - line 773: // TODO: consider earlyclobbers? - line 996: /// FIXME: comparing each element of the old and new MaxPressure vectors here is - line 1100: // FIXME: The snapshot heap space should persist. But I'm planning to - line 1306: // FIXME: allow the caller to pass in the list of vreg uses that remain mlir/lib/Dialect/SPIRV/IR/SPIRVDialect.cpp (6 lines): - line 76: // TODO: Enable inlining structured control flows with return. - line 80: // TODO: we need to filter OpKill here to avoid inlining it to - line 351: // TODO: Reorder methods to be utilities first and parse*Type - line 459: // TODO: Further verify that the element type can be sampled - line 630: // TODO: This function is quite lengthy. Break it down into smaller chunks. - line 1217: // TODO: figure out a way to generate the description from the mlir/lib/Dialect/Linalg/ComprehensiveBufferize/SCFInterfaceImpl.cpp (6 lines): - line 45: // TODO: For better bufferization results, this could return `true` only if - line 59: // TODO: Add bufferization support when needed. scf.execute_region should be - line 93: // TODO: For better bufferization results, this could return `true` only if - line 220: // TODO: Consider doing sth. like isValueWritten. - line 332: // TODO: Evolve toward matching ReturnLike ops. Check for aliasing values that - line 351: // TODO: this could get resolved with copies but it can also turn into llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp (6 lines): - line 210: // FIXME: See the allocation of EC in initialize(). - line 232: // FIXME: Currently we allocate EC each time because we don't have - line 420: // FIXME: Some of these could be permitted with special handling, - line 422: // FIXME: There is no simple and maintainable way to express a set - line 820: // FIXME: When inserting a swap, we should check whether SrcReg is - line 836: // FIXME: Additional opportunities will be phased in with subsequent clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp (6 lines): - line 528: // FIXME: Constructors to placement arguments of operator new - line 669: EvalCallOptions CallOpts; // FIXME: We won't really need those. - line 763: // FIXME: We don't handle constructors or destructors for arrays properly. - line 820: // FIXME: We don't handle constructors or destructors for arrays properly. - line 907: // FIXME: Do not inline variadic calls. - line 999: // FIXME: this checks both static and dynamic properties of the call, which lldb/source/Target/RegisterContextUnwind.cpp (6 lines): - line 180: // FIXME: Detect eDebuggerFrame here. - line 535: // FIXME this may need to be an architectural-dependent behavior; if so we'll - line 574: // FIXME: Detect eDebuggerFrame here. - line 1136: llvm_unreachable("FIXME debugger inferior function call unwind"); - line 1178: llvm_unreachable("FIXME debugger inferior function call unwind"); - line 1682: // FIXME UnwindPlan::Row types atDWARFExpression and isDWARFExpression are clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp (6 lines): - line 1121: // TODO #1: VisitBinaryOperator implementation might not make a good - line 1126: // TODO #2: We didn't go into the nested expressions before, so it - line 1256: // FIXME: Once SValBuilder supports unary minus, we should use SValBuilder to - line 1436: // TODO: We basically, limit the resulting range from below, but don't do - line 2043: // FIXME: As of now, we support only equivalence classes of the same type. - line 2531: // FIXME: Handle <=> here. llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp (6 lines): - line 477: // TODO: Actually report errors helpfully. - line 485: // TODO: Actually report errors helpfully. - line 491: // TODO: Actually report errors helpfully. - line 506: // TODO: Actually report errors helpfully. - line 542: // FIXME: Limit the amount of memory that can be preallocated? - line 591: // FIXME: Error out if there are unresolved relocations. clang-tools-extra/clangd/Protocol.cpp (6 lines): - line 472: // FIXME: workaround for older gcc/clang - line 484: // FIXME: workaround for older gcc/clang - line 492: // FIXME: workaround for older gcc/clang - line 616: // FIXME: workaround for older gcc/clang - line 753: // FIXME: workaround for older gcc/clang - line 818: // FIXME: workaround for older gcc/clang llvm/lib/MC/MCMachOStreamer.cpp (6 lines): - line 199: // FIXME: Cleanup this code, these bits should be emitted based on semantic - line 355: // FIXME: Cleanup this code, these bits should be emitted based on semantic - line 361: // FIXME: This requires -dynamic. - line 388: // FIXME: This requires -dynamic. - line 394: // FIXME: 'as' enforces that this is defined and global. The manual claims - line 420: // FIXME: Darwin 'as' does appear to allow redef of a .comm by itself. llvm/include/llvm/IR/InstrTypes.h (6 lines): - line 1062: // FIXME: these are redundant if CmpInst < BinaryOperator - line 1493: // TODO: remove non-AtIndex versions of these methods. - line 1664: // FIXME: Once this API is no longer duplicated in `CallSite`, rename this to - line 1705: // FIXME: Once this API is no longer duplicated in `CallSite`, rename this to - line 1711: // FIXME: Once this API is no longer duplicated in `CallSite`, rename this to - line 1718: // FIXME: Once this API is no longer duplicated in `CallSite`, rename this to clang/lib/CodeGen/CodeGenTypes.cpp (6 lines): - line 55: // FIXME: We probably want to make more tweaks to the printing policy. For - line 64: // FIXME: We should not have to check for a null decl context here. - line 71: // FIXME: We should not have to check for a null decl context here. - line 658: "FIXME: We only handle trivial array types so far!"); - line 667: "FIXME: We only handle trivial array types so far!"); - line 860: // FIXME: This is hugely overconservative. llvm/lib/Analysis/CGSCCPassManager.cpp (6 lines): - line 333: // FIXME: If we ever start having RefSCC passes, we'll want to - line 673: // FIXME: It is pretty awkward to just drop the result here and assert that - line 861: // FIXME: We should accept a PreservedAnalysis from the CG updater so that if - line 981: // TODO: This only allows trivial edges to be added for now. - line 994: // TODO: This only allows trivial edges to be added for now. - line 1157: // FIXME: We should really do a 'clear' here to forcibly release llvm/lib/Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp (6 lines): - line 54: // TODO: Make sure fmin_legacy/fmax_legacy don't canonicalize - line 65: // FIXME: Should be able to have 2 separate matchdatas rather than custom - line 81: // FIXME: Combines should have subtarget predicates, and we shouldn't need - line 86: // FIXME: Type predicate on pattern - line 170: // TODO: We could try to match extracting the higher bytes, which would be - line 276: // TODO: Simplify demanded bits. lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp (6 lines): - line 528: // FIXME: We are not able to determine variable's compile unit. - line 537: // FIXME: A `file static` or `global constant` variable appears both in - line 541: // FIXME: 'local constant', for example, const char var[] = "abc", declared - line 740: // TODO: Resolve variables - line 1131: // FIXME: We are not able to determine the compile unit. - line 1170: // FIXME: We are not able to determine the compile unit. llvm/unittests/IR/ConstantRangeTest.cpp (6 lines): - line 1099: // TODO: This should be return [-2, 0] - line 1440: EXPECT_EQ(Full.shl(Some), Full); // TODO: [0, (-1 << 0xa) + 1) - line 1448: EXPECT_EQ(One.shl(Some), Full); // TODO: [0xa << 0xa, 0) - line 1449: EXPECT_EQ(One.shl(Wrap), Full); // TODO: [0xa, 0xa << 14 + 1) - line 1450: EXPECT_EQ(Some.shl(Some), Full); // TODO: [0xa << 0xa, 0xfc01) - line 1451: EXPECT_EQ(Some.shl(Wrap), Full); // TODO: [0xa, 0x7ff << 0x5 + 1) llvm/lib/Target/XCore/XCoreISelLowering.cpp (6 lines): - line 88: setBooleanVectorContents(ZeroOrOneBooleanContent); // FIXME: Is this correct? - line 212: // FIXME: Remove these when LegalizeDAGTypes lands. - line 251: // FIXME there is no actual debug info here - line 325: // FIXME there isn't really debug info here - line 1105: /// TODO: isTailCall, sret. - line 1258: /// TODO: sret clang/lib/Format/BreakableToken.cpp (6 lines): - line 172: // FIXME: Reduce unit test case. - line 238: // FIXME: Correctly measure the length of whitespace in Split.second so it - line 409: // FIXME: We could, probably, align them to current indentation level, but - line 545: // FIXME: This should go into getRemainingLength instead, but we currently - line 862: // FIXME: Consider putting separate line comment sections as children to - line 1017: // FIXME: Decide whether we want to reflow non-regular indents: llvm/lib/Analysis/MustExecute.cpp (6 lines): - line 180: // TODO: If BB lies in an inner loop of CurLoop, this will traverse over all - line 233: // TODO: We only do it for exiting edges currently. We could use the - line 237: // TODO: If we somehow know the number of iterations in loop, the same - line 401: // TODO: merge these two routines. For the moment, we display the best - line 477: // TODO: Actually try to prove it is not. - line 478: // TODO: If maybeEndlessLoop is going to be expensive, cache it. clang/lib/AST/StmtPrinter.cpp (6 lines): - line 100: // FIXME: Cope better with odd prefix widths. - line 504: // FIXME: Implement MS style inline asm statement printer. - line 1208: case BuiltinType::Half: break; // FIXME: suffix? - line 1209: case BuiltinType::Ibm128: break; // FIXME: No suffix for ibm128 literal - line 2088: // FIXME: Attributes - line 2561: // TODO: Print something reasonable for a TypoExpr, if necessary. llvm/lib/Target/ARM/Thumb2SizeReduction.cpp (6 lines): - line 92: //FIXME: Disable CMN, as CCodes are backwards from compare expectations - line 98: // FIXME: adr.n immediate offset must be multiple of 4. - line 106: // FIXME: Do we need the 16-bit 'S' variant? - line 129: // FIXME: Clean this up after splitting each Thumb load / store opcode - line 735: // TODO if Operand 0 is not killed but Operand 1 is, then we could write - line 1094: // FIXME: Since post-ra scheduler operates on bundles, the CPSR kill clang/lib/Driver/ToolChains/MSVC.cpp (6 lines): - line 309: // FIXME: This really should be done once in the top-level program's main - line 1066: // FIXME: Try env vars (%WindowsSdkDir%, %UCRTVersion%) before going to registry. - line 1159: // FIXME: Should there be a dedicated /ucrtdir to override /winsdkdir? - line 1164: // FIXME: Try env vars (%UniversalCRTSdkDir%, %UCRTVersion%) before going to - line 1347: // FIXME: Don't guess drives and paths like this on Windows. - line 1361: // FIXME: There should probably be logic here to find libc++ on Windows. mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp (6 lines): - line 129: // TODO: Investigate whether mixing implicit and explicit indices - line 243: // TODO: use an interface/adaptor to avoid leaking position in - line 255: // TODO: use an interface/adaptor to avoid leaking position in - line 258: // TODO: Propagate RewriterBase everywhere. - line 286: // TODO: Instead of doing this, try to recover the ops used instead of the - line 390: // TODO: Propagate RewriterBase everywhere. llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp (6 lines): - line 543: // TODO: This might not be appropriate for big-endian MSA since BITCAST is - line 626: // TODO: This might not be appropriate for big-endian MSA since BITCAST is - line 657: // TODO: This might not be appropriate for big-endian MSA since BITCAST is - line 691: // TODO: This might not be appropriate for big-endian MSA since BITCAST is - line 1200: // FIXME: Implement the preferred sequence for MIPS64R6: - line 1231: // FIXME: This is the general constant synthesis problem. This code llvm/include/llvm/IR/PassManager.h (6 lines): - line 407: /// FIXME: The only reason the mixin type itself can't declare the Key value - line 453: // FIXME: figure out a way to move PassInstrumentationAnalysis into its own - line 478: // FIXME: These are equivalent to the default move constructor/move - line 601: /// FIXME: figure out a way to move PassInstrumentationAnalysis into its own - line 1189: /// FIXME: Make the above true for all of LLVM's actual passes, some still - line 1196: /// FIXME: Make the above true for all of LLVM's actual passes, some still clang-tools-extra/clangd/unittests/InlayHintTests.cpp (6 lines): - line 353: // FIXME: This is not implemented yet, but it would be a natural - line 406: // FIXME: Ideally we'd want to omit this. - line 482: // FIXME: We want to suppress scope specifiers - line 591: // FIXME: Dependent types do not work yet. - line 607: // FIXME: It would be nice to show "T" as the hint. - line 658: // FIXME: Low-hanging fruit where we could omit a type hint: llvm/utils/TableGen/FixedLenDecoderEmitter.cpp (6 lines): - line 760: // FIXME: We may be able to use the NumToSkip values to recover - line 976: // TODO: When InsnType is large, using uint64_t limits all fields to 64 bits - line 1179: // FIXME: emitDecoder() function can take a buffer directly rather than - line 1286: // FIXME: emitPredicateMatch() functions can take a buffer directly rather - line 1842: // FIXME: We'll need to have a way to manually override this as needed. - line 2005: // FIXME: For complex operands with custom decoders we can't handle tied llvm/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp (6 lines): - line 28: // TODO: move-begin. - line 130: // FIXME: This pass causes verification failures. - line 595: // FIXME: Simplify - line 674: // TODO to fix up jump table so later phase won't be confused. if - line 683: //FIXME: if not reducible flow graph, make it so ??? - line 923: // TODO: Simplify clang-tools-extra/clang-tidy/cppcoreguidelines/OwningMemoryCheck.cpp (6 lines): - line 24: // FIXME: Copied from 'NoMallocCheck.cpp'. Has to be refactored into 'util' or - line 209: // FIXME: The declaration of the variable that was deleted can be - line 224: // FIXME: `freopen` should be handled separately because it takes the filename - line 282: // FIXME: the expression from getInit has type 'void', but the type - line 320: // FIXME: FixitHint to rewrite the type of the initialized variable - line 355: // FIXME: Rewrite the return type as 'gsl::owner' clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp (6 lines): - line 98: // FIXME: Consider passing `Block` to `Analysis.typeErasedInitialElement()` - line 117: // FIXME: Evaluate other kinds of `CFGElement`. - line 138: // FIXME: Consider enforcing that `Cfg` meets the requirements that - line 157: // FIXME: Consider making the maximum number of iterations configurable. - line 158: // FIXME: Set up statistics (see llvm/ADT/Statistic.h) to count average number - line 190: // FIXME: Consider evaluating unreachable basic blocks (those that have a mlir/lib/Conversion/VectorToGPU/VectorToGPU.cpp (6 lines): - line 85: // TODO: Support transpose once it is added to GPU dialect ops. - line 93: // TODO: support 0-d corner case. - line 102: // TODO: Support transpose once it is added to GPU dialect ops. - line 183: // TODO: We should refine this to only care about the region arguments being - line 301: // TODO: support 0-d corner case. - line 327: // TODO: Change the GPU dialect to abstract the layout at the this level and llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp (6 lines): - line 474: // FIXME: This is a bit conservative/simple - it emits negative values always - line 669: // FIXME: Decide whether to implement this for non-C++ languages. - line 1014: // TODO: Do we care about size for enum forward declarations? - line 1526: // FIXME: This type should be passed down from the front end - line 1533: // FIXME: Should this really be such a loose cast? - line 1721: // FIXME: We could omit private if the parent is a class_type, and compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cpp (6 lines): - line 91: // FIXME: Make these hash table accesses thread-safe. The races here are benign: - line 110: // FIXME: Pick a random entry from the probe sequence to evict rather than - line 136: // FIXME: Curtail the recursion if this base can't possibly contain the - line 143: // FIXME: OffsetHere is the offset in the vtable of the virtual base - line 176: // FIXME: Can't handle virtual bases yet. - line 213: // FIXME: Perform these checks more cautiously. llvm/lib/Support/APFloat.cpp (6 lines): - line 44: /// TODO: If clang source code is ever allowed to use constexpr in its own - line 119: TODO: Implement all operations in semPPCDoubleDouble, and delete these - line 2513: /* FIXME: should this just take a const APInt reference? */ - line 3734: // FIXME: this probably shouldn't use 'round half up'. - line 3818: // FIXME: Using a formula based purely on the precision is conservative; - line 3893: // TODO: don't do more precise calculations above than are required. clang/tools/libclang/CXLoadedDiagnostic.cpp (6 lines): - line 70: // FIXME: Fail more softly if the diagnostic level is unknown? - line 113: // FIXME: possibly refactor with logic in CXStoredDiagnostic. - line 323: // FIXME: Why do we care about long strings? - line 331: // FIXME: Why do we care about long strings? - line 341: // FIXME: Why do we care about long strings? - line 367: // FIXME: Why do we care about long strings? llvm/lib/Transforms/Vectorize/VPlanSLP.cpp (6 lines): - line 51: // FIXME: Currently this is used to signal we hit instructions we cannot - line 87: // FIXME: Differing widths/opcodes can be handled by inserting additional - line 89: // FIXME: Deal with non-primitive types. - line 119: // TODO: we only have to forbid instructions writing to memory that could - line 279: // FIXME: Avoid visiting the same operands multiple times. - line 344: // TODO: handle this case llvm/tools/llvm-readobj/ARMEHABIPrinter.h (6 lines): - line 383: // TODO: Actually report errors helpfully. - line 449: // TODO: handle failure. - line 521: // TODO: handle failure. - line 555: // FIXME: For a relocatable object ideally we might want to: - line 607: // TODO: handle failure. - line 633: // TODO: handle failure. clang/lib/Lex/PPMacroExpansion.cpp (6 lines): - line 246: // FIXME: Remove the defined-in-system-headers check. clang's limits.h - line 539: // FIXME: We lose macro args info with delayed callback. - line 926: // TODO: See if this can be generalized to angle brackets for templates - line 1262: // FIXME: Factor out duplication with - line 1668: // FIXME: This is inconsistent; we usually suggest detecting - line 1760: // FIXME: Should we accept "-R..." flags here, or should that be clang/lib/StaticAnalyzer/Checkers/WebKit/UncountedCallArgsChecker.cpp (6 lines): - line 74: // FIXME: Also check variadic function parameters. - line 75: // FIXME: Also check default function arguments. Probably a different - line 79: // TODO: attributes. - line 87: // FIXME: more complex types (arrays, references to raw pointers, etc) - line 107: // FIXME: Check the value. - line 154: // FIXME: Most/all of these should be implemented via attributes. llvm/lib/Transforms/Utils/LoopUnroll.cpp (6 lines): - line 81: // TODO: Should these be here or in LoopUnroll? - line 369: // it in-place after the transformation, or entirely rebuild LCSSA. TODO: For - line 381: // FIXME: The implementation can be extended to work with more complicated - line 745: // TODO: We could fold these branches, but it would require much more - line 804: // TODO: For now we just recompute LCSSA for the outer loop in this case, but - line 832: // TODO: That potentially might be compile-time expensive. We should try llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTInfo.h (6 lines): - line 80: COMPPGM1(float_mode, compute_pgm_rsrc1_float_mode, FLOAT_MODE), // TODO: split float_mode - line 88: // TODO: bulky - line 89: // TODO: cdbg_user - line 98: COMPPGM2(enable_exception_msb, compute_pgm_rsrc2_excp_en_msb, EXCP_EN_MSB), // TODO: split enable_exception_msb - line 100: COMPPGM2(enable_exception, compute_pgm_rsrc2_excp_en, EXCP_EN), // TODO: split enable_exception - line 139: // TODO: control_directive clang/include/clang/Lex/Preprocessor.h (6 lines): - line 242: /// FIXME: Make sure the lifetime of Identifiers/Selectors *isn't* tied to - line 606: // FIXME: Find a spare bit on IdentifierInfo and store a - line 674: // FIXME: Incorporate module macros into the result of this. - line 756: // FIXME: CounterValue? - line 757: // FIXME: PragmaPushMacroInfo? - line 1134: // FIXME: Compute the set of active module macros at the specified location. lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp (6 lines): - line 1351: // TODO log - line 1359: // TODO log it once we setup structured data logging - line 1414: // TODO log. - line 1659: // TODO log - line 1666: // TODO log - line 1672: // TODO log clang/lib/Parse/ParseCXXInlineMethods.cpp (6 lines): - line 608: // FIXME: This should be done in ParseLexedMemberInitializer, not here. - line 985: // FIXME: Count angle brackets, and clear MightBeTemplateArgument - line 1040: // FIXME: If we support lambdas here, we'll need to set StopAtSemi to false - line 1073: // FIXME: Disambiguate these cases. Note that the latter case is probably - line 1231: // FIXME: A '<' can only start a template-id if it's preceded by an - line 1263: // FIXME: Support all forms of 'template' unqualified-id '<'. mlir/lib/Dialect/Affine/Utils/Utils.cpp (6 lines): - line 197: // Bail out early if the ifOp returns a result. TODO: Consider how to - line 229: // TODO: this could be customized in the future. - line 545: // TODO check only the paths from `parent` to `to`. - line 803: // TODO: more forwarding can be done when support for - line 805: // TODO: do general dead store elimination for memref's. This pass - line 845: // TODO: if the memref was returned by a 'call' operation, we clang/lib/Tooling/Refactoring/Rename/RenamingAction.cpp (6 lines): - line 84: // FIXME: Verify that the new name is valid. - line 147: // FIXME: A true local rename can use just one AtomicChange. - line 220: // FIXME: Support multi-piece names. - line 221: // FIXME: better error handling (propagate error out). - line 243: // FIXME: Merge with the above RenamingASTConsumer. - line 255: // FIXME: Apply AtomicChanges directly once the refactoring APIs are llvm/lib/Target/X86/X86FixupLEAs.cpp (6 lines): - line 339: // TODO: use a variant scheduling class to model the latency profile - line 601: // TODO: Do we need the super register implicit use? - line 623: // TODO: Do we need the super register implicit use? - line 633: // TODO: Do we need the super register implicit use? - line 801: // TODO: Do we need the super register implicit use? - line 858: // FIXME: Handle LEA64_32r. clang/lib/Format/UnwrappedLineFormatter.cpp (6 lines): - line 265: // FIXME: TheLine->Level != 0 might or might not be the right check to do. - line 577: // FIXME: If an option to allow short exception handling clauses on a single - line 627: // FIXME: Consider an option to allow short exception handling clauses on - line 629: // FIXME: This isn't covered by tests. - line 630: // FIXME: For catch, __except, __finally the first token on the line - line 1070: // FIXME: Add diagnostic? llvm/include/llvm/IR/DataLayout.h (6 lines): - line 61: // FIXME: Currently the DataLayout string carries a "preferred alignment" - line 372: /// FIXME: The defaults need to be removed once all of - line 378: /// FIXME: The defaults need to be removed once all of - line 410: /// FIXME: The defaults need to be removed once all of - line 524: /// FIXME: Deprecate this function once migration to Align is over. - line 547: /// FIXME: Deprecate this function once migration to Align is over. clang/lib/Tooling/Syntax/Tokens.cpp (6 lines): - line 298: return {}; // FIXME: support macro arguments. - line 320: return {}; // FIXME: support macro arguments. - line 378: // FIXME: Handle multi-file changes by trying to map onto a common root. - line 537: !T.hasUCN()) { // FIXME: support needsCleaning and hasUCN cases. - line 617: // FIXME: handle directives like #pragma, #include, etc. - line 631: /// FIXME: also properly record: lldb/unittests/Utility/ArchSpecTest.cpp (6 lines): - line 320: // FIXME: This is surprisingly not equivalent to "x86_64-*-*". - line 340: // FIXME: This looks unintuitive and we should investigate whether - line 348: // FIXME: See above, though the extra environment complicates things. - line 354: // FIXME: The exact match also looks unintuitive. - line 361: // FIXME: The exact match also looks unintuitive. - line 423: // TODO: llvm::Triple::normalize treats the missing components from these llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp (6 lines): - line 115: // FIXME: There are many other MF/MFI fields we need to initialize. - line 121: // FIXME: This should be in the MachineVerifier, as the RegBankSelected - line 129: // FIXME: We could introduce new blocks and will need to fix the outer loop. - line 190: // FIXME: It would be nice to dump all inserted instructions. It's - line 307: // FIXME: FinalizeISel pass calls finalizeLowering, so it's called twice. - line 325: // FIXME: Should we accurately track changes? mlir/lib/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.cpp (6 lines): - line 202: // TODO add `create_zero` and `attach` operands - line 229: // TODO add `detach` operands - line 311: // TODO handle no_create, deviceptr and attach operands. - line 323: // TODO copyin readonly currenlty handled as copyin. Update when extension - line 336: // TODO copyout zero currenlty handled as copyout. Update when extension - line 350: // TODO create zero currenlty handled as create. Update when extension openmp/libomptarget/src/rtl.cpp (6 lines): - line 47: // TODO: add a configuration option for time granularity - line 59: // TODO: add env var for file output - line 261: // TODO: add more elaborate check. - line 295: // TODO: insert any other missing checks - line 481: // TODO: Remove RTL and the devices it manages if it's not used anymore? - line 482: // TODO: Write some RTL->unload_image(...) function? clang/include/clang/AST/ExprCXX.h (6 lines): - line 215: /// FIXME: Returns 0 for member pointer call exprs. - line 1977: /// FIXME: This interface is prone to being used incorrectly. - line 3568: /// FIXME: This could be in principle store as a trailing object. - line 3575: /// FIXME: could also be a template-id - line 4786: // FIXME: Dig out the actual operand or store it. - line 4863: // FIXME: Dig out the actual operand or store it. clang/lib/CodeGen/CodeGenAction.cpp (6 lines): - line 350: // TODO: use a fast content hash when available. - line 468: // TODO: Avoid copying files into memory. - line 472: // FIXME: Keep a file ID map instead of creating new IDs for each location. - line 612: // FIXME: Shouldn't need to truncate to uint32_t - line 813: // FIXME: we can't yet diagnose indirect calls. When/if we can, we - line 1084: // TODO: Unify this with ConvertBackendLocation() mlir/lib/Conversion/SCFToGPU/SCFToGPU.cpp (6 lines): - line 54: // TODO: Implement a cleaner solution, factoring out the "matching" logic - line 403: // TODO: Verify that this is a valid GPU mapping. - line 408: // TODO: Support reductions. - line 457: // TODO: Check that we do not assign bounds twice. - line 625: // TODO: This is only correct if there either is no further scf.parallel - line 652: // TODO: Handle region side effects properly. llvm/lib/Object/COFFObjectFile.cpp (6 lines): - line 200: // TODO: perhaps we need a new symbol type ST_Section. - line 334: // TODO: Report the error message properly. - line 632: // FIXME: Verify the section containing BaseRelocHeader has at least - line 657: // FIXME: Verify the section containing DebugDirectoryBegin has at least - line 1359: // FIXME: Handle errors. - line 1367: // FIXME: Handle errors. llvm/lib/Target/X86/X86CmovConversion.cpp (6 lines): - line 272: // TODO: Add support for X86::CMOVrm instructions. - line 273: // TODO: Add support for X86::SETcc instructions. - line 274: // TODO: Add support for CMOV-groups with non consecutive CMOV instructions. - line 327: // FIXME: We should model the cost of using an explicit MOV to handle - line 412: // TODO: Find a better way to estimate the latency of the branch instruction - line 793: // FIXME: We could potentially improve this by tracking whether the llvm/unittests/ExecutionEngine/MCJIT/MCJITMultipleModuleTest.cpp (6 lines): - line 24: // FIXME: ExecutionEngine has no support empty modules - line 67: // FIXME: ExecutionEngine has no support empty modules - line 190: // TODO: - line 347: // FIXME: this test case is not supported by MCJIT - line 368: // FIXME: this test case is not supported by MCJIT - line 389: // FIXME: this test case is not supported by MCJIT llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp (6 lines): - line 252: // FIXME: see if alignment helps. - line 1178: // FIXME: Annotate type tests with hotness. For now, mark these as hot - line 1743: // FIXME: do something smarter here. - line 2024: // FIXME: We should figure out what to do about the "function name" argument - line 2182: // FIXME: Only add live functions. - line 2311: // FIXME: Only add live functions. llvm/utils/gn/secondary/lldb/source/Commands/BUILD.gn (6 lines): - line 5: td_file = "Options.td" # FIXME: rename? - line 15: #"//lldb/source/Breakpoint", # FIXME: many-hop dependency cycle. - line 19: #"//lldb/source/Expression", # FIXME: 2-hop dependency cycle. - line 22: #"//lldb/source/Interpreter", # FIXME: Dependency cycle. - line 23: #"//lldb/source/Symbol", # FIXME: many-hop dependency cycle. - line 24: #"//lldb/source/Target", # FIXME: 2-hop dependency cycle. mlir/include/mlir/Analysis/Utils.h (6 lines): - line 38: // TODO: handle 'affine.if' ops. - line 61: // TODO: Identify and add different kinds of failures during slice computation. - line 112: // TODO: Cache 'isMaximal' so that we don't recompute it when the slice - line 212: // TODO: Change this API to take 'forOpA'/'forOpB'. - line 227: // TODO: Support computation slices with common surrounding loops. - line 349: // TODO: Replace this to exploit HyperRectangularSet. llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp (6 lines): - line 552: // FIXME: Handle VectorType. - line 1212: // TODO: this possibly can be reworked to avoid this cast at all. - line 1806: // FIXME: Ideally formLCSSAForInstructions (used in fixupLCSSAFormFor) - line 2266: // TODO: this is a very pessimistic cost modelling for Mul, - line 2275: // FIXME: should this ask the cost for Intrinsic's? - line 2316: // FIXME: this is conservatively correct, but might be overly pessimistic. compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp (5 lines): - line 610: CHECK_LE(count, arr_size - 1); // FIXME: make this more flexible. - line 827: // FIXME: most often sa_restorer is unset, however the kernel requires it - line 1838: // FIXME: Add support for FPU, microMIPS, DSP, MSA memory instructions. - line 2007: return UNKNOWN; // FIXME: Implement. - line 2018: // FIXME: Implement this. clang/lib/Basic/Targets/OSTargets.h (5 lines): - line 117: // FIXME: We should return 0 when building kexts. - line 227: // FIXME: This is wrong; the macro refers to the numerical values - line 720: // FIXME: Do not define _LONG_LONG when -fno-long-long is specified. - line 763: // FIXME: _LONG_LONG should not be defined under -std=c89. - line 770: // FIXME: __BOOL__ should not be defined under -std=c89. clang/lib/Tooling/Transformer/RangeSelector.cpp (5 lines): - line 63: // FIXME: handling of macros should be configurable. - line 78: // FIXME: handling of macros should be configurable. - line 212: // FIXME: extend this code to support cases like `operator +` or - line 246: // FIXME: make this available in the public API for users to easily create their - line 270: // FIXME: Change the following functions from being in an anonymous namespace clang/lib/CrossTU/CrossTranslationUnit.cpp (5 lines): - line 88: // FIXME: This class is will be removed after the transition to llvm::Error. - line 282: // TODO: Pass the SourceLocation of the CallExpression for more precise - line 293: // FIXME: Currenty we do not support CTU across C++ and C and across - line 489: // FIXME: The current implementation only supports loading decls with - line 776: // FIXME: Implement: Record such a context for every imported ASTUnit; lookup. polly/lib/CodeGen/IslExprBuilder.cpp (5 lines): - line 226: // TODO: We can truncate the result, if it fits into a smaller type. This can - line 429: // TODO: Review code and check that this calculation does not yield - line 452: // TODO: We can truncate the result, if it fits into a smaller type. This can - line 482: // TODO: Do we want to truncate the result? - line 572: // TODO: Document in isl itself, that the unconditionally evaluating the llvm/utils/lint/cpp_lint.py (5 lines): - line 6: # TODO: add unittests for the verifier functions: - line 36: # TODO: implement private headers - line 37: # TODO: implement gtest headers - line 38: # TODO: implement top-level llvm/* headers - line 39: # TODO: implement llvm/Support/* headers llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp (5 lines): - line 32: Size += 0; // TODO: Layout.C11Bytes - line 117: Layout.FileNameOffs = 0; // TODO: Fix this - line 118: Layout.Flags = 0; // TODO: Fix this - line 194: // TODO: Write C11 Line data - line 200: // TODO: Figure out what GlobalRefs substream actually is and populate it. llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp (5 lines): - line 226: // TODO: This default value follows MSan. DFSan may use a different value. - line 238: // TODO: track callsites. - line 792: // FIXME: should we propagate vfs::FileSystem to this constructor? - line 2507: // TODO: The ordering change follows MSan. It is possible not to change - line 2514: // TODO: The ordering change follows MSan. It is possible not to change flang/include/flang/Lower/IntrinsicCall.h (5 lines): - line 20: // TODO: Expose interface to get specific intrinsic function address. - line 21: // TODO: Handle intrinsic subroutine. - line 22: // TODO: Intrinsics that do not require their arguments to be defined - line 25: // TODO: Error handling interface ? - line 26: // TODO: Implementation is incomplete. Many intrinsics to tbd. llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp (5 lines): - line 173: llvm_unreachable("FIXME: switch statement ?"); - line 195: // TODO: Handle nested regions once we start generating the same. - line 202: // TODO: Predication and linearization need RPOT for every region. - line 212: // TODO: Handle nested regions once we start generating the same. - line 244: // FIXME: Predicator is currently computing the dominator information for the clang/include/clang/AST/DeclBase.h (5 lines): - line 622: // FIXME: We should track this in some way for source fidelity. - line 1831: /// context. FIXME: We could probably cache this value somewhere - line 2145: // TODO: Add reference and pointer types (with some appropriate proxy type) - line 2223: // TODO: Add reference and pointer types (with some appropriate proxy type) - line 2335: /// FIXME: This is very inefficient; replace uses of it with uses of mlir/lib/Dialect/SPIRV/Transforms/LowerABIAttributesPass.cpp (5 lines): - line 79: // TODO: This should in reality traverse the entry function - line 85: // TODO: Per SPIR-V spec: "Before version 1.4, the interface’s - line 175: // TODO: Non-entry point functions are not handled. - line 189: // TODO: For non-entry point functions, it should be legal - line 207: // TODO: This is loading value of the scalar into registers llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp (5 lines): - line 36: /// FIXME Currently this scheme does not support indirect call of setjmp, - line 220: /// TODO Switch to throwing and catching two values without using the struct - line 833: // FIXME 'invoke' to setjmp can happen when we use Wasm EH + Wasm SjLj, but - line 1183: // TODO Handle filters (= exception specifications). - line 1276: // FIXME 'invoke' to setjmp can happen when we use Wasm EH + Wasm SjLj, but llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp (5 lines): - line 247: // FIXME: Figure out when this can actually happen, and verify our - line 432: // FIXME: getFixupKindInfo() and getFixupKindNumBytes() could be fixed to - line 451: // FIXME: This isn't correct for AArch64. Just moving the "generic" logic - line 541: // FIXME: This should be in a separate file. - line 590: // FIXME: When opt-remarks are supported in MC, add a remark to notify clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp (5 lines): - line 49: // FIXME: Propagate the diagnostic if desired by the client. - line 71: // FIXME: This is a heuristic, its worth investigating the tradeoffs - line 94: // FIXME: A better heuristic might also consider the OS to account for - line 169: // FIXME: Handle PCM/PCH files. - line 170: // FIXME: Handle module map files. compiler-rt/lib/xray/xray_function_call_trie.h (5 lines): - line 118: // TODO: Include the compact histogram. - line 449: // TODO: Count the number of times we've seen CPU migrations. - line 459: // TODO: Update the histogram for the node. - line 508: // TODO: Figure out what to do if we fail to allocate any more stack - line 575: // TODO: Update the histogram as well when we have it ready. libcxx/include/__format/formatter_integral.h (5 lines): - line 43: // TODO FMT Remove this once we require compilers with proper C++20 support. - line 88: // TODO FMT Evaluate code overhead due to not calling the internal function - line 319: // TODO FMT See whether it's possible to do this transformation during the - line 382: // TODO FMT This function duplicates some functionality of the normal - line 425: // TODO FMT This loop evaluates the loop invariant `this->__type != llvm/lib/Target/Mips/MipsFastISel.cpp (5 lines): - line 940: // FIXME: try and eliminate this in a future patch. - line 1238: // FIXME: This path will currently return false. It was copied - line 1248: // FIXME: This alignment is incorrect but this path is disabled - line 1466: // FIXME: Unfortunately it's necessary to emit a copy from the livein copy. - line 1511: // FIXME: Only handle *simple* calls for now. llvm/lib/CodeGen/TargetInstrInfo.cpp (5 lines): - line 471: // FIXME: Allow folding when register classes are memory compatible. - line 770: // FIXME: This has the potential to be expensive (compile time) while not - line 1228: // FIXME: Scalable offsets are not yet handled in the offset code below. - line 1232: // TODO: Can currently only handle mem instructions with a single define. - line 1241: // TODO: In what way do we need to take Reg into consideration here? clang/lib/Serialization/ASTCommon.cpp (5 lines): - line 305: // FIXME: These can be defined in one place... except special member - line 334: // FIXME: These are defined in one place, but properties in class extensions - line 468: // FIXME: This is only necessary for an inline function or a template or - line 473: // FIXME: What about CapturedDecls (and declarations nested within them)? - line 478: // FIXME: We need to handle lambdas and blocks within inline / templated mlir/lib/Dialect/Vector/VectorTransferSplitRewritePatterns.cpp (5 lines): - line 130: // TODO: support 0-d corner case. - line 134: // TODO: expand support to these 2 cases. - line 142: // TODO: improve the filtering condition to make it more applicable. - line 189: // TODO: view intersection/union/differences should be a proper std op. - line 195: // TODO: relax this precondition, will require rank-reducing subviews. clang-tools-extra/clangd/ClangdLSPServer.cpp (5 lines): - line 87: // FIXME: for some tweaks, computing the edits is cheap and we could send them - line 611: // FIXME: once inlayHints can be disabled in config, always advertise. - line 706: // FIXME: observe config files, immediately expire time-based caches, reparse: - line 1257: // FIXME: This function needs to be properly tested. - line 1661: // FIXME: we don't emit "BuildingFile" and `RunningAction`, as these llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp (5 lines): - line 362: // TODO: Do the same for OR, XOR, NOT etc? - line 1643: // FIXME: The current implementation assumes that X is in [0, SINT_MAX]. - line 1691: // FIXME: Current implementation of ClampedSubtract implicitly assumes that - line 1721: // TODO: we could widen the smaller range and have this work; but for now we - line 1750: // TODO: we could widen the smaller range and have this work; but for now we lldb/source/Target/Target.cpp (5 lines): - line 511: // TODO: We should look into sharing module based search filters - line 529: // TODO: We should look into sharing module based search filters - line 2789: // FIXME: if we are doing non-stop mode for real, we would have to - line 3522: // FIXME: We should use StructuredData.GetDescription on the m_extra_args - line 4072: // TODO: Get rid of the Args intermediate step clang/lib/Driver/ToolChains/CrossWindows.cpp (5 lines): - line 100: // FIXME: this is incorrect for WinCE - line 149: // FIXME: handle subsystem - line 182: // TODO handle /MT[d] /MD[d] - line 189: // TODO handle /MT[d] /MD[d] - line 217: // FIXME: all non-x86 targets need unwind tables, however, LLVM currently does lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp (5 lines): - line 35: LIBLLDB_LOG_EXPRESSIONS)); // FIXME - a more appropriate log channel? - line 72: LIBLLDB_LOG_EXPRESSIONS)); // FIXME - a more appropriate log channel? - line 88: LIBLLDB_LOG_EXPRESSIONS)); // FIXME - a more appropriate log channel? - line 398: LIBLLDB_LOG_EXPRESSIONS)); // FIXME - a more appropriate log channel? - line 529: LIBLLDB_LOG_EXPRESSIONS)); // FIXME - a more appropriate log channel? llvm/lib/MC/MCELFStreamer.cpp (5 lines): - line 276: // TODO: Emit these as a common symbol. - line 351: // FIXME: Should this be caught and done earlier? - line 656: // TODO: drop the lock state and set directly in the fragment - line 682: // FIXME: Use BundleGroups to track the lock state instead. - line 685: // FIXME: Use more separate fragments for nested groups. clang/lib/AST/ScanfFormatString.cpp (5 lines): - line 73: // FIXME: Much of this is copy-paste from ParsePrintfSpecifier. - line 210: // FIXME: '%' and '*' doesn't make sense. Issue a warning. - line 211: // FIXME: 'ConsumedSoFar' and '*' doesn't make sense. - line 352: // FIXME: Mac OS X specific? - line 395: return ArgType(); // FIXME: Is this a known extension? clang-tools-extra/clang-tidy/ClangTidy.cpp (5 lines): - line 137: // FIXME: explore options to support interactive fix selection. - line 155: // FIXME: Implement better conflict handling. - line 202: // FIXME: Maybe don't apply fixes for other files as well. - line 295: LangOptions LangOpts; // FIXME: use langopts from each original file - line 390: // FIXME: Move this to a separate method, so that CreateASTConsumer doesn't mlir/include/mlir/Dialect/Linalg/ComprehensiveBufferize/BufferizableOpInterface.h (5 lines): - line 30: // TODO: from some HW description. - line 41: // TODO: Could be replaced with a "bufferization strategy" object with virtual - line 112: // FIXME: In c++17 this can be simplified by using 'fold expressions'. - line 179: // TODO: ResultContainsOperand, - line 180: // TODO: OperandContainsResult, llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp (5 lines): - line 488: // FIXME: Ordering is fuzzy here. We're probably best off saying - line 532: // FIXME: Avoid copy here. - line 650: // TODO: Check that before the fixTLVSectionsAndEdges pass, the GOT/PLT build - line 779: // TODO implement TLV support - line 806: // FIXME: The TLS descriptor byte length may different with different llvm/lib/Transforms/Coroutines/CoroFrame.cpp (5 lines): - line 982: /// FIXME: If we fill the field `SizeInBits` with the actual size of - line 1411: // FIXME: Ideally the isEscaped check should come at the beginning. - line 1900: // TODO: Simplify PHINodes in the basic block to remove duplicate - line 2525: // FIXME: This is a heuristic that works around the fact that - line 2570: // FIXME: LLVM lacks nuanced semantics to differentiate between libcxx/include/__format/parser_std_format_spec.h (5 lines): - line 37: // TODO FMT Remove this once we require compilers with proper C++20 support. - line 137: // TODO FMT The standard doesn't specify this character is a Unicode - line 704: // TODO FMT Add a parser for floating-point values. - line 705: // TODO FMT Add a parser for pointer values. - line 1072: // TODO FMT There might be more optimizations possible: flang/runtime/edit-input.cpp (5 lines): - line 46: // TODO: check for overflow - line 242: // TODO: hex FP input - line 317: // TODO: raise converted.flags as exceptions? - line 388: // TODO: raise converted.flags as exceptions? - line 585: // TODO: double/double clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp (5 lines): - line 21: // FIXME: Move ASTMatcher library. - line 79: // FIXME: cover more cases in this way, as the AST supports it. - line 98: // FIXME: We ignore using-decls defined in function definitions at the - line 179: // FIXME: Currently, we don't handle the using-decls being used in different - line 183: // FIXME: Use a more efficient way to find a matching context. flang/runtime/dot-product.cpp (5 lines): - line 68: // TODO: call BLAS-1 SDOT or SDSDOT - line 70: // TODO: call BLAS-1 DDOT - line 72: // TODO: call BLAS-1 CDOTC - line 74: // TODO: call BLAS-1 ZDOTC - line 171: // TODO: REAL/COMPLEX(2 & 3) llvm/lib/CodeGen/LiveIntervals.cpp (5 lines): - line 232: // FIXME: This functionality can possibly be merged into - line 1001: // FIXME: UpdateFlags is a workaround that creates live intervals for all - line 1593: // FIXME: This doesn't currently handle early-clobber or multiple removed - line 1637: // FIXME: This should probably be handled outside of this branch, - line 1704: // FIXME: Should we support undefs that gain defs? llvm/tools/llvm-xray/xray-stacks.cpp (5 lines): - line 47: // TODO: Does there need to be an option to deduce tail or sibling calls? - line 131: // TODO: Add Tail exit when it is added to llvm/XRay/XRayRecord.h - line 299: // TODO: Hook up option to produce stacks - line 561: // TODO: Add a format option when more than one are supported. - line 721: // TODO: Someday, support output to files instead of just directly to bolt/lib/Core/BinaryFunction.cpp (5 lines): - line 314: // FIXME: - line 851: // FIXME: Disable full jump table processing for AArch64 until we have a - line 2088: // TODO: handle properly calls to no-return functions, - line 2235: // FIXME: arch-specific. - line 4213: // FIXME: #18950828 - we rely on relative offsets inside basic blocks to stay llvm/lib/CodeGen/LiveDebugVariables.cpp (5 lines): - line 125: // FIXME: Debug values referencing 64+ unique machine locations are rare and - line 778: // FIXME: Handle partially overlapping fragments. See - line 1152: // FIXME: Handle sub-registers in addDefsFromCopies. The problem is that - line 1519: // FIXME: This will be problematic if we ever support direct and indirect - line 1546: // FIXME: Invalidate the location if the offset couldn't be calculated. openmp/runtime/src/z_Linux_util.cpp (5 lines): - line 691: /* TODO this is not valid for sibling threads!! - line 1225: /* TODO make sure this is done right for nested/sibling */ - line 1226: // ATT: Memory leaks are here? TODO: Check it and fix. - line 1308: // TODO: synchronize all static initializations with regular library - line 1409: /* TODO: shouldn't this use release semantics to ensure that mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp (5 lines): - line 55: // TODO: support 0-d corner case. - line 71: // TODO: support 0-d corner case. - line 272: /// TODO: Parallelism and threadlocal considerations. - line 1191: /// TODO: In some cases (no masking, etc.), LLVM::MatrixColumnMajorLoadOp - line 1214: // TODO: support 0-d corner case. lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp (5 lines): - line 100: // TODO: Avoid opening the PE/COFF binary twice by reading this information - line 143: // FIXME: Implement this. - line 149: // FIXME: Implement this. - line 531: // FIXME: Search IPI stream for LF_UDT_MOD_SRC_LINE. - line 1147: // FIXME: Parse child blocks clang-tools-extra/clangd/TUScheduler.cpp (5 lines): - line 769: // FIXME: some build systems like Bazel will take time to preparing - line 883: // FIXME: We might need to build a patched ast once preamble thread starts - line 1072: // FIXME: the AST could actually change if non-preamble includes changed, - line 1084: // FIXME: It might be better to not reuse this AST. That way queued AST builds - line 1133: // FIXME: we might have got more errors while trying to build the mlir/utils/spirv/gen_spirv_dialect.py (5 lines): - line 278: # TODO: delete this once ODS can support dialect-specific content - line 286: # TODO: delete this once ODS can support dialect-specific content - line 301: # TODO: delete this once ODS can support dialect-specific content - line 328: # TODO: delete this once ODS can support dialect-specific content - line 644: # TODO: Need to further constrain 'IdMemorySemantics' openmp/runtime/src/kmp_i18n.cpp (5 lines): - line 92: // TODO: What about LC_ALL or LC_MESSAGES? - line 124: // TODO: Why do we pass 0 in flags? - line 254: // !!! TODO: Issue a warning? - line 316: // TODO: Enable multiple messages (KMP_MSG) to be passed to __kmp_msg; and - line 758: // TODO: I18n this message. flang/lib/Frontend/CompilerInvocation.cpp (5 lines): - line 182: // TODO: - line 353: // TODO: Find a system independent API - line 446: // TODO: Currently throws a Diagnostic for anything other than -W, - line 509: // TODO: Set proper options when more fortran standards - line 606: // TODO: When expanding this method, consider creating a dedicated API for llvm/include/llvm/IR/IntrinsicInst.h (5 lines): - line 236: // TODO: When/if we remove duplicate values from DIArgLists, we don't need - line 710: /// FIXME: Remove this function once transition to Align is over. - line 726: /// FIXME: Remove this function once transition to Align is over. - line 775: /// FIXME: Remove this function once transition to Align is over. - line 793: /// FIXME: Remove this function once transition to Align is over. llvm/lib/Target/AArch64/AArch64ISelLowering.h (5 lines): - line 702: // FIXME: This is a guess. Has this been defined yet? - line 710: // FIXME: This is a guess. Has this been defined yet? - line 750: // TODO: We should be able to use bic/bif too for SVE. - line 783: // FIXME: Is this always true? It should be true for vectors at least. - line 1080: // FIXME: clang has code for 'Ump', 'Utf', 'Usa', and 'Ush' but these are llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp (5 lines): - line 11: /// TODO: Implement microMIPS64 support. - line 31: // TODO: Will be extended when additional optimizations are added - line 44: // TODO: Will be extended when additional optimizations are added - line 64: // TODO: Will be extended when additional optimizations are added - line 779: // TODO: Add support for the subtarget microMIPS32R6. llvm/tools/gold/gold-plugin.cpp (5 lines): - line 44: // FIXME: remove this declaration when we stop maintaining Ubuntu Quantal and - line 50: // FIXME: Remove when binutils 2.31 (containing gold 1.16) is the minimum - line 59: // FIXME: Remove when binutils 2.31 (containing gold 1.16) is the minimum - line 438: // FIXME: When binutils 2.31 (containing gold 1.16) is the minimum - line 877: // FIXME: Check the gold version or add a new option to enable them. clang/include/clang/Driver/Driver.h (5 lines): - line 116: // FIXME: Privatize once interface is stable. - line 145: /// FIXME: This type of customization should be removed in favor of the - line 258: // TODO: Much of what getFinalPhase returns are not actually true compiler - line 473: // FIXME: This should be in CompilationInfo. - line 481: // FIXME: This should be in CompilationInfo. clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h (5 lines): - line 40: /// FIXME: Make Diagnostics flexible enough to support this directly. - line 78: // FIXME: this is required initialization, and should be a constructor param. - line 90: /// FIXME: Figure out a way to manage ID spaces. - line 244: // FIXME: If we move away from unit-tests, this can be moved to a private - line 256: // FIXME: The concept of converting between FixItHints and Replacements is llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp (5 lines): - line 163: // FIXME: Temporary flag to denote whether the real instruction takes - line 626: // TODO: The writing-back pseudo instructions we translate here are all - line 708: // TODO: The writing-back pseudo instructions we translate here are all - line 986: // FIXME Windows CE supports older ARM CPUs - line 1968: // FIXME: Could also use any of r0-r3 that are free (including in the mlir/include/mlir-c/BuiltinAttributes.h (5 lines): - line 90: // TODO: add support for APFloat and APInt to LLVM IR C API, then expose the - line 116: // TODO: add support for APFloat and APInt to LLVM IR C API, then expose the - line 295: // TODO: decide on the interface and add support for complex elements. - line 296: // TODO: add support for APFloat and APInt to LLVM IR C API, then expose the - line 442: // TODO: expose Dialect to the bindings and implement accessors here. compiler-rt/lib/orc/macho_platform.cpp (5 lines): - line 139: // FIXME: Improve diagnostic by reporting the failed class's name. - line 287: // FIXME: Move to thread-state. - line 380: // FIXME: Handle out-of-memory errors, returning -1 if OOM. - line 389: // FIXME: Should atexits be allowed to run concurrently with access to - line 429: // FIXME: Avoid creating string copy here. llvm/lib/Target/ARM/ARMSubtarget.cpp (5 lines): - line 118: // FIXME: At this point, we can't rely on Subtarget having RBI. - line 190: // FIXME: This used enable V6T2 support implicitly for Thumb2 mode. - line 206: // FIXME: this is invalid for WindowsCE - line 215: // FIXME: Completely disable sibcall for Thumb1 since ThumbRegisterInfo:: - line 263: // FIXME: Teach TableGen to deal with these instead of doing it manually here. llvm/lib/Support/Host.cpp (5 lines): - line 150: // FIXME: If we get a simulator or machine with the capabilities of - line 492: // FIXME: should we save this for Clang? - line 568: // FIXME: should we save this for Clang? - line 853: // TODO detect tigerlake host from model - line 1348: // TODO: simplify this once the macro is available in all OS levels. clang-tools-extra/clangd/unittests/tweaks/DefineInlineTests.cpp (5 lines): - line 60: // FIXME: Generate a decl in the header. - line 93: // FIXME: Move declaration below bar to make it visible. - line 114: // FIXME: Perform include insertion to make symbol visible. - line 898: // FIXME: The last reference to cux() in body of foo should not be - line 916: // FIXME: The last reference to cux() in body of foo should not be mlir/lib/Analysis/DataFlowAnalysis.cpp (5 lines): - line 361: // TODO: Let the `visitOperation` method decide how to propagate - line 398: // TODO: Add support for non-symbol callables when necessary. If the callable - line 457: // TODO: If we had an interface to detect pass through operands, we could - line 484: // TODO: This isn't exactly ideal. There may be situations in which a - line 519: // TODO: This isn't exactly ideal. There may be situations in which a llvm/lib/Analysis/GlobalsModRef.cpp (5 lines): - line 89: /// FIXME: This assumes ModRefInfo lattice will remain 4 bits! - line 428: // TODO: Could try some IP mod/ref of the loaded pointer. - line 590: // FIXME: It is completely unclear why this is necessary and not - line 740: // FIXME: The condition can be refined, but be conservative for now. - line 802: // FIXME: It would be good to handle other obvious no-alias cases here, but llvm/lib/CodeGen/RegAllocFast.cpp (5 lines): - line 61: // FIXME: Remove this switch when all testcases are fixed! - line 459: // TODO We can potentially do this for list debug values as well if we know - line 548: // FIXME: Theoretically this should use an insert point skipping labels - line 914: "TODO: preassign mismatch"); - line 1083: // FIXME: Consider aliasing sub/super registers. llvm/lib/Bitcode/Writer/BitcodeWriter.cpp (5 lines): - line 2271: // FIXME: Only store metadata for declarations here, and move data for global - line 3247: // FIXME: Set up the abbrev, we know how many values there are! - line 3248: // FIXME: We know if the type names can use 7-bit ascii. - line 3482: // FIXME: This should only use space for first class types! - line 3591: // TODO: See which abbrev sizes we actually need to emit clang/lib/Frontend/PrintPreprocessedOutput.cpp (5 lines): - line 430: // FIXME: That's not *quite* true: it causes the module in question to - line 819: // FIXME: The token on the next line after #include should have - line 830: // FIXME: We retrieve this token after the FileChanged callback, and - line 850: // FIXME: The module name could contain non-identifier module name - line 873: // FIXME: The token may end with a newline in which case libunwind/src/UnwindCursor.hpp (5 lines): - line 928: // FIXME: Calling decode_eht_entry() here is violating the libunwind - line 1196: pint_t getLastPC() const { /* FIXME: Implement */ return 0; } - line 1197: void setLastPC(pint_t pc) { /* FIXME: Implement */ } - line 1199: /* FIXME: Implement */ - line 1204: int stepWithSEHData() { /* FIXME: Implement */ return 0; } llvm/lib/IR/DebugInfo.cpp (5 lines): - line 81: // TODO: If this value appears multiple times in a DIArgList, we should still - line 108: // TODO: If this value appears multiple times in a DIArgList, we should still - line 340: // FIXME: Ocaml binding generates a scope with no content, we treat it - line 518: // TODO: Remember the distinct subprogram we created for a given linkage name, - line 587: // TODO: Query the map to see if we already have one. llvm/lib/Analysis/BranchProbabilityInfo.cpp (5 lines): - line 216: // FIXME: We could only calculate this if the CFG is known to be irreducible - line 570: // FIXME: We currently consider unlikely blocks to be half as likely as other - line 748: // TODO: Consider propagating weight down the domination line as well. - line 792: // TODO: Should we actually treat as never returning call? - line 1097: // FIXME: Compare against a static "hot" BranchProbability. llvm/lib/Transforms/Scalar/LoopFlatten.cpp (5 lines): - line 153: // transformation. TODO: could other variables trigger this? Do we have to - line 208: // FIXME: audit code to establish whether there's a latent bug here. - line 593: // FIXME: it should be possible to handle different types correctly. - line 763: // TODO: IV widening without performing the actual flattening transformation - line 782: // TODO: We currently don't version the loop. llvm/lib/Option/Option.cpp (5 lines): - line 153: // FIXME: Avoid strlen. - line 166: // FIXME: Avoid strlen. - line 182: // FIXME: Avoid strlen. - line 209: // FIXME: Avoid strlen. - line 275: // FIXME: There aren't many uses of CommaJoined -- try removing compiler-rt/lib/xray/xray_mips.cpp (5 lines): - line 86: // FIXME: Is this correct for the static relocation model? - line 150: // FIXME: In the future we'd need to distinguish between non-tail exits and - line 157: // FIXME: Implement in mips? - line 163: // FIXME: Implement in mips? - line 170: // FIXME: this will have to be implemented in the trampoline assembly file clang/lib/Basic/Targets/X86.cpp (5 lines): - line 108: // FIXME: This *really* should not be here. - line 385: // FIXME: We should allow long double type on 32-bits to match with GCC. - line 425: // FIXME: We are hard-coding the tune parameters based on the CPU, but they - line 507: // FIXME: Historically, we defined this legacy name, it would be nice to - line 528: // FIXME: GCC may be enabling these in cases where some other k6 clang-tools-extra/unittests/clang-tidy/AddConstTest.cpp (5 lines): - line 756: // FIXME: Failing even all parts seem to bail-out in for isMacroID() - line 770: // FIXME: Failing even all parts seem to bail-out in for isMacroID() - line 776: // FIXME: Failing even all parts seem to bail-out in for isMacroID() - line 1051: // FIXME: Not done properly for some reason. - line 1071: // FIXME: These transformations are incorrect. ObjC seems to need llvm/lib/Target/AArch64/AArch64SpeculationHardening.cpp (5 lines): - line 301: // FIXME: The below just finds *a* unused register. Maybe code could be - line 488: // FIXME: it might be a worthwhile optimization to not mask loaded - line 502: // FIXME: loads from the stack with an immediate offset from the stack - line 513: // FIXME: For pre/post-increment addressing modes, the base register - line 534: // address calculation. FIXME: However that might change once we can llvm/lib/Target/Mips/MipsAsmPrinter.cpp (5 lines): - line 779: // FIXME: For ifunc related functions we could iterate over and look - line 791: // FIXME: This condition should be a lot more complicated that it is here. - line 810: // TODO: handle O64 ABI - line 1170: // FIXME: Is this correct for the static relocation model? - line 1248: // TODO: implement clang/lib/CodeGen/CGObjCGNU.cpp (5 lines): - line 1565: // FIXME: Currently ELF only! - line 1736: // FIXME: Almost identical code is copied and pasted below for the - line 1970: // FIXME: Class pointer aliases shouldn't exist! - line 2724: // FIXME: we probably need a size limit here, but we've - line 3805: // FIXME: We're generating redundant loads and stores here! libc/loader/linux/x86_64/start.cpp (5 lines): - line 33: // TODO: Declare var an extern var in config/linux/app.h so that other - line 38: // TODO: The function is x86_64 specific. Move it to config/linux/app.h - line 93: // TODO: Would be nice to use the aux entry structure from elf.h when available. - line 133: break; // TODO: Read other useful entries from the aux vector. - line 141: // TODO: p_vaddr value has to be adjusted for static-pie executables. clang/tools/driver/cc1as_main.cpp (5 lines): - line 407: // FIXME: This is not pretty. MCContext has a ptr to MCObjectFileInfo and - line 452: // FIXME: There is a bit of code duplication with addPassesToEmitFile. - line 513: // FIXME: init MCTargetOptions from sanitizer flags here. - line 598: // FIXME: Use a better -version message? - line 606: // FIXME: Remove this, one day. clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h (5 lines): - line 419: // FIXME: Remove when we migrate over to just using SValBuilder. - line 672: // FIXME: 'tag' should be removed, and a LocationContext should be used - line 674: // FIXME: Comment on the meaning of the arguments, when 'St' may not - line 687: // FIXME: 'tag' should be removed, and a LocationContext should be used - line 934: // FIXME: This does not use the nice trait macros because it must be accessible clang-tools-extra/clang-include-fixer/IncludeFixer.cpp (5 lines): - line 133: // FIXME: Currently we only generate a diagnostic for the first header. Give - line 209: // FIXME: Add the missing header to the header file where the symbol comes - line 216: // FIXME: Currently we only use namespace contexts. Use other context - line 246: // FIXME: Don't rely on source text. - line 312: // FIXME: This should never happen. clang/include/clang/AST/ASTContext.h (5 lines): - line 937: // FIXME: Remove ? - line 1418: /// FIXME: We will need these to be uniqued, or at least comparable, at some - line 1487: /// FIXME: We will need these to be uniqued, or at least comparable, at some - line 3203: // FIXME: We really should have a better mechanism in the ASTContext to - line 3213: // FIXME: This currently contains the set of StoredDeclMaps used clang/lib/Format/WhitespaceManager.cpp (5 lines): - line 183: // FIXME: This is a dirty hack. The problem is that - line 215: // FIXME: The last token is currently not always an eof token; in those - line 1207: // FIXME This if branch covers the cases where the column is not - line 1298: // FIXME: This assert should hold if we computed the column correctly. - line 1319: // FIXME: better error handling. For now, just print an error message in the llvm/lib/Transforms/Utils/SimplifyIndVar.cpp (5 lines): - line 230: // TODO: Support multiple entry loops? (We currently bail out of these in - line 499: // TODO: Should we do this if we can widen *some* comparisons, but not all - line 571: // TODO: If we see a signed comparison which can be turned into unsigned, - line 858: // TODO: Propagate TLI and pass it here to handle more cases. - line 1563: // TODO: Support case for NarrowDef = NarrowUse->getOperand(1). llvm/lib/Transforms/IPO/ArgumentPromotion.cpp (5 lines): - line 272: // TODO: Tell AA about the new values? - line 772: // FIXME: This isn't the right way to check for padding in vectors with - line 838: // TODO: Check individual arguments so we can promote a subset? - line 917: // FIXME: Support promoting whole chain of musttail functions - line 1030: // FIXME: This lambda must only be used with this function. We should llvm/lib/ExecutionEngine/Orc/DebugObjectManagerPlugin.cpp (5 lines): - line 9: // FIXME: Update Plugin to poke the debug object into a new JITLink section, - line 274: // TODO: Add support for other architectures. - line 342: // TODO: This works, but what actual alignment requirements do we have? - line 394: // TODO: Once we add support for other formats, we might want to split this - line 511: // TODO: Implement unregister notifications. llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h (5 lines): - line 17: // FIXME: Move to this file: BasicBlock::removePredecessor, BB::splitBasicBlock - line 280: /// FIXME: deprecated, switch to the DomTreeUpdater-based one. - line 323: /// FIXME: deprecated, switch to the DomTreeUpdater-based one. - line 363: /// FIXME: deprecated, switch to the DomTreeUpdater-based one. - line 419: /// FIXME: deprecated, switch to the DomTreeUpdater-based one. llvm/lib/CodeGen/SlotIndexes.cpp (5 lines): - line 60: // FIXME: This can be simplified. The mi2iMap_, Idx2MBBMap, etc. should - line 127: // FIXME: Eventually we want to actually delete these indexes. - line 153: // FIXME: Eventually we want to actually delete these indexes. - line 182: // FIXME: Is this really necessary? The only caller repairIntervalsForRange() - line 204: // FIXME: Conceptually, this code is implementing an iterator on MBB that clang/lib/CodeGen/CGStmt.cpp (5 lines): - line 480: // FIXME: Update this if we ever have attributes that affect the - line 1267: // FIXME: Clean this up by using an LValue for ReturnTemp, - line 1384: // FIXME: parameters such as this should not be hardcoded. - line 1512: // TODO When the next case has a likelihood attribute the code returns to the - line 1714: // FIXME: Such a break must be at the end of a construct within this one. llvm/lib/Target/Sparc/SparcISelLowering.cpp (5 lines): - line 379: /// passed in either one or two GPRs, including FP values. TODO: we should - line 1050: // FIXME: What about f32 arguments? C promotes them to f64 when calling - line 1122: // FIXME: Use hasReservedCallFrame to avoid %sp adjustments around all calls - line 2566: // TODO: implement over-aligned alloca. (Note: also implies - line 2600: // TODO: modify code in SelectionDAGBuilder to make this less sad. mlir/tools/mlir-tblgen/OpFormatGen.cpp (5 lines): - line 1922: // TODO: Add a check for optional regions here when ODS supports it. - line 2352: // TODO: Add hasCppInterface check. - line 2441: // TODO: Use the location of the literal element itself. - line 2928: // TODO: When ODS has proper support for marking "optional" regions, add - line 3232: // TODO: Operator doesn't expose all necessary functionality via llvm/lib/CodeGen/AsmPrinter/DIEHash.cpp (5 lines): - line 49: // FIXME: The LEB128 routines are copied and only slightly modified out of - line 181: // FIXME: This seems overly restrictive, and causes hash mismatches - line 325: // FIXME: It's uncertain whether or not we should handle this at the moment. - line 344: // FIXME: Add the extended attributes. - line 399: // TODO: Initialize the type chain at 0 instead of 1 for CU signatures. clang/lib/CodeGen/CGVTables.cpp (5 lines): - line 142: // FIXME: This function assumes "this" is the first non-sret LLVM argument of - line 145: // FIXME: This function assumes there is only one "ret" statement per function. - line 146: // FIXME: Cloning isn't correct in the presence of indirect goto! - line 147: // FIXME: This implementation of thunks bloats codesize by duplicating the - line 441: // FIXME: Don't emit unreachable code. llvm/lib/Transforms/Utils/InlineFunction.cpp (5 lines): - line 808: // TODO: This probably should not overwrite MemParalleLoopAccess. - line 920: // TODO: The null checks for the MDMap.lookup() results should no longer - line 1757: // FIXME: we don't inline callbr yet. - line 1823: // TODO: This isn't 100% true. Some personality functions are proper - line 1933: // TODO: Remove this when users have been updated to the assume bundles. llvm/lib/Bitcode/Reader/MetadataLoader.cpp (5 lines): - line 825: // FIXME: We could use a placeholder here, however NamedMDNode are - line 827: // It is acknowledged by 'TODO: Inherit from Metadata' in the - line 940: // FIXME: we need to do this early because we don't materialize global - line 1016: // FIXME this drops the error on the floor, which - line 1088: // FIXME this drops the error on the floor. clang/lib/Sema/SemaAttr.cpp (5 lines): - line 90: // FIXME: We should merge AddAlignmentAttributesForRecord with - line 224: // FIXME: This is not true on Darwin/PPC. - line 361: // FIXME: This should come from the target. - line 411: // FIXME: AlignPackStack may contain both #pragma align and #pragma pack - line 431: // FIXME: AlignPackStack may contain both #pragma align and #pragma pack flang/lib/Semantics/check-io.cpp (5 lines): - line 19: // TODO: C1234, C1235 -- defined I/O constraints - line 75: case 2: { // TODO: Get this to work. - line 81: case 4: { // TODO: Get this to work. - line 256: // TODO: Get this to work. (Maybe combine with earlier instance?) - line 263: // TODO: Get this to work. (Maybe combine with earlier instance?) mlir/lib/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.cpp (5 lines): - line 23: // TODO: Ops in the linalg dialect can directly implement this interface. - line 103: /// benefit of choosing A. TODO: We may want to consider both options and make - line 141: // TODO: This operand could bufferize inplace with OpOperands that have the - line 480: // TODO: Support cases such as extract_slice(init_tensor) - line 542: /// relation is "equivalent" (TODO: can be relaxed if needed). clang/lib/Basic/TargetInfo.cpp (5 lines): - line 414: // FIXME: These language options are also defined in setLangDefaults() - line 621: // FIXME: We temporarily return false - line 631: // FIXME: Check that there is a another register after this one. - line 742: // FIXME: This error return is in place temporarily so we can - line 766: // FIXME: Fail if % is used with the last operand. llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp (5 lines): - line 454: // FIXME: Should return min,max range. - line 464: // FIXME: Do we need to account for alignment requirement of LDS rounding the - line 483: // FIXME: Needs to be a multiple of the group size? - line 802: // TODO: Outline this derivation logic and have just - line 847: // FIXME: This really ends up using the requested number of SGPRs + number clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp (5 lines): - line 481: // FIXME: re-enable when NOLINTBEGIN suppresss block is enabled in clangd. - line 565: // FIXME: we're erroneously downgrading the whole group, this should be Error. - line 735: // FIXME: should be no errors here. - line 1163: // FIXME: Figure out why this is needed and remove it, PR43662. - line 1190: // FIXME: Figure out why this is needed and remove it, PR43662. mlir/lib/Transforms/PipelineDataTransfer.cpp (5 lines): - line 151: // TODO: this would in general need to check if there is no - line 187: // TODO: handle outgoing DMA pipelining. - line 192: // TODO: use the dependence analysis to check for - line 254: // TODO: check whether double-buffering is even necessary. - line 255: // TODO: make this work with different layouts: assuming here that lldb/include/lldb/Target/Thread.h (5 lines): - line 594: // FIXME: If this becomes a problem, we can make a version that just returns a - line 664: // FIXME: Currently unused. - line 717: // FIXME: Currently unused. - line 774: // FIXME: Currently unused. - line 823: // FIXME: Currently unused. lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp (5 lines): - line 483: // FIXME: Type of underlying builtin is always `Int`. We correct it with - line 496: // FIXME: PDB does not have information about scoped enumeration (Enum - line 1033: // TODO: Make clang to emit full names for variables in namespaces - line 1429: // TODO: get mangled name for the method. - line 1434: /*is_explicit*/ false, // FIXME: Need this field in CodeView. mlir/lib/Transforms/Utils/Utils.cpp (5 lines): - line 69: // TODO: extend it for this case when needed (rare). - line 163: // TODO: Avoid creating/deleting temporary AffineApplyOps here. - line 633: // TODO: Currently works for static memrefs with a single layout map. - line 710: // TODO: Normalize the other types of dynamic memrefs. - line 736: // TODO: Handle semi-affine maps. clang-tools-extra/clangd/ParsedAST.cpp (5 lines): - line 284: // FIXME: there's no API to suppress -Werror for single diagnostics. - line 464: // FIXME: should we expose the suppression error (invalid use of - line 525: // FIXME: We need to patch the marks for stale preambles. - line 576: // FIXME: Also skip generation of diagnostics alltogether to speed up ast - line 649: // FIXME: the rest of the function is almost a direct copy-paste from clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp (5 lines): - line 478: // FIXME: add sort(on ID)+unique to avoid extra work. - line 582: // FIXME: This works around not having the location of the arrow operator. - line 790: // FIXME: if the index is captured, it will count as an usage and the - line 851: // FIXME: Add in naming conventions to handle: - line 902: // FIXME: Rather than detecting conflicts at their usages, we should check the llvm/lib/Analysis/Loads.cpp (5 lines): - line 118: /// TODO refactor this function to be able to search independently for - line 168: // TODO: It may be okay to round to align, but that would imply that - line 299: // TODO: generalize to access patterns which have gaps - line 317: // TODO: generalize if a case found which warrants - line 573: // inliner. FIXME: use BasicAA if possible. mlir/include/mlir/IR/PatternMatch.h (5 lines): - line 934: // FIXME: In c++17 this can be simplified by using 'fold expressions'. - line 952: // FIXME: In c++17 this can be simplified by using 'fold expressions'. - line 1005: // TODO: These are soft deprecated in favor of the 'add' methods above. - line 1017: // FIXME: In c++17 this can be simplified by using 'fold expressions'. - line 1082: // TODO: Add the provided labels to the PDL pattern when PDL supports llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp (5 lines): - line 14: /// TODO: kill flags - line 401: // TODO: Disable SetP2AlignOperands for FastISel and just do it here. - line 754: // TODO: Support tail calls in FastISel - line 1195: // TODO: Fold a following sign-/zero-extend into the load instruction. - line 1341: // TODO: support multiple return in FastISel llvm/unittests/ADT/APFloatTest.cpp (5 lines): - line 4075: // TODO: change the 4th 0x75effffffffffffe to 0x75efffffffffffff when - line 4140: // TODO: change 0xf950000000000000 to 0xf940000000000000, when - line 4147: // TODO: change 0xf950000000000000 to 0xf940000000000000, when - line 4372: // TODO: Only a sanity check for now. Add more edge cases when the - line 4444: // TODO: investigate clang/lib/ASTMatchers/ASTMatchFinder.cpp (5 lines): - line 41: // FIXME: Do some performance optimization in general and - line 63: // FIXME: Benchmark whether memoization of non-pointer typed nodes - line 138: // FIXME: Add other base types after adding tests. - line 693: // FIXME: Improve this with a switch or a visitor pattern. - line 1171: // FIXME: Going to the primary template here isn't really correct, but clang/lib/Parse/ParseStmtAsm.cpp (5 lines): - line 170: // FIXME: This isn't right if .macro is involved (but hopefully, no - line 183: // FIXME: Assert the answer is sane once we handle .macro correctly. - line 574: // FIXME: init MCOptions from sanitizer flags here. - line 668: // FIXME: We should be passing source locations for better diagnostics. - line 883: // FIXME: Avoid unnecessary std::string trashing. clang/lib/Interpreter/Interpreter.cpp (5 lines): - line 38: // FIXME: Figure out how to unify with namespace init_convenience from - line 69: // FIXME: Clang should register these container operations automatically. - line 102: // FIXME: Merge with CompilerInstance::ExecuteAction. - line 137: // FIXME: Print proper driver diagnostics if the driver flags are wrong. - line 215: // FIXME: Add a callback to retain the llvm::Module once the JIT is done. clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp (5 lines): - line 91: /// FIXME: We need maybe an "escaped" state later. - line 382: // FIXME: Use lambda instead. - line 536: // FIXME: Can be stdin, stdout, stderr such values? - line 1036: // FIXME: Add a checker option to turn this uniqueing feature off. - line 1085: // FIXME: The checker should be updated to handle all system calls that take flang/lib/Semantics/expression.cpp (5 lines): - line 1316: // TODO: Possible language extension: use the most general type of - line 3158: // TODO: Actual arguments that are procedures and procedure pointers need to - line 3160: // TODO: C1534: Don't allow a "restricted" specific intrinsic to be passed. - line 3175: context_.Say("TODO: %REF() argument"_err_en_US); - line 3178: context_.Say("TODO: %VAL() argument"_err_en_US); llvm/utils/TableGen/X86RecognizableInstr.cpp (5 lines): - line 109: // FIXME: Is there some better way to check for In64BitMode? - line 516: // FIXME: In AVX, the register below becomes the one encoded - line 539: // FIXME: In AVX, the register below becomes the one encoded - line 563: // FIXME: In AVX, the register below becomes the one encoded - line 611: // FIXME: In AVX, the register below becomes the one encoded mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp (5 lines): - line 133: // TODO: accept more affine cases for sparse tensors - line 484: // TODO: replace this with a proliferated bufferization strategy - line 640: // TODO: generalize for sparse tensor subscripts - line 690: // TODO: accept affine too? - line 1094: // TODO: accept unit stride affine innermost like a[i,j+k+1]? mlir/include/mlir/Analysis/AffineAnalysis.h (5 lines): - line 74: // TODO: handle non-unit strides. - line 85: // TODO: add accessors to standard op's load, store, DMA op's to return - line 127: /// TODO: this does not account for aliasing of memrefs. - line 155: // TODO: Wrap 'dependenceConstraints' and 'dependenceComponents' into a single - line 157: // TODO: Make 'dependenceConstraints' optional arg. clang/lib/Basic/Targets/Sparc.h (5 lines): - line 52: // FIXME: Implement! - line 62: // FIXME: Implement! - line 81: // FIXME: Implement! - line 171: // FIXME: This isn't correct for plain V8 which lacks CAS, - line 196: // FIXME: Support Sparc quad-precision long double? llvm/utils/lit/lit/TestRunner.py (5 lines): - line 573: # FIXME: Actually, this is probably an instance of PR6753. - line 677: # FIXME: Standardize on the builtin echo implementation. We can use a - line 739: # FIXME: This is slow, but so is deadlock. - line 813: # FIXME: There is probably still deadlock potential here. Yawn. - line 1015: # FIXME: Running valgrind on sh is overkill. We probably could just clang/lib/Tooling/Refactoring/ASTSelection.cpp (5 lines): - line 121: // FIXME (Alex Lorenz): Improve handling for macro locations. - line 283: // FIXME: Syntactic form -> Entire pseudo-object expr. - line 400: // FIXME (Alex L): First selected SwitchCase means that first case statement. - line 404: // FIXME (Alex L): Tweak selection rules for compound statements, see: - line 414: // FIXME (Alex L): Test for BlockDecl. openmp/libomptarget/plugins/amdgpu/src/rtl.cpp (5 lines): - line 41: // hostrpc interface, FIXME: consider moving to its own include these are - line 239: /// FIXME: we may need this to be per device and per library. - line 1003: // FIXME: We cant distinguish between a constant or variable thread limit. - line 1218: // Initialize implicit arguments. TODO: Which of these can be dropped - line 1744: // TODO: Burn the wavefront size into the code object llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp (5 lines): - line 247: // FIXME: Should be ok if they addresses are identical. But earlier - line 338: // FIXME: Multiply by 2 because we may clone nodes during scheduling. - line 492: // FIXME: See ScheduleDAGSDNodes::EmitCopyFromReg. For now, scheduler - line 665: // FIXME: need target specific adjustment here? - line 999: // Add trailing DbgValue's before the terminator. FIXME: May want to add mlir/lib/Dialect/Shape/IR/Shape.cpp (5 lines): - line 245: // TODO: Canonicalization should be implemented for shapes that can be - line 558: // TODO: Support folding with more than 2 input shapes - line 571: // TODO: Fold to an "error". - line 794: // TODO: Implement custom parser and maybe make syntax a bit more concise. - line 1588: // TODO: Constant fold to an "error". clang/include/clang/Sema/TemplateDeduction.h (5 lines): - line 217: /// FIXME: Finish documenting this. - line 229: /// FIXME: This should be kept internal to SemaTemplateDeduction. - line 288: /// TODO: In the future, we may need to unify/generalize this with - line 314: /// TODO: In the future, we may need to unify/generalize this with - line 338: /// TODO: This may be unnecessary. clang/lib/Driver/SanitizerArgs.cpp (5 lines): - line 369: // FIXME: Make CFI on member function calls compatible with cross-DSO CFI. - line 532: // for CFI. FIXME: Remove this once we support vptr on Windows. - line 558: // FIXME: Currently -fsanitize=leak is silently ignored in the presence of - line 1067: // FIXME: Only exporting from the main executable (e.g. based on whether the - line 1099: // FIXME: Pass these parameters as function attributes, not as -llvm flags. libcxx/include/__format/format_arg.h (5 lines): - line 33: // TODO FMT Remove this once we require compilers with proper C++20 support. - line 114: // TODO FMT Define the handle class. - line 127: // TODO FMT Implement constrain [format.arg]/4 - line 164: // TODO FMT Add the handle. - line 248: // TODO FMT Implement the _Tp* constructor. llvm/include/llvm/CodeGen/SelectionDAGNodes.h (5 lines): - line 329: // TODO: unfriend HandleSDNode once we fix its operand handling. - line 368: /// TODO: This data structure should be shared by the IR optimizer and the - line 580: // TODO: unfriend HandleSDNode once we fix its operand handling. - line 1226: // TODO: This should either (a) not be in the SDNode hierarchy, or (b) not - line 1275: // FIXME: Remove once transition to getAlign is over. clang/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp (5 lines): - line 73: // TODO: Deal with macro occurrences correctly. - line 303: // FIXME: Handle the enum constant without prefix qualifiers (`a = Green`) - line 432: // FIXME: Find a better way to handle this case. - line 484: // FIXME: figure out how to handle it when there are multiple parents. - line 496: // FIXME: figure out how to handle it when there are multiple parents. clang/lib/Sema/DeclSpec.cpp (5 lines): - line 440: // FIXME: Add code below to iterate through the attributes and call Handle. - line 1238: //TODO: perform validation - line 1295: // TODO: if the implementation does not implement _Complex or _Imaginary, - line 1312: // FIXME: __fp16? - line 1439: // TODO: return "auto function" and other bad things based on the real type. llvm/lib/IR/Constants.cpp (5 lines): - line 292: // TODO: Compare pointer constants? - line 432: // FIXME: getNumElements() will fail for non-fixed vector types. - line 1626: // FIXME rounding mode needs to be more flexible - line 2834: // FIXME: We can extract pow of 2 of splat constant for scalable vectors. - line 2873: // TODO: If the fadd has 'nsz', should we return +0.0? compiler-rt/lib/dfsan/dfsan.cpp (5 lines): - line 59: // TODO: track callsites. - line 963: // TODO: CheckMemoryLayoutSanity is based on msan. - line 996: // TODO: CheckMemoryRangeAvailability is based on msan. - line 1009: // TODO: ProtectMemoryRange is based on msan. - line 1032: // TODO: InitShadow is based on msan. llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp (5 lines): - line 122: /// TODO: We could use region analysis to quickly skip over SESE regions during - line 238: /// TODO: This rule is conservative because it does not check whether the - line 244: /// TODO: We could use region analysis to quickly skip over SESE regions during - line 602: // FIXME: This fails to find irreducible cycles. If we have a def (other - line 850: // TODO: check whether CurReg is already masked by EXEC flang/runtime/unit.cpp (5 lines): - line 241: // TODO: Set UTF-8 mode from the environment - line 362: // TODO: UTF-8 decoding; may have to get more bytes in a loop - line 501: // TODO: Break very large records up into subrecords with negative - line 514: ok = ok && Emit("\n", 1, 1, handler); // TODO: Windows CR+LF - line 648: // TODO: error recovery llvm/lib/Transforms/IPO/HotColdSplitting.cpp (5 lines): - line 23: /// TODO: Use the PM to get domtrees, and preserve BFI/BPI. - line 24: /// TODO: Reorder outlined functions. - line 352: // TODO: Pass BFI and BPI to update profile information. - line 612: // reduces compile-time significantly. TODO: When we *do* use BFI, we should - line 655: // TODO: It's theoretically possible to outline more by only keeping the llvm/lib/Transforms/IPO/LowerTypeTests.cpp (5 lines): - line 367: // FIXME: This should look past all aliases not just interposable ones, - line 1210: // FIXME: We previously checked that global var member of a type identifier - line 1384: // FIXME: This is the wrong heuristic for non-canonical jump tables. - line 1527: // FIXME: find a better way to represent the jumptable in the IR. - line 2040: // TODO: The logic here checks only that the function is address taken, llvm/lib/CodeGen/MachineFunction.cpp (5 lines): - line 184: // FIXME: Shouldn't use pref alignment if explicit alignment is set on F. - line 185: // FIXME: Use Function::hasOptSize(). - line 739: // FIXME: New EH - Add the clauses in reverse order. This isn't 100% - line 1087: // record the subregister. FIXME: this isn't very space efficient if multiple - line 1152: // TODO: see if there's a better way of expressing these variable clang/include/clang/Tooling/Syntax/Tokens.h (5 lines): - line 175: /// FIXME: allow mappings into macro arguments. - line 189: /// FIXME: figure out how to handle token splitting, e.g. '>>' can be split - line 246: /// FIXME: return correct results on macro arguments. For now, we return an - line 342: /// FIXME: spelled tokens don't change across FileID that map to the same - line 454: // FIXME: we only store macro expansions, also add directives(#pragma, etc.) clang/lib/Frontend/FrontendActions.cpp (5 lines): - line 281: // FIXME: We should support re-compiling from an AST file. - line 493: // FIXME: Also ask for FullyQualifiedNames? - line 525: // FIXME: Move the truncation aspect of this into Sema, we delayed this till - line 930: // FIXME: Rather than manually format the JSON (which is awkward due to - line 932: // FIXME: Instead of printing enums as an integral value and specifying the clang/include/clang/Frontend/ASTUnit.h (5 lines): - line 146: // FIXME: This is temporary; eventually, CIndex will always do this. - line 167: // FIXME: This is just an optimization hack to avoid deserializing large parts - line 775: // FIXME: Move OnlyLocalDecls, UseBumpAllocator to setters on the ASTUnit, we - line 816: // FIXME: Move OnlyLocalDecls, UseBumpAllocator to setters on the ASTUnit, we - line 878: /// FIXME: The Diag, LangOpts, SourceMgr, FileMgr, StoredDiagnostics, and llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h (5 lines): - line 454: // TODO: support combines with other casts as well - line 577: // FIXME: we might be able return multiple sources? Or create an - line 859: // TODO: Should we try to process out the other defs now? If the other - line 1033: // TODO: Do we need to check if the resulting extract is supported? - line 1047: // TODO: We could modify MI in place in most cases. clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp (5 lines): - line 41: // FIXME: Why is this happening? We might be losing contents here. - line 233: // FIXME: Figure out whether it's the right location to parse to. - line 260: // FIXME: Figure out whether it's the right location to parse to. - line 275: // FIXME: Figure out whether it's the right location to parse to. - line 280: // FIXME: Figure out whether it's the right location to parse to. clang/lib/Sema/AnalysisBasedWarnings.cpp (5 lines): - line 491: // TODO: Verify this is correct. - line 865: // uninitialized'. FIXME: Can this happen? - line 1422: // FIXME: Should we use a common classification enum and the same set of - line 2253: // FIXME: This isn't the right factoring. This is here for initial - line 2298: // FIXME: We should be able to assert that block is non-null, but flang/lib/Optimizer/Transforms/ArrayValueCopy.cpp (5 lines): - line 115: // TODO: Replace recursive algorithm on def-use chain with an iterative one - line 222: /// TODO: Replace recursive algorithm on def-use chain with an iterative one - line 292: // TODO: this need to be updated to use the control-flow interface. - line 501: // FIXME: keep ptr/heap/ref information. - line 506: // TODO: getExtents on op should return a ValueRange instead of a vector. llvm/lib/IR/Value.cpp (5 lines): - line 58: // FIXME: Why isn't this in the subclass gunk?? - line 565: // FIXME: handleOperandChange() updates all the uses in a given Constant, - line 652: // TODO: If we know an address space cast will not change the - line 857: // FIXME: Why isn't this the type alloc size? - line 908: // TODO: Don't outright reject hasExternalWeakLinkage but set the llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp (5 lines): - line 194: // FIXME: consider handling this in AggressiveInstCombine - line 661: // FIXME: This is overconservative; this transform is allowed in some cases - line 766: /// TODO: This function could handle other cast types, but then it might - line 1071: /// TODO: The user of the trunc may be an bitcast to float/double/vector or an - line 1396: // FIXME: To be simple, handle only integer type for now. mlir/lib/Bindings/Python/IRTypes.cpp (5 lines): - line 330: // TODO: Rework error reporting once diagnostic engine is exposed - line 363: // TODO: Rework error reporting once diagnostic engine is exposed - line 403: // TODO: Rework error reporting once diagnostic engine is exposed - line 440: // TODO: Rework error reporting once diagnostic engine is exposed - line 499: // TODO: Rework error reporting once diagnostic engine is exposed llvm/lib/MC/MCParser/WasmAsmParser.cpp (5 lines): - line 89: // FIXME: .text currently no-op. - line 182: // TODO: Parse UniqueID - line 201: // TODO: This function is almost the same as ELFAsmParser::ParseDirectiveSize - line 251: // FIXME: Shared with ELF. - line 266: // FIXME: Shared with ELF. llvm/lib/CodeGen/TypePromotion.cpp (5 lines): - line 228: // TODO Allow zext to be sources. - line 246: // TODO The truncate also isn't actually necessary because we would already - line 715: // TODO: Allow icmp of smaller types, and calculate at the end - line 722: // TODO We should accept calls even if they don't have zeroext, as they - line 807: // TODO: This could limit the transform, ie if we try to promote something clang/lib/Basic/Targets/M68k.cpp (5 lines): - line 37: // FIXME how to wire it with the used object format? - line 46: // FIXME no floats at the moment - line 119: // FIXME: Implement. - line 124: // FIXME elaborate moar - line 227: // FIXME: Is this really right? clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp (5 lines): - line 217: // FIXME: TypeLoc information is not reliable where CV - line 223: // FIXME: Handle function pointers. For now we ignore them - line 316: // FIXME: The following only checks if the constructor can be used - line 384: // FIXME: There is, however, one case we can address: when the VarDecl pointee - line 412: // FIXME: This doesn't work for function pointers because the variable name llvm/lib/CodeGen/ScheduleDAGInstrs.cpp (5 lines): - line 134: // TODO: Figure out whether isAtomic is really necessary (see D57601). - line 300: // TODO: Using a latency of 1 here for output dependencies assumes - line 388: /// TODO: Hoist loop induction variable increments. This has to be - line 508: /// TODO: Handle ExitSU "uses" properly. - line 874: // FIXME: NumDataSuccs would be more precise than NumSuccs here. This mlir/lib/Analysis/AffineAnalysis.cpp (5 lines): - line 68: // TODO: AtomicRMW supports other kinds of reductions this is - line 160: // TODO: Add a method to AffineApplyOp which forward substitutes the - line 208: // TODO: Handle non-unit steps through local variables or stride information in - line 567: // TODO: Support AffineExprs mod/floordiv/ceildiv. - line 659: // TODO: Explore whether it would be profitable to pre-compute and store llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp (5 lines): - line 101: // FIXME: need better way to detect AsmStreamer (upstream removed getKind()) - line 725: // FIXME: need better way to detect if AsmStreamer (upstream removed - line 783: // FIXME: Diagnose overflow. - line 1270: // FIXME: Calls to OutOfRange shoudl propagate failure up to parseStatement. - line 1446: // FIXME: need better way to detect AsmStreamer (upstream removed getKind()) mlir/lib/Target/SPIRV/Serialization/Serializer.cpp (5 lines): - line 92: // TODO: handle the other sections - line 182: // TODO: Encode more debug instructions. - line 355: // TODO: This might not work if more than 1 recursive reference is - line 608: // TODO: Handle other types. - line 701: // TODO: Turn the below function into iterative function, instead of llvm/tools/llvm-xray/xray-graph.cpp (5 lines): - line 207: // FIXME: Refactor this and account subcommand to reduce code duplication. - line 229: // FIXME: Refactor this and the account subcommand to reduce code - line 267: // TODO: Support custom and typed events in the graph processing? - line 399: // FIXME: output more information, better presented. - line 503: // FIXME: include additional filtering and annalysis passes to provide more clang/include/clang/AST/ASTNodeTraverser.h (5 lines): - line 276: // FIXME: Improve this with a switch or a visitor pattern. - line 386: // FIXME: AttrKind - line 411: // FIXME: ElaboratedType, DependentNameType, - line 507: // FIXME: The redecls() range sometimes has elements of a less-specific - line 709: Visit(E->getControllingExpr()->getType()); // FIXME: remove polly/lib/CodeGen/BlockGenerators.cpp (5 lines): - line 197: // TODO: Hoisted invariant loads should be found in GlobalMap only, but not - line 687: // TODO: Indent by the depth of the statement instance in the schedule tree. - line 706: // TODO: Values used in region-statements. - line 1365: "TODO: Only block statements can be copied by the vector block " - line 1665: // TODO: Add some test cases that ensure this is really the right choice. llvm/lib/Support/DeltaAlgorithm.cpp (4 lines): - line 29: // FIXME: Allow clients to provide heuristics for improved splitting. - line 31: // FIXME: This is really slow. - line 71: // FIXME: Parallelize. - line 85: // FIXME: This is really slow. flang/lib/Lower/IO.cpp (4 lines): - line 213: // TODO: handle arrays - line 285: // TODO: handle arrays - line 892: // FIXME: should contain a string of YES or NO - line 941: // TODO - implement this mlir/lib/Analysis/AliasAnalysis/LocalAliasAnalysis.cpp (4 lines): - line 239: // TODO: Here we could look at the users to see if the resource is either - line 257: // TODO: This is overly conservative. Two matching constants don't - line 353: // TODO: To check recursive operations we need to check all of the nested - line 377: // TODO: Add support for checking an alias with a symbol reference. mlir/python/mlir/dialects/linalg/opdsl/lang/config.py (4 lines): - line 9: TODO: These should just be dumb containers or serialization code but they - line 286: TODO: The original parser relies on parse ordering to arrive at the - line 378: # TODO: Refactor the hierarchy internally when supporting more - line 427: # TODO: Many LinalgOpDef patterns need to expand to multiple generics. lld/MachO/Writer.cpp (4 lines): - line 559: // FIXME: This prints symbols that are undefined both in input files and - line 710: // TODO: ld64 enforces the old load commands in a few other cases. - line 789: // FIXME: `isReferenced()` is currently computed before dead code - line 887: // TODO: Make sure this handles weak symbols correctly. llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp (4 lines): - line 216: // TODO: The algorithm below relies on both RPO and Postorder traversals. - line 368: // TODO: Consider removing all instructions in this dead block. - line 561: // TODO: Support deletion of the current loop. - line 570: // TODO: Support blocks that are not dead, but also not in loop after the compiler-rt/lib/xray/xray_fdr_logging.cpp (4 lines): - line 167: // FIXME: Actually check whether we have 'constant_tsc' and - line 430: // FIXME: This code needs refactoring as it appears in multiple locations - line 631: // TODO: Factor out the flags specific to the FDR mode implementation. For - line 649: // FIXME: Remove this when we fully remove the deprecated flags. llvm/lib/IR/AsmWriter.cpp (4 lines): - line 984: // FIXME: Add attributes of other objects? - line 1377: // FIXME: We should allow 32-bit hex float and remove this. - line 2880: // FIXME: Change AliasSummary to hold a ValueInfo instead of summary pointer - line 3398: // FIXME: Ban DIExpressions in NamedMDNodes, they will serve no purpose. polly/lib/Transform/ZoneAlgo.cpp (4 lines): - line 294: /// TODO: In the future we may want to extent this to make the checks - line 537: // TODO: If the PHI has an incoming block from before the SCoP, it is not - line 779: // TODO: Add only the induction variables referenced in SCEVAddRecExpr - line 1008: // TODO: Can be more efficient since isRecursivePHI can theoretically lldb/source/Commands/CommandObjectTarget.cpp (4 lines): - line 351: // TODO: if the user has passed in a --platform argument, use it - line 4793: // FIXME: Set the stop hook ID counter back. - line 4841: // FIXME: see if we can use the breakpoint id style parser? - line 4897: // FIXME: see if we can use the breakpoint id style parser? mlir/lib/Dialect/Linalg/IR/LinalgInterfaces.cpp (4 lines): - line 32: // TODO: relax to multi-operands with constants, which are technically unary ops - line 114: // TODO: more fields than add/mul. - line 621: // TODO: relax when mixed-mode needs to pass verification. - line 669: // TODO: once ranked shape types are plugged in, we may want to drop the flang/lib/Evaluate/tools.cpp (4 lines): - line 427: // TODO: defined operator - line 475: // TODO: defined operator - line 480: // TODO: defined operator - line 485: // TODO: defined operator llvm/tools/llvm-xray/xray-graph.h (4 lines): - line 59: /// FIXME: expand to contain more information eg call latencies. - line 68: /// FIXME: Store more attributes based on instrumentation map. - line 96: /// FIXME: Perhaps we can Build this into LatencyAccountant? or vise versa? - line 138: /// FIXME: Make this more robust against small irregularities. llvm/lib/Target/X86/X86PartialReduction.cpp (4 lines): - line 90: // TODO: Support constant in ISel. - line 127: // TODO: we can support transforming reduce to VNNI intrinsic for across block - line 221: // TODO: There's nothing special about i32, any integer type above i16 should - line 518: // FIXME: Do we need to handle other opcodes than Add? llvm/lib/MC/MCObjectStreamer.cpp (4 lines): - line 722: // FIXME Support symbols with no DF. For example: - line 749: // FIXME Support symbols with no DF. For example: - line 760: // FIXME Support symbols with no DF. For example: - line 883: // TODO: add additional info to integrated assembler. clang/lib/Frontend/InitHeaderSearch.cpp (4 lines): - line 251: // FIXME: temporary hack: hard-coded paths. - line 388: // FIXME: temporary hack: hard-coded paths. - line 612: (/*FIXME !Lang.ObjC && */ Lang.CPlusPlus && - line 628: bool DontSearchCurDir = false; // TODO: set to true if -I- is set? openmp/libomptarget/deviceRTLs/common/src/parallel.cu (4 lines): - line 300: // TODO: faster memcpy? - line 306: // TODO: what if that's a parallel region with a single thread? this is - line 331: // TODO: Is synchronization needed since out of parallel execution? - line 336: // TODO: proc_bind is a noop? llvm/lib/Target/Mips/MipsConstantIslandPass.cpp (4 lines): - line 67: // FIXME: This option should be removed once it has received sufficient testing. - line 130: // FIXME: need to go through this whole constant islands port and check - line 436: // FIXME: - line 1431: // FIXME: remove the empty blocks after all the work is done? llvm/lib/Analysis/CFLGraph.h (4 lines): - line 198: // TODO: If the call is indirect, we might be able to enumerate all - line 233: // FIXME: This is subtly broken, due to how we model some instructions - line 435: // TODO: address other common library functions such as realloc(), - line 440: // TODO: Add support for noalias args/all the other fun function llvm/lib/Target/AArch64/AArch64SLSHardening.cpp (4 lines): - line 190: // FIXME: This could also check if there are any BLRs in the function - line 203: // FIXME: It probably would be possible to filter which thunks to produce - line 211: // FIXME: How to better communicate Register number, rather than through - line 413: // FIXME: When LLVM moves to C++17, these can become folds flang/lib/Evaluate/fold-implementation.h (4 lines): - line 397: (... && IsSpecificIntrinsicType)); // TODO derived types for MERGE? - line 462: // TODO: Rank compatibility was already checked but it seems to be - line 883: // TODO: Consider moving this implementation (after the user error - line 1073: // TODO: extends_type_of, same_type_as llvm/tools/llvm-nm/llvm-nm.cpp (4 lines): - line 152: // TODO: if we have a error getting the name then it would be nice to print - line 708: // TODO: Test this error. - line 968: // FIXME: should we print 'b'? At the IR level we cannot be sure if this - line 2056: // TODO Replace this with OptTable API once it adds extrahelp support. compiler-rt/lib/xray/xray_AArch64.cpp (4 lines): - line 110: XRAY_NEVER_INSTRUMENT { // FIXME: Implement in aarch64? - line 116: // FIXME: Implement in aarch64? - line 120: // FIXME: Maybe implement this better? - line 126: // FIXME: this will have to be implemented in the trampoline assembly file llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp (4 lines): - line 508: // TODO Apparently, this is currently needed for OpenCL as mentioned in - line 548: // TODO: Why are some tests have "mingw" listed as OS? - line 562: // TODO: Why are some tests have "mingw" listed as OS? - line 858: // FIXME: Remove the use of VK_AMDGPU_REL64 in the expression below. The clang-tools-extra/clang-doc/BitcodeReader.cpp (4 lines): - line 659: // FIXME this drops the error on the floor. - line 674: // FIXME this drops the error on the floor. - line 684: // FIXME this drops the error on the floor. - line 802: // FIXME this drops the error on the floor. llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp (4 lines): - line 101: if (ShAmt == SubAmt) // TODO: Use m_Specific - line 111: if (ShAmt == SubAmt) // TODO: Use m_Specific - line 319: // FIXME: fix Len == 8 and other irregular type lengths. - line 379: // TODO: It would be more efficient if we removed dead instructions llvm/lib/CodeGen/GlobalISel/CallLowering.cpp (4 lines): - line 433: // FIXME: Should handle floating point promotions. - line 494: // FIXME: This should respect the extend type - line 687: // TODO: The memory size may be larger than the value we need to - line 1105: // FIXME: bitconverting between vector types may or may not be a llvm/lib/Target/M68k/M68kISelDAGToDAG.cpp (4 lines): - line 389: /// TODO Add TLS support - line 408: // FIXME JumpTable and ExternalSymbol address currently don't like - line 474: // TODO: Post-processing: Convert lea(,%reg,2) to lea(%reg,%reg), which has - line 478: // TODO: Post-processing: Convert foo to foo(%pc), even in non-PIC mode, clang-tools-extra/clangd/refactor/Rename.cpp (4 lines): - line 184: // name validation. FIXME: reconcile with InvalidName - line 224: // FIXME: Renaming virtual methods requires to rename all overridens in - line 378: // FIXME: We don't modify all references to function parameters when - line 718: // FIXME: Renaming macros is not supported yet, the macro-handling code should clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h (4 lines): - line 318: // FIXME: Add a helper for checking namespaces. - line 319: // FIXME: Move this down to AnyFunctionCall once checkers have more - line 328: // FIXME: Move this down to AnyFunctionCall once checkers have more - line 1048: // FIXME: CXXDeleteExpr isn't present for custom delete operators, or even for llvm/lib/CodeGen/InlineSpiller.cpp (4 lines): - line 1123: // FIXME: Infer regclass from instruction alone. - line 1144: // FIXME: Use a second vreg if instruction has no tied ops. - line 1185: // FIXME: Do this with a LiveRangeEdit callback. - line 1266: // TODO: We could be better here. If LI is not alive in landing pad llvm/lib/CodeGen/SelectionDAG/FastISel.cpp (4 lines): - line 544: // FIXME: The code below does not handle vector GEPs. Halt "fast" selection - line 552: // FIXME: What's a good SWAG number for MaxOffs? - line 1007: // FIXME: sret demotion isn't supported yet - bail out. - line 1319: // FIXME: This does not handle register-indirect values at offset 0. clang/include/clang/Lex/PPCallbacks.h (4 lines): - line 346: // FIXME: better to pass in a list (or tree!) of Tokens. - line 356: // FIXME: better to pass in a list (or tree!) of Tokens. - line 380: // FIXME: better to pass in a list (or tree!) of Tokens. - line 404: // FIXME: better to pass in a list (or tree!) of Tokens. llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp (4 lines): - line 210: // TODO: Actually emit the initializer value. Otherwise the global has the - line 514: // FIXME: Subtarget is null here, so can't Subtarget->hasAddr64() ? - line 554: // FIXME casts! - line 654: // FIXME: only opcode that still contains registers, as required by llvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp (4 lines): - line 173: // FIXME: what about constant pools? - line 217: // FIXME: support recognizing lifetime instructions. - line 237: // TODO: This is way overconservative for unordered atomics (see D66309) - line 259: // FIXME: port the alignment based alias analysis from SDAG's isAlias(). clang-tools-extra/clang-doc/Representation.h (4 lines): - line 317: // TODO: Expand to allow for documenting templating and default args. - line 336: // TODO: Expand to allow for documenting templating, inheritance access, - line 388: // TODO: Expand to allow for documenting templating. - line 418: // TODO: Add functionality to include separate markdown pages. clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp (4 lines): - line 111: // FIXME: Implement as attribute. - line 155: // FIXME: Currently allowing any Ref -> whatever cast. - line 171: // FIXME: String/AtomString/UniqueString - line 183: // FIXME: check # of params == 1 llvm/lib/IR/DataLayout.cpp (4 lines): - line 823: /// TODO: Remove this function once the transition to Align is over. - line 832: /// TODO: Remove this function once the transition to Align is over. - line 988: // FIXME: Not sure it makes sense to use the alignment of the type if - line 1001: // FIXME: Why 16, specifically? llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp (4 lines): - line 301: // FIXME: We must leave subregisters of live super registers as live, so that - line 442: // FIXME: The issue with predicated instruction is more complex. We are being - line 588: // FIXME: remove this once PR18663 has been properly fixed. For now, - line 612: // FIXME: Using getMinimalPhysRegClass is very conservative. We should llvm/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp (4 lines): - line 14: // TODO: Graph based predicate heuristics. - line 168: // FIXME: Lots more possibilities. - line 355: // FIXME: No need to do this if the ultimate user expects an FPR64. - line 367: // FIXME: Try to avoid this if all uses could actually just use the FPR64 llvm/lib/Transforms/Vectorize/VPlan.cpp (4 lines): - line 242: // TODO: Cache created scalar values. - line 928: // TODO: Model their backedge values explicitly. - line 952: // TODO: Model compare and branch explicitly in VPlan as recipes. - line 1248: // TODO: Remove once all VPWidenPHIRecipe instances keep all relevant incoming compiler-rt/lib/xray/xray_powerpc64.cpp (4 lines): - line 94: // FIXME: Maybe implement this better? - line 99: // FIXME: Implement in powerpc64? - line 105: // FIXME: Implement in powerpc64? - line 112: // FIXME: this will have to be implemented in the trampoline assembly file llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp (4 lines): - line 167: // FIXME Add some kind of record of which DIE names have already failed and - line 417: // FIXME: Report the error. - line 429: // TODO support object files better - line 544: // FIXME: It might be nice if there's a way to walk location expressions pstl/include/pstl/internal/algorithm_impl.h (4 lines): - line 989: // TODO: Try to use transform_reduce for combining __brick_copy_if_phase1 on IsVector. - line 2326: // TODO: investigate performance benefits from the use of shared variable for the result, - line 2337: // TODO: to use a custom range with boundaries overlapping - line 2338: // TODO: investigate what if we remove "if" below and run algorithm on range [__first, __last-1) llvm/lib/Transforms/IPO/SampleProfile.cpp (4 lines): - line 632: // FIXME: This should not be affected by the source drift issue as 1) if the - line 959: // TODO: Ideally we would have two separate factors, one for call site - line 1445: // TODO: Consider disable pre-lTO ICP for MonoLTO as well - line 1460: // TODO: Fix CallAnalyzer to handle all indirect calls. mlir/lib/IR/Block.cpp (4 lines): - line 142: // TODO: Require locations for BlockArguments. - line 159: // TODO: Require locations for BlockArguments. - line 166: // TODO: Require locations for BlockArguments. - line 179: // TODO: Require locations for BlockArguments. clang/lib/Basic/Targets/NVPTX.h (4 lines): - line 31: // FIXME: generic has to be added to the target - line 109: // FIXME: Is this really right? - line 114: // FIXME: implement - line 171: // TODO: We should warn if you apply a non-default CC to anything other than lld/MachO/ConcatOutputSection.cpp (4 lines): - line 58: // implement thunks. TODO: Adding support for branch islands! - line 268: // FIXME: This property does not hold for object files produced by ld64's - line 314: fatal(Twine(__FUNCTION__) + ": FIXME: thunk range overrun"); - line 370: // FIXME: Add additional logic here when supporting emitting obj files. mlir/lib/ExecutionEngine/SparseTensorUtils.cpp (4 lines): - line 251: // TODO: needs fine-tuning based on sparsity - line 1058: // TODO: for now f64 tensors only, no dim ordering, all dimensions compressed - line 1094: // TODO: Currently, values are copied from SparseTensorStorage to - line 1098: // TODO: for now f64 tensors only, no dim ordering, all dimensions compressed llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp (4 lines): - line 1016: // TODO: May want to move later or split into an early and late one. - line 1043: // FIXME: This pass adds 2 hacky attributes that can be replaced with an - line 1216: // FIXME: We have to disable the verifier here because of PHIElimination + - line 1247: // FIXME: when an instruction has a Killed operand, and the instruction is clang/unittests/Format/FormatTestJS.cpp (4 lines): - line 197: // FIXME: this overcounts the */ as a continuation of the 12 when breaking. - line 198: // Related to the FIXME in BreakableBlockComment::getRangeLength. - line 1080: // FIXME: This is bad, we should be wrapping before "function() {". - line 1257: // FIXME: This is bad, we should be wrapping before "() => {". compiler-rt/lib/asan/asan_win.cpp (4 lines): - line 57: // FIXME: Handle EXCEPTION_STACK_OVERFLOW here. - line 147: // FIXME: The CreateThread interceptor is not the same as a pthread_create - line 149: bool detached = false; // FIXME: how can we determine it on Windows? - line 230: // FIXME: we're ignoring the destructor for now. llvm/lib/Transforms/IPO/FunctionAttrs.cpp (4 lines): - line 421: // TODO: Handle these cases if they become meaningful - line 441: // TODO: implement addNoAliasAttrs once - line 838: // TODO: This could be enhanced by testing if the callsite post-dominates the - line 1626: // FIXME: this doesn't handle recursion or unreachable blocks. clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp (4 lines): - line 75: // FIXME: This set of cases was copied from SemaExprObjC. - line 473: // FIXME: We will eventually need to handle non-statement-based events - line 790: // FIXME: Per comments in rdar://6320065, "create" only applies to CF - line 897: // FIXME: This will crash the analyzer if an allocation comes from an llvm/utils/TableGen/PseudoLoweringEmitter.cpp (4 lines): - line 68: // FIXME: This pass currently can only expand a pseudo to a single instruction. - line 90: // FIXME: We probably shouldn't ever get a non-zero BaseIdx here. - line 92: // FIXME: Are the message operand types backward? - line 246: // FIXME: Instruction operands with defaults values (predicates and cc_out clang/lib/AST/PrintfFormatString.cpp (4 lines): - line 197: // FIXME: POSIX specific. Always accept? - line 614: return ArgType(); // FIXME: Is this a known extension? - line 662: // FIXME: Handle other cases. - line 749: case BuiltinType::Char8: // FIXME: Treat like 'char'? clang/lib/StaticAnalyzer/Core/CheckerManager.cpp (4 lines): - line 39: // FIXME: Use fold expressions in C++17. - line 171: // FIXME: Remove respondsToCallback from CheckerContext; - line 267: // FIXME: This has all the same signatures as CheckObjCMessageContext. - line 666: // TODO: Support the situation when the call doesn't correspond llvm/tools/llvm-exegesis/lib/X86/Target.cpp (4 lines): - line 54: // FIXME: Validates that repetition-mode is loop if LBR is requested. - line 273: // FIXME: Add an option for controlling how we explore immediates. - line 747: // FIXME: Fix this. - line 794: // FIXME: This would require popping from the stack, so we would have to mlir/lib/Dialect/Linalg/ComprehensiveBufferize/BufferizableOpInterface.cpp (4 lines): - line 473: // TODO: Handle cases where allocation hoisting barrier has more than one - line 521: // TODO: also hoist in the dynamic case. For now this relies on subsequent - line 523: // TODO: when packing, allocate a static bounding box which will enable more - line 617: // TODO: address space decisions to connect with the actual alloc. clang-tools-extra/clangd/unittests/tweaks/ExtractFunctionTests.cpp (4 lines): - line 35: // FIXME: Support hoisting. - line 41: // FIXME: ExtractFunction should be unavailable inside loop construct - line 195: // FIXME: min/max should be by value. - line 196: // FIXME: avoid emitting redundant braces llvm/utils/gn/secondary/compiler-rt/lib/msan/BUILD.gn (4 lines): - line 45: # FIXME: have SANITIZER_COMMON_CFLAGS thingy? should fno-builtin be in - line 54: # FIXME: link rt dl m pthread log - line 55: # FIXME: need libclang_rt.msan*.a.syms? - line 56: # FIXME: msan_ignorelist.txt llvm/tools/bugpoint/Miscompilation.cpp (4 lines): - line 75: // TODO: This should propagate the error instead of exiting. - line 117: // TODO: This should propagate the error instead of exiting. - line 162: // TODO: This should propagate the error instead of exiting. - line 234: // TODO: Shouldn't we thread the error up instead of exiting? llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp (4 lines): - line 405: // TODO: we may consider expanding ROTL/ROTR on older GPUs. Currently on GPUs - line 444: // FIXME: vector types should also be expanded - line 2279: // but I'm leaving that as a TODO for now. - line 4848: // but I'm leaving that as a TODO for now. llvm/tools/llvm-readobj/COFFDumper.cpp (4 lines): - line 752: // FIXME: Data visualization for IMAGE_DEBUG_TYPE_VC_FEATURE and - line 759: // FIXME right now the only possible value would fit in 8 bits, - line 1012: // TODO: Convert this over to using ModuleSubstreamVisitor. - line 1621: // TODO Propagate the error. llvm/lib/Support/CommandLine.cpp (4 lines): - line 1235: // TODO: The error should be propagated up the stack. - line 1241: // TODO: The error should be propagated up the stack. - line 1265: // TODO: The error should be propagated up the stack. - line 1329: // TODO: The error should be propagated up the stack. llvm/lib/IR/LLVMContextImpl.h (4 lines): - line 790: // FIXME: We need to compare template parameters here to avoid incorrect - line 1023: // TODO: make hashing work fine with such situations - line 1067: // TODO: make hashing work fine with such situations - line 1539: // TODO: clean up the following after we no longer support non-opaque pointer clang/lib/Driver/ToolChain.cpp (4 lines): - line 630: // TODO: Add support for static lib archiving on Windows - line 680: // FIXME: 'single' is only supported on ARM and WebAssembly so far. - line 719: // FIXME: older versions of ld64 expect the "arm64" component in the actual - line 1168: // TODO: Currently argument values separated by space e.g. lldb/source/Host/common/NativeRegisterContext.cpp (4 lines): - line 27: // FIXME revisit invalidation, process stop ids, etc. Right now we don't - line 111: // FIXME double check we're checking the right register kind here. - line 377: // TODO: we might need to add a parameter to this function in case the byte - line 396: // TODO: we might need to add a parameter to this function in case the byte clang/lib/Serialization/ASTReaderStmt.cpp (4 lines): - line 525: // FIXME: write and read all DependentFlags with a single call. - line 1595: VisitStmt(S); // FIXME: no test coverage. - line 1615: VisitStmt(S); // FIXME: no test coverage. - line 1622: VisitStmt(S); // FIXME: no test coverage. llvm/lib/Target/AArch64/AArch64TargetMachine.cpp (4 lines): - line 132: // FIXME: Unify control over GlobalMerge. - line 323: // FIXME: We could elide the trap if the next instruction would be in - line 585: // FIXME: On AArch64, this depends on the type. - line 600: // FIXME: extern global merging is only enabled when we optimise for size llvm/tools/llvm-profgen/CSPreInliner.cpp (4 lines): - line 34: // TODO: the actual threshold to be tuned here because the size here is based - line 60: // TODO: Pass in a guid-to-name map in order for - line 128: // TODO: call site and callee entry count should be mostly consistent, add - line 160: // TODO: for small cold functions, we may inlined them and we need to keep llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp (4 lines): - line 383: // FIXME: should this function return false when unable to write exactly - line 699: // FIXME: diagnose if no Thumb2 - line 893: // FIXME: Should we handle it as an optimization? - line 1255: // FIXME: supporting more than 4 saved D-registers compactly would be trivial, bolt/lib/Core/BinaryContext.cpp (4 lines): - line 428: // TODO: use DWARF info to get size/alignment here? - line 837: // FIXME: aarch64 support is missing. - line 993: // TODO: it's possible that a jump table starts at the same address - line 1739: // FIXME: Fix section flags/attributes for MachO. flang/lib/Lower/CharacterExpr.cpp (4 lines): - line 44: // FIXME: should this just return box.getLen() ?? - line 70: // TODO: get rid of toDataLengthPair when adding support for arrays - line 94: // FIXME: only allow `?` in last dimension ? - line 252: // TODO: revisit now that character constant handling changed. llvm/include/llvm/Transforms/IPO/Attributor.h (4 lines): - line 556: /// TODO: Figure out if the attribute related helper functions should live - line 2696: // TODO: Not all attributes require an exact definition. Find a way to - line 2700: // TODO: We could always determine abstract attributes and if sufficient - line 4318: /// TODO: Support values other than constant integers. llvm/lib/Target/RISCV/RISCVFrameLowering.cpp (4 lines): - line 401: // FIXME (note copied from Lanai): This appears to be overallocating. Needs - line 440: // FIXME: assumes exactly one instruction is used to save each callee-saved - line 583: // FIXME: assumes exactly one instruction is used to restore each - line 899: // FIXME: It may be possible to craft a function with a small stack that mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp (4 lines): - line 87: // TODO: this should use the MLIR data layout when it becomes available and - line 440: // FIXME: MLIR's 'minf' and LLVM's 'vector_reduce_fmin' do not handle - line 445: // FIXME: MLIR's 'maxf' and LLVM's 'vector_reduce_fmax' do not handle - line 918: // TODO: rely solely on libc in future? something else? clang-tools-extra/clangd/FindTarget.h (4 lines): - line 84: /// FIXME: some AST nodes cannot be DynTypedNodes, these cannot be specified. - line 136: // FIXME: add info about template arguments. - line 149: /// FIXME: currently this does not report references to overloaded operators. - line 150: /// FIXME: extend to report location information about declaration names too. clang/unittests/Interpreter/ExceptionTests/InterpreterExceptionTest.cpp (4 lines): - line 98: // FIXME: Re-enable the excluded target triples. - line 101: // FIXME: PPC fails due to `Symbols not found: [DW.ref.__gxx_personality_v0]` - line 107: // FIXME: ARM fails due to `Not implemented relocation type!` - line 111: // FIXME: libunwind on darwin is broken, see PR49692. llvm/lib/Target/M68k/M68kExpandPseudo.cpp (4 lines): - line 79: /// TODO infer argument size to create less switch cases - line 258: // TODO check if pseudo expand uses free address register - line 274: // TODO: RTD can only handle immediates as big as 2**16-1. - line 280: // FIXME: Can rest of the operands be ignored, if there is any? clang-tools-extra/clangd/unittests/tweaks/ExtractVariableTests.cpp (4 lines): - line 136: // FIXME: extraction from switch case - line 164: /*FIXME: It should be extracted like this. - line 219: // FIXME: Wrong result for \[\[clang::uninitialized\]\] int b = [[1]]; - line 275: // FIXME: it'd be nice to do this someday (in a safe way) lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp (4 lines): - line 174: // TODO: Detect: BRAA, BRAAZ, BRAB, BRABZ (Branch to Register, with pointer - line 202: // TODO: Detect: RETAA, RETAB (Return from subroutine, with pointer - line 367: // FIXME temporary workaround, exc_code 0 does not really mean - line 623: } else if (exc_code == 0) // FIXME not EXC_ARM_BREAKPOINT but a kernel llvm/lib/CodeGen/GlobalISel/LegacyLegalizerInfo.cpp (4 lines): - line 69: // FIXME: these two (G_ANYEXT and G_TRUNC?) can be legalized to the - line 192: // FIXME: inefficient implementation for now. Without ComputeValueVTs we're - line 263: // FIXME: is this special case still needed and correct? - line 319: // FIXME: speed up this search, e.g. by using a results cache for repeated llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp (4 lines): - line 730: // FIXME: Current only handle those Comdat groups that only containing one - line 1164: // FIXME: This function should be removed once the functionality in - line 1536: // FIXME: do not handle this yet. - line 1838: // TODO: might need to change the warning once the clang option is finalized. clang/unittests/AST/ASTImporterTest.cpp (4 lines): - line 4654: // FIXME: VarTemplatePartialSpecializationDecl does not update ("adopt") - line 6557: // FIXME: Use ImportAttributes for this test. - line 6593: // FIXME: Use ImportAttributes for this test. - line 6938: // FIXME Move these tests out of ASTImporterTest. For that we need to factor clang/lib/CodeGen/BackendUtil.cpp (4 lines): - line 924: // FIXME: The command line parser below is not thread-safe and shares a global - line 1177: // TODO: Consider add more passes like in - line 1502: // FIXME: make the new PM work with the codegen pipeline. - line 1519: // FIXME: Should we handle this error differently? mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp (4 lines): - line 758: // TODO: Currently fusion would not be legal if the fusable dependence is to - line 787: // TODO: Propagate RewriterBase everywhere. - line 851: // All these uses are iter_args of the outermost loop (TODO: add a check). - line 891: // TODO: Support interchange with tile + fuse. This might actually help do mlir/lib/Dialect/Arithmetic/IR/ArithmeticOps.cpp (4 lines): - line 108: /// TODO: disallow arith.constant to return anything other than signless integer - line 251: // TODO: Handle the overflow case. - line 1352: // TODO: Add remaining reduction operations. - line 1396: // TODO: Add remaining reduction operations. llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp (4 lines): - line 174: // TODO: It might be useful for any out arguments, not just privates. - line 210: // TODO: Could probably handle variadic functions. - line 276: // TODO: This is an approximation. When legalized this could be more. We - line 361: // TODO: How to preserve metadata? llvm/lib/Target/ARM/ARMTargetMachine.cpp (4 lines): - line 74: // FIXME: Unify control over GlobalMerge. - line 274: // FIXME: This is related to the code below to reset the target options, - line 448: // FIXME: This is using the thumb1 only constant value for - line 467: // FIXME: IR passes can delete address-taken basic blocks, deleting clang-tools-extra/clangd/unittests/SelectionTests.cpp (4 lines): - line 334: // FIXME: the AST has no location info for qualifiers. - line 341: // FIXME: Ideally we'd get a declstmt or the VarDecl itself here. - line 452: // FIXME: The following to should be class itself instead. - line 569: // FIXME: Doesn't select the binary operator node in llvm/lib/XRay/InstrumentationMap.cpp (4 lines): - line 131: // TODO: Test this error. - line 204: // FIXME: Figure out how to keep this consistent with the XRay runtime. - line 251: // FIXME: Create error types that encapsulate a bit more information than what - line 257: // FIXME: Extend to support non-ELF and non-x86_64 binaries. llvm/tools/llvm-objcopy/ELF/Object.cpp (4 lines): - line 2524: // TODO: Implement direct writing to the output stream (without intermediate - line 2572: // TODO: handle case where only one section needs the large index table but - line 2664: // TODO: Implement direct writing to the output stream (without intermediate - line 2753: // TODO: Implement direct writing to the output stream (without intermediate clang/lib/AST/TemplateBase.cpp (4 lines): - line 433: // FIXME: Include the type if it's not obvious from the context. - line 450: // FIXME: Include the type if it's not obvious from the context. - line 569: // FIXME: We're guessing at LangOptions! - line 580: // FIXME: We're guessing at LangOptions! clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp (4 lines): - line 358: // FIXME: enhance track back for uninitialized value for arbitrary - line 614: // FIXME: getTrackNullOrUndefValueVisitor can't handle "super" yet. - line 660: // FIXME: This won't track "self" in messages to super. - line 715: // FIXME: For now take the conservative approach that we only llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp (4 lines): - line 41: // TODO: wasm64 - line 42: // TODO: Emit TargetOpcode::CFI_INSTRUCTION instructions - line 256: // TODO: Do ".setMIFlag(MachineInstr::FrameSetup)" on emitted instructions - line 384: // TODO: This should work on a breakpoint at a function with no frame, llvm/lib/LTO/LTO.cpp (4 lines): - line 115: // FIXME: Hash more of Options. For now all clients initialize Options from - line 346: // FIXME: We may want to split the compile time and correctness - line 818: // FIXME: We should figure out what to do about commons defined by asm. - line 1066: // FIXME: this checks both LTO and ThinLTO. It happens to work as we take llvm/lib/Transforms/Utils/PredicateInfo.cpp (4 lines): - line 624: // TODO: Use this algorithm to perform fast single-variable renaming in - line 810: // TODO: Make this an assertion once RenamedOp is fully accurate. - line 823: // TODO: Make this an assertion once RenamedOp is fully accurate. - line 835: // TODO: Make this an assertion once RenamedOp is fully accurate. llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp (4 lines): - line 139: // TODO: Support other types such as StructTyID, ArrayTyID, OpaqueTyID, etc. - line 188: // TODO: Support other types such as StructTyID, ArrayTyID, OpaqueTyID, etc. - line 199: // TODO: We don't have type information about the remaining arguments, because - line 329: //FIXME: should we report or raise here? llvm/tools/sancov/sancov.cpp (4 lines): - line 530: // TODO: it would be neccessary to set proper section index here. - line 552: // TODO: it would be neccessary to set proper section index here. - line 659: // TODO: Test this error. - line 881: // TODO: it would be neccessary to set proper section index here. llvm/lib/Demangle/DLangDemangle.cpp (4 lines): - line 153: // TODO: Handle symbol back references and template instances. - line 177: // TODO: Implement symbols with types. - line 231: // TODO: Parse back references and lengthless template instances. - line 243: // TODO: Parse template instances with a length prefix. clang/lib/Serialization/MultiOnDiskHashTable.h (4 lines): - line 151: // FIXME: Be smarter about which tables we merge. - line 159: // FIXME: Don't rely on the OnDiskHashTable format here. - line 206: // FIXME: Add a reserve() to TinyPtrVector so that we don't need to make - line 279: // FIXME: Don't rely on the OnDiskHashTable format here. llvm/lib/CodeGen/MIRParser/MIRParser.cpp (4 lines): - line 450: // TODO: Recreate the machine function. - line 554: // FIXME: This is a temporary workaround until the reserved registers can be - line 903: // FIXME: Support target-specific constant pools - line 987: // TODO: Translate any source ranges as well. llvm/lib/Analysis/LoopUnrollAnalyzer.cpp (4 lines): - line 71: /// TODO: Probably it's worth to hoist the code for estimating the - line 118: // We might have a vector load from an array. FIXME: for now we just bail - line 129: // FIXME: For now we conservatively ignore out of bound accesses, but - line 135: // FIXME: For now we conservatively ignore out of bound accesses, but mlir/lib/Analysis/AffineStructures.cpp (4 lines): - line 807: // TODO: Handle AffineSymbolExpr as well. There is no reason to restrict it - line 1081: // TODO: Whenever there are local identifiers in the dependence - line 1098: // TODO: being conservative for the moment in cases that - line 1180: // TODO: This should be an assertion. Fix `addDomainFromSliceMaps` and/or llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp (4 lines): - line 47: // TODO: - line 340: // TODO: We currently implement an algorithm whose time complexity is linear in - line 468: // TODO: we could extend SLSR to float and vector types. - line 531: // TODO: handle vector GEPs llvm/include/llvm/ADT/SmallVector.h (4 lines): - line 134: this->Size = this->Capacity = 0; // FIXME: Setting Capacity to 0 is suspect. - line 695: // FIXME: Consider assigning over existing elements, rather than clearing & - line 1009: // FIXME: don't do this if they're efficiently moveable. - line 1067: // FIXME: this may not actually make any sense if we can efficiently move clang/include/clang/Parse/Parser.h (4 lines): - line 863: /// The identifier is a template name. FIXME: Add an annotation for that. - line 1240: /// - exception-specifications (TODO: C++0x) - line 1278: /// FIXME: Perhaps we should change the name of LateParsedDeclaration to - line 2173: /// A context for parsing declaration specifiers. TODO: flesh this mlir/lib/Dialect/Vector/VectorTransferPermutationMapRewritePatterns.cpp (4 lines): - line 60: // TODO: support 0-d corner case. - line 149: // TODO: support 0-d corner case. - line 208: // TODO: support 0-d corner case. - line 234: // TODO: support zero-dimension vectors natively. See: clang/include/clang/Basic/TargetInfo.h (4 lines): - line 584: /// FIXME: _BitInt is a required type in C23, so there's not much utility in - line 873: /// FIXME: This function should be removed once all targets stop using the - line 1082: // FIXME: These should return a real error instead of just true/false. - line 1304: /// FIXME: This part should be fixed so that we can change handleTargetFeatures llvm/lib/Target/Mips/MipsCallLowering.cpp (4 lines): - line 30: /// FIXME: Relying on this is unsound - line 58: /// FIXME: Relying on this is unsound - line 144: // FIXME: This should only be immutable for non-byval memory arguments. - line 506: // FIXME: Should use MipsCCState::getSpecialCallingConvForCallee, but it compiler-rt/lib/orc/elfnix_platform.cpp (4 lines): - line 144: // FIXME: Move to thread-state. - line 234: // FIXME: Handle out-of-memory errors, returning -1 if OOM. - line 243: // FIXME: Should atexits be allowed to run concurrently with access to - line 283: // FIXME: Avoid creating string copy here. llvm/lib/Option/OptTable.cpp (4 lines): - line 425: // FIXME: This is searching much more than necessary, but I am - line 470: // FIXME: Handle '@' args (or at least error on them). - line 626: // FIXME: Split out option groups. - line 651: // FIXME: Split out option groups. llvm/lib/Transforms/IPO/PartialInlining.cpp (4 lines): - line 735: // FIXME Hackery needed because ClonedFuncBFI is based on the function BEFORE - line 758: // FIXME: add an option for this. - line 850: // TODO: Ideally we should share Inliner's InlineCost Analysis code. - line 1233: // FIXME: the code extractor may hoist/sink more code clang/lib/StaticAnalyzer/Checkers/WebKit/UncountedLocalVarsChecker.cpp (4 lines): - line 51: // FIXME: should be defined by anotations in the future - line 89: .begin()) // FIXME - should we handle all of the parents? - line 111: .begin()) // FIXME - should we handle all of the parents? - line 176: return; // FIXME: later on we might warn on uninitialized vars too llvm/lib/Transforms/Utils/Debugify.cpp (4 lines): - line 263: // FIXME: There must be an easier way to remove an operand from a NamedMDNode. - line 536: // TODO: Collect metadata other than DISubprograms. - line 588: // TODO: The name of the module could be read better? - line 639: // TODO: This, along with a check for non-null value operands, should be llvm/lib/Support/MemoryBuffer.cpp (4 lines): - line 298: // TODO: Is 16-byte alignment enough? We copy small object files with large - line 351: // FIXME: this chunk of code is duplicated, but it avoids a fstat when - line 375: // FIXME: We should reorganize again getPageSize() on Win32. - line 525: // FIXME: That isn't necessarily true, we should try to mmap stdin and llvm/lib/Transforms/Scalar/GuardWidening.cpp (4 lines): - line 415: // Be conservative and don't widen into a sibling loop. TODO: If the - line 432: // here. TODO: evaluate cost model for spurious deopt - line 457: // TODO: diamond, triangle cases - line 541: // TODO: Support InvertCondition case? bolt/lib/Passes/FrameOptimizer.cpp (4 lines): - line 91: // FIXME: Change to remove IsSimple == 0. We're being conservative here, - line 109: // TODO: Change push/pops to stack adjustment instruction - line 157: // TODO: Implement an interface of eraseInstruction that works out the - line 200: // TODO: Change push/pops to stack adjustment instruction llvm/lib/DebugInfo/DWARF/DWARFDie.cpp (4 lines): - line 119: // FIXME: We should have pretty printers per language. Currently we print - line 460: // FIXME: check T's DW_AT_type to see if it's signed or not (since - line 480: // TODO: K&R: the meaning of '\\a' is different in traditional C - line 599: // FIXME: We should have pretty printers per language. Currently we print llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp (4 lines): - line 33: // FIXME: This is also necessary, because some passes that run after - line 80: // FIXME: I think for bottom up scheduling, the register pressure is cached - line 95: // FIXME: Better heuristics to determine whether to prefer SGPRs or VGPRs. - line 101: // FIXME: We have to enter REG-EXCESS before we reach the actual threshold clang/lib/Tooling/RefactoringCallbacks.cpp (4 lines): - line 94: // FIXME: better error handling. For now, just print error message in the - line 113: // FIXME: better error handling. For now, just print error message in the - line 133: // FIXME: better error handling. For now, just print error message in the - line 144: // FIXME: better error handling. For now, just print error message in the llvm/lib/CodeGen/RegisterCoalescer.cpp (4 lines): - line 528: // FIXME: Coalescer should support subregs symmetrically. - line 867: // FIXME: The code below tries to commute 'UseOpIdx' operand with some other - line 941: // FIXME These don't have an instruction index. Not clear we have enough - line 4106: // TODO: Could specifically disable coalescing registers live across setjmp llvm/lib/CodeGen/CommandFlags.cpp (4 lines): - line 238: // FIXME: Doesn't have way to specify separate input and output modes. - line 507: // FIXME: Should have separate input and output flags - line 664: // FIXME: Command line flag should expose separate input/output modes. - line 671: // FIXME: Command line flag should expose separate input/output modes. llvm/lib/IR/Instruction.cpp (4 lines): - line 579: case Instruction::Fence: // FIXME: refine definition of mayReadFromMemory - line 597: case Instruction::Fence: // FIXME: refine definition of mayWriteToMemory - line 708: // FIXME: Temporarily assume that all side-effect free intrinsics will - line 771: // TODO: Should allow icmp/fcmp? clang/utils/analyzer/exploded-graph-rewriter.py (4 lines): - line 153: # TODO: It's difficult to display a good diff when frame numbers shift. - line 166: # TODO: Produce a nice diff. - line 169: # TODO: Add support for added/removed. - line 529: # TODO: Print more stuff for other kinds of points. mlir/lib/Dialect/Linalg/Transforms/Promotion.cpp (4 lines): - line 375: // TODO: Check all subviews requested are bound by a static constant. - line 376: // TODO: Check that the total footprint fits within a given size. - line 409: // TODO: signalPassFailure() ? - line 416: // TODO: support more transformation options in the pass. lldb/source/Symbol/CompactUnwindInfo.cpp (4 lines): - line 1567: // FIXME we don't have a way to represent reg saves at an specific - line 1581: // FIXME we don't have a way to represent reg saves at an specific - line 1591: // FIXME we don't have a way to represent reg saves at an specific - line 1601: // FIXME we don't have a way to represent reg saves at an specific openmp/tools/Modules/FindOpenMPTarget.cmake (4 lines): - line 75: # TODO: Support Fortran - line 76: # TODO: Support multiple offloading targets by setting the "OpenMPTarget" target - line 78: # TODO: Configure target architecture without a variable (component NVPTX_SM_70) - line 79: # TODO: Test more compilers polly/lib/Transform/ScheduleTreeTransform.cpp (4 lines): - line 459: // TODO: Append llvm.loop.disable_heustistics metadata unless overridden by - line 796: // TODO: Maybe it is possibly to transfer the 'permutability' property from - line 820: // TODO: Non-bands could be interpreted as a band with just as single - line 1019: // TODO: Diagnose if not enumerable or depends on a parameter. llvm/lib/Target/AMDGPU/AMDGPUPropagateAttributes.cpp (4 lines): - line 57: // TODO: Support conservative min/max merging instead of cloning. - line 151: // TODO: We shall only need a one instance of module pass, but that needs to be - line 202: // TODO: search for clone's clones. - line 250: // FIXME: handle bitcasted callee, e.g. clang-tools-extra/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp (4 lines): - line 13: /// FIXME: Use Diagnostics for output instead of llvm::errs(). - line 149: // FIXME: Find an efficient way to deduplicate on diagnostics level. - line 221: // FIXME: This will report conflicts by pair using a file+offset format - line 266: // FIXME: Use Diagnostics for outputting errors. llvm/lib/Target/ARM/ARMSLSHardening.cpp (4 lines): - line 169: // FIXME: This could also check if there are any indirect calls in the - line 182: // FIXME: It probably would be possible to filter which thunks to produce - line 190: // FIXME: How to better communicate Register number, rather than through - line 386: // FIXME: When LLVM moves to C++17, these can become folds clang/lib/Tooling/Transformer/SourceCode.cpp (4 lines): - line 85: // FIXME: makeFileCharRange() has the disadvantage of stripping off "identity" - line 129: // FIXME: Support using the spelling loc here for cases where we want to - line 133: // FIXME: Should check isTokenRange(), for the (rare) case that - line 172: // FIXME: This handling of macros is more conservative than necessary. When compiler-rt/lib/xray/xray_mips64.cpp (4 lines): - line 158: // FIXME: In the future we'd need to distinguish between non-tail exits and - line 165: // FIXME: Implement in mips64? - line 171: // FIXME: Implement in mips64? - line 177: // FIXME: this will have to be implemented in the trampoline assembly file llvm/lib/Target/AVR/AVRInstrInfo.cpp (4 lines): - line 86: case AVR::LDDWRdYQ: { //: FIXME: remove this once PR13375 gets fixed - line 182: //: FIXME: remove this once PR13375 gets fixed - line 292: //: TODO: add here jmp - line 452: //: TODO: add here the missing jmp instructions once they are implemented llvm/lib/Target/M68k/M68kInstrInfo.cpp (4 lines): - line 344: // TODO use xor r,r to decrease size - line 494: // FIXME M68010 or later is required - line 611: // FIXME: There is an important caveat and two assumptions - line 788: /// TODO Move this function to M68kMachineFunctionInfo. llvm/tools/llvm-objdump/llvm-objdump.cpp (4 lines): - line 104: // TODO Replace this with OptTable API once it adds extrahelp support. - line 861: // TODO: implement for other file formats. - line 1668: // FIXME: for now initialize MCObjectFileInfo with default values - line 2155: // TODO: Extract DWARF dump tool to objdump. clang/lib/Tooling/Refactoring/RefactoringActions.cpp (4 lines): - line 27: // FIXME: Rewrite the Actions to avoid duplication of descriptions/names with - line 72: // FIXME: Rewrite the Actions to avoid duplication of descriptions/names with - line 88: // FIXME: Use NewNameOption. - line 108: // FIXME: Filter out rules that are not supported by a particular client. openmp/runtime/src/kmp_stub.cpp (4 lines): - line 62: // TODO: Analyze KMP_VERSION environment variable, print - line 303: // TODO: Assert or abort here. - line 323: // TODO: Assert or abort here. - line 328: // TODO: gettimeofday() returns in microseconds, but what the precision? compiler-rt/lib/msan/msan_interceptors.cpp (4 lines): - line 13: // FIXME: move as many interceptors as possible into - line 273: // FIXME: implement, but don't call REAL(malloc_stats)! - line 465: // FIXME: support *wprintf in common format interceptors. - line 1230: // FIXME: ask frontend whether we need to return failure. compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp (4 lines): - line 515: // FIXME: implement actual blocking. - line 996: // FIXME: This should really live in some "InitializePlatform" method. - line 1127: // FIXME: instead of filtering DYLD_INSERT_LIBRARIES here, do it in - line 1319: // FIXME implement on this platform. llvm/lib/Target/X86/X86CallFrameOptimization.cpp (4 lines): - line 217: // TODO: Callee-pop functions should have a smaller penalty, because - line 379: // TODO: Extend this to something that covers more cases. - line 424: // TODO: Support the fi case. This should probably work now that we - line 581: // TODO: This is needed only if we require precise CFA. llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp (4 lines): - line 407: // TODO: consider "#pragma unroll 1" which is equivalent to "#pragma nounroll". - line 1074: // FIXME - need better way (e.g. Metadata) to avoid generating this global - line 1533: // TODO: this will need to be undone when we get to support multi-TU - line 1624: // @TODO: Extract out the real register usage clang-tools-extra/clangd/refactor/tweaks/RemoveUsingNamespace.cpp (4 lines): - line 82: // FIXME: removing the semicolon may be invalid in some obscure cases, e.g. - line 117: // FIXME: Unavailable for namespaces containing using-namespace decl. - line 171: return; // FIXME: report a warning to the users. - line 176: return; // FIXME: report these to the user as warnings? llvm/lib/Target/PowerPC/PPCTargetMachine.cpp (4 lines): - line 342: // FIXME: This is related to the code below to reset the target options, - line 361: // FIXME: It would be good to have the subtarget additions here - line 513: // FIXME: We probably don't need to run these for -fPIE. - line 515: // FIXME: LiveVariables should not be necessary here! flang/lib/Optimizer/Builder/Character.cpp (4 lines): - line 208: // TODO: add a fast path multiplying new length at compile time if the info is - line 216: // TODO: typeLen can be improved in compiled constant cases - line 217: // TODO: allow bare fir.array<> (no ref) conversion here ? - line 282: // FIXME: this temp is useless... either fir.coordinate_of needs to lld/ELF/InputFiles.cpp (4 lines): - line 877: // FIXME: Retain the first attribute section we see. The eglibc ARM - line 896: // FIXME: Validate arch tag contains C if and only if EF_RISCV_RVC is - line 899: // FIXME: Retain the first attribute section we see. Tools such as - line 1034: // FIXME: This is glibc PR20543, we should remove this hack once that has been llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp (4 lines): - line 126: // FIXME: What if we had multiple pre-existing conditional branches? - line 293: // FIXME: Is there a better way of adjusting the liveness? It shouldn't be - line 478: // FIXME: We should unconditionally split the block here. - line 886: // FIXME: find a better place for this clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp (4 lines): - line 250: // FIXME: Add tests for other types with getDecl() (e.g. RecordType) - line 1645: // FIXME: Operator ',' - line 1948: // FIXME: We probably want to add that. - line 2740: // TODO: If we could match on explicit instantiations of function templates, polly/lib/CodeGen/IslNodeBuilder.cpp (4 lines): - line 557: // TODO: For degenerated loops we could generate a plain assignment. - line 615: /// FIXME: A LLVM (function or region) pass should not touch anything outside of - line 625: /// FIXME: Instead of adding the dominance information and then dropping it - line 1167: // TODO: This is only a hot fix for SCoP sequences that use the same load polly/lib/Transform/ForwardOpTree.cpp (4 lines): - line 333: // TODO: Get the simplest access function. - line 549: // TODO: 'Translator' could also be used to map PHINodes to their incoming - line 756: // TODO: If there is a LCSSA PHI at the loop exit, use that one. - line 901: // FIXME: Intersecting lifetimes might still be possible for the roots llvm/tools/dsymutil/MachODebugMapParser.cpp (4 lines): - line 499: // TODO: Actually report errors helpfully. - line 553: // TODO: Actually report errors helpfully. - line 573: // TODO: Actually report errors helpfully. - line 583: // TODO: Actually report errors helpfully. llvm/lib/Object/ELFObjectFile.cpp (4 lines): - line 302: // TODO Propagate Error. - line 337: // FIXME: Handle version numbers. - line 491: // FIXME Encode from a tablegen description or target parser. - line 498: // TODO Propagate Error. llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp (4 lines): - line 249: // TODO: Actually report errors helpfully. - line 259: // TODO: Actually report errors helpfully. - line 266: // TODO: Actually report errors helpfully. - line 275: // TODO: Actually report errors helpfully. llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp (4 lines): - line 832: // FIXME: Can tblgen help at all here to verify there aren't other instructions - line 883: // TODO: It turns out we need a decent amount of plumbing for the target - line 918: // TODO: There are lots of other tricks we could apply for increasing - line 1090: // FIXME: handle 32-bit mode clang/lib/Interpreter/IncrementalParser.cpp (4 lines): - line 88: // FIXME: Move the truncation aspect of this into Sema, we delayed this till - line 157: // FIXME: Clang does not call ExitScope on finalizing the regular TU, we - line 202: // FIXME: Do not reset the pragma handlers. - line 250: // FIXME: Create SourceLocation, which will allow clang to order the overload clang/utils/TableGen/NeonEmitter.cpp (4 lines): - line 666: // FIXME: NECESSARY??????????????????????????????????????????????????????????????????????? - line 2373: // FIXME: This loop could be made faster, but it's fast enough for now. - line 2482: // FIXME: This loop could be made faster, but it's fast enough for now. - line 2559: // FIXME: This loop could be made faster, but it's fast enough for now. clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp (4 lines): - line 179: // FIXME: HTML is currently our default output type, but if the output - line 187: // TODO: Emit an error here. - line 202: // TODO: Emit an error here. - line 324: // FIXME: This code relies on knowing what constitutes the issue hash. lld/COFF/DebugTypes.cpp (4 lines): - line 246: // TODO: Handle errors similar to symbols. - line 582: // TODO: Store this information in .debug$H so that we don't have to recompute - line 695: // TODO: Free all unneeded ghash resources now that we have a full index map. - line 969: // FIXME: The low bytes of SHA1 have low entropy for short records, which llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp (4 lines): - line 583: // FIXME: Do we need to guard against integer overflow? - line 645: // TODO: propagate field offsets - line 647: // FIXME: Here is a neat trick we can do: since both ReachSet and MemSet holds - line 794: // TODO: make sure we don't stop before the fix point is reached mlir/lib/TableGen/Operator.cpp (4 lines): - line 323: // TODO: This can be relaxed. - line 328: // TODO: Remove special cases. - line 354: // TODO: Handle attributes. - line 367: // TODO: Reconsider whether to always generate, this is more conservative llvm/lib/CodeGen/VLIWMachineScheduler.cpp (4 lines): - line 362: /// TODO: Also check whether the SU must start a new group. - line 433: // TODO: Check if this SU must end a dispatch group. - line 597: /// TODO: More heuristics will be used soon. - line 767: /// TODO: getMaxPressureDelta results can be mostly cached for each SUnit during polly/lib/Transform/ScheduleOptimizer.cpp (4 lines): - line 544: // FIXME: Prevectorization requirements are different from those checked by - line 572: // TODO: We can improve this by tracking if any necessarily beneficial - line 579: // FIXME: A schedule tree whose union_map-conversion is identical to the - line 730: // TODO: Detect disabled heuristics and no user-directed transformation llvm/lib/Target/CSKY/CSKYFrameLowering.cpp (4 lines): - line 101: // FIXME (note copied from Lanai): This appears to be overallocating. Needs - line 129: // FIXME: assumes exactly one instruction is used to save each callee-saved - line 253: // FIXME: assumes exactly one instruction is used to restore each - line 527: // TODO: Add 16-bit instruction support with immediate num llvm/lib/MC/MCObjectFileInfo.cpp (4 lines): - line 93: // TODO: Verify datarel below. - line 392: // FIXME: We're emitting LSDA info into a readonly section on ELF, even though - line 872: // TODO Consider putting each function's exception table in a separate - line 877: // TODO: Define more sections. clang/unittests/StaticAnalyzer/SValTest.cpp (4 lines): - line 98: // FIXME: The tests "GetConstType" and "GetLocAsIntType" infer the type of - line 193: // TODO: Turn it into signed long - line 221: // TODO: Change to Long when we support symbolic casts - line 385: // TODO: Change to CharTy when we support symbolic casts llvm/lib/Target/PowerPC/PPCFrameLowering.cpp (4 lines): - line 360: // FIXME: This is pretty much broken by design: hasFP() might be called really - line 908: // FIXME: HasSTUX is only read if HasRedZone is not set, in such case, we - line 1351: // FIXME: We can eliminate this limitation if we get more infomation about - line 1360: // FIXME: We only support NegProbeSize materializable by DForm currently. libcxx/include/__format/formatter.h (4 lines): - line 35: // TODO FMT Remove this once we require compilers with proper C++20 support. - line 44: // TODO FMT Disable the default template. - line 166: * TODO FMT Will probably change to support Unicode grapheme - line 198: * TODO FMT Fill will probably change to support Unicode grapheme cluster. llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp (4 lines): - line 239: // TODO: Produce G_REV32 and G_REV16 once we have proper legalization support. - line 753: // FIXME: This is duplicated with the selector. (See: selectShiftedRegister) - line 785: // FIXME: This is duplicated with the selector. (See: - line 922: // TODO: Handle v4s16 case. llvm/lib/Target/ARM/Thumb2InstrInfo.cpp (4 lines): - line 305: // FIXME: Use the scavenger to grab a scratch register. - line 396: // FIXME: Move this to ARMAddressingModes.h? - line 734: // FIXME: Not consistent. - line 748: // FIXME: Not consistent. clang/utils/analyzer/CmpRuns.py (4 lines): - line 248: # FIXME: Why is this named files, when does it have multiple - line 439: # FIXME: Add fuzzy matching. One simple and possible effective idea would - line 495: # TODO: compare_results decouples comparison from the output, we should - line 617: # TODO: change to NamedTuple llvm/lib/Transforms/IPO/Inliner.cpp (4 lines): - line 465: // FIXME for new PM: because of the old PM we currently generate ORE and - line 545: // TODO: Can remove if in SCC now. - line 785: // FIXME: Using instructions sequence is a really bad way to do this. - line 1005: // FIXME: This seems like a very heavyweight way of retaining the inline llvm/lib/FileCheck/FileCheck.cpp (4 lines): - line 760: // TODO: Support more than binop_eval_t. - line 1342: // FIXME: One easy improvement here is have the regex lib generate a single - line 1502: // FIXME: If we wanted to be really friendly we would show why the match - line 1821: // FIXME: This is a very ad-hoc check. it would be better handled in some llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp (4 lines): - line 689: // TODO: Perform a more powerful invariance analysis (ideally IPO, and ideally - line 692: // TODO: Infer invariance only at -O2. We still want to use ldg at -O0 for - line 857: // TODO: Check if we can actually use the new instructions and implement them. - line 1724: // TODO: Check if we can actually use the new instructions and implement them. clang/unittests/AST/StructuralEquivalenceTest.cpp (4 lines): - line 189: // FIXME Whether this is equivalent is dependendant on the target. - line 249: // FIXME Enable it, once the check is implemented. - line 604: // FIXME Use a common getRecordDecl with ASTImporterTest.cpp! - line 1660: // FIXME: Should be false. LabelDecl are incorrectly matched. llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp (4 lines): - line 132: // FIXME: It should also be possible to speculate a block on the critical edge - line 135: // FIXME: Handle PHIs in Tail by turning them into selects (if-conversion). - line 469: // FIXME: Real PHIs could be if-converted as long as the CmpBB values are - line 486: // FIXME: Clean them up if it happens. compiler-rt/lib/xray/xray_arm.cpp (4 lines): - line 147: XRAY_NEVER_INSTRUMENT { // FIXME: Implement in arm? - line 153: // FIXME: Implement in arm? - line 157: // FIXME: Maybe implement this better? - line 163: // FIXME: this will have to be implemented in the trampoline assembly file mlir/lib/Dialect/Affine/Transforms/AffineLoopInvariantCodeMotion.cpp (4 lines): - line 41: /// TODO: The pass is missing zero-trip tests. - line 42: /// TODO: Check for the presence of side effects before hoisting. - line 43: /// TODO: This code should be removed once the new LICM pass can handle its - line 83: // TODO: Support DMA ops. lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp (4 lines): - line 152: /* FIXME: This doesn't reflect how lldb actually launches a process. - line 160: // TODO: Fetch next state from stopped event queue then send stop event - line 182: // FIXME: Fetch data from thread. - line 287: // TODO: Implement lldb/source/Target/StopInfo.cpp (4 lines): - line 336: // TODO: We can keep a list of the breakpoints we've seen while - line 516: // FIXME: For now the callbacks have to run in async mode - the - line 812: // TODO: This condition should be checked in the synchronous part of the - line 884: // FIXME: For now the callbacks have to run in async mode - the clang/unittests/Format/FormatTestObjC.cpp (4 lines): - line 658: // FIXME: Make casts work, without breaking f()[4]. - line 939: " .aaaaaaaa];"); // FIXME: Indentation seems off. - line 940: // FIXME: This violates the column limit. - line 1407: // FIXME: The following are wrongly classified as C++ lambda expressions. clang/utils/ABITest/ABITestGen.py (4 lines): - line 227: # FIXME: Use designated initializers to access non-first - line 493: # FIXME: Wrong size. - line 505: # FIXME: Wrong size. - line 537: # FIXME: Allow overriding builtins here clang/lib/Basic/Targets/MSP430.h (4 lines): - line 54: // FIXME: Implement. - line 79: // FIXME: implement - line 91: // FIXME: Is this really right? - line 96: // FIXME: implement clang/lib/AST/ComputeDependence.cpp (4 lines): - line 60: // FIXME: This doesn't enforce the C++98 constant expression rules. - line 531: // FIXME: It's unclear that the restriction to static members here has any - line 552: // FIXME: remove the type-dependent bit from subexpressions, if the - line 606: // FIXME: move remaining dependence computation from MemberExpr::Create() clang-tools-extra/clangd/GlobalCompilationDatabase.cpp (4 lines): - line 253: // FIXME: ExpandResponseFilesDatabase appears not to provide the usual - line 325: // FIXME: the interface doesn't provide a way to virtualize FS access. - line 413: if (Opts.CompileCommandsDir) // FIXME: unify this case with config. - line 678: if (Parent.Opts.CompileCommandsDir) { // FIXME: unify with config clang-tools-extra/unittests/clang-include-fixer/IncludeFixerTest.cpp (4 lines): - line 30: // FIXME: Investigate why -fms-compatibility breaks tests. - line 176: // FIXME: Handle simple macros. - line 204: // FIXME: The header should not be added here. Remove this after we support - line 230: // FIXME: add test cases for inserting and sorting multiple headers when llvm/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.cpp (4 lines): - line 226: // TODO: Check regmasks? Do they occur anywhere except calls? - line 455: // FIXME: Call site could have norecurse on it - line 459: // TODO: If we happen to know there is no stack usage in the - line 464: // FIXME: This only benefits in the case where the kernel does not llvm/lib/Target/X86/X86DomainReassignment.cpp (4 lines): - line 221: // FIXME: Is there some better way to support this? - line 686: // TODO: KTEST is not a replacement for TEST due to flag differences. Need - line 709: // TODO: KTEST is not a replacement for TEST due to flag differences. Need - line 731: // TODO: We're also bailing of AVX512BW isn't supported since we use VK32 and llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp (4 lines): - line 50: // TODO: Remove this flag when we are confident with no regressions. - line 84: // FIXME: This pass is really intended to be invoked during IR optimization, - line 232: // FIXME: NVVMIntrRangePass is causing numerical discrepancies, - line 408: // FIXME: Needs physical registers llvm/tools/llvm-profgen/ProfileGenerator.cpp (4 lines): - line 385: // TODO: Support probe based profile generation - line 499: // FIXME: As accumulating total count per instruction caused some - line 599: // FIXME: Filter the bogus crossing function range. - line 740: // TODO: created function profile for those callers too llvm/lib/Analysis/LoopAccessAnalysis.cpp (4 lines): - line 1007: // FIXME: This should probably only return true for NUW. - line 1677: // FIXME: Should use max factor instead of max distance in bytes, which could - line 2176: // TODO: Is this really what we want? Even without FP SCEV, we may want some - line 2200: // TODO: We are currently not making a very informed decision on when it is clang/lib/CodeGen/CGObjCRuntime.h (4 lines): - line 60: // FIXME: Several methods should be pure virtual but aren't to avoid the - line 236: // FIXME: Current this just generates the Function definition, but really this - line 358: // FIXME: This probably shouldn't be here, but the code to compute - line 366: //TODO: This should include some way of selecting which runtime to target. llvm/lib/CodeGen/RegAllocGreedy.cpp (4 lines): - line 124: // FIXME: Find a good default for this flag and remove the flag. - line 303: // TODO: Make this a member variable and probably do something about hints. - line 1811: // TODO: the function currently only handles a single UseBlock; it should be - line 2687: // TODO: This is experimental and in particular, we do not model llvm/lib/MC/MCExpr.cpp (4 lines): - line 702: // FIXME: This routine (and other evaluation parts) are *incredibly* sloppy - line 824: // FIXME: This is small hack. Given - line 923: // FIXME: We need target hooks for the evaluation. It may be limited in - line 937: // FIXME: Currently the caller of this function has no way to understand flang/lib/Optimizer/Builder/BoxValue.cpp (4 lines): - line 42: llvm::report_fatal_error("TODO: substbase of BoxValue"); - line 45: llvm::report_fatal_error("TODO: substbase of MutableBoxValue"); - line 64: loc, "TODO: box value is missing type parameters")); - line 71: loc, "TODO: mutable box value is missing type parameters")); llvm/include/llvm/CodeGen/MIRYamlMapping.h (4 lines): - line 193: // TODO: Serialize the target specific register hints. - line 244: // TODO: Serialize unnamed LLVM alloca reference. - line 608: // TODO: Serialize FunctionContextIdx - line 702: // TODO: Serialize the various register masks. clang/lib/StaticAnalyzer/Core/CoreEngine.cpp (4 lines): - line 224: // TODO: Just call out the name of the most derived class - line 322: // FIXME: Use constant-folding in CFG construction to simplify this - line 403: // TODO: Handle jumping to labels - line 597: // TODO: We should run remove dead bindings here. llvm/unittests/Analysis/VectorUtilsTest.cpp (4 lines): - line 100: // FIXME: Constant splat analysis does not allow undef elements. - line 261: // FIXME: Allow undef matching with Constant (mask) splat analysis. - line 272: // FIXME: Allow undef matching with Constant (mask) splat analysis. - line 466: // TODO: This is a splat, but we don't recognize it. llvm/lib/IR/DebugInfoMetadata.cpp (4 lines): - line 711: // FIXME: Implement this string-enum correspondence with a .def file and macros, - line 1134: // FIXME: A better way to implement this would be to add a local variable - line 1287: // FIXME: This seems fragile. Nothing that verifies that these elements - line 1475: // FIXME: We *could* preserve the lowest fragment of a constant offset clang/unittests/Tooling/Syntax/TokensTest.cpp (4 lines): - line 166: // FIXME: pass proper LangOptions. - line 477: // FIXME: the #define directives should not be glued together. - line 544: // FIXME: test tokens with digraphs and UCN identifiers. - line 990: // FIXME: these should succeed, but we do not support macro arguments yet. lldb/include/lldb/Target/StackFrameList.h (4 lines): - line 118: // TODO: The old stack frame list is used to fill in missing frame info - line 125: // TODO: This mutex may not always be held when required. In particular, uses - line 143: // TODO: Use an optional instead of UINT32_MAX to denote invalid values. - line 148: // TODO: Use an optional instead of UINT32_MAX to denote invalid values. clang/lib/Driver/ToolChains/Darwin.h (4 lines): - line 168: /// FIXME: This API is intended for use with embedded libraries only, and is - line 284: // FIXME: This should be eliminated. What we want to do is make this part of - line 352: // FIXME: Eliminate these ...Target functions and derive separate tool chains - line 357: // FIXME: For now, allow reinitialization as long as values don't llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerCombiner.cpp (4 lines): - line 63: // Now check for an fadd operation. TODO: expand this for integer add? - line 112: // TODO: check if extended build vector as well. - line 118: // TODO: check if extended build vector as well. - line 146: // TODO: consider lowering more cases, e.g. C = 14, -6, -14 or even 45 clang/lib/Driver/ToolChains/Arch/X86.cpp (4 lines): - line 32: // FIXME: Reject attempts to use -march=native unless the target matches - line 35: // FIXME: We should also incorporate the detected target features for use - line 79: // FIXME: Need target hooks. - line 177: // FIXME: Add a warning about failing to specify `-mretpoline` and llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp (4 lines): - line 145: // FIXME: ld64 currently handles internal pointer-sized relocations - line 207: // FIXME: Should this always be extern? - line 216: // FIXME: x86_64 sets the type to a branch reloc here. Should we do - line 261: // FIXME: We should probably just synthesize an external symbol and use clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp (4 lines): - line 61: // FIXME: The proper thing to do is to really iterate over the - line 98: // FIXME: Eventually this logic should actually do dispatches to - line 143: // FIXME: Eventually all pre- and post-checks should live in VisitStmt. - line 181: // FIXME: This ignores many potential bugs (). llvm/lib/ExecutionEngine/SectionMemoryManager.cpp (4 lines): - line 98: // FIXME: It would be useful to define a default allocation size (or add - line 101: // FIXME: Initialize the Near member for each memory group to avoid - line 108: // FIXME: Add error propagation to the interface. - line 150: // FIXME: Should in-progress permissions be reverted if an error occurs? mlir/lib/Dialect/Vector/VectorUnrollDistribute.cpp (4 lines): - line 113: // TODO: support 0-d corner case. - line 165: // TODO: support 0-d corner case. - line 480: // TODO: support 0-d corner case. - line 529: // TODO: support 0-d corner case. flang/runtime/descriptor-io.h (4 lines): - line 41: // TODO (perhaps as a nontrivial but small starter project): implement - line 422: // TODO: case double/double - line 442: // TODO: case double/double - line 455: // TODO cases 2, 4 llvm/lib/Transforms/Scalar/LoopFuse.cpp (4 lines): - line 1088: // TODO: isKnownPredicate doesnt work well when one SCEV is loop carried (by - line 1148: dbgs() << "TODO: Implement pred/succ dependence handling!\n"); - line 1150: // TODO: Can we actually use the dependence info analysis here? - line 1679: // TODO: In the future, we can handle non-empty exit blocks my merging any mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-yaml-gen.cpp (4 lines): - line 41: // TODO: Since this is a schema/part of the contract, it should be moved to - line 707: // TODO: Possibly lift into a top-level method. - line 797: // TODO: Assert that dim and symbol count match the first. - line 808: // TODO: This needs to be memoized and/or converted to non-parser based llvm/utils/lit/lit/llvm/config.py (4 lines): - line 61: # FIXME: lld uses the first, other projects use the second. - line 247: # FIXME: Rather than just getting the version, we should have clang - line 454: # FIXME: Should we have a tool that enforces this? - line 554: # FIXME: Find nicer way to prohibit this. llvm/lib/Support/X86TargetParser.cpp (4 lines): - line 180: // FIXME: That doesn't match gcc. - line 452: // FIXME: Can we avoid a linear search here? The table might be sorted by - line 567: // FIXME: These two aren't really implemented and just exist in the feature - line 652: // FIXME: This shouldn't happen, but may not have all features in the table flang/include/flang/Frontend/CompilerInvocation.h (4 lines): - line 55: // TODO: Merge with or translate to parserOpts_. We shouldn't need two sets of - line 60: // TODO: Merge with or translate to frontendOpts_. We shouldn't need two sets - line 68: // TODO: Merge with or translate to frontendOpts_. We shouldn't need two sets - line 188: // TODO: We should map frontendOpts_ to parserOpts_ instead. For that, we llvm/lib/MC/MCAssembler.cpp (4 lines): - line 76: // FIXME FIXME FIXME: There are number of places in this file where we convert - line 201: // FIXME: This code has some duplication with recordRelocation. We should - line 514: // FIXME: Embed in fragments instead? - line 537: // FIXME: This error shouldn't actually occur (the front end should emit clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp (4 lines): - line 193: // FIXME: do not report these token to Preprocessor.TokenWatcher. - line 445: // TODO: implement those - line 464: // FIXME: This may happen if we have __attribute__((...)) on the function. - line 488: // FIXME: this could be done better, by performing a lookup of all llvm/lib/Target/ARM/ARMInstructionSelector.cpp (4 lines): - line 79: // FIXME: This is necessary because DAGISel uses "Subtarget->" and GlobalISel - line 669: // FIXME: Taking advantage of MOVT for ELF is pretty involved, so we don't - line 737: MIB.addReg(ARM::R9) // FIXME: don't hardcode R9 - line 1102: // LDRH has a funny addressing mode (there's already a FIXME for it). lldb/source/Target/StackFrame.cpp (3 lines): - line 1816: prev_frame.GetStackID()); // TODO: remove this after some testing - line 1828: curr_frame.GetStackID()); // TODO: remove this after some testing - line 1898: // TODO: Give here a one time warning if source file is missing. llvm/utils/gn/secondary/lldb/source/Host/BUILD.gn (3 lines): - line 12: # FIXME: - line 99: # FIXME: Maybe define NO_XPC_SERVICES - line 137: # FIXME: llvm/tools/llvm-objcopy/llvm-objcopy.cpp (3 lines): - line 137: // TODO: support output formats other than ELF. - line 153: // FIXME: Currently, we call elf::executeObjcopyOnRawBinary even if the - line 410: // TODO: Move these lines, which are copied from lib/Support/CommandLine.cpp, llvm/lib/CodeGen/MachineCSE.cpp (3 lines): - line 184: // FIXME: We should trivially coalesce subregister copies to expose CSE - line 415: // FIXME: we should be able to hoist loads with no other side effects if - line 434: // FIXME: Heuristics that works around the lack the live range splitting. clang/lib/Basic/Targets/Mips.cpp (3 lines): - line 241: // FIXME: It's valid to use O32 on a 64-bit CPU but the backend can't handle - line 254: // FIXME: It's valid to use O32 on a mips64/mips64el triple but the backend - line 263: // FIXME: It's valid to use N32/N64 on a mips/mipsel triple but the backend llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp (3 lines): - line 417: // FIXME: add X86-style branch swap - line 439: // FIXME: Try combining conditions like X86 does. Should be easy on Z! - line 952: // TODO: It might be beneficial to select RISBG and shorten to AND instead. clang/lib/Edit/RewriteObjCFoundationAPI.cpp (3 lines): - line 106: /// FIXME: Remove this when these classes start using 'instancetype'. - line 889: // FIXME: Make determination of operator precedence more general and - line 1101: // FIXME: Use a custom category name to distinguish migration diagnostics. llvm/lib/Transforms/Scalar/DivRemPairs.cpp (3 lines): - line 269: // FIXME: We could handle more hoisting cases. - line 362: // TODO: We need a undef-specific checking function in ValueTracking - line 439: // TODO: This pass just hoists/replaces math ops - all analyses are preserved? clang/lib/Basic/OpenMPKinds.cpp (3 lines): - line 583: // TODO add next directives. - line 605: Kind == OMPC_in_reduction; // TODO add next clauses like 'reduction'. - line 700: // TODO: 'loop' may require different capture regions depending on the bind llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp (3 lines): - line 89: // FIXME: Remove these!!! - line 136: // FIXME: I believe this is broken, I don't think the linker can understand - line 558: // FIXME: Currently, these are never generated (see code below). I cannot llvm/include/llvm/Analysis/LoopIterator.h (3 lines): - line 38: // TODO: Explore the possibility to implement LoopBlocksTraversal in terms of - line 96: /// TODO: This could be generalized for any CFG region, or the entire CFG. - line 230: /// TODO: If anyone is interested, we could record preorder numbers here. lldb/source/Plugins/REPL/Clang/ClangREPL.cpp (3 lines): - line 26: // FIXME: There isn't a way to ask CPlusPlusLanguage and ObjCLanguage for - line 70: // FIXME: There isn't a good way to know if the input source is complete or - line 78: // FIXME: Not implemented. clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp (3 lines): - line 328: // TODO: We might want to report double free here. - line 446: // TODO: This logic is the same as in Malloc checker. - line 584: // FIXME: This branch doesn't make any sense at all, but it is an overfitted polly/lib/CodeGen/CodegenCleanup.cpp (3 lines): - line 49: // TODO: How to make parent passes discoverable? - line 50: // TODO: Should be sensitive to compiler options in PassManagerBuilder, to - line 56: // TODO: These are non-conditional passes that run between llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp (3 lines): - line 640: // FIXME: This is incorrect, Operands are owned by unique_ptr with a default - line 1355: /// FIXME: This is a hack. - line 1666: // FIXME: Right now, the parser always allows any available bolt/lib/Rewrite/MachORewriteInstance.cpp (3 lines): - line 237: // TODO: It happens for some symbols (e.g. __mh_execute_header). - line 512: // TODO: Refactor addRuntimeLibSections to work properly on Mach-O - line 575: // TODO: Refactor addRuntimeLibSections to work properly on Mach-O and libunwind/src/Registers.hpp (3 lines): - line 2859: // FIXME: DSP accumulator registers, MSA registers - line 3177: // FIXME: Hard float, DSP accumulator registers, MSA registers - line 4116: // FIXME: Need to store not only scalar registers but also vector and vector llvm/lib/CodeGen/MachineBasicBlock.cpp (3 lines): - line 216: // FIXME: This needs to change if we wish to bundle labels - line 233: // FIXME: This needs to change if we wish to bundle labels / dbg_values - line 1018: DebugLoc DL; // FIXME: this is nowhere llvm/lib/Analysis/ConstraintSystem.cpp (3 lines): - line 36: // FIXME do not use copy - line 48: // FIXME do not use copy - line 53: // FIXME: can we do better than just dropping things here? clang-tools-extra/clangd/Selection.cpp (3 lines): - line 335: // FIXME: use whole #include directive, not just the filename string. - line 359: // FIXME: also check ( and ) for function-like macros? - line 645: // FIXME: TypeLoc::getBeginLoc()/getEndLoc() are pretty fragile clang/lib/Driver/ToolChains/Flang.cpp (3 lines): - line 57: // TODO: Once code-generation is available, this will need to be commented - line 67: // TODO: Once code-generation is available, this will need to be commented - line 124: // TODO: Replace flang-new with flang once the new driver replaces the llvm/lib/Demangle/MicrosoftDemangle.cpp (3 lines): - line 970: // FIXME: Propagate out-of-memory as an error? - line 1288: // FIXME: Propagate out-of-memory as an error? - line 1452: // FIXME: Propagate out-of-memory as an error? llvm/lib/Transforms/Coroutines/CoroSplit.cpp (3 lines): - line 317: // FIXME: We should refactor this once there is other language - line 878: // TODO: maybe there should be a way to suppress this during cloning? - line 1709: // FIXME: pass the required alignment llvm/lib/Analysis/LoopPass.cpp (3 lines): - line 243: // FIXME: Loop-sink currently break LCSSA. Fix it and reenable the - line 382: // FIXME: Report this to dbgs() only once per function. - line 385: // FIXME: Delete loop from pass manager's queue? llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp (3 lines): - line 223: // FIXME: Mask reg operations are probably ok if "this" VLMAX is larger - line 225: // FIXME: The policy bits can probably be ignored for mask reg operations. - line 279: // TODO: Move into hasCompatibleVTYPE? mlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp (3 lines): - line 178: // TODO: atm we just bail because a stronger analysis is needed for these - line 283: // TODO: don't hardcode /*numIvs=*/1. - line 456: // TODO: may want to memoize this information for performance but it llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp (3 lines): - line 149: // FIXME: Do we really want to second-guess the IR in isel? - line 188: // FIXME: Overaligned static allocas should be grouped into - line 252: // FIXME: SEH catchpads do not create EH scope/funclets, so we could avoid llvm/utils/gn/secondary/lldb/source/DataFormatters/BUILD.gn (3 lines): - line 7: #"//lldb/source/Interpreter", # FIXME: Dependency cycle. - line 8: #"//lldb/source/Symbol", # FIXME: 3-hop Dependency cycle (DataFormatters->Symbol->Expression->Interpreter->DataFormatters) - line 9: #"//lldb/source/Target", # FIXME: 3-hop Dependency cycle (DataFormatters->Target->Expression->Interpreter->DataFormatters) llvm/include/llvm/Support/YAMLTraits.h (3 lines): - line 642: // FIXME: using parseBool is causing multiple tests to fail. - line 816: // FIXME: Force integral conversion to allow strong typedefs to convert. - line 1883: // FIXME: The parser does not support explicit documents terminated with a llvm/lib/FuzzMutate/RandomIRBuilder.cpp (3 lines): - line 78: // TODO: We could potentially validate these, but for now just leave indices - line 100: // TODO: Replacing operands of intrinsics would be interesting, but - line 148: // TODO: Check if this is horribly expensive. mlir/lib/Dialect/Vector/VectorUtils.cpp (3 lines): - line 195: /// TODO: could also be implemented as a collect parents followed by a - line 244: // TODO: replace once we have 0-d vectors. - line 264: /// TODO: there should be a single function for all ops to do this so we clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp (3 lines): - line 46: // FIXME: Eventually replace RegionRawOffset with this class. - line 80: // TODO: once the constraint manager is smart enough to handle non simplified - line 241: // FIXME: This diagnostics are preliminary. We should get far better pstl/include/pstl/internal/unseq_backend_simd.h (3 lines): - line 63: // TODO: check whether __simd_first() can be used here - line 402: //TODO: to consider tuning block_size for various data types - line 412: //TODO: to improve SIMD vectorization compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp (3 lines): - line 11: // FIXME: move as many interceptors as possible into - line 548: // FIXME: put everything below into a common extern "C" block? - line 581: // FIXME: any reason to have a separate declaration? llvm/include/llvm/Analysis/LazyCallGraph.h (3 lines): - line 110: /// FIXME: This class is named LazyCallGraph in a lame attempt to distinguish - line 773: /// FIXME: We could possibly optimize this quite a bit for cases where the - line 1183: /// FIXME: We should consider newer variants such as Nuutila. clang/include/clang/AST/TemplateBase.h (3 lines): - line 311: // FIXME: Provide a way to read the integral data without copying the value. - line 408: // FIXME: We'd like to just use the qualifier in the TemplateName, - line 678: // FIXME: The parameter Deps is the result populated by this method, the llvm/include/llvm/Support/Compiler.h (3 lines): - line 161: // TODO: remove this workaround when PR33518 is resolved. - line 195: // FIXME: Provide this for PE/COFF targets. - line 508: // FIXME: Move this to a private config.h as it's not usable in public headers. mlir/tools/mlir-tblgen/OpDocGen.cpp (3 lines): - line 92: // TODO: We should link to the trait/documentation of it. That also means we - line 163: // TODO: Attributes are only documented by TableGen name, with no further - line 317: // TODO: Add link between use and def for types clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp (3 lines): - line 1292: // FIXME: doesn't work: no ExpectedType set in ParseCXXNewExpression. - line 1392: // FIXME: figure out why ID(foo (foo(10), )) doesn't work when preserving - line 2241: // FIXME: make code complete and signature help consistent, figure out which llvm/lib/Transforms/Scalar/GVNHoist.cpp (3 lines): - line 411: // TODO: Remove fully-redundant expressions. - line 570: // FIXME: use lazy evaluation of VN to avoid the fix-point computation. - line 1217: // TODO: We can relax this for targets like AArch64 as they have more llvm/lib/CodeGen/WinEHPrepare.cpp (3 lines): - line 1083: // TODO: Share loads when one use dominates another, or when a catchpad exit - line 1118: // TODO: improve store placement. Inserting at def is probably good, but need - line 1120: // TODO: identify related phi nodes that can share spill slots, and share them llvm/lib/CodeGen/AsmPrinter/WinException.cpp (3 lines): - line 246: // FIXME: This means cleanup funclets cannot handle exceptions. Given that - line 620: // FIXME: We need to emit separate EH tables for cleanups. - line 964: // FIXME: assert that NewState is between CatchLow and CatchHigh. flang/lib/Optimizer/Builder/MutableBox.cpp (3 lines): - line 422: // TODO: call finalizer if any. - line 644: // TODO: run initializer if any. Currently, there is no way to know this is - line 718: // TODO: clang/include/clang/AST/ExprConcepts.h (3 lines): - line 156: // FIXME: use RequirementDependence to model dependence? - line 163: // FIXME: Store diagnostics semantically and not as prerendered strings. - line 288: // TODO: Can we maybe not save the whole template parameter list and just llvm/lib/Target/AArch64/AArch64ConditionOptimizer.cpp (3 lines): - line 54: // TODO: maybe handle TBNZ/TBZ the same way as CMP when used instead for "a < 0" - line 55: // TODO: handle other conditional instructions (e.g. CSET) - line 56: // TODO: allow second branching to be anything if it doesn't require adjusting clang-tools-extra/modularize/Modularize.cpp (3 lines): - line 379: // FIXME: The Location class seems to be something that we might - line 889: // FIXME: use newFrontendActionFactory. - line 968: // FIXME: Could we provide information about which preprocessor conditionals clang/lib/Sema/SemaObjCProperty.cpp (3 lines): - line 2464: // FIXME: The synthesized property we set here is misleading. We almost always - line 2643: // FIXME: Improve the reported location. - line 2803: // FIXME: Implement warning dependent on NSCopying being polly/lib/CodeGen/IslAst.cpp (3 lines): - line 217: // TODO: We will need to change isParallel to stop the unwrapping - line 442: /// TODO: Improve this analysis and extract it to make it usable in other - line 609: // TODO: Decide this based on the number of loop iterations that will be llvm/lib/Analysis/LazyCallGraph.cpp (3 lines): - line 1106: // FIXME: We should try to find a way to avoid this (rather expensive) edge - line 1361: // FIXME: It'd be nice to change the APIs so that we returned an iterator - line 1504: // FIXME: This is unnecessarily restrictive. We should be able to remove clang-tools-extra/clangd/unittests/RenameTests.cpp (3 lines): - line 726: // FIXME: v selecting here results in renaming Field. - line 904: {R"cpp(// FIXME: rename virtual/override methods is not supported yet. - line 1446: // FIXME: explicit template specializations are not supported due the llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp (3 lines): - line 114: // TODO: Print error messages in failure logs, use them to audit this list. - line 458: // FIXME: Implement async lookup - line 476: // See FIXME above llvm/utils/gn/secondary/lldb/source/Expression/BUILD.gn (3 lines): - line 10: #"//lldb/source/Symbol", # FIXME: Dependency cycle. - line 11: #"//lldb/source/Target", # FIXME: Dependency cycle. - line 19: # FIXME: libcxx/include/__format/format_context.h (3 lines): - line 37: // TODO FMT Remove this once we require compilers with proper C++20 support. - line 72: // TODO FMT Implement [format.context]/4 - line 130: // TODO FMT Validate whether lazy creation is the best solution. compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_format.inc (3 lines): - line 339: // FIXME: actually use wcslen() to calculate it. - line 543: // FIXME: properly support starred precision for strings. - line 557: // FIXME: Properly support wide-character strings (via wcsrtombs). llvm/lib/Target/TargetLoweringObjectFile.cpp (3 lines): - line 362: // FIXME: Need a better predicate for this: what about custom entries? - line 368: // FIXME: this isn't the right predicate, should be based on the MCSection - line 428: // FIXME: It's not clear what, if any, default this should have - perhaps a llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp (3 lines): - line 389: // FIXME: If chains have interdependencies, for example: - line 415: // FIXME: Does this need to be configurable? - line 643: // FIXME: We could extend to handle the non-kill cases for more coverage. llvm/lib/Support/CrashRecoveryContext.cpp (3 lines): - line 141: // FIXME: Shouldn't this be a refcount or something? - line 288: // TODO: We can capture the stack backtrace here and store it on the - line 466: // FIXME: Portability. llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp (3 lines): - line 347: // TODO: Make r2 allocatable on AIX/XCOFF for some leaf functions. - line 605: // FIXME: Currently limited to spilling GP8RC. A follow on patch will add - line 1474: // FIXME: This should be factored out to a separate function as prefixed llvm/lib/CodeGen/ExpandVectorPredication.cpp (3 lines): - line 186: // TODO add caching - line 198: // TODO add caching - line 400: // TODO add caching clang/lib/Driver/Action.cpp (3 lines): - line 107: // TODO: Add other programming models here. - line 124: // TODO: Add other programming models here. - line 160: // TODO: Add other programming models here. llvm/lib/Target/X86/X86FloatingPoint.cpp (3 lines): - line 530: // FIXME: We could keep these live registers around as zombies. They may need - line 554: // FIXME: This can probably be combined with the shuffle below. - line 981: /// FIXME: Is there a better algorithm than insertion sort? llvm/lib/CodeGen/PrologEpilogInserter.cpp (3 lines): - line 617: // FIXME: Find a way to express this in getRequiredProperties. - line 912: // FIXME: Once this is working, then enable flag will change to a target - line 1305: // TODO: This code should be commoned with the code for llvm/lib/Transforms/Utils/LoopSimplify.cpp (3 lines): - line 581: // FIXME: It isn't clear we can't rely on LLVM to TRE this. - line 877: // FIXME: Restore this code when we re-enable verification in verifyAnalysis - line 923: // FIXME: This routine is being called mid-way through the loop pass manager llvm/include/llvm/ADT/SetVector.h (3 lines): - line 176: // FIXME: No need to use the non-const iterator when built with - line 247: /// TODO: We should be able to use set_union from SetOperations.h, but - line 262: /// TODO: We should be able to use set_subtract from SetOperations.h, but polly/lib/Support/RegisterPasses.cpp (3 lines): - line 395: // FIXME: This dummy ModulePass keeps some programs from miscompiling, - line 412: // FIXME: PollyTrackFailures is user-controlled, should not be set - line 484: // TODO add utility passes for the various command line options, once they're llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp (3 lines): - line 206: // FIXME: This pass causes verification failures. - line 1848: // duplexes. (TODO: This will invalidate the L4_return* instructions to form a - line 1882: // TODO: We should really be able to check all the incoming edges if this is llvm/lib/Target/AVR/AVRExpandPseudoInsts.cpp (3 lines): - line 916: // FIXME: this returns the new value (after the operation), not the old - line 1090: //: TODO: need to reverse this order like inw and stsw? - line 2268: case AVR::LDDWRdYQ: //: FIXME: remove this once PR13375 gets fixed llvm/lib/CodeGen/CFIInstrInserter.cpp (3 lines): - line 223: // TODO: Add support for handling cfi_def_aspace_cfa. - line 231: // TODO: Add support for handling cfi_remember_state. - line 239: // TODO: Add support for handling cfi_restore_state. lldb/source/Plugins/Process/minidump/MinidumpParser.cpp (3 lines): - line 150: // TODO what to do about big endiand flavors of arm ? - line 151: // TODO set the arm subarch stuff if the minidump has info about it - line 175: // TODO add all of the OSes that Minidump/breakpad distinguishes? clang/include/clang/AST/ASTTypeTraits.h (3 lines): - line 306: /// FIXME: Implement comparison for other node types (currently - line 344: // FIXME: Implement for other types. - line 376: // FIXME: Add hashing support for the remaining types. clang/lib/Driver/ToolChains/AMDGPU.cpp (3 lines): - line 667: // TODO: There are way too many flags that change this. Do we need to check - line 842: // TODO: There are way too many flags that change this. Do we need to check - line 911: // TODO: There are way too many flags that change this. Do we need to check flang/module/ieee_arithmetic.f90 (3 lines): - line 111: ! TODO: more interfaces (_fma, &c.) - line 202: ! TODO: This might need to be an actual Operation instead - line 238: ! TODO: handle edge cases from 17.11.31 mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp (3 lines): - line 329: // TODO: bare ptr conversion could be handled by argument materialization - line 373: // TODO: The placeholder is needed to avoid replacing barePtr uses in the - line 668: // FIXME: this should be tablegen'ed as well. llvm/lib/ExecutionEngine/Orc/SpeculateAnalyses.cpp (3 lines): - line 134: // FIXME : find good implementation. - line 162: // FIXME: Expensive Check - line 205: // FIXME: Expensive Check mlir/lib/IR/AffineMap.cpp (3 lines): - line 76: // TODO: Change these to operate on APInts too. - line 765: // TODO: use simplifyAffineExpr and FlatAffineConstraints to - line 774: // TODO: functional-style map llvm/lib/Target/PowerPC/PPCMIPeephole.cpp (3 lines): - line 234: // FIXME: Saving TOC in prologue hasn't been implemented well in AIX ABI part, - line 393: // into reg/imm instructions. FIXME: This is expensive, control it with - line 920: // TODO: Any instruction that has an immediate form fed only by a PHI llvm/tools/llvm-readobj/ELFDumper.cpp (3 lines): - line 1167: // FIXME: Following EM_ECOG1X definitions is dead code since EM_ECOG1X has - line 5237: // TODO: passing a scalar root to toYAML() asserts: - line 6318: // FIXME: Print each flag on a separate line. lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp (3 lines): - line 254: if (args.size() > 8) // TODO handle more than 8 arguments - line 487: // FIXME - don't know how to do 80 bit long doubles yet. - line 841: // FIXME: This is just taking a guess, r3 may very well no longer hold the llvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp (3 lines): - line 427: // FIXME: use a more powerful algorithm to find minimal sum of chain_number and - line 921: // FIXME: adjust the base selection strategy according to load/store offset - line 966: // FIXME: implement a more clever base choosing policy. lldb/tools/debugserver/source/debugserver.cpp (3 lines): - line 562: // TODO: connect again? Exit? - line 566: // TODO: connect again? Exit? - line 588: // TODO: We should add code that will leave the current process clang/utils/ClangDataFormat.py (3 lines): - line 119: # FIXME: lldb should provide something like getBaseType - line 133: # FIXME: lldb should provide something like getCanonicalType - line 137: # FIXME: Hashing for SBTypes does not seem to work correctly, uses the typename instead, clang/lib/Basic/Targets/AMDGPU.cpp (3 lines): - line 291: // TODO: Add fp64 when implemented. - line 406: // TODO: __HAS_FMAF__, __HAS_LDEXPF__, __HAS_FP64__ are deprecated and will be - line 438: // FIXME: As the side effect, we also accept `__float128` uses in the device llvm/include/llvm/CodeGen/ISDOpcodes.h (3 lines): - line 266: /// FIXME: These nodes are deprecated in favor of ADDCARRY and SUBCARRY. - line 824: /// TODO: Rename this node to GET_ROUNDING. - line 953: /// TODO: Its semantics w.r.t undef requires further discussion; we need to clang/utils/analyzer/SATestBuild.py (3 lines): - line 22: - Copy over a copy of the Repository Directory. (TODO: Prefer to ensure that - line 32: Assumptions (TODO: shouldn't need to assume these.): - line 94: # TODO: use debug levels for VERBOSE messages llvm/lib/ObjectYAML/ELFEmitter.cpp (3 lines): - line 174: /// TODO: This class still has a ways to go before it is truly a "single - line 405: // TODO: For .debug_str it should be possible to share the string table, - line 413: // TODO: Only create the .strtab here if any symbols have been requested. llvm/include/llvm/CodeGen/TargetRegisterInfo.h (3 lines): - line 94: /// FIXME: Historically this function has returned false when given vregs - line 103: /// FIXME: Historically this function has returned false when given a vregs - line 1012: // FIXME: We are assuming that the assembly name is equal to the TableGen mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp (3 lines): - line 86: // TODO: there are other places where this is used. Expose publicly? - line 1309: // TODO: need OpFoldResult ODS adaptor to clean this up. - line 1358: // TODO: need OpFoldResult ODS adaptor to clean this up. llvm/lib/Target/VE/VETargetTransformInfo.h (3 lines): - line 46: // TODO report vregs once vector isel is stable. - line 58: // TODO report vregs once vector isel is stable. - line 76: // TODO report vregs once vector isel is stable. llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp (3 lines): - line 153: // TODO: fix inline asm support so I can simply tell it that 'i64' - line 345: // FIXME: should use a custom expander to expose the SRA to the dag. - line 362: // FIXME: Handle div by immediate. lldb/source/Target/Thread.cpp (3 lines): - line 608: // FIXME: I may decide to disallow threads with no plans. In which - line 1416: // FIXME: At some point we can try to splice in the frames we have fetched - line 1472: // FIXME: ValueObject::Cast doesn't currently work correctly, at least not polly/lib/CodeGen/IRBuilder.cpp (3 lines): - line 141: // FIXME: What to do if these conflict? - line 234: // TODO: Use the ScopArrayInfo once available here. - line 240: // FIXME: How can we specify annotations for all pointer arguments? clang-tools-extra/clangd/ClangdServer.h (3 lines): - line 138: /// FIXME: If not set, should use the current working directory. - line 373: /// FIXME: those metrics might be useful too, we should add them. - line 382: // FIXME: various subcomponents each get the full timeout, so it's more of llvm/lib/Analysis/TargetLibraryInfo.cpp (3 lines): - line 799: // FIXME: Having no standard library prevents e.g. many fastmath - line 807: // TODO: We could enable the following two according to [0] but we haven't - line 918: // FIXME: There is really no guarantee that sizeof(size_t) is equal to clang-tools-extra/clangd/ClangdServer.cpp (3 lines): - line 279: // FIXME: when we see a config file change event, use the event timestamp? - line 774: // FIXME: Do nothing for now. This will be used for indexing and potentially - line 943: // FIXME: Use ServerCancelled error once it is settled in LSP-3.17. compiler-rt/lib/asan/asan_report.cpp (3 lines): - line 52: // FIXME: reallocate the buffer instead of truncating the message. - line 177: // FIXME: implement "compact" error format, possibly without, or with - line 179: // FIXME: or just use the summary line as abort message? mlir/lib/Parser/Lexer.cpp (3 lines): - line 43: // TODO: Fix performance issues in SourceMgr::getLineAndColumn so that we can - line 229: /// TODO: add a regex for comments here and to the spec. - line 370: /// TODO: define escaping rules. llvm/lib/Object/MachOObjectFile.cpp (3 lines): - line 68: // FIXME: Replace all uses of this function with getStructOrErr. - line 1610: // TODO: generate a error for unknown load commands by default. But still - line 2043: // TODO: Report the error message properly. llvm/include/llvm/FuzzMutate/OpDescriptor.h (3 lines): - line 135: // TODO: Should these point at something? - line 176: // TODO: For now we only find aggregates in BaseTypes. It might be better to - line 186: // TODO: For now we only find vectors in BaseTypes. It might be better to flang/lib/Evaluate/intrinsics-library.cpp (3 lines): - line 245: // TODO: Add Bessel functions when possible. - line 347: // TODO: double _Complex/float _Complex have been removed from llvm flang - line 439: // TODO: When command line options regarding targeted numerical library is llvm/tools/llvm-objcopy/ConfigManager.cpp (3 lines): - line 285: // FIXME: consolidate with the bfd parsing used by lld. - line 466: // TODO: Replace this with libOption call once it adds extrahelp support. - line 710: // FIXME: Currently, we ignore the target for non-binary/ihex formats mlir/lib/IR/AffineExpr.cpp (3 lines): - line 199: // TODO: Canonicalize the constants in binary operators to the RHS when - line 1186: // TODO: handle modulo by zero case when this issue is fixed - line 1311: // TODO: handle division by zero at the same time the issue is compiler-rt/lib/ubsan/ubsan_diag.cpp (3 lines): - line 215: // FIXME: Support floating-point formatting in sanitizer_common's - line 325: // FIXME: We only support naming one range for now! - line 333: // FIXME: Print names for anything we can identify within the line: llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp (3 lines): - line 928: // #TODO: Implement leaf detection. - line 1070: // TODO: Support leaf functions; only add size of save+reserved area when - line 1075: // FIXME: Implement support for large stack sizes, when the stack extension llvm/tools/llvm-xray/xray-converter.cpp (3 lines): - line 294: // TODO: Make feature request to Chrome Trace viewer to accept ticks and a - line 302: // TODO: Support typed and custom event rendering on Chrome Trace Viewer. - line 371: // FIXME: Support conversion to BINARY when upgrading XRay trace versions. lldb/source/Core/SearchFilter.cpp (3 lines): - line 348: // FIXME: Implement... - line 407: // FIXME: Not yet implemented - line 525: // FIXME: Not yet implemented llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn (3 lines): - line 33: # FIXME: Several of the config settings go in a global config header but - line 40: # FIXME: This hardcodes a bunch of settings I never use; some of them should - line 136: # FIXME: Set to 1 on mac once the 10.14 SDK is in common use. lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp (3 lines): - line 719: // FIXME: Do some kind of logging here. - line 758: // FIXME: Make g_dispatch_functions static table of - line 1157: flag_value.GetScalar() = 0; // FIXME - Set to 0 when debugging is done. clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp (3 lines): - line 57: // FIXME: Remove this once there's a better way to pass check names than - line 124: // FIXME: better error handling (at least, don't let other replacements be - line 725: // FIXME: We start with a conservative approach here, but the actual type of clang-tools-extra/clangd/Diagnostics.cpp (3 lines): - line 381: // FIXME: Set tags for tidy-based diagnostics too. - line 539: // FIXME: Get rid of the copies here by taking in a mutable clangd::Diag. - line 791: // FIXME: Merge with feature modules. llvm/lib/Analysis/CaptureTracking.cpp (3 lines): - line 43: /// TODO: we should probably introduce a caching CaptureTracking analysis and - line 221: // TODO: If StoreCaptures is not true, we could do Fancy analysis - line 257: // TODO: See comment in PointerMayBeCaptured regarding what could be done clang/lib/Sema/SemaCUDA.cpp (3 lines): - line 243: // they're ever codegened. TODO: Reject said calls earlier. - line 709: // TODO: `__constant__` memory may be a limited resource for certain targets. - line 793: // FIXME: Is bailing out early correct here? Should we instead assume that llvm/lib/Target/X86/X86CallLowering.cpp (3 lines): - line 244: // TODO: handle variadic function - line 255: // TODO: handle not simple cases. - line 318: // TODO: handle not simple cases. llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp (3 lines): - line 295: // TODO: Currently, we consider only phi, bitcast, addrspacecast, and - line 422: // TODO: Look in non-address parts, like icmp operands. - line 485: // FIXME: Handle vectors of pointers llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp (3 lines): - line 19: // FIXME: This pass may be useful for other targets too. - line 342: // FIXME: In some cases, it may be interesting to promote in memory - line 355: // FIXME: see function \todo llvm/lib/CodeGen/SwitchLoweringUtils.cpp (3 lines): - line 30: // FIXME: A range of consecutive cases has 100% density, but only requires one - line 297: // FIXME: This might not be the best algorithm for finding bit test clusters. - line 321: // FIXME: This works, but doesn't seem very efficient. llvm/tools/llvm-exegesis/lib/Analysis.cpp (3 lines): - line 115: SmallString<128> InstPrinterStr; // FIXME: magic number. - line 229: // FIXME: we should be using the tuple of classes for instructions in the - line 561: continue; // Ignore noise and errors. FIXME: take noise into account ? llvm/tools/llvm-profgen/PerfReader.cpp (3 lines): - line 80: // TODO: Currently we just assume all the addr that can't match the - line 165: // TODO: Tolerate tail call for now, as we may see tail call from libraries. - line 622: // TODO: filter out buggy duplicate branches on Skylake lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp (3 lines): - line 1085: // FIXME review that the final memory region returned extends to the end of - line 1091: // FIXME assert if we find differently. - line 1105: // FIXME start by finding the last region that is <= target address using llvm/lib/MC/MCParser/AsmLexer.cpp (3 lines): - line 461: // FIXME: Later on, support for fb for HLASM has to be added in - line 649: // TODO: does gas allow multiline string constants? - line 953: // TODO: Quoted identifiers (objc methods etc) llvm/tools/obj2yaml/dwarf2yaml.cpp (3 lines): - line 182: // FIXME: Currently, obj2yaml only supports dumping the first pubtable. - line 203: // TODO: Test dumping .debug_gnu_pubnames section. - line 206: // TODO: Test dumping .debug_gnu_pubtypes section. mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp (3 lines): - line 959: // TODO: verify visibility for declarations. - line 1139: // TODO: ponder whether we want to allow missing trailing sizes/strides that are - line 1244: // TODO: Refine this by passing the proper nDims and nSymbols so we can clang/lib/Sema/CodeCompleteConsumer.cpp (3 lines): - line 352: // FIXME: It would be more efficient to teach Twine to tell us its size and - line 715: // FIXME: We can also print optional parameters of an overload. - line 783: // FIXME: Forward declarations of Objective-C classes and protocols llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp (3 lines): - line 163: // FIXME: If we made functions typeless then there would be no need to do this. - line 440: // FIXME: Try to re-use BSI and PFI from the original module here. - line 513: // FIXME: Probably should not bother building the index at all llvm/unittests/ExecutionEngine/MCJIT/MCJITTest.cpp (3 lines): - line 27: // FIXME: Ensure creating an execution engine does not crash when constructed - line 35: // FIXME: In order to JIT an empty module, there needs to be - line 116: // FIXME: This case fails due to a bug with getPointerToGlobal(). llvm/lib/Target/X86/X86PreTileConfig.cpp (3 lines): - line 154: // TODO: We can handle isMoveImmediate MI here. - line 157: // TODO: Maybe need more checks here. - line 304: // TODO: We can hoist shapes across BBs here. clang-tools-extra/clangd/index/CanonicalIncludes.cpp (3 lines): - line 42: // FIXME: check that this works on Windows and add tests. - line 107: // FIXME: remove the std header mapping once we support ambiguous symbols, now - line 779: // FIXME: Suffix mapping contains invalid entries for C, so only enable it for clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp (3 lines): - line 242: // FIXME: Reinterpret casts on member-pointers are not handled properly by - line 276: // FIXME: This logic should probably go higher up, where we can - line 299: // FIXME: This logic should probably go higher up, where we can llvm/lib/Passes/PassBuilder.cpp (3 lines): - line 1408: // FIXME: UseMemorySSA is set to false. Maybe we could do things like: - line 1586: // FIXME: Should this routine accept a TargetMachine or require the caller to - line 1758: // TODO: print pass descriptions when they are available lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp (3 lines): - line 735: // FIXME: This should be a MacOS or iOS process, and we need to look for the - line 1094: // FIXME: We don't do catch breakpoints for ObjC yet. - line 1312: // TODO find a way to make this an error, but not an assert llvm/lib/ExecutionEngine/Orc/ObjectFileInterface.cpp (3 lines): - line 45: // TODO: Test this error. - line 103: // TODO: Test this error. - line 157: // TODO: Test this error. llvm/include/llvm/Analysis/PtrUseVisitor.h (3 lines): - line 18: /// FIXME: Provide a variant which doesn't track offsets and is cheaper. - line 203: /// FIXME: Generalize this for all values rather than just instructions. - line 222: // FIXME: Support a vector of pointers. clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp (3 lines): - line 85: // FIXME: It may be safe to reclaim PreCall and PostCall nodes as well. - line 296: // FIXME: getStmtForDiagnostics() does nasty things in order to provide - line 331: // FIXME: Refactor into a ProgramPoint method? clang-tools-extra/clangd/HeaderSourceSwitch.cpp (3 lines): - line 73: // FIXME: use the AST to do the inference. - line 104: // FIXME: our index doesn't have any interesting information (this could be - line 111: // FIXME: should we use other signals (file proximity) to help score? clang/lib/AST/Stmt.cpp (3 lines): - line 95: // FIXME: InitListExpr is not trivially destructible due to its ASTVector. - line 799: // FIXME: This needs to be translated into the IR string representation. - line 908: // FIXME: Avoid the allocation/copy if at all possible. clang/tools/clang-refactor/ClangRefactor.cpp (3 lines): - line 238: // FIXME: cl::Required can be specified when this option is present - line 482: // FIXME: Add automatic formatting support as well. - line 484: // FIXME: We should probably cleanup the result by default as well. lld/ELF/Arch/X86_64.cpp (3 lines): - line 174: // TODO: Once special relocations for relaxable jump instructions are available, - line 183: // TODO: Delete this once psABI reserves a new relocation type for fall thru - line 816: // FIXME: When PIC is disabled and foo is defined locally in the clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h (3 lines): - line 84: // FIXME: Add `Expr` to `StorageLocation` map. - line 86: // FIXME: Add `StorageLocation` for `this`. - line 88: // FIXME: Add support for boolean expressions. clang-tools-extra/clangd/index/Background.cpp (3 lines): - line 225: // FIXME: Also skip serializing the shard if it is already up-to-date. - line 411: // FIXME: Currently, we simply schedule indexing on a TU whenever any of - line 414: // FIXME: Try looking at other TUs if no compile commands are available llvm/tools/llvm-objdump/SourcePrinter.cpp (3 lines): - line 68: // TODO: technically it is not valid for any range covered by another - line 95: // TODO: formatted_raw_ostream uses "column" to mean a number of characters - line 380: // TODO Untested. llvm/lib/Target/Mips/MipsBranchExpansion.cpp (3 lines): - line 34: /// FIXME: Fix pc-region jump instructions which cross 256MB segment boundaries. - line 35: /// TODO: Handle out of range bc, b (pseudo) instructions. - line 407: // TODO: This function has to be fixed for beqz16 and bnez16, because it llvm/lib/Support/DAGDeltaAlgorithm.cpp (3 lines): - line 23: // FIXME: The current algorithm doesn't actually provide a strong guarantee - line 73: // FIXME: Gross. - line 339: // FIXME: We could enforce CurrentSet intersect Required == {} here if we libcxx/src/locale.cpp (3 lines): - line 149: // FIXME: MSVC doesn't support aligned parameters by value. - line 4581: // FIXME: Work around specific multibyte sequences that we can reasonably - line 4592: // FIXME: Work around specific multibyte sequences that we can reasonably flang/lib/Frontend/FrontendActions.cpp (3 lines): - line 129: // TODO: Options should come from CompilerInvocation - line 145: // TODO: Options should come from CompilerInvocation - line 337: "TODO: Please, write a test and replace this with a diagnostic!"); clang-tools-extra/clangd/TidyProvider.cpp (3 lines): - line 83: // FIXME: largely duplicates config::Provider::fromAncestorRelativeYAMLFiles. - line 165: // FIXME: Once function_ref and unique_function operator= operators handle - line 269: // FIXME: Once function_ref and unique_function operator= operators handle llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp (3 lines): - line 166: // TODO: Handle other cost kinds. - line 269: // TODO: Handle more cost kinds. - line 299: // TODO: Allow non-throughput costs that aren't binary. clang-tools-extra/clang-tidy/bugprone/SignalHandlerCheck.cpp (3 lines): - line 47: // FIXME: Looking at the canonical declaration is not the most exact way - line 94: // FIXME: Make the checker useful on C++ code. - line 187: // FIXME: Improve for C++ (check for namespace). llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp (3 lines): - line 318: // FIXME: avoid re-calculating this every time. - line 508: // FIXME: This is a total SWAG number. We should run some statistics - line 520: // FIXME: This (and the code that resolves the references) can be improved polly/lib/CodeGen/ManagedMemoryRewrite.cpp (3 lines): - line 56: // TODO: How do I get `size_t`? I assume from DataLayout? - line 73: // TODO: How do I get `size_t`? I assume from DataLayout? - line 101: // TODO: We don't _have_to do this, but this is the simplest solution. clang/include/clang/Basic/DirectoryEntry.h (3 lines): - line 36: // FIXME: We should not be storing a directory entry name here. - line 82: /// FIXME: Once DirectoryEntryRef is "everywhere" and DirectoryEntry::getName - line 246: /// FIXME: Once DirectoryEntryRef is "everywhere" and DirectoryEntry::LastRef llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp (3 lines): - line 190: // FIXME: As of now we handle only CallInst. InvokeInst could be handled - line 259: // FIXME: remove TI here, `DuplicateInstructionsInSplitBetween` has a bug - line 360: // FIXME: remove TI in `copyMustTailReturn` compiler-rt/lib/sanitizer_common/sanitizer_common_syscalls.inc (3 lines): - line 88: // FIXME: do some kind of PRE_READ for all syscall arguments (int(s) and such). - line 1992: // FIXME: POST_READ - line 1998: // FIXME: POST_READ llvm/lib/Analysis/AliasSetTracker.cpp (3 lines): - line 185: // FIXME: This should use mod/ref information to make this not suck so bad - line 277: // TODO: generalize! - line 437: // FIXME: Add lifetime/invariant intrinsics (See: PR30807). llvm/lib/Target/X86/X86RegisterInfo.cpp (3 lines): - line 64: // FIXME: Should use the data layout? - line 221: // FIXME: Should this be factored into the base implementation somehow. - line 685: // TODO: In this case we should be really trying first to entirely eliminate clang-tools-extra/clang-tidy/google/AvoidCStyleCastsCheck.cpp (3 lines): - line 28: // FIXME: Remove this once this is fixed in the AST. - line 184: // FIXME: Validate DestTypeString, maybe. - line 240: // FIXME: Suggest const_cast<...>(reinterpret_cast<...>(...)) replacement. clang-tools-extra/clangd/FindSymbols.cpp (3 lines): - line 207: // FIXME: better printing for dependent type - line 238: // FIXME: This is not classifying constructors, destructors and operators - line 347: // FIXME: Exp is currently unavailable for nested expansions. llvm/lib/TableGen/StringMatcher.cpp (3 lines): - line 90: // FIXME: Need to escape general characters. - line 96: // FIXME: Need to escape general strings. - line 113: // TODO: escape hard stuff (like \n) if we ever care about it. clang/lib/StaticAnalyzer/Checkers/MIGChecker.cpp (3 lines): - line 121: // TODO: We should most likely always include base regions here. - line 164: // FIXME: AnyCall doesn't support blocks yet, so they remain unchecked - line 187: // TODO: We should still check for over-releases. mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h (3 lines): - line 616: // TODO: TiledOpInterface - line 1058: // TODO: Move implementation to .cpp once named ops are auto-generated. - line 1069: // TODO: Move lowering to library calls here. openmp/libomptarget/src/omptarget.cpp (3 lines): - line 814: // TODO: We should not synchronize here but pass the AsyncInfo object to the - line 1067: /// FIXME: This function will not work right if calling - line 1126: // TODO: What would be the best value here? Should we make it configurable? llvm/lib/Target/X86/X86LowerAMXType.cpp (3 lines): - line 270: // TODO we can pick an constant operand for the shape. - line 722: // TODO: currently, We ignore cases where it is a const. In the future, we - line 955: // TODO we can pick an constant operand for the shape. llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp (3 lines): - line 45: Defs[Hexagon::SA0].insert(Unconditional); // FIXME: define or change SA0? - line 49: Defs[Hexagon::SA1].insert(Unconditional); // FIXME: define or change SA0? - line 180: // TODO: relies on the impossibility of a current and a temporary loads clang/lib/Format/SortJavaScriptImports.cpp (3 lines): - line 182: // FIXME: A better long term fix is to re-calculate Ranges after sorting. - line 200: // FIXME: better error handling. For now, just print error message and skip - line 553: // FIXME: Cursor support. compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp (3 lines): - line 38: if (p == 0) continue; // FIXME: yield? - line 70: message(":?? : "); // FIXME: Show line number. - line 79: // FIXME: add caller pc to the error message (possibly as "ubsan: error-type llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp (3 lines): - line 507: // FIXME: Proper mangling. - line 563: // FIXME: Avoid copy here. - line 739: // FIXME: We could optimize this check if Symbols had a ref-count. llvm/utils/TableGen/SubtargetEmitter.cpp (3 lines): - line 868: // TODO: If ProcModel has a base model (previous generation processor), - line 920: // TODO: If ProcModel has a base model (previous generation processor), - line 1603: // FIXME: preferably, llvm-mca should instead assume a reasonable llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp (3 lines): - line 198: // FIXME: avoid re-calculating this every time. - line 630: // FIXME: This is a total SWAG number. We should run some statistics - line 645: // FIXME: This (and the code that resolves the references) can be improved llvm/tools/llvm-ifs/llvm-ifs.cpp (3 lines): - line 50: // TODO: Use OptTable for option parsing in the future. - line 383: // TODO: Not checking Warning. Will be dropped. - line 433: // TODO: Remove OutputFormat flag in the next revision. openmp/runtime/src/kmp_io.cpp (3 lines): - line 73: /* TODO only close if a window was opened */ - line 104: // TODO: output error somehow (maybe message box) - line 116: // TODO: output error somehow (maybe message box) llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp (3 lines): - line 95: // FIXME: Replace these with DIExpression. - line 191: // FIXME: Enums without a fixed underlying type have unknown signedness - line 204: // FIXME: reference and rvalue_reference /probably/ shouldn't be allowed llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h (3 lines): - line 362: /// TODO: change input parameter from "uint64_t Address" - line 444: /// TODO: refactor compile_units() to make this const. - line 453: /// TODO: change input parameter from "uint64_t Address" llvm/lib/Target/X86/X86FlagsCopyLowering.cpp (3 lines): - line 399: // FIXME: The big likely candidate here are PHI nodes. We could in theory - line 558: // FIXME: This loop is *super* confusing. This is at least in part - line 712: // FIXME: Mark the last use of EFLAGS before the copy's def as a kill if lld/MachO/UnwindInfoSection.cpp (3 lines): - line 196: // FIXME: Make this skip relocations for CompactUnwindEntries that - line 372: // FIXME: Consider passing in the two function addresses and getting - line 442: // FIXME: should we account for an LSDA at an absolute address? ld64 seems flang/include/flang/Optimizer/Builder/Character.h (3 lines): - line 147: /// TODO: Create and propagate ExtendedValue according to properties listed - line 168: /// FIXME: the implementation also needs a clean-up now that - line 184: // FIXME: Move these to Optimizer lldb/source/Core/SourceManager.cpp (3 lines): - line 535: // TODO: use host API to sign up for file modifications to anything in our - line 578: // FIXME: Find a way to get the definitive language this file was written in - line 638: UINT32_MAX; // TODO: take this line out when we support partial indexing openmp/libomptarget/DeviceRTL/src/Synchronization.cpp (3 lines): - line 197: // TODO: Don't have wavefront lane locks. Possibly can't have them. - line 251: // TODO: This seems to hide a bug in the declare variant handling. If it is - line 267: // TODO: not sure spinning is a good idea here.. clang/include/clang/Sema/Overload.h (3 lines): - line 1044: /// FIXME: It would probably be nice to have a SmallBumpPtrAllocator - line 1046: /// FIXME: Now that this only allocates ImplicitConversionSequences, do we - line 1188: // FIXME: Add an AddOverloadCandidate / AddTemplateOverloadCandidate overload clang/lib/AST/DeclTemplate.cpp (3 lines): - line 82: // FIXME: If a default argument contains an unexpanded parameter pack, the - line 277: // FIXME: If any of the declarations is from an AST file, we probably - line 1480: // FIXME: Find corresponding parameter for argument llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp (3 lines): - line 226: // FIXME: This should be deduced from the scheduling model. - line 485: // TODO: Add more intrinsics. - line 761: // FIXME: Should be derived from the scheduling model. libcxx/src/support/solaris/xlocale.cpp (3 lines): - line 26: // FIXME: This disregards the locale, which is Very Wrong - line 42: // FIXME: - line 51: // FIXME: lldb/source/Plugins/ScriptInterpreter/Python/ScriptedPythonInterface.h (3 lines): - line 80: // TODO: make `const char *` when removing support for Python 2. - line 86: // TODO: make `const char *` when removing support for Python 2. - line 90: // TODO: make `const char *` when removing support for Python 2. llvm/lib/Support/Triple.cpp (3 lines): - line 414: // FIXME: Do we need to support these? - line 779: // TODO: In future this will be Triple::SPIRV. - line 1750: // FIXME: this is invalid for WindowsCE openmp/libomptarget/DeviceRTL/src/State.cpp (3 lines): - line 29: /// FIXME: The stack shouldn't require worst-case padding. Alignment needs to be - line 59: // TODO: Use some preallocated space for dynamic malloc. - line 213: /// TODO: provide a proper init function. llvm/lib/IR/LegacyPassManager.cpp (3 lines): - line 152: // FIXME: Move ore namespace to DiagnosticInfo so that we can use it. This - line 178: // FIXME: We shouldn't use BB for the location here. Unfortunately, because - line 664: // TODO : Allocate function manager for this pass, other wise required set llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp (3 lines): - line 102: // TODO: This code assumes that the PrologExit (or the LatchExit block for - line 457: // TODO: These can be fine-tuned further to consider code size or deopt states - line 930: // TODO: This code could probably be pulled out into a helper function llvm/lib/Transforms/Scalar/ADCE.cpp (3 lines): - line 328: // TODO -- use llvm::isInstructionTriviallyDead - line 346: // TODO -- move this test into llvm::isInstructionTriviallyDead - line 701: // TODO: We could track if we have actually done CFG changes. clang-tools-extra/clang-tidy/bugprone/ImplicitWideningOfMultiplicationResultCheck.cpp (3 lines): - line 30: // FIXME: shall we skip brackets/casts/etc? - line 33: // FIXME: what about: long r = int(x) + (int(y) * int(z)); ? - line 184: // FIXME: is there a way to actually get the QualType for size_t/ptrdiff_t? llvm/tools/llvm-exegesis/lib/SnippetGenerator.cpp (3 lines): - line 58: // FIXME: We could make a copy of the scratch register. - line 74: // TODO: Generate as many BenchmarkCode as needed. - line 236: // FIXME: explore immediate values too. llvm/lib/LTO/LTOBackend.cpp (3 lines): - line 351: // FIXME: the motivation for capturing post-merge bitcode and command line - line 367: // FIXME: Plumb the combined index into the new pass manager. - line 451: // FIXME: Provide a more direct way to do this in LLVM. llvm/lib/CodeGen/StackSlotColoring.cpp (3 lines): - line 83: // FIXME: This assumes PEI locate spill slot with smaller indices - line 159: // FIXME: Need the equivalent of MachineRegisterInfo for frameindex operands. - line 417: // FIXME: This could be much more aggressive, but we need to investigate llvm/lib/MC/MCDwarf.cpp (3 lines): - line 73: // TODO: report this error, but really only once. - line 513: // FIXME: VLIW architectures need to update this field accordingly. - line 1380: // TODO: Implement `_sf` variants if/when they need to be emitted. openmp/libomptarget/DeviceRTL/src/Workshare.cpp (3 lines): - line 25: // TODO: - line 48: // TODO: This variable is a hack inherited from the old runtime. - line 444: // TODO: This is a stopgap. We probably want to expand the dispatch API to take flang/runtime/random.cpp (3 lines): - line 76: // TODO: multiple images and image_distinct: add image number - line 94: // TODO: REAL (2 & 3) - line 160: // TODO: should this be time &/or image dependent? flang/module/iso_c_binding.f90 (3 lines): - line 24: ! TODO: Specialize (via macros?) for alternative targets - line 67: integer, parameter :: c_bool = 1 ! TODO: or default LOGICAL? - line 123: ! TODO c_f_procpointer llvm/lib/CodeGen/MachineFunctionSplitter.cpp (3 lines): - line 43: // FIXME: This cutoff value is CPU dependent and should be moved to - line 95: // TODO: We only target functions with profile data. Static information may - line 100: // TODO: We don't split functions where a section attribute has been set lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp (3 lines): - line 404: offset; // TODO DoStructLayout() should not change this. - line 832: // FIXME: This code is formally correct, but clang doesn't currently - line 1234: // TODO Fix FindFunctions so that it doesn't return llvm/utils/UpdateTestChecks/common.py (3 lines): - line 162: # TODO Remove the str form which is used by update_test_checks.py and - line 167: assert isinstance(preprocess_cmd, str) # TODO: use a list instead of using shell - line 446: # TODO: We should also derive check lines for global, debug, loop declarations, etc.. clang/tools/libclang/CXIndexDataConsumer.cpp (3 lines): - line 488: // FIXME: This assumes that AST files and top-level modules directly - line 662: // FIXME: This seems like the wrong definition for redeclaration. - line 717: // FIXME: This seems like the wrong definition for redeclaration. clang/include/clang/AST/Comment.h (3 lines): - line 227: // TODO: const child iterator - line 897: CMK_At) // FIXME: improve source fidelity. - line 951: CMK_At), // FIXME: improve source fidelity. llvm/include/llvm/ADT/Hashing.h (3 lines): - line 326: // FIXME: This needs to be a per-execution seed. This is just a placeholder - line 344: // FIXME: We want to replace is_integral_or_enum and is_pointer here with - line 669: // TODO: Use std::apply when LLVM starts using C++17. clang/lib/AST/StmtProfile.cpp (3 lines): - line 260: // TODO: maybe visit attributes? - line 331: // FIXME: Implement MS style inline asm statement profiler. - line 2276: // FIXME: Do we need to recursively decompose template parameter objects? lldb/tools/debugserver/source/libdebugserver.cpp (3 lines): - line 271: // TODO: connect again? Exit? - line 275: // TODO: connect again? Exit? - line 293: // TODO: We should add code that will leave the current process lldb/source/Target/ThreadPlanStepInRange.cpp (3 lines): - line 153: // FIXME - This can be both a step in and a step out. Probably should - line 301: // TODO: Should we test this for sanity? - line 478: // FIXME: Maybe it would be better to create a InlineStep stop reason, but clang/include/clang/Basic/FileEntry.h (3 lines): - line 146: /// FIXME: Once FileEntryRef is "everywhere" and FileEntry::LastRef and - line 277: /// FIXME: Once FileEntryRef is "everywhere" and FileEntry::LastRef and - line 354: // TODO: remove this once everyone that needs a name uses FileEntryRef. clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp (3 lines): - line 63: // TODO: The loop stack should not need to be in the program state since it is - line 211: // FIXME: getStmtForDiagnostics() does nasty things in order to provide - line 254: // TODO: Match the cases where the bound is not a concrete literal but an lldb/source/Core/Disassembler.cpp (3 lines): - line 94: // FIXME - we don't have the mechanism in place to do per-architecture - line 215: // TODO: Do we care about column on these entries? If so, we need to plumb - line 240: // TODO: should we also check target.process.thread.step-avoid-libraries ? lld/MachO/LTO.cpp (3 lines): - line 80: // FIXME: What about other output types? And we can probably be less - line 82: // FIXME: Honor config->exportDynamic. - line 93: // TODO: set the other resolution configs properly llvm/tools/bugpoint/CrashDebugger.cpp (3 lines): - line 497: // have to take. FIXME: Can we just name the blocks? - line 1107: // TODO: Should we distinguish this with an "interrupted error"? - line 1139: // TODO: Should this be some kind of interrupted error? clang/lib/Analysis/MacroExpansionContext.cpp (3 lines): - line 184: // FIXME: For now, we don't respect whitespaces between macro expanded - line 195: // FIXME: Might use a different overload for cleaner callsite. - line 219: // FIXME: Prepend newlines and space to produce the exact same output as the llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp (3 lines): - line 1191: // FIXME:: check 64bit. - line 1200: // FIXME: check 64bit and handle %fcc1 - %fcc3 - line 1243: // FIXME: Check V9 compiler-rt/lib/tsan/rtl-old/tsan_interceptors_posix.cpp (3 lines): - line 11: // FIXME: move as many interceptors as possible into - line 548: // FIXME: put everything below into a common extern "C" block? - line 581: // FIXME: any reason to have a separate declaration? llvm/tools/llvm-objdump/COFFDump.cpp (3 lines): - line 664: // FIXME: Output exception handler data - line 666: // FIXME: Output chained unwind info - line 803: // TODO Support PE_IMAGE_DEBUG_TYPE_REPRO. llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h (3 lines): - line 58: // TODO: Rename MetadataStreamerV3 -> MetadataStreamerMsgPackV3. - line 129: // TODO: Rename MetadataStreamerV4 -> MetadataStreamerMsgPackV4. - line 143: // TODO: Rename MetadataStreamerV2 -> MetadataStreamerYamlV2. clang/lib/StaticAnalyzer/Core/ProgramState.cpp (3 lines): - line 276: // FIXME: Because we don't correctly model (yet) sign-extension - line 326: // FIXME: This should probably be part of SValBuilder. - line 537: // FIXME: We don't really want to use getBaseRegion() here because pointer openmp/runtime/src/kmp_global.cpp (3 lines): - line 201: 1, 1024}; // TODO: tune it! - line 432: /* TODO: None of this global padding stuff works consistently because the order - line 456: /* TODO verify the need for these locks and if they need to be global */ clang/lib/Driver/ToolChains/MinGW.cpp (3 lines): - line 129: // FIXME: this is incorrect for WinCE - line 183: // FIXME: add -N, -n flags - line 219: // TODO: Add profile stuff here llvm/lib/Transforms/Utils/CloneFunction.cpp (3 lines): - line 201: // FIXME: Metadata effectively owned by a function should be made - line 255: // FIXME: This is making global / module-level changes, which doesn't seem - line 904: // FIXME: SplitEdge does not yet take a DTU, so we include the split edge llvm/include/llvm/ADT/STLExtras.h (3 lines): - line 552: /// FIXME: Currently if RangeT && is a rvalue reference to a temporary, the - line 670: // ^ TODO: Implement random access methods. - line 674: // ^ FIXME: This follows boost::make_zip_iterator's assumption that all llvm/lib/MC/MCWin64EH.cpp (3 lines): - line 919: // FIXME: GetAbsDifference tries to compute the length of the function - line 1018: // FIXME: We should be able to split unwind info into multiple sections. - line 1019: // FIXME: We should share epilog codes across epilogs, where possible, mlir/lib/Dialect/Linalg/Transforms/HoistPadding.cpp (3 lines): - line 338: // TODO: instead of using the lower bound of `forOp` directly, implement a - line 402: // TODO: go grab dims when necessary, for now PadTensorOp returns a static - line 466: // TODO: go grab dims when necessary, for now PadTensorOp returns a static llvm/lib/CodeGen/MachineOperand.cpp (3 lines): - line 725: // TODO: Print the other CFI Operations. - line 1173: // FIXME: This is not necessarily the correct MIR serialization format for - line 1211: // FIXME: Implement addrspace printing/parsing in MIR. llvm/lib/Support/ItaniumManglingCanonicalizer.cpp (3 lines): - line 52: // FIXME: Convert this to a generic lambda when possible. - line 93: // FIXME: Don't canonicalize forward template references for now, because - line 206: // FIXME: Also expand built-in substitutions? llvm/lib/Target/ARM/ARMParallelDSP.cpp (3 lines): - line 324: // TODO: we currently only collect i16, and will support i8 later, so that's - line 350: // TODO: Allow zero-extended loads. - line 778: // TODO: Support big-endian as well. clang-tools-extra/clang-doc/Serialize.cpp (3 lines): - line 176: // TODO: Add parsing for \file command. - line 327: // TODO: Remove the serialization of Parents and VirtualParents, this - line 533: // TODO: remove first call to parseBases, that function should be deleted compiler-rt/lib/lsan/lsan_common.cpp (3 lines): - line 339: // FIXME: Move this out into *libcdep.cpp - line 455: // FIXME: There might be a race-condition here (and in Bionic) if the - line 779: // FIXME: Get rid of this limit by moving logic into DedupLeaks. llvm/tools/opt/opt.cpp (3 lines): - line 464: // TODO: use a codegen version of PassRegistry.def/PassBuilder::is*Pass() once - line 590: // FIXME: once the legacy PM code is deleted, move runPassPipeline() here and - line 892: // FIXME: We should dyn_cast this when supported. llvm/lib/Target/Hexagon/HexagonConstPropagation.cpp (3 lines): - line 83: // FIXME: Use TargetInstrInfo::RegSubRegPair. Also duplicated in - line 2193: // TODO: - line 2995: // Generate COPY. FIXME: Replace with the register:subregister. compiler-rt/lib/sanitizer_common/sanitizer_malloc_mac.inc (3 lines): - line 101: // FIXME: ASan should support purgeable allocations. - line 108: // FIXME: ASan should support purgeable allocations. Ignoring them is fine - line 114: // FIXME: ASan should support purgeable allocations. Ignoring them is fine llvm/lib/MC/WasmObjectWriter.cpp (3 lines): - line 368: // TODO: support alignment at asm and llvm level? - line 1274: // TODO Currently we don't generate imported exceptions, but if we do, we - line 1944: // TODO: Translate the .comment section to the output. mlir/include/mlir/Parser.h (3 lines): - line 207: /// TODO: These methods are deprecated in favor of the above template versions. - line 232: // TODO: Improve diagnostic reporting. - line 250: // TODO: Improve diagnostic reporting. flang/runtime/file.cpp (3 lines): - line 136: #else // TODO: _WIN32 - line 253: // TODO: True asynchronicity - line 282: // TODO: True asynchronicity clang/lib/Analysis/LiveVariables.cpp (3 lines): - line 269: // FIXME: These cases eventually shouldn't be needed. - line 313: // HACK + FIXME: What is this? One could only guess that this is an attempt to - line 520: // FIXME: we should enqueue using post order. clang-tools-extra/clangd/SourceCode.h (3 lines): - line 71: /// FIXME: This should return an error if the location is invalid. - line 122: /// FIXME: introduce a type for source range with this invariant. - line 170: /// FIXME: should we be caching the .clang-format file search? llvm/lib/Target/AVR/AVRRegisterInfo.cpp (3 lines): - line 73: // TODO: Write a pass to enumerate functions which reserved the Y register - line 208: //: TODO: consider using only one adiw/sbiw chain for more than one frame - line 264: // FIXME: Currently we're using avr-gcc as reference, so we restrict clang/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h (3 lines): - line 347: // TODO -- handle alpha-renaming of variables - line 385: // TODO -- handle alpha-renaming of variables - line 432: // TODO: further distinguish between binary operations. lldb/source/Target/ThreadPlanBase.cpp (3 lines): - line 27: // FIXME: The "signal handling" policies should probably go here. - line 33: // FIXME: need to add a thread settings variable to pix various tracers... - line 117: // TODO: the break below was missing, was this intentional??? If so lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp (3 lines): - line 69: // FIXME: This should be a MacOS or iOS process, and we need to look for the - line 105: // FIXME: don't do catch yet. - line 313: // TODO: implement HashTableSignature... llvm/lib/Target/X86/X86Subtarget.h (3 lines): - line 496: // FIXME: this is a known good value for Yonah. How about others? - line 816: // TODO: Currently we're always allowing widening on CPUs without VLX, - line 837: /// TODO: to be removed later and replaced with suitable properties clang/include/clang/AST/ASTVector.h (3 lines): - line 14: // FIXME: Most of this is copy-and-paste from BumpVector.h and SmallVector.h. - line 46: // FIXME: This is a horrible hack. - line 195: // TODO: NEED To compile time dispatch on whether in_iter is a random access bolt/lib/Rewrite/RewriteInstance.cpp (3 lines): - line 1740: // FIXME: perhaps we can try to find if it really emitted a corresponding - line 3728: // FIXME: Currently instrumentation is experimental and the runtime data - line 4877: // TODO: static PIE executable might have dynamic header llvm/lib/IR/SafepointIRVerifier.cpp (3 lines): - line 420: /// FIXME: This works fairly well except one case - line 607: // TODO: This order is suboptimal, it's better to replace it with priority - line 657: // TODO: `select` instructions should be handled here too. llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp (3 lines): - line 1087: // FIXME: the interceptor is not as fast as real memset. Consider lowering - line 1143: // FIXME: use addressofreturnaddress (but implement it in aarch64 backend - line 1444: // FIXME: instrument dynamic allocas, too bolt/lib/Core/DebugData.cpp (3 lines): - line 346: // TODO: Support DWARF5 - line 727: // FIXME: if we had a full access to DWARFDebugAbbrev::AbbrDeclSets - line 1054: // FIXME: remove this once RuntimeDyld stops skipping allocatable sections llvm/tools/lli/lli.cpp (3 lines): - line 560: // TODO: Actually report errors helpfully. - line 736: // FIXME: argv and envp handling. - line 872: // FIXME: Setting a dummy call-through manager in non-lazy mode prevents the mlir/include/mlir/Bindings/Python/PybindAdaptors.h (3 lines): - line 111: // TODO: This raises an error of "No current context" currently. - line 128: // TODO: Coerce None to default MlirLocation. - line 249: /// TODO: If this proves useful, see about including it in pybind11. llvm/utils/TableGen/GICombinerEmitter.cpp (3 lines): - line 35: // FIXME: Use ALWAYS_ENABLED_STATISTIC once it's available. - line 153: /// FIXME: This is a temporary measure until we have actual pattern matching - line 792: // FIXME: Single-use lambda's like this are a serious compile-time clang/unittests/Tooling/RewriterTestContext.h (3 lines): - line 61: // FIXME: To make these tests truly in-memory, we need to overlay the - line 78: // FIXME: this code is mostly a duplicate of - line 122: // FIXME: Figure out whether there is a way to get the SourceManger to compiler-rt/lib/xray/xray_x86_64.cpp (3 lines): - line 167: // FIXME: Write out the nops still? - line 214: // FIXME: Write out the nops still? - line 244: // FIXME: Write out the nops still? llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp (3 lines): - line 425: // TODO: Following else statement is present here because we used various - line 564: // FIXME: Need to take scratch memory into account. - line 1849: // TODO: Should calls support inreg for SGPR inputs? mlir/lib/IR/Operation.cpp (3 lines): - line 609: // TODO: remove this special case (and update test/IR/parser.mlir) - line 711: // FIXME: Add back check for no side effects on operation. - line 719: // FIXME: Add back check for no side effects on operation. lld/MachO/MarkLive.cpp (3 lines): - line 67: // FIXME: Instead of doing this here, maybe the Driver code doing - line 82: // FIXME: When we implement these flags, make symbols from them GC roots: - line 145: // FIXME: Check if copying all S_ATTR_LIVE_SUPPORT sections into a llvm/include/llvm/IR/PatternMatch.h (3 lines): - line 529: // FIXME: this should be able to do something for scalable vectors - line 937: // TODO fuse unary, binary matcher into n-ary matcher - line 2038: // FIXME: Should likely be switched to use `CallBase`. clang/unittests/CodeGen/TBAAMetadataTest.cpp (3 lines): - line 351: // FIXME: Nameless structures used in definitions of 'ABC' and 'CDE' are - line 444: // FIXME: Nameless structures used in definitions of 'ABC' and 'CDE' are - line 899: OmnipotentCharCXX, // FIXME: Info about array field is lost. llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp (3 lines): - line 1349: // TODO: be more aggressive here? - line 1453: // TODO: Before we split the mask, try perfect shuffle on concatenated - line 1499: // TODO commute the mask and try the opposite order of the halves. mlir/lib/Dialect/SCF/Transforms/Utils.cpp (3 lines): - line 77: // TODO: this is unsafe in the context of a PatternRewrite. - line 88: // TODO: support more than single-block regions. - line 89: // TODO: more flexible constant handling. clang/lib/Frontend/TextDiagnostic.cpp (3 lines): - line 423: // FIXME: Detect non-ASCII whitespace characters too. - line 449: // FIXME: Detect non-ASCII whitespace characters too. - line 1192: // FIXME: Don't print any lines in this case. llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp (3 lines): - line 89: // FIXME: add NSW/NUW here? -- we dont care if the subtraction overflows - line 133: // FIXME: We should really handle this differently to bypass the splitting - line 187: // FIXME: This debug location doesn't make a lot of sense in the llvm/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp (3 lines): - line 45: // FIXME: This could also be extended to check the whole dominance subtree below - line 48: // FIXME: Add support for handling CCMP instructions. - line 49: // FIXME: If the known register value is zero, we should be able to rewrite uses llvm/lib/Transforms/Scalar/Float2Int.cpp (3 lines): - line 197: // FIXME: Handle select and phi nodes. - line 249: // FIXME: Handle select and phi nodes. - line 424: // FIXME: Pick the smallest legal type that will fit. clang/lib/AST/Interp/Pointer.cpp (3 lines): - line 104: // TODO: compute the offset into the object. - line 114: // TODO: figure out if base is virtual - line 184: // TODO: this only appears in constructors, so nothing to deactivate. flang/lib/Semantics/check-declarations.cpp (3 lines): - line 647: // TODO: Check the "shalls" in the 15.4.3.6 paragraphs 7-10. - line 1748: // TODO: Move C8106 (&al.) checks here from resolve-names-utils.cpp - line 2213: // TODO: coshape llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp (3 lines): - line 438: /// TODO: specified Address for --lookup option could relate for several - line 458: // TODO: it is neccessary to set proper SectionIndex here. - line 609: // FIXME: Audit interactions between these two options and make them mlir/lib/Analysis/LoopAnalysis.cpp (3 lines): - line 211: // TODO: check strides. - line 304: // TODO: ponder whether we want to be more general here. - line 347: // TODO: extend this to check for memory-based dependence violation when we have llvm/tools/llvm-readobj/MachODumper.cpp (3 lines): - line 318: // TODO (davide): This always assumes prot is valid. - line 620: // TODO: Actually report errors helpfully. - line 632: // TODO: Add a whitelist of STABS symbol types that contain valid section lldb/source/Target/ThreadPlanStepOut.cpp (3 lines): - line 98: // FIXME - can we do this more securely if we know first_insn? - line 213: // FIXME: find some useful way to present the m_return_id, since there may - line 482: // FIXME: Log this failure. clang/include/clang/StaticAnalyzer/Checkers/SValExplainer.h (3 lines): - line 129: // TODO: IntSymExpr doesn't appear in practice. - line 138: // TODO: SymbolCast doesn't appear in practice. - line 143: // TODO: Explain CXXThisRegion itself, find a way to test it. llvm/lib/Transforms/Scalar/LoopRerollPass.cpp (3 lines): - line 564: // TODO: Allow ZExt too - line 1152: // TODO: the following intrinsics may also be allowed: - line 1482: // FIXME: This arithmetic can overflow. compiler-rt/lib/sanitizer_common/sanitizer_unwind_win.cpp (3 lines): - line 29: // FIXME: CaptureStackBackTrace might be too slow for us. - line 30: // FIXME: Compare with StackWalk64. - line 31: // FIXME: Look at LLVMUnhandledExceptionFilter in Signals.inc clang/lib/Basic/Targets/PPC.cpp (3 lines): - line 85: // TODO: Finish this list and add an assert that we've handled them - line 312: // FIXME: Should be controlled by command line option. - line 407: // FIXME: The following are not yet generated here by Clang, but are lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp (3 lines): - line 1037: // TODO: also check the _dyld_global_lock_held variable in - line 1039: // TODO: check the malloc lock? - line 1040: // TODO: check the objective C lock? llvm/include/llvm/MC/MCRegisterInfo.h (3 lines): - line 284: /// TODO: Replace remaining uses of MCSubRegIterator. - line 295: /// TODO: Replace remaining uses of MCSuperRegIterator. - line 425: /// FIXME: TableGen these numbers. Currently this requires target specific clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp (3 lines): - line 24: // FIXME: Cover noreturn ObjC methods (and blocks?). - line 62: // FIXME: Track references. - line 66: // FIXME: Handle MemberExpr. clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp (3 lines): - line 30: // FIXME: This can give false "origin" that would lead to false negatives - line 71: // FIXME: Currently accepts ANY unary operator. Is it OK? - line 91: // TODO: checker for method calls on non-refcounted objects llvm/lib/XRay/Profile.cpp (3 lines): - line 292: // TODO: Maybe store this header information for each block, even just for - line 372: // FIXME: Consider the intermediate times and the cumulative tree time - line 380: // TODO: Support an extension point to allow handling of custom and typed llvm/include/llvm/CodeGen/MachinePassManager.h (3 lines): - line 19: // TODO: Add MachineFunctionProperties support. - line 96: // FIXME: Add LoopAnalysisManager or CGSCCAnalysisManager if needed. - line 115: /// FIXME: machine module passes still need to define the usual machine llvm/utils/gn/secondary/lldb/tools/lldb-vscode/BUILD.gn (3 lines): - line 33: # FIXME: link in //lldb/source/Host on Win (and netbsd) - line 34: # FIXME: link in pthread - line 35: # FIXME: rpath/install_name stuff on macOS for framework on macOS llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h (3 lines): - line 33: // TODO: Extend for N use. - line 177: // TODO: Rework this for different kinds of MachineOperand. - line 535: // TODO: Allow checking a specific predicate. compiler-rt/lib/builtins/cpu_model.c (3 lines): - line 21: // FIXME: For MSVC, we should make a function pointer global in .CRT$X?? so that - line 190: // FIXME: should we save this for Clang? - line 230: // FIXME: should we save this for Clang? lldb/unittests/Utility/RangeTest.cpp (3 lines): - line 137: // FIXME: This is probably not intended. - line 173: // FIXME: The first two probably not intended. - line 183: // FIXME: This is probably not intended. clang-tools-extra/clangd/LSPBinder.h (3 lines): - line 32: /// FIXME: this should also take responsibility for wrapping *outgoing* calls, - line 99: // FIXME: remove usage from ClangdLSPServer and make this private. - line 203: // FIXME: why keep ctx alive but not restore it for the callback? clang-tools-extra/clangd/tool/ClangdMain.cpp (3 lines): - line 147: // FIXME: Flags are the wrong mechanism for user preferences. - line 208: // FIXME: also support "plain" style where signatures are always omitted. - line 335: // FIXME: allow inlayHints to be disabled in Config and remove this option. llvm/unittests/IR/ConstantsTest.cpp (3 lines): - line 280: // FIXME: getGetElementPtr() actually creates an inbounds ConstantGEP, - line 527: // FIXME: This test should be changed once existing targets have - line 528: // appropriate defaults. See associated FIXME in ConstantFoldBinaryInstruction lldb/include/lldb/Target/Process.h (3 lines): - line 217: // FIXME: Should we also include modification of register states? - line 1174: /// FIXME: Should really happen when the target stops before the - line 1616: // TODO: change this to take an ArrayRef llvm/lib/AsmParser/LLParser.cpp (3 lines): - line 5341: // FIXME: LabelTy should not be a first-class type. - line 5352: // FIXME: LabelTy should not be a first-class type. - line 5363: // FIXME: LabelTy should not be a first-class type. clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistry.h (3 lines): - line 25: // FIXME: move this information to an HTML file in docs/. - line 66: // FIXME: The Clang version string is not particularly granular; - line 176: // FIXME: This *really* should be added to the frontend flag descriptions. lldb/source/Expression/DWARFExpression.cpp (3 lines): - line 822: // TODO: Add support for DW_OP_push_object_address within a DW_OP_entry_value - line 983: // TODO: Implement a real typed stack, and store the genericness of the value - line 2465: // FIXME: the constness has annoying ripple effects. llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp (3 lines): - line 358: // FIXME: If chains of copies are to be handled, this should be a vector. - line 531: /// FIXME: This currently handles what is by-far the most common case: - line 673: // FIXME: If one of the operands is a chain of (single use) copies, they flang/runtime/extrema.cpp (3 lines): - line 488: // TODO: REAL(2 & 3) - line 547: // TODO: REAL(2 & 3) - line 643: // TODO: REAL(2 & 3) llvm/include/llvm/IR/Function.h (3 lines): - line 145: // TODO: remove this once all users have been updated to pass an AddrSpace - line 321: // TODO: remove non-AtIndex versions of these methods. - line 435: /// FIXME: Remove this function once transition to Align is over. llvm/unittests/Support/SuffixTreeTest.cpp (3 lines): - line 41: // FIXME: Right now, the longest repeated substring from a specific index is - line 80: // FIXME: Add support for detecting {1, 1} and {1, 1, 1} - line 107: // FIXME: Teach the SuffixTree to recognize these cases. lldb/source/Plugins/ABI/X86/ABISysV_x86_64.cpp (3 lines): - line 133: if (args.size() > 6) // TODO handle more than 6 arguments - line 367: // FIXME - don't know how to do 80 bit long doubles yet. - line 830: // FIXME: This is just taking a guess, rax may very well no longer hold the libcxx/include/__format/formatter_integer.h (3 lines): - line 33: // TODO FMT Remove this once we require compilers with proper C++20 support. - line 110: // TODO FMT Implement full 128 bit support. - line 151: // TODO FMT Implement full 128 bit support. clang/unittests/Format/CleanupTest.cpp (3 lines): - line 231: // FIXME: redundant trailing comma should be removed. - line 238: // FIXME: redundant trailing comma should also be removed. - line 471: // FIXME: a better behavior is to only append on newline to Code, but this clang/lib/StaticAnalyzer/Checkers/IteratorModeling.cpp (3 lines): - line 221: // FIXME: Add a more conservative mode - line 720: // FIXME: `std::advance()` should not create a new iterator position but - line 795: // FIXME: This code should be reworked as follows: llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp (3 lines): - line 803: // FIXME: This is a fairly terrible hack. We set the rest - line 815: // FIXME: Fix a dependency issue by instantiating the ABI object to some - line 914: // Update e_header flags. See the FIXME and comment above in llvm/tools/llvm-exegesis/lib/PowerPC/Target.cpp (3 lines): - line 60: // TODO: make sure we get the exact value in reg if needed. - line 84: // TODO: materialize the offset into a reggister - line 107: // TODO: update these if we need a accurate 128 values in registers. clang/tools/libclang/CXType.cpp (3 lines): - line 427: // FIXME: this function returns either a LangAS or a target AS - line 528: // FIXME: Template type parameters! - line 737: // FIXME: We should expose the canThrow(...) result instead of the EST. llvm/include/llvm/ADT/APFloat.h (3 lines): - line 841: // FIXME: This is due to clang 3.3 (or older version) always checks for the - line 869: // TODO: Remove this constructor. This isn't faster than the first one. - line 1041: // TODO: bool parameters are not readable and a source of bugs. llvm/lib/IR/IRBuilder.cpp (3 lines): - line 100: // TODO: We expect this special case (element type < 8 bits) to be - line 1019: // FIXME: we could potentially avoid casts to/from i8*. - line 1044: // FIXME: we could potentially avoid casts to/from i8*. llvm/lib/CodeGen/Analysis.cpp (3 lines): - line 400: // call". FIXME: with sufficiently cunning bit-tracking, we could look through - line 532: // FIXME: Decline tailcall if it's not guaranteed and if the block ends in - line 792: // FIXME: SEH CatchPads are not necessarily in the parent function: llvm/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp (3 lines): - line 70: // FIXME: This is a horrible hack. We should always respect noinline, - line 105: // FIXME: If the aliasee isn't a function, it's some kind of constant expr - line 126: // TODO: Region address clang/lib/Driver/ToolChains/Hurd.cpp (3 lines): - line 54: // FIXME: This is a bit of a hack. We should really unify this code for - line 93: // FIXME: It's not clear whether we should use the driver's installed - line 111: // FIXME: It's not clear whether we should use the driver's installed llvm/lib/CodeGen/LiveRangeEdit.cpp (3 lines): - line 59: // FIXME: Getting the interval here actually computes it. - line 217: // FIXME: Targets don't know how to fold subreg uses. - line 364: // FIXME: It would be better to have something like shrinkToUses() for mlir/lib/Dialect/Affine/Transforms/AffineDataCopyGeneration.cpp (3 lines): - line 51: // TODO: We currently can't generate copies correctly when stores - line 80: /// TODO: extend this to store op's. - line 118: // TODO: An 'affine.if' operation is being treated similar to an clang/lib/CodeGen/CGExprComplex.cpp (3 lines): - line 174: // FIXME: CompoundLiteralExpr - line 700: // FIXME: C11 also provides for imaginary types which would allow folding - line 802: // FIXME: We would be able to avoid the libcall in many places if we lldb/source/Interpreter/Options.cpp (3 lines): - line 663: // FIXME: We should scan the other options provided and only complete - line 701: // FIXME - not handling wrong options yet: - line 755: // FIXME: Do we want to also have an "OptionType" so we don't have to match pstl/include/pstl/internal/parallel_backend_tbb.h (3 lines): - line 336: //TODO: Consider adding a requirement for user functors to be constant. - line 1210: //TODO: consider usage of parallel_for with a custom blocked_range - line 1287: //TODO: a version of tbb::this_task_arena::isolate with variadic arguments pack should be added in the future llvm/lib/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.cpp (3 lines): - line 26: // FIXME: The C++98 initializer is an attempt to work around compile failures - line 66: // FIXME: Release abandoned alloc. - line 79: // FIXME: Return memory to pool instead. llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp (3 lines): - line 543: // FIXME: It should be safe to return false for the STO_MIPS_MICROMIPS but - line 567: // FIXME: Many of these relocations should probably return false but this - line 646: // FIXME: Many of these should probably return false but MIPS16 isn't llvm/lib/Support/KnownBits.cpp (3 lines): - line 410: // FIXME: Handle known negative input? - line 411: // FIXME: Calculate the negated Known bits and combine them? - line 427: // TODO: This could be generalized to number of sign bits (negative numbers). compiler-rt/lib/xray/xray_hexagon.cpp (3 lines): - line 154: // FIXME: Implement in hexagon? - line 160: // FIXME: Implement in hexagon? - line 167: // FIXME: this will have to be implemented in the trampoline assembly file llvm/lib/ObjectYAML/DWARFEmitter.cpp (3 lines): - line 302: // TODO: Test this error. - line 308: // TODO: Test this error. - line 577: // TODO: Add support for emitting DWARFv5 line table. mlir/lib/Conversion/LinalgToSPIRV/LinalgToSPIRV.cpp (3 lines): - line 94: // TODO: create utility functions for these checks in Linalg - line 134: // TODO: Query the target environment to make sure the current - line 148: // TODO: Load to Workgroup storage class first. llvm/lib/Transforms/Scalar/NaryReassociate.cpp (3 lines): - line 71: // Limitations and TODO items: - line 315: // TODO: Currently min/max reassociation is restricted to integer types only - line 446: // TODO: bail out on this case for now. We could emit uglygep. libcxx/src/filesystem/operations.cpp (3 lines): - line 964: // FIXME: report this better. - line 976: // FIXME: Remove the dest file if we failed, and it didn't exist previously. - line 1781: // FIXME: Reserve enough room in Result that it won't have to re-allocate. llvm/lib/Target/RISCV/RISCVSExtWRemoval.cpp (3 lines): - line 60: // TODO: Allocate a bit in TSFlags for the W instructions? - line 61: // TODO: Add other W instructions. - line 147: // TODO: Handle arguments and returns from calls? lldb/include/lldb/Symbol/TypeSystem.h (3 lines): - line 341: // TODO: Return all matches for a given name by returning a - line 400: // TODO: These methods appear unused. Should they be removed? - line 410: // TODO: Determine if these methods should move to TypeSystemClang. llvm/utils/TableGen/DAGISelMatcherEmitter.cpp (3 lines): - line 938: // FIXME: This should be const. - line 995: // FIXME: This should be const. - line 1003: // FIXME: The node xform could take SDValue's instead of SDNode*'s. clang-tools-extra/clangd/IncludeFixer.cpp (3 lines): - line 369: // FIXME: try to merge this with the scope-wrangling code in CodeComplete. - line 417: // FIXME: We won't be able to fix include if the specifier is what we - line 587: // FIXME: consider batching the requests for all diagnostics. clang/lib/Basic/Targets/VE.cpp (3 lines): - line 32: // FIXME: define __FAST_MATH__ 1 if -ffast-math is enabled - line 33: // FIXME: define __OPTIMIZE__ n if -On is enabled - line 34: // FIXME: define __VECTOR__ n 1 if automatic vectorization is enabled llvm/lib/Target/RISCV/RISCVInstrInfo.cpp (3 lines): - line 222: // FIXME: The COPY of subregister of Zvlsseg register will not be able - line 907: // FIXME: A virtual register must be used initially, as the register - line 920: // TODO: The case when there is no scavenged register needs special handling. llvm/lib/Target/AMDGPU/SIPostRABundler.cpp (3 lines): - line 164: // TODO: It may be better to move meta instructions like dbg_value - line 180: // TODO: Should maybe back-propagate kill flags to the bundle. - line 194: // TODO: Should we just remove all kills? Is there any real reason to llvm/lib/Analysis/IRSimilarityIdentifier.cpp (3 lines): - line 192: // TODO: This is the same as the MachineOutliner, and should be consolidated - line 226: // TODO: This is the same as the MachineOutliner, and should be consolidated - line 291: // TODO: This is the same as the MachineOutliner, and should be consolidated llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp (3 lines): - line 25: // TODO: ObjCARCContract could insert PHI nodes when uses aren't - line 249: // TODO: This is one area where the optimization could be made more - line 667: // TODO: Change this to a do-while. libc/cmake/modules/LLVMLibCLibraryRules.cmake (3 lines): - line 108: # TODO: Ensure that each dep is actually a add_redirector_object target. - line 112: # TODO: Call the linker explicitly instead of calling the compiler driver to - line 150: # TODO: Remove this foreach block when we can switch to the new openmp/runtime/src/kmp_error.cpp (3 lines): - line 60: /* TODO for monitor perhaps? */ - line 70: /* TODO free the old data */ - line 136: /* TODO for monitor perhaps? */ clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h (3 lines): - line 89: // FIXME: 's' might be a nullptr if we're conducting invalidation - line 278: // FIXME: GenericTaintChecker creates symbols of void type. - line 328: // FIXME: We probably need to make this out-of-line to avoid redundant clang-tools-extra/clang-tidy/performance/InefficientVectorOperationCheck.cpp (3 lines): - line 125: // FIXME: Support more types of counter-based loops like decrement loops. - line 145: // FIXME: Support more complex range-expressions. - line 217: // FIXME: make it more intelligent to identify the pre-allocating llvm/unittests/Support/Path.cpp (3 lines): - line 1081: // FIXME: recursive_directory_iterator should be more robust. - line 1546: // FIXME: These leading forward slashes are emergent behavior. VFS depends on - line 1587: // FIXME: Leaving behind this double leading slash seems like a bug. llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h (3 lines): - line 488: // FIXME: Just look up as a function for now. Overly simple of course. - line 508: // FIXME: Just look up as a function for now. Overly simple of course. - line 519: // FIXME: Have getSymbol should return the actual address and the client llvm/include/llvm/CodeGen/MachineInstr.h (3 lines): - line 1260: /// FIXME: Seems like a layering violation that the AsmDialect, which is X86 - line 1789: /// FIXME: This is not fully implemented yet. - line 1796: /// FIXME: This is not fully implemented yet. llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp (3 lines): - line 686: // TODO: Needs support for masked loads/stores of "scalar" vectors. - line 792: // FIXME: generate a predicated load? - line 1338: // FIXME: for now only check GEPs with a single index. flang/runtime/tools.h (3 lines): - line 132: #if 0 // TODO: REAL(2 & 3) - line 154: #if 0 // TODO: COMPLEX(2 & 3) - line 229: #if 0 // TODO: REAL/COMPLEX (2 & 3) llvm/lib/Transforms/Utils/BuildLibCalls.cpp (2 lines): - line 702: // FIXME: readonly #1? - line 1176: // FIXME: It'd be really nice to cover all the library functions we're lldb/include/lldb/Breakpoint/BreakpointIDList.h (2 lines): - line 27: // TODO: Convert this class to StringRef. - line 46: // TODO: This should take a const BreakpointID. clang/include/clang/AST/ASTImporterLookupTable.h (2 lines): - line 71: // FIXME: It would be better to not add the declaration to the temporary - line 79: // FIXME: The old redeclaration context is not handled. libc/cmake/modules/LLVMLibCObjectRules.cmake (2 lines): - line 163: # TODO: We don't need an object library for internal consumption. - line 193: # TODO: We don't need to list internal object files if the internal clang/lib/AST/TextNodeDumper.cpp (2 lines): - line 1528: // FIXME: Exception specification. - line 1529: // FIXME: Consumed parameters. clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp (2 lines): - line 1398: // FIXME these are actually defined by POSIX and not by the C standard, we - line 1418: // FIXME these are actually defined by POSIX and not by the C standard, we clang/utils/TableGen/ClangDiagnosticsEmitter.cpp (2 lines): - line 1758: // FIXME: Write diagnostic categories and link to diagnostic groups in each. - line 1773: // FIXME: Ideally, all the diagnostics in a group should have the same lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp (2 lines): - line 455: // FIXME - don't know how to do long doubles yet. - line 599: // FIXME: This is just taking a guess, r2 may very well no longer hold the mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp (2 lines): - line 1170: // TODO: generalize this to an op interface when there is more than one op - line 1311: // TODO: The code generation for ordered simd directive is not supported yet. llvm/cmake/config-ix.cmake (2 lines): - line 112: # TODO: switch to -pthread once the rest of the build system can deal with it. - line 544: # FIXME: Signal handler return type, currently hardcoded to 'void' llvm/utils/gn/secondary/compiler-rt/BUILD.gn (2 lines): - line 6: # FIXME: For macOS and iOS builds, depend on lib in all needed target arch - line 21: # FIXME: Do this only if a gn arg compiler_rt_enable_ios is set? llvm/utils/TableGen/CodeGenTarget.cpp (2 lines): - line 584: // FIXME: This is a hack to statically increase the priority of patterns which - line 594: // FIXME: Why is this different from parseSDPatternOperatorProperties? llvm/lib/Support/NativeFormatting.cpp (2 lines): - line 191: // FIXME: Implement our formatter to here or Support/Format.h! - line 193: // FIXME: It should be generic to C++11. llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h (2 lines): - line 15: /// outer loop vectorization is a TODO item. - line 450: // FIXME: Currently, the set of symbolic strides is sometimes queried before llvm/tools/llvm-c-test/echo.cpp (2 lines): - line 1079: // FIXME: Allow NULL aliasee. - line 1113: // FIXME: Allow NULL resolver. clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp (2 lines): - line 78: // TODO: intentional leak. Some information is garbage collected too early, - line 234: // TODO: Add heuristics to distinguish alloc calls that allocates single llvm/lib/Transforms/Coroutines/CoroEarly.cpp (2 lines): - line 59: // TODO: Handle the case when coroutine promise alloca has align override. - line 196: // TODO: Remove the line once we support it in the corresponding clang/lib/Sema/TypeLocBuilder.cpp (2 lines): - line 83: // FIXME: This algorithm is a absolute mess because every TypeLoc returned - line 85: // FIXME: 4 and 8 are sufficient at the moment, but it's pretty ugly to lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp (2 lines): - line 804: // FIXME: right now we just discard the packet and LLDB queries - line 2935: // TODO: Use chrono version of std::ceil once c++17 is available. llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp (2 lines): - line 88: // TODO: This might ideally be done better with a dominator/postdominators. - line 121: // TODO Remove when UnrollAndJamLoop changed to support unroll and jamming more clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp (2 lines): - line 12: // FIXME: What's currently in BasicObjCFoundationChecks.cpp should be migrated - line 98: // FIXME: These should have correct memory space and thus should be filtered llvm/utils/gn/secondary/lldb/source/Symbol/BUILD.gn (2 lines): - line 9: #"//lldb/source/Target", # FIXME: Dependency cycle. - line 13: include_dirs = [ ".." ] # FIXME: Reaches into Utility and Host internals. llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp (2 lines): - line 280: unsigned Flags = 0; // FIXME: Set HasSEH / HasEH. - line 449: // FIXME: This makes it so we textually assemble COFF directives on ELF. clang/unittests/Analysis/FlowSensitive/TestingSupport.h (2 lines): - line 46: // FIXME: move to a non-test utility library. - line 50: // FIXME: add printing support for the environment. mlir/lib/Target/LLVMIR/DebugTranslation.cpp (2 lines): - line 35: // TODO: Several parts of this are incorrect. Different source - line 102: // TODO: This is the bare essentials for now. We will likely end flang/lib/Semantics/tools.cpp (2 lines): - line 342: // TODO: Storage association with any object for which this predicate holds, - line 904: // TODO: also ensure that the procedure is, in fact, an intrinsic llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp (2 lines): - line 99: // FIXME: preserve PostDominatorTreeWrapperPass - line 305: // FIXME: add PDT here once simplifycfg is ready. flang/runtime/allocatable.cpp (2 lines): - line 44: INTERNAL_CHECK(false); // TODO: MoveAlloc is not yet implemented - line 115: // TODO: AllocatableCheckLengthParameter, AllocatableAllocateSource llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp (2 lines): - line 152: // FIXME: Should this happen for `asm inteldialect` as well? - line 292: // FIXME: Shouldn't arch-independent output template handling go into llvm/utils/gn/secondary/clang/unittests/BUILD.gn (2 lines): - line 34: # FIXME: libclang unit tests are disabled on Windows due - line 36: # FIXME: Also, the executable can't find libclang.dll since that's clang-tools-extra/clang-tidy/readability/ConvertMemberFunctionsToStatic.cpp (2 lines): - line 130: // TODO: For out-of-line declarations, don't modify the source if the header - line 136: // TODO: Would need to remove those in a fix-it. compiler-rt/lib/xray/xray_segmented_array.h (2 lines): - line 238: // TODO: Determine whether the cost of the branch is higher than the cost - line 383: // FIXME: This is a duplication of AppenEmplace with the copy semantics llvm/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp (2 lines): - line 34: // TODO: Support other encodings. - line 157: // FIXME: Some error handling if Start.SectionIndex != End.SectionIndex clang/lib/StaticAnalyzer/Core/SVals.cpp (2 lines): - line 88: // FIXME: should we consider SymbolRef wrapped in CodeTextRegion? - line 124: // FIXME: should we consider SymbolRef wrapped in CodeTextRegion? clang/lib/Format/TokenAnalyzer.cpp (2 lines): - line 38: // FIXME: Instead of printing the diagnostic we should store it and have a - line 140: // FIXME: better error handling here. For now, simply return an empty lldb/source/Core/FormatEntity.cpp (2 lines): - line 827: // TODO: check for a (T:n)-specific summary - we should still obey that - line 839: // TODO use flags for these llvm/tools/dsymutil/dsymutil.cpp (2 lines): - line 162: // FIXME: We cannot use stdin for an update because stdin will be - line 672: // FIXME: The DwarfLinker can have some very deep recursion that can max llvm/include/llvm/IR/LegacyPassManagers.h (2 lines): - line 255: // TODO: We could consider sorting the dependency arrays within the - line 285: /// FIXME: This is an egregious hack because querying the pass registry is compiler-rt/lib/msan/msan_report.cpp (2 lines): - line 126: // FIXME: we want this at normal exit, too! - line 127: // FIXME: but only with verbosity=1 or something clang/lib/Driver/Compilation.cpp (2 lines): - line 113: // FIXME: Why are we trying to remove files that we have not created? For - line 119: // FIXME: If this is necessary, we can still try to split llvm/include/llvm/Analysis/LoopInfoImpl.h (2 lines): - line 583: // FIXME: If we change the order of LoopInfo we will want to remove the - line 601: // FIXME: If we change the order of LoopInfo we will want to add a reverse clang/lib/Basic/Diagnostic.cpp (2 lines): - line 249: // FIXME: This doesn't guarantee that we use the same ordering as - line 380: // FIXME: This is theoretically wrong: if the current state is shared with llvm/lib/Target/AMDGPU/AMDGPULowerKernelAttributes.cpp (2 lines): - line 105: // TODO: Handle merged loads. - line 227: // TODO: Move makeLIDRangeMetadata usage into here. Seem to not get llvm/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp (2 lines): - line 160: // FIXME: This is perhaps a bit too defensive. We could try to follow the - line 258: // TODO: The following code appears to be needless as it just llvm/tools/llvm-size/llvm-size.cpp (2 lines): - line 114: // TODO: if we have a error getting the name then it would be nice to print - line 878: // TODO Replace this with OptTable API once it adds extrahelp support. clang/utils/clangdiag.py (2 lines): - line 111: # FIXME: Make this configurable? - line 128: # FIXME: Make this configurable? compiler-rt/lib/safestack/safestack.cpp (2 lines): - line 26: // TODO: To make accessing the unsafe stack pointer faster, we plan to - line 42: // TODO: The runtime library does not currently protect the safe stack beyond llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp (2 lines): - line 96: // FIXME: Assuming stack alignment of 4 is always good enough - line 303: // FIXME: Merge with llvm::isConsecutiveAccess llvm/lib/Target/M68k/M68kTargetMachine.cpp (2 lines): - line 49: // FIXME how to wire it with the used object format? - line 62: // FIXME no floats at the moment llvm/include/llvm/BinaryFormat/COFF.h (2 lines): - line 566: // FIXME: This should be DllCharacteristics to match the COFF spec. - line 573: // FIXME: This should be NumberOfRvaAndSizes to match the COFF spec. lldb/source/Plugins/Process/Windows/Common/ProcessDebugger.cpp (2 lines): - line 39: // TODO: Process permissions other than executable - line 489: // FIXME: Without this check, occasionally when running the test suite llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp (2 lines): - line 117: // TODO name the uops more appropriately - line 1069: // TODO: Actually report errors helpfully. clang/lib/Sema/SemaAvailability.cpp (2 lines): - line 31: // FIXME: this is copied from CheckAvailability. We should try to - line 892: // FIXME: We only examine the pattern decl for availability violations now, mlir/lib/Dialect/Linalg/Utils/Utils.cpp (2 lines): - line 296: // TODO: support non-unit strides once there are use cases. - line 531: // TODO: this function can be made iterative instead. However, it lld/MachO/SymbolTable.cpp (2 lines): - line 72: // FIXME: Handle this for bitcode files. - line 79: // FIXME: Handle this for bitcode files. clang-tools-extra/clangd/Quality.cpp (2 lines): - line 226: Score *= 4; // FIXME: important keywords should have specific boosts. - line 450: // TODO: Handle other scopes as we start to use them for index results. polly/lib/Analysis/ScopInfo.cpp (2 lines): - line 485: // TODO: Investigate general usefulness; Effect on unit tests is to make index - line 2177: // TODO: We could use a heuristic and either use: llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.cpp (2 lines): - line 44: // FIXME: the checks for the DWARF sections are very fragile and should be - line 107: // TODO: enable this once the bug in the ptxas with the packed bytes is llvm/cmake/modules/TableGen.cmake (2 lines): - line 141: # FIXME: It leaks to user, callee of add_tablegen. - line 168: # FIXME: A proper fix requires sequentially chaining tablegens. lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.cpp (2 lines): - line 121: // TODO: We dont support fp/SIMD arguments in v0-v7 - line 180: // TODO: Verify for stack layout for SysV llvm/include/llvm/CodeGen/DIE.h (2 lines): - line 940: // TODO: move setSize() and Size to DIEValueList. - line 977: // TODO: move setSize() and Size to DIEValueList. clang-tools-extra/clangd/TUScheduler.h (2 lines): - line 321: // FIXME: remove this when there is proper index support via build system - line 323: // FIXME: move to ClangdServer via createProcessingContext. llvm/lib/Target/X86/X86SelectionDAGInfo.cpp (2 lines): - line 181: // TODO: Use a Tokenfactor, as in memcpy, instead of a single chain. - line 242: /// TODO: Revisit next line: big copy with ERMSB on march >= haswell are very lldb/source/Plugins/ABI/Mips/ABISysV_mips64.cpp (2 lines): - line 551: if (args.size() > 8) // TODO handle more than 8 arguments - line 683: error.SetErrorString("TODO: Handle Float Types."); compiler-rt/lib/interception/interception_win.cpp (2 lines): - line 172: // FIXME: internal_str* and internal_mem* functions should be moved from the - line 654: // FIXME: Unknown instruction failures might happen when we add a new lldb/source/Commands/CommandObjectMemory.cpp (2 lines): - line 565: // TODO For non-8-bit byte addressable architectures this needs to be - line 1372: case eFormatFloat: // TODO: add support for floats soon clang/unittests/Tooling/TransformerTest.cpp (2 lines): - line 90: // FIXME: consider separating this class into its own file(s). - line 128: // FIXME: stash this error rather then printing. mlir/lib/Dialect/Linalg/ComprehensiveBufferize/TensorInterfaceImpl.cpp (2 lines): - line 348: // TODO: Use insertSliceOp.getDestOpOperand etc. when available. - line 415: // TODO: be very loud about it or even consider failing the pass. clang-tools-extra/clang-tidy/modernize/UseEqualsDeleteCheck.cpp (2 lines): - line 62: // FIXME: Improve FixItHint to make the method public. - line 73: // FIXME: Add FixItHint to make the method public. utils/bazel/llvm-project-overlay/llvm/config.bzl (2 lines): - line 74: # TODO: We should switch to platforms-based config settings to make this easier - line 83: # TODO: We should split out host vs. target here. llvm/include/llvm/Transforms/Utils/Debugify.h (2 lines): - line 169: /// TODO: Add New PM support for custom pass manager. - line 196: // TODO: Implement Debugify for LoopPass. llvm/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp (2 lines): - line 490: // FIXME: Add ARM and AArch64 variants here. - line 522: // FIXME: Add ARM and AArch64 variants here. llvm/lib/Transforms/Utils/FunctionComparator.cpp (2 lines): - line 170: // TODO: Note that as this is metadata, it is possible to drop and/or merge - line 854: // TODO: if it's internal and only used in direct calls, we could handle this clang/lib/Driver/ToolChains/HIPSPV.cpp (2 lines): - line 143: // TODO: Allow autovectorization when SPIR-V backend arrives. - line 290: // TODO: Enable debug info when the SPIR-V backend arrives. llvm/tools/obj2yaml/elf2yaml.cpp (2 lines): - line 298: // TODO: Set EShStrndx if the value doesn't represent a real section. - line 521: // FIXME: The dumpDebug* functions should take the content as stored in clang/lib/Rewrite/HTMLRewrite.cpp (2 lines): - line 500: // FIXME: Exclude the optional ud-suffix from the highlighted range. - line 577: // FIXME: This is a huge hack; we reuse the input preprocessor because we want compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc (2 lines): - line 18: // FIXME: support read+write arguments. Currently READWRITE and WRITE do the - line 592: // FIXME: add verbose output compiler-rt/lib/msan/msan.cpp (2 lines): - line 98: // FIXME: make it resizable. - line 151: // FIXME: test and enable. clang/lib/ASTMatchers/ASTMatchersInternal.cpp (2 lines): - line 242: // FIXME: Implement the Not operator to take a single matcher instead of a - line 606: // FIXME: Any other DeclContext kinds that can be safely disregarded clang-tools-extra/clang-doc/BitcodeWriter.cpp (2 lines): - line 332: // FIXME: Assert that the line number is of the appropriate size. - line 354: // FIXME: Assert that the integer is of the appropriate size. libcxx/utils/libcxx/util.py (2 lines): - line 20: # FIXME: Most of these functions are cribbed from LIT - line 250: TODO: Reimplement this without using psutil so we can mlir/lib/Dialect/MemRef/Transforms/FoldSubViewOps.cpp (2 lines): - line 169: // TODO: support 0-d corner case. - line 193: // TODO: support 0-d corner case. mlir/lib/Transforms/CSE.cpp (2 lines): - line 116: // TODO: We currently only eliminate non side-effecting - line 206: // TODO: Regions without SSA dominance should define a different lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp (2 lines): - line 280: // FIXME: Move this to GetDeclContextContainingUID. - line 672: // FIXME: do this. libcxx/include/__filesystem/path.h (2 lines): - line 448: // TODO Implement locale conversions. - line 555: // FIXME: Use _LIBCPP_DIAGNOSE_WARNING to produce a diagnostic when __src clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp (2 lines): - line 200: // FIXME: Use a better -version message? - line 210: // FIXME: Remove this, one day. llvm/lib/Transforms/Utils/LoopPeel.cpp (2 lines): - line 117: // TODO: Actually if %y is an expression that depends only on Phi %z and some - line 917: // FIXME: Incrementally update loop-simplify llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp (2 lines): - line 1759: /// TODO: This relies on a barrier always generating a waitcnt - line 1771: // TODO: If both release and invalidate are happening they could be combined clang/tools/libclang/CIndexHigh.cpp (2 lines): - line 200: // FIXME: For a macro definition make sure that all expansions - line 295: // FIXME: For a macro definition make sure that all expansions lldb/tools/debugserver/source/MacOSX/MachTask.mm (2 lines): - line 872: // TODO: notify of error? - line 893: // TODO: change SBSWatchdogAssertionRelease to SBSWatchdogAssertionCancel libc/src/stdlib/abort.cpp (2 lines): - line 18: // TODO: When sigprocmask and sigaction land: - line 21: // TODO: When C11 mutexes land: clang-tools-extra/clangd/unittests/ConfigProviderTests.cpp (2 lines): - line 163: // FIXME: fails on windows: paths have mixed slashes like C:\a/b\c.yaml - line 181: // FIXME: delete this test, it's covered by FileCacheTests. mlir/lib/Parser/Parser.cpp (2 lines): - line 1201: // TODO: The types, OperandType and SSAUseInfo, both share the same members - line 2174: // TODO: Extend to support multiple buffers. llvm/include/llvm/ADT/Twine.h (2 lines): - line 62: /// We maintain a number of invariants on Twine objects (FIXME: Why): - line 370: // FIXME: Unfortunately, to make sure this is as efficient as possible we llvm/include/llvm/LTO/legacy/LTOModule.h (2 lines): - line 176: // FIXME: it only parses "llvm.linker.options" metadata at the moment - line 177: // FIXME: can't access metadata in lazily loaded modules llvm/include/llvm/MC/MCSectionXCOFF.h (2 lines): - line 74: // FIXME: use a more meaningful name for non csect sections. - line 78: // FIXME: set different alignments according to section types. clang/include/clang/Driver/ToolChain.h (2 lines): - line 577: /// FIXME: this really belongs on some sort of DeploymentTarget abstraction - line 584: /// FIXME: this really belongs on some sort of DeploymentTarget abstraction clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h (2 lines): - line 437: // FIXME: constexpr initialization isn't supported by MSVC2013. - line 649: // TODO: Can't we just use a map instead? This is likely not as cheap as it llvm/lib/CodeGen/MachineCopyPropagation.cpp (2 lines): - line 214: // FIXME: Shall we simultaneously invalidate AvailSrc or AvailDef? - line 539: // FIXME: Don't handle partial uses of wider COPYs yet. clang/lib/AST/NestedNameSpecifier.cpp (2 lines): - line 222: // FIXME: must also be instantiation-dependent. - line 701: // FIXME: After copying the source-location information, should we free llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp (2 lines): - line 405: // TODO: compute InternalAdditionnalPressure. - line 939: else // TODO: Attribute new colors depending on color clang-tools-extra/clang-tidy/utils/NamespaceAliaser.cpp (2 lines): - line 40: // FIXME: Doesn't consider the order of declarations. - line 43: // FIXME: Also doesn't consider file or class-scope aliases. clang/unittests/Rename/RenameFunctionTest.cpp (2 lines): - line 407: // FIXME: the rename of overloaded operator is not fully supported yet. - line 523: // FIXME: Fix the complex the case where the symbol being renamed is located in clang/lib/Serialization/GlobalModuleIndex.cpp (2 lines): - line 226: // FIXME: this doesn't work correctly for module names containing path - line 645: // FIXME: we could read the signature out of the import and validate it. clang/lib/CodeGen/CGObjCRuntime.cpp (2 lines): - line 81: // FIXME: Note that currently we make a very conservative estimate of the - line 100: // FIXME: This is incredibly wasteful, these should be uniqued or part of some lldb/source/Breakpoint/Watchpoint.cpp (2 lines): - line 113: // FIXME: This should not happen, but if it does in some case we care about, - line 295: // FIXME: Log something... llvm/include/llvm/Support/MathExtras.h (2 lines): - line 55: // TODO: Track C++20 std::numbers. - line 56: // TODO: Favor using the hexadecimal FP constants (requires C++17). llvm/lib/CodeGen/TailDuplicator.cpp (2 lines): - line 494: // There could be duplicate phi source entries. FIXME: Should sdisel - line 634: // FIXME: Use findPHICopyInsertPoint() to find the correct insertion point compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_netbsd_compat.inc (2 lines): - line 37: // FIXME: under ASan the call below may write to freed memory and corrupt - line 49: // FIXME: under ASan the call below may write to freed memory and corrupt compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h (2 lines): - line 105: // FIXME: do we have anything like this on Mac? - line 110: // FIXME: Check for those conditions. clang/cmake/caches/Fuchsia.cmake (2 lines): - line 26: # TODO: Remove this once we switch to ld64.lld. - line 116: # TODO: Remove this once we switch to ld64.lld. llvm/lib/Support/Z3Solver.cpp (2 lines): - line 780: // TODO: Don't assume nearest ties to even rounding mode - line 813: // FIXME: This function is also used to retrieve floating-point values, clang/include/clang/Sema/ScopeInfo.h (2 lines): - line 392: /// FIXME: Migrate the caller of this to use containsErrors() instead once - line 704: /*FIXME: IsNested*/ false, Loc, CaptureType)); llvm/utils/unittest/googlemock/include/gmock/gmock-matchers.h (2 lines): - line 260: // FIXME: The intermediate SafeMatcherCastImpl class was introduced as a - line 1755: // FIXME: The dispatch on std::is_pointer was introduced as a workaround for llvm/lib/Transforms/Scalar/LoopPredication.cpp (2 lines): - line 559: // TODO: This should be sunk inside SCEV. - line 1131: // transform. TODO: It'd be nice to know for sure the exit became llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp (2 lines): - line 274: // TODO: - line 1588: // previous immediate. FIXME: This is a hack. clang/lib/AST/ASTDumper.cpp (2 lines): - line 90: // FIXME: The redecls() range sometimes has elements of a less-specific - line 132: // FIXME: We don't add a declaration of a function template specialization llvm/include/llvm/IR/GetElementPtrTypeIterator.h (2 lines): - line 68: // FIXME: Make this the iterator's operator*() after the 4.0 release. - line 111: // FIXME: Most current users of this class are just interested in byte llvm/include/llvm/Support/TargetParser.h (2 lines): - line 17: // FIXME: vector is used because that's what clang uses for subtarget feature - line 32: // FIXME: To TableGen this we need to make some table generated files available lld/COFF/PDB.cpp (2 lines): - line 698: // TODO: Consider buffering symbols for the entire object file to reduce - line 1282: // FIXME: Reimplement for ghash. flang/include/flang/Optimizer/Builder/BoxValue.h (2 lines): - line 61: /// FIXME: this comment is not true anymore since genLoad - line 270: // TODO: check contiguous attribute of addr llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp (2 lines): - line 1977: // TODO: Fold negations of the mask into the store. - line 1992: // TODO: use funnel shifts? llvm/include/llvm/ExecutionEngine/ExecutionEngine.h (2 lines): - line 103: // FIXME: There is no particular need the entire map needs to be - line 202: // FIXME: This stealth ownership transfer is horrible. This will probably be llvm/utils/gn/secondary/lldb/source/Core/BUILD.gn (2 lines): - line 38: # FIXME: - line 42: # FIXME: Link curses, libedit if needed. polly/lib/Analysis/ScopDetection.cpp (2 lines): - line 1063: // TODO: If we have an unknown access and other non-affine accesses we do - line 1092: // FIXME: Think about allowing IntToPtrInst lldb/source/Interpreter/CommandObject.cpp (2 lines): - line 24: // FIXME: Make a separate file for the completers. - line 282: // FIXME: Abstract telling the completion to insert the completion compiler-rt/lib/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc (2 lines): - line 18: // FIXME: support read+write arguments. Currently READWRITE and WRITE do the - line 1523: // FIXME: add verbose output flang/unittests/Evaluate/real.cpp (2 lines): - line 302: FLT fcheck = x; // TODO unsigned too - line 536: // TODO: how to test Rounding::TiesAwayFromZero on x86? llvm/tools/llvm-reduce/deltas/ReduceOperands.cpp (2 lines): - line 46: // TODO: be more precise about which GEP operands we can reduce (e.g. array - line 73: // TODO: support floats clang-tools-extra/clang-tidy/bugprone/RedundantBranchConditionCheck.cpp (2 lines): - line 72: // FIXME: Handle longer conjunctive and disjunctive clauses. - line 102: // FIXME: could potentially support tracking pointers and references in the llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp (2 lines): - line 176: // FIXME: Determine if there's a way to say that `F' is the callee or - line 450: // FIXME: When (3) is actually implemented, we'll have to emit the stubs clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp (2 lines): - line 170: // TODO: In the future this should be abstracted away by the analyzer. - line 275: // FIXME: maybe creating a new check name for this type of bug is a better mlir/lib/Dialect/Math/Transforms/PolynomialApproximation.cpp (2 lines): - line 652: // TODO: maybe use vector stacking to reduce the number of selects. - line 711: // TODO: Consider a common pattern rewriter with all methods below to mlir/lib/Pass/PassRegistry.cpp (2 lines): - line 158: // TODO: Handle escaping strings. - line 229: // TODO: printOptionInfo assumes a specific indent and will lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp (2 lines): - line 614: // FIXME start by finding the last region that is <= target address using - line 974: // TODO: PTRACE_POSIX_SPAWN? clang-tools-extra/clang-tidy/bugprone/MacroParenthesesCheck.cpp (2 lines): - line 56: // FIXME: better matching of keywords to avoid false positives. - line 62: // FIXME: This is an initial list of operators. It can be tweaked later to mlir/lib/Dialect/Affine/Transforms/LoopTiling.cpp (2 lines): - line 88: // TODO: evolve this model. Tile size determination is a large area - line 140: // TODO: this is approximate. Ideally, obtain reuse factor / llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp (2 lines): - line 54: // TODO: Probably this hack should be redesigned via InstAlias in - line 391: // TODO: This should be in a helper function in the base class, so it can llvm/lib/Object/ObjectFile.cpp (2 lines): - line 50: // TODO: Actually report errors helpfully. - line 60: // TODO: Test this error. mlir/include/mlir/Interfaces/InferTypeOpInterface.h (2 lines): - line 207: // TODO: Update so that operator[] references these instead to avoid - line 228: // TODO: Consider generating typedefs for trait member functions if this usage llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp (2 lines): - line 61: // TODO: This won't work for switch statements. - line 76: // TODO: This won't work for switch statements. llvm/lib/Transforms/Utils/ValueMapper.cpp (2 lines): - line 390: // FIXME: always return nullptr once Verifier::verifyDominatesUse() - line 1028: // FIXME: This upgrade is done during linking to support the C API. See llvm/lib/DebugInfo/CodeView/TypeRecordMapping.cpp (2 lines): - line 583: // TODO: Split the list into multiple records if it's longer than 64KB, using - line 633: // FIXME: Handle full APInt such as __int128. clang/lib/Tooling/CompilationDatabase.cpp (2 lines): - line 12: // FIXME: Various functions that take a string &ErrorMessage should be upgraded - line 233: /// FIXME: This functionality should probably be made available by lldb/source/Core/ValueObject.cpp (2 lines): - line 1790: // FIXME: this causes a "real" child to end up with its name changed to - line 1888: // TODO: a base of no parent? weird.. compiler-rt/lib/asan/asan_linux.cpp (2 lines): - line 74: // FIXME: perhaps also store abi version here? - line 125: // FIXME: should we do anything for Android? llvm/tools/llvm-rc/llvm-rc.cpp (2 lines): - line 377: // TODO: GNU windres takes input on stdin in this case. - line 387: // TODO: GNU windres writes output in rc form to stdout in this case. clang-tools-extra/clang-tidy/ClangTidy.h (2 lines): - line 95: // FIXME: This interface will need to be significantly extended to be useful. - line 96: // FIXME: Implement confidence levels for displaying/fixing errors. mlir/include/mlir/Analysis/LoopAnalysis.h (2 lines): - line 67: /// TODO: relax the no-conditionals restriction - line 82: // TODO: extend this to check for memory-based dependence violation when we have mlir/lib/Conversion/SCFToOpenMP/SCFToOpenMP.cpp (2 lines): - line 281: // TODO: add atomic region using cmpxchg (which needs atomic load to be - line 345: // TODO: consider checking it here is already a compatible reduction lldb/unittests/Process/Utility/RegisterContextFreeBSDTest.cpp (2 lines): - line 90: // TODO: This is a known bug, abridged ftag should is 8 bits in length. - line 197: // TODO: This is a known bug, abridged ftag should is 8 bits in length. llvm/tools/llvm-exegesis/lib/X86/X86Counter.cpp (2 lines): - line 14: // FIXME: Use appropriate wrappers for poll.h and mman.h - line 127: // FIXME This is SKL's encoding. Not sure if it'll change. mlir/lib/Tools/mlir-lsp-server/lsp/Transport.cpp (2 lines): - line 87: // TODO: Add support for cancelling requests. - line 114: // TODO: Add support for reply callbacks when support for outgoing messages is clang/lib/Driver/ToolChains/Fuchsia.cpp (2 lines): - line 225: // TODO: Remove these multilibs once relative vtables are enabled by default - line 438: // TODO: Enable SafeStack on RISC-V once tested. llvm/lib/Transforms/Scalar/StructurizeCFG.cpp (2 lines): - line 809: // TODO: The dominator check is too strict - line 1024: // TODO: We could probably be smarter here with how we handle sub-regions. llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h (2 lines): - line 190: // FIXME: Why don't we just infer this tag and store it all along? - line 422: // FIXME: replace this with a map from comp_dir to table so that we llvm/include/llvm/Transforms/Utils/ValueMapper.h (2 lines): - line 133: /// TODO: lib/Linker really doesn't need the \a ValueHandle in the \a - line 141: /// TODO: Update callers of \a RemapInstruction() and \a MapValue() (etc.) to clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidNonConstGlobalVariablesCheck.cpp (2 lines): - line 54: << Variable; // FIXME: Add fix-it hint to Variable - line 65: << VD->getType()->isPointerType(); // FIXME: Add fix-it hint to Variable llvm/include/llvm/ADT/iterator_range.h (2 lines): - line 34: //TODO: Add SFINAE to test that the Container's iterators match the range's - line 38: //TODO: Consider ADL/non-member begin/end calls. openmp/runtime/src/kmp_environment.cpp (2 lines): - line 74: // TODO: Eliminate direct memory allocations, use string operations instead. - line 141: // TODO: Find and replace all regular free() with __kmp_env_free(). llvm/tools/llvm-tli-checker/llvm-tli-checker.cpp (2 lines): - line 168: // FIXME: Support other formats. - line 225: // FIXME: Report this better. clang-tools-extra/clangd/refactor/tweaks/DefineInline.cpp (2 lines): - line 117: // FIXME: Allow declarations from different files with include insertion. - line 439: // FIXME: If we are in an implementation file, figure out a suitable libc/src/__support/FPUtil/ManipulationFunctions.h (2 lines): - line 75: // TODO: Raise appropriate floating point exceptions and set errno to the - line 175: // TODO: Raise floating point exceptions as required by the standard. lldb/unittests/Utility/StreamTest.cpp (2 lines): - line 488: // FIXME: PDP byte order is not actually implemented but Stream just silently - line 500: // FIXME: PDP byte order is not actually implemented but Stream just silently flang/runtime/io-stmt.cpp (2 lines): - line 309: // TODO: UTF-8 encoding - line 321: // TODO: UTF-8 encoding clang/lib/Driver/ToolChains/Arch/Mips.cpp (2 lines): - line 129: // FIXME: Warn on inconsistent use of -march and -mabi. - line 285: // FIXME: Note, this is a hack. We need to pass the selected float llvm/lib/IR/Metadata.cpp (2 lines): - line 923: // FIXME: This preserves long-standing behaviour, but is it really the right - line 936: // FIXME: This preserves long-standing behaviour, but is it really the right libcxx/src/support/win32/locale_win32.cpp (2 lines): - line 18: // FIXME: base currently unused. Needs manual work to construct the new locale - line 94: // FIXME: Remove usage of internal CRT function and globals. clang-tools-extra/clangd/Preamble.h (2 lines): - line 88: /// FIXME: Should return more information about the delta between \p Preamble - line 106: /// FIXME: This only handles include directives, we should at least handle llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp (2 lines): - line 490: /// record the label as Thumb. FIXME: there is a corner case where the state - line 1389: // FIXME: This should eventually end up somewhere else where more llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp (2 lines): - line 220: // TODO: Consider accumulating the offset to the base. - line 226: // alignments in the assume bundle. TODO: Consider generalizing caller. clang/include/clang/Sema/TypoCorrection.h (2 lines): - line 327: // TODO: Expand these to apply to non-keywords or possibly remove them. - line 343: // FIXME: This probably does not return true when both openmp/runtime/src/kmp_lock.h (2 lines): - line 547: // FIXME - We should go through and figure out which lock kind works best for - line 1257: // TODO: No lock block implementation now. If we do support, we need to manage clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.h (2 lines): - line 31: /// TODO: See if 'fixes' for false positives are optimized away by the compiler. - line 32: /// TODO: For classes with multiple constructors, make sure that we don't offer lldb/source/Core/Module.cpp (2 lines): - line 601: // TODO: Handle SourceLocationSpec column information - line 923: // TODO: Handle SourceLocationSpec column information compiler-rt/lib/asan/asan_interceptors.cpp (2 lines): - line 75: // FIXME: ask frontend whether we need to return failure. - line 678: // TODO: this should probably have an unversioned fallback for newer arches? mlir/lib/Dialect/Linalg/Transforms/Loops.cpp (2 lines): - line 129: // TODO: Avoid the loads if the corresponding argument of the - line 150: // TODO: When a region inliner exists, use it. libcxx/include/__ranges/take_view.h (2 lines): - line 121: // TODO: use ranges::min here. - line 128: // TODO: use ranges::min here. mlir/lib/Dialect/Bufferization/Transforms/BufferDeallocation.cpp (2 lines): - line 45: // TODO: - line 225: // TODO: check for incompatible implementations of the llvm/lib/Target/AMDGPU/R600EmitClauseMarkers.cpp (2 lines): - line 183: //TODO: change this to defs? - line 206: // TODO: Is this true? kill flag appears to work OK below lldb/source/Symbol/FuncUnwinders.cpp (2 lines): - line 83: return m_unwind_plan_compact_unwind[0]; // FIXME support multiple compact - line 96: return m_unwind_plan_compact_unwind[0]; // FIXME support multiple llvm/lib/Analysis/ProfileSummaryInfo.cpp (2 lines): - line 103: // FIXME: The heuristic used below for determining hotness is based on - line 230: // FIXME: The heuristic used below for determining coldness is based on clang/include/clang/AST/DeclarationName.h (2 lines): - line 693: // FIXME: this should go away once all DNLocs are properly initialized. - line 768: // FIXME: remove it. llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp (2 lines): - line 1240: // FIXME: The caller of determineREXPrefix slaps this prefix onto - line 1834: // FIXME: Verify. llvm/lib/Analysis/ObjCARCInstKind.cpp (2 lines): - line 159: // TODO: Make this into a covered switch. - line 201: // TODO: Expand this into a covered switch. There is a lot more here. llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp (2 lines): - line 260: // FIXME: support 32-bit - line 776: // FIXME: This does not handle pseudo loading instruction like TCRETURN* llvm/lib/Target/X86/X86RegisterInfo.h (2 lines): - line 54: // FIXME: This should be tablegen'd like getDwarfRegNum is - line 145: // FIXME: Move to FrameInfok mlir/include/mlir/Analysis/Presburger/IntegerPolyhedron.h (2 lines): - line 298: // TODO: deal with integer exactness when necessary - can return a value to - line 361: // TODO: Support EQ bounds. clang-tools-extra/clangd/unittests/tweaks/RemoveUsingNamespaceTests.cpp (2 lines): - line 110: {// FIXME: Nested namespaces: Not aware of using ns decl of outer ns. - line 153: {// FIXME: Unavailable for namespaces containing using-namespace decl. clang/include/clang/Tooling/CompilationDatabase.h (2 lines): - line 100: /// FIXME: Currently only supports JSON compilation databases, which - line 141: /// FIXME: Add a layer in Tooling that provides an interface to run a tool clang/include/clang/AST/ASTImporterSharedState.h (2 lines): - line 20: // FIXME We need this because of ImportError. - line 42: // FIXME put ImportedFromDecls here! llvm/lib/ExecutionEngine/IntelJITEvents/ittnotify_config.h (2 lines): - line 101: /* TODO: Temporary for compatibility! */ - line 259: /* TODO: Add Support for not Intel compilers for IA64 */ llvm/include/llvm/Support/TypeSize.h (2 lines): - line 410: // TODO: Most functionality in this class will gradually be phased out - line 432: // TODO: Remove the implicit conversion. clang/lib/AST/ODRHash.cpp (2 lines): - line 146: // TODO: Support these cases. - line 306: // TODO: Handle default arguments. llvm/include/llvm/IR/Attributes.h (2 lines): - line 275: // TODO: Extract AvailableAttrs from AttributeSetNode and store them here. - line 465: // TODO: remove non-AtIndex versions of these methods. clang/lib/Format/FormatToken.cpp (2 lines): - line 37: // FIXME: This is copy&pasted from Sema. Put it in a common place and remove - line 159: // FIXME: At some point we might want to do this for other lists, too. mlir/include/mlir/Dialect/StandardOps/Transforms/DecomposeCallGraphTypes.h (2 lines): - line 12: // TODO: Make this handle dialect-defined functions, calls, and returns. - line 42: /// TODO: Eventually, the type conversion infra should have this hook built-in. llvm/lib/Target/AVR/AVRISelLowering.cpp (2 lines): - line 190: // TODO: The generated code is pretty poor. Investigate using the - line 272: //: TODO: this function has to be completely rewritten to produce optimal clang/lib/StaticAnalyzer/Core/CallDescription.cpp (2 lines): - line 56: // FIXME: Add ObjC Message support. - line 83: // FIXME This comparison is way SLOWER than comparing pointers. clang-tools-extra/clang-tidy/llvm/IncludeOrderCheck.cpp (2 lines): - line 101: // TODO: find duplicated includes. - line 105: // FIXME: We should be more careful about sorting below comments as we don't llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp (2 lines): - line 581: // TODO: Add Thumb relocations. - line 1251: // TODO: Now ELF SymbolRef::ST_Debug = STT_SECTION, it's not obviously llvm/lib/Support/Unix/Program.inc (2 lines): - line 400: // FIXME The alarm signal may be delivered to another thread. - line 430: // FIXME This could grab some other child process out from another llvm/lib/ProfileData/InstrProfReader.cpp (2 lines): - line 802: // FIXME: We could theoretically map the same equivalence class to - line 853: /// FIXME: Can we store a location within the on-disk hash table instead of llvm/utils/lit/lit/formats/base.py (2 lines): - line 35: # FIXME: Refactor into generic test for running some command on a directory - line 78: # FIXME: Hack? llvm/lib/Transforms/Scalar/Sink.cpp (2 lines): - line 83: // FIXME: Split critical edges if not backedges. - line 121: // FIXME: This should include support for sinking instructions within the clang/unittests/Analysis/MacroExpansionContextTest.cpp (2 lines): - line 157: // FIXME: We only deal with begin locations. - line 383: // FIXME: Extra space follows every identifier. llvm/include/llvm/Analysis/IntervalPartition.h (2 lines): - line 16: // TODO: The IntervalPartition class should take a bool parameter that tells - line 74: // TODO: isIrreducible - look for triangle graph. mlir/include/mlir/Dialect/Affine/Utils.h (2 lines): - line 77: // TODO: Hoist to a VectorizationStrategy.cpp when appropriate. - line 103: /// TODO: Vectorizing reductions is supported only for 1-D vectorization. llvm/lib/IR/Function.cpp (2 lines): - line 162: // FIXME: All the type carrying attributes are mutually exclusive, so there - line 486: // FIXME: This does the work of transferNodesFromList inefficiently. compiler-rt/cmake/base-config-ix.cmake (2 lines): - line 39: # FIXME: We should be able to reuse CLANG_VERSION variable calculated - line 215: # FIXME: Ideally, we would build the N32 library too. clang/unittests/AST/SourceLocationTest.cpp (2 lines): - line 12: // FIXME: In the long-term, when we test more than source locations, we may - line 31: // FIXME: Pull the *Verifier tests into their own test file. clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObject.h (2 lines): - line 37: // TODO: With some clever heuristics, some pointers should be dereferenced - line 307: // TODO: Add a support for nonloc::LocAsInteger. llvm/utils/TableGen/GlobalISel/GIMatchTree.cpp (2 lines): - line 198: // TODO: Filter partitioners for facts that are already known - line 482: // TODO: This is where we would handle multiple choices of opcode llvm/utils/TableGen/DFAEmitter.cpp (2 lines): - line 115: // FIXME: It may make sense to emit these as ULEB sequences instead of - line 173: // FIXME: This entire discriminated union could be removed with c++17: llvm/lib/Support/Signals.cpp (2 lines): - line 142: // FIXME: Subtract necessary number from StackTrace entries to turn return addresses - line 193: // FIXME: Make this the default for llvm-symbolizer. llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h (2 lines): - line 118: // FIXME: Zen 3 support branch fusion for OR/XOR. - line 187: // FIXME: Zen 3 support branch fusion for OR/XOR. llvm/lib/Target/RISCV/RISCVGatherScatterLowering.cpp (2 lines): - line 92: // FIXME: Let the backend type legalize by splitting/widening? - line 100: // TODO: Should we consider the mask when looking for a stride? clang/unittests/Analysis/FlowSensitive/TypeErasedDataflowAnalysisTest.cpp (2 lines): - line 283: // FIXME: Called functions at point `p` should contain "foo". - line 299: // FIXME: Called functions at point `p` should contain only "foo". lldb/source/Target/RegisterContext.cpp (2 lines): - line 357: // TODO: we might need to add a parameter to this function in case the byte - line 378: // TODO: we might need to add a parameter to this function in case the byte lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp (2 lines): - line 222: // TODO: check if we should be retrying? - line 802: // TODO: parse the stop reply packet llvm/lib/Target/Lanai/LanaiISelLowering.cpp (2 lines): - line 153: // TODO: Setting the minimum jump table entries needed before a - line 748: // TODO: Should return-twice functions be handled? llvm/lib/Target/Mips/MipsTargetMachine.cpp (2 lines): - line 177: // FIXME: This is related to the code below to reset the target options, - line 282: // FIXME: This is no longer necessary as the TTI returned is per-function. llvm/lib/FuzzMutate/IRMutator.cpp (2 lines): - line 26: // TODO: Some arguments and a return value would probably be more interesting. - line 159: // TODO: We can't handle these instructions. llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp (2 lines): - line 1684: // TODO: Does this need to look through AND/OR/XOR to their users to find more - line 1700: // TODO: Add more opcodes? llvm/lib/CodeGen/GlobalISel/Combiner.cpp (2 lines): - line 94: (void)this->TPC; // FIXME: Remove when used. - line 100: // FIXME: Should this be here or in individual combiner passes. mlir/lib/IR/SymbolTable.cpp (2 lines): - line 152: // TODO: Consider if this should be renamed to something like insertOrUpdate - line 160: // TODO: consider if SymbolTable's constructor should behave the same. clang/include/clang/Tooling/Transformer/RewriteRule.h (2 lines): - line 224: // FIXME: If `Metadata` returns an `llvm::Expected` the `AnyGenerator` will - line 386: // FIXME: These functions are really public, if advanced, elements of the clang/tools/clang-repl/ClangRepl.cpp (2 lines): - line 74: // FIXME: Investigate if we could use runToolOnCodeWithArgs from tooling. It - line 94: // FIXME: Add LE.setListCompleter clang/lib/StaticAnalyzer/Checkers/DynamicTypeChecker.cpp (2 lines): - line 153: // TODO: consider checking explicit casts? - line 156: // TODO: C++ support. mlir/lib/Dialect/StandardOps/IR/Ops.cpp (2 lines): - line 599: // TODO These checks can be expanded to encompas any use with only - line 982: // TODO: we could replace this by a trait. clang/tools/diagtool/TreeView.cpp (2 lines): - line 33: // FIXME: This feels like a hack. - line 164: // FIXME: Handle other special warning flags, like -pedantic. mlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp (2 lines): - line 176: // TODO: Manually create an Adaptor that captures inputs and outputs for all - line 352: // TODO: Drop this once tensor constants work in standard. llvm/lib/MCA/Stages/ExecuteStage.cpp (2 lines): - line 67: // FIXME: add a buffer of executed instructions. - line 108: // FIXME: add a buffer of executed instructions. llvm/lib/Target/MSP430/MSP430FrameLowering.cpp (2 lines): - line 177: // FIXME: Can we eleminate these in favour of generic code? - line 229: // TODO: consider using push / pop instead of sub + store / add compiler-rt/utils/generate_netbsd_ioctls.awk (2 lines): - line 284: pcmd(" // FIXME: support read+write arguments. Currently READWRITE and WRITE do the") - line 449: pcmd(" // FIXME: add verbose output") llvm/lib/Analysis/LoopAnalysisManager.cpp (2 lines): - line 46: // FIXME: It isn't clear if this is the right tradeoff. We could instead make - line 74: // FIXME: Making InnerAM null at this point isn't very nice. Most analyses lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp (2 lines): - line 364: // TODO: do we need to handle !PL_FLAG_SI? - line 568: // FIXME start by finding the last region that is <= target address using llvm/unittests/ADT/BitVectorTest.cpp (2 lines): - line 556: // FIXME BitVector and SmallBitVector behave differently here. - line 579: // FIXME BitVector and SmallBitVector behave differently here. clang-tools-extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp (2 lines): - line 70: // TODO: This may be changed later, but for now it seems the reasonable - line 115: // FIXME: Provide a way to extract commented out parameter name from comment clang/lib/Frontend/CreateInvocationFromCommandLine.cpp (2 lines): - line 42: // FIXME: Find a cleaner way to force the driver into restricted modes. - line 48: // FIXME: We shouldn't have to pass in the path info. llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp (2 lines): - line 246: // TODO: Could have multiple extracts? - line 315: // FIXME: Handle copies with sub-regs. clang/include/clang/Sema/Lookup.h (2 lines): - line 155: // TODO: consider whether this constructor should be restricted to take - line 178: // FIXME: Remove these deleted methods once the default build includes llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp (2 lines): - line 336: // FIXME: probably we'll need to cache the results here somehow? - line 421: // FIXME: This should be in the MachineVerifier, but it can't use the clang/lib/Edit/EditedSource.cpp (2 lines): - line 315: // FIXME: Should use TokenConcatenation to make sure we don't allow stuff like - line 359: // FIXME: Remove newline. clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp (2 lines): - line 55: // TODO: Emit an error here. - line 245: // FIXME: What should be reported here? llvm/utils/TableGen/CodeGenRegisters.cpp (2 lines): - line 1155: // FIXME: This could just be RegistersByName[name] = register, except that - line 1541: // FIXME: What if ad-hoc aliasing introduces overlaps that aren't represented compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h (2 lines): - line 170: // FIXME: enable memmem on Windows. - line 390: // FIXME: getline seems to be available on OSX 10.7 llvm/lib/Target/ARM/Thumb1FrameLowering.cpp (2 lines): - line 97: // FIXME: This is assuming the heuristics in emitThumbRegPlusImmediate - line 1039: // FIXME: if we don't pass any stack arguments it would be actually llvm/utils/llvm-locstats/llvm-locstats.py (2 lines): - line 204: # TODO: Handle errors that are coming from llvm-dwarfdump. - line 215: # TODO: Parse the statistics Version from JSON. llvm/lib/CodeGen/ShadowStackGCLowering.cpp (2 lines): - line 138: // FIXME: Is this actually dangerous as WritingAnLLVMPass.html claims? Seems - line 234: // FIXME: Account for original alignment. Could fragment the root array. llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp (2 lines): - line 330: // TODO: the code above creates new registers which are then removed here. - line 334: // FIXME: we are not processing inline assembly, which contains register llvm/lib/CodeGen/ModuloSchedule.cpp (2 lines): - line 897: // FIXME: This algorithm assumes instructions have fixed-size offsets. - line 938: // TODO: Figure out whether isAtomic is really necessary (see D57601). lldb/source/API/SBValue.cpp (2 lines): - line 90: // FIXME: This check is necessary but not sufficient. We for sure don't - line 1520: // FIXME: Remove this method impl (as well as the decl in .h) once it is no llvm/lib/Frontend/OpenMP/OMPContext.cpp (2 lines): - line 72: // TODO: What exactly do we want to see as device ISA trait? - line 248: // TODO: Verify SIMD llvm/include/llvm/ExecutionEngine/Orc/Shared/SimplePackedSerialization.h (2 lines): - line 128: // FIXME: This typedef is here to enable SPS arg serialization from - line 565: // FIXME: Use std::variant for storage once we have c++17. clang/lib/Lex/MacroInfo.cpp (2 lines): - line 135: // FIXME: Dump locations. - line 224: // FIXME: Dump SourceLocation. flang/lib/Lower/FIRBuilder.cpp (2 lines): - line 145: // FIXME: add a fir::is_integer() test - line 157: // FIXME: add a fir::is_integer() test llvm/lib/Target/AMDGPU/R600InstrInfo.cpp (2 lines): - line 813: // FIXME: only one case?? - line 862: // TODO: We don't support KC merging atm mlir/lib/Dialect/Vector/VectorMultiDimReductionTransforms.cpp (2 lines): - line 197: // TODO: support 0-d vectors when available. - line 315: // TODO: Add vector::CombiningKind attribute instead of string to llvm/lib/ExecutionEngine/Orc/EPCGenericRTDyldMemoryManager.cpp (2 lines): - line 53: // FIXME: Report errors through EPC once that functionality is available. - line 258: // FIXME: Can we reset SecAlloc.Content here, now that it's copied into libcxx/include/__format/formatter_string.h (2 lines): - line 32: // TODO FMT Remove this once we require compilers with proper C++20 support. - line 88: // TODO FMT Implement these improvements. llvm/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h (2 lines): - line 215: // FIXME: The C++98 initializer is an attempt to work around compile failures - line 376: // FIXME: Use an in-place array instead of a vector for DeallocActions. mlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp (2 lines): - line 61: // TODO: consider having such functionality inside AsmPrinter. - line 324: // TODO: consider having such functionality inside AsmParser. clang/tools/libclang/CursorVisitor.h (2 lines): - line 107: // FIXME: Eventually remove. This part of a hack to support proper - line 233: // FIXME: ObjCCompatibleAliasDecl requires aliased-class locations. clang/tools/libclang/Indexing.cpp (2 lines): - line 598: // FIXME: Add a flag for modules. - line 645: // FIXME: Only deserialize inclusion directives. llvm/include/llvm/Object/COFF.h (2 lines): - line 128: // FIXME: This should be DllCharacteristics. - line 135: // FIXME: This should be NumberOfRvaAndSizes. mlir/lib/Dialect/SCF/Transforms/AffineCanonicalizationUtils.cpp (2 lines): - line 129: // TODO: `getSliceBounds` may return multiple bounds at the moment. This is - line 130: // a TODO of `getSliceBounds` and not handled here. llvm/lib/Target/ARM/ARMCallLowering.cpp (2 lines): - line 79: // FIXME: Support i64 too - line 435: // FIXME: This should move to the ARMSubtarget when it supports all the opcodes. compiler-rt/lib/ubsan/ubsan_type_hash_win.cpp (2 lines): - line 41: // FIXME: Implement. - line 75: // FIXME: Implement a base class search like we do for Itanium. llvm/tools/llvm-config/llvm-config.cpp (2 lines): - line 344: // FIXME: Should we consider the build-mode-specific path as the prefix? - line 733: // FIXME: Each LLVM component may have its dependent system libs. llvm/include/llvm/ADT/ilist.h (2 lines): - line 80: /// TODO: Remove this layer of indirection. It's not necessary. - line 184: // TODO: Drop this assertion and the transitive type traits anytime after clang/tools/driver/driver.cpp (2 lines): - line 294: // FIXME: We don't actually canonicalize this, we just make it absolute. - line 431: // FIXME: Driver shouldn't take extra initial argument. clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h (2 lines): - line 364: // FIXME: Allow shared_ptr keys in DenseMap? - line 792: // TODO: Remember a few examples of generated messages flang/unittests/Evaluate/ISO-Fortran-binding.cpp (2 lines): - line 651: // TODO: test CFI_deallocate - line 652: // TODO: test CFI_is_contiguous llvm/lib/MC/MCStreamer.cpp (2 lines): - line 585: // FIXME: Error if there is no matching cfi_remember_state. - line 1230: // TODO: keep track of the last subsection so that this symbol appears in the clang-tools-extra/tool-template/ToolTemplate.cpp (2 lines): - line 61: // TODO: This routine will get called for each thing that the matchers - line 104: // TODO: Put your matchers here. lldb/source/DataFormatters/StringPrinter.cpp (2 lines): - line 430: // FIXME: The NSString formatter sets HasSourceSize(true) when the size is - line 547: // FIXME: This is probably not the right thing to do (well, it's debatable). llvm/lib/ExecutionEngine/Orc/LLJIT.cpp (2 lines): - line 708: // FIXME: Explicit conversion to std::unique_ptr added to silence - line 797: // FIXME: We should be able to use move-capture here, but ThreadPool's mlir/lib/Dialect/Vector/VectorDropLeadUnitDim.cpp (2 lines): - line 136: // TODO: support 0-d corner case. - line 184: // TODO: support 0-d corner case. mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp (2 lines): - line 41: // TODO: Extend this to support aliases and equal constants. - line 153: // TODO: Handle region side effects properly. lldb/source/Plugins/Platform/Android/PlatformAndroid.cpp (2 lines): - line 221: // TODO: Set correct uid and gid on remote file. - line 274: // FIXME: improve error handling llvm/lib/Transforms/Scalar/LoopSink.cpp (2 lines): - line 205: // FIXME: Handle code size growth for min_size and opt_size. - line 230: // FIXME: Optimize the efficiency for cloned value replacement. The current clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp (2 lines): - line 301: // TODO: rewrite with top-level cxxBaseSpecifier matcher when available - line 565: // FIXME floatLiteral matching should work regardless of suffix. clang-tools-extra/modularize/CoverageChecker.cpp (2 lines): - line 207: // FIXME: Doesn't collect files from umbrella header. - line 406: // FIXME: There probably needs to be some canonalization llvm/include/llvm/ExecutionEngine/JITLink/x86_64.h (2 lines): - line 238: /// TODO: Explain the optimization - line 328: /// TODO: Explain the generic edge kind lldb/tools/debugserver/source/MacOSX/arm/DNBArchImpl.cpp (2 lines): - line 916: // TODO: remove this hack and change to using hw.optional.xx when - line 968: // TODO: remove this hack and change to using hw.optional.xx when lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp (2 lines): - line 210: // FIXME: Add a PdbSymUid namespace for field list members and update - line 246: // FIXME: Add a PdbSymUid namespace for field list members and update lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp (2 lines): - line 656: response.PutHex64(Size); // TODO: replace with Host::GetSyswideErrorCode() - line 743: // FIXME: add timeout to qPlatform_shell packet llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp (2 lines): - line 828: // TODO: Instead of checking here for invalid die we might reject - line 856: // TODO: Instead of checking here for invalid die we might reject clang/lib/Basic/Targets/OSTargets.cpp (2 lines): - line 168: // FIXME: POSIXThreads isn't exactly the option this should be defined for, - line 177: // FIXME We cannot encode the revision information into 32-bits llvm/include/llvm/CodeGen/MachineFrameInfo.h (2 lines): - line 202: /// FIXME: There is room for improvement in this case, in terms of - line 623: // TODO: Enable this assert when targets are fixed. lld/COFF/InputFiles.cpp (2 lines): - line 568: // FIXME: This is incorrect: With /opt:noref, the previous sections - line 1040: // FIXME: Check nodeduplicate clang/include/clang/Analysis/AnyCall.h (2 lines): - line 132: // FIXME: block support. - line 175: // FIXME: BlockDecl does not know its return type, compiler-rt/lib/hwasan/hwasan_interceptors.cpp (2 lines): - line 13: // FIXME: move as many interceptors as possible into - line 178: // FIXME: ask frontend whether we need to return failure. lldb/source/API/SBTypeCategory.cpp (2 lines): - line 405: // FIXME: we need to iterate over all the Debugger objects and have each of - line 525: // FIXME: we need to iterate over all the Debugger objects and have each of clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp (2 lines): - line 82: // FIXME: - line 197: // FIXME: llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp (2 lines): - line 647: // TODO: Implement an instruction mapping table of 16bit opcodes to - line 650: // TODO: Permit b16 when branching backwards to the same function clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp (2 lines): - line 62: // FIXME: Scan the map once in the visitor's constructor and do a direct - line 210: // TODO: Do we need these to be typed? polly/lib/Transform/FlattenAlgo.cpp (2 lines): - line 292: // TODO: Normalize FirstAff to zero (convert to isl_map, determine minimum, - line 312: // TODO: Add one dimension? llvm/utils/TableGen/DAGISelMatcherGen.cpp (2 lines): - line 445: // TODO: This redundantly records nodes with both glues and chains. - line 628: // TODO: Complex patterns can't have output glues, if they did, we'd want llvm/lib/Transforms/IPO/ModuleInliner.cpp (2 lines): - line 152: // TODO: Here is a huge amount duplicate code between the module inliner and - line 167: // FIXME: Using instructions sequence is a really bad way to do this. clang/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp (2 lines): - line 50: // FIXME: (Alex L): Canonicalize implicit template instantions, just like - line 93: // FIXME: figure out why FoundDecl can be a VarTemplateSpecializationDecl. mlir/lib/Bindings/Python/IRModule.h (2 lines): - line 586: // TODO: As implemented, this facility is only sufficient for modeling the - line 797: /// TODO: Refactor this and the C-API to be based on an Identifier owned flang/module/iso_fortran_env.f90 (2 lines): - line 10: ! TODO: These are placeholder values so that some tests can be run. - line 26: ! TODO: Use PACK([x],test) in place of the array constructor idiom mlir/include/mlir/Dialect/SCF/Utils.h (2 lines): - line 69: // TODO: support more than single-block regions. - line 70: // TODO: more flexible constant handling. compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cpp (2 lines): - line 53: // FIXME: We don't call SymCleanup() on exit yet - should we? - line 91: // FIXME: Can we stop the other threads at this point? mlir/lib/Dialect/SCF/SCF.cpp (2 lines): - line 163: // TODO generalize the conditions for operations which can be inlined into. - line 957: // TODO: Any aliasing write of tensorLoadOp.memref() nested under `forOp` llvm/lib/MC/ELFObjectWriter.cpp (2 lines): - line 588: // FIXME: this is here just to diagnose the case of a var = commmon_sym. - line 1393: // FIXME: We could use the section but add the bit to the relocation value. clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp (2 lines): - line 716: // TODO: Apart from unknown/undefined receivers, this may happen when - line 1019: // FIXME: For now, ignore classes that subclass SenTestCase and XCTestCase, llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp (2 lines): - line 411: // FIXME: For other platforms, we need to use scattered relocations for - line 433: report_fatal_error("FIXME: relocations to absolute targets " flang/unittests/Evaluate/integer.cpp (2 lines): - line 95: // TODO test DIM, MODULO, ISHFTC, DSHIFTL/R - line 96: // TODO test IBCLR, IBSET, IBITS, MAX, MIN, MERGE_BITS, RANGE, SIGN llvm/include/llvm/Support/FileSystem.h (2 lines): - line 671: /// TODO Delete the path based overload once we implement the FD based overload - line 1336: // FIXME: different platforms make different information available "for free" llvm/lib/Target/ARM/ARMConstantPoolValue.cpp (2 lines): - line 55: // FIXME: Are these case sensitive? It'd be nice to lower-case all the - line 94: // external symbols. FIXME: What about blockaddress? clang-tools-extra/clangd/CodeCompletionStrings.cpp (2 lines): - line 65: // FIXME: clang's completion also returns documentation for RK_Pattern if they - line 151: // TODO: Make previous parameters part of the signature for Objective-C flang/include/flang/Evaluate/variable.h (2 lines): - line 97: // TODO: this is basically a symbol with an optional DataRef base; - line 238: // TODO C931 prohibits the use of a coindexed object as a stat-variable. clang-tools-extra/clang-tidy/hicpp/MultiwayPathsCoveredCheck.cpp (2 lines): - line 117: // FIXME: Evaluate, if emitting a fix-it to simplify that statement is - line 170: // FIXME: Transform the 'switch' into an 'if' for CaseCount == 1. clang/include/clang/AST/DeclContextInternals.h (2 lines): - line 195: // FIXME: It would be possible to preserve information from erase_if to - line 238: // FIXME: Move the assert before the single decl case when we fix the clang/include/clang/Analysis/Analyses/Consumed.h (2 lines): - line 87: // FIXME: Add documentation. - line 92: // FIXME: This can be removed when the attr propagation fix for templated llvm/tools/llvm-profgen/ProfiledBinary.cpp (2 lines): - line 224: // TODO: decode other sections. - line 282: // FIXME: This should be the page size of the system running profiling. llvm/lib/Target/ARM/ARMSubtarget.h (2 lines): - line 786: // FIXME: Add a flag for bare-metal for that target and set Triple::EABI - line 789: // FIXME: The Darwin exception is temporary, while we move users to llvm/unittests/Analysis/ScalarEvolutionTest.cpp (2 lines): - line 409: // FIXME: The size of this is arbitrary and doesn't seem to change the - line 1409: // FIXME: This can only be proved with turned on option llvm/lib/CodeGen/RegAllocEvictionAdvisor.h (2 lines): - line 70: // FIXME: this can be probably made an implementation detail of the default - line 276: // TODO: move to RegAllocEvictionAdvisor.cpp when we move implementation llvm/lib/ProfileData/InstrProfCorrelator.cpp (2 lines): - line 54: // TODO: Enable profile correlation when there are multiple objects in a - line 153: // TODO: Value profiling is not yet supported. mlir/include/mlir/IR/BuiltinTypes.h (2 lines): - line 70: // TODO: merge these two special values in a single one used everywhere. - line 353: // TODO: unify once we have a VectorType that supports 0-D. llvm/unittests/IR/MetadataTest.cpp (2 lines): - line 964: EXPECT_EQ(0u, M->getLine()); // FIXME: Should this be 2? - line 965: EXPECT_EQ(0u, M->getColumn()); // FIXME: Should this be 7? clang-tools-extra/clangd/AST.cpp (2 lines): - line 273: // FIXME: Fix cases when getTypeAsWritten returns null inside clang AST, - line 408: /// FIXME: This could have been a lot simpler by visiting AutoTypeLocs but it llvm/lib/Transforms/Utils/LCSSA.cpp (2 lines): - line 196: // as to revisit than later on. FIXME: Remove this if indirectbr support - line 395: // FIXME: This is a big hammer, can we clear the cache more selectively? lldb/include/lldb/Utility/Args.h (2 lines): - line 229: // FIXME: Handle the quote character somehow. - line 379: // FIXME: This should be a StringRef, but some of the calling code expect a libcxx/include/__format/format_args.h (2 lines): - line 29: // TODO FMT Remove this once we require compilers with proper C++20 support. - line 38: // TODO FMT Implement [format.args]/5 clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp (2 lines): - line 554: // FIXME: This should be replaced with something that doesn't rely on - line 679: // FIXME: Inter-procedural analysis will need to handle invalid CFGs. mlir/lib/Dialect/Linalg/ComprehensiveBufferize/BufferizationInterfaceImpl.cpp (2 lines): - line 25: // TODO: These ops should implement BufferizableOpInterface directly when moved - line 60: // TODO: Remove ToMemrefOps from the analysis. llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h (2 lines): - line 89: // FIXME: How to limit for scalable vectors? - line 117: // FIXME: How to limit for scalable vectors? clang/include/clang/Parse/RAIIObjectsForParser.h (2 lines): - line 24: // TODO: move ParsingClassDefinition here. - line 25: // TODO: move TentativeParsingAction here. clang/utils/ClangVisualizers/clang.natvis (2 lines): - line 451: views for each qualifier. TODO: Non-fast qualifiers --> - line 524: llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp (2 lines): - line 311: // TODO: Consider expanding to other addressing modes in the future - line 693: // TODO: take branch probability into consideration, if the blocking compiler-rt/lib/xray/xray_init.cpp (2 lines): - line 47: // FIXME: Support DSO instrumentation maps too. The current solution only works - line 114: // FIXME: Make check-xray tests work on FreeBSD without llvm/tools/llvm-readobj/XCOFFDumper.cpp (2 lines): - line 103: // TODO FIXME Add support for the auxiliary header (if any) once - line 790: // TODO The interpretation of loader, exception and type check section llvm/include/llvm/CodeGen/CallingConvLower.h (2 lines): - line 49: // FIXME: Not implemented yet. Code that uses AExt to mean - line 53: // TODO: a subset of the value is in the location. llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp (2 lines): - line 91: // FIXME: Once callee expressions are defined to be sequenced before - line 107: // FIXME: Once callee expressions are defined to be sequenced before argument openmp/runtime/src/kmp_dispatch.h (2 lines): - line 285: TODO: make inline function (move to header file for icl) - line 444: /* TODO use general release procedure? */ clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp (2 lines): - line 1719: // TODO: Handle co_return. - line 1904: // FIXME: Maybe unneeded, getNameForDiagnostic() is expected to change to return clang/include/clang/AST/Mangle.h (2 lines): - line 116: // FIXME: consider replacing raw_ostream & with something like SmallString &. - line 164: /// TODO: Extend this to internal types by generating names that are unique llvm/lib/Support/ARMTargetParser.cpp (2 lines): - line 362: // FIXME: Clang uses it, but it's bogus, since neon defaults to vfpv3. - line 619: // FIXME: this is invalid for WindowsCE. llvm/lib/CodeGen/LexicalScopes.cpp (2 lines): - line 168: // FIXME: Should the following dyn_cast be DILexicalBlock? - line 219: // FIXME: Should the following isa be DILexicalBlock? llvm/include/llvm/CodeGen/MachineFunction.h (2 lines): - line 112: // Possible TODO: Allow targets to extend this (perhaps by allowing the - line 114: // Possible TODO: Allow requiring the negative (e.g. VRegsAllocated could be clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp (2 lines): - line 226: // FIXME: Cumbersome! Maybe add hook at construction of SVals at start of - line 305: // FIXME: Can ID ever be NULL? llvm/include/llvm/Support/AArch64TargetParser.h (2 lines): - line 22: // FIXME:This should be made into class design,to avoid dupplication. - line 113: // FIXME: These should be moved to TargetTuple once it exists clang-tools-extra/clang-tidy/readability/IsolateDeclarationCheck.cpp (2 lines): - line 132: // FIXME: Member pointers are not transformed correctly right now, that's - line 182: // FIXME: Member pointers are not transformed correctly right now, that's clang/lib/Format/ContinuationIndenter.h (2 lines): - line 68: // FIXME: canBreak and mustBreak aren't strictly indentation-related. Find a - line 445: /// FIXME: Come up with a better algorithm instead. llvm/include/llvm/Analysis/CGSCCPassManager.h (2 lines): - line 40: /// FIXME: There is one major drawback of the reference graph: in its naive - line 320: /// FIXME: Keeping this here seems like a big layering issue, we should look llvm/include/llvm/MC/MCSubtargetInfo.h (2 lines): - line 125: /// FIXME: Find a way to stick this in the constructor, since it should only - line 185: // TODO: The number of read advance entries in a class can be significant clang/utils/TableGen/ClangOptionDocEmitter.cpp (2 lines): - line 7: // FIXME: Once this has stabilized, consider moving it to LLVM. - line 172: // FIXME: Provide a flag to specify the set of exclusions. clang/include/clang/AST/RecordLayout.h (2 lines): - line 36: /// ObjCInterfaceDecl. FIXME - Find appropriate name. - line 137: /// FIXME: This should really use a SmallPtrMap, once we have one in LLVM :) llvm/lib/Linker/IRMover.cpp (2 lines): - line 904: // FIXME: This upgrade is done during linking to support the C API. Once the - line 1196: // FIXME: Locally-scoped imported entities could be moved to the llvm/lib/ExecutionEngine/JITLink/JITLinkMemoryManager.cpp (2 lines): - line 313: // FIXME: Just check this once on startup. - line 342: // FIXME: Make two separate allocations in the future to reduce flang/include/flang/Common/real.h (2 lines): - line 78: // TODO: case 106: return kind for double/double - line 98: // TODO: case kind for double/double: return 106; llvm/include/llvm/Support/JSON.h (2 lines): - line 196: // FIXME: insert() takes const_iterator since C++11, old libstdc++ disagrees. - line 558: // FIXME: this is unneccesarily large (3 pointers). Pointer + length + owned clang/tools/libclang/CXCursor.cpp (2 lines): - line 424: // TODO: add support for MatrixSubscriptExpr. - line 1248: // FIXME: Remove once we can model DeclGroups and their appropriate ranges llvm/utils/lit/lit/reports.py (2 lines): - line 29: # FIXME: Record some information on the lit configuration used? - line 30: # FIXME: Record information from the individual test suites? llvm/lib/Support/APInt.cpp (2 lines): - line 413: // TODO - there is scope for optimization here, but at the moment this code - line 533: // FIXME: base 36 clang/lib/Rewrite/TokenRewriter.cpp (2 lines): - line 61: // FIXME: This is horrible, we should use our own list or something to avoid - line 94: // TODO: Form a whole lexer around this and relex the token! For now, just llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h (2 lines): - line 75: // TODO: Is the img rsrc useful? - line 283: // TODO: 10 may be a better default since it's the maximum. llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h (2 lines): - line 40: bool IllegalOpsAllowed; // TODO: Make use of this. - line 44: bool LegalizeIllegalOps; // TODO: Make use of this. clang/lib/Index/IndexBody.cpp (2 lines): - line 173: // FIXME: Improve overload handling. - line 452: // FIXME: Try to resolve dependent field references. llvm/include/llvm/Support/GenericDomTreeConstruction.h (2 lines): - line 1202: // FIXME: The LLVM_DEBUG macro only plays well with a modular - line 1567: // FIXME: Updated to use the PreViewCFG and behave the same as until now. llvm/lib/Target/Sparc/SparcRegisterInfo.cpp (2 lines): - line 57: // FIXME: G1 reserved for now for large imm generation by frame code. - line 125: // FIXME: it would be better to scavenge a register here instead of lldb/source/Core/Debugger.cpp (2 lines): - line 210: // FIXME it would be nice to have "on-change" callbacks for properties - line 901: // FIXME Jonas Devlieghere: shouldn't this error be propagated out to the llvm/tools/llvm-exegesis/llvm-exegesis.cpp (2 lines): - line 427: // FIXME: Check that all points have the same triple/cpu. - line 428: // FIXME: Merge points from several runs (latency and uops). lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.cpp (2 lines): - line 118: // TODO: Add support for other standard operations. - line 119: // TODO: Provide mechanism to hook handling of non-standard/extension llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp (2 lines): - line 102: // FIXME: These section checks are too strict: We should match first and - line 125: // FIXME: Maybe use a symbol promoter here instead. llvm/lib/Transforms/Coroutines/CoroInternal.h (2 lines): - line 40: // FIXME: Refactor these attributes as LLVM attributes instead of string - line 43: // FIXME: Remove these values once we remove the Legacy PM. polly/lib/Analysis/DependenceInfo.cpp (2 lines): - line 250: // FIXME: Apply the current schedule instead of assuming the identity schedule - line 640: // TODO: Also check permutable/coincident flags as well. llvm/include/llvm/Object/ELF.h (2 lines): - line 510: // TODO: this error is untested. - line 779: // TODO: this error is untested. lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp (2 lines): - line 784: // TODO tie this into the MC Disassembler's notion of clobbers. - line 1449: // TODO: llvm-objdump sets the type_ptr to the clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp (2 lines): - line 57: // FIXME: All of this out-of-bounds checking should eventually be refactored - line 75: // FIXME: This bug correspond to CWE-466. Eventually we should have bug clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h (2 lines): - line 121: // TODO: this should call checkModel so we can use the cache, however, - line 309: // TODO: Don't add all the constraints, only the relevant ones llvm/lib/Analysis/LoopInfo.cpp (2 lines): - line 489: // FIXME: it should be ok to clone CallBrInst's if we correctly update the - line 963: // FIXME: Currently we create a LoopInfo from scratch for every function. clang/lib/Driver/ToolChains/Gnu.h (2 lines): - line 196: // FIXME: These might be better as path objects. - line 332: // FIXME: This should be final, but the CrossWindows toolchain does weird llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp (2 lines): - line 25: // FIXME: Should initialize KernArgSize based on ExplicitKernelArgOffset, - line 49: /// TODO: We should sort these to minimize wasted space due to alignment mlir/lib/Dialect/Linalg/Transforms/LinalgStrategyPasses.cpp (2 lines): - line 304: // TODO: Improve once we have better infrastructure to control pattern - line 487: // TODO: if/when we need finer control add an `opName` parameter. clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp (2 lines): - line 380: // TODO: Implement support for union fields. - line 411: // FIXME: This function constructs an incorrect string in the following case: mlir/lib/Dialect/Linalg/ComprehensiveBufferize/ComprehensiveBufferize.cpp (2 lines): - line 123: // TODO: Out-of-place bufferized value could be considered writable. - line 163: // TODO: Instead of isProperAncestor + properlyDominates, we should use mlir/lib/IR/PatternMatch.cpp (2 lines): - line 184: // TODO: Is it possible to diagnose when `name` is already registered to - line 193: // TODO: Is it possible to diagnose when `name` is already registered to llvm/include/llvm/MCA/HardwareUnits/LSUnit.h (2 lines): - line 406: // FIXME: In the absence of cache misses (i.e. L1I/L1D/iTLB/dTLB hits/misses), - line 421: // FIXME: On some processors, load/store operations are split into multiple clang/lib/Sema/SemaStmtAsm.cpp (2 lines): - line 860: // FIXME: Handle IndirectFieldDecl? - line 890: // FIXME: Diagnose this as field access into a scalar type. pstl/include/pstl/internal/omp/parallel_for_each.h (2 lines): - line 26: // TODO: Think of an approach to remove the std::distance call - line 32: // TODO: Think of an approach to remove the increment here each time. llvm/utils/gn/secondary/clang/include/clang/Config/BUILD.gn (2 lines): - line 33: "CLANG_ENABLE_OBJC_REWRITER=1", # FIXME: flag? - line 62: # FIXME: Hardcoding this isn't great, but assuming that the host ld version llvm/lib/Target/AMDGPU/SIFormMemoryClauses.cpp (2 lines): - line 156: // TODO: Prologue/Epilogue Insertion pass does not process bundled - line 202: // FIXME: This pressure check is fundamentally broken. First, this is checking clang-tools-extra/clangd/unittests/SemanticSelectionTests.cpp (2 lines): - line 109: // FIXME: We should get the whole DeclStmt as a range. - line 116: // FIXME: No node found associated to the position. flang/lib/Semantics/check-do-forall.cpp (2 lines): - line 421: // TODO: handle the other cases - line 743: // TODO: this is working around missing std::set::merge in some versions of clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallDescription.h (2 lines): - line 128: // TODO: Implement an actual map for fast lookup for "hashable" call - line 152: // TODO: Implement some sort of fast path. clang/lib/CodeGen/CGValue.h (2 lines): - line 85: // FIXME: should we make this a more explicit state? - line 107: // FIXME: Aggregate rvalues need to retain information about whether they are llvm/lib/Target/AArch64/AArch64MCInstLower.cpp (2 lines): - line 81: // FIXME: We would like an efficient form for this, so we don't have to do a - line 223: // FIXME: Currently we only set VK_NC for MO_G3/MO_G2/MO_G1/MO_G0. This is llvm/lib/CodeGen/ShrinkWrap.cpp (2 lines): - line 264: // TODO: - Obvious non-stack loads and store, such as global values, - line 398: // FIXME: Refine the criteria to still find interesting cases llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.cpp (2 lines): - line 84: // TODO Consider adding 'nounwind' info in TargetLowering::CallLoweringInfo - line 103: // TODO Can we exclude call instructions that are marked as 'nounwind' in the llvm/lib/InterfaceStub/IFSHandler.cpp (2 lines): - line 273: // TODO: unify the error message. - line 293: // TODO: Implement a Triple Arch enum to e_machine map. mlir/lib/IR/BuiltinTypes.cpp (2 lines): - line 945: /// TODO: static cases can have more advanced checks. - line 946: /// TODO: dynamic cases would require a way to compare symbolic llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp (2 lines): - line 263: // FIXME: Need a 'notify lazy-extracting/emitting' callback to tie the - line 316: // FIXME: We apply this promotion once per partitioning. It's safe, but lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h (2 lines): - line 806: // TODO: Return all matches for a given name by returning a - line 1223: // FIXME: GCC 5.x doesn't support enum as map keys. llvm/include/llvm/Support/YAMLParser.h (2 lines): - line 281: /// TODO: Consider making this not a child of Node. - line 399: // TODO: support skipping from the middle of a parsed collection ;/ clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp (2 lines): - line 31: // FIXME: Ascending over StackFrameContext maybe another method. - line 153: // FIXME: These hints are valid only when the virtual call is made clang/lib/Basic/Targets.cpp (2 lines): - line 402: // TODO: add cases for NetBSD, RTEMS once tested. - line 413: // TODO: add cases for NetBSD, RTEMS once tested. llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp (2 lines): - line 84: // TODO: Does WebAssembly need to care about setjmp for register coloring? - line 118: // TODO: Investigate more intelligent sorting heuristics. For starters, we llvm/lib/Target/Lanai/LanaiAsmPrinter.cpp (2 lines): - line 156: // TODO: We should generate a pc-relative mov instruction here instead - line 214: // FIXME: could the overridden cases be handled in analyzeBranch? compiler-rt/lib/tsan/rtl-old/tsan_rtl_access.cpp (2 lines): - line 424: // FIXME: fix me. - line 446: // FIXME: may overwrite a part outside the region llvm/tools/llvm-objcopy/ELF/Object.h (2 lines): - line 809: // TODO: The way stripping and groups interact is complicated - line 820: // TODO: Contents is present in several classes of the hierarchy. clang/lib/StaticAnalyzer/Core/LoopWidening.cpp (2 lines): - line 51: // TODO Make this more conservative by only invalidating values that might - line 53: // TODO Nested loops are currently widened as a result of the invalidation llvm/lib/Object/ELF.cpp (2 lines): - line 564: // TODO: this error is untested. - line 568: // TODO: this error is untested. polly/include/polly/ScopInfo.h (2 lines): - line 505: /// TODO: - line 534: // TODO: It might be possible to move them to ScopArrayInfo. llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp (2 lines): - line 720: // TODO: Could also check for an induction variable containing single - line 2000: // TODO: For this to be really effective, we have to dive into the pointer llvm/include/llvm/MC/MCSchedule.h (2 lines): - line 153: /// FIXME: this struct can be extended to provide information about the number - line 221: /// TODO: One tool currently missing is the ability to add a delay to llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp (2 lines): - line 54: // FIXME: use %pc22/%pc10, if system assembler supports them. - line 57: // FIXME: use %got22/%got10, if system assembler supports them. clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp (2 lines): - line 439: // FIXME: Show other ClangTidyOptions' fields, like ExtraArg. - line 540: // TODO: Figure out when zero exit code should be used with -fix-errors: clang/lib/Driver/ToolChains/Linux.cpp (2 lines): - line 162: // FIXME: This is a bit of a hack. We should really unify this code for - line 307: // FIXME: It's not clear whether we should use the driver's installed llvm/lib/Target/AMDGPU/AMDGPUReplaceLDSUseWithPointer.cpp (2 lines): - line 167: // FIXME: When GV is used within all (or within most of the kernels), then - line 429: // FIXME: Need to handle bit-casted function pointers. llvm/lib/CodeGen/RegisterScavenging.cpp (2 lines): - line 226: // FIXME: Enable this once we've figured out how to correctly transfer - line 738: // FIXME: Iterating over the instruction stream is unnecessary. We can simply llvm/lib/Target/AArch64/AArch64StackTagging.cpp (2 lines): - line 418: // FIXME: support dynamic allocas - line 523: // FIXME: check for MTE extension clang/lib/Frontend/ASTConsumers.cpp (2 lines): - line 106: // FIXME: Support OutputFormat in type dumping. - line 107: // FIXME: Support combining -ast-dump-decl-types with -ast-dump-lookups. lldb/source/Plugins/SymbolFile/NativePDB/PdbUtil.cpp (2 lines): - line 620: // TODO: may be better to pass function scope and not lookup it every - line 679: // FIXME: Handle other kinds llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp (2 lines): - line 296: // FIXME: Add thunk map and section offsets for incremental linking. - line 449: // FIXME: Fill these in. They are for incremental linking. llvm/include/llvm/IR/DerivedTypes.h (2 lines): - line 665: /// TODO: remove after opaque pointer transition is complete. - line 700: /// TODO: Remove after opaque pointer transition is complete. clang/include/clang/AST/JSONNodeDumper.h (2 lines): - line 363: // FIXME: The redecls() range sometimes has elements of a less-specific - line 402: // FIXME: it would be nice to dump template parameters and specializations flang/lib/Optimizer/Transforms/CharacterConversion.cpp (2 lines): - line 26: // TODO: Future hook to select some set of runtime calls. - line 122: // TODO: some sort of runtime supported conversion? clang/include/clang/Analysis/RetainSummaryManager.h (2 lines): - line 411: // FIXME: We may change this at some point. - line 428: // FIXME: Class method lookup. Right now we don't have a good way llvm/lib/Transforms/IPO/Internalize.cpp (2 lines): - line 206: // FIXME: Shouldn't this just filter on llvm.metadata section?? - line 217: // FIXME: We should probably add this (and the __stack_chk_guard) via some clang/lib/Basic/Targets/PPC.h (2 lines): - line 221: // FIXME: The following are added to allow parsing. - line 420: // TODO: Set appropriate ABI for AIX platform. lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.cpp (2 lines): - line 76: // FIXME: How does clang tell us there's no return value? We need to handle - line 99: // FIXME: This will need to be extended to handle Variadic functions. We'll mlir/lib/Conversion/LinalgToStandard/LinalgToStandard.cpp (2 lines): - line 107: // TODO: Add support for more complex library call signatures that include - line 167: // TODO: ConvOp conversion needs to export a descriptor with relevant clang/unittests/Rename/RenameClassTest.cpp (2 lines): - line 389: // FIXME: figure out why this only works when Moo gets - line 804: // FIXME: investigate why the test fails when adding a new USR to the USRSet. clang/lib/AST/ExprConcepts.cpp (2 lines): - line 176: // FIXME: move the computing dependency logic to ComputeDependence.h - line 179: // FIXME: this is incorrect for cases where we have a non-dependent flang/runtime/type-info.h (2 lines): - line 110: // TODO: cobounds - line 111: // TODO: `PRIVATE` attribute lldb/source/Target/Platform.cpp (2 lines): - line 1303: // TODO: ChownFile? - line 1915: // TODO: support big-endian arm and thumb trap codes. clang/lib/Basic/SourceManager.cpp (2 lines): - line 1390: // FIXME: I would like to be convinced that this code is worth being as - line 1405: // FIXME: Potential overflow? llvm/lib/Support/Windows/Process.inc (2 lines): - line 60: // FIXME: FileOffset in MapViewOfFile() should be aligned to not dwPageSize, - line 173: // FIXME: This assumes the wildcard is only in the file name and not in the clang-tools-extra/clangd/unittests/SymbolCollectorTests.cpp (2 lines): - line 430: // FIXME: ForwardDecl likely *is* visible outside. - line 572: // FIXME: Results also contain Container::_magic on some platforms. lldb/source/Interpreter/Property.cpp (2 lines): - line 184: // FIXME: improve error handling for llvm::to_integer() - line 193: // FIXME: improve error handling for llvm::to_integer() llvm/tools/opt/NewPMDriver.cpp (2 lines): - line 376: // TODO: remove this once tests implicitly requiring basic-aa use -passes= and - line 431: // FIXME: These translations are supposed to be removed when lit tests that llvm/lib/Target/X86/X86Subtarget.cpp (2 lines): - line 247: // FIXME: I386 PE/COFF supports PC relative calls using IMAGE_REL_I386_REL32 - line 261: TuneCPU = "i586"; // FIXME: "generic" is more modern than llc tests expect. flang/lib/Optimizer/CodeGen/TypeConverter.h (2 lines): - line 63: // TODO: Support for this type will be added later when the Fortran 2003 - line 309: // TODO: For now use a void*, however pointer identity is not sufficient for compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp (2 lines): - line 71: // TODO: Handle (Options.HandleXfsz) - line 187: // TODO: make this implementation more efficient. clang/lib/AST/Mangle.cpp (2 lines): - line 33: // FIXME: For blocks we currently mimic GCC's mangling scheme, which leaves - line 315: // FIXME: We were doing a mangleUnqualifiedName() before, but that's clang-tools-extra/clangd/Protocol.h (2 lines): - line 1243: // TODO: Add custom commitCharacters for some of the completion items. For - line 1595: // FIXME: add detail messages. compiler-rt/lib/xray/xray_basic_logging.cpp (2 lines): - line 108: // FIXME: Actually check whether we have 'constant_tsc' and 'nonstop_tsc' - line 434: // TODO: Implement custom event and typed event handling support in Basic clang/utils/analyzer/SATest.py (2 lines): - line 208: # TODO: Add an option not to build. - line 209: # TODO: Set the path to the Repository directory. lldb/include/lldb/Host/MainLoop.h (2 lines): - line 37: // TODO: Add locking if this class is to be used in a multi-threaded context. - line 66: // TODO: Add synchronization if we want to be terminated from another thread. llvm/lib/ProfileData/GCOV.cpp (2 lines): - line 196: // TODO Unhandled - line 839: // TODO replace_path_prefix may strip the prefix even if the remaining clang/lib/Tooling/Refactoring/Rename/USRFinder.cpp (2 lines): - line 63: // FIXME: Add tests for Point == End. - line 138: // FIXME: Add test for the nullptr case. llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h (2 lines): - line 96: /// TODO: Remove this once we've migrated - line 220: // FIXME: This perhaps should be stricter, but the current legality llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp (2 lines): - line 647: // FIXME: We also need to consider movs of constant operands since - line 663: // FIXME: This could work better if hints worked with subregisters. If clang-tools-extra/clangd/tool/Check.cpp (2 lines): - line 152: // FIXME: Check that resource-dir/built-in-headers exist? - line 218: // FIXME: dumping the tokens may leak sensitive code into bug reports. llvm/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp (2 lines): - line 691: // TODO: see if there isn't a better way to do this. - line 1129: // TODO: This test is focussed on one specific instance (ld/st). llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp (2 lines): - line 26: // FIXME: TableGen this. - line 261: // FIXME: We're abusing the fact that everything lives in a GPR for now; in clang/lib/StaticAnalyzer/Core/SymbolManager.cpp (2 lines): - line 409: // TODO: For now, liveness of a memory region is equivalent to liveness of its - line 424: // FIXME: This is a gross over-approximation. What we really need is a way to llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionRecord.h (2 lines): - line 68: /// FIXME: Reduce the size of this. - line 77: // FIXME: We need to pass the container type through to this function. In clang/lib/Parse/ParseAST.cpp (2 lines): - line 126: // FIXME: See note on "finalize" below. - line 174: // FIXME: This (and init.) should be done in the Sema class, but because llvm/lib/Target/PowerPC/PPCLowerMASSVEntries.cpp (2 lines): - line 68: // FIXME: - line 77: // TODO: add _P10 enties to Linux MASS lib and remove the check for AIX llvm/unittests/XRay/ProfileTest.cpp (2 lines): - line 261: // FIXME: Add a test creating a Trace and generating a Profile - line 262: // FIXME: Add tests for ranking/sorting profile blocks by dimension lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h (2 lines): - line 207: // TODO: handle big endian... - line 212: // TODO: handle big endian... mlir/include/mlir/Dialect/Vector/VectorUtils.h (2 lines): - line 46: /// TODO: needs better doc of how it is used. - line 200: /// TODO: this could all be much simpler if we added a bit that a vector type to clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp (2 lines): - line 54: // FIXME: do we want to warn here? Not right now. The most reports might - line 84: // FIXME: Refactor into StoreManager itself? mlir/python/mlir/dialects/_linalg_ops_ext.py (2 lines): - line 52: # TODO: Refactor the InitTensorOp to take an element type attribute and - line 89: # TODO: This shouldn't be a heuristic: we should have a way to annotate compiler-rt/lib/scudo/standalone/benchmarks/malloc_benchmark.cpp (2 lines): - line 51: // FIXME: Add DefaultConfig here once we can tear down the exclusive TSD - line 98: // FIXME: Add DefaultConfig here once we can tear down the exclusive TSD clang/lib/Tooling/ArgumentsAdjusters.cpp (2 lines): - line 40: // FIXME: Add other options that generate output. - line 57: // FIXME: This should be added to most argument adjusters! clang/lib/Tooling/Inclusions/HeaderIncludes.cpp (2 lines): - line 347: // FIXME: figure out if this is the best behavior. - line 376: // FIXME: when inserting multiple #includes at the end of code, only one llvm/lib/CodeGen/RegUsageInfoCollector.cpp (2 lines): - line 80: // TODO: Move to hook somwehere? - line 154: // FIXME: Rewrite to use regunits. llvm/lib/Support/FileCollector.cpp (2 lines): - line 68: // FIXME: Should this be a call to FileSystem::getRealpath(), in some - line 80: // FIXME: If we can cope with this, maybe we can cope without calling mlir/lib/Conversion/LLVMCommon/TypeConverter.cpp (2 lines): - line 133: // TODO: bare ptr conversion could be handled here but we would need a way - line 287: /// TODO: add assertions for the static cases. llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h (2 lines): - line 638: // FIXME: A char* or SymbolStringPtr may pack better. - line 1626: /// FIXME: These basically duplicate orc::SymbolLookupFlags -- We should merge llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h (2 lines): - line 721: // FIXME: Remove this when calling conventions cleaned up - line 998: // FIXME: Inlining should be OK for dx10-clamp, since the caller's mode should lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp (2 lines): - line 1463: // TODO: figure out remote case here! - line 1589: // TODO: figure out remote case here! llvm/lib/XRay/RecordPrinter.cpp (2 lines): - line 80: // FIXME: Support symbolization here? - line 100: // TODO: Flag as a bug? clang-tools-extra/clangd/refactor/tweaks/ExpandAutoType.cpp (2 lines): - line 36: /// FIXME: Handle decltype as well - line 130: // FIXME: there are other types that have similar problems llvm/lib/Bitcode/Writer/ValueEnumerator.cpp (2 lines): - line 418: // TODO: Move this to ValueEnumerator::EnumerateOperandType() once bitcode - line 432: // FIXME: Pass GV to EnumerateMetadata and arrange for the bitcode writer clang-tools-extra/clangd/Headers.cpp (2 lines): - line 321: // FIXME: should we allow (some limited number of) "../header.h"? - line 437: return {header()}; // FIXME: multiple in case of ambiguity clang/lib/Driver/ToolChains/Arch/AArch64.cpp (2 lines): - line 348: // FIXME: this fp16fml option handling will be reimplemented after the - line 372: // FIXME: this needs reimplementation too after the TargetParser rewrite compiler-rt/lib/profile/InstrProfilingPlatformOther.c (2 lines): - line 44: /* TODO: Only emit this function if we can't use linker magic. */ - line 89: /* TODO: correctly set up OrderFileFirst. */ lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.cpp (2 lines): - line 106: if (args.size() > 8) // TODO handle more than 8 arguments - line 366: // FIXME - don't know how to do 80 bit long doubles yet. llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp (2 lines): - line 98: // TODO: We don't do TRE if dynamic allocas are used. - line 343: // FIXME: We can move load/store/call/free instructions above the call if the clang/include/clang/ASTMatchers/ASTMatchersMacros.h (2 lines): - line 262: /// FIXME: Pull out common code with above macro? - line 360: // FIXME: add a matcher for TypeLoc derived classes using its custom casting llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp (2 lines): - line 129: // FIXME: This assumes all exports are functions. - line 133: // FIXME: The last export has a one byte size now. llvm/tools/llvm-xray/func-id-helper.cpp (2 lines): - line 34: // TODO: set proper section index here. - line 61: // TODO: set proper section index here. clang/lib/Frontend/Rewrite/InclusionRewriter.cpp (2 lines): - line 407: // TODO: Consider adding a switch that strips possibly unimportant content, - line 552: // TODO: It would be even faster if the preprocessor could be switched llvm/tools/llvm-objcopy/MachO/MachOReader.cpp (2 lines): - line 103: // TODO Support CPU_TYPE_ARM. - line 258: // FIXME: Refactor error handling in MachOReader and report an error clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h (2 lines): - line 104: // FIXME: Add `Expr` to `StorageLocation` map. - line 108: // FIXME: Add flow condition constraints. clang/lib/Index/IndexDecl.cpp (2 lines): - line 650: // FIXME: Notify subsequent callbacks if info comes from implicit - line 716: // FIXME: Ignore a class template in a dependent context, these are not compiler-rt/lib/orc/adt.h (2 lines): - line 25: /// FIXME: Remove in favor of std::span once we can use c++20. - line 61: /// FIXME: Remove in favor of std::string_view once we have c++17. flang/lib/Evaluate/type.cpp (2 lines): - line 53: // TODO: refine this placeholder - line 317: // TODO: compare types, parameters, bounds, &c. clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp (2 lines): - line 913: // FIXME: Should we walk the chain of classes? - line 1108: // FIXME: We may be able to use PPCallbacks to check for empty context clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp (2 lines): - line 100: // TODO: We can still try to identify *unsafe* use after move, - line 516: // TODO: Some of these methods (eg., resize) are not always resetting llvm/lib/CodeGen/ScoreboardHazardRecognizer.cpp (2 lines): - line 131: // stage is occupied. FIXME it would be more accurate to find the - line 190: // stage is occupied. FIXME it would be more accurate to reserve llvm/lib/Transforms/Utils/LowerSwitch.cpp (2 lines): - line 332: // FIXME: Combine branch weights. - line 400: // TODO Shouldn't this create a signed range? lldb/tools/debugserver/source/DNB.cpp (2 lines): - line 830: // FIXME: Do something with the error... - line 1435: // FIXME: This doesn't return the correct result when xctest (a llvm/unittests/Support/ItaniumManglingCanonicalizerTest.cpp (2 lines): - line 167: // FIXME: Should a 'std' equivalence also cover the predefined - line 272: // FIXME: We should consider ways of fixing this, perhaps by eliminating llvm/lib/Transforms/Coroutines/Coroutines.cpp (2 lines): - line 193: // FIXME: This code is stolen from CallGraph::addToCallGraph(Function *F), which - line 520: // TODO: attributes? clang/include/clang/Basic/SourceManager.h (2 lines): - line 141: /// FIXME: Turn this into a FileEntryRef and remove Filename. - line 152: /// FIXME: Remove this once OrigEntry is a FileEntryRef with a stable name. llvm/utils/gn/secondary/llvm/unittests/DebugInfo/PDB/BUILD.gn (2 lines): - line 23: # FIXME: This doesn't work with swarming. This should really be a data - line 26: # FIXME: Also, the GN way is to write this file at build time. But since clang/lib/Driver/ToolChains/Hexagon.cpp (2 lines): - line 242: // FIXME: For the linker case specifically, can we safely convert - line 260: // FIXME: What is this? libcxx/include/__memory/allocator_arg_t.h (2 lines): - line 58: // FIXME: This should have a version which takes a non-const alloc. - line 66: // FIXME: This should have a version which takes a non-const alloc. llvm/unittests/IR/ValueMapTest.cpp (2 lines): - line 176: // TODO: Implement this when someone needs it. - line 196: // FIXME: These tests started failing on Windows. clang/lib/AST/ExprClassification.cpp (2 lines): - line 135: // FIXME: Is this wise? Should they get their own kind? - line 143: // FIXME: ObjC++0x might have different rules clang/lib/StaticAnalyzer/Checkers/NumberObjectConversionChecker.cpp (2 lines): - line 77: // FIXME: Introduce an AST matcher to implement the macro-related logic? - line 154: // FIXME: Pattern-match the integer type to make a better guess? llvm/tools/dsymutil/DebugMap.cpp (2 lines): - line 259: // TODO: Actually report errors helpfully. - line 267: // TODO: Actually report errors helpfully. clang/lib/StaticAnalyzer/Checkers/CloneChecker.cpp (2 lines): - line 145: // FIXME: In very big clones even multiple variables can be unintended, - line 167: // FIXME: We are ignoring the suggestions currently, because they are llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp (2 lines): - line 277: // FIXME: In the future it would be nice if we could avoid hardcoding these - line 363: // FIXME: In the future it would be nice if we could avoid hardcoding these llvm/tools/llvm-xray/xray-account.cpp (2 lines): - line 174: // TODO: Support custom and typed event accounting in the future. - line 238: // FIXME: Potentially implement the more complex deduction algorithm? clang/lib/AST/CXXInheritance.cpp (2 lines): - line 328: // FIXME: This is an O(N^2) algorithm, but DPG doesn't see an easy - line 672: // FIXME: IsHidden reads from Overriding from the middle of a remove_if llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp (2 lines): - line 80: // FIXME: These can be generated by TableGen from the existing register - line 419: // TODO: In this function we call decodeInstruction several times with llvm/utils/gn/secondary/llvm/lib/Target/targets.gni (2 lines): - line 10: # FIXME: Port the remaining targets. - line 90: # FIXME: This should be based off target_cpu once cross compiles work. llvm/lib/CodeGen/LiveVariables.cpp (2 lines): - line 527: // FIXME: We should not remove any dead flags. However the MIPS RDDSP - line 622: // FIXME: LiveIntervals will be updated to remove its dependence on llvm/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp (2 lines): - line 262: // FIXME Is this correct? What do inline immediates do on SI for f16 src - line 516: // FIXME: If this is expression is PCRel or not should not depend on what clang-tools-extra/clangd/include-mapping/gen_std.py (2 lines): - line 78: # FIXME: index std::placeholders symbols, placeholders.html page is - line 111: # FIXME: support symbols with multiple headers (e.g. std::move). lldb/source/Breakpoint/Breakpoint.cpp (2 lines): - line 958: // TODO: To be correct, this method needs to fill the breakpoint location - line 967: // TODO: Handle SourceLocationSpec column information clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp (2 lines): - line 140: ~$Class[[B]](); // FIXME: inconsistent with constructor - line 145: $Class[[B]]::~$Class[[B]]() {} // FIXME: inconsistent with constructor clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp (2 lines): - line 636: // FIXME: Issue a warning. - line 956: // FIXME: We probably shouldn't register the check if it's not available. clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp (2 lines): - line 57: // FIXME: Add support for joining distinct values that are assigned to the - line 70: // FIXME: Explore options to avoid eager initialization of fields as some of llvm/lib/CodeGen/HardwareLoops.cpp (2 lines): - line 291: // TODO: there can be many reasons a loop is not considered a - line 428: // FIXME: We've expanded Count where we hope to insert the counter setting llvm/lib/Target/AVR/AVRAsmPrinter.cpp (2 lines): - line 154: // TODO: We should be able to look up the alternative name for - line 223: // FIXME: We can disable __do_copy_data if there are no static RAM variables. llvm/utils/Reviewing/find_interesting_reviews.py (2 lines): - line 69: FIXME: consider if serializing to JSON would bring interoperability - line 489: # FIXME: the blame cache could probably be made more effective still if mlir/lib/Dialect/Tensor/IR/TensorOps.cpp (2 lines): - line 615: // TODO: Move extract patterns to tensor::ExtractOp. - line 1160: // TODO: This only checks the immediate producer; extend to go up the libc/src/sys/mman/linux/mmap.cpp (2 lines): - line 27: // TODO: Perform argument validation not done by the linux syscall. - line 31: // TODO: Use pagesize read from the ELF aux vector instead of EXEC_PAGESIZE. llvm/lib/Analysis/AliasAnalysis.cpp (2 lines): - line 716: /// FIXME: this is really just shoring-up a deficiency in alias analysis. - line 875: // FIXME: TBAA should have an explicit mode to support this and then we lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp (2 lines): - line 533: // FIXME this is really not ideal. Errors are silently converted to 0 - line 951: PythonCallable::ArgInfo::UNBOUNDED; // FIXME delete after c++17 compiler-rt/lib/sanitizer_common/sanitizer_platform.h (2 lines): - line 256: // FIXME: this value should be different on different platforms. Larger values - line 398: // TODO: Support other compilers here clang-tools-extra/clangd/index/Serialization.cpp (2 lines): - line 312: OS << Sym.ID.raw(); // TODO: once we start writing xrefs and posting lists, - line 516: for (const auto &Ref : RefsBundle.second) // FIXME: bulk insert? libc/src/threads/linux/thrd_create.cpp (2 lines): - line 52: // TODO: Add the CLONE_SETTLS flag and setup the TLS area correctly when - line 82: // TODO: The arguments to the clone syscall below is correct for x86_64 llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp (2 lines): - line 97: // FIXME: Any other checks required to be done here? Remove this method if - line 106: // FIXME: Should UMI be deallocated/destroyed? lldb/source/Target/ThreadPlanStepUntil.cpp (2 lines): - line 44: // FIXME - can we do this more securely if we know first_insn? - line 48: // TODO: add inline functionality llvm/lib/CodeGen/TargetSchedule.cpp (2 lines): - line 249: // FIXME: Automatically giving all implicit defs defaultDefLatency is - line 300: // TODO: The following hack exists because predication passes do not llvm/lib/Support/ConvertUTFWrapper.cpp (2 lines): - line 35: // FIXME: Make the type of the result buffer correct instead of - line 48: // FIXME: Make the type of the result buffer correct instead of clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp (2 lines): - line 155: // FIXME: Handle LazyCompoundVals? - line 162: // FIXME: Handle (some_union){ some_other_union_val }, which turns into lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp (2 lines): - line 100: // TODO: don't know what to really do here? Pseudo code says: - line 510: // TODO: Remove the tag bits from a tagged target llvm/include/llvm/CodeGen/IndirectThunks.h (2 lines): - line 95: // FIXME: Conditionalize on indirect calls so we don't emit a thunk when - line 97: // FIXME: It's a little silly to look at every function just to enumerate llvm/lib/CodeGen/MachineRegisterInfo.cpp (2 lines): - line 191: // FIXME: Should we use a dummy register class? - line 385: // TODO: This could be more efficient by bulk changing the operands. clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp (2 lines): - line 66: // FIXME: Make this configurable. - line 183: // FIXME: compare_insensitive only works for ASCII. llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp (2 lines): - line 751: // TODO: add support for non-SDWA instructions as OtherInst. - line 961: // FIXME: has SDWA but require handling of implicit VCC use flang/runtime/pointer.cpp (2 lines): - line 47: // TODO: PointerSetCoBounds - line 168: // TODO: PointerCheckLengthParameter, PointerAllocateSource llvm/lib/Support/Unix/Memory.inc (2 lines): - line 115: // FIXME: Handle huge page requests (MF_HUGE_HINT). - line 245: // FIXME: Can we safely always call this for __GNUC__ everywhere? flang/include/flang/Evaluate/common.h (2 lines): - line 282: static constexpr bool bigEndian_{false}; // TODO: configure for target - line 283: static constexpr std::size_t maxAlignment_{8}; // TODO: configure for target lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp (2 lines): - line 360: // TODO: resolve bare executables in the Platform SDK - line 365: // TODO: verify that this handles shallow bundles, if not then implement one flang/lib/Optimizer/Dialect/FIRType.cpp (2 lines): - line 59: // TODO: why aren't we using isa_integer? investigatation required. - line 73: // FIXME: do we need to allow for any variance here? lldb/source/Plugins/TraceExporter/common/TraceHTR.cpp (2 lines): - line 154: // TODO: Make distinction between errors by storing the error messages. - line 195: // TODO: make this function take `end_unit_index` as a parameter instead of clang-tools-extra/clangd/unittests/FindSymbolsTests.cpp (2 lines): - line 714: // FIXME: nested expansions not in TokenBuffer - line 1053: @]]end // FIXME: Why doesn't this include the 'end'? mlir/lib/IR/Visitors.cpp (2 lines): - line 57: // TODO: This walk should be iterative over the operations. - line 145: // TODO: This walk should be iterative over the operations. llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp (2 lines): - line 72: // TODO: Test this error. - line 97: // TODO: Actually report errors helpfully. llvm/lib/Support/Windows/Signals.inc (2 lines): - line 556: // FIXME: Handle "Depth" parameter to print stack trace upto specified Depth - line 598: // FIXME: open files cannot be deleted. llvm/lib/Transforms/Scalar/LoopDeletion.cpp (2 lines): - line 154: // TODO: We can relax this constraint, since we just need a loop - line 352: // TODO: According to langref, branching by undef is undefined behavior. bolt/lib/Passes/IndirectCallPromotion.cpp (2 lines): - line 907: // TODO: is COUNT_FALLTHROUGH_EDGE the right thing here? - line 1303: // TODO: can this ever happen? llvm/lib/LTO/LTOCodeGenerator.cpp (2 lines): - line 496: // FIXME: LTOCodeGenerator dtor is not invoked on Darwin - line 529: // FIXME: This needs linker information via a llvm/lib/Target/NVPTX/NVVMReflect.cpp (2 lines): - line 125: // FIXME: Improve error handling here and elsewhere in this pass. - line 133: // FIXME: Add assertions about ConvCall. clang/unittests/Tooling/HeaderIncludesTest.cpp (2 lines): - line 209: // FIXME: inserting after the empty line following the main header might be - line 415: // FIXME: this might not be the best behavior. llvm/tools/llvm-rc/ResourceFileWriter.cpp (2 lines): - line 244: // FIXME: actually, Microsoft version probably doesn't check this - line 1505: // FIXME: check overflow? clang/lib/Tooling/Refactoring/ASTSelectionRequirements.cpp (2 lines): - line 17: // FIXME: Memoize so that selection is evaluated only once. - line 33: // FIXME: Memoize so that selection is evaluated only once. llvm/lib/Target/M68k/AsmParser/M68kAsmParser.cpp (2 lines): - line 383: // TODO: Maybe we can also store the size of OuterDisp - line 789: // TODO: parse size, scale and inner displacement. llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp (2 lines): - line 120: // FIXME: Should be able to handle this with emitPseudoExpansionLowering. We - line 137: // TODO: How to use branch immediate and avoid register+add? llvm/lib/Target/VE/VEAsmPrinter.cpp (2 lines): - line 256: // sic %plt ; FIXME: is it safe to use %plt here? - line 333: // FIXME: Debug Value. lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp (2 lines): - line 258: // FIXME: Use C++14 std::equal(it, it, it, it) variant once it's available. - line 591: // FIXME we should insure programmatically that the expression parser's lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp (2 lines): - line 201: // TODO: We need to complete this mapping of COFF symbol types to LLDB ones. - line 730: // TODO: determine this for COFF clang/unittests/ASTMatchers/ASTMatchersTest.h (2 lines): - line 114: // FIXME: This is a hack to work around the fact that there's no way to do - line 333: // FIXME: Find better names for these functions (or document what they llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp (2 lines): - line 309: // TODO: Handle long double in other formats. - line 422: // FIXME: LibFunc_powf and powl TBD. clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp (2 lines): - line 221: // FIXME: We need a more general way of getting the O_CREAT value. - line 318: // FIXME: Eventually these should be rolled into the MallocChecker, but right now llvm/lib/Target/X86/X86TargetMachine.cpp (2 lines): - line 292: // FIXME: This is related to the code below to reset the target options, - line 560: // (FIXME: https://bugs.llvm.org/show_bug.cgi?id=45167). Currently the clang-tools-extra/clangd/index/Symbol.h (2 lines): - line 129: /// FIXME: also add deprecation message and fixit? - line 171: /// FIXME: this should probably be split into symbol -> signals mlir/lib/Dialect/SparseTensor/Transforms/CodegenUtils.h (2 lines): - line 70: // TODO: both of these should move upstream to their respective classes. - line 92: // TODO: Ideally these should move upstream, so that we don't mlir/cmake/modules/AddMLIR.cmake (2 lines): - line 59: # TODO: Make this the default for all MLIR libraries once all libraries - line 340: # TODO: Should be transitive. compiler-rt/cmake/config-ix.cmake (2 lines): - line 39: # TODO: remote this check once we address PR51389. - line 697: # TODO: Add builtins support. lld/ELF/Arch/Mips.cpp (2 lines): - line 394: // FIXME (simon): If the relocation target symbol is not a PLT entry - line 556: // FIXME (simon): Support valid branch relocations. openmp/libomptarget/plugins/cuda/src/rtl.cpp (2 lines): - line 831: // TODO: when variables types other than to or link are added, - line 902: // TODO: The device ID used here is not the real device ID used by OpenMP. llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp (2 lines): - line 179: // FIXME: Only supporting fixed vectors for now. - line 194: // TODO: More tuning on benchmarks and metrics with changes as needed llvm/include/llvm/Analysis/RegionInfoImpl.h (2 lines): - line 505: OS << BB->getName() << ", "; // TODO: remove the last "," - line 508: OS << *Element << ", "; // TODO: remove the last ", llvm/include/llvm/IR/Metadata.h (2 lines): - line 1345: // FIXME: Fix callers and remove condition on N. - line 1350: // FIXME: Fix callers and remove condition on N. clang/lib/Lex/PPExpressions.cpp (2 lines): - line 14: // FIXME: implement testing for #assert's. - line 519: // FIXME: Handle #assert clang-tools-extra/clangd/unittests/ClangdTests.cpp (2 lines): - line 191: // FIXME: figure out a stable format for AST dumps, so that we can check the - line 1118: // FIXME: make this timeout and fail instead of waiting forever in case flang/lib/Optimizer/Dialect/FIROps.cpp (2 lines): - line 2155: // TODO: check that outBoxTy is a parent type of inputBoxTy for derived - line 3269: // TODO: Construct associated entities attributes. Decide where the fir llvm/lib/MC/MCWinCOFFStreamer.cpp (2 lines): - line 71: // FIXME: this is identical to the ELF one. - line 332: // TODO: Implement this if you want to emit .comment section in COFF obj files. clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp (2 lines): - line 335: // FIXME: Add fixes for constructors with parameters that can be created - line 377: // FIXME: Add fixes for direct initialization with the initializer-list llvm/tools/llvm-ar/llvm-ar.cpp (2 lines): - line 496: // TODO: fix format_provider> to allow other units. - line 1246: // TODO: GNU ranlib also supports a -t flag clang/unittests/Interpreter/InterpreterTest.cpp (2 lines): - line 121: // FIXME: Add support for wrapping and running statements. - line 213: // FIXME: We cannot yet handle delayed template parsing. If we run with clang-tools-extra/clangd/CompileCommands.cpp (2 lines): - line 155: // FIXME: we could if we had the working directory here. - line 295: // FIXME: This is ugly and coupled. Make transferCompileCommand ensure it? llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp (2 lines): - line 29: // FIXME: Add support for dumping opcode_operands_table - line 235: // FIXME: Add support for parsing opcode_operands_table llvm/lib/Transforms/Utils/CodeMoverUtils.cpp (2 lines): - line 204: // FIXME: Use SCEV and reuse GVN/CSE logic to check for equivalence between - line 331: // TODO remove this limitation. compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cpp (2 lines): - line 62: // TODO: it is neccessary to set proper SectionIndex here. - line 91: // TODO: it is neccessary to set proper SectionIndex here. llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp (2 lines): - line 108: // Currently we only support accesses with unit stride. FIXME: we should be - line 615: // FIXME: This logic comes from other passes that actually change the loop flang/module/omp_lib.h (2 lines): - line 322: integer(kind=omp_logical_kind) :: omp_is_initial_device ! TODO: should this be LOGICAL? - line 423: subroutine omp_fullfill_event(event) bind(c) ! TODO: is this the correct spelling? clang/lib/CodeGen/SwiftCallingConv.cpp (2 lines): - line 285: // TODO: do a binary search if Entries is big enough for it to matter. - line 796: // FIXME: should we not rely on the standard computation in Sema, just in llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp (2 lines): - line 61: // TODO: We should not add the attributes if the known compile time workgroup - line 93: // TODO: Does not require queue ptr on gfx9+ llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp (2 lines): - line 175: // FIXME: Make sure this test is correct (it's probably missing cases - line 256: // FIXME: Are there other symbols we should be skipping? llvm/tools/dsymutil/MachOUtils.cpp (2 lines): - line 184: // FIXME: The + 1 is here to mimic dsymutil-classic that has 2 empty - line 583: // FIXME: The NonRelocatableStringpool starts with an empty string, but clang/lib/CodeGen/CGCleanup.cpp (2 lines): - line 61: Address V = rv.getAggregateAddress(); // TODO: volatile? - line 887: // TODO: base this on the number of branch-afters and fixups mlir/tools/mlir-vulkan-runner/VulkanRuntime.cpp (2 lines): - line 18: // TODO: It's generally bad to access stdout/stderr in a library. - line 265: // TODO: find the best device. clang/lib/Analysis/FlowSensitive/Transfer.cpp (2 lines): - line 32: // FIXME: Add support for group decls, e.g: `int a, b;` - line 40: // FIXME: Add support for: llvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h (2 lines): - line 672: // FIXME: Use std::invoke() when it's available. - line 1012: // TODO: Needs a test case once we have a pattern that uses this. clang/include/clang/Sema/ParsedTemplate.h (2 lines): - line 162: /// FIXME: Temporarily stores the name of a specialization - line 165: /// FIXME: Temporarily stores the overloaded operator kind. clang/lib/StaticAnalyzer/Checkers/STLAlgorithmModeling.cpp (2 lines): - line 122: // FIXME: Reverse iterators - line 144: // FIXME: Reverse iterators llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h (2 lines): - line 823: /// of TODO list for the model with diminishing returns, to be completed as - line 1294: // FIXME: better update in the passes that drop the header weight. clang-tools-extra/clangd/Quality.h (2 lines): - line 61: // FIXME: make these findable once user types _. - line 104: /// FIXME: unify with index proximity score - signals should be compiler-rt/lib/profile/InstrProfilingFile.c (2 lines): - line 186: /* TODO: If there are two DSOs, the second DSO initilization will truncate the - line 280: /* TODO: make buffer size controllable by an internal option, and compiler can pass the size llvm/lib/Target/Hexagon/HexagonISelLowering.cpp (2 lines): - line 2925: // FIXME: in principle up to 64-bit could be made safe, but it would be very - line 3587: // TODO: This may be worth removing. Check regression tests for diffs. clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp (2 lines): - line 66: // FIXME: Eventually migrate into its own file, and have it managed by - line 489: // FIXME: What about references? llvm/lib/CodeGen/MachineCheckDebugify.cpp (2 lines): - line 57: // TODO: Avoid meta instructions other than dbg_val. - line 75: // TODO: Handle DBG_INSTR_REF which is under an experimental option now. polly/lib/Transform/DeadCodeElimination.cpp (2 lines): - line 153: // FIXME: We can probably avoid the recomputation of all dependences by - line 180: // FIXME: We can probably avoid the recomputation of all dependences by llvm/lib/Analysis/TargetTransformInfo.cpp (2 lines): - line 686: // TODO: Add support for non-zero index broadcasts. - line 687: // TODO: Add support for different source vector width. llvm/tools/bugpoint/ToolRunner.cpp (2 lines): - line 125: // FIXME: check return code ? - line 803: // MACOSX_DEPLOYMENT_TARGET=10.3 in your env. FIXME: it would be better for llvm/utils/gn/secondary/lldb/source/Target/BUILD.gn (2 lines): - line 19: #"//lldb/source/Breakpoint", # FIXME: Dependency cycle - line 31: include_dirs = [ ".." ] # FIXME: Reaches into Plugins internals. llvm/lib/Target/M68k/MCTargetDesc/M68kMCTargetDesc.cpp (2 lines): - line 42: // TODO Implement feature set parsing logics - line 82: // TODO: Add tests for `cfi_*` directives clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp (2 lines): - line 824: // TODO: To list bundle IDs in a bundled text file we need to go through - line 863: // TODO: `.d` should be eventually removed once `-M` and its variants are clang/lib/StaticAnalyzer/Checkers/PointerIterationChecker.cpp (2 lines): - line 59: // TODO: Currently, we only check for std::unordered_set. Other unordered - line 62: // TODO: Currently, we do not check what the for loop does with the iterated llvm/lib/CodeGen/MachineCombiner.cpp (2 lines): - line 272: // TODO: If C++ ever gets a real enum class, make this part of the - line 318: // FIXME: for now, we don't do any check for the register pressure patterns. flang/lib/Evaluate/check-expression.cpp (2 lines): - line 136: // TODO: STORAGE_SIZE - line 581: // TODO: other checks for standard module procedures llvm/lib/Support/Windows/explicit_symbols.inc (2 lines): - line 23: EXPLICIT_SYMBOL(__main) // FIXME: Don't call it. - line 32: #ifdef HAVE___CMPDI2 // FIXME: unused llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp (2 lines): - line 34: // FIXME: The current implementation of - line 665: // FIXME: This should be removed and handled somewhere else. Seems to come compiler-rt/lib/tsan/benchmarks/start_many_threads.cpp (2 lines): - line 43: // sleep(5); // FIXME: simplify measuring the memory usage. - line 48: // sleep(5); // FIXME: simplify measuring the memory usage. mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp (2 lines): - line 125: /// TODO: instead of check and failure, insert new iter_args each time a - line 287: // TODO: Propagate RewriterBase everywhere. llvm/lib/MC/MCParser/ELFAsmParser.cpp (2 lines): - line 90: // FIXME: Part of this logic is duplicated in the MCELFStreamer. What is - line 875: // FIXME: Share code with the other alias building directives. llvm/lib/Target/CSKY/CSKYISelLowering.cpp (2 lines): - line 147: // TODO: Add atomic support fully. - line 517: IsTailCall = false; // TODO: TailCallOptimization; llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp (2 lines): - line 36: // TODO: Add support for LC_REEXPORT_DYLIB, LC_LOAD_UPWARD_DYLIB and - line 220: // TODO: Add LC_REEXPORT_DYLIB, LC_LAZY_LOAD_DYLIB, and LC_LOAD_UPWARD_DYLIB llvm/include/llvm/ADT/SmallBitVector.h (2 lines): - line 35: // TODO: In "large" mode, a pointer to a BitVector is used, leading to an - line 509: // FIXME BitVector::operator&= does not resize the LHS but this does llvm/include/llvm/IR/PassManagerInternal.h (2 lines): - line 219: // FIXME: We should actually use two different concepts for analysis results - line 311: // FIXME: Replace PassT::Result with type traits when we use C++11. lldb/source/Breakpoint/BreakpointResolverName.cpp (2 lines): - line 225: // FIXME: Should we be adding variants that aren't of type Full? - line 246: // FIXME: Right now we look at the module level, and call the module's compiler-rt/lib/memprof/memprof_meminfoblock.h (2 lines): - line 4: #include "memprof_interface_internal.h" // For u32, u64 TODO: Move these out of the internal header. - line 27: u64 data_type_id; // TODO: hash of type name llvm/lib/Support/Unix/Threading.inc (2 lines): - line 242: char Buffer[len] = {'\0'}; // FIXME: working around MSan false positive. - line 312: // FIXME: Implement clang-tools-extra/clang-tidy/modernize/UseEmplaceCheck.cpp (2 lines): - line 43: // FIXME: Bunch of functionality that could be easily added: - line 83: // FIXME: Discard 0/NULL (as nullptr), static inline const data members, llvm/lib/Target/AMDGPU/SIMachineScheduler.h (2 lines): - line 155: // TODO: find a way to compute it. - line 277: // (TODO: else if all their users depend on the same group, put them there) llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.cpp (2 lines): - line 35: // TODO: Handle G_OR used for add case - line 39: // FIXME: matcher should ignore copies llvm/tools/llvm-profdata/llvm-profdata.cpp (2 lines): - line 357: // FIXME: There's a bug here, where setting NumThreads = Inputs.size() fails - line 2457: // TODO: parse context string to support filtering by contexts. llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp (2 lines): - line 531: // TODO: Ask TTI whether synchronization scope is between threads. - line 603: // FIXME: many of these accesses do not need to be checked for races polly/lib/Support/SCEVAffinator.cpp (2 lines): - line 423: // TODO: Using the original SCEV no-wrap flags is not always safe, however - line 494: // TODO: One can represent the dividend as piece-wise function to be more llvm/lib/Target/M68k/M68kRegisterInfo.cpp (2 lines): - line 45: // FIXME x26 not sure it this the correct value, it expects RA, but M68k - line 179: // FIXME tail call: implement jmp from mem clang-tools-extra/clang-tidy/readability/NamedParameterCheck.cpp (2 lines): - line 38: // TODO: Handle overloads. - line 39: // TODO: We could check that all redeclarations use the same name for mlir/lib/Dialect/GPU/Transforms/KernelOutlining.cpp (2 lines): - line 181: // TODO: If cloneInto can be modified such that if a mapping for - line 313: // TODO: This code cannot use an OpBuilder because it must be inserted into llvm/include/llvm/MC/MCStreamer.h (2 lines): - line 130: // FIXME: declared here because it is used from - line 471: // FIXME: These emission are non-const because we mutate the symbol to clang-tools-extra/clangd/unittests/CollectMacrosTests.cpp (2 lines): - line 40: // FIXME: Locating macro in duplicate definitions doesn't work. Enable - line 71: // FIXME: Macro names in a definition are not detected. openmp/libomptarget/plugins/amdgpu/impl/system.cpp (2 lines): - line 487: // TODO: Probably don't want this arithmetic - line 646: // FIXME: Assume that every profile is FULL until we understand how to build llvm/lib/Target/X86/X86InstrInfo.h (2 lines): - line 193: /// FIXME: This should become part of our instruction tables. - line 210: /// FIXME: This should become part of our instruction tables. llvm/utils/abtest.py (2 lines): - line 158: # TODO: - line 258: assert not os.path.isabs(obj), "TODO: support abs path" clang-tools-extra/clangd/unittests/SourceCodeTests.cpp (2 lines): - line 617: // FIXME: We might want to select everything inside the outer ECHO. - line 702: {R"cpp(// FIXME: We should also mark positions before and after llvm/utils/update_cc_test_checks.py (2 lines): - line 57: # TODO: Should we add checks for global variables being emitted? - line 197: # TODO Clean up duplication of asm/common build_function_body_dictionary clang/cmake/caches/Fuchsia-stage2.cmake (2 lines): - line 13: # TODO: Remove this once we switch to ld64.lld. - line 35: # TODO: Remove this once we switch to ld64.lld. llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp (2 lines): - line 421: // FIXME: Currently, MCJIT relies on a configure-time check to determine which - line 430: // FIXME: Figure out why this fails on mac/arm, PR46647 llvm/lib/Target/PowerPC/PPCExpandISEL.cpp (2 lines): - line 216: // FIXME: if the CR field used has no other uses, we could eliminate the - line 288: // FIXME: if the CR field used has no other uses, we could eliminate the clang/lib/Analysis/UninitializedValues.cpp (2 lines): - line 727: // now, just assume such a call initializes all variables. FIXME: Only - line 799: // FIXME: Mark the variable as uninitialized whenever its scope is clang/lib/AST/ExprCXX.cpp (2 lines): - line 658: // FIXME: Will eventually need to cope with member pointers. - line 673: // FIXME: Will eventually need to cope with member pointers. llvm/lib/Target/Mips/MipsSEInstrInfo.cpp (2 lines): - line 803: // FIXME: Strictly speaking MFHC1 only reads the top 32-bits however, we - line 860: // FIXME: The .addReg(DstReg) is a white lie used to temporarily work polly/tools/GPURuntime/GPUJIT.c (2 lines): - line 252: // FIXME: We are now always selecting the Intel Beignet driver if it is - line 378: // TODO: Extend to CL_DEVICE_TYPE_ALL? mlir/lib/Dialect/Quant/Transforms/ConvertSimQuant.cpp (2 lines): - line 37: // TODO: If this pattern comes up more frequently, consider adding core - line 69: // TODO: Map to a qbarrier with an attribute like [Forced] to signal that mlir/lib/Tools/mlir-lsp-server/MLIRServer.cpp (2 lines): - line 219: // TODO: For simplicity, we just grab the first one. It may be likely that we - line 735: // TODO: Find a way to share the split file marker with other tools. We don't clang/lib/Sema/SemaConcept.cpp (2 lines): - line 244: // FIXME: Concepts: This is an unfortunate consequence of there - line 380: // FIXME: Should this be a dedicated TreeTransform? openmp/libomptarget/DeviceRTL/include/Types.h (2 lines): - line 193: // TODO: clang should use address space 5 for omp_thread_mem_alloc, but right - line 198: // TODO: clang should use address space 4 for omp_const_mem_alloc, maybe it lldb/source/Commands/CommandObjectExpression.cpp (2 lines): - line 325: // FIXME: We should complete the options here. - line 650: // FIXME: Can we figure out what the user actually typed (e.g. some alias llvm/include/llvm/LTO/Config.h (2 lines): - line 255: /// FIXME: Temporary files derived from ThinLTO backends are currently named - line 283: // FIXME: This should not be required as diagnostic handler is not callback. clang/lib/CodeGen/ABIInfo.h (2 lines): - line 42: // FIXME: All of this stuff should be part of the target interface - line 83: // FIXME: This is a gaping layering violation if we wanted to drop llvm/utils/lit/lit/util.py (2 lines): - line 344: # FIXME: Because of the way nested function scopes work in Python 2.x we - line 442: TODO: Reimplement this without using psutil on all platforms so we can llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp (2 lines): - line 203: // FIXME: Is there anything to do in here or does this directive only - line 306: // FIXME: We should update the CPUType, CPUSubType in the Object file if clang/include/clang/Rewrite/Core/Rewriter.h (2 lines): - line 50: /// FIXME: This sometimes corrupts the file's rewrite buffer due to - line 51: /// incorrect indexing in the implementation (see the FIXME in llvm/lib/Support/Caching.cpp (2 lines): - line 92: // TODO: Manually commit rather than using non-trivial destructor, - line 127: // FIXME: should we consume the discard error? llvm/tools/llvm-lto2/llvm-lto2.cpp (2 lines): - line 202: // FIXME: Workaround PR30396 which means that a symbol can appear - line 503: // FIXME: This should use llvm::cl subcommands, but it isn't currently llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp (2 lines): - line 277: // TODO: Add support for the other Instructions. - line 278: // TODO: Maybe we should look around and merge with other llvm.assume. llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp (2 lines): - line 519: // FIXME: this does not appear to be covered by any tests - line 1213: // TODO: handle zext clang-tools-extra/clangd/AST.h (2 lines): - line 89: /// FIXME: the USR semantics might not be stable enough as the ID for index - line 146: /// FIXME: Also take using directives and namespace aliases inside function body llvm/include/llvm/Transforms/InstCombine/InstCombiner.h (2 lines): - line 152: // TODO: There are 16 FCMP predicates. Should others be (not) canonical? - line 321: // TODO: Should this be available as a constant utility function? It is llvm/include/llvm/Analysis/CycleAnalysis.h (2 lines): - line 41: // TODO: verify analysis? - line 72: // TODO: verify analysis? llvm/lib/Transforms/IPO/IROutliner.cpp (2 lines): - line 709: // TODO: Support regions with sunken allocas: values whose lifetimes are - line 1186: // TODO: If in the future constants do not have one global value number, clang/lib/Tooling/Transformer/RewriteRule.cpp (2 lines): - line 44: // FIXME: let user specify whether to treat this case as an error or ignore - line 335: // Filters for supported matcher kinds. FIXME: Explicitly list the allowed kinds llvm/unittests/ADT/SmallVectorTest.cpp (2 lines): - line 643: // FIXME: This is inefficient, we shouldn't move things into newly allocated - line 713: // FIXME: This is inefficient, we shouldn't move things into newly allocated mlir/python/mlir/dialects/linalg/opdsl/lang/dsl.py (2 lines): - line 79: # TODO: Support composite ops. - line 145: # TODO: The returned callable should be an IR emitter but that is not lldb/source/Target/StackFrameList.cpp (2 lines): - line 102: // FIXME: We probably also have to do something special if the PC is at - line 143: // FIXME: Figure out what this break point is doing, and set the inline clang/include/clang/Driver/Job.h (2 lines): - line 67: /// FIXME: When GNU tools learn how to parse UTF16 on Windows, we should - line 170: // FIXME: This really shouldn't be copyable, but is currently copied in some clang/lib/Format/FormatToken.h (2 lines): - line 232: /// FIXME: Make FormatToken for parsing and AnnotatedToken two different - line 378: // FIXME: Come up with a 'cleaner' concept. llvm/lib/CodeGen/CalcSpillWeights.cpp (2 lines): - line 274: // FIXME: we probably shouldn't use floats at all. - line 320: // FIXME: this gets much more complicated once we support non-trivial clang-tools-extra/unittests/clang-tidy/ClangTidyTest.h (2 lines): - line 154: // FIXME: better error handling. Keep the behavior for now. - line 166: // FIXME: propagate the error. clang/lib/Rewrite/Rewriter.cpp (2 lines): - line 99: // FIXME: Here, the offset of the start of the line is supposed to be - line 106: // documented by a FIXME on the definition of clang-tools-extra/clangd/refactor/Tweak.h (2 lines): - line 63: // FIXME: Cursor is redundant and should be removed - line 74: // FIXME: provide a way to get sources and ASTs for other files. llvm/lib/MC/MCAsmInfo.cpp (2 lines): - line 67: // FIXME: Clang's logic should be synced with the logic used to initialize - line 135: // FIXME: Does .section .bss/.data/.text work everywhere?? llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp (2 lines): - line 279: // FIXME: add other heuristics to detect long running loops. - line 653: // TODO: Value profiling heavily depends on the data section which is omitted llvm/lib/Target/Mips/MipsCCState.h (2 lines): - line 31: /// FIXME: Changing the ABI based on the callee name is unsound. The lib func - line 94: // FIXME: This should probably be a fully fledged calling convention. clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h (2 lines): - line 267: // TODO: move this back into ThreadSafety.cpp - line 364: // FIXME: we don't always have a self-variable. lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp (2 lines): - line 110: // TODO: Implement - line 121: // TODO: Implement libcxx/include/__support/win32/locale_win32.h (2 lines): - line 188: // FIXME: base currently unused. Needs manual work to construct the new locale - line 273: // not-so-pressing FIXME: use locale to determine blank characters llvm/utils/lit/lit/TestingConfig.py (2 lines): - line 154: # FIXME: This should really only be suite in test suite config - line 158: # FIXME: This should really only be suite in test suite config clang/lib/Format/UnwrappedLineParser.h (2 lines): - line 194: // FIXME: We are constantly running into bugs where Line.Level is incorrectly - line 233: // FIXME: This is a temporary measure until we have reworked the ownership flang/runtime/assign.cpp (2 lines): - line 187: k)}; // TODO: exploit contiguity here - line 234: // TODO: Consider skipping this step and deferring the llvm/include/llvm/BinaryFormat/MachO.h (2 lines): - line 1700: // TODO swap: fp_control_t fpu_fcw; - line 1701: // TODO swap: fp_status_t fpu_fsw; llvm/utils/gn/secondary/llvm/tools/llvm-config/BUILD.gn (2 lines): - line 29: # FIXME: Why doesn't llvm-config do this, why is this done in - line 80: # FIXME: Only the bits needed to run LLVM's test are implemented. mlir/lib/Target/SPIRV/Deserialization/Deserializer.h (2 lines): - line 118: // TODO: clean up created ops on errors - line 489: // TODO: create Location subclass for binary blob clang-tools-extra/clang-tidy/utils/HeaderGuard.cpp (2 lines): - line 207: // TODO: Insert the guard after top comments. - line 226: // FIXME: Can we move it into the right spot? llvm/lib/DWARFLinker/DWARFStreamer.cpp (2 lines): - line 547: // FIXME: code copied and transformed from MCDwarf.cpp::EmitDwarfLineTable. - line 565: // FIXME: We should handle the discriminator here, but dsymutil doesn't llvm/lib/Transforms/InstCombine/InstCombineNegator.cpp (2 lines): - line 131: // FIXME: can this be reworked into a worklist-based algorithm while preserving - line 422: // FIXME: InstCombineInverter? But how to connect Inverter and Negator? libcxx/include/__coroutine/coroutine_handle.h (2 lines): - line 89: // FIXME actually implement a check for if the coro is suspended. - line 185: // FIXME actually implement a check for if the coro is suspended. mlir/lib/Rewrite/ByteCode.cpp (2 lines): - line 1548: // TODO: Handle failure. - line 1727: // FIXME: We currently don't support operations with llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp (2 lines): - line 29: // TODO: What should MaxInstLength be? - line 56: // TODO: UseIntegratedAssembler? lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h (2 lines): - line 10: // !! FIXME FIXME FIXME !! - line 635: static constexpr unsigned UNBOUNDED = UINT_MAX; // FIXME c++17 inline llvm/include/llvm/Support/VirtualFileSystem.h (2 lines): - line 57: // FIXME: remove when files support multiple names - line 617: /// FIXME: 'use-external-name' causes behaviour that's inconsistent with how llvm/lib/Analysis/MemoryLocation.cpp (2 lines): - line 127: // TODO: remove implementation restriction - line 146: // TODO: This results in an inprecision when two values derived from the flang/lib/Lower/PFTBuilder.cpp (2 lines): - line 1293: // TODO: add declaration? - line 1527: // FIXME: FlangDriver llvm/lib/CodeGen/AsmPrinter/DebugLocStream.h (2 lines): - line 29: /// FIXME: Do we need all these temp symbols? - line 30: /// FIXME: Why not output directly to the output stream? lld/MachO/ExportTrie.cpp (2 lines): - line 68: // TODO: Add proper support for re-exports & stub-and-resolver flags. - line 136: // Add number of children. TODO: Handle case where we have more than 256. llvm/include/llvm/LTO/LTO.h (2 lines): - line 110: // FIXME: Remove LTO class friendship once we have bitcode symbol tables. - line 245: /// FIXME: We do currently require the DiagHandler field to be set in Conf. libcxx/utils/ci/buildkite-pipeline.yml (2 lines): - line 163: # TODO: Due to ongoing CI outage on our Linux nodes, most configurations running on Linux - line 597: os: "macos10.15" # TODO: For now, we're running the back-deployment tests for 10.9 on 10.15, because we don't have proper 10.9 machines llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp (2 lines): - line 184: // FIXME: prefer immediate constraints if the target allows it - line 319: // FIXME: Support aggregate input operands openmp/libomptarget/plugins/remote/lib/Utils.cpp (1 line): - line 164: // TODO: This can probably be trimmed substantially. llvm/include/llvm/CodeGen/GlobalISel/Utils.h (1 line): - line 134: // FIXME: Not all instructions have the same number of operands. We should lldb/source/Core/Value.cpp (1 line): - line 232: break; // TODO: Eventually convert into a compiler type? clang/lib/Driver/Types.cpp (1 line): - line 389: // FIXME: Handle preprocessed input types. clang-tools-extra/clangd/InlayHints.cpp (1 line): - line 126: // FIXME: Handle RecoveryExpr to try to hint some invalid calls. lldb/source/Symbol/Function.cpp (1 line): - line 454: // return // TODO: find the symbol for the function??? llvm/include/llvm/Support/HashBuilder.h (1 line): - line 332: // FIXME: Once available, specialize this function for `contiguous_iterator`s, llvm/include/llvm/CodeGen/TargetPassConfig.h (1 line): - line 440: // FIXME: Rename `addPreEmitPass` to something more sensible given its actual clang/lib/Basic/Targets/SPIR.h (1 line): - line 144: // FIXME: SYCL specification considers unannotated pointers and references flang/lib/Parser/expr-parsers.cpp (1 line): - line 85: // TODO: Reasonable extension: permit multiple defined-unary-ops llvm/lib/Target/Mips/MipsInstrInfo.h (1 line): - line 11: // FIXME: We need to override TargetInstrInfo::getInlineAsmLength method in compiler-rt/lib/asan/asan_globals.cpp (1 line): - line 452: // FIXME: Optionally report that we're unpoisoning globals from a module. llvm/include/llvm/ADT/SmallString.h (1 line): - line 261: // TODO: Make this const, if it's safe... llvm/lib/CodeGen/StackColoring.cpp (1 line): - line 15: // TODO: In the future we plan to improve stack coloring in the following ways: clang/lib/Basic/Targets/ARM.h (1 line): - line 131: // FIXME: This should be based on Arch attributes, not CPU names. lldb/include/lldb/Target/ThreadPlanStepInRange.h (1 line): - line 80: bool m_step_past_prologue; // FIXME: For now hard-coded to true, we could put llvm/lib/Target/X86/X86FastTileConfig.cpp (1 line): - line 131: // TODO: May need to handle some special nontile amx instrucion. mlir/include/mlir/Dialect/Linalg/Analysis/DependenceAnalysis.h (1 line): - line 48: // TODO: OpOperand tracks dependencies on buffer operands. Tensor result will clang/lib/Basic/Targets/Sparc.cpp (1 line): - line 96: // FIXME: the myriad2[.n] spellings are obsolete, lldb/source/Commands/CommandObjectSettings.cpp (1 line): - line 212: // FIXME this is the same issue as the one in commands script import llvm/lib/XRay/Trace.cpp (1 line): - line 408: // TODO: Lift the endianness and implementation selection here. clang-tools-extra/clangd/unittests/lit.cfg.py (1 line): - line 8: # FIXME: it seems every project has a copy of this logic. Move it somewhere. clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp (1 line): - line 221: // TODO: Identify the leaked file descriptor. lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp (1 line): - line 562: // FIXME: FreeBSD sticks an int at the beginning of the note llvm/lib/MC/MCSectionCOFF.cpp (1 line): - line 24: // FIXME: Does .section .bss/.data/.text work everywhere?? llvm/lib/Target/AArch64/MCTargetDesc/AArch64FixupKinds.h (1 line): - line 40: // FIXME: comment lldb/include/lldb/Interpreter/CommandInterpreter.h (1 line): - line 702: // FIXME: Stop using this to control adding to the history and then replace flang/include/flang/Frontend/FrontendActions.h (1 line): - line 18: // TODO: This is a copy from f18.cpp. It doesn't really belong here and should clang/tools/libclang/CIndexInclusionStack.cpp (1 line): - line 61: // FIXME: We should have a function to construct CXFiles. libcxx/include/__format/format_parse_context.h (1 line): - line 25: // TODO FMT Remove this once we require compilers with proper C++20 support. openmp/cmake/OpenMPTesting.cmake (1 line): - line 150: # TODO: Implement blockaddress in GlobalISel and remove this flag! clang/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp (1 line): - line 61: // FIXME: Currently we simply check if std::sort is used with pointer-like lldb/source/Target/DynamicRegisterInfo.cpp (1 line): - line 347: // TODO: print error invalid slice string that doesn't follow the flang/include/flang/Evaluate/real.h (1 line): - line 165: // TODO: Configurable NotANumber representations llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp (1 line): - line 89: // FIXME: Why do we bother trying to handle physical registers here? llvm/lib/Target/X86/X86InstrBuilder.h (1 line): - line 225: //FIXME: factor this clang-tools-extra/clangd/refactor/tweaks/ExpandMacro.cpp (1 line): - line 91: // FIXME: we currently succeed on selection at the end of the token, e.g. clang-tools-extra/clangd/FuzzyMatch.cpp (1 line): - line 199: // FIXME: some words are hard to tokenize algorithmically. llvm/tools/obj2yaml/wasm2yaml.cpp (1 line): - line 249: // FIXME: Currently we always output an index of 0 for any imported clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp (1 line): - line 40: /// FIXME: provide fix for snake_case to snakeCase llvm/unittests/Remarks/BitstreamRemarksParsingTest.cpp (1 line): - line 349: // FIXME: Add tests for the following error messages: polly/include/polly/Canonicalization.h (1 line): - line 28: /// optimal. TODO: Optimize the set of canonicalization passes. clang-tools-extra/clang-change-namespace/ChangeNamespace.h (1 line): - line 45: // FIXME: support moving typedef, enums across namespaces. llvm/include/llvm/Transforms/IPO/FunctionAttrs.h (1 line): - line 74: // FIXME: Currently there is no RPO CGSCC pass structure to slide into and so llvm/include/llvm/Analysis/FunctionPropertiesAnalysis.h (1 line): - line 35: // FIXME: We may want to replace this with a more meaningful metric, like llvm/lib/Target/M68k/MCTargetDesc/M68kMCCodeEmitter.cpp (1 line): - line 261: // TODO count extension words llvm/lib/IR/DiagnosticInfo.cpp (1 line): - line 170: // Only include names that correspond to user variables. FIXME: We should use clang-tools-extra/clangd/JSONTransport.cpp (1 line): - line 27: // FIXME: encode cancellation errors using RequestCancelled or ContentModified llvm/unittests/IR/InstructionsTest.cpp (1 line): - line 1076: // TODO: IdentityWithPadding should be true here even though the high mask values are not undef. flang/lib/Lower/Mangler.cpp (1 line): - line 57: // FIXME symbol from MpSubprogramStmt do not seem to have llvm/unittests/Support/ScaledNumberTest.cpp (1 line): - line 166: // TODO: require less knowledge about the implementation in the test. lldb/utils/lui/debuggerdriver.py (1 line): - line 99: # FIXME: respect height lld/MachO/DriverUtils.cpp (1 line): - line 187: // TODO: if a tbd and dylib are both present, we should check to make sure llvm/unittests/IR/PassBuilderCallbacksTest.cpp (1 line): - line 86: // FIXME: MSVC seems unable to handle a lambda argument to Invoke from within compiler-rt/cmake/Modules/CompilerRTAIXUtils.cmake (1 line): - line 37: # FIXME: Target name should be kept consistent with definition llvm/lib/Target/Hexagon/HexagonNewValueJump.cpp (1 line): - line 608: // TODO: Try to come up with some heuristic to figure out which llvm/lib/CodeGen/LiveRegMatrix.cpp (1 line): - line 228: // FIXME: the usability of the Query API needs to be improved to avoid lldb/include/lldb/Core/ValueObject.h (1 line): - line 908: // FIXME: This could be done via default initializers once we have C++20. llvm/lib/Target/AMDGPU/SIInsertHardClauses.cpp (1 line): - line 94: // TODO: LDS flang/runtime/derived-api.cpp (1 line): - line 42: // TODO: Assign() lldb/tools/lldb-server/lldb-gdbserver.cpp (1 line): - line 118: // FIXME implement. clang/lib/StaticAnalyzer/Core/DynamicType.cpp (1 line): - line 69: // FIXME: Why are we being fed references to pointers in the first place? clang-tools-extra/clang-tidy/abseil/TimeSubtractionCheck.cpp (1 line): - line 83: // TODO: Figure out any more contexts in which we can omit the surrounding clang-tools-extra/clangd/IncludeCleaner.h (1 line): - line 90: /// FIXME: remove this hack once the implementation is good enough. compiler-rt/lib/xray/xray_allocator.h (1 line): - line 162: /// FIXME: Isolate the lower-level memory management to a different abstraction mlir/include/mlir/IR/Matchers.h (1 line): - line 267: // TODO: handle other cases mlir/lib/Dialect/Affine/Transforms/AffineScalarReplacement.cpp (1 line): - line 12: // TODO: In the future, similar techniques could be used to eliminate lldb/source/Core/ValueObjectVariable.cpp (1 line): - line 184: // FIXME: When we grow m_value, we should represent the added bits as clang/tools/driver/cc1gen_reproducer_main.cpp (1 line): - line 104: // FIXME: Compare unsaved file hashes and report mismatch in the reproducer. lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp (1 line): - line 100: // FIXME: for Python, we cannot allow certain characters in clang/include/clang/AST/DeclGroup.h (1 line): - line 26: // FIXME: Include a TypeSpecifier object. clang/unittests/Analysis/FlowSensitive/MultiVarConstantPropagationTest.cpp (1 line): - line 49: // FIXME: change the internal representation to use a `std::variant`, once clang/lib/Frontend/Rewrite/FrontendActions.cpp (1 line): - line 134: // FIXME this drops the error on the floor. llvm/lib/Target/X86/X86OptimizeLEAs.cpp (1 line): - line 388: // FIXME: Maybe we should not always stop at the first LEA after MI. clang-tools-extra/clang-tidy/readability/UseAnyOfAllOfCheck.cpp (1 line): - line 83: // TODO: allow modifications of loop-local variables clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp (1 line): - line 256: // FIXME: we could probably use timeouts lower than 1 second here. clang/lib/Tooling/Refactoring/AtomicChange.cpp (1 line): - line 115: // FIXME: use `getAffectedRanges()` to calculate when it does not include '\n' openmp/runtime/tools/check-instruction-set.pl (1 line): - line 103: # TODO: It would be much more reliable to list *allowed* instructions rather than list undesired llvm/lib/IR/Operator.cpp (1 line): - line 198: // TODO: If the runtime value is accessible at any point before DWARF llvm/include/llvm/CodeGen/Register.h (1 line): - line 43: /// FIXME: remove in favor of member. lldb/source/Commands/CommandObjectProcess.cpp (1 line): - line 711: // FIXME: This will be a Command Option: clang/include/clang/Analysis/Support/BumpVector.h (1 line): - line 14: // FIXME: Most of this is copy-and-paste from SmallVector.h. We can lldb/source/Plugins/ExpressionParser/Clang/CxxModuleHandler.cpp (1 line): - line 54: // FIXME: The result should be a list of unique_ptrs, but the TUScope makes lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_32.cpp (1 line): - line 93: // TODO parse the floating point registers clang/lib/CodeGen/CGAtomic.cpp (1 line): - line 1060: // FIXME: Size == 16 optimized library functions exist too. lldb/source/Plugins/Trace/common/TraceSessionSaver.cpp (1 line): - line 114: // TODO: support memory-only libraries like [vdso] mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRVPass.cpp (1 line): - line 65: // TODO: Change SPIR-V conversion to be progressive and remove the following libclc/generic/lib/math/clc_sw_binary.inc (1 line): - line 5: // TODO: Enable half precision when the sw routine is implemented libcxx/include/__format/formatter_bool.h (1 line): - line 34: // TODO FMT Remove this once we require compilers with proper C++20 support. llvm/lib/Target/Hexagon/HexagonBlockRanges.h (1 line): - line 34: // FIXME: Consolidate duplicate definitions of RegisterRef llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp (1 line): - line 478: // TODO: The following CodeGen passes don't currently support code containing llvm/tools/llvm-mc/llvm-mc.cpp (1 line): - line 428: // FIXME: This is not pretty. MCContext has a ptr to MCObjectFileInfo and mlir/include/mlir/IR/Builders.h (1 line): - line 332: // TODO: check that insertPoint is in this rather than some other block. clang-tools-extra/clang-tidy/utils/ASTUtils.h (1 line): - line 38: // FIXME: false-negative if the entire range is fully expanded from a macro. llvm/tools/obj2yaml/macho2yaml.cpp (1 line): - line 153: // FIXME: We should extract pub-section dumpers from this function. clang-tools-extra/clang-include-fixer/SymbolIndexManager.cpp (1 line): - line 130: // FIXME: Support full match. At this point, we only find symbols in llvm/include/llvm/MC/TargetRegistry.h (1 line): - line 679: // FIXME: Make this a namespace, probably just move all the Register* llvm/tools/llvm-reduce/deltas/ReduceOperandsSkip.cpp (1 line): - line 49: // TODO: be more precise about which GEP operands we can reduce (e.g. array clang/include/clang/Frontend/Utils.h (1 line): - line 76: /// FIXME: Migrate DependencyGraphGen to use this interface. mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp (1 line): - line 187: // TODO: Remove once we support replacing non-root ops. llvm/utils/lit/lit/discovery.py (1 line): - line 205: # FIXME: This doesn't belong here? clang-tools-extra/clang-tidy/performance/InefficientAlgorithmCheck.cpp (1 line): - line 117: // FIXME: Create a common utility to extract a file range that the given token lldb/source/Commands/CommandObjectPlatform.cpp (1 line): - line 1857: // TODO: move the bulk of this code over to the platform itself compiler-rt/lib/profile/InstrProfilingPort.h (1 line): - line 18: /* FIXME: selectany does not have the same semantics as weak. */ lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h (1 line): - line 226: // FIXME: attrs should be passed as a const reference. clang-tools-extra/clang-reorder-fields/ReorderFieldsAction.cpp (1 line): - line 81: // FIXME: error-handling llvm/unittests/CodeGen/SelectionDAGAddressAnalysisTest.cpp (1 line): - line 42: // FIXME: These tests do not depend on AArch64 specifically, but we have to clang/lib/CodeGen/CGCoroutine.cpp (1 line): - line 630: // TODO: if(CoroParam(...)) need to surround ctor and dtor lldb/source/Expression/UtilityFunction.cpp (1 line): - line 53: // FIXME: We should check that every time this is called it is called with the mlir/include/mlir/Dialect/Linalg/Utils/Utils.h (1 line): - line 275: // TODO: relax to support additional control flow, e.g., IfOp. clang/include/clang/Basic/XRayInstr.h (1 line): - line 29: // TODO: Auto-generate these as we add more instrumentation kinds. llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp (1 line): - line 551: // TODO: Take access ranges into account when matching access tags and clang-tools-extra/clangd/index/YAMLSerialization.cpp (1 line): - line 177: // FIXME: expose other fields? lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.cpp (1 line): - line 96: .getQuantity(); // TODO Store m_struct_size as CharUnits compiler-rt/lib/sanitizer_common/sanitizer_posix.cpp (1 line): - line 223: // FIXME: this is thread-unsafe, but should not cause problems most of the time. lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp (1 line): - line 192: // TODO: What case is this code used? clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp (1 line): - line 306: // FIXME: Sometimes the value that returns from ValDecl->getEndLoc() lldb/include/lldb/Interpreter/Options.h (1 line): - line 167: /// FIXME: This is the wrong return value, since we also need to llvm/include/llvm/DWARFLinker/DWARFLinkerDeclContext.h (1 line): - line 132: /// FIXME: The invalid bit along the return value is to emulate some llvm/include/llvm/IR/DiagnosticInfo.h (1 line): - line 931: // FIXME: Remove this, use DiagnosticInfoSrcMgr instead. clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp (1 line): - line 159: // TODO: Avoid handleModuleDependency even being called for modules libc/utils/LibcTableGenUtil/APIIndexer.cpp (1 line): - line 89: // TODO: Trigger a fatal error on duplicate specs. llvm/unittests/tools/llvm-exegesis/X86/SnippetGeneratorTest.cpp (1 line): - line 177: // TODO: check that the two instructions alias each other. llvm/lib/Target/Lanai/LanaiTargetTransformInfo.h (1 line): - line 116: // TODO: Investigate the performance impact given specialized lowerings. llvm/lib/Object/RecordStreamer.cpp (1 line): - line 222: // TODO: Handle "@@@". Depending on SymbolAttribute value it needs to be llvm/lib/Support/Unix/Path.inc (1 line): - line 1485: // TODO: For EEXIST, profile calling fs::generateUniqueName() and clang/unittests/Tooling/SourceCodeTest.cpp (1 line): - line 366: // FIXME: Change code to allow this. llvm/lib/Target/ARC/ARCRegisterInfo.cpp (1 line): - line 199: // TODO: assert based on the load type: compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h (1 line): - line 23: // FIXME: This can't be included from tsan which does not support sparc yet. clang/lib/Analysis/ConstructionContext.cpp (1 line): - line 53: // FIXME: This should be an assertion. llvm/lib/Passes/StandardInstrumentations.cpp (1 line): - line 1561: // TODO Nodes should probably be a StringMap after the clang/lib/AST/TemplateName.cpp (1 line): - line 198: // FIXME: Hack, getDeclContext() can be null if Template is still llvm/lib/Analysis/InlineAdvisor.cpp (1 line): - line 261: // FIXME: All of this logic should be sunk into getInlineCost. It relies on llvm/tools/llvm-exegesis/lib/SnippetFile.cpp (1 line): - line 102: // FIXME: Can we do better than this ? llvm/include/llvm/IR/User.h (1 line): - line 204: /// FIXME: As that the number of operands is used to find the start of openmp/runtime/src/kmp_gsupport.cpp (1 line): - line 495: ompt_task_implicit); // TODO: Can this be ompt_task_initial? lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp (1 line): - line 1401: // (TODO: rename that method to ExportDefinitionToInterpreter) clang/lib/DirectoryWatcher/linux/DirectoryWatcher-linux.cpp (1 line): - line 314: // FIXME: We might want to terminate an async initial scan early in case llvm/include/llvm/CodeGen/PBQP/ReductionRules.h (1 line): - line 145: // TODO: Try to normalize newly added/modified edge. compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cpp (1 line): - line 73: // FIXME: in the future we may want to cache the mappings on demand only. llvm/include/llvm/FuzzMutate/RandomIRBuilder.h (1 line): - line 32: // TODO: Try to make this a bit less of a random mishmash of functions. flang/runtime/edit-output.h (1 line): - line 118: // TODO: double/double clang/tools/scan-view/share/Reporter.py (1 line): - line 127: # FIXME: Get config parameters llvm/include/llvm/ExecutionEngine/JITLink/riscv.h (1 line): - line 25: // TODO: Capture and replace to generic fixups clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp (1 line): - line 110: // FIXME: Merge without creating such a heavy contention point. mlir/include/mlir/Dialect/Linalg/Passes.h (1 line): - line 117: // TODO: if/when we need finer control add an `opName` parameter. llvm/lib/Support/LockFileManager.cpp (1 line): - line 313: // FIXME: implement event-based waiting llvm/lib/Target/X86/X86LowerTileCopy.cpp (1 line): - line 98: // TODO: Pick a killed regiter to avoid save/reload. There is problem lldb/source/Commands/CommandObjectBreakpointCommand.cpp (1 line): - line 25: // FIXME: "script-type" needs to have its contents determined dynamically, so llvm/lib/Object/RelocationResolver.cpp (1 line): - line 375: // FIXME: Take in account implicit addends to get correct results. mlir/lib/IR/AffineMapDetail.h (1 line): - line 32: /// TODO: use trailing objects for this. mlir/include/mlir/Dialect/Linalg/Transforms/Hoisting.h (1 line): - line 29: // TODO: generalize on a per-need basis. lldb/include/lldb/Host/Editline.h (1 line): - line 9: // TODO: wire up window size changes llvm/include/llvm/IR/Argument.h (1 line): - line 98: /// FIXME: Remove this function once transition to Align is over. llvm/utils/gn/secondary/lldb/tools/lldb-server/BUILD.gn (1 line): - line 49: # FIXME: codesign stuff on macos; default to "lldb_codesign" flang/include/flang/Evaluate/tools.h (1 line): - line 960: // TODO: capture such scalar expansions in temporaries, flatten everything clang/include/clang/Tooling/DiagnosticsYaml.h (1 line): - line 52: // FIXME: Implement better conflict handling. llvm/lib/Target/X86/X86InterleavedAccess.cpp (1 line): - line 221: // TODO: Support inbounds GEP. flang/include/flang/Evaluate/type.h (1 line): - line 61: // TODO: specialize for the actual target architecture mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp (1 line): - line 923: // TODO (natashaknk): Make dynamic intermediate shape not always be rank-1 mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp (1 line): - line 898: // FIXME: Verify filter clauses when arrays are appropriately handled llvm/lib/Object/IRSymtab.cpp (1 line): - line 50: // TODO: Are there similar such variables? clang/lib/AST/ComparisonCategories.cpp (1 line): - line 39: // TODO: Extend support for operator<=> to ObjC types. clang/lib/Driver/ToolChains/Solaris.cpp (1 line): - line 205: // FIXME: Omit X86_64 until 64-bit support is figured out. lldb/unittests/Expression/DiagnosticManagerTest.cpp (1 line): - line 136: // FIXME: This *really* should not just fail silently. llvm/lib/Linker/LinkModules.cpp (1 line): - line 573: // FIXME: Propagate Errors through to the caller instead of emitting polly/lib/Transform/Simplify.cpp (1 line): - line 314: // ScopStmt, so the map can be local to this scope. TODO: Refactor with llvm/lib/LTO/LTOModule.cpp (1 line): - line 489: // FIXME: This is trying to take care of module ASM like this: lldb/unittests/DataFormatter/FormattersContainerTest.cpp (1 line): - line 52: // FIXME: This isn't consistent with the 'exact' type name matches above. llvm/lib/Target/M68k/GISel/M68kCallLowering.h (1 line): - line 27: // TODO: We are only supporting return instruction with no value at this time mlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h (1 line): - line 39: // TODO: this shouldn't be needed after we unify the attribute generation, i.e. llvm/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h (1 line): - line 28: // FIXME: Delete this structure. lldb/source/Core/ValueObjectChild.cpp (1 line): - line 141: // TODO: does this make sense? llvm/lib/Target/SystemZ/SystemZSubtarget.cpp (1 line): - line 102: // FIXME: Explicitly check for functions: the datalayout is currently clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp (1 line): - line 43: // FIXME: what about overloads? Declarations can be used as keys but what llvm/tools/llvm-exegesis/lib/SerialSnippetGenerator.cpp (1 line): - line 112: // TODO: Implement me. clang/include/clang/ARCMigrate/FileRemapper.h (1 line): - line 33: // FIXME: Reuse the same FileManager for multiple ASTContexts. llvm/lib/Target/AMDGPU/AMDGPU.h (1 line): - line 405: // FIXME: Missing constant_32bit lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp (1 line): - line 27: // TODO get the list of renderscript modules from lldb and check if clang-tools-extra/clangd/index/Index.h (1 line): - line 136: /// FIXME: there's no indication which result references which symbol. clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp (1 line): - line 255: // TODO: Implement diagnostic bucketing to reduce the impact of strict llvm/include/llvm/MC/MCInstrItineraries.h (1 line): - line 221: // FIXME: This assumes one cycle benefit for every pipeline forwarding. lldb/source/Symbol/Symbol.cpp (1 line): - line 322: // TODO: expose something in Process to figure out the llvm/lib/Analysis/DependenceAnalysis.cpp (1 line): - line 3465: // FIXME: It may be better to record these sizes and add them as constraints mlir/lib/Dialect/SCF/Transforms/StructuralTypeConversions.cpp (1 line): - line 84: // TODO: Generalize this to any type conversion, not just 1:1. clang/lib/CodeGen/CGCall.h (1 line): - line 25: // FIXME: Restructure so we don't have to expose so much stuff. clang/lib/Driver/ToolChains/OpenBSD.cpp (1 line): - line 216: // FIXME: For some reason GCC passes -lgcc before adding llvm/lib/Target/M68k/M68kInstrBuilder.h (1 line): - line 13: /// TODO The BuildMem function may be used with the BuildMI function to add flang/lib/Optimizer/CodeGen/DescriptorModel.h (1 line): - line 14: // TODO: It is understood that this is deeply incorrect as far as building a llvm/cmake/modules/LLVMExternalProjectUtils.cmake (1 line): - line 98: # TODO: These tools don't fully support Mach-O format yet. llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpp (1 line): - line 50: // TODO: More investigation on how assembler decides to set the sign llvm/lib/Object/Object.cpp (1 line): - line 184: // TODO: Actually report errors helpfully. llvm/unittests/Support/CrashRecoveryTest.cpp (1 line): - line 110: // FIXME: Handle "Depth" parameter in PrintStackTrace() function llvm/lib/Target/X86/X86AvoidTrailingCall.cpp (1 line): - line 91: // FIXME: Perhaps this pass should also replace SEH_Epilogue by inserting nops llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp (1 line): - line 238: // TODO: update or remove symbols only if there is an option that affects llvm/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp (1 line): - line 154: // TODO: Can handle more cases here: mlir/lib/Rewrite/FrozenRewritePatternSet.cpp (1 line): - line 27: // TODO: Add folding here if ever necessary. flang/lib/Optimizer/Transforms/AffinePromotion.cpp (1 line): - line 110: // TODO: Look if and how fir.box can be promoted to affine. llvm/tools/llvm-profgen/CallContext.h (1 line): - line 31: // TODO: This operation is expansive. If it ever gets called multiple times we mlir/lib/ExecutionEngine/ExecutionEngine.cpp (1 line): - line 248: // FIXME: the triple should be passed to the translation or dialect conversion llvm/tools/llvm-cxxdump/Error.cpp (1 line): - line 20: // FIXME: This class is only here to support the transition to llvm::Error. It llvm/include/llvm/ADT/DAGDeltaAlgorithm.h (1 line): - line 45: // FIXME: Use a decent data structure. llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h (1 line): - line 27: // TODO: (ABI) Revisit and decide how large it should be. llvm/tools/llvm-exegesis/lib/X86/X86Counter.h (1 line): - line 21: // FIXME: Use appropriate wrappers for poll.h and mman.h llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp (1 line): - line 70: //===----------------------- TODO -----------------------------------------===// lld/ELF/ScriptParser.cpp (1 line): - line 912: // FIXME: GNU ld permits INPUT_SECTION_FLAGS to be used here. We do not llvm/lib/Target/X86/X86CallingConv.cpp (1 line): - line 324: // FIXME: This should be accounted for in lld/ELF/Relocations.cpp (1 line): - line 1618: // TODO Support mixed TLSDESC and TLS GD. llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp (1 line): - line 173: // FIXME: Should flat be considered vmem? llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h (1 line): - line 31: // FIXME: Add other PDB search options (_NT_SYMBOL_PATH, symsrv) lldb/include/lldb/Symbol/Symbol.h (1 line): - line 114: // TODO: See if there is a way to determine the language for a symbol llvm/lib/Support/Hashing.cpp (1 line): - line 25: // FIXME: Use atomic operations here so that there is no data race. mlir/lib/IR/Location.cpp (1 line): - line 114: // TODO: Investigate ASAN failure when using implicit conversion from mlir/python/mlir/dialects/linalg/__init__.py (1 line): - line 54: # TODO: guard against surprises and fail create Runtime Custom Ops with llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp (1 line): - line 580: // FIXME: is this still valid? flang/tools/tco/tco.cpp (1 line): - line 89: // TODO: Actually add passes when added to FIR code base lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h (1 line): - line 56: // FIXME: This is and GetNextAvailablePort make create a race condition if llvm/tools/llvm-xray/xray-extract.cpp (1 line): - line 11: // FIXME: Support other XRay-instrumented binary formats other than ELF. mlir/lib/Dialect/SparseTensor/Utils/Merger.cpp (1 line): - line 484: // TODO: for now we "fixed" this by only accepting x/c cases mlir/lib/CAPI/IR/IR.cpp (1 line): - line 56: // TODO: expose a cheaper way than constructing + sorting a vector only to take llvm/lib/LTO/SummaryBasedOptimizations.cpp (1 line): - line 34: // FIXME: This initializes the entry counts of only the root nodes. This makes llvm/lib/CodeGen/GCMetadata.cpp (1 line): - line 143: // TODO: Arguably, just doing a linear search would be faster for small N clang-tools-extra/clangd/unittests/tweaks/DefineOutlineTests.cpp (1 line): - line 501: // FIXME: Take using namespace directives in the source file into clang/unittests/Basic/FileManagerTest.cpp (1 line): - line 444: // FIXME: Should this be using a root path / call getSystemRoot()? For now, lldb/include/lldb/Utility/IOObject.h (1 line): - line 27: // TODO: On Windows this should be a HANDLE, and wait should use libc/utils/HdrGen/IncludeFileCommand.cpp (1 line): - line 38: // TODO: The way the content is split below does not allow space within the llvm/lib/Target/Mips/MipsSubtarget.cpp (1 line): - line 36: // FIXME: Maybe this should be on by default when Mips16 is specified clang/lib/Index/IndexTypeSourceInfo.cpp (1 line): - line 90: // FIXME: A free function definition can have default arguments. clang/lib/Tooling/Transformer/Stencil.cpp (1 line): - line 59: // FIXME: Consider memoizing this function using the `ASTContext`. llvm/lib/ProfileData/InstrProf.cpp (1 line): - line 169: // FIXME: This class is only here to support the transition to llvm::Error. It clang/lib/Driver/ToolChains/Arch/M68k.cpp (1 line): - line 51: // FIXME: Throw error when multiple sub-architecture flag exist lld/COFF/MapFile.cpp (1 line): - line 189: os << " "; // FIXME : Handle "f" and "i" flags sometimes generated libcxx/utils/generate_feature_test_macro_components.py (1 line): - line 38: # (TODO: This isn't a very clean model for feature-test clang/include/clang/Sema/Ownership.h (1 line): - line 122: // FIXME: Doesn't work? return P.getAs< void >(); compiler-rt/lib/dfsan/dfsan_platform.h (1 line): - line 24: // TODO: The memory mapping code to setup a 1:1 shadow is based on msan. libclc/generic/lib/math/lgamma_r.inc (1 line): - line 24: // TODO: Enable half precision when the base version is implemented. llvm/tools/llvm-ifs/ErrorCollector.cpp (1 line): - line 29: // TODO: Make this return something (an AggregateError?) that gives more mlir/lib/Dialect/GPU/Transforms/ParallelLoopMapper.cpp (1 line): - line 82: /// TODO: Make this use x for the inner-most loop that is llvm/lib/Target/Hexagon/HexagonGenInsert.cpp (1 line): - line 877: continue; // TODO (future): Record identical registers. polly/include/polly/ScopPass.h (1 line): - line 272: // FIXME: For the same reason as we add a BarrierNoopPass in the legacy pass mlir/lib/Target/SPIRV/Deserialization/DeserializeOps.cpp (1 line): - line 150: // TODO: This is debug information embedded in the binary which should be clang/lib/Format/TokenAnnotator.h (1 line): - line 160: // FIXME: Can/should this be done in the UnwrappedLineParser? llvm/lib/Target/Sparc/DelaySlotFiller.cpp (1 line): - line 122: // TODO: If we ever want to support v7, this needs to be extended flang/lib/Evaluate/fold-real.cpp (1 line): - line 145: // TODO: dim, dot_product, fraction, matmul, llvm/utils/gn/secondary/llvm/unittests/Support/DynamicLibrary/BUILD.gn (1 line): - line 3: # FIXME: If we add -Wl,-z,nodelete to the global ldflags, we need to remove llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp (1 line): - line 129: // FIXME: This should probably be addLiveOuts(). libcxxabi/src/demangle/StringView.h (1 line): - line 9: // FIXME: Use std::string_view instead when we support C++17. llvm/include/llvm/CodeGen/DebugHandlerBase.h (1 line): - line 88: /// FIXME: Make this private from DwarfDebug, we have the necessary accessors lldb/include/lldb/Core/ValueObjectSyntheticFilter.h (1 line): - line 151: // FIXME: use the ValueObject's ChildrenManager instead of a special purpose clang-tools-extra/unittests/clang-tidy/ReadabilityModuleTest.cpp (1 line): - line 175: // FIXME: Consider adding braces before EMPTY_MACRO and after the statement. llvm/lib/Transforms/Utils/CloneModule.cpp (1 line): - line 84: // FIXME: Once pointee types are gone we can probably pick one or the clang/lib/Basic/Targets/AArch64.cpp (1 line): - line 214: // FIXME: Armv8.6 makes the following extensions mandatory: clang/lib/ASTMatchers/Dynamic/Diagnostics.cpp (1 line): - line 97: // TODO: Add type info about the overload error. lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp (1 line): - line 86: // TODO: dlsym won't work on Windows. lldb/unittests/Process/Utility/RegisterContextNetBSDTest_x86_64.cpp (1 line): - line 80: // TODO: This is a known bug, abridged ftag should is 8 bits in length. llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp (1 line): - line 236: // FIXME: This invokes hostcall once for each argument. We can pack up to llvm/unittests/Option/OptionParsingTest.cpp (1 line): - line 328: // FIXME: Options with joined values should not have those values considered llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp (1 line): - line 236: /// TODO: merge it with CodeGenPrepare::optimizeSelectInst() if possible. llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp (1 line): - line 213: // FIXME: This should be in a separate file. llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h (1 line): - line 92: /// FIXME: We really should refactor CFL to use the analysis more heavily, and clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp (1 line): - line 94: // FIXME: Should declarations in anonymous namespaces get the same treatment clang/lib/Basic/Module.cpp (1 line): - line 161: // FIXME: All missing headers are listed on the top-level module. Should we llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp (1 line): - line 850: // TODO: Functions using scope-based EH are currently not supported. llvm/unittests/Frontend/OpenMPContextTest.cpp (1 line): - line 312: // TODO: Add scoring tests (via getBestVariantMatchForContext). llvm/lib/Transforms/Utils/FixIrreducible.cpp (1 line): - line 135: // TODO: A child loop whose header is also a header in the current libcxx/include/__support/solaris/xlocale.h (1 line): - line 34: // FIXME: These are quick-and-dirty hacks to make things pretend to work llvm/lib/Analysis/CodeMetrics.cpp (1 line): - line 199: // FIXME: This logic isn't really right; we can safely inline functions libunwind/src/Unwind-EHABI.cpp (1 line): - line 85: // TODO: We should check the state here, and determine whether we need to clang/lib/CodeGen/CGRecordLayout.h (1 line): - line 144: // FIXME: Maybe we could use a CXXBaseSpecifier as the key and use a single lldb/cmake/modules/AddLLDB.cmake (1 line): - line 73: # FIXME: Setting CMAKE_CXX_FLAGS here is a no-op, use target_compile_options llvm/include/llvm/Bitcode/BitcodeConvenience.h (1 line): - line 256: // TODO: validate array data. compiler-rt/lib/orc/simple_packed_serialization.h (1 line): - line 457: // FIXME: Use std::variant for storage once we have c++17. flang/lib/Semantics/check-arithmeticif.cpp (1 line): - line 41: // TODO: Really? Check that they are really branch target flang/runtime/product.cpp (1 line): - line 95: // TODO: real/complex(2 & 3) clang/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h (1 line): - line 142: // FIXME: Ideally the gathered declarations and the declarations in the lldb/source/Plugins/Process/minidump/MinidumpTypes.h (1 line): - line 72: // TODO misc2, misc3 ? llvm/lib/Target/WebAssembly/WebAssemblyPrepareForLiveIntervals.cpp (1 line): - line 95: // TODO: This is fairly heavy-handed; find a better approach. lldb/packages/Python/lldbsuite/support/seven.py (1 line): - line 54: # TODO: Replace this with `shlex.join` when minimum Python version is >= 3.8 libcxx/include/__format/format_string.h (1 line): - line 27: // TODO FMT Remove this once we require compilers with proper C++20 support. llvm/include/llvm/IR/DebugLoc.h (1 line): - line 94: /// FIXME: Remove this. Users should use DILocation/DILocalScope API to llvm/lib/CodeGen/RegisterClassInfo.cpp (1 line): - line 109: // FIXME: Once targets reserve registers instead of removing them from the clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h (1 line): - line 207: // TODO: Turn into a class. pstl/include/pstl/internal/omp/parallel_scan.h (1 line): - line 63: // TODO: Consider adding a requirement for user functors to be constant. mlir/include/mlir/Conversion/LLVMCommon/MemRefBuilder.h (1 line): - line 183: /// TODO: The following accessors don't take alignment rules between elements clang-tools-extra/clangd/refactor/tweaks/DumpAST.cpp (1 line): - line 157: // FIXME: this is interesting to most users. However: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h (1 line): - line 171: // FIXME: If RelType == COFF::IMAGE_REL_AMD64_ADDR32NB we should be able flang/lib/Evaluate/fold-reduction.h (1 line): - line 9: // TODO: DOT_PRODUCT, NORM2, PARITY mlir/unittests/Dialect/SPIRV/DeserializationTest.cpp (1 line): - line 55: // TODO: check error location too. llvm/include/llvm/IR/PassInstrumentation.h (1 line): - line 74: // TODO: currently AfterPassInvalidated does not accept IRUnit, since passing lld/COFF/Driver.cpp (1 line): - line 136: // FIXME: We could open the file in createFutureForFile and avoid needing to lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h (1 line): - line 175: // TODO Check whether the combiner is an autogenerated name, and track clang/lib/AST/ExternalASTSource.cpp (1 line): - line 120: // FIXME: Only bump the generation counter if the current generation number llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp (1 line): - line 125: // TODO: Test this error. mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferizePass.cpp (1 line): - line 82: // TODO: Change to memref::CopyOp (default memCpyFn). llvm/lib/Target/M68k/M68kAsmPrinter.cpp (1 line): - line 15: // TODO Conform to Motorola ASM syntax flang/lib/Optimizer/Transforms/MemoryAllocation.cpp (1 line): - line 69: // TODO: Generalize the algorithm and placement of the freemem nodes. compiler-rt/lib/sanitizer_common/sanitizer_libc.cpp (1 line): - line 90: // FIXME: building the runtime with -ffreestanding is a better idea. However llvm/include/llvm/IR/Constants.h (1 line): - line 1318: /// TODO: This is a temporary hack until we update the bitcode format for llvm/utils/lit/lit/ShUtil.py (1 line): - line 261: # FIXME: Operator precedence!! llvm/lib/ExecutionEngine/JITLink/JITLink.cpp (1 line): - line 28: // FIXME: This class is only here to support the transition to llvm::Error. It llvm/lib/Target/M68k/M68kInstrInfo.h (1 line): - line 55: // FIXME would be nice tablegen to generate these predicates and converters mlir/include/mlir/IR/AffineMap.h (1 line): - line 278: /// TODO: Remove `allowZeroInResults` when constant zero result expressions llvm/tools/llvm-objcopy/wasm/Object.cpp (1 line): - line 28: // TODO: remove reloc sections for the removed section, handle symbols, etc. llvm/include/llvm/IR/Type.h (1 line): - line 461: /// TODO: Remove this after opaque pointer transition is complete. clang-tools-extra/clangd/FeatureModule.h (1 line): - line 42: /// FIXME: Block server shutdown until all the modules are idle. llvm/lib/CodeGen/MachineCycleAnalysis.cpp (1 line): - line 40: // TODO: verify analysis clang/utils/analyzer/SATestBenchmark.py (1 line): - line 100: # TODO: compare data in old and new dataframes using statistical tests llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h (1 line): - line 156: // TODO: clang/include/clang/Serialization/GlobalModuleIndex.h (1 line): - line 86: /// FIXME: We don't really need a vector here. compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector.h (1 line): - line 21: // FIXME: this is work in progress, nothing really works yet. llvm/lib/Target/M68k/MCTargetDesc/M68kBaseInfo.h (1 line): - line 40: /// TODO Implement scaling other than 1 llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp (1 line): - line 155: // FIXME: Should these be different? openmp/libomptarget/deviceRTLs/common/src/sync.cu (1 line): - line 34: // FIXME: what if not all threads (warps) participate to the barrier? clang-tools-extra/clangd/refactor/tweaks/AddUsing.cpp (1 line): - line 311: // FIXME: This only supports removing qualifiers that are made up of just llvm/include/llvm/Bitcode/BitcodeReader.h (1 line): - line 38: // ErrorOr/std::error_code for compatibility with legacy clients. FIXME: llvm/include/llvm/Support/MachineValueType.h (1 line): - line 851: // TODO: Check that this isn't a scalable vector. clang/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp (1 line): - line 199: // TODO: Using implicit property decl. llvm/lib/Target/ARM/ARMISelLowering.h (1 line): - line 759: // TODO: remove this, and have shouldInsertFencesForAtomic do the proper llvm/lib/Target/RISCV/RISCVInstructionSelector.cpp (1 line): - line 49: // FIXME: This is necessary because DAGISel uses "Subtarget->" and GlobalISel clang/lib/CodeGen/CoverageMappingGen.cpp (1 line): - line 1049: // FIXME: a break in a switch should terminate regions for all preceding llvm/include/llvm/Analysis/VectorUtils.h (1 line): - line 683: /// FIXME: this function currently does not add noalias metadata a'la llvm/lib/Support/regexec.c (1 line): - line 57: /* FIXME: 'states' is assumed as 'long' on small version. */ clang-tools-extra/clangd/support/Trace.h (1 line): - line 116: /// FIXME: Metrics are not recorded, some could become counter events. llvm/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp (1 line): - line 173: // TODO: Would it be better to call into the fuzzer internals directly? llvm/lib/IR/InlineAsm.cpp (1 line): - line 182: // FIXME: For now assuming these are 2-character constraints. polly/lib/Transform/Canonicalization.cpp (1 line): - line 82: // FIXME: The current CGSCC pipeline has its origins in the legacy pass llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.cpp (1 line): - line 206: llvm_unreachable("FIXME: Implement SparcInstPrinter::printGetPCX."); clang-tools-extra/clang-tidy/modernize/RawStringLiteralCheck.cpp (1 line): - line 46: // FIXME: Handle L"", u8"", u"" and U"" literals. clang/lib/Basic/Targets/MSP430.cpp (1 line): - line 33: // FIXME: defines for different 'flavours' of MCU clang/lib/StaticAnalyzer/Core/CheckerHelpers.cpp (1 line): - line 131: // FIXME: EOF macro token coming from a PCH file on macOS while marked as llvm/unittests/CodeGen/DIEHashTest.cpp (1 line): - line 495: // FIXME: This seems to be a bug in the DWARF type hashing specification that mlir/lib/Dialect/GPU/Transforms/SerializeToHsaco.cpp (1 line): - line 311: // FIXME: Is there a way to set this during printf() lowering that makes sense llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp (1 line): - line 3548: // FIXME: Work out whether it is profitable to do this in A32 mode - LSL and llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp (1 line): - line 170: // TODO: replace this with call to auto generated uncompressinstr() function. clang/tools/scan-build-py/lib/libscanbuild/analyze.py (1 line): - line 361: if output_format not in ['sarif', 'sarif-html']: # FIXME: lldb/utils/lui/breakwin.py (1 line): - line 74: # FIXME: Use an API for this, not parsing the description. clang/lib/ASTMatchers/Dynamic/Marshallers.h (1 line): - line 331: // FIXME: We should provide the ability to constrain the output of this llvm/lib/Target/X86/X86PreAMXConfig.cpp (1 line): - line 159: // TODO: Currently we defaultly set Palette = 1, it may be assigned to llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp (1 line): - line 359: // TODO: need to reserve slots #0 and #1 for duplex insns. clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp (1 line): - line 861: // TODO: if the banned macros are themselves duplicated clang/tools/clang-rename/clang-rename.py (1 line): - line 52: # FIXME: make it possible to run the tool on unsaved file. llvm/lib/Target/AMDGPU/R600FrameLowering.cpp (1 line): - line 28: // FIXME: We should only do this when the shader actually uses this clang/lib/AST/OpenMPClause.cpp (1 line): - line 2377: // TODO: This might not hold once we implement SIMD properly. compiler-rt/lib/sanitizer_common/sanitizer_libc.h (1 line): - line 13: // FIXME: Some of functions declared in this file are in fact POSIX, not libc. llvm/unittests/Analysis/MemoryBuiltinsTest.cpp (1 line): - line 43: // FIXME: We might be able to treat allocsize functions as general allocation llvm/lib/TextAPI/Platform.cpp (1 line): - line 53: // TODO: add bridgeOS & driverKit once in llvm::Triple llvm/lib/ExecutionEngine/Orc/Shared/OrcError.cpp (1 line): - line 24: // FIXME: This class is only here to support the transition to llvm::Error. It flang/lib/Lower/RTBuilder.h (1 line): - line 188: // FIXME: a namelist group must be some well-defined data structure, use a llvm/lib/CodeGen/MachineModuleInfo.cpp (1 line): - line 400: // FIXME: Do this for new pass manager. mlir/python/mlir/dialects/linalg/opdsl/lang/affine.py (1 line): - line 190: # TODO: Not really a ceil div - taking liberties for the DSL. compiler-rt/lib/builtins/fp_div_impl.inc (1 line): - line 337: // FIXME Is x_UQ0 still >= 0.5? llvm/lib/Target/X86/X86LoadValueInjectionRetHardening.cpp (1 line): - line 65: return false; // FIXME: support 32-bit llvm/lib/Transforms/Utils/Evaluator.cpp (1 line): - line 646: // bail out. TODO: we might want to accept limited recursion. openmp/libomptarget/plugins/remote/include/Utils.h (1 line): - line 59: // TODO: Error handle for incorrect inputs llvm/tools/sanstats/sanstats.cpp (1 line): - line 88: // TODO: it would be neccessary to set proper section index here. clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp (1 line): - line 51: // FIXME: Consider making the default behaviour for finding a style llvm/lib/Target/WebAssembly/WebAssemblyMCLowerPrePass.cpp (1 line): - line 87: // FIXME: what should all be filtered out beyond these? llvm/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp (1 line): - line 23: /// TODO: Common w/ the version in AtomicExpandPass, and change the term used. llvm/include/llvm/Analysis/RegionInfo.h (1 line): - line 598: // FIXME: Even a const_iterator returns a non-const BasicBlock pointer. llvm/lib/Support/Unix/DynamicLibrary.inc (1 line): - line 84: // FIXME: Currently disabled when using Clang, as we don't always have our mlir/lib/Target/SPIRV/TranslateRegistration.cpp (1 line): - line 141: // TODO: we should only load the required dialects instead of all dialects. clang-tools-extra/clang-tidy/ClangTidyCheck.h (1 line): - line 52: /// FIXME: Figure out whether carrying information from one TU to another is llvm/lib/Transforms/IPO/CalledValuePropagation.cpp (1 line): - line 104: // FIXME: This could be a TinyPtrVector and/or merge with LatticeState. lldb/source/Utility/Args.cpp (1 line): - line 267: // TODO: functions like execve and posix_spawnp exhibit undefined behavior lldb/include/lldb/Target/ThreadPlanRunToAddress.h (1 line): - line 58: // TODO: Would it be useful to have multiple addresses? libc/benchmarks/automemcpy/lib/CodeGen.cpp (1 line): - line 250: // FIXME: the framework should provide a `native` namespace that redirect to llvm/include/llvm/IR/Constant.h (1 line): - line 137: /// FIXME: This really should not be in IR. clang/lib/AST/ParentMapContext.cpp (1 line): - line 363: // FIXME: Currently we add the same parent multiple times, but only compiler-rt/cmake/Modules/AddCompilerRT.cmake (1 line): - line 494: # FIXME: -DLLVM_ENABLE_LLD=ON and -DLLVM_ENABLE_PROJECTS without lld case. llvm/lib/Transforms/Scalar/ConstantHoisting.cpp (1 line): - line 404: // TODO: Handle vector GEPs lld/MachO/OutputSegment.cpp (1 line): - line 43: "TODO: i386 has different maxProt requirements"); llvm/lib/Analysis/AssumptionCache.cpp (1 line): - line 315: // FIXME: In the long term the verifier should not be controllable with a mlir/lib/IR/FunctionImplementation.cpp (1 line): - line 63: // Parse a location if specified. TODO: Don't drop it on the floor. compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp (1 line): - line 383: // FIXME implement on this platform. llvm/lib/Support/Windows/Path.inc (1 line): - line 832: // FIXME Not implemented. llvm/lib/Transforms/Utils/GlobalStatus.cpp (1 line): - line 76: // FIXME: Do we need to add constexpr selects to VisitedUsers? libc/src/string/strncmp.cpp (1 line): - line 16: // TODO: Look at benefits for comparing words at a time. llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp (1 line): - line 326: // FIXME: Make this work on non-ELF. llvm/lib/Target/X86/X86VZeroUpper.cpp (1 line): - line 251: // FIXME: In some cases, we may want to move the VZEROUPPER into a clang-tools-extra/clang-tidy/plugin/ClangTidyPlugin.cpp (1 line): - line 64: // FIXME: This is very limited at the moment. mlir/include/mlir/Dialect/SparseTensor/Transforms/Passes.h (1 line): - line 35: // TODO: support reduction parallelization too? bolt/lib/Passes/StokeInfo.cpp (1 line): - line 74: // TODO: more accurate analysis lldb/unittests/Utility/VMRangeTest.cpp (1 line): - line 149: // TODO: Implement and test ContainsRange with values that span multiple clang-tools-extra/clang-doc/assets/clang-doc-default-stylesheet.css (1 line): - line 795: overflow-y: scroll; /* TODO: how to hide scroll bars? */ lldb/source/Core/StreamFile.cpp (1 line): - line 39: // TODO refactor this so the error gets popagated up instead of logged here. llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp (1 line): - line 97: // TODO: For now we just opportunistically do this in the case where lldb/source/Plugins/Process/minidump/ThreadMinidump.cpp (1 line): - line 69: // TODO write other register contexts and add them here flang/runtime/format-implementation.h (1 line): - line 364: // TODO: any other raw characters? flang/lib/Optimizer/CodeGen/TargetRewrite.cpp (1 line): - line 241: // TODO: dispatch case; how do we put arguments on a call? clang-tools-extra/clangd/index/FileIndex.h (1 line): - line 110: /// FIXME: Expose an interface to remove files that are closed. llvm/include/llvm/PassInfo.h (1 line): - line 70: /// TODO : Rename clang/lib/StaticAnalyzer/Checkers/cert/InvalidPtrChecker.cpp (1 line): - line 166: // TODO: This seems really ugly. Simplify this. llvm/include/llvm/CodeGen/FastISel.h (1 line): - line 516: // TODO: Implement PGSO. libc/src/ctype/isblank.cpp (1 line): - line 15: // TODO: Currently restricted to default locale. llvm/lib/Target/ARM/MLxExpansionPass.cpp (1 line): - line 183: // FIXME: Detect integer instructions properly. compiler-rt/lib/asan/scripts/asan_symbolize.py (1 line): - line 41: # FIXME: merge the code that calls fix_filename(). llvm/lib/Transforms/Coroutines/CoroInstr.h (1 line): - line 132: // TODO: Add a check that any remaining users of Inst are after coro.begin clang-tools-extra/unittests/clang-tidy/IncludeInserterTest.cpp (1 line): - line 15: // FIXME: Canonicalize paths correctly on windows. llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp (1 line): - line 22: // FIXME: This is not always needed. For example, it is not needed in the mlir/include/mlir/Dialect/SCF/Transforms.h (1 line): - line 130: // TODO: add option to decide if the prologue/epilogue should be peeled. llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp (1 line): - line 679: // FIXME: is this necessary? clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h (1 line): - line 81: /// FIXME: Move this to the corresponding cpp file as is done for mlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp (1 line): - line 244: // TODO: Use a location from the position. openmp/runtime/src/kmp_platform.h (1 line): - line 199: // TODO: Fixme - This is clever, but really fugly clang/lib/AST/TypeLoc.cpp (1 line): - line 211: // FIXME: Currently QualifiedTypeLoc does not have a source range libunwind/src/FrameHeaderCache.hpp (1 line): - line 44: // used entries. FIXME: Would the the extra memory for a doubly-linked list llvm/tools/llvm-extract/llvm-extract.cpp (1 line): - line 332: // FIXME: should the GVExtractionPass handle this? llvm/lib/CodeGen/MacroFusion.cpp (1 line): - line 74: // TODO - If we want to chain more than two instructions, we need to create llvm/lib/Target/ARM/Thumb1InstrInfo.cpp (1 line): - line 56: // FIXME: Can also use 'mov hi, $src; mov $dst, hi', mlir/include/mlir/TableGen/Operator.h (1 line): - line 242: // TODO: do not expose the TableGen record, this is a temporary solution to llvm/include/llvm/Transforms/Scalar/DeadStoreElimination.h (1 line): - line 12: // FIXME: This should eventually be extended to be a post-dominator tree clang-tools-extra/clang-tidy/bugprone/NoEscapeCheck.cpp (1 line): - line 37: // FIXME: Add a method to get the location of the use of a CapturedVar so llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn (1 line): - line 182: # FIXME: llvm/Config/BUILD.gn currently always sets LLVM_WITH_Z3 llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp (1 line): - line 240: // FIXME: Once lld-link rejects multiple resource .obj files: lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp (1 line): - line 144: // TODO: swap header if needed... lld/COFF/Chunks.h (1 line): - line 281: // FIXME: Wrong const-ness, but it makes filter ranges work. lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.cpp (1 line): - line 80: // FIXME: We have to get the checkers to know why they scotched the call in llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h (1 line): - line 73: // FIXME: shared because std::functions (and consequently flang/include/flang/Parser/format-specification.h (1 line): - line 19: // TODO: support Q formatting extension? llvm/include/llvm/Transforms/Scalar/GVN.h (1 line): - line 114: /// FIXME: We should have a good summary of the GVN algorithm implemented by clang/lib/APINotes/APINotesYAMLCompiler.cpp (1 line): - line 93: // TODO: Mapping this to it's own value would allow for better cross bolt/include/bolt/Passes/CallGraph.h (1 line): - line 21: // TODO: find better place for this clang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp (1 line): - line 66: // TODO: Probably should guard against function calls that could have side clang/lib/ASTMatchers/Dynamic/Parser.cpp (1 line): - line 453: // TODO: We could use different error codes for each/some to be more llvm/lib/CodeGen/MachinePassManager.cpp (1 line): - line 92: // TODO: EmitSizeRemarks mlir/lib/Dialect/Tosa/IR/TosaOps.cpp (1 line): - line 690: /// TODO: Add link to the leglization document explaining this. lldb/source/Host/common/Socket.cpp (1 line): - line 210: // TODO: On Windows, use WSAEventSelect clang-tools-extra/clangd/unittests/ParsedASTTests.cpp (1 line): - line 619: EXPECT_FALSE(mainIsGuarded(TU.build())); // FIXME: true llvm/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp (1 line): - line 87: // TODO: add support for non-zero segment selector size. llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h (1 line): - line 73: // FIXME: Return a more reasonable number, while keeping an eye on llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h (1 line): - line 128: /// FIXME: The default for EnableLoopVectorization in the cl::opt should be llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp (1 line): - line 1867: // TODO: llvm/lib/Target/Hexagon/HexagonCFGOptimizer.cpp (1 line): - line 173: // TODO: If not, we should not invert the unconditional branch. llvm/lib/Transforms/IPO/StripSymbols.cpp (1 line): - line 154: // FIXME: Why does the type of the constant matter here? mlir/lib/Conversion/ArithmeticToSPIRV/ArithmeticToSPIRV.cpp (1 line): - line 298: // TODO: add support for large vectors. llvm/unittests/tools/llvm-exegesis/X86/SnippetFileTest.cpp (1 line): - line 57: // FIXME: Refactor these to ../Common/Matchers.h flang/lib/Optimizer/Transforms/AbstractResult.cpp (1 line): - line 268: "TODO: dispatchOp with abstract results"); clang-tools-extra/clang-tidy/performance/MoveConstructorInitCheck.cpp (1 line): - line 65: // FIXME: Determine whether the move constructor is a viable candidate clang/include/clang/AST/Attr.h (1 line): - line 51: // FIXME: These are properties of the attribute kind, not state for this llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp (1 line): - line 155: // TODO Replace this with OptTable API once it adds extrahelp support. llvm/lib/MC/MCFragment.cpp (1 line): - line 131: // FIXME: On most platforms, `Target`'s component symbols are labels from llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h (1 line): - line 443: // FIXME: We should be able to specify the equals operator as a friend, but llvm/lib/Target/ARM/ARMHazardRecognizer.cpp (1 line): - line 28: // FIXME: Detect integer instructions properly. llvm/lib/MC/MCSectionWasm.cpp (1 line): - line 85: // TODO: Print section type. lldb/unittests/Symbol/TestLineEntry.cpp (1 line): - line 54: // TODO: Handle SourceLocationSpec column information mlir/lib/Parser/AffineParser.cpp (1 line): - line 108: // TODO: make the error location info accurate. compiler-rt/lib/hwasan/hwasan_checks.h (1 line): - line 40: // FIXME: not always sigill. llvm/lib/CodeGen/RenameIndependentSubregs.cpp (1 line): - line 260: // TODO: We could attempt to recompute new register classes while visiting clang/include/clang/Frontend/DiagnosticRenderer.h (1 line): - line 45: /// FIXME: Sink the recursive printing of template instantiations into this clang/www/analyzer/checker_dev_manual.html (1 line): - line 225: TODO: Add a picture. libc/src/string/strchr.cpp (1 line): - line 15: // TODO: Look at performance benefits of comparing words. mlir/lib/Dialect/DLTI/DLTI.cpp (1 line): - line 248: // TODO: reconsider this when the need arises. compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp (1 line): - line 237: // FIXME: Omitting MAP_STACK here works in current kernels but might break flang/lib/Frontend/CompilerInstance.cpp (1 line): - line 29: // TODO: This is a good default during development, but ultimately we should clang/tools/libclang/CIndexCodeCompletion.cpp (1 line): - line 733: // FIXME: Add logging. lldb/source/Breakpoint/BreakpointResolver.cpp (1 line): - line 348: // FIXME: We should go fix up all the already set locations for the new lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp (1 line): - line 934: // TODO: figure out remote case here! libc/src/ctype/isxdigit.cpp (1 line): - line 16: // TODO: Currently restricted to default locale. lld/ELF/Arch/ARM.cpp (1 line): - line 133: // FIXME: currently B(S) assumed to be .got, this may not hold for all polly/lib/Support/VirtualInstruction.cpp (1 line): - line 73: // FIXME: Inconsistency between lookupInvariantEquivClass and clang/tools/libclang/CXString.cpp (1 line): - line 83: // FIXME: This is doing a one past end read, and should be removed! For memory libcxx/src/typeinfo.cpp (1 line): - line 48: // FIXME: Remove the _LIBCPP_BUILDING_HAS_NO_ABI_LIBRARY configuration. llvm/include/llvm/Support/GenericDomTree.h (1 line): - line 19: /// FIXME: Maybe GenericDomTree needs a TreeTraits, instead of GraphTraits. compiler-rt/lib/sanitizer_common/sanitizer_common.h (1 line): - line 911: // FIXME: MacOS implementation could use CRSetCrashLogMessage. compiler-rt/lib/hwasan/hwasan_allocator.h (1 line): - line 100: // TODO: this is currently 24 bytes (20 bytes + alignment). llvm/include/llvm/MC/MCContext.h (1 line): - line 819: // FIXME: We should really do something about that. llvm/lib/Transforms/InstCombine/InstCombineInternal.h (1 line): - line 777: /// FIXME: use worklist? llvm/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp (1 line): - line 85: // virtual registers. TODO: Consider sorting the registers by frequency of lldb/source/Core/ValueObjectMemory.cpp (1 line): - line 227: // FIXME: Maybe try to read the memory address, and if that works, then polly/include/polly/MatmulOptimizer.h (1 line): - line 58: /// TODO: Implement the packing transformation. libc/src/ctype/isdigit.cpp (1 line): - line 15: // TODO: Currently restricted to default locale. clang/lib/Lex/Pragma.cpp (1 line): - line 280: // FIXME: C++11 does not specify how to handle raw-string-literals here. clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp (1 line): - line 153: // FIXME: Disabled on C++ for now. llvm/lib/CodeGen/PHIElimination.cpp (1 line): - line 219: // TODO: we should use the incremental DomTree updater here. llvm/lib/Target/MSP430/MSP430ISelLowering.h (1 line): - line 67: /// TODO Nothing generates a node of this type yet. libc/src/string/strstr.cpp (1 line): - line 16: // TODO: This is a simple brute force implementation. This can be llvm/unittests/DebugInfo/DWARF/DWARFDebugLineTest.cpp (1 line): - line 329: // TODO: Add tests that show that the body of the programs have been read llvm/tools/llvm-readobj/llvm-readobj.cpp (1 line): - line 571: // TODO Replace this with OptTable API once it adds extrahelp support. flang/include/flang/Optimizer/Builder/Runtime/RTBuilder.h (1 line): - line 49: // TODO: all usages of sizeof in this file assume build == host == target. clang-tools-extra/clang-tidy/readability/DeleteNullPointerCheck.cpp (1 line): - line 59: // FIXME: generate fixit for this case. llvm/lib/Transforms/Utils/LoopVersioning.cpp (1 line): - line 102: // FIXME: This does not currently preserve SimplifyLoop because the exit mlir/lib/Interfaces/ControlFlowInterfaces.cpp (1 line): - line 322: // TODO: The ReturnLike trait should imply a default implementation of the llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h (1 line): - line 80: /// FIXME: This ought to take an argument indicating the number of try-blocks compiler-rt/lib/dfsan/dfsan_interceptors.cpp (1 line): - line 111: // FIXME: implement, but don't call REAL(malloc_stats)! llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp (1 line): - line 666: // FIXME: Remove this when SEH no longer uses landingpad pattern matching. llvm/utils/lit/lit/Test.py (1 line): - line 240: # FIXME should target triple parts count here too? llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp (1 line): - line 115: // TODO: In the regular function, if that local variable in the llvm/lib/CodeGen/MIRVRegNamerUtils.cpp (1 line): - line 98: // TODO: Handle the following Index/ID/Predicate cases. They can llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h (1 line): - line 58: // FIXME: As the RuntimeDyld fills out, additional routines will be needed mlir/lib/Dialect/GPU/Transforms/SerializeToBlob.cpp (1 line): - line 93: // TODO: If serializeToCubin ends up defining optimizations, factor them mlir/lib/TableGen/Predicate.cpp (1 line): - line 225: // TODO: we can support ground truth for rewritten llvm/lib/ProfileData/RawMemProfReader.cpp (1 line): - line 112: // TODO: Print the build ids once we can record them using the llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp (1 line): - line 418: // TODO: This will need modification when supporting instruction set llvm/lib/Transforms/Instrumentation/PoisonChecking.cpp (1 line): - line 336: /* Major TODO Items: lldb/include/lldb/lldb-types.h (1 line): - line 30: // TODO: Add a bunch of ifdefs to determine the host system and what llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h (1 line): - line 47: // TODO: Implement more Scalar TTI for WebAssembly llvm/lib/CodeGen/WasmEHPrepare.cpp (1 line): - line 321: // TODO Sometimes storing the LSDA address every time is not necessary, in llvm/unittests/XRay/FDRBlockIndexerTest.cpp (1 line): - line 78: // FIXME: Support indexing V2 and V1 blocks. llvm/lib/Support/Windows/Watchdog.inc (1 line): - line 13: // TODO: implement. lldb/source/Commands/CommandObjectWatchpointCommand.cpp (1 line): - line 25: // FIXME: "script-type" needs to have its contents determined dynamically, so lldb/source/Utility/Scalar.cpp (1 line): - line 674: // FIXME: It's not possible to unambiguously map a byte size to a floating lldb/source/Symbol/CompileUnit.cpp (1 line): - line 237: // TODO: Handle SourceLocationSpec column information clang/tools/diagtool/DiagnosticNames.cpp (1 line): - line 27: // FIXME: Is it worth having two tables, especially when this one can get bolt/lib/Passes/BinaryPasses.cpp (1 line): - line 798: // TODO: should this use misprediction frequency instead? compiler-rt/lib/xray/xray_fdr_log_writer.h (1 line): - line 103: // TODO: Check boundary conditions: clang/lib/Analysis/ReachableCode.cpp (1 line): - line 150: // FIXME: This is not very precise. Here we just check to see if the clang/unittests/Rename/RenameEnumTest.cpp (1 line): - line 58: // FIXME: the new namespace qualifier should be added to the unscoped llvm/lib/ExecutionEngine/Orc/EPCEHFrameRegistrar.cpp (1 line): - line 21: // FIXME: Proper mangling here -- we really need to decouple linker mangling flang/lib/Semantics/data-to-inits.cpp (1 line): - line 251: // TODO: big-endian targets llvm/lib/CodeGen/AsmPrinter/AddressPool.cpp (1 line): - line 36: Asm.emitInt8(0); // TODO: Support non-zero segment_selector_size. lld/wasm/MapFile.cpp (1 line): - line 159: // TODO: other section/symbol types lld/wasm/SymbolTable.cpp (1 line): - line 200: // FIXME: No assertions currently on the limits. llvm/utils/gn/secondary/lldb/source/Utility/BUILD.gn (1 line): - line 69: # FIXME: llvm/lib/ProfileData/Coverage/CoverageMapping.cpp (1 line): - line 882: // FIXME: This class is only here to support the transition to llvm::Error. It lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp (1 line): - line 317: // TODO: The definition and use of this "dump requested" constant llvm/lib/Support/Unix/Signals.inc (1 line): - line 69: // FIXME: We should be able to use for any target that has an mlir/lib/Dialect/Quant/Utils/FakeQuantSupport.cpp (1 line): - line 64: // TODO: we should nudge the scale as well, but that requires the llvm/include/llvm/Analysis/Utils/TFUtils.h (1 line): - line 174: // FIXME: let's drop int32_t support. While it's supported by evaluator, it's clang-tools-extra/clang-tidy/google/UsingNamespaceDirectiveCheck.cpp (1 line): - line 40: // TODO: We could suggest a list of using directives replacing the using compiler-rt/lib/xray/xray_profiling.cpp (1 line): - line 305: // FIXME: Handle bugs. llvm/include/llvm/Analysis/ValueLattice.h (1 line): - line 24: /// FIXME: This is basically just for bringup, this can be made a lot more rich llvm/lib/Target/Sparc/SparcTargetMachine.cpp (1 line): - line 117: // FIXME: This is related to the code below to reset the target options, bolt/include/bolt/Rewrite/RewriteInstance.h (1 line): - line 237: /// ELF-specific part. TODO: refactor into new class. llvm/include/llvm/Support/SuffixTree.h (1 line): - line 251: /// FIXME: This may not be true for targets like X86 which support many clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h (1 line): - line 316: // FIXME: Do we need to pass ProgramStateManager anymore? mlir/include/mlir/Conversion/LLVMCommon/LoweringOptions.h (1 line): - line 54: // TODO: this should be replaced by MLIR data layout when one exists. llvm/lib/CodeGen/MachinePipeliner.cpp (1 line): - line 2118: // FIXME: This algorithm assumes instructions have fixed-size offsets. compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.cpp (1 line): - line 113: // FIXME: this is linear search. llvm/tools/llvm-ifs/ErrorCollector.h (1 line): - line 40: // TODO: Add move constructor and operator= when a testable situation arises. mlir/include/mlir/Interfaces/DataLayoutInterfaces.h (1 line): - line 176: // TODO: this is mutable because the generated interface method are not const. mlir/lib/Conversion/VectorToROCDL/VectorToROCDL.cpp (1 line): - line 67: // TODO: support 0-d corner case. clang/lib/Lex/DependencyDirectivesSourceMinimizer.cpp (1 line): - line 790: // FIXME: Once/if Clang starts disallowing __has_include in macro expansions, lldb/unittests/Utility/RangeMapTest.cpp (1 line): - line 84: // TODO: This should probably return the range (0, 40) as well. llvm/lib/InterfaceStub/ELFObjHandler.cpp (1 line): - line 499: // TODO: Populate symbol warning. openmp/runtime/src/ompt-general.cpp (1 line): - line 707: /* TODO: Is this safe for asynchronous call from signal handler during runtime mlir/lib/Target/SPIRV/Serialization/Serializer.h (1 line): - line 207: /// TODO: Consider to enhance splat elements cases. For splat cases, libcxx/include/__format/format_fwd.h (1 line): - line 29: // TODO FMT Remove this once we require compilers with proper C++20 support. llvm/lib/DebugInfo/CodeView/CodeViewError.cpp (1 line): - line 18: // FIXME: This class is only here to support the transition to llvm::Error. It clang-tools-extra/clangd/index/FileIndex.cpp (1 line): - line 164: // FIXME: RelationSlab shouldn't contain dangling relations. llvm/lib/Target/AMDGPU/GCNILPSched.cpp (1 line): - line 164: // TODO: add register pressure lowering checks lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp (1 line): - line 2258: // TODO: This could be made more robust by also checking children data clang-tools-extra/clang-tidy/misc/NonCopyableObjects.cpp (1 line): - line 31: // FIXME: it would be good to make a list that is also user-configurable so llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.h (1 line): - line 12: // FIXME: The functionality in this file should be moved to the ORC runtime. llvm/unittests/Target/AArch64/InstSizes.cpp (1 line): - line 40: /// TODO: Some of this might be useful for other architectures as well - extract openmp/runtime/src/kmp_wrapper_getpid.h (1 line): - line 61: /* TODO: All the libomp source code uses pid_t type for storing the result of llvm/lib/ObjectYAML/ELFYAML.cpp (1 line): - line 616: // FIXME: Issue a diagnostic with this information. clang/lib/Basic/XRayLists.cpp (1 line): - line 38: // TODO: Remove these as they're deprecated; use the AttrList exclusively. clang-tools-extra/clang-include-fixer/find-all-symbols/FindAllSymbols.cpp (1 line): - line 117: // FIXME: Handle specialization. lldb/utils/lui/sourcewin.py (1 line): - line 45: # FIXME: syntax highlight broken clang-tools-extra/clang-tidy/ClangTidyOptions.cpp (1 line): - line 304: // FIXME: This method has some common logic with clang::format::getStyle(). llvm/unittests/Analysis/CGSCCPassManagerTest.cpp (1 line): - line 860: /// FIXME: Currently this doesn't also depend on a function analysis, and if it clang/include/clang/Tooling/StandaloneExecution.h (1 line): - line 87: // FIXME: The standalone executor is currently just a wrapper of `ClangTool`. libc/src/ctype/isgraph.cpp (1 line): - line 16: // TODO: Currently restricted to default locale. llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp (1 line): - line 99: llvm_unreachable("FIXME: what goes here?"); llvm/utils/gn/secondary/lldb/source/Interpreter/BUILD.gn (1 line): - line 23: #"//lldb/source/Target", # FIXME: 2-hop dependency cyle (Interpreter->Target->Expression->Interpreter) llvm/include/llvm/InterfaceStub/IFSStub.h (1 line): - line 91: // TODO: Add support for symbol versioning. libc/src/ctype/isupper.cpp (1 line): - line 16: // TODO: Currently restricted to default locale. clang/lib/StaticAnalyzer/Checkers/Taint.cpp (1 line): - line 206: // FIXME: The logic to identify tainted regions could be more llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp (1 line): - line 396: // FIXME: An alternate way would be to select a symbolic scale which is later llvm/lib/Target/AMDGPU/R600OpenCLImageTypeLoweringPass.cpp (1 line): - line 98: // FIXME: It should be possible to do image lowering when some metadata llvm/lib/CodeGen/MachineStripDebug.cpp (1 line): - line 55: // FIXME: We should remove all of them. However, AArch64 emits an clang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp (1 line): - line 11: // TODO list: mlir/python/mlir/dialects/linalg/opdsl/dump_oplib.py (1 line): - line 73: # TODO: This class layering is awkward. llvm/unittests/Frontend/OpenMPParsingTest.cpp (1 line): - line 76: // FIXME: Why are these not lower case? lldb/include/lldb/Breakpoint/Breakpoint.h (1 line): - line 237: /// be called by the breakpoint's resolver. FIXME: how do I ensure that? flang/runtime/character.cpp (1 line): - line 335: // TODO: If set is sorted, could use binary search llvm/unittests/Support/ErrorOrTest.cpp (1 line): - line 23: // FIXME: This is probably a bug in gtest. EXPECT_TRUE should expand to libcxxabi/src/cxa_personality.cpp (1 line): - line 1085: // TODO: Support force unwinding in the phase 2 search. clang/tools/clang-check/ClangCheck.cpp (1 line): - line 101: // FIXME: Move FixItRewriteInPlace from lib/Rewrite/Frontend/FrontendActions.cpp mlir/lib/Dialect/DLTI/Traits.cpp (1 line): - line 16: // TODO: consider having trait inheritance so that HasDefaultDLTIDataLayout clang/include/clang/Tooling/Transformer/Parsing.h (1 line): - line 11: /// FIXME: Currently, only supports `RangeSelectors` but parsers for other llvm/include/llvm/Analysis/AssumptionCache.h (1 line): - line 147: /// FIXME: We should replace this with pointee_iterator> clang/lib/Basic/Targets/Lanai.h (1 line): - line 57: // TODO: Remove this when there are no more cast align warnings on the llvm/tools/llvm-exegesis/lib/SnippetGenerator.h (1 line): - line 84: // FIXME: Move random number generation into an object and make it seedable for llvm/include/llvm/IR/ConstantRange.h (1 line): - line 483: /// TODO: This isn't fully implemented yet. clang/lib/CodeGen/CGCleanup.h (1 line): - line 213: // FIXME: it's better to always call clearHandlerBlocks in DTOR and have a clang/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp (1 line): - line 148: // FIXME: In the future hopefully we can just use the lexical DeclContext lldb/include/lldb/Utility/Broadcaster.h (1 line): - line 402: /// FIXME: Probably should make a ManagedBroadcaster subclass with all the llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h (1 line): - line 157: /// FIXME: We should be able to remove this if/when COFF properly tracks compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cpp (1 line): - line 63: // FIXME: Add proper Windows support to AnsiColorDecorator and re-enable color polly/include/polly/CodeGen/IRBuilder.h (1 line): - line 137: // TODO: We should not name instructions in NDEBUG builds. llvm/utils/gn/secondary/lldb/include/lldb/Host/BUILD.gn (1 line): - line 12: # FIXME: Actual values for everything. llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp (1 line): - line 228: // FIXME: Add support for `long double`. clang/include/clang/Basic/LLVM.h (1 line): - line 53: // TODO: DenseMap, ... clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp (1 line): - line 245: // TODO: Cache the results. clang/lib/AST/DeclarationName.cpp (1 line): - line 406: // FIXME: ? clang-tools-extra/clangd/CompileCommands.h (1 line): - line 60: // FIXME: this reimplements much of OptTable, it might be nice to expose more. clang/utils/TableGen/ClangASTPropertiesEmitter.cpp (1 line): - line 191: // TODO: we should sort the properties in various ways llvm/lib/Transforms/Scalar/LoopPassManager.cpp (1 line): - line 41: // FIXME: This isn't correct! This loop and all nested loops' analyses should flang/unittests/Evaluate/fp-testing.cpp (1 line): - line 47: // TODO others llvm/include/llvm/MC/MCDwarf.h (1 line): - line 549: // FIXME: Update the remaining docs to use the new proposal wording. llvm/lib/Transforms/IPO/AlwaysInliner.cpp (1 line): - line 204: // FIXME: We shouldn't even get here for declarations. llvm/lib/IR/Core.cpp (1 line): - line 3679: // TODO: Should this and other atomic instructions support building with llvm/lib/Transforms/Utils/ModuleUtils.cpp (1 line): - line 166: // FIXME: Sink this logic into the module, similar to the handling of clang/tools/diagtool/ShowEnabledWarnings.cpp (1 line): - line 112: // FIXME: It would be very nice to print which flags are turning on which lldb/source/Host/common/NativeProcessProtocol.cpp (1 line): - line 152: // thread that is attached to via the (FIXME implement) OnThreadAttached () llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp (1 line): - line 183: // FIXME: R600 support. llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp (1 line): - line 197: // FIXME: Remove the workaround when bug #48911 is fixed. lldb/source/Core/AddressResolverFileLine.cpp (1 line): - line 45: // TODO: Handle SourceLocationSpec column information llvm/include/llvm/MC/MCMachObjectWriter.h (1 line): - line 213: // FIXME: We really need to improve the relocation validation. Basically, we clang/lib/Headers/__clang_hip_cmath.h (1 line): - line 78: // FIXME: We lack an extension to customize the mangling of the variants, e.g., llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp (1 line): - line 87: // TODO: merge this pass with NVPTXInferAddressSpaces so that other passes don't libc/src/ctype/islower.cpp (1 line): - line 16: // TODO: Currently restricted to default locale. llvm/utils/indirect_calls.py (1 line): - line 36: # TODO: Perhaps use cxxfilt to demangle functions? clang/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp (1 line): - line 62: // FIXME: This is just a wrapper around throwing an exception. libcxx/src/filesystem/directory_iterator.cpp (1 line): - line 157: // FIXME: Cache more of this llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h (1 line): - line 178: /// TODO: The following VectorizationFactor was pulled out of mlir/include/mlir/Dialect/SPIRV/Transforms/SPIRVConversion.h (1 line): - line 161: // TODO: This method assumes that the `baseType` is a MemRefType with AffineMap llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp (1 line): - line 31: // TODO: this is very conservative, update once RISC-V psABI requirements llvm/include/llvm/Analysis/IVDescriptors.h (1 line): - line 398: // TODO: This can be dropped once support for typed pointers is removed. llvm/utils/gn/secondary/llvm/utils/TableGen/tablegen.gni (1 line): - line 70: # FIXME: Rather than duplicating this -I flag in both the CMake and llvm/utils/gn/build/libs/atomic/BUILD.gn (1 line): - line 8: # FIXME: Check which platforms need this; certainly needs to be false on lldb/include/lldb/Breakpoint/BreakpointLocation.h (1 line): - line 33: /// FIXME: Should we also store some fingerprint for the location, so llvm/include/llvm/ADT/FunctionExtras.h (1 line): - line 269: // Allocate out-of-line storage. FIXME: Use an explicit alignment lld/ELF/InputSection.cpp (1 line): - line 954: // TODO To reduce disruption, we use 0 instead of -1 as the tombstone llvm/include/llvm/Remarks/Remark.h (1 line): - line 44: // FIXME: We might want to be able to store other types than strings here. clang/lib/Driver/ToolChains/NetBSD.cpp (1 line): - line 359: // FIXME: It'd be nicer to test if this directory exists, but I'm not sure llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h (1 line): - line 87: // TODO: The size is usually 8 bytes, but takes 4x as many cycles. Maybe flang/lib/Evaluate/fold-integer.cpp (1 line): - line 946: // TODO: dot_product, ibits, ishftc, matmul, sign, transfer lldb/include/lldb/API/SBDebugger.h (1 line): - line 232: // FIXME: Once we get the set show stuff in place, the driver won't need utils/bazel/llvm_configs/abi-breaking.h.cmake (1 line): - line 35: // FIXME: Implement checks without weak. libc/src/string/strlen.cpp (1 line): - line 16: // TODO: investigate the performance of this function. polly/include/polly/CodeGen/IslExprBuilder.h (1 line): - line 71: /// FIXME: Hardcoding sizes can cause issues: llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp (1 line): - line 107: /// FIXME: We plan to develop a decent Target abstraction for simple loads and llvm/include/llvm/Transforms/Utils/Cloning.h (1 line): - line 162: /// FIXME: Consider simplifying this function by splitting out \a clang/include/clang/Analysis/Analyses/Dominators.h (1 line): - line 26: // FIXME: There is no good reason for the domtree to require a print method mlir/include/mlir/ExecutionEngine/ExecutionEngine.h (1 line): - line 164: // TODO: replace with a fold expression when migrating to C++17. lldb/unittests/Target/DynamicRegisterInfoTest.cpp (1 line): - line 139: // TODO: why is it done conditionally to value_regs? clang-tools-extra/clang-tidy/abseil/DurationRewriter.cpp (1 line): - line 44: // TODO: Revisit the immediately invoked lambda technique when compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector1.cpp (1 line): - line 111: return; // FIXME: allow this only for recursive locks. libclc/generic/lib/math/ldexp.inc (1 line): - line 23: // TODO: Enable half precision when ldexp is implemented. bolt/runtime/instr.cpp (1 line): - line 106: // TODO: We need better linking support to make that happen. llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp (1 line): - line 30: // FIXME: we should be doing checks to make sure asm operands clang/lib/Driver/ToolChains/CommonArgs.cpp (1 line): - line 1246: // FIXME: Warn when this flag trumps some other PIC or PIE flag. clang/unittests/Tooling/Syntax/TreeTest.cpp (1 line): - line 151: // FIXME: mutate and observe no invalidation. Mutations are private for now... lldb/tools/debugserver/source/RNBRemote.cpp (1 line): - line 888: // TODO: add timeout version of GetPacket?? We would then need to pass mlir/include/mlir/Target/LLVMIR/TypeToLLVM.h (1 line): - line 47: // TODO: this should be removed when MLIR has proper data layout. llvm/tools/llvm-dwarfdump/SectionSizes.cpp (1 line): - line 118: // TODO: If the input file is an archive, print the cumulative summary of all llvm/lib/CodeGen/ImplicitNullChecks.cpp (1 line): - line 370: // TODO: This could be relaxed if we find a test case which warrants it. llvm/include/llvm/Transforms/Scalar/LoopPassManager.h (1 line): - line 78: // FIXME: These are equivalent to the default move constructor/move llvm/lib/Target/ARC/ARCISelLowering.cpp (1 line): - line 169: // TODO: Predicate these with `options.hasBitScan() ? Legal : Expand` lldb/unittests/Process/Utility/RegisterContextNetBSDTest_i386.cpp (1 line): - line 71: // TODO: This is a known bug, abridged ftag should is 8 bits in length. clang-tools-extra/clang-tidy/modernize/UseOverrideCheck.cpp (1 line): - line 136: // FIXME: Instead of re-lexing and looking for specific macros such as clang/lib/Frontend/HeaderIncludeGen.cpp (1 line): - line 179: // FIXME: Identify headers in a more robust way than comparing their name to llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp (1 line): - line 3563: // TODO: Privatization not implemented yet llvm/lib/Transforms/IPO/CrossDSOCFI.cpp (1 line): - line 81: // FIXME: verify that __cfi_check ends up near the end of the code section, compiler-rt/lib/sanitizer_common/sanitizer_report_decorator.h (1 line): - line 23: // FIXME: This is not portable. It assumes the special strings are printed to llvm/lib/CodeGen/PatchableFunction.cpp (1 line): - line 43: // TODO: Introduce an MCInstrDesc flag for this polly/include/polly/CodeGen/LoopGeneratorsKMP.h (1 line): - line 141: /// TODO: Generates only(!) dummy values. clang/unittests/AST/ASTImporterFixtures.h (1 line): - line 324: // FIXME: Generalize this to support other node kinds. clang/include/clang/Basic/DiagnosticIDs.h (1 line): - line 187: // FIXME: Replace this function with a create-only facilty like compiler-rt/lib/ubsan/ubsan_value.cpp (1 line): - line 123: // FIXME: OpenCL / NEON 'half' type. LLVM can't lower the conversion clang/lib/Basic/DiagnosticIDs.cpp (1 line): - line 521: // TODO: Can a null severity really get here? lld/COFF/Writer.cpp (1 line): - line 109: // FIXME: The COFF spec allows either a 0-sized entry to just say clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp (1 line): - line 49: // FIXME: The check can be improved to handle such cases. clang-tools-extra/clang-doc/Mapper.cpp (1 line): - line 77: // FIXME: Move setAttached to the initial comment parsing. llvm/lib/Target/WebAssembly/WebAssemblyNullifyDebugValueLists.cpp (1 line): - line 13: /// TODO Correctly handle DBG_VALUE_LISTs llvm/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp (1 line): - line 111: // TODO: Would it be better to call into the fuzzer internals directly? flang/runtime/time-intrinsic.cpp (1 line): - line 344: // TODO: An actual implementation for non Posix system should be added. lldb/source/Target/ThreadPlanStepRange.cpp (1 line): - line 208: // FIXME: This should also handle inlining if we aren't going to do inlining in mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVMPass.cpp (1 line): - line 94: // TODO: we may or may not want to include in-dialect lowering to llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp (1 line): - line 203: // FIXME: What does StreamSize ~0U mean? clang-tools-extra/clang-tidy/modernize/ConcatNestedNamespacesCheck.cpp (1 line): - line 42: // FIXME: This logic breaks when there is a comment with ':'s in the middle. llvm/tools/llvm-profgen/CSPreInliner.h (1 line): - line 33: // TODO: make sure entry count for context profile and call site llvm/include/llvm/Analysis/RegionIterator.h (1 line): - line 62: "FIXME: Currently RNSuccIterator only supports NodeRef as " clang-tools-extra/clang-include-fixer/plugin/IncludeFixerPlugin.cpp (1 line): - line 55: // FIXME: This is very limited at the moment. llvm/lib/Target/Sparc/SparcISelLowering.h (1 line): - line 192: // FIXME: We insert fences for each atomics and generate lldb/source/Target/ThreadPlanCallOnFunctionExit.cpp (1 line): - line 17: eVoteNoOpinion, eVoteNoOpinion // TODO check with Jim on these flang/lib/Evaluate/shape.cpp (1 line): - line 827: // TODO: shapes of other non-elemental intrinsic results llvm/include/llvm/Analysis/MemoryLocation.h (1 line): - line 91: // FIXME: Migrate all users to construct via either `precise` or `upperBound`, llvm/lib/CodeGen/SjLjEHPrepare.cpp (1 line): - line 329: // FIXME: Spilling this way is overkill, as it forces all uses of llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h (1 line): - line 89: /// TODO: We can further reduce this cost if we flush the chain creation llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp (1 line): - line 1274: // FIXME: Add dead flags for physical and virtual registers defined. llvm/utils/gn/secondary/llvm/unittests/BUILD.gn (1 line): - line 56: # FIXME: This matches how they are set up in the cmake build, clang-tools-extra/clangd/unittests/FormatTests.cpp (1 line): - line 278: // FIXME: we should not remove newlines here, either. clang-tools-extra/clangd/support/Cancellation.h (1 line): - line 53: // FIXME: We could add timestamps to isCancelled() and CancelledError. llvm/include/llvm/MC/MCFixupKindInfo.h (1 line): - line 28: /// FIXME This is a workaround because we don't support certain ARM llvm/lib/Transforms/Scalar/LoopVersioningLICM.cpp (1 line): - line 633: // FIXME: "llvm.mem.parallel_loop_access" annotates memory access mlir/lib/Dialect/Linalg/Transforms/ElementwiseToLinalg.cpp (1 line): - line 25: // TODO: The conversion pattern can be made to work for `any_of` here, but clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h (1 line): - line 111: // FIXME: Remove the second disjunct when we support symbolic llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp (1 line): - line 422: /// FIXME: Move to SelectionDAG? llvm/utils/gn/build/symbol_exports.gni (1 line): - line 33: # FIXME: With this setup, targets are not relinked automatically openmp/runtime/src/kmp_debugger.cpp (1 line): - line 44: /* TODO: Check punctuation for various platforms here */ mlir/include/mlir/Analysis/AffineStructures.h (1 line): - line 277: // TODO: add support for non-unit strides. llvm/lib/DebugInfo/PDB/Native/RawError.cpp (1 line): - line 9: // FIXME: This class is only here to support the transition to llvm::Error. It lldb/unittests/Core/DumpDataExtractorTest.cpp (1 line): - line 191: // FIXME: This should print the same on all platforms. llvm/include/llvm/MC/MCSectionELF.h (1 line): - line 65: // TODO Delete after we stop supporting generation of GNU-style .zdebug_* mlir/lib/Support/ToolUtilities.cpp (1 line): - line 62: // TODO: Consider making this a failure. llvm/lib/Support/Path.cpp (1 line): - line 742: // FIXME: This is emergent behavior that could be removed. libcxxabi/src/cxa_demangle.cpp (1 line): - line 9: // FIXME: (possibly) incomplete list of features that clang mangles that this libc/src/ctype/toupper.cpp (1 line): - line 16: // TODO: Currently restricted to default locale. openmp/runtime/src/kmp_str.cpp (1 line): - line 57: // TODO: __kmp_str_buf_print() can use thread local memory allocator. clang/tools/arcmt-test/arcmt-test.cpp (1 line): - line 202: // FIXME: TestResultForARC llvm/tools/llvm-strings/llvm-strings.cpp (1 line): - line 141: // TODO Replace this with OptTable API once it adds extrahelp support. llvm/lib/Transforms/Utils/LoopRotationUtils.cpp (1 line): - line 681: // TODO: if it becomes a performance bottleneck extend rotation algorithm clang/unittests/StaticAnalyzer/CallEventTest.cpp (1 line): - line 68: // TODO: What we should really be testing here is all the different varieties llvm/lib/CodeGen/GCRootLowering.cpp (1 line): - line 296: Register FrameReg; // FIXME: surely GCRoot ought to store the mlir/lib/Analysis/CallGraph.cpp (1 line): - line 121: // FIXME This isn't correct, this is only necessary for callable nodes llvm/lib/Transforms/Utils/StripGCRelocates.cpp (1 line): - line 33: // TODO: We currently do not handle gc.relocates that are in landing pads, llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h (1 line): - line 871: /// TODO: Store optimization can fold spills into other stores (including llvm/include/llvm/IR/GlobalObject.h (1 line): - line 70: /// FIXME: Remove this function once transition to Align is over. flang/runtime/namelist.cpp (1 line): - line 379: // TODO: how to deal with NaN(...) ambiguity? mlir/include/mlir-c/Registration.h (1 line): - line 57: /// TODO: Remove this function once the real registration API is finished. clang/lib/AST/FormatString.cpp (1 line): - line 126: // FIXME: Support negative field widths. llvm/tools/dsymutil/DwarfLinkerForBinary.cpp (1 line): - line 706: // FIXME: Support relocations debug_addr. llvm/lib/Transforms/Scalar/BDCE.cpp (1 line): - line 146: // FIXME: In theory we could substitute undef here instead of zero. llvm/include/llvm/IR/Operator.h (1 line): - line 408: // FIXME: To clean up and correct the semantics of fast-math-flags, FCmp llvm/unittests/Support/ThreadPool.cpp (1 line): - line 199: // FIXME: Skip some tests below on non-Windows because multi-socket systems llvm/lib/Target/MSP430/MSP430MCInstLower.cpp (1 line): - line 96: // FIXME: We would like an efficient form for this, so we don't have to do a flang/lib/Semantics/check-omp-structure.h (1 line): - line 12: // 3. TODO: invalid nesting of regions llvm/lib/Transforms/Utils/SymbolRewriter.cpp (1 line): - line 383: // TODO see if there is a more elegant solution to selecting the rewrite clang/include/clang/Tooling/Refactoring/Extract/Extract.h (1 line): - line 43: // FIXME: Account for naming collisions: llvm/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp (1 line): - line 184: // FIXME: Once this is working, then enable flag will change to a target llvm/utils/PerfectShuffle/PerfectShuffle.cpp (1 line): - line 203: // If this value has already been evaluated, it is free. FIXME: match undefs. flang/runtime/internal-unit.cpp (1 line): - line 118: // TODO: UTF-8 decoding clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp (1 line): - line 279: // TODO: https://github.com/WebAssembly/tool-conventions/issues/138 clang-tools-extra/clangd/unittests/TypeHierarchyTests.cpp (1 line): - line 527: // FIXME: We'd like this to show the implicit specializations Parent llvm/tools/bugpoint/ListReducer.h (1 line): - line 99: // TODO: Previously, this error was ignored and we treated it as if mlir/python/mlir/dialects/_std_ops_ext.py (1 line): - line 56: # TODO: consider supporting constructor "overloads", e.g., through a custom clang/include/clang/Sema/CodeCompleteOptions.h (1 line): - line 31: /// FIXME: consider supporting more completion cases with this option. llvm/bindings/ocaml/backends/backend_ocaml.c (1 line): - line 22: /* TODO: Figure out how to call these only for targets which support them. clang/lib/StaticAnalyzer/Checkers/ConversionChecker.cpp (1 line): - line 192: // TODO: maybe also check negative values with too large magnitude. libc/src/ctype/isprint.cpp (1 line): - line 15: // TODO: Currently restricted to default locale. clang-tools-extra/clang-tidy/readability/QualifiedAutoCheck.cpp (1 line): - line 23: // FIXME move to ASTMatchers lldb/include/lldb/Expression/IRExecutionUnit.h (1 line): - line 290: // TODO: Ensure that the instruction cache is flushed because llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp (1 line): - line 250: // TODO Consider a more generalized way of handling block (and also loop and llvm/include/llvm/ExecutionEngine/Orc/Speculation.h (1 line): - line 139: // FIXME : Register with Stub Address, after JITLink Fix. libcxx/include/__format/formatter_char.h (1 line): - line 29: // TODO FMT Remove this once we require compilers with proper C++20 support. llvm/include/llvm/Support/CommandLine.h (1 line): - line 1566: // FIXME: Reduce this API to a more narrow subset of std::vector clang/include/clang/Basic/OpenCLOptions.h (1 line): - line 163: // FIXME: Whether extension should accept pragma should not llvm/lib/Target/Mips/MipsCCState.cpp (1 line): - line 49: // FIXME: This is unsound because these functions could be indirectly called clang-tools-extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp (1 line): - line 339: // FIXME: Copied from clang/lib/Sema/SemaDeclCXX.cpp. llvm/lib/Bitcode/Reader/ValueList.cpp (1 line): - line 57: // FIXME: can we inherit this from ConstantExpr? llvm/lib/Target/ARM/ARMLegalizerInfo.cpp (1 line): - line 27: /// FIXME: The following static functions are SizeChangeStrategy functions clang/lib/CodeGen/CGCXXABI.cpp (1 line): - line 125: // FIXME: I'm not entirely sure I like using a fake decl just for code lld/MachO/Relocations.cpp (1 line): - line 46: // TODO: get location of reloc using something like LLD-ELF's getErrorPlace() bolt/include/bolt/Passes/ValidateInternalCalls.h (1 line): - line 74: /// FIXME: shortenInstructions and NOP sizes can impact offsets too llvm/include/llvm/Support/UnicodeCharRanges.h (1 line): - line 51: // FIXME: This could use constexpr + static_assert. This way we llvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp (1 line): - line 25: // FIXME: getProcessTriple is bogus. It returns the host LLVM was compiled on, lld/wasm/InputFiles.cpp (1 line): - line 786: // TODO Support nodeduplicate https://bugs.llvm.org/show_bug.cgi?id=50531 llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleExecutorMemoryManager.h (1 line): - line 11: // FIXME: The functionality in this file should be moved to the ORC runtime. llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp (1 line): - line 219: // TODO: this discards MAC/FMA instructions for now, let's add it later lldb/source/Commands/CommandObjectCommands.cpp (1 line): - line 1333: // FIXME: this is necessary because CommandObject::CheckRequirements() clang-tools-extra/modularize/PreprocessorTracker.cpp (1 line): - line 396: // FIXME: This doesn't support function-style macro instances flang/runtime/environment.cpp (1 line): - line 81: // TODO: Set RP/ROUND='PROCESSOR_DEFINED' from environment lld/MachO/ICF.cpp (1 line): - line 361: // FIXME: consider non-code __text sections as hashable? bolt/include/bolt/Passes/DataflowAnalysis.h (1 line): - line 330: // TODO: Pushing this in a DFS ordering will greatly speed up the dataflow clang/lib/Headers/__clang_cuda_complex_builtins.h (1 line): - line 27: // different but equivalent function versions. TODO: For OpenMP we currently mlir/include/mlir/Support/DebugAction.h (1 line): - line 147: // TODO: We currently just pick the first handler that gives us a result, llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp (1 line): - line 888: // Hexagon_TODO: Ugh! hardcoding. Is there an API that can be used? clang-tools-extra/clangd/FS.h (1 line): - line 73: /// FIXME: We should avoid encountering such paths in clangd internals by utils/bazel/llvm-project-overlay/llvm/tblgen.bzl (1 line): - line 70: # FIXME: This should be `textual_hdrs` instead of `hdrs`, but llvm/include/llvm/ExecutionEngine/Orc/ELFNixPlatform.h (1 line): - line 138: // FIXME: We should be tentatively tracking scraped sections and discarding flang/lib/Lower/ConvertType.cpp (1 line): - line 362: // FIXME: don't want to recurse forever here, but this won't happen llvm/lib/DebugInfo/PDB/Native/TpiStreamBuilder.cpp (1 line): - line 71: // FIXME: Require it. llvm/lib/Analysis/ObjCARCAliasAnalysis.cpp (1 line): - line 20: /// TODO: Theoretically we could check for dependencies between objc_* calls llvm/lib/CodeGen/AsmPrinter/DIE.cpp (1 line): - line 380: // FIXME: Is there a better way to do this? compiler-rt/lib/hwasan/hwasan_thread_list.h (1 line): - line 57: // FIXME: increase the limit to 8 once this bug is fixed: llvm/lib/DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp (1 line): - line 76: // FIXME: Consider validating (or even loading) all this in llvm/lib/CodeGen/MLRegallocEvictAdvisor.cpp (1 line): - line 45: // TODO: find a way to get this, statically, in a programmatic way. llvm/lib/Target/Mips/MipsISelLowering.h (1 line): - line 444: // FIXME: This method is not efficent for (micro)MIPS64R6. llvm/lib/IR/ModuleSummaryIndex.cpp (1 line): - line 347: // TODO: write a graphviz dumper for SCCs (see ModuleSummaryIndex::exportToDot) llvm/utils/gn/secondary/clang/lib/Driver/BUILD.gn (1 line): - line 13: # FIXME: Move Checkers.td somewhere else to clean up this layering mess. clang/include/clang/AST/UnresolvedSet.h (1 line): - line 73: // FIXME: Switch these to "= default" once MSVC supports generating move ops flang/lib/Evaluate/fold-character.cpp (1 line): - line 105: // TODO: transfer mlir/lib/Dialect/StandardOps/Utils/Utils.cpp (1 line): - line 21: /// TODO: This should probably just be a general matcher that uses matchConstant libcxx/include/wctype.h (1 line): - line 57: // TODO: clang/lib/StaticAnalyzer/Checkers/EnumCastOutOfRangeChecker.cpp (1 line): - line 97: // just return immediately. TODO: The set of casts allowed for enum range lldb/tools/driver/Driver.h (1 line): - line 87: // FIXME: When we have set/show variables we can remove this from here. llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h (1 line): - line 854: /// FIXME: Try to replace this propagation heuristic with a scheme mlir/lib/Conversion/StandardToSPIRV/StandardToSPIRVPass.cpp (1 line): - line 43: // TODO ArithmeticToSPIRV cannot be applied separately to StandardToSPIRV llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp (1 line): - line 76: // FIXME: Also mark labels when in MIPS16 mode. lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h (1 line): - line 437: // FIXME: error handling? llvm/lib/CodeGen/DetectDeadLanes.cpp (1 line): - line 280: // FIXME: PATCHPOINT instructions announce a Def that does not always exist, llvm/utils/TableGen/Types.cpp (1 line): - line 19: // TODO: The original callers only used 32 and 64 so these are the only llvm/lib/Transforms/Vectorize/VPlanValue.h (1 line): - line 204: // TODO: Currently VPUsers are used in VPBlockBase, but in the future the clang/lib/Tooling/Syntax/Tree.cpp (1 line): - line 129: // FIXME: validate the role. libc/src/__support/FPUtil/x86_64/NextAfterLongDouble.h (1 line): - line 115: // TODO: Raise floating point exceptions as required by the standard. llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp (1 line): - line 193: // TODO: We could be 'smarter' and trim these kinds of ranges such that compiler-rt/lib/ubsan/ubsan_handlers.cpp (1 line): - line 597: // FIXME: is it possible to dump the values as hex with fixed width? bolt/lib/Rewrite/DWARFRewriter.cpp (1 line): - line 1500: // TODO: In DWARF5 support ULEB128 for high_pc llvm/lib/CodeGen/BranchRelaxation.cpp (1 line): - line 480: // TODO: For multiple far branches to the same destination, there are llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h (1 line): - line 110: // FIXME: Remove LTmp once we have c++17. llvm/lib/Target/AMDGPU/SIInstrInfo.h (1 line): - line 1071: /// TODO: After GFX9 it should return a no-carry operation. llvm/include/llvm/Support/raw_ostream.h (1 line): - line 648: /// TODO: Consider removing this API. llvm/lib/Analysis/SyncDependenceAnalysis.cpp (1 line): - line 218: Stack.reserve(24); // FIXME made-up number mlir/lib/Analysis/SliceAnalysis.cpp (1 line): - line 97: // TODO: determine whether we want to recurse backward into the other lldb/source/API/SBProcess.cpp (1 line): - line 649: // FIXME: This should come from a process default. llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp (1 line): - line 208: // Hexagon_TODO: Do we need to enforce this for Hexagon? flang/include/flang/Frontend/PreprocessorOptions.h (1 line): - line 40: // TODO: When adding support for more options related to search paths, lldb/include/lldb/Symbol/LineTable.h (1 line): - line 369: // FIXME: Maybe want to find the line closest before and the line closest llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h (1 line): - line 234: // FIXME: Turn off MergeConsecutiveStores() before Instruction Selection for llvm/include/llvm/Object/ObjectFile.h (1 line): - line 302: // TODO: Actually report errors helpfully. clang/tools/clang-format/fuzzer/ClangFormatFuzzer.cpp (1 line): - line 18: // FIXME: fuzz more things: different styles, different style features. pstl/include/pstl/internal/omp/util.h (1 line): - line 47: // TODO: Figure out how to make cancelation work. mlir/include/mlir/Dialect/Linalg/IR/LinalgInterfaces.h (1 line): - line 35: // TODO: embed within `isa` if possible / natural. compiler-rt/lib/fuzzer/FuzzerUtilDarwin.cpp (1 line): - line 110: // FIXME: We probably shouldn't hardcode the shell path. mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp (1 line): - line 314: // TODO: This is based on the fact that zero use operations compiler-rt/lib/ubsan/ubsan_handlers_cxx.cpp (1 line): - line 73: // FIXME: Find the type at the specified offset, and include that llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOX86_64.h (1 line): - line 93: // FIXME: It seems this value needs to be adjusted by 4 for an effective flang/lib/Evaluate/host.h (1 line): - line 123: // TODO no mapping to host types are defined currently for 16bits float llvm/include/llvm/CodeGen/TargetSubtargetInfo.h (1 line): - line 106: // FIXME: This lets targets specialize the selector by subtarget (which lets clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp (1 line): - line 117: // TODO: Check for names identical to language keywords, and other names llvm/include/llvm/MC/MCExpr.h (1 line): - line 370: // FIXME: Remove this bit. lldb/include/lldb/Breakpoint/BreakpointSiteList.h (1 line): - line 26: // FIXME: Find a better interface for this. libc/src/ctype/isalnum.cpp (1 line): - line 16: // TODO: Currently restricted to default locale. lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp (1 line): - line 500: // FIXME figure out appropriate cleanup here. Do we delete the process? lldb/tools/compact-unwind/compact-unwind-dumper.c (1 line): - line 1158: // FIXME this is a poor heuristic - if we're greater than 16 bytes past the llvm/utils/kate/llvm.xml (1 line): - line 281: llvm/lib/Transforms/Scalar/GVNSink.cpp (1 line): - line 716: // FIXME: If any of these fail, we should partition up the candidates to flang/runtime/edit-input.h (1 line): - line 37: // TODO: double/double llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp (1 line): - line 65: // FIXME: this should really be a check on the assembler characteristics llvm/lib/Object/ModuleSymbolTable.cpp (1 line): - line 142: // FIXME: For now we just assume that all asm symbols are executable. openmp/libomptarget/plugins/remote/src/rtl.cpp (1 line): - line 34: Manager->shutdown(); // TODO: Error handle shutting down lldb/source/Plugins/SymbolFile/DWARF/AppleDWARFIndex.cpp (1 line): - line 213: // TODO: Dump index contents lldb/source/Plugins/Language/ObjC/Cocoa.cpp (1 line): - line 957: // FIXME: It seems old dates are not formatted according to NSDate's calendar clang-tools-extra/clangd/Compiler.cpp (1 line): - line 24: // FIXME: format lazily, in case vlog is off. llvm/unittests/Target/ARM/MachineInstrTest.cpp (1 line): - line 374: // TODO: Add to this list once we can handle them safely. llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h (1 line): - line 28: // TODO: DEFAULT_WEIGHT makes sense during static predication, when none of llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp (1 line): - line 306: // TODO: div and rcp are lowered to a binary op, so these we could in openmp/libompd/src/TargetValue.cpp (1 line): - line 302: // TODO: if we have not read in the complete string, we need to realloc llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h (1 line): - line 248: // FIXME: If the destination is a Thumb function (and the instruction lldb/source/Plugins/Process/Utility/HistoryThread.cpp (1 line): - line 64: // FIXME do not throw away the lock after we acquire it.. llvm/lib/Transforms/Instrumentation/CGProfile.cpp (1 line): - line 70: // TODO: Remove LazyBFI when LazyBlockFrequencyInfoPass is available in NPM. llvm/include/llvm/Remarks/RemarkLinker.h (1 line): - line 44: /// FIXME: std::set is probably not the most appropriate data structure here. clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp (1 line): - line 112: // FIXME: Alphabetical sort puts 'experimental' in the middle. clang-tools-extra/clangd/index/remote/Client.cpp (1 line): - line 162: // FIXME: For now we always return IndexContents::None regardless of whether llvm/include/llvm/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.h (1 line): - line 66: /// FIXME: This specialization should be moved into TargetProcessControlTypes.h libcxx/cmake/Modules/HandleLibCXXABI.cmake (1 line): - line 55: # TODO: libc++ shouldn't be responsible for copying the libc++abi compiler-rt/lib/profile/InstrProfilingUtil.c (1 line): - line 220: // FIXME: Use the wide variants to handle Unicode filenames. llvm/utils/gn/secondary/llvm/tools/opt/BUILD.gn (1 line): - line 33: # FIXME: Disable dead stripping once other binaries are dead-stripped. llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h (1 line): - line 145: // FIXME: This conversion should be explicit. llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp (1 line): - line 524: // FIXME: 16 bit instructions are not handled yet here. polly/www/todo.html (1 line): - line 14:

TODO

clang/lib/Tooling/Core/Replacement.cpp (1 line): - line 131: // FIXME: This should go into the Lexer, but we need to figure out how lldb/unittests/DataFormatter/StringPrinterTests.cpp (1 line): - line 49: // C++, although that's questionable (see FIXME in StringPrinter.cpp). clang/lib/Format/WhitespaceManager.h (1 line): - line 122: // FIXME: Currently this is not set correctly for breaks inside comments, as llvm/lib/DebugInfo/PDB/DIA/DIAError.cpp (1 line): - line 8: // FIXME: This class is only here to support the transition to llvm::Error. It clang-tools-extra/clang-tidy/abseil/NoInternalDependenciesCheck.cpp (1 line): - line 21: // TODO: refactor matcher to be configurable or just match on any internal lldb/utils/lui/commandwin.py (1 line): - line 102: self.win.scroll(1) # TODO: scroll more for longer commands llvm/utils/unittest/googletest/include/gtest/internal/gtest-internal.h (1 line): - line 1127: // FIXME: This implementation of ElemFromList is O(1) in instantiation depth, flang/include/flang/Runtime/descriptor.h (1 line): - line 103: // TODO: Don't waste that last word if lenParameters == 0 flang/lib/Semantics/compute-offsets.cpp (1 line): - line 307: // TODO: The size of procedure pointers is not yet known clang/include/clang/Tooling/FixIt.h (1 line): - line 55: // TODO: Add support for related syntactical elements (i.e. comments, ...). lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.cpp (1 line): - line 89: if (args.size() > 8) // TODO handle more than 8 arguments llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.h (1 line): - line 25: // TODO: Do the uniquing of Signatures here instead of ObjectFileWriter? llvm/lib/Target/AMDGPU/R600TargetTransformInfo.cpp (1 line): - line 87: // TODO: Enable this again. compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector_interface.h (1 line): - line 11: // FIXME: this is work in progress, nothing really works yet. llvm/lib/CodeGen/MachineTraceMetrics.cpp (1 line): - line 851: // FIXME: If MBB is non-null at this point, it is the last pre-computed block llvm/include/llvm/CodeGen/AsmPrinter.h (1 line): - line 551: /// FIXME: privatize to AsmPrinter. llvm/lib/Target/Lanai/LanaiTargetObjectFile.cpp (1 line): - line 81: // 21-bits, so always use large memory access for them. FIXME: This is a mlir/include/mlir/Dialect/SPIRV/IR/SPIRVTypes.h (1 line): - line 187: // TODO: Add support for Access qualifier lldb/source/DataFormatters/FormatManager.cpp (1 line): - line 528: // FIXME: maybe make this a user-tweakable setting? llvm/include/llvm/ADT/APInt.h (1 line): - line 2242: /// TODO: Do we need a mode where all bits must be set when merging down? clang-tools-extra/clang-include-fixer/SymbolIndex.h (1 line): - line 28: // FIXME: Expose the type name so we can also insert using declarations (or clang/include/clang/Serialization/ASTRecordReader.h (1 line): - line 129: Stmt *readStmtRef() { return readStmt(); /* FIXME: readSubStmt? */ } libcxx/include/__functional/function.h (1 line): - line 24: #include // TODO: replace with <__memory/__builtin_new_allocator.h> flang/runtime/edit-output.cpp (1 line): - line 556: // TODO: double/double clang/lib/Driver/ToolChains/InterfaceStubs.cpp (1 line): - line 23: // TODO: Use IFS library directly in the future. polly/lib/CodeGen/LoopGeneratorsKMP.cpp (1 line): - line 494: // TODO: This function currently creates a source location dummy. It might be clang/lib/Basic/Targets/TCE.h (1 line): - line 40: // FIXME: generic has to be added to the target clang/include/clang/Driver/InputInfo.h (1 line): - line 23: // FIXME: The distinction between filenames and inputarg here is clang/lib/CodeGen/CodeGenPGO.cpp (1 line): - line 1042: // TODO: Consider a more specific warning for this case. llvm/lib/ExecutionEngine/Orc/TargetProcess/OrcRTBootstrap.h (1 line): - line 15: // FIXME: The functionality in this file should probably be moved to an ORC llvm/include/llvm/FileCheck/FileCheck.h (1 line): - line 179: // C++17 TODO: make this a plain std::vector. llvm/lib/FuzzMutate/FuzzerCLI.cpp (1 line): - line 76: // TODO: Refactor parts common with the 'handleExecNameEncodedBEOpts' mlir/lib/Pass/PassStatistics.cpp (1 line): - line 174: // TODO: This is sort of hack as `llvm::Statistic`s can't be setup to avoid compiler-rt/lib/orc/stl_extras.h (1 line): - line 34: /// FIXME: Switch to std::apply once we can use c++17. llvm/include/llvm/Analysis/InlineAdvisor.h (1 line): - line 150: /// TODO: Consider removing the Null return scenario by incorporating the clang/utils/TableGen/ClangASTNodesEmitter.cpp (1 line): - line 206: // FIXME: Find a .td file format to allow for this to be represented better. flang/runtime/sum.cpp (1 line): - line 121: // TODO: real/complex(2 & 3) llvm/lib/IR/PassRegistry.cpp (1 line): - line 25: // FIXME: We use ManagedStatic to erase the pass registrar on shutdown. clang/include/clang/Analysis/AnalysisDeclContext.h (1 line): - line 354: // FIXME: Come up with a more type-safe way to model context-sensitivity. lldb/source/Target/ThreadPlanShouldStopHere.cpp (1 line): - line 79: // FIXME: At present the ShouldStop and the StepFromHere calculate this lldb/source/Utility/ArchSpec.cpp (1 line): - line 357: 0xFFFFFFFFu, 0xFFFFFFFFu}, // Intel MCU // FIXME: is this correct? compiler-rt/lib/ubsan/ubsan_diag.h (1 line): - line 60: // FIXME: In C++11, wrap these in an anonymous union. flang/include/flang/Frontend/TextDiagnostic.h (1 line): - line 12: // TODO: If expanding, consider sharing the implementation with Clang. openmp/libomptarget/deviceRTLs/nvptx/src/target_impl.cu (1 line): - line 162: // TODO: not sure spinning is a good idea here.. clang-tools-extra/clang-tidy/bugprone/UnusedRaiiCheck.cpp (1 line): - line 21: // TODO: If the dtor is there but empty we don't want to warn either. llvm/lib/ExecutionEngine/GDBRegistrationListener.cpp (1 line): - line 58: // FIXME: lli aims to provide both, RuntimeDyld and JITLink, as the dynamic clang/unittests/AST/DeclPrinterTest.cpp (1 line): - line 803: // TODO: should we print "virtual"? clang/lib/AST/Interp/Interp.cpp (1 line): - line 356: // FIXME: If DiagDecl is an implicitly-declared special member function mlir/lib/Dialect/Complex/IR/ComplexDialect.cpp (1 line): - line 28: // TODO complex.constant llvm/tools/llvm-exegesis/lib/Assembler.cpp (1 line): - line 165: // TODO: This only works for targets implementing LLVMTargetMachine. clang-tools-extra/clang-tidy/bugprone/SwappedArgumentsCheck.cpp (1 line): - line 75: // TODO: We could make use of the edit distance between the argument name llvm/lib/Object/SymbolSize.cpp (1 line): - line 70: // TODO: Actually report errors helpfully. llvm/cmake/modules/FindGRPC.cmake (1 line): - line 140: # FIXME: CMake docs suggest OBJECT_DEPENDS isn't needed, but I can't get llvm/lib/Target/ARC/ARCOptAddrMode.cpp (1 line): - line 225: // TODO: try to generate address preincrement mlir/lib/Target/LLVMIR/DebugTranslation.h (1 line): - line 57: /// TODO: Change this to DenseMap when we can llvm/lib/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.cpp (1 line): - line 97: // TODO: Clean detach message? llvm/lib/Support/SmallPtrSet.cpp (1 line): - line 226: // FIXME: From here on we assume that both sets have the same small size. pstl/include/pstl/internal/omp/parallel_stable_partial_sort.h (1 line): - line 26: // TODO: "Parallel partial sort needs to be implemented."); lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp (1 line): - line 93: // TODO: Log the packet we aren't handling... clang/utils/ABITest/Enumeration.py (1 line): - line 183: # FIXME: maxsize is inclusive flang/runtime/unit-map.cpp (1 line): - line 86: // TODO: Faster data structure lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_x86.cpp (1 line): - line 151: // TODO: Add logic to detect when a write happens and ignore that watchpoint clang/lib/StaticAnalyzer/Frontend/AnalyzerHelpFlags.cpp (1 line): - line 61: // FIXME: This message sounds scary, should be scary, but incorrectly states lldb/include/lldb/DataFormatters/FormatClasses.h (1 line): - line 147: // TODO: Replace this with TypeAndOrName. lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h (1 line): - line 338: // FIXME: Only one source should be able to complete the decls map. llvm/lib/MC/MCContext.cpp (1 line): - line 944: // FIXME: Simplify these by combining InlineSrcMgr & SrcMgr. clang/lib/Headers/arm_acle.h (1 line): - line 280: * FIXME: Change guard to their corrosponding __ARM_FEATURE flag when Q flag llvm/tools/llvm-readobj/Win64EHDumper.cpp (1 line): - line 183: // TODO: Actually report errors helpfully. clang/include/clang/Tooling/JSONCompilationDatabase.h (1 line): - line 81: /// FIXME: Currently FilePath must be an absolute path inside the llvm/include/llvm/MC/MCSectionCOFF.h (1 line): - line 27: // FIXME: The following fields should not be mutable, but are for now so the llvm/lib/DebugInfo/PDB/GenericError.cpp (1 line): - line 17: // FIXME: This class is only here to support the transition to llvm::Error. It mlir/include/mlir/Dialect/GPU/ParallelLoopMapper.h (1 line): - line 50: /// TODO: Replace its uses with an auto-gened method. mlir/include/mlir/IR/BuiltinOps.h (1 line): - line 41: // TODO: Remove this class in favor of using OwningOpRef directly. clang/include/clang/Sema/Initialization.h (1 line): - line 1320: // FIXME: It isn't clear whether this should ever be needed; llvm/lib/Analysis/TFUtils.cpp (1 line): - line 117: // FIXME: accept a Path as a parameter, and use it for error reporting. llvm/lib/Target/Hexagon/HexagonSubtarget.h (1 line): - line 259: // FIXME: This will use the vliw scheduler which is probably just hurting llvm/lib/Support/Windows/Program.inc (1 line): - line 66: PathExts.push_back(".exe"); // FIXME: This must be in %PATHEXT%. clang/include/clang/AST/ASTStructuralEquivalence.h (1 line): - line 115: /// FIXME: This is needed by ASTImporter and ASTStructureEquivalence. It llvm/include/llvm/ExecutionEngine/JITSymbol.h (1 line): - line 210: /// FIXME: This should be moved into a target-specific header. mlir/lib/Tools/mlir-lsp-server/LSPServer.cpp (1 line): - line 145: // TODO: We currently only support full document updates, we should refactor libc/src/string/memchr.cpp (1 line): - line 17: // TODO: Look at performance benefits of comparing words. mlir/include/mlir/IR/BuiltinAttributes.h (1 line): - line 83: // TODO: Use std::disjunction when C++17 is supported. clang/unittests/Format/QualifierFixerTest.cpp (1 line): - line 125: // TODO add test llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.h (1 line): - line 55: // TODO: Handle undef as zero mlir/lib/Analysis/Presburger/Utils.cpp (1 line): - line 176: // TODO: Visit/compute the identifiers in an order so that this doesn't llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp (1 line): - line 1134: // TODO: This is a pretty hacky way to do this. Can we do something that llvm/tools/llvm-as/llvm-as.cpp (1 line): - line 153: // TODO: Implement and call summary index verifier. llvm/lib/Target/X86/X86TileConfig.cpp (1 line): - line 159: // FIXME: We should handle this case in future. clang-tools-extra/clang-tidy/bugprone/ForwardDeclarationNamespaceCheck.cpp (1 line): - line 147: break; // FIXME: We only generate one warning for each declaration. llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp (1 line): - line 171: // FIXME: lift this restriction. llvm/unittests/IR/LegacyPassManagerTest.cpp (1 line): - line 183: // FIXME: PR4112 lldb/source/Plugins/ABI/X86/ABIWindows_x86_64.cpp (1 line): - line 715: // FIXME: This is just taking a guess, rax may very well no longer hold the mlir/lib/CAPI/Registration/Registration.cpp (1 line): - line 18: // TODO: we may not want to eagerly load here. clang-tools-extra/clang-tidy/cppcoreguidelines/SlicingCheck.cpp (1 line): - line 72: /// FIXME: this warns on all overrides outside of the sliced path in case of llvm/lib/Analysis/DivergenceAnalysis.cpp (1 line): - line 281: // FIXME Theoretically ,the 'undef' value could be replaced by any other llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp (1 line): - line 49: // FIXME: Use TargetInstrInfo::RegSubRegPair libcxx/appveyor.yml (1 line): - line 21: # TODO: Maybe re-enable this configuration? Do we want to support MSVC 2015's runtime? lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp (1 line): - line 1156: // FIXME: improve error handling flang/include/flang/Frontend/FrontendOptions.h (1 line): - line 85: /// TODO: RunPreprocessor, EmitLLVM, EmitLLVMOnly, mlir/lib/Dialect/GPU/IR/GPUDialect.cpp (1 line): - line 220: // TODO: if the kernel function has been converted to llvm/lib/Target/ARM/ARMSelectionDAGInfo.cpp (1 line): - line 208: // FIXME: We should invent a VMEMCPY pseudo-instruction that lowers to clang/lib/AST/Interp/State.h (1 line): - line 93: /// FIXME: Stop evaluating if we're in EM_ConstantExpression or llvm/lib/DWP/DWP.cpp (1 line): - line 381: // FIXME: This can be caused by bad input and should be handled as such. flang/lib/Semantics/pointer-assignment.cpp (1 line): - line 211: // TODO: what if A is VOLATILE in A%B%C? need a better test here polly/lib/Support/ISLTools.cpp (1 line): - line 548: // TODO: If Min/Max, we can also determine a minimum/maximum value if mlir/include/mlir/IR/Threading.h (1 line): - line 44: // FIXME: ThreadPool should allow work stealing to avoid deadlocks when llvm/lib/CodeGen/MachineRegionInfo.cpp (1 line): - line 54: // TODO: Slow. Should only be enabled if -stats is used. mlir/lib/Analysis/NestedMatcher.cpp (1 line): - line 96: /// 5. TODO: Optionally applies actions (lambda), in which case we will want llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp (1 line): - line 386: // TODO: The binary annotations llvm/lib/CodeGen/LiveIntervalCalc.cpp (1 line): - line 194: // FIXME: This would be a lot easier if tied early-clobber uses also llvm/utils/gn/secondary/llvm/tools/llc/BUILD.gn (1 line): - line 21: # FIXME: Disable dead stripping once other binaries are dead-stripped. llvm/lib/Transforms/Utils/CodeExtractor.cpp (1 line): - line 880: // FIXME: This should be changed to check to see if a specific flang/lib/Evaluate/fold-complex.cpp (1 line): - line 63: // TODO: dot_product, matmul, transfer llvm/lib/CodeGen/MachineLoopUtils.cpp (1 line): - line 60: // FIXME: is the use_iterator stable enough to mutate register uses lldb/source/Host/common/Editline.cpp (1 line): - line 184: // FIXME: This will be broken on Windows if we ever re-enable Editline. You llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp (1 line): - line 56: // FIXME: This is extremely conservative. This really needs to use an flang/lib/Lower/SymbolMap.h (1 line): - line 71: // This operator returns the address of the boxed value. TODO: consider mlir/lib/Dialect/Linalg/Analysis/DependenceAnalysis.cpp (1 line): - line 248: // TODO: we are not considering paths yet, just interleaved positions. libcxx/src/thread.cpp (1 line): - line 89: // TODO: grovel through /proc or check cpuid on x86 and similar llvm/lib/Target/XCore/XCoreFrameLowering.cpp (1 line): - line 37: // helper functions. FIXME: Eliminate. llvm/lib/CodeGen/RemoveRedundantDebugValues.cpp (1 line): - line 82: // TODO: Support DBG_VALUE_LIST and other debug instructions. compiler-rt/lib/memprof/memprof_linux.cpp (1 line): - line 50: // FIXME: perhaps also store abi version here? llvm/utils/TableGen/CodeGenInstruction.cpp (1 line): - line 648: // FIXME: What other attributes should we check here? Identical flang/lib/Semantics/rewrite-parse-tree.cpp (1 line): - line 48: // TODO: Can some/all of these now be enabled? clang/utils/TableGen/RISCVVEmitter.cpp (1 line): - line 147: // TODO refactor RVVIntrinsic class design after support all intrinsic llvm/lib/Transforms/Utils/AddDiscriminators.cpp (1 line): - line 281: // FIXME: should be all() llvm/lib/Target/ARM/MVETailPredication.cpp (1 line): - line 385: // TODO: This add likely already exists in the loop. llvm/tools/llvm-exegesis/lib/Target.h (1 line): - line 130: // FIXME: Eventually we should discover this dynamically. clang/lib/Driver/ToolChains/ROCm.h (1 line): - line 26: /// TODO: Generalize to handle libclc. llvm/lib/XRay/FileHeaderReader.cpp (1 line): - line 16: // FIXME: Maybe deduce whether the data is little or big-endian using some llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h (1 line): - line 29: /// TODO: Generalize the rest of the AppleAcceleratorTable interface and move it llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp (1 line): - line 280: // TODO: Possible special processing needed to detect it is related to a clang/tools/libclang/CIndexer.h (1 line): - line 119: /// FIXME: Move to llvm/Support. llvm/include/llvm/ADT/DeltaAlgorithm.h (1 line): - line 38: // FIXME: Use a decent data structure. llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp (1 line): - line 692: // FIXME: It would be helpful if we could look up the initial file and inlinee libcxx/include/__iterator/concepts.h (1 line): - line 70: // TODO: remove this once the clang bug is fixed (bugs.llvm.org/PR48173). llvm/lib/Transforms/Vectorize/VPlanLoopInfo.h (1 line): - line 35: // TODO: VPLoopInfo is initially computed on top of the VPlan plain CFG, which mlir/include/mlir/Dialect/Affine/IR/AffineOps.h (1 line): - line 71: // TODO: add additional operands to allow source and destination striding, and llvm/include/llvm/Target/TargetMachine.h (1 line): - line 203: // FIXME: Remove TargetOptions that affect per-function code generation mlir/include/mlir/ExecutionEngine/SparseTensorUtils.h (1 line): - line 25: // TODO: support such targets? clang-tools-extra/clangd/unittests/TestTU.h (1 line): - line 73: // FIXME: Change the way reading/writing modules work to allow us to keep them pstl/include/pstl/internal/omp/parallel_transform_scan.h (1 line): - line 26: // TODO: parallelize this function. llvm/tools/llvm-mca/Views/SchedulerStatistics.cpp (1 line): - line 33: // FIXME: This implementation works under the assumption that load/store queue flang/unittests/Runtime/Namelist.cpp (1 line): - line 192: // TODO: Internal NAMELIST error tests llvm/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp (1 line): - line 96: // TODO: We could refine this to captured pointers that could possibly be clang/include/clang/Basic/FileSystemStatCache.h (1 line): - line 56: // FIXME: The pointer here is a non-owning/optional reference to the clang/tools/clang-format-vs/ClangFormat/ClangFormatPackage.cs (1 line): - line 431: // FIXME: If clang-format writes enough to the standard error stream to block, mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp (1 line): - line 265: // TODO: Derive outlined function name from the parent FuncOp (support flang/lib/Parser/preprocessor.cpp (1 line): - line 825: // TODO: BOZ constants? clang/lib/Sema/ParsedAttr.cpp (1 line): - line 224: // FIXME: Include the type in the argument list. lldb/tools/lldb-vscode/JSONUtils.cpp (1 line): - line 240: // TODO: Support "arguments" scope. At the moment lldb-vscode includes the libcxx/src/filesystem/int128_builtins.cpp (1 line): - line 11: * FIXME: we steal and re-compile it into filesystem, which uses __int128_t, llvm/lib/DebugInfo/PDB/Native/SymbolCache.cpp (1 line): - line 323: // FIXME: Implement for PDB_SymType::Data. The symbolizer calls this but libclc/generic/lib/math/remquo.inc (1 line): - line 1: // TODO: Enable half precision when the sw routine is implemented clang-tools-extra/clang-tidy/bugprone/FoldInitTypeCheck.cpp (1 line): - line 91: // - FIXME: should it be a warning to fold into floating point? llvm/include/llvm/Support/Alignment.h (1 line): - line 59: /// FIXME: Remove this, make all assign operators constexpr and introduce user llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp (1 line): - line 68: // TODO: Should refine based on estimated number of accesses (e.g. does it llvm/include/llvm/MC/MCAsmMacro.h (1 line): - line 112: // FIXME: Don't compute this in advance, it makes every token larger, and is openmp/runtime/src/kmp_utility.cpp (1 line): - line 399: /* TODO: How do we get rid of this? */ compiler-rt/lib/memprof/memprof_interceptors.cpp (1 line): - line 43: // FIXME: ask frontend whether we need to return failure. mlir/lib/Dialect/Affine/Transforms/LoopUnroll.cpp (1 line): - line 30: // TODO: this is really a test pass and should be moved out of dialect clang/unittests/AST/ASTImporterVisibilityTest.cpp (1 line): - line 15: // FIXME: Better solution for this? clang-tools-extra/clang-tidy/google/TodoCommentCheck.h (1 line): - line 19: /// Finds TODO comments without a username or bug number. llvm/tools/llvm-jitlink/llvm-jitlink-executor/llvm-jitlink-executor.cpp (1 line): - line 63: // FIXME: Add TCP support for Windows. llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp (1 line): - line 52: // @TODO: Can we just disable this? llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp (1 line): - line 288: // FIXME: Add the Encoding parsed fields as needed for checks, lldb/source/Target/StackID.cpp (1 line): - line 64: // FIXME: We are assuming that the stacks grow downward in memory. That's not llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp (1 line): - line 1053: // TODO: The following really should be sunk inside LVI's core algorithm, or clang-tools-extra/clangd/unittests/DexTests.cpp (1 line): - line 835: // FIXME: Add filtering for template argument list. compiler-rt/lib/msan/msan_poisoning.cpp (1 line): - line 75: // FIXME: factor out to msan_copy_origin_aligned libclc/generic/lib/gen_convert.py (1 line): - line 239: # FIXME: This is a work around for lack of select function with clang/unittests/Tooling/Syntax/SynthesisTest.cpp (1 line): - line 179: // FIXME: Test that copy is independent of original, once the Mutations API is compiler-rt/lib/builtins/enable_execute_stack.c (1 line): - line 16: // FIXME: CMake - include when cmake system is ready. libclc/generic/lib/math/rootn.inc (1 line): - line 1: // TODO: Enable half precision when the sw routine is implemented clang/unittests/Tooling/ToolingTest.cpp (1 line): - line 199: // FIXME: Currently, this only tests that we don't exit with an error if a llvm/lib/ExecutionEngine/MCJIT/MCJIT.h (1 line): - line 242: // FIXME: Do we really need both of these? llvm/lib/ExecutionEngine/Interpreter/Interpreter.h (1 line): - line 111: // FIXME: not implemented. polly/www/video-js/video.js (1 line): - line 525: /* Wait for styles (TODO: move to _V_) llvm/lib/Target/PowerPC/PPCFrameLowering.h (1 line): - line 32: // TODO: Use local table in methods to avoid this mutable member. llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h (1 line): - line 634: /// TODO: implement dynamically sized inline memcpy, llvm/utils/gn/secondary/llvm/include/llvm/IR/BUILD.gn (1 line): - line 182: # FIXME: These are only included from .cpp files at first glance. clang/lib/Basic/DarwinSDKInfo.cpp (1 line): - line 87: // FIXME: Generalize this out beyond iOS-deriving targets. clang-tools-extra/clangd/Hover.h (1 line): - line 126: // FIXME: move to another file so CodeComplete doesn't depend on Hover. clang/include/clang/AST/OptionalDiagnostic.h (1 line): - line 51: // FIXME: Force the precision of the source value down so we don't compiler-rt/lib/interception/interception_linux.cpp (1 line): - line 38: // FIXME: Find a better way to handle renames lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp (1 line): - line 449: // TODO: remove this once we either fix library matching or avoid llvm/include/llvm/ADT/SmallSet.h (1 line): - line 178: // FIXME: Add iterators that abstract over the small and large form, and then mlir/lib/Conversion/SCFToSPIRV/SCFToSPIRVPass.cpp (1 line): - line 45: // TODO: Change SPIR-V conversion to be progressive and remove the following lld/ELF/SymbolTable.h (1 line): - line 74: // FIXME: Experiment with passing in a custom hashing or sorting the symbols llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp (1 line): - line 344: // FIXME: I'm not sure why we are first trying to split the input into clang-tools-extra/clang-tidy/android/ComparisonInTempFailureRetryCheck.cpp (1 line): - line 89: // FIXME: FixIts would be nice, but potentially nontrivial when nested macros clang/lib/StaticAnalyzer/Core/CheckerRegistryData.cpp (1 line): - line 125: // FIXME: Print available packages. mlir/include/mlir/Pass/PassOptions.h (1 line): - line 99: /// TODO: We should upstream the methods in GenericOptionParser to avoid the clang/tools/libclang/CXSourceLocation.cpp (1 line): - line 321: // FIXME: This should call SourceManager::getSpellingLoc(). compiler-rt/lib/hwasan/hwasan.cpp (1 line): - line 80: // FIXME: test and enable. llvm/utils/unittest/googletest/include/gtest/gtest.h (1 line): - line 646: // FIXME: Validate attribute names are legal and human readable. clang/lib/CodeGen/CodeGenModule.h (1 line): - line 1523: // FIXME: Hardcoding priority here is gross. llvm/lib/CodeGen/LivePhysRegs.cpp (1 line): - line 220: // FIXME: PEI should add explicit markings to return instructions libclc/generic/lib/math/pown.inc (1 line): - line 1: // TODO: Enable half precision when the sw routine is implemented llvm/lib/CodeGen/StackProtector.cpp (1 line): - line 193: // TODO: Narrow this to intrinsics that have store-like effects. llvm/include/llvm/Testing/Support/Annotations.h (1 line): - line 39: /// FIXME: the choice of the marking syntax makes it impossible to represent llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp (1 line): - line 931: // FIXME: should be called getMSBEncoding llvm/include/llvm/IR/ModuleSummaryIndexYAML.h (1 line): - line 205: // FIXME: Add YAML mappings for the rest of the module summary. llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h (1 line): - line 134: // FIXME: We should be tentatively tracking scraped sections and discarding llvm/lib/Target/WebAssembly/WebAssemblyCFGSort.cpp (1 line): - line 185: /// TODO: There are many opportunities for improving the heuristics here. llvm/lib/Target/CSKY/CSKYTargetMachine.cpp (1 line): - line 32: // TODO: Add support for big endian. mlir/lib/Dialect/SPIRV/Transforms/RewriteInsertsPass.cpp (1 line): - line 81: // TODO: handle nested composite object. flang/lib/Frontend/FrontendOptions.cpp (1 line): - line 21: // TODO: Add Cuda Fortan files (i.e. `*.cuf` and `*.CUF`). llvm/include/llvm/Analysis/ObjCARCInstKind.h (1 line): - line 24: /// TODO: This should be split into two enums: a runtime entry point enum llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp (1 line): - line 334: Chains.clear(); // FIXME: really needed ? Could not work at MF level ? clang-tools-extra/unittests/clang-change-namespace/ChangeNamespaceTests.cpp (1 line): - line 679: // FIXME: function calls to overloaded operators are not fixed now even if llvm/lib/CodeGen/MIRParser/MILexer.cpp (1 line): - line 312: // TODO: The format bb.. is supported only when it's not a llvm/lib/ObjectYAML/XCOFFEmitter.cpp (1 line): - line 267: // TODO: Calculate FileOffsetToLineNumbers when line number supported. pstl/include/pstl/internal/glue_algorithm_impl.h (1 line): - line 711: //TODO: to get rid of "distance" compiler-rt/lib/cfi/cfi.cpp (1 line): - line 287: // FIXME: reject writable if vtables are in the r/o segment. Depend on llvm/utils/unittest/googlemock/src/gmock-spec-builders.cc (1 line): - line 605: // FIXME: Print the type of the leaked object. llvm/include/llvm/MC/MCPseudoProbe.h (1 line): - line 287: // TODO: Sort by getOrdinal to ensure a determinstic section order clang-tools-extra/clangd/SemanticHighlighting.h (1 line): - line 63: // FIXME: Definition (needs findExplicitReferences support) llvm/lib/Support/Error.cpp (1 line): - line 25: // FIXME: This class is only here to support the transition to llvm::Error. It llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp (1 line): - line 15: // FIXME: Remove this when the issue is closed. lldb/bindings/interface/SBDebugger.i (1 line): - line 355: // FIXME: Once we get the set show stuff in place, the driver won't need llvm/include/llvm/CodeGen/GlobalISel/CSEMIRBuilder.h (1 line): - line 37: // TODO: Another approach for checking dominance is having two iterators and llvm/include/llvm/Support/Windows/WindowsSupport.h (1 line): - line 30: #define _WIN32_IE 0x0800 // MinGW at it again. FIXME: verify if still needed. libc/src/ctype/isalpha.cpp (1 line): - line 16: // TODO: Currently restricted to default locale. lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp (1 line): - line 427: // TODO: Implement this with supported FunctionNameType. clang-tools-extra/clangd/support/Path.h (1 line): - line 33: // FIXME: Make Path a real class with desired semantics instead. lld/ELF/Driver.cpp (1 line): - line 2505: // FIXME: These warnings can be removed when lld only uses these features llvm/lib/MCA/InstrBuilder.cpp (1 line): - line 531: // FIXME: see PR44797. We should revisit these checks and possibly move them llvm/include/llvm/ADT/CachedHashString.h (1 line): - line 94: // TODO: Use small-string optimization to avoid allocating. llvm/unittests/CodeGen/AArch64SelectionDAGTest.cpp (1 line): - line 36: // FIXME: These tests do not depend on AArch64 specifically, but we have to llvm/tools/llvm-objcopy/COFF/Writer.cpp (1 line): - line 389: // TODO: Implement direct writing to the output stream (without intermediate lldb/include/lldb/Symbol/CompilerType.h (1 line): - line 334: /// TODO: Return all matches for a given name by returning a flang/lib/Evaluate/initial-image.cpp (1 line): - line 30: // TODO: length type parameter values? compiler-rt/lib/hwasan/hwasan_allocation_functions.cpp (1 line): - line 109: // FIXME: implement, but don't call REAL(malloc_stats)! llvm/cmake/modules/CheckAtomic.cmake (1 line): - line 85: ## TODO: This define is only used for the legacy atomic operations in flang/include/flang/Runtime/cpp-type.h (1 line): - line 31: // TODO: REAL/COMPLEX(2 & 3) lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp (1 line): - line 692: // TODO: Since are using a URL to open connection we should lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.cpp (1 line): - line 260: // FIXME: This is ABI dependent, it shouldn't be hardcoded here. llvm/lib/Target/RISCV/RISCVISelLowering.h (1 line): - line 194: // FIXME: Can we replace these with ISD::VP_*? mlir/lib/Dialect/Quant/Utils/UniformSupport.cpp (1 line): - line 56: // TODO: handles sparse elements attribute libclc/generic/lib/math/sincos.inc (1 line): - line 1: // TODO: Enable half precision when sin/cos is implemented clang-tools-extra/clangd/CollectMacros.cpp (1 line): - line 42: // FIXME: This range should just cover `XX` in `#pragma mark XX` and llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp (1 line): - line 30: // FIXME: Once the integrated assembler supports full register names, tie this clang/lib/StaticAnalyzer/Checkers/CheckPlacementNew.cpp (1 line): - line 119: // TODO: use clang constant llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp (1 line): - line 189: // FIXME: This is related to the code below to reset the target options, llvm/include/llvm/Transforms/Scalar/NaryReassociate.h (1 line): - line 71: // Limitations and TODO items: llvm/include/llvm/MC/MCSection.h (1 line): - line 110: // TODO Make Name private when possible. llvm/lib/Object/COFFImportFile.cpp (1 line): - line 299: // TODO: Name.Offset.Offset here and in the all similar places below llvm/include/llvm/CodeGen/StackMaps.h (1 line): - line 159: // TODO:: we should change the STATEPOINT representation so that CC and llvm/lib/IR/DebugLoc.cpp (1 line): - line 50: // FIXME: Add a method on \a DILocation that does this work. llvm/lib/Analysis/PHITransAddr.cpp (1 line): - line 416: // FIXME: This code works, but it is unclear that we actually want to insert llvm/lib/Target/WebAssembly/Utils/WebAssemblyTypeUtilities.cpp (1 line): - line 24: // FIXME: can't use StringSwitch because wasm::ValType doesn't have a llvm/lib/ObjectYAML/YAML.cpp (1 line): - line 31: // TODO: Can we improve YAMLIO to permit a more accurate diagnostic here? clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp (1 line): - line 126: // FIXME: This should be extended to include other unreachable markers, libc/src/ctype/tolower.cpp (1 line): - line 16: // TODO: Currently restricted to default locale. bolt/lib/Passes/ReorderData.cpp (1 line): - line 13: // TODO: clang/lib/Sema/SemaStmtAttr.cpp (1 line): - line 62: // FIXME: Warn if the rule name is unknown. This is tricky because only clang/unittests/Tooling/Syntax/TreeTestBase.h (1 line): - line 38: /// FIXME: implement this efficiently and move to public syntax tree API. llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp (1 line): - line 406: // TODO: Sort the locals for better compression. llvm/lib/Transforms/ObjCARC/DependencyAnalysis.cpp (1 line): - line 208: /// TODO: Cache results? mlir/include/mlir/Dialect/SCF/SCF.h (1 line): - line 55: // TODO: Consider moving this functionality to RegionBranchOpInterface. lldb/source/API/SBThread.cpp (1 line): - line 860: // TODO: Handle SourceLocationSpec column information openmp/libomptarget/plugins/amdgpu/impl/msgpack.cpp (1 line): - line 96: // TODO: detect whether host is little endian or not, and whether the intrinsic llvm/utils/docker/scripts/llvm_checksum/project_tree.py (1 line): - line 67: # FIXME: cover all of llvm projects. llvm/unittests/MI/LiveIntervalTest.cpp (1 line): - line 265: // TODO: Construct a situation where we have intervals following a hole llvm/lib/CodeGen/LiveStacks.cpp (1 line): - line 51: // FIXME: No analysis is being done right now. We are relying on the llvm/unittests/Analysis/BasicAliasAnalysisTest.cpp (1 line): - line 26: // FIXME: This is duplicated between this file and MemorySSATest. Refactor. flang/unittests/Frontend/FrontendActionTest.cpp (1 line): - line 27: // TODO: We could use `-` for inputFilePath_, but then we'd need a way to llvm/lib/Target/M68k/GISel/M68kRegisterBankInfo.cpp (1 line): - line 26: // FIXME: TableGen this. compiler-rt/lib/asan/asan_poisoning.h (1 line): - line 49: // FIXME: Page states are different on Windows, so using the same interface bolt/include/bolt/Core/MCPlusBuilder.h (1 line): - line 271: // TODO: it would be nice to templatize this on the key type. llvm/lib/Transforms/IPO/SampleContextTracker.cpp (1 line): - line 44: // CSFDO-TODO: This could be slow, change AllChildContext so we can flang/lib/Evaluate/characteristics.cpp (1 line): - line 836: // TODO: Pass back information on why we return false llvm/include/llvm/Analysis/Delinearization.h (1 line): - line 66: /// FIXME: We could derive the result of steps 1 and 2 from a description of libc/src/ctype/iscntrl.cpp (1 line): - line 15: // TODO: Currently restricted to default locale. llvm/include/llvm/IR/BuiltinGCs.h (1 line): - line 19: /// FIXME: Collector instances are not useful on their own. These no longer clang/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp (1 line): - line 84: // TODO: ignore multiplications by 1, reject if multiplied by 0. llvm/lib/Target/X86/ImmutableGraph.h (1 line): - line 110: // FIXME: Could NodeSet and EdgeSet be templated to share code? lldb/source/Plugins/Language/ObjC/CFBasicHash.cpp (1 line): - line 83: // FIXME: Add support for multi lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp (1 line): - line 306: // FIXME: We have to check the process and make sure we actually know that clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.cpp (1 line): - line 155: // FIXME: Maybe we need a strict mode, where we always fix namespace clang/lib/Basic/IdentifierTable.cpp (1 line): - line 378: // TODO: Figure out maximum times an identifier had to probe for -stats. llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.cpp (1 line): - line 55: // TODO: move this checking to RISCVTargetLowering and RISCVAsmParser clang/lib/Frontend/ModuleDependencyCollector.cpp (1 line): - line 83: // FIXME: this shouldn't be necessary once we have FileName instances llvm/tools/llvm-ml/llvm-ml.cpp (1 line): - line 320: // FIXME: This is not pretty. MCContext has a ptr to MCObjectFileInfo and libunwind/src/Unwind-seh.cpp (1 line): - line 149: // FIXME: Indicate target frame in foreign case! llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp (1 line): - line 66: // FIXME: This method shares a lot of code with compiler-rt/lib/profile/WindowsMMap.c (1 line): - line 105: /* FIXME: No longer have access to handle from CreateFileMapping(). */ clang/unittests/Tooling/RangeSelectorTest.cpp (1 line): - line 129: // FIXME: here and elsewhere: use llvm::Annotations library to explicitly mark llvm/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h (1 line): - line 437: // FIXME: This list will need adjusting/fixing as the MC code emitter clang/lib/Driver/Multilib.cpp (1 line): - line 280: // TODO: We should consider returning llvm::Error rather than aborting. clang/lib/Frontend/ASTMerge.cpp (1 line): - line 25: // FIXME: This is a hack. We need a better way to communicate the clang-tools-extra/clang-tidy/altera/SingleWorkItemBarrierCheck.cpp (1 line): - line 22: // FIXME: Have it accept all functions but check for a parameter that gets an llvm/include/llvm/Analysis/ProfileSummaryInfo.h (1 line): - line 37: // FIXME: Provide convenience methods to determine hotness/coldness of other IR flang/lib/Parser/parsing.cpp (1 line): - line 109: out << '\n'; // TODO: DOS CR-LF line ending if necessary clang/include/clang/Basic/SourceManagerInternals.h (1 line): - line 67: // FIXME: should check the other field? llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp (1 line): - line 156: // TODO: Support negative step. clang/include/clang/AST/IgnoreExpr.h (1 line): - line 58: // FIXME: Skip MaterializeTemporaryExpr and SubstNonTypeTemplateParmExpr in mlir/include/mlir/Conversion/SCFToGPU/SCFToGPU.h (1 line): - line 38: // TODO: Consider removing this in favor of affine.for -> affine.parallel llvm/unittests/Transforms/Scalar/LoopPassManagerTest.cpp (1 line): - line 85: // FIXME: MSVC seems unable to handle a lambda argument to Invoke from within clang/lib/Tooling/Syntax/Synthesis.cpp (1 line): - line 35: // FIXME: `createLeaf` is based on `syntax::tokenize` internally, as such it clang/lib/Frontend/DiagnosticRenderer.cpp (1 line): - line 202: // FIXME: We want submodule granularity here. clang-tools-extra/clangd/index/Serialization.h (1 line): - line 61: // TODO: Support serializing Dex posting lists. lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.cpp (1 line): - line 107: // TODO parse the floating point registers llvm/include/llvm/Target/TargetLoweringObjectFile.h (1 line): - line 257: /// TODO: Implement this interface for existing ELF targets. clang/lib/Headers/__clang_cuda_cmath.h (1 line): - line 82: // FIXME: We lack an extension to customize the mangling of the variants, e.g., libc/src/ctype/isspace.cpp (1 line): - line 16: // TODO: Currently restricted to default locale. clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp (1 line): - line 448: // FIXME: Support this case by deducing the common type. clang/include/clang/Basic/TargetCXXABI.h (1 line): - line 170: // TODO: ARM-style pointers to member functions put the discriminator in llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp (1 line): - line 104: // TODO: Because all of these things are constant, we can determine whether clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp (1 line): - line 1061: // FIXME: We should treat implicitly zero-initialized _Nonnull locals as llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp (1 line): - line 817: // FIXME: this will emit individual packets, we should llvm/lib/Transforms/Utils/InjectTLIMappings.cpp (1 line): - line 117: // TODO: Add scalable variants once we're able to test them. llvm/lib/Target/AArch64/AArch64CollectLOH.cpp (1 line): - line 436: // FIXME: Implement proper liveness tracking for all registers. For now, lldb/include/lldb/Utility/Stream.h (1 line): - line 67: // FIXME: Streams should not be copyable. clang/lib/Headers/immintrin.h (1 line): - line 218: * FIXME: _Float16 type is legal only when HW support float16 operation. clang-tools-extra/clang-tidy/tool/run-clang-tidy.py (1 line): - line 10: # FIXME: Integrate with clang-tidy-diff.py llvm/lib/Target/M68k/M68kTargetObjectFile.cpp (1 line): - line 42: // FIXME do we need `.sdata` and `.sbss` explicitly? lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp (1 line): - line 81: // FIXME: Propagate this error up. clang/lib/Sema/SemaCXXScopeSpec.cpp (1 line): - line 206: // FIXME: This is wrong; we should require a (visible) definition to pstl/include/pstl/internal/omp/parallel_stable_sort.h (1 line): - line 128: // TODO: the partial sort implementation should lldb/source/Host/posix/PipePosix.cpp (1 line): - line 33: // TODO: Add more platforms that support pipe2. lldb/source/Target/SectionLoadList.cpp (1 line): - line 50: // TODO: add support for the same section having multiple load addresses lldb/tools/debugserver/source/MacOSX/MachException.cpp (1 line): - line 347: // TODO: keep retrying to reply??? libc/benchmarks/automemcpy/lib/CodeGenMain.cpp (1 line): - line 14: if (Seen.count(FD)) // FIXME: Z3 sometimes returns twice the same object. lldb/source/Plugins/Platform/Windows/PlatformWindows.h (1 line): - line 74: // FIXME not sure what the _sigtramp equivalent would be on this platform llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h (1 line): - line 24: // FIXME: Does it make sense to factor out common code with the llvm/lib/DebugInfo/GSYM/ObjectFileTransformer.cpp (1 line): - line 91: // TODO: Test this error. clang-tools-extra/clang-tidy/bugprone/BoolPointerImplicitConversionCheck.cpp (1 line): - line 56: // FIXME: We should still warn if the paremater is implicitly converted to clang-tools-extra/clang-tidy/readability/FunctionSizeCheck.cpp (1 line): - line 148: // FIXME: include them instead? Top-level lambdas are currently never counted. lldb/tools/lldb-vscode/lldb-vscode.cpp (1 line): - line 1048: // TODO: support frameID. Currently llvm/utils/gn/secondary/clang/lib/Tooling/BUILD.gn (1 line): - line 1: # FIXME: The cmake build runs DumpTool:clang-ast-dump to generate a json llvm/lib/Target/AMDGPU/SIDefines.h (1 line): - line 44: // TODO: Should this be spilt into VOP3 a and b? flang/runtime/terminator.cpp (1 line): - line 63: // TODO: These will be defined in the coarray runtime library lldb/source/Symbol/Type.cpp (1 line): - line 472: // TODO: This needs to consider the correct type system to use. clang/include/clang/Sema/Template.h (1 line): - line 483: /// FIXME: Verify that this is needed. clang-tools-extra/clang-tidy/readability/RedundantSmartptrGetCheck.cpp (1 line): - line 108: // FIXME: Match and fix if (l.get() == r.get()). mlir/lib/Target/Cpp/TranslateToCpp.cpp (1 line): - line 893: // FIXME: Add feature in `raw_indented_ostream` to ignore indent for block mlir/include/mlir/Transforms/Utils.h (1 line): - line 73: // TODO: allow extraIndices to be added at any position. clang/tools/libclang/CXCompilationDatabase.cpp (1 line): - line 9: // FIXME: do something more useful with the error message flang/include/flang/Optimizer/Builder/FIRBuilder.h (1 line): - line 89: // TODO: Delay the need of such type until codegen or find a way to use clang/include/clang/Frontend/CompilerInstance.h (1 line): - line 216: // FIXME: Eliminate the llvm_shutdown requirement, that should either be part mlir/lib/Dialect/Linalg/Transforms/Detensorize.cpp (1 line): - line 339: // TODO: For now, we give up if any of the control-flow components llvm/include/llvm/AsmParser/LLToken.h (1 line): - line 91: kw_deplibs, // FIXME: Remove in 4.0 llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp (1 line): - line 33: // FIXME: Provide proper call frame setup / destroy opcodes. llvm/lib/Target/X86/X86LowerAMXIntrinsics.cpp (1 line): - line 306: // TODO else create BitCast from x86amx to v256i32. clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.h (1 line): - line 20: /// FIXME: Add support for function references and member function references. llvm/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp (1 line): - line 281: // TODO: check for all concerned instructions. llvm/lib/ProfileData/SampleProfReader.cpp (1 line): - line 1738: // CSSPGO-TODO: Remapper is not yet supported. clang/lib/Analysis/AnalysisDeclContext.cpp (1 line): - line 370: // FIXME: copy-pasted from CGDebugInfo.cpp. clang/lib/Analysis/ThreadSafetyLogical.cpp (1 line): - line 97: // FIXME -- this should compare SExprs for equality, not pointer equality. llvm/lib/Target/AMDGPU/R600MachineScheduler.cpp (1 line): - line 84: // (TODO : use RegisterPressure) llvm/lib/MC/MCDisassembler/Disassembler.h (1 line): - line 58: // FIXME: using std::unique_ptr causes a malloc error mlir/include/mlir/Dialect/GPU/GPUDialect.h (1 line): - line 124: // TODO: consider moving this to ODS. llvm/lib/Target/VE/VERegisterInfo.cpp (1 line): - line 73: // FIXME: maybe not need to be reserved flang/lib/Frontend/TextDiagnostic.cpp (1 line): - line 15: // TODO: Similar enums are defined in clang/lib/Frontend/TextDiagnostic.cpp. lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp (1 line): - line 320: return ast_ctx.UnsignedIntTy; // FIXME: the spec is fairly vague here. mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp (1 line): - line 304: // TODO: refactor function type creation which usually occurs in std-LLVM mlir/include/mlir/IR/Diagnostics.h (1 line): - line 573: /// TODO: This should be a tunable flag. openmp/cmake/HandleOpenMPOptions.cmake (1 line): - line 13: # TODO: LLVM adds /W4 instead, check if that works for the OpenMP runtimes. clang/lib/Analysis/CocoaConventions.cpp (1 line): - line 82: // FIXME: We can memoize here if this gets too expensive. llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp (1 line): - line 175: // FIXME: handle extern 'from'. mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp (1 line): - line 210: // TODO: This should be the llvm.nvvm dialect once this is supported. llvm/lib/Analysis/CostModel.cpp (1 line): - line 125: // TODO: Use a pass parameter instead of cl::opt CostKind to determine llvm/utils/update_llc_test_checks.py (1 line): - line 100: # FIXME: We should use multiple check prefixes to common check lines. For llvm/lib/Transforms/Coroutines/CoroElide.cpp (1 line): - line 166: // FIXME: Design how to transmit alignment information for every alloca that clang/lib/Format/BreakableToken.h (1 line): - line 408: // FIXME: Revisit the decision to do this; the main reason was to support llvm/lib/Target/AArch64/AArch64RegisterInfo.h (1 line): - line 32: // FIXME: This should be tablegen'd like getDwarfRegNum is clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h (1 line): - line 46: // FIXME: Depending on whether we choose to deprecate structural symbols, llvm/include/llvm/Support/OnDiskHashTable.h (1 line): - line 165: // FIXME: Try computing a perfect hash function at this point. llvm/lib/Support/Regex.cpp (1 line): - line 167: // FIXME: We should have a StringExtras function for mapping C99 escapes. llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.cpp (1 line): - line 42: // TODO: We should be able to rewrite this using TableGen data. clang-tools-extra/clangd/GlobalCompilationDatabase.h (1 line): - line 109: // FIXME: fold this into config/context mechanism. llvm/include/llvm/CodeGen/FunctionLoweringInfo.h (1 line): - line 172: /// TODO: This isn't per-function state, it's per-basic-block state. But lldb/source/Plugins/Language/ClangCommon/ClangHighlighter.cpp (1 line): - line 177: // FIXME: This should probably set CPlusPlus, CPlusPlus11, ... too lldb/source/Plugins/Architecture/Mips/ArchitectureMips.cpp (1 line): - line 200: // FIXME: We reached here that means instruction at [target - 4] has lld/MachO/MapFile.cpp (1 line): - line 158: // TODO: when we implement -dead_strip, we should dump dead stripped symbols lld/MachO/Dwarf.h (1 line): - line 28: // TODO: implement this llvm/unittests/Transforms/Vectorize/VPlanSlpTest.cpp (1 line): - line 600: // FIXME Need to select better first value for lane0. llvm/tools/llvm-objdump/SourcePrinter.h (1 line): - line 74: // TODO: formatted_raw_ostream uses "column" to mean a number of characters llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h (1 line): - line 85: // TODO: Should add consistency tracking to ensure we encounter llvm/lib/CodeGen/LiveInterval.cpp (1 line): - line 1345: // FIXME: This could be coincidental. Should we really check for a tied llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp (1 line): - line 177: // FIXME: Consolidate duplicate definitions of RegisterRef polly/cmake/polly_macros.cmake (1 line): - line 93: # FIXME: The helper can be eliminated if the CMake version is increased clang/lib/Driver/Job.cpp (1 line): - line 379: // FIXME: Currently, if there're more than one job, we disable llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp (1 line): - line 630: // FIXME: Add support for DW_FORM_GNU_strp_alt llvm/include/llvm/CodeGen/TileShapeInfo.h (1 line): - line 70: // TODO copy propagation. libcxx/include/__format/format_to_n_result.h (1 line): - line 24: // TODO FMT Remove this once we require compilers with proper C++20 support. clang/lib/Basic/Targets/SystemZ.h (1 line): - line 86: // FIXME: Is this really right? llvm/lib/CodeGen/ParallelCG.cpp (1 line): - line 67: // FIXME: Provide a more direct way to do this in LLVM. clang/lib/Analysis/ThreadSafetyTIL.cpp (1 line): - line 299: // FIXME: clean up predecessor pointers to unreachable blocks? clang/utils/ABITest/TypeGen.py (1 line): - line 6: # TODO: llvm/utils/update_analyze_test_checks.py (1 line): - line 107: # FIXME: We should use multiple check prefixes to common check lines. For llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/ExecutorBootstrapService.h (1 line): - line 11: // FIXME: The functionality in this file should be moved to the ORC runtime. clang/lib/Sema/IdentifierResolver.cpp (1 line): - line 135: // FIXME: If D is a local extern declaration, this check doesn't make sense; clang/include/clang/Serialization/ASTBitCodes.h (1 line): - line 70: // FIXME: Turn these into classes so we can have some type safety when clang/lib/Analysis/ProgramPoint.cpp (1 line): - line 177: // FIXME: More info. llvm/include/llvm/Support/TargetSelect.h (1 line): - line 67: // FIXME: Remove this, clients should do it. lldb/source/Expression/IRMemoryMap.cpp (1 line): - line 302: // FIXME: Malloc(0) should either return an invalid address or assert, in lldb/include/lldb/Core/Disassembler.h (1 line): - line 349: // TODO: fill this in and put opcode name into Instruction::m_opcode_name, mlir/include/mlir/Support/TypeID.h (1 line): - line 114: /// TODO: This currently won't work when using DLLs as it requires properly mlir/lib/Interfaces/DataLayoutInterfaces.cpp (1 line): - line 77: // TODO: make this extensible. openmp/runtime/src/kmp_threadprivate.cpp (1 line): - line 642: /* TODO: free all this memory in __kmp_common_destroy using compiler-rt/lib/asan/asan_poisoning.cpp (1 line): - line 372: // FIXME: Two of these three checks are disabled until we fix llvm/lib/BinaryFormat/XCOFF.cpp (1 line): - line 46: // TODO: need to add a test case for "Unknown" and other SMC. compiler-rt/lib/tsan/rtl-old/tsan_mman.cpp (1 line): - line 270: // FIXME: Handle "shrinking" more efficiently, clang/lib/ARCMigrate/TransformActions.cpp (1 line): - line 27: /// FIXME: "Transactional" rewrites support should be baked in the Rewriter. llvm/lib/CodeGen/LLVMTargetMachine.cpp (1 line): - line 46: // FIXME: Having an MCSubtargetInfo on the target machine is a hack due bolt/lib/Passes/HFSort.cpp (1 line): - line 157: return Func1.samples() * Func2.size() > // TODO: is this correct? flang/runtime/descriptor.cpp (1 line): - line 136: // TODO: image synchronization compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp (1 line): - line 49: // FIXME: __cxa_demangle aggressively insists on allocating memory. llvm/include/llvm/DebugInfo/DIContext.h (1 line): - line 288: // FIXME: This is untested and unused anywhere in the LLVM project, it's lldb/source/Commands/CommandObjectTrace.cpp (1 line): - line 186: // TODO: fill in the dumping code here! llvm/tools/llvm-exegesis/lib/ParallelSnippetGenerator.cpp (1 line): - line 15: // FIXME: Load constants into registers (e.g. with fld1) to not break llvm/tools/bugpoint/BugDriver.h (1 line): - line 59: // FIXME: sort out public/private distinctions... llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp (1 line): - line 86: // FIXME: This was probably a copy to a virtual register that does have a clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp (1 line): - line 73: // FIXME: It would be nice to eventually make this diagnostic more clear, mlir/lib/Dialect/Affine/IR/AffineValueMap.cpp (1 line): - line 87: // TODO: this is better implemented on a flattened representation. clang-tools-extra/clang-tidy/abseil/RedundantStrcatCallsCheck.cpp (1 line): - line 19: // TODO: Features to add to the check: flang/include/flang/Evaluate/call.h (1 line): - line 137: // TODO: Mark legacy %VAL and %REF arguments libc/src/__support/FPUtil/x86_64/FEnvImpl.h (1 line): - line 99: // TODO: Elaborate the remaining 20 bytes as required. clang-tools-extra/clang-tidy/modernize/UseNullptrCheck.h (1 line): - line 22: // FIXME this should be CPlusPlus11 but that causes test cases to polly/include/polly/CodeGen/RuntimeDebugBuilder.h (1 line): - line 41: // TODO: Get rid of magic number 4. It it NVPTX's constant address space and openmp/runtime/tools/summarizeStats.py (1 line): - line 31: # TODO: use transforms to convert (x, y) to (r, theta) llvm/lib/Target/X86/X86LegalizerInfo.cpp (1 line): - line 26: /// FIXME: The following static functions are SizeChangeStrategy functions lld/ELF/SyntheticSections.cpp (1 line): - line 3378: // FIXME: we do not output a relocation section when --emit-relocs is used llvm/lib/MC/MCDisassembler/Disassembler.cpp (1 line): - line 271: // FIXME: Do something different for soft failure modes? compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp (1 line): - line 336: // FIXME: Omitting MAP_STACK here works in current kernels but might break llvm/lib/Analysis/CallGraphSCCPass.cpp (1 line): - line 146: // FIXME: Add getInstructionCount to CallGraphSCC. clang/lib/AST/CommentLexer.cpp (1 line): - line 493: // FIXME: It would be better to scan the text once, finding either the block llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h (1 line): - line 275: // FIXME: add these additional fields when needed. compiler-rt/include/xray/xray_log_interface.h (1 line): - line 288: /// FIXME: Updating the XRayLogImpl struct is an ABI breaking change. When we libc/src/ctype/ispunct.cpp (1 line): - line 16: // TODO: Currently restricted to default locale. lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp (1 line): - line 154: // TODO: maybe get from delegate, not needed for first pass llvm/include/llvm/PassAnalysisSupport.h (1 line): - line 53: // TODO: It's not clear that SmallVector is an appropriate data structure for clang/lib/Basic/Targets/AMDGPU.h (1 line): - line 422: // FIXME: Also should handle region. mlir/lib/Conversion/LLVMCommon/MemRefBuilder.cpp (1 line): - line 361: // TODO: consider including the actual size (including eventual padding due llvm/include/llvm/Support/FormatCommon.h (1 line): - line 33: // TODO: Make the format method return the number of bytes written, that llvm/lib/MCA/HardwareUnits/RegisterFile.cpp (1 line): - line 693: // FIXME: Normalize the instruction register count to match the clang/utils/TableGen/ClangSyntaxEmitter.cpp (1 line): - line 231: // classof. FIXME: move definition inline once ~all nodes are generated. llvm/utils/lit/MANIFEST.in (1 line): - line 1: include TODO lit.py clang/lib/AST/ParentMap.cpp (1 line): - line 74: // FIXME: This isn't correct; it assumes that multiple OpaqueValueExprs llvm/tools/dsymutil/DwarfLinkerForBinary.h (1 line): - line 128: // FIXME: Once we understood exactly if that information is needed, mlir/lib/Dialect/Quant/Utils/QuantizeUtils.cpp (1 line): - line 140: // TODO: why we need this outConvertedType? remove it? flang/unittests/Evaluate/intrinsics.cpp (1 line): - line 325: // TODO: test other intrinsics llvm/include/llvm/DebugInfo/CodeView/CodeView.h (1 line): - line 303: /// TODO: Add flag for _Atomic modifier mlir/lib/CAPI/IR/AffineMap.cpp (1 line): - line 17: // TODO: expose the C API related to `AffineExpr` and mutable affine map. compiler-rt/lib/fuzzer/FuzzerSHA1.cpp (1 line): - line 64: /* public API - prototypes - TODO: doxygen*/ clang/include/clang/Serialization/ContinuousRangeMap.h (1 line): - line 125: // FIXME: we should not allow any duplicate keys, but there are polly/lib/CodeGen/CodeGeneration.cpp (1 line): - line 355: // FIXME: We do not yet add regions for the newly generated code to the openmp/libomptarget/DeviceRTL/include/Interface.h (1 line): - line 96: /// TODO this is incomplete. llvm/include/llvm/Transforms/Utils/SplitModule.h (1 line): - line 28: /// FIXME: This function does not deal with the somewhat subtle symbol lldb/source/Host/common/SocketAddress.cpp (1 line): - line 39: // TODO: implement shortened form "::" for runs of zeros compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp (1 line): - line 958: // FIXME: We define those on Linux and Mac, but only check on Linux. clang/include/clang/Basic/LangOptions.h (1 line): - line 82: // FIXME: Unify with TUKind. llvm/include/llvm/CodeGen/ScheduleHazardRecognizer.h (1 line): - line 50: /// FIXME: remove this once MachineScheduler is the only client. lldb/unittests/Utility/StringListTest.cpp (1 line): - line 356: // FIXME: Inserting at an OOB index will always just append to the list. This mlir/lib/Dialect/SCF/Transforms/ParallelLoopTiling.cpp (1 line): - line 202: // FIXME: Add reduction support. clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp (1 line): - line 395: // FIXME: why do we need this? mlir/lib/Dialect/SPIRV/IR/SPIRVEnums.cpp (1 line): - line 89: // TODO: This is insufficient; find a better way to handle this mlir/lib/Conversion/MathToLibm/MathToLibm.cpp (1 line): - line 90: // TODO: Support Float16 by upcasting to Float32 bolt/runtime/hugify.cpp (1 line): - line 113: // TODO: allow user to control the failure behavior. llvm/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp (1 line): - line 185: // FIXME: handle extern 'from'. clang-tools-extra/clangd/unittests/TestTU.cpp (1 line): - line 46: // FIXME: this shouldn't need to be conditional, but it breaks a llvm/unittests/ExecutionEngine/MCJIT/MCJITTestAPICommon.h (1 line): - line 45: // FIXME: It isn't at all clear why this is necesasry, but without it we lldb/include/lldb/Interpreter/OptionArgParser.h (1 line): - line 33: // TODO: Use StringRef llvm/lib/Support/Debug.cpp (1 line): - line 172: // TODO: Add a handler for SIGUSER1-type signals so the user can clang/lib/Lex/ScratchBuffer.cpp (1 line): - line 39: // FIXME: Allow this to be incrementally extended. libcxx/include/__ranges/join_view.h (1 line): - line 71: _View __base_ = _View(); // TODO: [[no_unique_address]] makes clang crash! File a bug :) openmp/runtime/src/kmp_wait_release.h (1 line): - line 658: // TODO: If thread is done with work and times out, disband/free libc/src/string/memmove.cpp (1 line): - line 61: // TODO: Optimize `move_byte_xxx(...)` functions. compiler-rt/lib/asan/asan_descriptions.cpp (1 line): - line 258: // FIXME: we may want to also print the size of the access here, clang/lib/Headers/xmmintrin.h (1 line): - line 2080: /* FIXME: We have to #define this because "sel" must be a constant integer, and lldb/source/Plugins/Process/Utility/HistoryUnwind.cpp (1 line): - line 58: // FIXME do not throw away the lock after we acquire it.. llvm/include/llvm/Analysis/LoopAccessAnalysis.h (1 line): - line 116: // FIXME: If we only have loop-independent forward dependences (e.g. a llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp (1 line): - line 204: // TODO Replace this with OptTable API once it adds extrahelp support. llvm/lib/DebugInfo/Symbolize/Symbolize.cpp (1 line): - line 622: // FIXME: handle COFF object with PDB info to use PDBContext llvm/lib/MC/MCValue.cpp (1 line): - line 24: // FIXME: prints as a number, which isn't ideal. But the meaning will be llvm/lib/Demangle/ItaniumDemangle.cpp (1 line): - line 9: // FIXME: (possibly) incomplete list of features that clang mangles that this llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp (1 line): - line 224: // FIXME: Print a more useful error. We can give the current record and the clang/lib/Driver/ToolChains/WebAssembly.cpp (1 line): - line 214: // TODO: Support profiling. clang/lib/AST/NSAPI.cpp (1 line): - line 542: // FIXME: Check whether the relevant module macros are visible. clang-tools-extra/clang-tidy/openmp/ExceptionEscapeCheck.cpp (1 line): - line 65: // FIXME: We should provide more information about the exact location where clang/tools/clang-format/ClangFormat.cpp (1 line): - line 285: // FIXME: When we sort includes, we need to make sure the stream is correct llvm/lib/Target/M68k/M68kCallingConv.h (1 line): - line 37: /// FIXME: Handling on pointer arguments is not complete lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm.cpp (1 line): - line 122: // TODO: Register context for a WoW64 application? clang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h (1 line): - line 79: // FIXME: Try to resolve dependent field references. mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp (1 line): - line 102: // TODO: This can go to DRR when GPU return has operands. llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h (1 line): - line 96: /// FIXME: We should be able to remove this if/when COFF properly tracks llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h (1 line): - line 19: // FIXME: Is it easiest to fix this layering violation by moving the .inc lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp (1 line): - line 805: // TODO: change this to get the correct decl context parent.... clang/lib/Headers/xtestintrin.h (1 line): - line 19: /* FIXME: This can be an either or for RTM/HLE. Deal with this when HLE is clang/include/clang/AST/Redeclarable.h (1 line): - line 117: // FIXME: 'template' is required on the next line due to an llvm/unittests/Analysis/BranchProbabilityInfoTest.cpp (1 line): - line 79: // FIXME: This doesn't seem optimal. Since all of the cases handled by the mlir/include/mlir/TableGen/Pattern.h (1 line): - line 507: // TODO: we need a proper context manager, like MLIRContext, for managing the clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp (1 line): - line 167: // FIXME: insert after the file comment or the header guard, if present. clang/lib/StaticAnalyzer/Checkers/InterCheckerAPI.h (1 line): - line 15: // FIXME: This file goes against how a checker should be implemented either in mlir/lib/Dialect/Tosa/Transforms/TosaInferShapes.cpp (1 line): - line 237: // TODO: should also query WIP type probably clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidGotoCheck.cpp (1 line): - line 26: // TODO: This check does not recognize `IndirectGotoStmt` which is a lldb/source/API/SBDebugger.cpp (1 line): - line 74: // TODO: mangle this differently for your system - on OSX, the first clang/lib/AST/Interp/ByteCodeExprGen.cpp (1 line): - line 122: // TODO: implement other casts. llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp (1 line): - line 30: // TODO: Should largely merge with AMDGPUTTIImpl::isSourceOfDivergence. compiler-rt/lib/memprof/memprof_allocator.cpp (1 line): - line 100: u64 data_type_id; // TODO: hash of type name llvm/include/llvm/Support/MSVCErrorWorkarounds.h (1 line): - line 13: // FIXME: Kill off this header and migrate all users to Error/Expected once we llvm/lib/Transforms/Utils/RelLookupTableConverter.cpp (1 line): - line 31: // TODO: Add support for lookup tables with multiple uses. lldb/include/lldb/Core/PluginManager.h (1 line): - line 34: // FIXME: Generate me with CMake llvm/utils/TableGen/InstrInfoEmitter.cpp (1 line): - line 382: // TODO: Factor out duplicate operand lists to compress the tables. clang/lib/Tooling/Transformer/Parsing.cpp (1 line): - line 29: // FIXME: This implementation is entirely separate from that of the AST mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp (1 line): - line 406: // TODO: get rid of flattenedIdx which assumes operand order and contiguity. clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h (1 line): - line 206: // TODO: This shouldn't be public. llvm/include/llvm/CodeGen/GCMetadata.h (1 line): - line 90: // FIXME: Liveness. A 2D BitVector, perhaps? llvm/lib/Target/X86/X86IndirectThunks.cpp (1 line): - line 115: // FIXME: When LLVM moves to C++17, these can become folds lld/wasm/WriterUtils.cpp (1 line): - line 196: // TODO: Update WasmGlobalType to use ValType and remove this cast. clang/lib/AST/StmtIterator.cpp (1 line): - line 23: // FIXME: Add support for dependent-sized array types in C++? clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h (1 line): - line 386: // TODO: We could potentially change the return to an assertion to alert clang/utils/TableGen/MveEmitter.cpp (1 line): - line 878: OS << "return "; // FIXME: what if the top-level thing is void? clang/include/clang/Tooling/Refactoring/RefactoringRuleContext.h (1 line): - line 82: // FIXME: Remove when memoized. llvm/unittests/ExecutionEngine/MCJIT/MCJITTestBase.h (1 line): - line 127: // FIXME: make this a template function to support any type llvm/include/llvm/ADT/ilist_iterator.h (1 line): - line 183: /// FIXME: remove this, since there is no implicit conversion to NodeTy. clang/unittests/Tooling/RefactoringTest.cpp (1 line): - line 629: // FIXME: Figure out whether there is a way to get the SourceManger to llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleExecutorDylibManager.h (1 line): - line 12: // FIXME: The functionality in this file should be moved to the ORC runtime. libcxx/utils/libcxx/sym_check/extract.py (1 line): - line 132: # TODO: Support readelf for reading symbols from archives llvm/lib/Target/X86/X86ExpandPseudo.cpp (1 line): - line 658: // TODO: add support for YMM and ZMM here. polly/lib/Support/SCEVValidator.cpp (1 line): - line 687: // TODO: Use something smarter than equality here, e.g., gcd. clang-tools-extra/clangd/support/ThreadsafeFS.cpp (1 line): - line 88: // FIXME: Try to use a similar approach in Sema instead of relying on openmp/libomptarget/DeviceRTL/src/Tasking.cpp (1 line): - line 11: // TODO: We should not allocate and execute the task in two steps. A new API is openmp/runtime/src/kmp_os.h (1 line): - line 1073: // FIXME - maybe this should this be compiler-rt/lib/tsan/rtl/tsan_mman.cpp (1 line): - line 292: // FIXME: Handle "shrinking" more efficiently, compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp (1 line): - line 544: // Sometimes we fail to extract the stack trace (FIXME: investigate), bolt/lib/Profile/DataReader.cpp (1 line): - line 411: // TODO: Implement evaluateProfileData() for samples, checking whether mlir/include/mlir/IR/Block.h (1 line): - line 150: /// TODO: This is very specific functionality that should live somewhere else, clang/include/clang/Tooling/Refactoring/Rename/SymbolOccurrences.h (1 line): - line 59: /// FIXME: The rename verifier should notify user about this issue. clang/lib/StaticAnalyzer/Checkers/FuchsiaHandleChecker.cpp (1 line): - line 545: // TODO: add notes about successes/fails for APIs. lldb/include/lldb/Target/Target.h (1 line): - line 957: /// FIXME: When we get time we should add a way for the user to set modules llvm/lib/CodeGen/IndirectBrExpandPass.cpp (1 line): - line 165: // FIXME: This part doesn't properly recognize other uses of blockaddress llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h (1 line): - line 453: // FIXME: There must be a better way to do this then to check and fix the llvm/lib/Target/ARC/Disassembler/ARCDisassembler.cpp (1 line): - line 180: // TODO: Try to force emitter to use MCDisassembler* instead of void*. llvm/lib/CodeGen/GlobalISel/Localizer.cpp (1 line): - line 155: // FIXME: Consider doing inst duplication if live ranges are very long due to llvm/unittests/Analysis/MemorySSATest.cpp (1 line): - line 768: // FIXME: It may be easier/cleaner to just add an 'optimize uses?' flag to MSSA. llvm/include/llvm/MC/MCSymbol.h (1 line): - line 72: /// FIXME: We might be able to simplify this by having the asm streamer create llvm/include/llvm/Analysis/AliasAnalysis.h (1 line): - line 517: // FIXME: We should use a much lighter weight system than the usual clang-tools-extra/clang-tidy/misc/NoRecursionCheck.cpp (1 line): - line 74: /// FIXME: upstream this into SetVector/SmallSetVector itself. clang/unittests/Index/IndexTests.cpp (1 line): - line 62: // FIXME: add more information. llvm/lib/Target/Hexagon/HexagonISelLowering.h (1 line): - line 288: /// TODO: Handle pre/postinc as well. cmake/Modules/HandleCompilerRT.cmake (1 line): - line 23: # TODO: Support ios, tvos and watchos as well. lldb/source/Plugins/ABI/X86/ABIMacOSX_i386.cpp (1 line): - line 78: return false; // TODO this should actually never happen clang-tools-extra/modularize/ModularizeUtilities.cpp (1 line): - line 286: // FIXME: This assert can fail if there's a race between the above check clang/include/clang/Basic/PartialDiagnostic.h (1 line): - line 168: // FIXME: It should be possible to render a diagnostic to a string without lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp (1 line): - line 276: // TODO: This is not 100% correct, as the process may have been stopped with llvm/include/llvm/ExecutionEngine/Orc/Core.h (1 line): - line 1747: // FIXME: Remove this (and runOutstandingMUs) once the linking layer works llvm/utils/TableGen/FastISelEmitter.cpp (1 line): - line 860: // TODO: SignaturesWithConstantForms should be empty here. llvm/include/llvm/Support/Program.h (1 line): - line 190: /// FIXME: We use EM_CurrentCodePage to write response files for GNU tools in mlir/lib/CAPI/IR/Pass.cpp (1 line): - line 76: // TODO: errors are sent to std::errs() at the moment, we should pass in a llvm/lib/Target/AArch64/AArch64ExpandImm.cpp (1 line): - line 375: // FIXME: Add more two-instruction sequences. mlir/lib/Transforms/Inliner.cpp (1 line): - line 338: // TODO: Support inlining nested call references. compiler-rt/lib/tsan/rtl-old/tsan_rtl_mutex.cpp (1 line): - line 546: // Sometimes we fail to extract the stack trace (FIXME: investigate), llvm/unittests/DebugInfo/DWARF/DwarfGenerator.cpp (1 line): - line 356: // TODO: Add support for other content descriptions - we currently only clang/include/clang/Serialization/ASTRecordWriter.h (1 line): - line 88: // FIXME: Allow record producers to suggest Abbrevs. lldb/source/Plugins/Platform/MacOSX/PlatformRemoteDarwinDevice.cpp (1 line): - line 75: // TODO: verify that this handles shallow bundles, if not then implement one compiler-rt/lib/scudo/standalone/combined.h (1 line): - line 394: // FIXME: When the kernel provides a way to set the background tag of a lld/ELF/Target.cpp (1 line): - line 112: // TODO: Refactor getSrcMsg not to take a variable. clang-tools-extra/clangd/index/dex/dexp/Dexp.cpp (1 line): - line 95: // FIXME: Allow commands to signal failure. llvm/lib/Target/AMDGPU/AMDGPUPromoteKernelArguments.cpp (1 line): - line 79: // TODO: This load poprobably can be promoted to constant address space. clang-tools-extra/clang-tidy/readability/StringCompareCheck.cpp (1 line): - line 75: // FIXME: Add fixit to fix the code for case one and two (match1). llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h (1 line): - line 87: // FIXME: We should have just one way of saying "no register". llvm/lib/Target/M68k/M68kMCInstLower.cpp (1 line): - line 75: // FIXME We would like an efficient form for this, so we don't have to do a libcxx/src/system_error.cpp (1 line): - line 104: // FIXME maybe? 'strerror_buff_size' is likely to exceed the mlir/utils/jupyter/mlir_opt_kernel/assets/kernel.js (1 line): - line 5: // TODO: Add syntax highlighting. flang/include/flang/Evaluate/complex.h (1 line): - line 96: // TODO: unit testing llvm/lib/Target/M68k/MCTargetDesc/M68kInstPrinter.cpp (1 line): - line 14: // TODO Conform with all supported Motorola ASM syntax clang/lib/CodeGen/CGBuilder.h (1 line): - line 108: // FIXME: these "default-aligned" APIs should be removed, polly/lib/Support/ScopHelper.cpp (1 line): - line 519: // TODO: This only checks for a LoadInst->GetElementPtrInst->LoadInst llvm/lib/TableGen/TGParser.cpp (1 line): - line 2187: // FIXME: The following two loops would not be duplicated clang/lib/Tooling/ASTDiff/ASTDiff.cpp (1 line): - line 741: // TODO this is here to get a stable output, not a good heuristic clang/include/clang/AST/ExprObjC.h (1 line): - line 634: // FIXME: Maybe we should store the property identifier here, llvm/include/llvm/Object/MachO.h (1 line): - line 353: // TODO: Would be useful to have an iterator based version llvm/include/llvm/CodeGen/MachineModuleInfo.h (1 line): - line 113: // TODO: Ideally, what we'd like is to have a switch that allows emitting llvm/tools/llvm-reduce/deltas/ReduceModuleData.cpp (1 line): - line 26: // TODO: clear line by line rather than all at once lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp (1 line): - line 698: // FIXME: Without this check, occasionally when running the test suite there llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp (1 line): - line 329: // TODO: extend the pass to other vector load/store operations lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h (1 line): - line 349: // FIXME: We need to watch for the loading of Protocols, and flush the cache clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp (1 line): - line 129: // FIXME: See https://reviews.llvm.org/D80903 for discussion of libc/src/__support/FPUtil/FPBits.h (1 line): - line 46: // TODO: Change UintType name to BitsType for consistency. mlir/lib/Conversion/SCFToSPIRV/SCFToSPIRV.cpp (1 line): - line 64: // FIXME: We explicitly keep a reference of the type converter here instead of compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cpp (1 line): - line 128: // FIXME: buffer extra output. This would need a thread-local buffer, which llvm/bindings/go/llvm/InstrumentationBindings.h (1 line): - line 22: // FIXME: These bindings shouldn't be Go-specific and should eventually move to llvm/tools/llvm-xray/trie-node.h (1 line): - line 71: // TODO: Unroll into iterative and explicit stack for efficiency. libc/src/fenv/fegetexceptflag.cpp (1 line): - line 18: // TODO: Add a compile time check to see if the excepts actually fit in flagp. llvm/lib/Target/AMDGPU/GCNIterativeScheduler.cpp (1 line): - line 435: // TODO: assert Regions are sorted descending by pressure llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp (1 line): - line 715: // FIXME: Does it make sense for value to be negative? llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h (1 line): - line 34: /// TODO: This class could be generalized to know about other ObjC-specific clang/lib/Analysis/CloneDetection.cpp (1 line): - line 352: // FIXME: Maybe we can do this in-place and don't need this additional vector. mlir/lib/Dialect/PDL/IR/PDLTypes.cpp (1 line): - line 47: // FIXME: This ends up with a double error being emitted if `RangeType` also mlir/include/mlir/IR/Attributes.h (1 line): - line 18: // TODO: Remove this when all usages have been replaced with StringAttr. lldb/source/Plugins/ABI/X86/ABISysV_i386.cpp (1 line): - line 102: return false; // TODO this should actually never happen clang/unittests/ASTMatchers/ASTMatchersInternalTest.cpp (1 line): - line 202: // FIXME: Figure out how to specify paths so the following tests pass on clang/lib/Tooling/Refactoring/Lookup.cpp (1 line): - line 126: // FIXME: consider using namespaces. llvm/include/llvm/CodeGen/ModuloSchedule.h (1 line): - line 259: /// FIXME: InstrChanges is opaque and is an implementation detail of an clang/tools/clang-format/clang-format-sublime.py (1 line): - line 58: # FIXME: Without the 10ms delay, the viewport sometimes jumps. llvm/lib/Transforms/IPO/BarrierNoopPass.cpp (1 line): - line 15: // FIXME: This is a huge HACK. This should be removed when the pass manager's llvm/lib/Object/ArchiveWriter.cpp (1 line): - line 270: // TODO: Actually report errors helpfully. llvm/include/llvm/CodeGen/SelectionDAGISel.h (1 line): - line 103: /// FIXME: This is a static member function because the MSP430/X86 llvm/lib/Target/M68k/MCTargetDesc/M68kAsmBackend.cpp (1 line): - line 172: // TODO Newer CPU can use 32 bit offsets, so check for this when ready llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp (1 line): - line 105: // FIXME: Collect all failing symbols before erroring out. clang/www/analyzer/alpha_checks.html (1 line): - line 511: lldb/unittests/Utility/FlagsTest.cpp (1 line): - line 105: // FIXME: Should Flags assert on Test(eFlag0 | eFlag1) (more than one bit)? lldb/source/Plugins/ABI/ARM/ABISysV_arm.cpp (1 line): - line 1830: // TODO: Handle thumb lldb/include/lldb/Utility/GDBRemote.h (1 line): - line 46: // TODO: Convert this function to take ArrayRef mlir/include/mlir-c/ExecutionEngine.h (1 line): - line 44: /// TODO: figure out other options. openmp/runtime/src/kmp_atomic.h (1 line): - line 1566: // !!! TODO: check if we need a workaround here llvm/lib/Target/TargetMachine.cpp (1 line): - line 52: // FIXME: This function needs to go away for a number of reasons: llvm/include/llvm/Analysis/StackSafetyAnalysis.h (1 line): - line 44: // TODO: Add useful for client methods. llvm/lib/Analysis/ModuleSummaryAnalysis.cpp (1 line): - line 499: // FIXME: refactor this to use the same code that inliner is using. llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp (1 line): - line 44: // TODO: Make RISCVInstPrinter::getRegisterName non-static so that this can a llvm/lib/MC/MCInstrInfo.cpp (1 line): - line 22: // FIXME: it would be nice to include the subtarget feature here. compiler-rt/lib/tsan/go/tsan_go.cpp (1 line): - line 159: // FIXME: Not necessary thread 0. bolt/include/bolt/Core/BinarySection.h (1 line): - line 169: // TODO: pass Data as StringRef/ArrayRef? use StringRef::copy method. clang-tools-extra/clangd/include-mapping/cppreference_parser.py (1 line): - line 137: # FIXME: use these as a fallback rather than ignoring entirely. llvm/utils/gn/build/write_library_dependencies.py (1 line): - line 10: # FIXME: This should get outputs from gn. mlir/lib/Dialect/MemRef/Transforms/ResolveShapedTypeResultDims.cpp (1 line): - line 135: // TODO: Move tensor::DimOp pattern to the Tensor dialect. mlir/lib/Conversion/GPUToVulkan/ConvertLaunchFuncToVulkanCalls.cpp (1 line): - line 162: // TODO: Use an associative array to support multiple vulkan launch calls. lldb/source/Target/ABI.cpp (1 line): - line 81: // FIXME: This code is duplicated from Target::EvaluateExpression, and it is clang-tools-extra/clang-tidy/abseil/StrCatAppendCheck.cpp (1 line): - line 41: // TODO: str += StrCat(...) flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp (1 line): - line 81: // TODO: clang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.cpp (1 line): - line 97: // FIXME: Take care of library symbols from the global namespace. compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp (1 line): - line 272: // TODO: consider adding an optional runtime check for an unknown (untested) mlir/include/mlir/Dialect/Affine/IR/AffineValueMap.h (1 line): - line 85: // TODO: make these trailing objects? flang/lib/Optimizer/Transforms/MemRefDataFlowOpt.cpp (1 line): - line 42: // FIXME: This algorithm has a bug. It ignores escaping references between a llvm/tools/llvm-cov/CoverageFilters.h (1 line): - line 82: // TODO: Remove this class when -name-whitelist option is removed. llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h (1 line): - line 32: // FIXME: Once we get to more remarks like this one, we need to re-evaluate how llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h (1 line): - line 38: // TODO: Move HSAMetadataStream to AMDGPUTargetStreamer. llvm/lib/Target/Lanai/LanaiFrameLowering.cpp (1 line): - line 104: // FIXME: This appears to be overallocating. Needs investigation. lldb/include/lldb/lldb-defines.h (1 line): - line 109: // FIXME: I'm sure there's some #define magic that can create all 32 sets on the compiler-rt/lib/sanitizer_common/sanitizer_allocator_internal.h (1 line): - line 21: // FIXME: Check if we may use even more compact size class map for internal lldb/source/Plugins/InstrumentationRuntime/ASan/InstrumentationRuntimeASan.cpp (1 line): - line 58: // FIXME: This shouldn't include the "dylib" suffix. mlir/lib/Dialect/Traits.cpp (1 line): - line 213: // TODO: should replace with printing shape more uniformly across here and llvm/tools/llvm-exegesis/lib/SchedClassResolution.cpp (1 line): - line 48: // FIXME: Move this to MCSubtargetInfo and use it in llvm-mca. llvm/include/llvm/Config/abi-breaking.h.cmake (1 line): - line 35: // FIXME: Implement checks without weak. clang-tools-extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp (1 line): - line 96: // FIXME: We currently only support checking if B is accessible base class clang/unittests/AST/CommentTextTest.cpp (1 line): - line 43: // FIXME: technically, merged that we set here is incorrect, but that compiler-rt/lib/hwasan/hwasan_report.cpp (1 line): - line 687: // TODO: when possible, try to print heap-use-after-free, etc. mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp (1 line): - line 102: // TODO: Remove once we support replacing non-root ops. libclc/generic/lib/math/clc_fma.cl (1 line): - line 76: // FIXME: Detecting a == 0 || b == 0 above crashed GCN isel libc/src/__support/CPP/Limits.h (1 line): - line 23: // TODO: Add NumericLimits specializations as needed for new types. llvm/utils/lit/lit/cl_arguments.py (1 line): - line 47: # FIXME: I find these names very confusing, although I like the llvm/lib/Analysis/RegionInfo.cpp (1 line): - line 90: // TODO: Slow. Should only be enabled if -stats is used. llvm/include/llvm/Support/GraphWriter.h (1 line): - line 79: "FIXME: Currently GraphWriter requires the NodeRef type to be " clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp (1 line): - line 404: // FIXME: Print contexts of all processing files instead of the first one. compiler-rt/lib/orc/compiler.h (1 line): - line 44: // TODO: remove this workaround when PR33518 is resolved. lldb/unittests/UnwindAssembly/x86/Testx86AssemblyInspectionEngine.cpp (1 line): - line 1734: // FIXME add test for lea_rsp_pattern_p llvm/lib/ExecutionEngine/JITLink/ELFLinkGraphBuilder.h (1 line): - line 212: // FIXME: Make STV_DEFAULT symbols pre-emptible? This probably needs clang-tools-extra/clang-tidy/bugprone/ExceptionEscapeCheck.cpp (1 line): - line 73: // FIXME: We should provide more information about the exact location where llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h (1 line): - line 349: /// TODO: Uniquing filenames across all function records may be a performance llvm/lib/MC/MCAsmInfoDarwin.cpp (1 line): - line 79: // FIXME: Change this once MC is the system assembler. lldb/source/Target/ThreadList.cpp (1 line): - line 233: // FIXME: It is possible that running code could cause new threads mlir/tools/mlir-tblgen/CodeGenHelpers.cpp (1 line): - line 133: /// TODO: Unique constraints for adaptors. However, most Adaptor::verify clang/lib/Basic/Targets/NVPTX.cpp (1 line): - line 164: // TODO: nvcc emits a warning when using long double on device; we should llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp (1 line): - line 152: // FIXME: There is a case that occurs in practice, like this: llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h (1 line): - line 84: /// FIXME: Ideally re-used instructions would not be added to llvm/lib/Target/M68k/M68kSubtarget.h (1 line): - line 135: /// TODO this must be controlled by options like -malign-int and -mshort clang/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h (1 line): - line 51: // FIXME: This is a workaround to ensure that the correct checerk name is lldb/source/Target/RemoteAwarePlatform.cpp (1 line): - line 121: // TODO find out why exe_module_sp might be NULL llvm/tools/llvm-cov/CoverageFilters.cpp (1 line): - line 43: // TODO: remove this when -name-whitelist option is removed. llvm/include/llvm/Support/DebugCounter.h (1 line): - line 68: // FIXME: Currently, counter registration is required to happen before command clang-tools-extra/clangd/index/Background.h (1 line): - line 133: // FIXME: it should watch for changes to files on disk. clang-tools-extra/clangd/ExpectedTypes.cpp (1 line): - line 40: // FIXME: also drop qualifiers from pointer types, e.g. 'const T* => T*' llvm/lib/IR/AutoUpgrade.cpp (1 line): - line 940: // TODO: We could add lohi.i2d. lldb/source/Symbol/DWARFCallFrameInfo.cpp (1 line): - line 797: // TODO: Figure out how we should handle this. llvm/include/llvm/MC/MCLinkerOptimizationHint.h (1 line): - line 13: // FIXME: LOH interface supports only MachO format at the moment. clang/lib/Frontend/PrecompiledPreamble.cpp (1 line): - line 637: // FIXME: This is a hack so that we can override the preamble file during llvm/cmake/modules/AddSphinxTarget.cmake (1 line): - line 77: # FIXME: We might not ship all the tools that these man pages describe llvm/include/llvm-c/lto.h (1 line): - line 578: * FIXME: This doesn't really belong here. clang/include/clang/Sema/CodeCompleteConsumer.h (1 line): - line 877: // FIXME: Add assert to check FixIts range requirements. clang/include/clang/AST/Stmt.h (1 line): - line 3013: // FIXME: If we wanted to, we could allocate all of these in one big array. clang/include/clang/Analysis/PathDiagnostic.h (1 line): - line 577: // TODO: Should we allow multiple diagnostics? llvm/include/llvm/Transforms/IPO/Inliner.h (1 line): - line 152: // TODO: Clean this up so we only have one ModulePassManager. clang/unittests/Tooling/RecursiveASTVisitorTests/DeclRefExpr.cpp (1 line): - line 95: /* FIXME: According to Richard Smith this is a bug in the AST. llvm/lib/CodeGen/MIRCanonicalizerPass.cpp (1 line): - line 388: // TODO: Consider dropping this. Dropping kill defs is probably not llvm/lib/CodeGen/XRayInstrumentation.cpp (1 line): - line 190: // FIXME: Maybe make this smarter, and see whether the loops are dependent clang/lib/Format/MacroExpander.cpp (1 line): - line 185: // FIXME: Potentially fully abort the expansion instead. llvm/lib/Transforms/Scalar/ConstraintElimination.cpp (1 line): - line 275: // TODO: also use this scan to queue conditions to simplify, so we can flang/lib/Evaluate/fold-logical.cpp (1 line): - line 162: // TODO: dot_product, is_iostat_end, pstl/include/pstl/internal/parallel_impl.h (1 line): - line 39: // TODO: find out what is better here: parallel_for or parallel_reduce lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp (1 line): - line 691: // TODO: This method returns a vector of FileSpec's because a clang/include/clang/Basic/Module.h (1 line): - line 613: /// FIXME: This may return incorrect results for (submodules of) the clang/lib/Headers/__clang_cuda_runtime_wrapper.h (1 line): - line 128: // FIXME: redefine these as __device__ functions. clang/unittests/Tooling/RecursiveASTVisitorTestTypeLocVisitor.cpp (1 line): - line 82: // FIXME: It would be nice to have information about subtypes of invalid type utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/config.h (1 line): - line 376: * FIXME: We should consider moving other platform defines to use this technique llvm/include/llvm/ADT/Sequence.h (1 line): - line 107: // TODO: Make this `inline` once we update to C++17 to avoid ORD violations. libclc/generic/lib/math/clc_sw_unary.inc (1 line): - line 5: // TODO: Enable half precision when the sw routine is implemented clang-tools-extra/clangd/unittests/IndexTests.cpp (1 line): - line 272: // FIXME: Add filtering for template argument list. llvm/tools/llvm-dwarfdump/Statistics.cpp (1 line): - line 371: // FIXME: In section 2.6.2 of the DWARFv5 spec it says that "The clang/lib/ARCMigrate/ObjCMT.cpp (1 line): - line 126: // FIXME: StringSet should have insert(iter, iter) to use here. llvm/lib/ObjectYAML/MinidumpEmitter.cpp (1 line): - line 127: // TODO: This usually (always?) matches the thread context of the llvm/lib/Target/Mips/Mips16ISelLowering.cpp (1 line): - line 326: // FIXME: This is something that probably should be in a different source file llvm/unittests/Support/NativeFormatTests.cpp (1 line): - line 140: // TODO: The prefix should not be counted in the precision. But unfortunately clang/utils/modfuzz.py (1 line): - line 122: # FIXME: Clean out output directory first. clang/lib/CodeGen/CGLoopInfo.cpp (1 line): - line 407: // TODO: Warn if there are transformations after full unrolling. mlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp (1 line): - line 85: // TODO: This should be the llvm.rocdl dialect once this is supported. clang/unittests/Format/FormatTestJava.cpp (1 line): - line 566: // FIXME: String literal breaking is currently disabled for Java and JS, as it lldb/source/Symbol/SymbolFile.cpp (1 line): - line 57: // TODO: Load any plug-ins in the appropriate plug-in search paths and llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h (1 line): - line 109: /// FIXME: We really should refactor CFL to use the analysis more heavily, and clang-tools-extra/clang-tidy/readability/FunctionCognitiveComplexityCheck.cpp (1 line): - line 386: // FIXME: "each method in a recursion cycle" Increment is not implemented. llvm/lib/MC/SubtargetFeature.cpp (1 line): - line 71: // FIXME: This is an inelegant way of specifying the features of a llvm/lib/Target/PowerPC/PPCISelLowering.h (1 line): - line 258: // FIXME: Remove these once the ANDI glue bug is fixed: lld/MachO/OutputSection.h (1 line): - line 62: // TODO investigate refactoring synthetic section finalization logic into lld/MachO/Symbols.h (1 line): - line 217: // TODO: cap maximum alignment llvm/include/llvm/Transforms/Utils/LoopUtils.h (1 line): - line 485: /// FIXME: Consider changing the order in LoopInfo. llvm/utils/TableGen/TableGenBackends.h (1 line): - line 48: // FIXME: Reorganize TableGen so that build dependencies can be more llvm/lib/Transforms/Scalar/SCCP.cpp (1 line): - line 594: // TODO: We should be able to take the intersection of the existing clang/lib/Frontend/SerializedDiagnosticPrinter.cpp (1 line): - line 743: // FIXME: It's slightly absurd to create a new diagnostics engine here, but compiler-rt/lib/msan/msan_interface_internal.h (1 line): - line 20: // FIXME: document all interface functions. lldb/source/Interpreter/CommandInterpreter.cpp (1 line): - line 2470: // TODO: Add Stream support. llvm/utils/TableGen/OptEmitter.cpp (1 line): - line 20: // FIXME: Make this take StringRefs instead of null terminated strings to llvm/tools/llvm-objdump/ELFDump.cpp (1 line): - line 93: // TODO: test this error. clang-tools-extra/clangd/IncludeCleaner.cpp (1 line): - line 231: // FIXME: support stdlib macros llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp (1 line): - line 161: // TODO: unclear if we need to be as conservative about atomics llvm/lib/Target/Mips/MipsTargetObjectFile.cpp (1 line): - line 151: // TODO: Could also support "weak" symbols as well with ".gnu.linkonce.s.*" clang/lib/Headers/__clang_cuda_intrinsics.h (1 line): - line 448: // TODO: Implement these as intrinsics, so the backend can work its magic on clang/unittests/Tooling/Syntax/TreeTestBase.cpp (1 line): - line 67: // FIXME: this code is almost the identical to the one in TokensTest. Share llvm/tools/llvm-c-test/include-all.c (1 line): - line 15: // FIXME: Autogenerate this list clang/lib/StaticAnalyzer/Checkers/CheckObjCInstMethSignature.cpp (1 line): - line 32: // looking at subtyping relationships. FIXME: Future patch. polly/lib/Exchange/JSONExporter.cpp (1 line): - line 792: // TODO: JSONImporter should throw away DependenceInfo. compiler-rt/lib/ubsan/ubsan_value.h (1 line): - line 19: // FIXME: Move this out to a config header. lldb/source/Plugins/ObjectFile/ELF/ELFHeader.cpp (1 line): - line 190: case EM_IAMCU: // FIXME: is this correct? mlir/include/mlir/IR/OperationSupport.h (1 line): - line 475: // TODO: expand to handle case where values appended are in order & after clang-tools-extra/clang-tidy/google/TodoCommentCheck.cpp (1 line): - line 22: TodoMatch("^// *TODO *(\\(.*\\))?:?( )?(.*)$") {} clang/lib/Driver/ToolChains/FreeBSD.cpp (1 line): - line 316: // FIXME: For some reason GCC passes -lgcc and -lgcc_s before adding llvm/tools/llvm-profgen/ProfiledBinary.h (1 line): - line 150: // TODO: If an inlinee is completely optimized away, ideally we should have zero llvm/lib/Analysis/AliasAnalysisSummary.h (1 line): - line 147: // FIXME: Do we need to guard against integer overflow here? llvm/utils/update_test_checks.py (1 line): - line 108: # FIXME: We should use multiple check prefixes to common check lines. For llvm/lib/Object/Error.cpp (1 line): - line 22: // FIXME: This class is only here to support the transition to llvm::Error. It lldb/source/Interpreter/CommandAlias.cpp (1 line): - line 33: // TODO: Find a way to propagate errors in this CommandReturnObject up the llvm/utils/gn/build/symlink_or_copy.py (1 line): - line 22: # FIXME: This should not check the host platform but the target platform lldb/tools/debugserver/source/MacOSX/i386/DNBArchImplI386.cpp (1 line): - line 1230: // TODO: Test this and come back. clang/lib/Basic/Targets/Mips.h (1 line): - line 301: // FIXME: We should automatically clobber $1 only for inline assembly code clang/include/clang/Index/IndexSymbol.h (1 line): - line 110: // FIXME: this is not mirrored in CXSymbolRole. lldb/include/lldb/Target/ThreadPlan.h (1 line): - line 172: // FIXME: ControllingPlan & OkayToDiscard aren't really orthogonal. llvm/lib/Target/PowerPC/PPCRegisterInfo.h (1 line): - line 66: /// FIXME: move this to PPCInstrInfo class. mlir/include/mlir/Dialect/StandardOps/Transforms/FuncConversions.h (1 line): - line 68: /// TODO Try to get rid of this function and invert the meaning of llvm/include/llvm/Support/ThreadPool.h (1 line): - line 68: // TODO: misleading legacy name warning! llvm/lib/Analysis/LoopCacheAnalysis.cpp (1 line): - line 561: // FIXME: Both positive and negative access functions will be placed llvm/lib/Transforms/Scalar/LoopDistribute.cpp (1 line): - line 160: // FIXME: We currently don't use control-dependence but simply include all libc/benchmarks/automemcpy/lib/ResultAnalyzerMain.cpp (1 line): - line 129: // TODO: Implement tie breaking algorithm. mlir/lib/Tools/PDLL/Parser/Parser.cpp (1 line): - line 412: // FIXME: Decide how to allow/support converting a single result to multiple, mlir/lib/Dialect/SPIRV/IR/TargetAndABI.cpp (1 line): - line 201: // TODO: Physical64 is hard-coded here, but some information should come llvm/include/llvm/Support/ScaledNumber.h (1 line): - line 655: // TODO: implement directly, rather than relying on inverse. Inverse is clang-tools-extra/clang-tidy/altera/StructPackAlignCheck.cpp (1 line): - line 72: // FIXME: Recommend a reorganization of the struct (sort by StructField compiler-rt/lib/sanitizer_common/sanitizer_bvgraph.h (1 line): - line 67: // FIXME: investigate how much we can prove about this race being "benign". llvm/lib/DebugInfo/MSF/MSFError.cpp (1 line): - line 18: // FIXME: This class is only here to support the transition to llvm::Error. It compiler-rt/include/sanitizer/common_interface_defs.h (1 line): - line 228: // FIXME: implement more hooks. llvm/include/llvm/Support/thread.h (1 line): - line 48: // FIXME: use std::apply when C++17 is allowed. mlir/include/mlir/Analysis/NestedMatcher.h (1 line): - line 76: /// 3. TODO: optionally applies actions (lambda). llvm/include/llvm/XRay/Graph.h (1 line): - line 333: // TODO: implement constructor to enable Graph Initialisation.\ llvm/include/llvm/Demangle/StringView.h (1 line): - line 9: // FIXME: Use std::string_view instead when we support C++17. llvm/lib/Transforms/IPO/GlobalSplit.cpp (1 line): - line 91: // FIXME: See if we can use DW_OP_piece to preserve debug metadata here. flang/lib/Optimizer/Support/FIRContext.cpp (1 line): - line 60: // TODO: normalize the triple? llvm/utils/TableGen/GlobalISel/GIMatchDag.h (1 line): - line 82: // FIXME: This is a temporary measure while we still accept arbitrary code openmp/libomptarget/DeviceRTL/src/Configuration.cpp (1 line): - line 25: // TODO: We want to change the name as soon as the old runtime is gone. llvm/lib/ProfileData/SampleProf.cpp (1 line): - line 58: // FIXME: This class is only here to support the transition to llvm::Error. It clang/unittests/Rename/RenameMemberTest.cpp (1 line): - line 75: // FIXME: support renaming static variables for template classes. clang/lib/AST/Interp/Interp.h (1 line): - line 415: // TODO: emit warning. clang/lib/Lex/TokenLexer.cpp (1 line): - line 196: // FIXME: Should we keep track within VCtx that we did or didnot compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp (1 line): - line 82: // FIXME: This works as a short-term solution, but this code really shouldn't be compiler-rt/lib/asan/asan_fake_stack.cpp (1 line): - line 270: // TODO: remove this method and fix tests that use it by setting llvm/lib/CodeGen/RegAllocPBQP.cpp (1 line): - line 803: // FIXME: we create DefaultVRAI here to match existing behavior pre-passing llvm/lib/Analysis/CallPrinter.cpp (1 line): - line 30: // FIXME: clang/lib/Frontend/ChainedIncludesSource.cpp (1 line): - line 178: // TODO: Pass through the existing MemoryBuffer instances instead of clang/lib/CodeGen/CGCXX.cpp (1 line): - line 151: // FIXME: An extern template instantiation will create functions with llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp (1 line): - line 112: // FIXME: Make this constexpr once all compilers are smart enough to do it. llvm/include/llvm-c/Orc.h (1 line): - line 628: // TODO: ImplSymbolMad SrcJDLoc lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp (1 line): - line 487: // FIXME: We should add the copied decl to the 'decls' list. This would lldb/source/Breakpoint/BreakpointResolverFileRegex.cpp (1 line): - line 110: // TODO: Handle SourceLocationSpec column information clang/lib/StaticAnalyzer/Frontend/ModelInjector.h (1 line): - line 59: // FIXME: double memoization is redundant, with memoization both here and in llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp (1 line): - line 341: // FIXME: Do something with these! clang/include/clang/Basic/AttributeCommonInfo.h (1 line): - line 148: // FIXME: Use a better mechanism to determine this. llvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp (1 line): - line 292: // TODO: See if we can do a better error than just "invalid ...". llvm/include/llvm/Support/Automaton.h (1 line): - line 165: /// FIXME: This uses a std::map because ActionT can be a pair type including llvm/unittests/Support/TimerTest.cpp (1 line): - line 22: // FIXME: Put this somewhere in Support, it's also used in LockFileManager. llvm/include/llvm/CodeGen/PBQP/Graph.h (1 line): - line 589: // TODO: Can this be for-each'd? bolt/lib/Passes/Instrumentation.cpp (1 line): - line 467: // Ignore this case. FIXME: force fixBranches() to preserve the offset. llvm/cmake/modules/FindZ3.cmake (1 line): - line 88: # TODO: print message warning that we couldn't find a compatible lib? clang/lib/Format/Encoding.h (1 line): - line 48: // FIXME: Figure out the correct way to handle this in the presence of both llvm/lib/Target/Sparc/SparcAsmPrinter.cpp (1 line): - line 257: // FIXME: Debug Value. libc/src/string/strcmp.cpp (1 line): - line 15: // TODO: Look at benefits for comparing words at a time. llvm/tools/llvm-objcopy/MachO/MachOWriter.cpp (1 line): - line 744: // TODO: Implement direct writing to the output stream (without intermediate clang-tools-extra/clang-tidy/utils/UsingInserter.cpp (1 line): - line 49: // FIXME: This declaration could be masked. Investigate if polly/lib/External/isl/imath/gmp_compat.h (1 line): - line 173: /* TODO: Need to handle 0 values better. GMP prints 0/4 instead of 0.*/ clang-tools-extra/clang-include-fixer/find-all-symbols/SymbolInfo.h (1 line): - line 26: /// TODO: keep track of instances, e.g. overload locations and signatures. flang/runtime/io-stmt.h (1 line): - line 123: // TODO: UTF-8 decoding; may have to get more bytes in a loop flang/runtime/complex-reduction.c (1 line): - line 86: /* TODO: COMPLEX(2 & 3) */ clang-tools-extra/clangd/support/Function.h (1 line): - line 84: // FIXME: it would be nice to dynamically check non-reentrancy here. compiler-rt/include/sanitizer/dfsan_interface.h (1 line): - line 99: /// FIXME: implement more hooks. clang/unittests/AST/DeclTest.cpp (1 line): - line 62: // FIXME: Once this test starts breaking we can test APValue::needsCleanup llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp (1 line): - line 157: // TODO: add ".cloned" suffix to name of Clone's VPValue. lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp (1 line): - line 455: // TODO: Use assembly to call cpuid on the inferior and query ebx or ecx llvm/lib/Target/AMDGPU/SIOptimizeVGPRLiveRange.cpp (1 line): - line 598: // TODO: we need to think about the order of visiting the blocks to get llvm/unittests/CodeGen/GlobalISel/KnownBitsVectorTest.cpp (1 line): - line 972: // TODO: check for vector(splat) shift amount. clang/include/clang/Basic/DebugInfoOptions.h (1 line): - line 40: /// FIXME: Consider combining this with LimitedDebugInfo. flang/include/flang/Lower/CharacterExpr.h (1 line): - line 106: /// Character lengths. TODO: move this to FirOpBuilder? clang/lib/Driver/ToolChains/Cuda.cpp (1 line): - line 413: // TODO: Perhaps we should map host -O2 to ptxas -O3. -O3 is ptxas's clang/lib/AST/OSLog.cpp (1 line): - line 1: // TODO: header template lldb/source/Plugins/ExpressionParser/Clang/NameSearchContext.cpp (1 line): - line 69: // FIXME: The LinkageSpecDecl here should be added to m_decl_context. llvm/lib/Target/Hexagon/BitTracker.h (1 line): - line 140: // FIXME: Consolidate duplicate definitions of RegisterRef compiler-rt/lib/profile/GCDAProfiling.c (1 line): - line 17: |* TODO: gcov is multi-process safe by having each exit open the existing file clang/lib/StaticAnalyzer/Checkers/Iterator.cpp (1 line): - line 264: // FIXME: Should we provide it as an API, so that all checkers could use it? llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp (1 line): - line 169: // FIXME: remove krait check when GNU tools support krait cpu llvm/lib/Transforms/Utils/SplitModule.cpp (1 line): - line 271: // FIXME: We should be able to reuse M as the last partition instead of lldb/source/Breakpoint/BreakpointOptions.cpp (1 line): - line 405: // FIXME: This seems unsafe. If BatonSP actually *is* a CommandBaton, but lldb/source/Plugins/InstrumentationRuntime/UBSan/InstrumentationRuntimeUBSan.cpp (1 line): - line 244: // FIXME: Factor out all the logic we have in common with the {a,t}san plugins. llvm/include/llvm/IR/GlobalVariable.h (1 line): - line 227: /// FIXME: This may not be required once ValueEnumerators clang/lib/Driver/XRayArgs.cpp (1 line): - line 121: // TODO: Automate the generation of the string case table. llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp (1 line): - line 76: // FIXME: TableGen these. llvm/utils/gn/secondary/llvm/tools/bugpoint/BUILD.gn (1 line): - line 35: # FIXME: Disable dead stripping once other binaries are dead-stripped. clang/lib/Driver/ToolChains/RISCVToolchain.cpp (1 line): - line 193: // TODO: add C++ includes and libs if compiling C++. clang/lib/StaticAnalyzer/Checkers/VforkChecker.cpp (1 line): - line 138: // TODO: mark vfork call in BugReportVisitor lldb/source/Plugins/Process/Utility/RegisterInfoInterface.h (1 line): - line 64: // FIXME make private. libcxx/src/experimental/memory_resource.cpp (1 line): - line 103: // TODO: Can a weaker ordering be used? llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp (1 line): - line 108: // FIXME: Why does ocaml emit this?? llvm/tools/llvm-exegesis/lib/BenchmarkRunner.h (1 line): - line 70: // FIXME deprecate this. mlir/lib/Dialect/SPIRV/Transforms/UpdateVCEPass.cpp (1 line): - line 171: // TODO: verify that the deduced version is consistent with lldb/source/Expression/REPL.cpp (1 line): - line 607: // Wait for the IO handler thread to exit (TODO: don't do this if the IO clang/lib/ASTMatchers/Dynamic/Registry.cpp (1 line): - line 97: // TODO: Here is the list of the missing matchers, grouped by reason. llvm/lib/Target/ARM/ARMBlockPlacement.cpp (1 line): - line 187: // TODO: Analyse the blocks to make a decision if it would be worth openmp/runtime/src/kmp_cancel.cpp (1 line): - line 107: // TODO: what needs to happen here? openmp/runtime/src/kmp_affinity.cpp (1 line): - line 2820: // FIXME - this will match "node_ "