Hi Vadim,
I am the book author of "Creating an LLVM Backend for the Cpu0
Architecture". Your question is right. More documents is good for
programmer just like plentiful book in Linux Programming, even though the GCC
backend compiler book is seldom. As you can see, I have let readers know how to
write a RISC backend in my book but lack of the CISC backend features, like the
complex address mode you mentioned. For these topic, LLVM supply many backend
source code like X86, readers can learn it from the release source code.
I agree with you. If someone knows these topic well and willing pay time to
write it, we will appreciate his work on this.
Jonathan
On 2013/2/24, at 上午10:55, Sean Silva <silvas at purdue.edu> wrote:
> Hi Jonathan, please respond to this message from the LLVMdev mailing list:
>
> (also, you should subscribe to the LLVMdev and llvm-commits mailing
> lists; if you haven't done so already)
>
>
> ---------- Forwarded message ----------
> From: Vadim Khoptynets <vadya.poiuj at gmail.com>
> Date: Sat, Feb 23, 2013 at 8:47 PM
> Subject: [LLVMdev] backend documentation
> To: llvmdev at cs.uiuc.edu
>
>
> Hello everyone!
>
> Is there any documentation about LLVM backend implementation, except
> "Writing an LLVM backend"? I'm trying to write
InstrFormats.td and
> InstrInfo.td for my backend now. After reading "Writing an LLVM
> backend" and "Creating an LLVM Backend for the Cpu0
Architecture",
> many black holes have remained. These tutorials describe it on
> concrete examples, but general approach is missed. For example, how to
> implement different addressing modes using ComplexPattern? How to
> write a matching function? How does addressing modes correlate with
> address operands? When should we implement our own DAG nodes? Why does
> some backends have Format field, while other - don't? And so on...
> So, maybe somebody have materials that could help to clarify process
> of implementing backend? It might be books, articles, presentations
> etc.
>
> --
> Regards,
> Vadim.
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev