Extended basic block

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

In computing, an extended basic block[1][2] is a collection of basic blocks of the code within a program with certain properties that make them highly amenable to optimizations. Many compiler optimizations operate on extended basic blocks.

Definition

[edit | edit source]

An extended basic block is a maximal collection of basic blocks where:

  • only the first basic block can have multiple predecessor basic blocks;
  • all the other basic blocks have one single predecessor basic block, which must be within the collection of basic blocks.

Many local optimizations that operate on basic blocks can be easily extended to operate on extended basic blocks. An example is common subexpression elimination which removes duplicate expressions. In its simplest form it is a local optimization, operating only on basic blocks.[3]

See also

[edit | edit source]

Notes

[edit | edit source]
  1. ^ Cooper, Keith D., and Torczon, Linda, Engineering a Compiler, Morgan Kaufmann, 2004, Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). page 405
  2. ^ Steven S. Muchnick Advanced Compiler Design and Implementation, Morgan Kaufmann Publishers, 1997. Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). page 175
  3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
[edit | edit source]