LANGUAGES revision 1.1.1.1 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 mrg serve as a repository for information on these interface and any incompatable
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, 2001, 2002, 2004 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