[llvm-dev] Instruction selection algorithm

Ivan Kulagin via llvm-dev llvm-dev at lists.llvm.org
Wed Mar 28 03:31:17 PDT 2018


Is the algorithm described in the article "Near-Optimal Instruction
Selection on DAGs
(https://llvm.org/pubs/2008-CGO-DagISel.html)" really used in llvm
instruction selection?
I've studied implementation (SelectionDAGISel.cpp) and I see that
instructions are selected
by target specific MatcherTable generated by llvm-tblgen. In the
implementation the first
matching pattern from MatcherTable is selected but in the paper all
matching patterns (in paper
named tiles) are selected for each DAG node and cost estimation is
performed for every tile and
node. Then the best tiles are selected by dynamic programming.

Could you please explain me how llvm instruction selection relates to
the NOLTIS algorithm
in the paper?

Does it make sense to use dynamic programming for instruction
selection based on MatcherTable?

--
With best regards,
Ivan Kulagin.


More information about the llvm-dev mailing list