Dear all: Just follow up to my previous request on printing ddgs using the gcc. I am thankful to the people who gave comments. I still feel that I need some more from the GCC experts. I want ddgs for each basic blocks for each function at the RTL level. I looked inside the gcc code and found following functions which could be useful in this regard. 1- print_rtl_with_bb() in cfgrtl.c 2- create_ddg() in ddg.c 3- vcg_print_ddg() in ddg.c Now my questions are: 1- Is the function "print_rtl_with_bb" right place to create a DDG for each basic block? If I call the function "create_ddg" at this level, will it be able to give me latency between instructions and type of each instruction? 2- create_ddg has two arguments a) basic_block bb and b) int closing_branch_deps. What is the argument-b and how can I determine its value? Thanks in advance for your time and comments. -- Regards, Wei Li