First of all thank you for response! I gave me some start point and I was able to investigate GCC a bit more. Now I see, that problem I have to solve is too complicated to implement it in machine description. I want to implement new RTL manipulate pass, which will handle it. Short description of my problem: I have to find all instructions (mostly move, arithmetic) which use constant numbers and do something with this constant (copy it to register and execute custom instruction on it). Sounds easy for the beginning. I'm reading GCC internal documentations and RTL passes source code to learn how to do that. I already know, that I'll have to iterate trough all basic blocks and trough insns inside them to find what I'm looking for (move, plus, sub etc. rtx expressions). The problem is that I'm very confused with API for manipulating RTL. I understand it's internal and unstable, but there's no single header, which group it. These functions are spread trough many files and it's almost impossible to get good overview. Another problem is that some functions are generated during compilation (I only know about functions for emitting rtx for instructions, are there any other?). Ok, reading source code is some way to handle it, but GCC is simply too huge. Maybe somewhere deep inside mailing lists there is some discussion about internal API? Any document? At least maybe there is any description of RTL API and how it's divided into multiple files? I found here (http://gcc.gnu.org/wiki/GettingStarted) promissing link for generated doxygen reference, but it's broken. Do yopu know any similar page? Thanks for help!