mirror of
https://fuchsia.googlesource.com/third_party/pigweed.googlesource.com/pigweed/pigweed
synced 2024-09-21 14:16:26 +00:00
3fde6b116f
This change adds a GN template which creates a size report card across a set of different toolchains. The toolchains are defined in a build variable, each with an optional linker script and Bloaty config. The size report template builds a base and diff executable with each of the toolchains and compares the size difference of each. Example output for the host target: simple_bloat_toolchain ────────────────────── ┌───────────┬─────────┬────────┬───────┬───────┐ │ Label │ Segment │ Before │ Delta │ After │ ├═══════════┼═════════┼════════┼═══════┼═══════┤ │ gcc -Og │ CODE │ 413 │ +32 │ 445 │ │ │ RAM │ 576 │ +8 │ 584 │ ├───────────┼─────────┼────────┼───────┼───────┤ │ gcc -Os │ CODE │ 429 │ +16 │ 445 │ │ │ RAM │ 576 │ +8 │ 584 │ ├───────────┼─────────┼────────┼───────┼───────┤ │ gcc -O2 │ CODE │ 429 │ +32 │ 461 │ │ │ RAM │ 576 │ +8 │ 584 │ ├───────────┼─────────┼────────┼───────┼───────┤ │ clang -Og │ CODE │ 448 │ +32 │ 480 │ │ │ RAM │ 113 │ +15 │ 128 │ ├───────────┼─────────┼────────┼───────┼───────┤ │ clang -Os │ CODE │ 432 │ +16 │ 448 │ │ │ RAM │ 113 │ +15 │ 128 │ ├───────────┼─────────┼────────┼───────┼───────┤ │ clang -O2 │ CODE │ 448 │ +80 │ 528 │ │ │ RAM │ 113 │ +15 │ 128 │ └───────────┴─────────┴────────┴───────┴───────┘ Change-Id: I2c65f4d4f61354b9779628f207297eacd04470b9
49 lines
1.2 KiB
ReStructuredText
49 lines
1.2 KiB
ReStructuredText
.. default-domain:: cpp
|
|
|
|
.. highlight:: sh
|
|
|
|
.. _chapter-bloat:
|
|
|
|
--------
|
|
pw_bloat
|
|
--------
|
|
The bloat module provides tools to generate size report cards for output
|
|
binaries.
|
|
|
|
.. _bloat-howto:
|
|
|
|
Defining size reports
|
|
=====================
|
|
|
|
.. TODO(frolv): Explain how bloat works and how to set it up.
|
|
|
|
Documentation integration
|
|
=========================
|
|
Bloat reports are easy to add to documentation files. All ``pw_size_report``
|
|
targets output a ``.rst`` file containing a tabular report card. This file
|
|
can be imported directly into a documentation file using the ``include``
|
|
directive.
|
|
|
|
For example, the ``simple_bloat_loop`` and ``simple_bloat_function`` size
|
|
reports under ``//pw_bloat/examples`` are imported into this file as follows:
|
|
|
|
.. code:: rst
|
|
|
|
Simple bloat loop example
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
.. include:: examples/simple_bloat_loop.rst
|
|
|
|
Simple bloat function example
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
.. include:: examples/simple_bloat_function.rst
|
|
|
|
Resulting in this output:
|
|
|
|
Simple bloat loop example
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
.. include:: examples/simple_bloat_loop.rst
|
|
|
|
Simple bloat function example
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
.. include:: examples/simple_bloat_function.rst
|