Currently -fopt-info-inline does nothing, as all of the dumping
relating to inlining uses fprintf rather than dumpfile.h's dump_*
interface.

This patch kit adds a %C format code to dumpfile.c for printing
cgraph_node *, and uses it to port many of the IPA dump messages
to the dump API.  I focused on the dump messages that seemed most
significant to end-users.

With this kit, -fopt-info-inline prints messages at callsites
such as e.g.:

t.c:16:6: optimized:  Inlining bar/1 into boo/2.
t.c:15:11: optimized:  Inlining foo/0 into boo/2.
t.c:24:12: optimized:  Inlining boo/2 into compute/3.

and this can be checked for via the dg-optimized test directive
(and appears in the -fsave-optimization-record result, etc).

Dave

David Malcolm (4):
  cgraph: add selftest::symbol_table_test
  dump_printf: add "%C" for dumping cgraph_node *
  support %f in pp_format
  ipa-inline.c/tree-inline.c: port from fprintf to dump API (PR ipa/86395)

 gcc/c-family/c-format.c                            |  59 +++++--
 gcc/c-family/c-format.h                            |   1 +
 gcc/cgraph.c                                       |  67 ++++++++
 gcc/cgraph.h                                       |  23 +++
 gcc/doc/invoke.texi                                |  13 ++
 gcc/dump-context.h                                 |   8 +
 gcc/dumpfile.c                                     | 115 +++++++++----
 gcc/ipa-inline.c                                   | 191 +++++++++++----------
 gcc/pretty-print.c                                 |   6 +
 gcc/pretty-print.h                                 |   1 +
 gcc/selftest-run-tests.c                           |   1 +
 gcc/selftest.h                                     |   1 +
 gcc/testsuite/g++.dg/ipa/devirt-12.C               |   2 +-
 gcc/testsuite/g++.dg/ipa/imm-devirt-1.C            |   2 +-
 .../g++.dg/tree-prof/inline_mismatch_args.C        |   2 +-
 gcc/testsuite/g++.dg/tree-ssa/inline-1.C           |   2 +-
 gcc/testsuite/g++.dg/tree-ssa/inline-2.C           |   2 +-
 gcc/testsuite/g++.dg/tree-ssa/inline-3.C           |   2 +-
 gcc/testsuite/g++.dg/tree-ssa/inline-4.C           |  32 ++++
 gcc/testsuite/gcc.dg/format/gcc_diag-10.c          |   7 +-
 gcc/testsuite/gcc.dg/ipa/fopt-info-inline-1.c      |  44 +++++
 gcc/testsuite/gcc.dg/ipa/inline-4.c                |   4 +-
 gcc/testsuite/gcc.dg/ipa/inline-7.c                |   6 +-
 gcc/testsuite/gcc.dg/ipa/inlinehint-4.c            |   4 +-
 gcc/testsuite/gcc.dg/plugin/dump-1.c               |   2 +-
 gcc/testsuite/gcc.dg/plugin/dump-2.c               |   2 +-
 gcc/testsuite/gcc.dg/pr26570.c                     |   1 +
 gcc/testsuite/gcc.dg/pr71969-2.c                   |   2 +-
 gcc/testsuite/gcc.dg/pr71969-3.c                   |   2 +-
 gcc/testsuite/gcc.dg/tree-ssa/inline-11.c          |   2 +-
 gcc/testsuite/gcc.dg/tree-ssa/inline-3.c           |   6 +-
 gcc/testsuite/gcc.dg/tree-ssa/inline-4.c           |   6 +-
 gcc/testsuite/gcc.dg/tree-ssa/inline-8.c           |   2 +-
 gcc/testsuite/gfortran.dg/pr79966.f90              |   2 +-
 gcc/tree-inline.c                                  |  20 ++-
 35 files changed, 468 insertions(+), 174 deletions(-)
 create mode 100644 gcc/testsuite/g++.dg/tree-ssa/inline-4.C
 create mode 100644 gcc/testsuite/gcc.dg/ipa/fopt-info-inline-1.c

-- 
1.8.5.3

Reply via email to