Change from Dave.
[gcc.git] / gcc / LANGUAGES
1 Right now there is no documentation for the GCC tree -> rtl interfaces
2 (or more generally the interfaces for adding new languages).
3
4 Such documentation would be of great benefit to the project. Until such
5 time as we can formally start documenting the interface this file will
6 serve as a repository for information on these interface and any incompatable
7 changes we've made.
8
9 Apr 7, 1998:
10 The interface between toplev.c and the language front ends for opening the
11 source file has changed:
12
13 o init_lex() has been renamed to init_parse (char *filename) where filename
14 is the name of the source file.
15 o The code in toplev.c which opened the source file should be moved to
16 the new init_parse function.
17 o toplev.c now calls finish_parse() instead of closing the source file
18 using fclose(). This should now be done in finish_parse, if necessary.
19
20 Apr 1, 1998:
21 Front-ends must now define lang_print_xnode. It is safe for this
22 function to do nothing. See c-lang.c.
23
24 Feb 1, 1998:
25
26 GCC used to store structure sizes & offsets to elements as bitsize
27 quantities. This causes problems because a structure can only be
28 (target memsize / 8) bytes long (this may effect arrays too). This
29 is particularly problematical on machines with small address spaces.
30
31 So:
32
33 All trees that represent sizes in bits should have a TREE_TYPE of
34 bitsizetype (rather than sizetype).
35
36 Accordingly, when such values are computed / initialized, care has to
37 be takes to use / compute the proper type.
38
39 When a size in bits is converted into a size in bytes, which is expressed
40 in trees, care should be taken to change the tree's type again to sizetype.
41
42 We've updated C, C++, Fortran & Objective-C to work with the new
43 scheme. Other languages will need to be updated accordingly.
44 Contact amylaar@cygnus.com for additional information.
45
46 ?? 1997:
47
48 In an effort to decrease cache thrashing and useless loads we've changed the
49 third argument to the DEFTREECODE macro to be a single char. This will
50 effect languages that defined their own tree codes (usually in a .def file).
51
52 Old way:
53
54 DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", "d", 0)
55
56 New way:
57
58 DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", 'd', 0)