r180074 - in /branches/pph/gcc: cp/ChangeLog.pp...
crowl@gcc.gnu.org
crowl@gcc.gnu.org
Mon Oct 17 06:20:00 GMT 2011
Author: crowl
Date: Mon Oct 17 06:20:02 2011
New Revision: 180074
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180074
Log:
Add function merging. First, let function mangled names match.
Second, overwrite existing struct functions for merged functions.
Third, add filtering for already emitted functions.
The result is ICEs in the call graph code.
Add tests for overload sets with more than one member.
Bootstrapped on x64.
2011-10-16 Lawrence Crowl <crowl@google.com>
Index: gcc/testsuite/ChangeLog.pph
* g++.dg/pph/c4inline.cc: Change to ICE in cgraph.
* g++.dg/pph/x1keyed.cc: Likewise.
* g++.dg/pph/x1keyno.cc: Likewise.
* g++.dg/pph/x4keyed.cc: Likewise.
* g++.dg/pph/x4keyex.cc: Likewise.
* g++.dg/pph/x4keyno.cc: Likewise.
* g++.dg/pph/x4tmplclass1.cc: Likewise.
* g++.dg/pph/x4tmplclass2.cc: Likewise.
* g++.dg/pph/x4tmplfuncinln.cc: Likewise.
* g++.dg/pph/x4tmplfuncninl.cc: Likewise.
* g++.dg/pph/x6rtti.cc: Likewise.
* g++.dg/pph/x7rtti.cc: Likewise.
* g++.dg/pph/z4tmplclass1.cc: Likewise.
* g++.dg/pph/z4tmplclass2.cc: Likewise.
* g++.dg/pph/z4tmplfuncinln.cc: Likewise.
* g++.dg/pph/z4tmplfuncninl.cc: Likewise.
* g++.dg/pph/x1tmplclass2.cc: Change to missing function.
Index: gcc/cp/ChangeLog.pph
2011-10-16 Lawrence Crowl <crowl@google.com>
* pph-streamer-in.c (pph_match_to_overload): Comment on overloading.
(pph_match_to_function): Allow functions to match for merging.
Comment on overloading.
(pph_match_to_link): Comment on overloading.
(pph_in_struct_function): Implement overwriting a struct function
when merging.
(pph_in_symtab): Add filtering for already emitted functions.
* pph-streamer.h (pph_trace_tree): Add a boolean parameter specifying
whether or not the tree was actually merged.
* pph-streamer.c (pph_trace_tree): Add a boolean parameter specifying
whether or not the tree was actually merged. Change output to
correspond. Update callers.
Added:
branches/pph/gcc/testsuite/g++.dg/pph/x0overset0.h
branches/pph/gcc/testsuite/g++.dg/pph/x1overset1.h
branches/pph/gcc/testsuite/g++.dg/pph/x1overset2.h
branches/pph/gcc/testsuite/g++.dg/pph/x2overset1.cc
branches/pph/gcc/testsuite/g++.dg/pph/x2overset2.cc
branches/pph/gcc/testsuite/g++.dg/pph/x4overset1.cc
branches/pph/gcc/testsuite/g++.dg/pph/x4overset2.cc
branches/pph/gcc/testsuite/g++.dg/pph/x4overset3.cc
branches/pph/gcc/testsuite/g++.dg/pph/x4overset4.cc
Modified:
branches/pph/gcc/cp/ChangeLog.pph
branches/pph/gcc/cp/pph-streamer-in.c
branches/pph/gcc/cp/pph-streamer-out.c
branches/pph/gcc/cp/pph-streamer.c
branches/pph/gcc/cp/pph-streamer.h
branches/pph/gcc/testsuite/ChangeLog.pph
branches/pph/gcc/testsuite/g++.dg/pph/c4inline.cc
branches/pph/gcc/testsuite/g++.dg/pph/x1keyed.cc
branches/pph/gcc/testsuite/g++.dg/pph/x1keyno.cc
branches/pph/gcc/testsuite/g++.dg/pph/x1tmplclass2.cc
branches/pph/gcc/testsuite/g++.dg/pph/x4keyed.cc
branches/pph/gcc/testsuite/g++.dg/pph/x4keyex.cc
branches/pph/gcc/testsuite/g++.dg/pph/x4keyno.cc
branches/pph/gcc/testsuite/g++.dg/pph/x4tmplclass1.cc
branches/pph/gcc/testsuite/g++.dg/pph/x4tmplclass2.cc
branches/pph/gcc/testsuite/g++.dg/pph/x4tmplfuncinln.cc
branches/pph/gcc/testsuite/g++.dg/pph/x4tmplfuncninl.cc
branches/pph/gcc/testsuite/g++.dg/pph/x6rtti.cc
branches/pph/gcc/testsuite/g++.dg/pph/x7rtti.cc
branches/pph/gcc/testsuite/g++.dg/pph/z4tmplclass1.cc
branches/pph/gcc/testsuite/g++.dg/pph/z4tmplclass2.cc
branches/pph/gcc/testsuite/g++.dg/pph/z4tmplfuncinln.cc
branches/pph/gcc/testsuite/g++.dg/pph/z4tmplfuncninl.cc
More information about the Gcc-cvs
mailing list