> gcc/ChangeLog:
>
> * common.opt: Add cache partitioning.
> * flag-types.h (enum lto_partition_model): Likewise.
>
> gcc/lto/ChangeLog:
>
> * lto-partition.cc (new_partition): Use new_partition_no_push.
> (new_partition_no_push): New.
> (free_ltrans_partition): New.
> (free_ltrans_partitions): Use free_ltrans_partition.
> (join_partitions): New.
> (split_partition_into_nodes): New.
> (is_partition_reorder): New.
> (class partition_set): New.
> (distribute_n_partitions): New.
> (partition_over_target_split): New.
> (partition_binary_split): New.
> (partition_fixed_split): New.
> (class partitioner_base): New.
> (class partitioner_default): New.
> (lto_cache_map): New.
> * lto-partition.h (lto_cache_map): New.
> * lto.cc (do_whole_program_analysis): Use lto_cache_map.
>
> gcc/testsuite/ChangeLog:
>
> * gcc.dg/completion-2.c: Add -flto-partition=cache.
> +/* Free memory used by ltrans partition.
> + Encoder can be kept to be freed after streaming. */
> +static void
> +free_ltrans_partition (ltrans_partition part, bool delete_encoder)
> + {
No two spaces here (indent everything to left by 2).
> + if (part->initializers_visited)
> + delete part->initializers_visited;
> + if (delete_encoder)
> + lto_symtab_encoder_delete (part->encoder);
> + free (part);
It would make sense to turn this into C++ and use destructors
(incrementally).
OK,
Honza