Although DAG covering is more general than tree covering—and thus offers a more powerful approach to instruction selection—it is still not enough for handling all aspects featured in the programs and instructions. For example, control flow incurred by loop statements cannot be modeled in a program DAG as it requires the use of cycles, which violates the definition of DAGs. By resorting to program graphs we attain graph covering, which is the most general form of covering. Unfortunately it also constitutes the shortest chapter among the principles discussed in this book.
Unable to display preview. Download preview PDF.