Existing call graph infrastructure enhancement

2014-06-13  Martin Liska  <mliska@suse.cz>
	    Honza Hubicka  <hubicka@ucw.cz>

	* gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
	* ipa-utils.h (polymorphic_type_binfo_p): Function marked external
	instead of static.
	* ipa-devirt.c (polymorphic_type_binfo_p): Likewise.
	* ipa-prop.h (count_formal_params): Likewise.
	* ipa-prop.c (count_formal_params): Likewise.
	* ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
	profiles for semantically equivalent functions.
	* passes.c (do_per_function): If we load body of a function during WPA,
	this condition should behave same.
	* varpool.c (ctor_for_folding): More tolerant assert for variable
	aliases created during WPA.
IPA ICF pass

2014-06-13  Martin Liska  <mliska@suse.cz>
	    Jan Hubicka  <hubicka@ucw.cz>

	* Makefile.in: New pass object file added.
	* common.opt: New -fipa-icf flag introduced.
	* doc/invoke.texi: Documentation enhanced for the pass.
	* lto-section-in.c: New LTO section for a summary created by IPA-ICF.
	* lto-streamer.h: New section name introduced.
	* opts.c: Optimization is added to -O2.
	* passes.def: New pass added.
	* timevar.def: New time var for IPA-ICF.
	* tree-pass.h: Pass construction function.
	* ipa-icf.h: New pass header file added.
	* ipa-icf.c: New pass source file added.
Existing tests fix

2014-06-13  Martin Liska  <mliska@suse.cz>
        Honza Hubicka  <hubicka@ucw.cz>

    * c-c++-common/rotate-1.c: Text
    * c-c++-common/rotate-2.c: New test.
    * c-c++-common/rotate-3.c: Likewise.
    * c-c++-common/rotate-4.c: Likewise.
    * g++.dg/cpp0x/rv-return.C: Likewise.
    * g++.dg/cpp0x/rv1n.C: Likewise.
    * g++.dg/cpp0x/rv1p.C: Likewise.
    * g++.dg/cpp0x/rv2n.C: Likewise.
    * g++.dg/cpp0x/rv3n.C: Likewise.
    * g++.dg/cpp0x/rv4n.C: Likewise.
    * g++.dg/cpp0x/rv5n.C: Likewise.
    * g++.dg/cpp0x/rv6n.C: Likewise.
    * g++.dg/cpp0x/rv7n.C: Likewise.
    * gcc.dg/ipa/ipacost-1.c: Likewise.
    * gcc.dg/ipa/ipacost-2.c: Likewise.
    * gcc.dg/ipa/ipcp-agg-6.c: Likewise.
    * gcc.dg/ipa/remref-2a.c: Likewise.
    * gcc.dg/ipa/remref-2b.c: Likewise.
    * gcc.dg/pr46309-2.c: Likewise.
    * gcc.dg/torture/ipa-pta-1.c: Likewise.
    * gcc.dg/tree-ssa/andor-3.c: Likewise.
    * gcc.dg/tree-ssa/andor-4.c: Likewise.
    * gcc.dg/tree-ssa/andor-5.c: Likewise.
    * gcc.dg/vect/no-vfa-pr29145.c: Likewise.
    * gcc.dg/vect/vect-cond-10.c: Likewise.
    * gcc.dg/vect/vect-cond-9.c: Likewise.
    * gcc.dg/vect/vect-widen-mult-const-s16.c: Likewise.
    * gcc.dg/vect/vect-widen-mult-const-u16.c: Likewise.
    * gcc.dg/vect/vect-widen-mult-half-u8.c: Likewise.
    * gcc.target/i386/bmi-1.c: Likewise.
    * gcc.target/i386/bmi-2.c: Likewise.
    * gcc.target/i386/pr56564-2.c: Likewise.
    * g++.dg/opt/pr30965.C: Likewise.
    * g++.dg/tree-ssa/pr19637.C: Likewise.
    * gcc.dg/guality/csttest.c: Likewise.
    * gcc.dg/ipa/iinline-4.c: Likewise.
    * gcc.dg/ipa/iinline-7.c: Likewise.
    * gcc.dg/ipa/ipa-pta-13.c: Likewise.
New tests introduction

2014-06-13  Martin Liska  <mliska@suse.cz>
        Honza Hubicka  <hubicka@ucw.cz>

    * gcc/testsuite/g++.dg/ipa/ipa-se-1.C: New test.
    * gcc/testsuite/g++.dg/ipa/ipa-se-2.C: Likewise.
    * gcc/testsuite/g++.dg/ipa/ipa-se-3.C: Likewise.
    * gcc/testsuite/g++.dg/ipa/ipa-se-4.C: Likewise.
    * gcc/testsuite/g++.dg/ipa/ipa-se-5.C: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-1.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-10.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-11.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-12.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-13.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-14.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-15.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-16.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-17.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-18.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-19.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-2.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-20.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-21.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-22.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-23.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-24.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-25.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-26.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-27.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-28.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-3.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-4.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-5.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-6.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-7.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-8.c: Likewise.
    * gcc/testsuite/gcc.dg/ipa/ipa-se-9.c: Likewise.