Knowledge (XXG)

Available expression

Source 📝

571: 25: 146:
in data flow analysis terms. An expression is available at the start of a basic block if it is available at the end of each of the basic block's predecessors. This gives a set of equations in terms of available sets, which can be solved by an iterative algorithm.
137:
problem. A set of available expressions is maintained. Each statement is analysed to see whether it changes the operands of one or more available expressions. This yields sets of available expressions at the end of each
130:
at such a point. To be available on a program point, the operands of the expression should not be modified on any path from the occurrence of that expression to the program point.
192: 339: 35: 612: 373: 185: 545: 93: 422: 323: 151: 65: 641: 631: 464: 178: 50: 72: 359: 443: 636: 605: 494: 459: 79: 383: 258: 238: 61: 123: 243: 598: 391: 368: 344: 273: 520: 515: 469: 396: 220: 215: 115: 550: 474: 530: 401: 293: 201: 86: 525: 489: 308: 298: 248: 134: 406: 230: 582: 578: 540: 479: 349: 328: 288: 268: 535: 510: 484: 283: 278: 263: 625: 154:(CSE). If an expression is available at a point, there is no need to re-evaluate it. 122:
is an analysis algorithm that determines for each point in the program the set of
42: 253: 139: 24: 333: 427: 570: 170: 174: 126:
that need not be recomputed. Those expressions are said to be
18: 586: 46: 503: 452: 436: 415: 382: 358: 307: 229: 208: 150:Available expression analysis is used to do global 340:Induction variable recognition and elimination 606: 186: 165:Compilers – Principles, Techniques, and Tools 8: 51:introducing citations to additional sources 613: 599: 193: 179: 171: 16:Optimization method in software compilers 133:The analysis is an example of a forward 41:Relevant discussion may be found on the 374:Sparse conditional constant propagation 167:Addison-Wesley Publishing Company 1986 7: 567: 565: 585:. You can help Knowledge (XXG) by 14: 569: 324:Common subexpression elimination 152:common subexpression elimination 34:relies largely or entirely on a 23: 465:Compile-time function execution 1: 444:Interprocedural optimization 495:Profile-guided optimization 460:Bounds-checking elimination 658: 564: 259:Loop-invariant code motion 239:Automatic parallelization 163:Aho, Sethi & Ullman: 244:Automatic vectorization 642:Computer science stubs 632:Compiler optimizations 392:Instruction scheduling 369:Global value numbering 345:Live-variable analysis 274:Loop nest optimization 202:Compiler optimizations 116:compiler optimizations 62:"Available expression" 521:Control-flow analysis 516:Array-access analysis 470:Dead-code elimination 428:Tail-call elimination 397:Instruction selection 221:Local value numbering 216:Peephole optimization 120:available expressions 551:Value range analysis 475:Expression templates 319:Available expression 47:improve this article 531:Dependence analysis 402:Register allocation 294:Software pipelining 637:Data-flow analysis 526:Data-flow analysis 490:Partial evaluation 299:Strength reduction 249:Induction variable 135:data flow analysis 594: 593: 559: 558: 407:Rematerialization 112: 111: 97: 649: 615: 608: 601: 579:computer science 573: 566: 541:Pointer analysis 480:Inline expansion 350:Use-define chain 329:Constant folding 289:Loop unswitching 269:Loop interchange 195: 188: 181: 172: 114:In the field of 107: 104: 98: 96: 55: 27: 19: 657: 656: 652: 651: 650: 648: 647: 646: 622: 621: 620: 619: 562: 560: 555: 536:Escape analysis 504:Static analysis 499: 448: 432: 411: 384:Code generation 378: 354: 310: 303: 225: 204: 199: 160: 142:, known as the 108: 102: 99: 56: 54: 40: 28: 17: 12: 11: 5: 655: 653: 645: 644: 639: 634: 624: 623: 618: 617: 610: 603: 595: 592: 591: 574: 557: 556: 554: 553: 548: 546:Shape analysis 543: 538: 533: 528: 523: 518: 513: 511:Alias analysis 507: 505: 501: 500: 498: 497: 492: 487: 485:Jump threading 482: 477: 472: 467: 462: 456: 454: 450: 449: 447: 446: 440: 438: 434: 433: 431: 430: 425: 419: 417: 413: 412: 410: 409: 404: 399: 394: 388: 386: 380: 379: 377: 376: 371: 365: 363: 356: 355: 353: 352: 347: 342: 337: 331: 326: 321: 315: 313: 305: 304: 302: 301: 296: 291: 286: 284:Loop unrolling 281: 279:Loop splitting 276: 271: 266: 264:Loop inversion 261: 256: 251: 246: 241: 235: 233: 227: 226: 224: 223: 218: 212: 210: 206: 205: 200: 198: 197: 190: 183: 175: 169: 168: 159: 156: 110: 109: 45:. Please help 31: 29: 22: 15: 13: 10: 9: 6: 4: 3: 2: 654: 643: 640: 638: 635: 633: 630: 629: 627: 616: 611: 609: 604: 602: 597: 596: 590: 588: 584: 581:article is a 580: 575: 572: 568: 563: 552: 549: 547: 544: 542: 539: 537: 534: 532: 529: 527: 524: 522: 519: 517: 514: 512: 509: 508: 506: 502: 496: 493: 491: 488: 486: 483: 481: 478: 476: 473: 471: 468: 466: 463: 461: 458: 457: 455: 451: 445: 442: 441: 439: 435: 429: 426: 424: 423:Deforestation 421: 420: 418: 414: 408: 405: 403: 400: 398: 395: 393: 390: 389: 387: 385: 381: 375: 372: 370: 367: 366: 364: 361: 357: 351: 348: 346: 343: 341: 338: 335: 332: 330: 327: 325: 322: 320: 317: 316: 314: 312: 306: 300: 297: 295: 292: 290: 287: 285: 282: 280: 277: 275: 272: 270: 267: 265: 262: 260: 257: 255: 252: 250: 247: 245: 242: 240: 237: 236: 234: 232: 228: 222: 219: 217: 214: 213: 211: 207: 203: 196: 191: 189: 184: 182: 177: 176: 173: 166: 162: 161: 157: 155: 153: 148: 145: 141: 136: 131: 129: 125: 121: 117: 106: 95: 92: 88: 85: 81: 78: 74: 71: 67: 64: –  63: 59: 58:Find sources: 52: 48: 44: 38: 37: 36:single source 32:This article 30: 26: 21: 20: 587:expanding it 576: 561: 318: 164: 149: 143: 132: 127: 119: 113: 103:October 2023 100: 90: 83: 76: 69: 57: 33: 336:elimination 254:Loop fusion 209:Basic block 140:basic block 124:expressions 626:Categories 416:Functional 334:Dead store 158:References 73:newspapers 309:Data-flow 128:available 43:talk page 311:analysis 87:scholar 437:Global 362:-based 144:outset 89:  82:  75:  68:  60:  577:This 453:Other 94:JSTOR 80:books 583:stub 231:Loop 66:news 360:SSA 49:by 628:: 118:, 614:e 607:t 600:v 589:. 194:e 187:t 180:v 105:) 101:( 91:· 84:· 77:· 70:· 53:. 39:.

Index


single source
talk page
improve this article
introducing citations to additional sources
"Available expression"
news
newspapers
books
scholar
JSTOR
compiler optimizations
expressions
data flow analysis
basic block
common subexpression elimination
v
t
e
Compiler optimizations
Peephole optimization
Local value numbering
Loop
Automatic parallelization
Automatic vectorization
Induction variable
Loop fusion
Loop-invariant code motion
Loop inversion
Loop interchange

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.