This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Symbol table 2/many: break out partitioning code out of lto.c

On 4/10/12 9:32 AM, Jan Hubicka wrote:
LTO partitioning logic is one of places that are really symmetric accross most types
of symbols; also the implementation is convoluted now by split in between lto.c that
computes cgraph/varpool node sets specifying partitions and lto-cgraph.c that
computes a boundaries (i.e. what functions/vars are referenced from given unit).
There is a lot of logic duplication in between the promotion done in lto.c and boundary
logic + there are subtle differences causing a lot of pain.

The plan is to reorg the code to new API and unify it, so the partitioning code
produce boundaries on the run and represents every of the partition by the encoder,
not by sets.


	* lto.c: Update copyright; remove params.h, ipa-inline.h
	and ipa-utils.h inlines; inline lto-partition.h
	(ltrans_partition_def, ltrans_partition, add_cgraph_node_to_partition,
	add_varpool_node_to_partition, new_partition, free_ltrans_partitions,
	add_references_to_partition, add_cgraph_node_to_partition_1,
	add_cgraph_node_to_partition, add_varpool_node_to_partition,
	undo_partition, partition_cgraph_node_p, partition_varpool_node_p,
	lto_1_to_1_map, node_cmp, varpool_node_cmp, lto_balanced_map,
	promote_var, promote_fn, lto_promote_cross_file_statics): move to...
	* lto-partition.c: ... here; new file.
	* lto-partition.h: New file.
	* (lto.o): Update dependencies.
	(lto-partition.o): New.

OK, thanks.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]