This includes draft code for function cloning.
This code is as yet completely untested. Could someone provide a simple
test file set so that I can check / possibly debug the code?
In order to build the plugins, you should have a GCC 4.5 snapshot
installed which is built from sources more recent that my patch from
the 1st of December. Unless this is your default compiler (probably
not a good idea yet), you have to set the environment variable 'gcc' to
the path to this GCC 4.5 gcc binary to compile the ici / adapt plugins,
e.g.:
(cd ici; make /user/local/gcc-4-5/bin/gcc)
(cd adapt-1.0; make /user/local/gcc-4-5/bin/gcc)
The ici plugin has to be loaded before the adapt plugin can be loaded.
The options for instrumentation / cloning are:
-fplugin-arg-ici-instrument-functions
-fplugin-arg-ici-clone-functions
All the passes and the gimple_pass_lists in the #IP# pass file now have
a "pass_list" attribute. If this attribute doesn't match the "pass_list"
parameter during PLUGIN_ALL_IPA_PASSES_EXECUTION, that pass / gimple_pass_list
is skipped.
The summary passes are now executed more or less unchanged, using the
generate_summary function of the wrapper pass.