sorry I get incorrect gcc version info the correct version which doing dump is gcc 4.1.2
I dump rtl with the gcc 4.4.1 have the line info thanks for you reply 2010/5/20 Ian Lance Taylor <i...@google.com>: > kito <npick...@gmail.com> writes: > >> Hello every body >> I have read the rtl.h & rtl.c, >> but I don't realize the format for insn, call_insn and junp_insn >> >> it's define in rtl.def >> >> DEF_RTL_EXPR(JUMP_INSN, "jump_insn", "iuuBieie0", RTX_INSN) >> >> and it's dump by some real program >> >> (jump_insn 14 /* i */ >> 13 /* u */ >> 15 /* u */ >> 1 /* B */ >> (set (pc) >> (if_then_else (le (reg:CCGC 17 flags) >> (const_int 0 [0x0])) >> (label_ref 24) >> (pc))) /* e?? */ >> -1 /* i? */ >> (nil) /* e? */ >> (nil) /* 0? */ ) >> >> so my question is where is the i after B ?? > > Which program is doing the dump? The generator programs (genattrtab, > etc.) produce different dumps from the compilers. > > The 'i' after the 'B' represents an insn locator, a value of type > source_location aka location_t aka unsigned int. A generator program > will never print that value. A compiler will print it only if it has > a value--if the instruction has a known location. It will be printed > as filename:lineno when available. > > The corresponding code in print-rtl.c is: > > case 'i': > if (i == 4 && INSN_P (in_rtx)) > { > #ifndef GENERATOR_FILE > /* Pretty-print insn locators. Ignore scoping as it is mostly > redundant with line number information and do not print > anything > when there is no location information available. */ > if (INSN_LOCATOR (in_rtx) && insn_file (in_rtx)) > fprintf(outfile, " %s:%i", insn_file (in_rtx), insn_line > (in_rtx)); > #endif > > Ian >