LANGUAGES revision 169689
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