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