Target hooks would often be interesting for plugins to modify. And some proposed new plugin callbacks would also be interesting to have as target hooks. Therefore, I would like target hooks to become writeable by plugins, and make it much easier to add new target hooks in the GCC sources.
Right now, to make a new target hook, you have to add a new field in target.h, define a new default in target-def.h, place the new macro in exactly the right position there of the right initializer macro, describe the new hook in tm.texi, and if you need a new function with a bunch of parameters returning a constant, you have to add this to hooks.c . I would like to be able to do all this by adding a single entry in a new definition file; and the information should also be usable by plugin sources so that they can automatically make wrappers for all function-type hooks. Most of the ICI unroll_parameter_handler / graphite_parameter_handler callbacks can the be made into target hooks.