150397SobrienRight now there is no documentation for the GCC tree -> rtl interfaces
250397Sobrien(or more generally the interfaces for adding new languages).
350397Sobrien
450397SobrienSuch documentation would be of great benefit to the project.  Until such
550397Sobrientime as we can formally start documenting the interface this file will
650397Sobrienserve as a repository for information on these interface and any incompatable
750397Sobrienchanges we've made.
850397Sobrien
9169689Skan2004-09-09:
10169689Skan  In an effort to decrease execution time, single char tree code
11169689Skan  classes were changed to enumerated values.
12169689Skan
13169689Skan  Old way:
14169689Skan
15169689Skan    DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", 'd', 0)
16169689Skan
17169689Skan  New way:
18169689Skan
19169689Skan    DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", tcc_declaration, 0)
20169689Skan
2190075Sobrien2001-02-26:
2290075Sobrien  A DECL_INITIAL of NULL_TREE or error_mark_node in a VAR_DECL is no longer
2390075Sobrien  taken to signify a tentative definition which should not be emitted until
2490075Sobrien  end-of-file.  Frontends which want that behavior should set
2590075Sobrien  DECL_DEFER_OUTPUT before calling rest_of_decl_compilation.
2690075Sobrien
2750397SobrienFeb 1, 1998:
2850397Sobrien
2950397Sobrien  GCC used to store structure sizes & offsets to elements as bitsize
3050397Sobrien  quantities.  This causes problems because a structure can only be
3150397Sobrien  (target memsize / 8) bytes long (this may effect arrays too).  This
3250397Sobrien  is particularly problematical on machines with small address spaces.
3350397Sobrien
3450397Sobrien  So:
3550397Sobrien
3650397Sobrien    All trees that represent sizes in bits should have a TREE_TYPE of
3750397Sobrien    bitsizetype (rather than sizetype).
3850397Sobrien
3950397Sobrien    Accordingly, when such values are computed / initialized, care has to
4050397Sobrien    be takes to use / compute the proper type.
4150397Sobrien
4250397Sobrien    When a size in bits is converted into a size in bytes, which is expressed
4350397Sobrien    in trees, care should be taken to change the tree's type again to sizetype.
4450397Sobrien
4550397Sobrien?? 1997:
4650397Sobrien
4750397Sobrien  In an effort to decrease cache thrashing and useless loads we've changed the
4850397Sobrien  third argument to the DEFTREECODE macro to be a single char.  This will
4990075Sobrien  affect languages that defined their own tree codes (usually in a .def file).
5050397Sobrien
5150397Sobrien  Old way:
5250397Sobrien
5350397Sobrien    DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", "d", 0)
5450397Sobrien
5550397Sobrien  New way:
5650397Sobrien
5750397Sobrien    DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", 'd', 0)
58