*参照元 [#u920dce8] #backlinks *説明 [#tb8cf940] -パス: [[gcc-8.3/gcc/gimple-pretty-print.c]] -FIXME: これは何? --説明 **引数 [#r5b7ba70] -pretty_printer *buffer -- --[[gcc-8.3/gcc/pretty_printer]] -gimple *gs -- --[[gcc-8.3/gcc/gimple]] -int spc -- -dump_flags_t flags -- --[[gcc-8.3/gcc/dump_flags_t]] **返り値 [#h31910ee] -なし **参考 [#df850b53] *実装 [#ua1d2359] /* Print the gimple statement GS on the pretty printer BUFFER, SPC spaces of indent. FLAGS specifies details to show in the dump (see TDF_* in dumpfile.h). The caller is responsible for calling pp_flush on BUFFER to finalize the pretty printer. */ void pp_gimple_stmt_1 (pretty_printer *buffer, gimple *gs, int spc, dump_flags_t flags) { if (!gs) return; if (flags & TDF_STMTADDR) pp_printf (buffer, "<&%p> ", (void *) gs); if ((flags & TDF_LINENO) && gimple_has_location (gs)) dump_location (buffer, gimple_location (gs)); if (flags & TDF_EH) { int lp_nr = lookup_stmt_eh_lp (gs); if (lp_nr > 0) pp_printf (buffer, "[LP %d] ", lp_nr); else if (lp_nr < 0) pp_printf (buffer, "[MNT %d] ", -lp_nr); } if ((flags & (TDF_VOPS|TDF_MEMSYMS)) && gimple_has_mem_ops (gs)) dump_gimple_mem_ops (buffer, gs, spc, flags); if (gimple_has_lhs (gs) && (flags & TDF_ALIAS)) dump_ssaname_info (buffer, gimple_get_lhs (gs), spc); switch (gimple_code (gs)) { case GIMPLE_ASM: dump_gimple_asm (buffer, as_a <gasm *> (gs), spc, flags); break; case GIMPLE_ASSIGN: dump_gimple_assign (buffer, as_a <gassign *> (gs), spc, flags); break; case GIMPLE_BIND: dump_gimple_bind (buffer, as_a <gbind *> (gs), spc, flags); break; case GIMPLE_CALL: dump_gimple_call (buffer, as_a <gcall *> (gs), spc, flags); break; case GIMPLE_COND: dump_gimple_cond (buffer, as_a <gcond *> (gs), spc, flags); break; case GIMPLE_LABEL: dump_gimple_label (buffer, as_a <glabel *> (gs), spc, flags); break; case GIMPLE_GOTO: dump_gimple_goto (buffer, as_a <ggoto *> (gs), spc, flags); break; case GIMPLE_NOP: pp_string (buffer, "GIMPLE_NOP"); break; case GIMPLE_RETURN: dump_gimple_return (buffer, as_a <greturn *> (gs), spc, flags); break; case GIMPLE_SWITCH: dump_gimple_switch (buffer, as_a <gswitch *> (gs), spc, flags); break; case GIMPLE_TRY: dump_gimple_try (buffer, as_a <gtry *> (gs), spc, flags); break; case GIMPLE_PHI: dump_gimple_phi (buffer, as_a <gphi *> (gs), spc, false, flags); break; case GIMPLE_OMP_PARALLEL: dump_gimple_omp_parallel (buffer, as_a <gomp_parallel *> (gs), spc, flags); break; case GIMPLE_OMP_TASK: dump_gimple_omp_task (buffer, as_a <gomp_task *> (gs), spc, flags); break; case GIMPLE_OMP_ATOMIC_LOAD: dump_gimple_omp_atomic_load (buffer, as_a <gomp_atomic_load *> (gs), spc, flags); break; case GIMPLE_OMP_ATOMIC_STORE: dump_gimple_omp_atomic_store (buffer, as_a <gomp_atomic_store *> (gs), spc, flags); break; case GIMPLE_OMP_FOR: dump_gimple_omp_for (buffer, as_a <gomp_for *> (gs), spc, flags); break; case GIMPLE_OMP_CONTINUE: dump_gimple_omp_continue (buffer, as_a <gomp_continue *> (gs), spc, flags); break; case GIMPLE_OMP_SINGLE: dump_gimple_omp_single (buffer, as_a <gomp_single *> (gs), spc, flags); break; case GIMPLE_OMP_TARGET: dump_gimple_omp_target (buffer, as_a <gomp_target *> (gs), spc, flags); break; case GIMPLE_OMP_TEAMS: dump_gimple_omp_teams (buffer, as_a <gomp_teams *> (gs), spc, flags); break; case GIMPLE_OMP_RETURN: dump_gimple_omp_return (buffer, gs, spc, flags); break; case GIMPLE_OMP_SECTIONS: dump_gimple_omp_sections (buffer, as_a <gomp_sections *> (gs), spc, flags); break; case GIMPLE_OMP_SECTIONS_SWITCH: pp_string (buffer, "GIMPLE_SECTIONS_SWITCH"); break; case GIMPLE_OMP_MASTER: case GIMPLE_OMP_TASKGROUP: case GIMPLE_OMP_SECTION: case GIMPLE_OMP_GRID_BODY: dump_gimple_omp_block (buffer, gs, spc, flags); break; case GIMPLE_OMP_ORDERED: dump_gimple_omp_ordered (buffer, as_a <gomp_ordered *> (gs), spc, flags); break; case GIMPLE_OMP_CRITICAL: dump_gimple_omp_critical (buffer, as_a <gomp_critical *> (gs), spc, flags); break; case GIMPLE_CATCH: dump_gimple_catch (buffer, as_a <gcatch *> (gs), spc, flags); break; case GIMPLE_EH_FILTER: dump_gimple_eh_filter (buffer, as_a <geh_filter *> (gs), spc, flags); break; case GIMPLE_EH_MUST_NOT_THROW: dump_gimple_eh_must_not_throw (buffer, as_a <geh_mnt *> (gs), spc, flags); break; case GIMPLE_EH_ELSE: dump_gimple_eh_else (buffer, as_a <geh_else *> (gs), spc, flags); break; case GIMPLE_RESX: dump_gimple_resx (buffer, as_a <gresx *> (gs), spc, flags); break; case GIMPLE_EH_DISPATCH: dump_gimple_eh_dispatch (buffer, as_a <geh_dispatch *> (gs), spc, flags); break; case GIMPLE_DEBUG: dump_gimple_debug (buffer, as_a <gdebug *> (gs), spc, flags); break; case GIMPLE_PREDICT: pp_string (buffer, "// predicted "); if (gimple_predict_outcome (gs)) pp_string (buffer, "likely by "); else pp_string (buffer, "unlikely by "); pp_string (buffer, predictor_name (gimple_predict_predictor (gs))); pp_string (buffer, " predictor."); break; case GIMPLE_TRANSACTION: dump_gimple_transaction (buffer, as_a <gtransaction *> (gs), spc, flags); break; default: GIMPLE_NIY; } } *コメント [#ga9b7954]