2013-05-02  Richard Biener  <rguenther@suse.de>

	* graphds.h (struct graph): Add obstack member.
	* graphds.c (new_graph): Initialize obstack and allocate
	vertices from it.
	(add_edge): Allocate edge from the obstack.
	(free_graph): Free the obstack instead of all edges and
	vertices.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198539 138bc75d-0d04-0410-961f-82ee72b054a4
2013-05-02  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/56988
	* ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
	* ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
	flags match.
	(find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
	ipa_agg_replacement_value structures.
	(known_aggs_to_agg_replacement_list): Likewise.
	* ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
	(read_agg_replacement_chain): Likewise.
	(ipcp_transform_function): Also check that by_ref flags match.

testsuite/
	* gcc.dg/ipa/pr56988.c: New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198540 138bc75d-0d04-0410-961f-82ee72b054a4