/* Provide a slim dump the instruction chain starting at FIRST to F, honoring the dump flags given in FLAGS. Currently, TDF_BLOCKS and TDF_DETAILS include more information on the basic blocks. */ void print_rtl_slim_with_bb (FILE *f, rtx first, int flags) { basic_block current_bb = NULL; rtx insn; for (insn = first; NULL != insn; insn = NEXT_INSN (insn)) { if ((flags & TDF_BLOCKS) && (INSN_P (insn) || GET_CODE (insn) == NOTE) && BLOCK_FOR_INSN (insn) && !current_bb) { current_bb = BLOCK_FOR_INSN (insn); dump_bb_info (current_bb, true, false, flags, ";; ", f); } dump_insn_slim (f, insn); if ((flags & TDF_BLOCKS) && current_bb && insn == BB_END (current_bb)) { dump_bb_info (current_bb, false, true, flags, ";; ", f); current_bb = NULL; } } }
/* Same as above, but stop at LAST or when COUNT == 0. If COUNT < 0 it will stop only at LAST or NULL rtx. */ void print_rtl_slim (FILE *f, rtx first, rtx last, int count, int flags) { basic_block current_bb = NULL; rtx insn, tail; tail = last ? NEXT_INSN (last) : NULL_RTX; for (insn = first; (insn != NULL) && (insn != tail) && (count != 0); insn = NEXT_INSN (insn)) { if ((flags & TDF_BLOCKS) && (INSN_P (insn) || GET_CODE (insn) == NOTE) && BLOCK_FOR_INSN (insn) && !current_bb) { current_bb = BLOCK_FOR_INSN (insn); dump_bb_info (current_bb, true, false, flags, ";; ", f); } dump_insn_slim (f, insn); if ((flags & TDF_BLOCKS) && current_bb && insn == BB_END (current_bb)) { dump_bb_info (current_bb, false, true, flags, ";; ", f); current_bb = NULL; } if (count > 0) count--; } }