Near-optimal instruction selection on dags
read more
Citations
Modern Compiler Design
Efficient Selection of Vector Instructions Using Dynamic Programming
Modern Compiler Design 2nd edition
Efficient Directed Acyclic Graph Pattern Matching To Enable Code Partitioning and Execution On Heterogeneous Processor Cores
Synthesizing an instruction selection rule library from semantic specifications
References
Computers and Intractability: A Guide to the Theory of NP-Completeness
Compilers: Principles, Techniques, and Tools
Synthesis and optimization of digital circuits
Related Papers (5)
Frequently Asked Questions (11)
Q2. How is the NOLTIS algorithm based on the size of the program?
Although the NOLTIS algorithm is linear in the size of the program, its running time is largely determined by how efficiently the matching of a single node to a set of tiles can be performed.
Q3. How many Pentium 4 machines were used to solve the tiling problem?
In order to solve the nearly half million tiling problems, the authors utilized a cluster of Pentium 4 machines ranging in speed from 2.8Ghz to 3.0Ghz.
Q4. What is the way to minimize the register pressure of the schedule?
A scheduling pass, which converts the code from DAG form into an assembly listing, attempts to minimize the register pressure of the schedule using Sethi-Ullman numbering [36].
Q5. What is the result of a tree tiling algorithm?
If a tree tiling algorithm is adapted to tile a DAG and a DAG optimal tile set is used to perform the tiling, the result is an optimal tiling of the DAG.
Q6. How many moves does it take to prevent a value from being overwritten?
Since one of the source operands gets overwritten, the difficulty lies in minimizing the number of moves inserted to prevent values from being2 2007/9/12overwritten.
Q7. How can the authors solve the instruction tiling problem?
In order to establish the near-optimality of their algorithm, the authors formulate the instruction tiling problem as a 0-1 integer program which can be solved to optimality using a commercial solver.
Q8. What is the way to solve the instruction tiling problem?
Given a Boolean expression consisting of variables u ∈ U and Boolean connectives {∨,∧,¬}, the authors construct an instance of the optimal instruction tiling problem as follows:
Q9. What is the way to tile a DAG?
Given an expression DAG which represents the computation of a basic block and a set of architecture specific instruction tiles, the authors wish to find an optimal tiling of the DAG which corresponds to the minimum cost instruction sequence.
Q10. What are the three benchmarks that do not execute properly?
Three benchmarks, 400.perlbench, 453.povray, and 471.omnetpp do not execute properly due to issues unrelated to the instruction selector.
Q11. How can the second pass of dynamic programming be made more efficient?
the second pass of dynamic programming could be made more efficient by intelligently recomputing only portions of the DAG.