]>
Commit | Line | Data |
---|---|---|
f8dac6eb R |
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 | ||
d57de215 JM |
9 | 2001-02-26: |
10 | A DECL_INITIAL of NULL_TREE or error_mark_node in a VAR_DECL is no longer | |
11 | taken to signify a tentative definition which should not be emitted until | |
12 | end-of-file. Frontends which want that behavior should set | |
13 | DECL_DEFER_OUTPUT before calling rest_of_decl_compilation. | |
14 | ||
f09db6e0 NC |
15 | Aug 31, 1998: |
16 | The interface to HANDLE_PRAGMA has changed. It now takes three arguments. | |
17 | The first two are pointers to functions that should be used to read characters | |
18 | from the input stream, and to push them back into the input stream respectively. | |
19 | The third argument is a pointer to a null terminate string which is the first | |
20 | word after #pragma. The expression supplied by HANDLE_PRAGMA should return | |
21 | non-zero if it parsed and implemented the pragma. Otherwise it should return | |
22 | zero, and leave the input stream as it was before the expression was evaluated. | |
23 | ||
24 | A new back-end definable macro has been added: INSERT_ATTRIBUTES. This macro | |
25 | allows backend to add attributes to decls as they are created. | |
26 | ||
a0d85b75 DB |
27 | Jun 10, 1998: |
28 | The interface to lang_decode_option has changed. It now uses and argc/argv | |
29 | interface to allow for options that use more than one input string. The new | |
30 | declaration is: int lang_decode_option (int argc, char** argv). It now | |
31 | returns the number of input strings processed, or 0 if the option is | |
32 | unknown. | |
33 | ||
b53beeb2 RH |
34 | Jun 7, 1998: |
35 | Front-ends must now define lang_init_options. It is safe for this | |
36 | function to do nothing. See c-lang.c. | |
37 | ||
a6d7e156 JL |
38 | Apr 21, 1998: |
39 | Front ends which link with c-common or other files from the C/C++ | |
40 | front-ends may need to handle TI types. Look for references to | |
41 | [unsigned]int_DI_type_node in your front end. If you have references | |
42 | to these variables, you'll need up update the front end. | |
43 | ||
44 | To update the front end you must mirror all the code which currently | |
45 | deals with intDI_type_node to also handle intTI_type_node. | |
46 | ||
47 | ||
5a5732cf JL |
48 | Apr 7, 1998: |
49 | The interface between toplev.c and the language front ends for opening the | |
50 | source file has changed: | |
51 | ||
52 | o init_lex() has been renamed to init_parse (char *filename) where filename | |
53 | is the name of the source file. | |
54 | o The code in toplev.c which opened the source file should be moved to | |
55 | the new init_parse function. | |
56 | o toplev.c now calls finish_parse() instead of closing the source file | |
57 | using fclose(). This should now be done in finish_parse, if necessary. | |
58 | ||
f36c0c09 JL |
59 | Apr 1, 1998: |
60 | Front-ends must now define lang_print_xnode. It is safe for this | |
61 | function to do nothing. See c-lang.c. | |
f8dac6eb R |
62 | |
63 | Feb 1, 1998: | |
64 | ||
65 | GCC used to store structure sizes & offsets to elements as bitsize | |
66 | quantities. This causes problems because a structure can only be | |
67 | (target memsize / 8) bytes long (this may effect arrays too). This | |
68 | is particularly problematical on machines with small address spaces. | |
69 | ||
70 | So: | |
71 | ||
72 | All trees that represent sizes in bits should have a TREE_TYPE of | |
73 | bitsizetype (rather than sizetype). | |
74 | ||
75 | Accordingly, when such values are computed / initialized, care has to | |
76 | be takes to use / compute the proper type. | |
77 | ||
78 | When a size in bits is converted into a size in bytes, which is expressed | |
79 | in trees, care should be taken to change the tree's type again to sizetype. | |
80 | ||
81 | We've updated C, C++, Fortran & Objective-C to work with the new | |
82 | scheme. Other languages will need to be updated accordingly. | |
83 | Contact amylaar@cygnus.com for additional information. | |
84 | ||
c3356143 | 85 | ?? 1997: |
f8dac6eb | 86 | |
c3356143 JL |
87 | In an effort to decrease cache thrashing and useless loads we've changed the |
88 | third argument to the DEFTREECODE macro to be a single char. This will | |
d57de215 | 89 | affect languages that defined their own tree codes (usually in a .def file). |
c3356143 JL |
90 | |
91 | Old way: | |
92 | ||
93 | DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", "d", 0) | |
94 | ||
95 | New way: | |
96 | ||
97 | DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", 'd', 0) |