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