This is part of the ongoing effort led by Renato and Sean Silva, here: http://llvm.org/docs/TableGen/BackEnds.html
I’ve been working on the DAGISel backend documentation, and I have posted notes here:
This is a rough cut, but we decided it would be best to seek feedback early so that any misunderstandings on my/our part are resolved before I get too far. My notional outline for a final DAGISel section is as follows:
- Start with background section showing how the backend is used in the instruction selection process.
- Introduce the MatcherTable, and show before and after DAGs, to illustrate what it actually does.
- Show how to generate an “unoptimized” matcher table and walkthrough the actions it takes to match/emit.
- Walkthrough the CodeGenDAGPatterns and friends.
- Walkthrough the pattern emitter/matcher table printing stage.
For those without a lot of time on your hands, you may want to CTRL+F for where “seems” and “likely” appear in the text.
Goals at this point are to:
1. Identify errors in understanding.
2. Get final answers to the pieces that are advertised as not well understood in the text.
3. Suggestions on section layout/content/graphics.
4. Identify any missing content.
Feel free to edit the wiki page directly or send e-mail to me or the list.
Thanks,
-R