Dear all: I am trying to build DDG for all functions from a RTL file. I have some questions: ;; ;; Full RTL generated for this function: ;; (note 1 0 12 ("test.c") 7) what is a "note" in the above instruction ? and what does the sequence "1 0 12" represent? Does "note" represent a dummy node in a basic block? ;; Start of basic block 0, registers live: (nil) (note 12 1 2 0 [bb 0] NOTE_INSN_BASIC_BLOCK) (note 2 12 10 0 NOTE_INSN_DELETED) (note 10 2 11 0 NOTE_INSN_FUNCTION_BEG) (note 11 10 13 0 NOTE_INSN_DELETED) ;; End of basic block 0, registers live: (nil) ;; Start of basic block 1, registers live: (nil) (note 13 11 14 1 [bb 1] NOTE_INSN_BASIC_BLOCK) (insn 14 13 15 1 (set (reg/v:SI 62 [ j ]) (const_int 0 [0x0])) -1 (nil) (nil)) Here again what does the sequence "14 13 15 1" mean? "1" gives you the block number. "13" is the node/instruction number. What about others? In order to determine a data dependency among the instructions, should I compare or look for label "reg/v" in the instruction ? what else should I compare or look for to build data dependency between instructions? Thanks Wei Li (insn 15 14 16 1 (set (reg/v:SI 63 [ i ]) (const_int 0 [0x0])) -1 (nil) (nil)) ;; End of basic block 1, registers live: (nil) ;; Start of basic block 2, registers live: (nil) (code_label 16 15 17 2 2 "" [2 uses]) (note 17 16 18 2 [bb 2] NOTE_INSN_BASIC_BLOCK) (note 18 17 19 2 ("test.c") 21) (insn 19 18 20 2 (set (reg:DI 5 di) (symbol_ref/f:DI ("*.LC0") [flags 0x2] <string_cst 0x2b94a63c3100>)) -1 (nil) (nil)) (call_insn 20 19 21 2 (set (reg:SI 0 ax) (call (mem:QI (symbol_ref:DI ("puts") [flags 0x41] <function_decl 0x2b94a61a3000 __builtin_puts>) [0 S1 A8]) (const_int 0 [0x0]))) -1 (nil) (nil) (expr_list:REG_DEP_TRUE (use (reg:DI 5 di)) (nil))) (note 21 20 22 2 ("test.c") 13) (insn 22 21 23 2 (parallel [ (set (reg/v:SI 62 [ j ]) (plus:SI (reg/v:SI 62 [ j ]) (const_int 1 [0x1]))) (clobber (reg:CC 17 flags)) ]) -1 (nil) (nil)) (insn 23 22 24 2 (set (reg:CCGC 17 flags) (compare:CCGC (reg/v:SI 62 [ j ]) (const_int 999 [0x3e7]))) -1 (nil) (nil)) (jump_insn 24 23 25 2 (set (pc) (if_then_else (le (reg:CCGC 17 flags) (const_int 0 [0x0])) (label_ref 16) (pc))) -1 (nil) (expr_list:REG_BR_PROB (const_int 8900 [0x22c4]) (nil))) ;; End of basic block 2, registers live: (nil) -- Regards, Wei Li