66:
168:
25:
1648:
with all possible read accesses which could be reached. In this case, only the code beyond line 10 is relevant. Line 7, for example, cannot be reached again. For your understanding, you can imagine 2 different variables
400:
should indicate that its current value must have come from line B (and its value at line B must have come from line A). Contrariwise, at the point marked "2", the use-def chain for
678:
880:
2291:
1208:
2170:
2115:
2077:
2002:
1360:
1324:
1288:
1239:
1167:
1122:
1073:
1032:
991:
954:
917:
833:
800:
743:
710:
657:
543:
2438:
2044:
583:
2472:
2257:
2284:
2134:(DAG) is created on the variable uses and definitions. The DAG specifies a data dependency among assignment statements, as well as a
182:
178:
2644:
2227:
Searle, Aaron; Gough, John; Abramson, David (2003). "DUCT: An
Interactive Define-Use Chain Navigation Tool for Relative Debugging".
219:
149:
83:
52:
38:
2521:
2422:
307:
2670:
2563:
2277:
130:
102:
87:
2458:
1623:
Repeat these steps in the following style: combine each write access with each read access (but NOT the other way round).
499:
261:
2542:
109:
2675:
2593:
2558:
2482:
2357:
260:
of that variable that can reach that use without any other intervening definitions. A UD Chain generally means the
396:
is assigned a value at three points (marked A, B, and C). However, at the point marked "1", the use-def chain for
194:
116:
76:
2337:
613:
98:
2342:
1382:
1244:
2490:
2467:
2443:
2372:
2131:
495:
253:
2619:
2614:
2568:
2495:
2319:
2314:
299:
44:
1248:
322:, so that logical representations of all the variables can be identified and tracked through the code.
2649:
2573:
2417:
2179:
303:
291:
2629:
2500:
2392:
2300:
1252:
2624:
2588:
2407:
2397:
2347:
2228:
295:
298:. Knowing the use-def and def-use chains for a program or subprogram is a prerequisite for many
850:
2505:
2329:
2253:
319:
123:
2639:
2578:
2427:
2387:
2367:
2209:
1174:
233:
2634:
2146:
2091:
2053:
1978:
1336:
1300:
1264:
1256:
1215:
1143:
1098:
1049:
1008:
967:
930:
893:
809:
776:
719:
686:
662:
633:
519:
2609:
2583:
2382:
2377:
2362:
245:
2017:
556:
2664:
2213:
2135:
404:
indicates that its current value must have come from line C. Since the value of the
616:
form, use-define chains are explicit because each chain contains a single element.)
2352:
592:
65:
2432:
2526:
1644:
could be redefined. This is why you have to recombine this write access on
661:. In general, a declaration of a variable can be in an outer scope (e.g., a
612:
Every variable is assumed to have a definition in the context or scope. (In
287:
reachable from that definition without any other intervening definitions.
2269:
628:(italic capital letter), and for short, its declaration is identified as
2200:
Kennedy, Ken (January 1978). "Use-definition chains with applications".
1584:
To find out all def-use-chains for variable d, do the following steps:
1243:
is a simple but powerful concept: theoretical and practical results in
412:
might as well be a different variable there; practically speaking, it
408:
in block 2 does not depend on any definitions in block 1 or earlier,
510:
The list of statements determines a strong order among statements.
2233:
2178:
variable assignments. If only one assignment is live, for example,
1588:
Search for the first time the variable is defined (write access).
1036:, and what can now be observed as the computation at statement,
2273:
1633:
You have to take care, if the variable is changed by the time.
1385:. (It is not important to understand what this function does.)
161:
59:
18:
1660:
As a result, you could get something like this. The variable
1636:
For example: From line 7 down to line 13 in the source code,
1003:
Consider the sequential execution of the list of statements,
1381:
This example is based on a Java algorithm for finding the
1675:* @param(a, b) The values used to calculate the divisor.
1393:* @param(a, b) The values used to calculate the divisor.
514:
Statements are labeled using the following conventions:
318:
Making the use-define or define-use chains is a step in
190:
16:
Data structure that tracks variable use and definitions
2149:
2094:
2056:
2020:
1981:
1612:
Write down this information in the following style:
1339:
1303:
1267:
1218:
1177:
1146:
1101:
1052:
1011:
970:
933:
896:
853:
812:
779:
722:
689:
636:
559:
522:
290:
Both UD and DU chains are created by using a form of
2602:
2551:
2535:
2514:
2481:
2457:
2406:
2328:
2307:
2048:, find live definitions that have use in statement
1616:
1604:
1592:
90:. Unsourced material may be challenged and removed.
2164:
2126:With this algorithm, two things are accomplished:
2109:
2071:
2038:
1996:
1354:
1318:
1282:
1233:
1202:
1161:
1116:
1067:
1026:
985:
948:
911:
874:
827:
794:
755:) has at least one definition by its declaration (
737:
704:
651:
577:
537:
1678:* @return The greatest common divisor of a and b.
1396:* @return The greatest common divisor of a and b.
1600:Search for the first time the variable is read.
854:
2439:Induction variable recognition and elimination
2250:A Programmer's Companion to Algorithm Analysis
2285:
8:
1134:. The set of alive definitions at statement
53:Learn how and when to remove these messages
2292:
2278:
2270:
597:Variables are identified in italic (e.g.,
2232:
2148:
2138:(therefore parallelism among statements).
2093:
2055:
2019:
1980:
1338:
1302:
1266:
1217:
1195:
1178:
1176:
1145:
1100:
1051:
1010:
969:
932:
895:
852:
811:
778:
721:
688:
635:
558:
521:
220:Learn how and when to remove this message
150:Learn how and when to remove this message
1640:is not redefined / changed. At line 14,
325:Consider the following snippet of code:
193:by adding descriptive text and removing
2473:Sparse conditional constant propagation
2192:
1171:and the number of alive definitions as
2083:Make a link among definitions and uses
494:into two separate variables is called
2248:Leiss, Ernst L. (26 September 2006).
416:a different variable — call it
7:
681:of an assignment statement, such as
88:adding citations to reliable sources
1377:Execution example for def-use-chain
624:, its declaration is identified as
591:is the number of statements in the
279:), which consists of a definition
14:
1093:, if it has a use at a statement
34:This article has multiple issues.
2423:Common subexpression elimination
921:(or, in short, when a variable,
308:common subexpression elimination
166:
64:
23:
2564:Compile-time function execution
2174:is reached, there is a list of
925:, is on the RHS of a statement
283:of a variable and all the uses
75:needs additional citations for
42:or discuss these issues on the
2159:
2153:
2104:
2098:
2066:
2060:
2033:
2021:
1991:
1985:
1349:
1343:
1313:
1307:
1277:
1271:
1228:
1222:
1196:
1192:
1186:
1179:
1156:
1150:
1111:
1105:
1062:
1056:
1021:
1015:
980:
974:
943:
937:
906:
900:
869:
857:
822:
816:
789:
783:
732:
726:
699:
693:
646:
640:
572:
560:
532:
526:
1:
1973:Set definitions in statement
884:, that it is a definition of
771:, is on the RHS of statement
500:static single assignment form
264:of some value to a variable.
2543:Interprocedural optimization
2214:10.1016/0096-0551(78)90009-7
387:/* 2, some more uses of x */
2594:Profile-guided optimization
2559:Bounds-checking elimination
2692:
2358:Loop-invariant code motion
1331:all previous definitions (
1295:A definition at statement
1259:exploitation are based on
1044:A definition at statement
256:, and all the definitions
2338:Automatic parallelization
2122:Kill previous definitions
2119:, as definition statement
1372:) for the same variables.
875:{\displaystyle \min(j-i)}
490:The process of splitting
1669:
1655:
1628:
1387:
804:, there is a statement,
669:Definition of a variable
620:For a variable, such as
614:static single assignment
485:/* 2, some uses of x2 */
422:
327:
2343:Automatic vectorization
1245:space complexity theory
962:has a use at statement
759:) (or initialization).
464:/* 1, some uses of x */
369:/* 1, some uses of x */
248:that consists of a use
195:less pertinent examples
2671:Compiler optimizations
2491:Instruction scheduling
2468:Global value numbering
2444:Live-variable analysis
2373:Loop nest optimization
2301:Compiler optimizations
2166:
2132:directed acyclic graph
2111:
2073:
2040:
1998:
1626:The result should be:
1356:
1320:
1284:
1235:
1204:
1203:{\displaystyle |A(i)|}
1163:
1118:
1069:
1028:
987:
950:
913:
876:
829:
796:
739:
706:
653:
579:
539:
300:compiler optimizations
2620:Control-flow analysis
2615:Array-access analysis
2569:Dead-code elimination
2527:Tail-call elimination
2496:Instruction selection
2320:Local value numbering
2315:Peephole optimization
2167:
2112:
2074:
2041:
1999:
1960:Method of building a
1664:would be replaced by
1357:
1321:
1285:
1236:
1205:
1164:
1119:
1070:
1029:
988:
951:
914:
877:
830:
797:
740:
707:
654:
580:
540:
2650:Value range analysis
2574:Expression templates
2418:Available expression
2180:constant propagation
2165:{\displaystyle s(i)}
2147:
2110:{\displaystyle s(i)}
2092:
2072:{\displaystyle s(i)}
2054:
2018:
1997:{\displaystyle s(0)}
1979:
1615:In this case it is:
1603:In this case it is "
1591:In this case it is "
1355:{\displaystyle s(k)}
1337:
1319:{\displaystyle s(i)}
1301:
1283:{\displaystyle A(i)}
1265:
1234:{\displaystyle A(i)}
1216:
1175:
1162:{\displaystyle A(i)}
1144:
1117:{\displaystyle s(k)}
1099:
1068:{\displaystyle s(i)}
1050:
1027:{\displaystyle s(i)}
1009:
986:{\displaystyle s(j)}
968:
949:{\displaystyle s(j)}
931:
912:{\displaystyle s(j)}
894:
888:and it has a use at
851:
828:{\displaystyle s(i)}
810:
795:{\displaystyle s(j)}
777:
738:{\displaystyle s(j)}
720:
705:{\displaystyle s(j)}
687:
652:{\displaystyle s(0)}
634:
557:
538:{\displaystyle s(i)}
520:
496:live range splitting
304:constant propagation
292:static code analysis
273:definition-use chain
238:use-definition chain
84:improve this article
2630:Dependence analysis
2501:Register allocation
2393:Software pipelining
1253:register allocation
747:is a definition of
267:A counterpart of a
191:improve the article
2676:Data-flow analysis
2625:Data-flow analysis
2589:Partial evaluation
2398:Strength reduction
2348:Induction variable
2202:Computer Languages
2162:
2107:
2086:Set the statement
2069:
2036:
1994:
1352:
1316:
1280:
1251:(I/O complexity),
1231:
1200:
1159:
1114:
1065:
1024:
983:
946:
909:
872:
825:
792:
751:. Every variable (
735:
702:
649:
575:
535:
296:data flow analysis
99:"Use-define chain"
2658:
2657:
2506:Rematerialization
2259:978-1-4200-1170-8
1249:access complexity
763:Use of a variable
673:When a variable,
551:is an integer in
320:liveness analysis
230:
229:
222:
212:
211:
160:
159:
152:
134:
57:
2683:
2640:Pointer analysis
2579:Inline expansion
2449:Use-define chain
2428:Constant folding
2388:Loop unswitching
2368:Loop interchange
2294:
2287:
2280:
2271:
2264:
2263:
2245:
2239:
2238:
2236:
2224:
2218:
2217:
2197:
2173:
2171:
2169:
2168:
2163:
2118:
2116:
2114:
2113:
2108:
2080:
2078:
2076:
2075:
2070:
2047:
2045:
2043:
2042:
2039:{\displaystyle }
2037:
2011:
2005:
2003:
2001:
2000:
1995:
1955:
1952:
1949:
1946:
1943:
1940:
1937:
1934:
1931:
1928:
1925:
1922:
1919:
1916:
1913:
1910:
1907:
1904:
1901:
1898:
1895:
1892:
1889:
1886:
1883:
1880:
1877:
1874:
1871:
1868:
1865:
1862:
1859:
1856:
1853:
1850:
1847:
1844:
1841:
1838:
1835:
1832:
1829:
1826:
1823:
1820:
1817:
1814:
1811:
1808:
1805:
1802:
1799:
1796:
1793:
1790:
1787:
1784:
1781:
1778:
1775:
1772:
1769:
1766:
1763:
1760:
1757:
1754:
1751:
1748:
1745:
1742:
1739:
1736:
1733:
1730:
1727:
1724:
1721:
1718:
1715:
1712:
1709:
1706:
1703:
1700:
1697:
1694:
1691:
1688:
1685:
1682:
1679:
1676:
1673:
1667:
1663:
1652:
1647:
1643:
1639:
1617:
1606:
1594:
1580:
1577:
1574:
1571:
1568:
1565:
1562:
1559:
1556:
1553:
1550:
1547:
1544:
1541:
1538:
1535:
1532:
1529:
1526:
1523:
1520:
1517:
1514:
1511:
1508:
1505:
1502:
1499:
1496:
1493:
1490:
1487:
1484:
1481:
1478:
1475:
1472:
1469:
1466:
1463:
1460:
1457:
1454:
1451:
1448:
1445:
1442:
1439:
1436:
1433:
1430:
1427:
1424:
1421:
1418:
1415:
1412:
1409:
1406:
1403:
1400:
1397:
1394:
1391:
1363:
1361:
1359:
1358:
1353:
1327:
1325:
1323:
1322:
1317:
1291:
1289:
1287:
1286:
1281:
1242:
1240:
1238:
1237:
1232:
1209:
1207:
1206:
1201:
1199:
1182:
1170:
1168:
1166:
1165:
1160:
1125:
1123:
1121:
1120:
1115:
1076:
1074:
1072:
1071:
1066:
1035:
1033:
1031:
1030:
1025:
994:
992:
990:
989:
984:
957:
955:
953:
952:
947:
920:
918:
916:
915:
910:
883:
881:
879:
878:
873:
836:
834:
832:
831:
826:
803:
801:
799:
798:
793:
746:
744:
742:
741:
736:
713:
711:
709:
708:
703:
660:
658:
656:
655:
650:
586:
584:
582:
581:
578:{\displaystyle }
576:
546:
544:
542:
541:
536:
493:
486:
483:
480:
477:
474:
471:
468:
465:
462:
459:
456:
453:
450:
447:
444:
441:
438:
435:
432:
429:
426:
419:
411:
407:
403:
399:
395:
388:
385:
382:
379:
376:
373:
370:
367:
364:
361:
358:
355:
352:
349:
346:
343:
340:
337:
334:
331:
234:computer science
225:
218:
207:
204:
198:
170:
169:
162:
155:
148:
144:
141:
135:
133:
92:
68:
60:
49:
27:
26:
19:
2691:
2690:
2686:
2685:
2684:
2682:
2681:
2680:
2661:
2660:
2659:
2654:
2635:Escape analysis
2603:Static analysis
2598:
2547:
2531:
2510:
2483:Code generation
2477:
2453:
2409:
2402:
2324:
2303:
2298:
2268:
2267:
2260:
2247:
2246:
2242:
2226:
2225:
2221:
2199:
2198:
2194:
2189:
2145:
2144:
2142:
2141:When statement
2090:
2089:
2087:
2052:
2051:
2049:
2016:
2015:
2013:
2009:
1977:
1976:
1974:
1970:
1957:
1956:
1953:
1950:
1947:
1944:
1941:
1938:
1935:
1932:
1929:
1926:
1923:
1920:
1917:
1914:
1911:
1908:
1905:
1902:
1899:
1896:
1893:
1890:
1887:
1884:
1881:
1878:
1875:
1872:
1869:
1866:
1863:
1860:
1857:
1854:
1851:
1848:
1845:
1842:
1839:
1836:
1833:
1830:
1827:
1824:
1821:
1818:
1815:
1812:
1809:
1806:
1803:
1800:
1797:
1794:
1791:
1788:
1785:
1782:
1779:
1776:
1773:
1770:
1767:
1764:
1761:
1758:
1755:
1752:
1749:
1746:
1743:
1740:
1737:
1734:
1731:
1728:
1725:
1722:
1719:
1716:
1713:
1710:
1707:
1704:
1701:
1698:
1695:
1692:
1689:
1686:
1683:
1680:
1677:
1674:
1671:
1665:
1661:
1658:
1657:
1650:
1645:
1641:
1637:
1631:
1630:
1582:
1581:
1578:
1575:
1572:
1569:
1566:
1563:
1560:
1557:
1554:
1551:
1548:
1545:
1542:
1539:
1536:
1533:
1530:
1527:
1524:
1521:
1518:
1515:
1512:
1509:
1506:
1503:
1500:
1497:
1494:
1491:
1488:
1485:
1482:
1479:
1476:
1473:
1470:
1467:
1464:
1461:
1458:
1455:
1452:
1449:
1446:
1443:
1440:
1437:
1434:
1431:
1428:
1425:
1422:
1419:
1416:
1413:
1410:
1407:
1404:
1401:
1398:
1395:
1392:
1389:
1379:
1335:
1334:
1332:
1299:
1298:
1296:
1263:
1262:
1260:
1214:
1213:
1211:
1173:
1172:
1142:
1141:
1139:
1097:
1096:
1094:
1048:
1047:
1045:
1007:
1006:
1004:
1001:
966:
965:
963:
929:
928:
926:
892:
891:
889:
849:
848:
846:
808:
807:
805:
775:
774:
772:
765:
718:
717:
715:
685:
684:
682:
671:
663:global variable
632:
631:
629:
555:
554:
552:
518:
517:
515:
508:
491:
488:
487:
484:
481:
478:
475:
472:
469:
466:
463:
460:
457:
454:
451:
448:
445:
442:
439:
436:
433:
430:
427:
424:
417:
409:
405:
401:
397:
393:
390:
389:
386:
383:
380:
377:
374:
371:
368:
365:
362:
359:
356:
353:
350:
347:
344:
341:
338:
335:
332:
329:
316:
226:
215:
214:
213:
208:
202:
199:
188:
171:
167:
156:
145:
139:
136:
93:
91:
81:
69:
28:
24:
17:
12:
11:
5:
2689:
2687:
2679:
2678:
2673:
2663:
2662:
2656:
2655:
2653:
2652:
2647:
2645:Shape analysis
2642:
2637:
2632:
2627:
2622:
2617:
2612:
2610:Alias analysis
2606:
2604:
2600:
2599:
2597:
2596:
2591:
2586:
2584:Jump threading
2581:
2576:
2571:
2566:
2561:
2555:
2553:
2549:
2548:
2546:
2545:
2539:
2537:
2533:
2532:
2530:
2529:
2524:
2518:
2516:
2512:
2511:
2509:
2508:
2503:
2498:
2493:
2487:
2485:
2479:
2478:
2476:
2475:
2470:
2464:
2462:
2455:
2454:
2452:
2451:
2446:
2441:
2436:
2430:
2425:
2420:
2414:
2412:
2404:
2403:
2401:
2400:
2395:
2390:
2385:
2383:Loop unrolling
2380:
2378:Loop splitting
2375:
2370:
2365:
2363:Loop inversion
2360:
2355:
2350:
2345:
2340:
2334:
2332:
2326:
2325:
2323:
2322:
2317:
2311:
2309:
2305:
2304:
2299:
2297:
2296:
2289:
2282:
2274:
2266:
2265:
2258:
2240:
2219:
2208:(3): 163–179.
2191:
2190:
2188:
2185:
2184:
2183:
2182:might be used.
2161:
2158:
2155:
2152:
2139:
2124:
2123:
2120:
2106:
2103:
2100:
2097:
2084:
2081:
2068:
2065:
2062:
2059:
2035:
2032:
2029:
2026:
2023:
2006:
1993:
1990:
1987:
1984:
1969:
1958:
1670:
1656:
1629:
1621:
1620:
1619:
1618:
1610:
1609:
1608:
1598:
1597:
1596:
1388:
1378:
1375:
1374:
1373:
1351:
1348:
1345:
1342:
1315:
1312:
1309:
1306:
1293:
1279:
1276:
1273:
1270:
1257:cache locality
1230:
1227:
1224:
1221:
1198:
1194:
1191:
1188:
1185:
1181:
1158:
1155:
1152:
1149:
1138:is denoted as
1113:
1110:
1107:
1104:
1064:
1061:
1058:
1055:
1023:
1020:
1017:
1014:
1000:
997:
982:
979:
976:
973:
945:
942:
939:
936:
908:
905:
902:
899:
871:
868:
865:
862:
859:
856:
824:
821:
818:
815:
791:
788:
785:
782:
764:
761:
734:
731:
728:
725:
701:
698:
695:
692:
670:
667:
648:
645:
642:
639:
618:
617:
610:
595:
574:
571:
568:
565:
562:
534:
531:
528:
525:
507:
504:
423:
328:
315:
312:
246:data structure
228:
227:
210:
209:
174:
172:
165:
158:
157:
72:
70:
63:
58:
32:
31:
29:
22:
15:
13:
10:
9:
6:
4:
3:
2:
2688:
2677:
2674:
2672:
2669:
2668:
2666:
2651:
2648:
2646:
2643:
2641:
2638:
2636:
2633:
2631:
2628:
2626:
2623:
2621:
2618:
2616:
2613:
2611:
2608:
2607:
2605:
2601:
2595:
2592:
2590:
2587:
2585:
2582:
2580:
2577:
2575:
2572:
2570:
2567:
2565:
2562:
2560:
2557:
2556:
2554:
2550:
2544:
2541:
2540:
2538:
2534:
2528:
2525:
2523:
2522:Deforestation
2520:
2519:
2517:
2513:
2507:
2504:
2502:
2499:
2497:
2494:
2492:
2489:
2488:
2486:
2484:
2480:
2474:
2471:
2469:
2466:
2465:
2463:
2460:
2456:
2450:
2447:
2445:
2442:
2440:
2437:
2434:
2431:
2429:
2426:
2424:
2421:
2419:
2416:
2415:
2413:
2411:
2405:
2399:
2396:
2394:
2391:
2389:
2386:
2384:
2381:
2379:
2376:
2374:
2371:
2369:
2366:
2364:
2361:
2359:
2356:
2354:
2351:
2349:
2346:
2344:
2341:
2339:
2336:
2335:
2333:
2331:
2327:
2321:
2318:
2316:
2313:
2312:
2310:
2306:
2302:
2295:
2290:
2288:
2283:
2281:
2276:
2275:
2272:
2261:
2255:
2252:. CRC Press.
2251:
2244:
2241:
2235:
2230:
2223:
2220:
2215:
2211:
2207:
2203:
2196:
2193:
2186:
2181:
2177:
2156:
2150:
2140:
2137:
2136:partial order
2133:
2129:
2128:
2127:
2121:
2101:
2095:
2085:
2082:
2063:
2057:
2030:
2027:
2024:
2007:
1988:
1982:
1972:
1971:
1967:
1963:
1959:
1668:
1654:
1634:
1627:
1624:
1614:
1613:
1611:
1602:
1601:
1599:
1590:
1589:
1587:
1586:
1585:
1386:
1384:
1376:
1371:
1367:
1346:
1340:
1330:
1310:
1304:
1294:
1274:
1268:
1258:
1254:
1250:
1246:
1225:
1219:
1189:
1183:
1153:
1147:
1137:
1133:
1129:
1108:
1102:
1092:
1088:
1084:
1080:
1059:
1053:
1043:
1042:
1041:
1039:
1018:
1012:
998:
996:
977:
971:
961:
940:
934:
924:
903:
897:
887:
866:
863:
860:
844:
840:
819:
813:
786:
780:
770:
767:If variable,
762:
760:
758:
754:
750:
729:
723:
696:
690:
680:
676:
668:
666:
664:
643:
637:
627:
623:
615:
611:
608:
604:
600:
596:
594:
590:
569:
566:
563:
550:
529:
523:
513:
512:
511:
505:
503:
501:
497:
421:
415:
326:
323:
321:
313:
311:
309:
305:
301:
297:
293:
288:
286:
282:
278:
274:
270:
265:
263:
259:
255:
251:
247:
243:
239:
235:
224:
221:
206:
203:February 2024
196:
192:
186:
184:
180:
175:This article
173:
164:
163:
154:
151:
143:
140:February 2024
132:
129:
125:
122:
118:
115:
111:
108:
104:
101: –
100:
96:
95:Find sources:
89:
85:
79:
78:
73:This article
71:
67:
62:
61:
56:
54:
47:
46:
41:
40:
35:
30:
21:
20:
2448:
2249:
2243:
2222:
2205:
2201:
2195:
2175:
2125:
1965:
1961:
1659:
1635:
1632:
1625:
1622:
1583:
1380:
1369:
1365:
1328:
1135:
1131:
1127:
1090:
1086:
1082:
1078:
1037:
1002:
959:
922:
885:
842:
838:
768:
766:
756:
752:
748:
677:, is on the
674:
672:
625:
621:
619:
606:
602:
598:
588:
548:
509:
489:
413:
392:Notice that
391:
324:
317:
302:, including
289:
284:
280:
276:
272:
268:
266:
257:
249:
241:
237:
231:
216:
200:
189:Please help
177:may contain
176:
146:
137:
127:
120:
113:
106:
94:
82:Please help
77:verification
74:
50:
43:
37:
36:Please help
33:
2435:elimination
2353:Loop fusion
2308:Basic block
593:basic block
498:. See also
2665:Categories
2515:Functional
2433:Dead store
2234:cs/0311037
2187:References
262:assignment
183:irrelevant
110:newspapers
39:improve it
2408:Data-flow
2008:For each
999:Execution
864:−
294:known as
179:excessive
45:talk page
2410:analysis
1605:return d
547:, where
277:DU chain
269:UD Chain
254:variable
242:UD chain
185:examples
2172:
2143:
2117:
2088:
2079:
2050:
2046:
2014:
2004:
1975:
1968:) chain
1962:use-def
1595:" (l.7)
1362:
1333:
1326:
1297:
1290:
1261:
1241:
1212:
1169:
1140:
1124:
1095:
1075:
1046:
1034:
1005:
993:
964:
958:, then
956:
927:
919:
890:
882:
847:
835:
806:
802:
773:
745:
716:
714:, then
712:
683:
659:
630:
585:
553:
545:
516:
482:/* C */
461:/* B */
440:/* A */
384:/* C */
366:/* B */
345:/* A */
314:Purpose
252:, of a
244:) is a
232:Within
124:scholar
2536:Global
2461:-based
2256:
1945:return
1756:return
1570:return
1480:return
587:; and
126:
119:
112:
105:
97:
2552:Other
2229:arXiv
1861:while
1489:while
1368:<
1364:with
1329:kills
1126:with
1087:alive
1081:<
1077:with
841:<
837:with
506:Setup
271:is a
131:JSTOR
117:books
2330:Loop
2254:ISBN
2176:live
1964:(or
1918:else
1891:>
1840:else
1795:>
1546:else
1519:>
1255:and
1210:. (
845:and
605:and
306:and
275:(or
240:(or
236:, a
103:news
2459:SSA
2210:doi
2012:in
1729:int
1714:int
1702:int
1693:int
1687:gcd
1684:int
1681:**/
1672:/**
1593:d=b
1447:int
1432:int
1420:int
1411:int
1405:gcd
1402:int
1390:/**
1383:gcd
1089:at
1085:is
995:).
855:min
679:LHS
665:).
467:int
425:int
330:int
181:or
86:by
2667::
2204:.
2130:A
1966:ud
1882:if
1870:!=
1786:if
1774:!=
1765:if
1747:==
1738:if
1662:d1
1653::
1510:if
1498:!=
1471:==
1462:if
1399:*/
1292:.)
1247:,
1130:≥
1040::
502:.
476:35
470:x2
420:.
418:x2
414:is
378:35
310:.
48:.
2293:e
2286:t
2279:v
2262:.
2237:.
2231::
2216:.
2212::
2206:3
2160:)
2157:i
2154:(
2151:s
2105:)
2102:i
2099:(
2096:s
2067:)
2064:i
2061:(
2058:s
2034:]
2031:n
2028:,
2025:1
2022:[
2010:i
1992:)
1989:0
1986:(
1983:s
1954:}
1951:;
1948:c
1942:}
1939:}
1936:;
1933:c
1930:-
1927:d
1924:=
1921:d
1915:;
1912:d
1909:-
1906:c
1903:=
1900:c
1897:)
1894:d
1888:c
1885:(
1879:{
1876:)
1873:0
1867:d
1864:(
1858:;
1855:c
1852:-
1849:b
1846:=
1843:d
1837:}
1834:;
1831:b
1828:=
1825:d
1822:;
1819:b
1816:-
1813:c
1810:=
1807:c
1804:{
1801:)
1798:b
1792:c
1789:(
1783:{
1780:)
1777:0
1771:b
1768:(
1762:;
1759:b
1753:)
1750:0
1744:c
1741:(
1735:;
1732:d
1726:;
1723:a
1720:=
1717:c
1711:{
1708:)
1705:b
1699:,
1696:a
1690:(
1666:b
1651:d
1646:d
1642:d
1638:d
1607:"
1579:}
1576:;
1573:c
1567:}
1564:;
1561:c
1558:-
1555:d
1552:=
1549:d
1543:;
1540:d
1537:-
1534:c
1531:=
1528:c
1525:)
1522:d
1516:c
1513:(
1507:{
1504:)
1501:0
1495:d
1492:(
1486:;
1483:d
1477:)
1474:0
1468:c
1465:(
1459:;
1456:b
1453:=
1450:d
1444:;
1441:a
1438:=
1435:c
1429:{
1426:)
1423:b
1417:,
1414:a
1408:(
1370:i
1366:k
1350:)
1347:k
1344:(
1341:s
1314:)
1311:i
1308:(
1305:s
1278:)
1275:i
1272:(
1269:A
1229:)
1226:i
1223:(
1220:A
1197:|
1193:)
1190:i
1187:(
1184:A
1180:|
1157:)
1154:i
1151:(
1148:A
1136:i
1132:j
1128:k
1112:)
1109:k
1106:(
1103:s
1091:j
1083:j
1079:i
1063:)
1060:i
1057:(
1054:s
1038:j
1022:)
1019:i
1016:(
1013:s
981:)
978:j
975:(
972:s
960:v
944:)
941:j
938:(
935:s
923:v
907:)
904:j
901:(
898:s
886:v
870:)
867:i
861:j
858:(
843:j
839:i
823:)
820:i
817:(
814:s
790:)
787:j
784:(
781:s
769:v
757:V
753:v
749:v
733:)
730:j
727:(
724:s
700:)
697:j
694:(
691:s
675:v
647:)
644:0
641:(
638:s
626:V
622:v
609:)
607:t
603:u
601:,
599:v
589:n
573:]
570:n
567:,
564:1
561:[
549:i
533:)
530:i
527:(
524:s
492:x
479:;
473:=
458:;
455:y
452:+
449:x
446:=
443:x
437:;
434:0
431:=
428:x
410:x
406:x
402:x
398:x
394:x
381:;
375:=
372:x
363:;
360:y
357:+
354:x
351:=
348:x
342:;
339:0
336:=
333:x
285:U
281:D
258:D
250:U
223:)
217:(
205:)
201:(
197:.
187:.
153:)
147:(
142:)
138:(
128:·
121:·
114:·
107:·
80:.
55:)
51:(
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.