[LLVMdev] initial selection DAG
Tim Northover
t.p.northover at gmail.com
Fri Oct 12 02:39:46 PDT 2012
Hi Nico,
> I miss three nodes and I wonder what do I have to implement to get at least the right initial selection DAG?
Most of the work is done by the files in lib/CodeGen/SelectionDAG
(first SelectionDAGBuilder.cpp, then the Legalizers and DAGCombiner) .
However, various target-specific hooks are used during the process
(the biggest handling function-calls and formal parameters). These
hooks and the data that effect them are defined in
lib/Target/XXX/XXXISelLowering.cpp
What should the nodes you're missing be doing? It's difficult to say
quite what part of ISelLowering you need to look at without knowing
that.
> Do I have to define all instructions in the td files first?
No. In principle you should be able to get a fully correct selection
dag without defining a single instruction. It wouldn't be much use for
most targets, but it would exist.
Tim.
More information about the llvm-dev
mailing list