On Thu, 18 Nov 2010, Joern Rennecke wrote:

> 1: At the end, target-def.h initalizes targetm, and whatever vectors we
>   might want to split out of it nor or in the future.

Disapprove, in the form in which you describe it.  A key point of 
splitting vectors is that different vectors are linked into different 
programs and so need to be initialized in different places because each 
vector references functions only present in certain programs.  See the 
sets of hooks I proposed in 
<http://gcc.gnu.org/ml/gcc/2010-10/msg00294.html>, for core compiler, 
driver and shared between the two.  There are also the C-family hooks.

If you put the initialization in the header, you need different headers 
for each set of programs in which hooks are used.

> 2: genhooks is changed so that is creates accessor macros for the target
>   vector members, which are placed in a file included by target.h .

Disapprove.  I consider it cleaner to refer directly to the hook at the 
sites where it is used rather than adding macros; we want to reduce the 
number of layers of macros, and have such macros as there are visible in 
as narrow a range of places as possible (for example, only where the hook 
vectors are initialized and nowhere else), rather than adding to them.

> 3: Hook call sites get changed to use the accessor macros, than can be
>   staged split by affectde hook and/or affected files.

Disapprove.  See above.

> 4: Once all call site of a hook have been converted to the accessor macros,
>   the hook can be moved around painlessly.

Moving of hooks should be infrequent enough - if you think about proper 
placement in the first place - that the need for mechanical search and 
replace when you move them is not a problem.  I'll be moving some hooks in 
due course to share them between the driver and the compilers proper, and 
the renaming will be one of the easiest parts of the long patch series.

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to