Home | History | Annotate | Line # | Download | only in gcc
LANGUAGES revision 1.1.1.6
      1      1.1  mrg Right now there is no documentation for the GCC tree -> rtl interfaces
      2      1.1  mrg (or more generally the interfaces for adding new languages).
      3      1.1  mrg 
      4      1.1  mrg Such documentation would be of great benefit to the project.  Until such
      5      1.1  mrg time as we can formally start documenting the interface this file will
      6  1.1.1.2  mrg serve as a repository for information on these interface and any incompatible
      7      1.1  mrg changes we've made.
      8      1.1  mrg 
      9      1.1  mrg 2004-09-09:
     10      1.1  mrg   In an effort to decrease execution time, single char tree code
     11      1.1  mrg   classes were changed to enumerated values.
     12      1.1  mrg 
     13      1.1  mrg   Old way:
     14      1.1  mrg 
     15      1.1  mrg     DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", 'd', 0)
     16      1.1  mrg 
     17      1.1  mrg   New way:
     18      1.1  mrg 
     19      1.1  mrg     DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", tcc_declaration, 0)
     20      1.1  mrg 
     21      1.1  mrg 2001-02-26:
     22      1.1  mrg   A DECL_INITIAL of NULL_TREE or error_mark_node in a VAR_DECL is no longer
     23      1.1  mrg   taken to signify a tentative definition which should not be emitted until
     24      1.1  mrg   end-of-file.  Frontends which want that behavior should set
     25      1.1  mrg   DECL_DEFER_OUTPUT before calling rest_of_decl_compilation.
     26      1.1  mrg 
     27      1.1  mrg Feb 1, 1998:
     28      1.1  mrg 
     29      1.1  mrg   GCC used to store structure sizes & offsets to elements as bitsize
     30      1.1  mrg   quantities.  This causes problems because a structure can only be
     31      1.1  mrg   (target memsize / 8) bytes long (this may effect arrays too).  This
     32      1.1  mrg   is particularly problematical on machines with small address spaces.
     33      1.1  mrg 
     34      1.1  mrg   So:
     35      1.1  mrg 
     36      1.1  mrg     All trees that represent sizes in bits should have a TREE_TYPE of
     37      1.1  mrg     bitsizetype (rather than sizetype).
     38      1.1  mrg 
     39      1.1  mrg     Accordingly, when such values are computed / initialized, care has to
     40      1.1  mrg     be takes to use / compute the proper type.
     41      1.1  mrg 
     42      1.1  mrg     When a size in bits is converted into a size in bytes, which is expressed
     43      1.1  mrg     in trees, care should be taken to change the tree's type again to sizetype.
     44      1.1  mrg 
     45      1.1  mrg ?? 1997:
     46      1.1  mrg 
     47      1.1  mrg   In an effort to decrease cache thrashing and useless loads we've changed the
     48      1.1  mrg   third argument to the DEFTREECODE macro to be a single char.  This will
     49      1.1  mrg   affect languages that defined their own tree codes (usually in a .def file).
     50      1.1  mrg 
     51      1.1  mrg   Old way:
     52      1.1  mrg 
     53      1.1  mrg     DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", "d", 0)
     54      1.1  mrg 
     55      1.1  mrg   New way:
     56      1.1  mrg 
     57      1.1  mrg     DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", 'd', 0)
     58      1.1  mrg 
     59      1.1  mrg 
     61      1.1  mrg Copyright (C) 1998-2018 Free Software Foundation, Inc.
     62      1.1  mrg 
     63      1.1  mrg Copying and distribution of this file, with or without modification,
     64      1.1  mrg are permitted in any medium without royalty provided the copyright
     65               notice and this notice are preserved.
     66