How the program is cut up before the link time work is spread over it, from -flto-partition=.
A partition is a set of functions that are generated together, and where the cuts fall decides
both how well the work spreads and how much is visible from inside one piece. The names are
gcc’s and so are the shapes: one piece per input file, pieces balanced by size, one piece for
the whole program, a piece per function, or no partitioning at all.
-flto-partition=balanced, and what gcc does when nothing asks. Pieces of roughly equal
size, which is the answer that spreads the work best and is why it is the default.
-flto-partition=1to1. One piece per input file, which keeps the generated code in the
same order the inputs were in and is what a build comparing two outputs wants.