Merging the cxx-conversion branch into trunk

Diego Novillo dnovillo@google.com
Thu Aug 2 18:58:00 GMT 2012


We are about ready to have the cxx-conversion branch merged back into trunk.

This merge will change the following:

1- The compiler can only be built with a C++ compiler.

2- The tree macros can be called from gdb (when GCC is built with -g3).

3- htab and VEC have been converted to use C++ templates. The existing 
API is still present as wrappers that call the new API. We will change 
this after the branch is merged.

4- gengtype is now capable of supporting user-defined structure markers. 
This allows users to have structures in GC memory for which gengtype 
does not know how to generate marking code for.

I am currently debugging this change. After I fix the remaining PCH 
failures, I will send the patch for review.


Our immediate plan after we merge the branch into trunk includes:

- Fix any failures caused by the change.
- Modifying all the user code for VEC and htab to use the new interfaces.
- Convert double_int.
- Convert cgraph.
- Convert the pass manager.
- Convert hooks.

After this round of changes, we are planning to work on more API 
cleanups (e.g., adding the introspection API that would be usable for 
plugins as we discussed in the Plugins BoF in Prague).

I would also like to reduce the amount of code that is being generated 
by gengtype. There is a lot of boilerplate code that could be offloaded 
to user-provided functions. This would reduce the number of GTY markings 
that we need to support. There are other aspects of this that I will 
include in the gengtype patch that I'm finishing up.

We will keep the branch alive to work on bigger scale changes that will 
not be ready for this release (e.g., experimenting with gimple and tree).

I will split up the merge patch in 4 or 5 chunks to simplify reviews. 
For now, we would appreciate if folks test the branch with:

$ svn co ssh://gcc.gnu.org/svn/gcc/branches/cxx-conversion
$ mkdir bld && cd bld
$ ../cxx-conversion/configure --enable-languages=all,ada,go && make 
bootstrap && make check

We welcome any suggestions (and volunteers!)


Thanks.



More information about the Gcc mailing list