| Right now there is no documentation for the GCC tree -> rtl interfaces |
| (or more generally the interfaces for adding new languages). |
| |
| Such documentation would be of great benefit to the project. Until such |
| time as we can formally start documenting the interface this file will |
| serve as a repository for information on these interface and any incompatable |
| changes we've made. |
| |
| Aug 31, 1998: |
| The interface to HANDLE_PRAGMA has changed. It now takes three arguments. |
| The first two are pointers to functions that should be used to read characters |
| from the input stream, and to push them back into the input stream respectively. |
| The third argument is a pointer to a null terminate string which is the first |
| word after #pragma. The expression supplied by HANDLE_PRAGMA should return |
| non-zero if it parsed and implemented the pragma. Otherwise it should return |
| zero, and leave the input stream as it was before the expression was evaluated. |
| |
| A new back-end definable macro has been added: INSERT_ATTRIBUTES. This macro |
| allows backend to add attributes to decls as they are created. |
| |
| Jun 10, 1998: |
| The interface to lang_decode_option has changed. It now uses and argc/argv |
| interface to allow for options that use more than one input string. The new |
| declaration is: int lang_decode_option (int argc, char** argv). It now |
| returns the number of input strings processed, or 0 if the option is |
| unknown. |
| |
| Jun 7, 1998: |
| Front-ends must now define lang_init_options. It is safe for this |
| function to do nothing. See c-lang.c. |
| |
| Apr 21, 1998: |
| Front ends which link with c-common or other files from the C/C++ |
| front-ends may need to handle TI types. Look for references to |
| [unsigned]int_DI_type_node in your front end. If you have references |
| to these variables, you'll need up update the front end. |
| |
| To update the front end you must mirror all the code which currently |
| deals with intDI_type_node to also handle intTI_type_node. |
| |
| |
| Apr 7, 1998: |
| The interface between toplev.c and the language front ends for opening the |
| source file has changed: |
| |
| o init_lex() has been renamed to init_parse (char *filename) where filename |
| is the name of the source file. |
| o The code in toplev.c which opened the source file should be moved to |
| the new init_parse function. |
| o toplev.c now calls finish_parse() instead of closing the source file |
| using fclose(). This should now be done in finish_parse, if necessary. |
| |
| Apr 1, 1998: |
| Front-ends must now define lang_print_xnode. It is safe for this |
| function to do nothing. See c-lang.c. |
| |
| Feb 1, 1998: |
| |
| GCC used to store structure sizes & offsets to elements as bitsize |
| quantities. This causes problems because a structure can only be |
| (target memsize / 8) bytes long (this may effect arrays too). This |
| is particularly problematical on machines with small address spaces. |
| |
| So: |
| |
| All trees that represent sizes in bits should have a TREE_TYPE of |
| bitsizetype (rather than sizetype). |
| |
| Accordingly, when such values are computed / initialized, care has to |
| be takes to use / compute the proper type. |
| |
| When a size in bits is converted into a size in bytes, which is expressed |
| in trees, care should be taken to change the tree's type again to sizetype. |
| |
| We've updated C, C++, Fortran & Objective-C to work with the new |
| scheme. Other languages will need to be updated accordingly. |
| Contact amylaar@cygnus.com for additional information. |
| |
| ?? 1997: |
| |
| In an effort to decrease cache thrashing and useless loads we've changed the |
| third argument to the DEFTREECODE macro to be a single char. This will |
| effect languages that defined their own tree codes (usually in a .def file). |
| |
| Old way: |
| |
| DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", "d", 0) |
| |
| New way: |
| |
| DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", 'd', 0) |