2011-05-31 Gabriel Charette <gchare@google.com>
[official-gcc.git] / gcc / ChangeLog.pph
blob031e52c8d44c838e18b62d9e13123bc78e37575b
1 2011-05-30  Diego Novillo  <dnovillo@google.com>
3         Merge from trunk rev 174363.
5         * lto-streamer.h (enum LTO_tags): Remove LTO_LAST_TAG.
6         Do not force the value on LTO_NUM_TAGS.
8         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
9         output_record_start with LTO_null instead of output_zero.
10         (lto_output_ts_binfo_tree_pointers): Likewise.
11         (lto_output_tree): Likewise.
12         (output_eh_try_list): Likewise.
13         (output_eh_region): Likewise.
14         (output_eh_lp): Likewise.
15         (output_eh_regions): Likewise.
16         (output_bb): Likewise.
17         (output_function): Likewise.
18         (output_unreferenced_globals): Likewise.
19         * lto-streamer.h (lto_output_int_in_range): Fix shift sign
20         when splitting values into byte-sized ranges.
22 2011-05-06  Diego Novillo  <dnovillo@google.com>
24         * lto-streamer-out.c (lto_output_tree): If the streamer
25         has unique INTEGER_CST nodes and a match is found in the
26         streamer cache, do not call lto_output_integer_cst.
27         * lto-streamer.h (struct lto_streamer_hooks): Add field
28         has_unique_integer_csts_p.
30 2011-05-04  Diego Novillo  <dnovillo@google.com>
32         * Makefile.in (cgraphunit.o): Add dependency on LTO_STREAMER_H.
33         * cgraphunit.c: Include lto-streamer.h
34         (cgraph_finalize_compilation_unit): Call gimple_streamer_hooks_init
35         if LTO is enabled.
36         * lto-streamer-out.c (lto_output): Move call to
37         gimple_streamer_hooks_init to cgraph_finalize_compilation_unit.
38         * lto-streamer.c (lto_get_common_nodes): Remove if0 hack.
39         (lto_streamer_cache_create): Call streamer_hooks.get_common_nodes
40         instead of lto_get_common_nodes.
41         (gimple_streamer_hooks_init): Set h->get_common_nodes to
42         lto_get_common_nodes.
43         * lto-streamer.h (struct lto_streamer_hooks): Add field
44         get_common_nodes.
46 2011-04-26  Diego Novillo  <dnovillo@google.com>
48         * lto-streamer.h (enum LTO_tags): Change LTO_bb0 to begin
49         after MAX_TREE_CODES.
51 2011-04-26  Diego Novillo  <dnovillo@google.com>
53         * tree.c (tree_node_structure_enum): Make extern.
54         (mark_ts_structures_for): Factor out of
55         initialize_tree_contains_struct.
56         (initialize_tree_contains_struct): Call it.
57         * tree.h (tree_node_structure_for_code): Declare.
58         (mark_ts_structures_for): Declare.
60 2011-04-20  Diego Novillo  <dnovillo@google.com>
62         Merge from trunk rev 172663.
64 2011-04-19  Diego Novillo  <dnovillo@google.com>
66         Merge from trunk rev 172662.
68 2011-04-14  Diego Novillo  <dnovillo@google.com>
70         * lto-streamer-out.c (pack_ts_type_value_fields): Pack all bits
71         of -1 value.
72         * lto-streamer.h (bitpack_create): Assert that the value to
73         pack does not overflow NBITS.
74         * lto-streamer-in.c (unpack_ts_type_value_fields): Unpack
75         BITS_PER_BITPACK_WORD bits for TYPE_ALIAS_SET.
77 2011-04-14  Diego Novillo  <dnovillo@google.com>
79         * lto-streamer.h (bitpack_create): Only use the lower NBITS
80         from VAL.
82 2011-04-14  Diego Novillo  <dnovillo@google.com>
84         * lto-streamer-in.c (unpack_ts_base_value_fields): Handle
85         TYPE_ADDR_SPACE.
86         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
88 2011-04-04  Diego Novillo  <dnovillo@google.com>
90         * lto-streamer-in.c (lto_input_tree_pointers): Remove checks
91         for TS_SSA_NAME, TS_STATEMENT_LIST, TS_OMP_CLAUSE and
92         TS_OPTIMIZATION.
93         (lto_read_tree): Check for
94         streamer_hooks.register_decls_in_symtab_p before registering
95         symbols in LTO symtabs.
96         (gimple_streamer_reader_init): Move file_name_hash_table
97         initialization to lto_reader_init.
98         (lto_materialize_tree): Call streamer_hooks.alloc_tree if it exists.
99         * lto-streamer-out.c (lto_output_tree_header): Remove empty
100         line.
101         (lto_output_tree_header): Assert that the tag to be written is valid.
102         Call streamer_hooks.output_tree_header if it exists.
103         * lto-streamer.c (gimple_streamer_hooks_init): Set
104         register_decls_in_symtab_p to true.
105         * lto-streamer.h (struct lto_streamer_hooks): Add field
106         register_decls_in_symtab_p.
107         (struct lto_file_decl_data): Add field sdata.
108         (struct output_block): Add field sdata.
109         (struct lto_streamer_hooks): Add fields
110         alloc_tree and output_tree_header.
111         (enum LTO_tags): Add an LTO_LAST_TAG marker, force
112         LTO_NUM_TAGS have a value bigger than MAX_TREE_CODES and
113         LAST_AND_UNUSED_GIMPLE_CODE.
114         (lto_tag_is_tree_code_p): Return true for anything less than
115         MAX_TREE_CODES.
117 2011-03-30  Diego Novillo  <dnovillo@google.com>
119         * lto-streamer-in.c (lto_input_chain): Make extern.
120         * lto-streamer-out.c (lto_output_tree_ref): Call
121         streamer_hook->indexable_with_decls_p, if it exists.  If it
122         returns true, emit a reference to EXPR in the VAR_DECL index.
123         (lto_output_chain): Make extern.
124         (lto_output_tree_pointers): Move checks for invalid gimple trees ...
125         * lto-streamer.c (lto_is_streamable): ... here.
126         * lto-streamer.h (lto_streamer_hooks): Add
127         indexable_with_decls_p.
128         (lto_output_chain): Declare.
129         (lto_input_chain): Declare.
131 2011-03-25  Diego Novillo  <dnovillo@google.com>
133         * lto-streamer-in.c (unpack_value_fields): Remove checks for
134         TS_SSA_NAME, TS_STATEMENT_LIST and TS_OMP_CLAUSE.
135         Call streamer_hooks.unpack_value_fields if defined.
136         * lto-streamer-out.c (pack_value_fields): Remove checks for
137         TS_SSA_NAME, TS_STATEMENT_LIST and TS_OMP_CLAUSE.
138         Call streamer_hooks.pack_value_fields if defined.
139         (lto_output_tree_header): Call streamer_hooks.is_streamable
140         if defined.
141         * lto-streamer.c (gimple_streamer_hooks_init): Assign hooks
142         for name and is_streamable.
143         (lto_is_streamable): Move from ...
144         * lto-streamer.h: ... here.
145         (lto_streamer_hooks): Add field name, pack_value_fields,
146         unpack_value_fields and is_streamable.
147         (lto_stream_as_builtin_p):
149 2011-03-25  Diego Novillo  <dnovillo@google.com>
151         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
152         (lto_input_ts_decl_common_tree_pointers):
153         * a/gcc/lto-streamer-out.c (lto_output_tree_ref):
154         (lto_output_ts_decl_minimal_tree_pointers):
155         (lto_output_ts_decl_common_tree_pointers):
156         * a/gcc/lto-streamer.h (typedef):
157         (extern):
159 2011-03-25  Diego Novillo  <dnovillo@google.com>
161         * lto-streamer-in.c (lto_reader_init): Rename from
162         lto_init_reader.  Update all users.
163         If streamer_hooks.reader_init exists, call it.
164         Move gimple-specific initialization ...
165         (gimple_streamer_init_reader): ... to this new function.
166         (lto_input_ts_decl_common_tree_pointers): Document unhandled fields.
167         Do not handle DECL_INITIAL.
168         (lto_input_ts_decl_non_common_tree_pointers): Document
169         unhandled fields.
170         Do not handle DECL_SAVED_TREE.
171         (lto_read_tree): If streamer_hooks.read_tree is defined, call
172         it.
173         (gimple_streamer_read_tree): New.  Handle DECL_INITIAL.
174         (gimple_streamer_reader_init): Rename from
175         gimple_streamer_init_reader.  Update all users.
176         * lto-streamer-out.c (lto_writer_init): Make extern.
177         (lto_output): Call gimple_streamer_hooks_init.
178         (lto_output_ts_decl_common_tree_pointers): Document unhandled fields.
179         Do not handle DECL_INITIAL.
180         (lto_output_ts_decl_non_common_tree_pointers): Document
181         unhandled fields.
182         Do not handle DECL_SAVED_TREE.
183         (lto_write_tree): If streamer_hooks.write_tree is defined,
184         call it.
185         (gimple_streamer_write_tree): New.  Handle DECL_INITIAL and
186         DECL_SAVED_TREE.
187         * lto-streamer.c (gimple_streamer_hooks_init): New.
188         (streamer_hooks): New.
189         (streamer_hooks_init): New.
190         * lto-streamer.h (lto_streamer_hooks): Declare.
191         (streamer_hooks): Declare
192         (streamer_hooks_init): Declare
193         (gimple_streamer_hooks_init): Declare.
194         (gimple_streamer_init_reader): Declare.
195         (lto_writer_init): Declare.
196         (struct output_block): Forward declare.
197         (struct lto_input_block): Likewise.
198         (struct data_in): Likewise.
200 2011-03-24  Diego Novillo  <dnovillo@google.com>
202         Merge from trunk rev 171388.
204 2011-03-23  Diego Novillo  <dnovillo@google.com>
206         * lto-streamer-in.c (input_string_internal): Add clarifying
207         comments.
208         * lto-streamer-out.c (lto_output_string_with_length): Rename from
209         output_string_with_length.
210         Output 0 to indicate a non-NULL string.  Update all callers to
211         not emit 0.
212         (lto_output_string): Rename from output_string.  Make extern.
213         Update all users.
215 2011-03-23  Diego Novillo  <dnovillo@google.com>
217         * lto-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
218         Always read DECL_SAVED_TREE.
219         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
220         Igonore varpool nodes.
221         (lto_output_ts_decl_non_common_tree_pointers): Output NULL
222         DECL_SAVED_TREE.
224 2011-03-17  Diego Novillo  <dnovillo@google.com>
226         Merge from trunk rev 171104.
228 2011-03-15  Diego Novillo  <dnovillo@google.com>
230         Merge from google/integration rev 170999 (4.6 branch
231         point at rev 170934).
233 2011-03-09  Diego Novillo  <dnovillo@google.com>
235         * lto-opts.c (input_data_block): Rename and move ...
236         * lto-streamer-in.c (lto_input_data_block): ... here.
237         * lto-streamer-in.c (lto_input_string): Rename from
238         input_string.  Make extern.  Update all users.
239         * lto-streamer-out.c (lto_output_string_with_length): Rename
240         from output_string_with_length.  Make extern.  Update all
241         users.
242         (lto_output_string): Rename from output_string.  Make extern.
243         Update all users.
244         (lto_output_decl_state_streams): Make extern.
245         (lto_output_decl_state_refs): Make extern.
246         * lto-streamer.c (lto_get_common_nodes): #if0 assertions not
247         valid inside the front end.
248         * lto-streamer.h (lto_input_string): Declare.
249         (lto_input_data_block): Declare.
250         (lto_output_string): Declare.
251         (lto_output_string_with_length): Declare.
252         (lto_output_decl_state_streams): Declare.
253         (lto_output_decl_state_refs): Declare.
255 2011-03-04  Lawrence Crowl <crowl@google.com>
257         * tree-pass.h:
258         Add TDF_VISDEF to flags for pretty printing "visible definitions".
259         This enables more C-like output.
261         * tree-pretty-print.c (dump_generic_node):
262         Turn off visible definitions for bases of arrays and pointers.
263         Print struct definitions under visible definitions.
265         * (print_declaration):
266         Filter artificial nodes under visible definitions.
267         Make "static" mean what the language means, not the linker.
268         Create a separate case for typedefs distinct from variables.
269         Move printing of "typedef" to that case.
271         * (print_struct_decl):
272         Change field print algorithm.
273         Filter out struct tags that are artificial, i.e. start with ".".
275 2011-02-15  Lawrence Crowl <crowl@google.com>
277         * strstrmap.h: Add.
278         * strstrmap.c: Add.
279         * Makefile.in:
280         Add rule for strstrmap.o.
281         Add strstrmap.o to OBJS-common.
282         Add dependence of c-family/c-opts.o on strstrmap.h.
284 2011-02-07  Diego Novillo  <dnovillo@google.com>
286         Merge from google/integration.
288 2011-01-24  Lawrence Crowl <crowl@google.com>
290         Merge timevar patch.
292         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
293         * (timevar_cond_start): New for starting a timer only when it is not
294         already running.
295         * (timevar_cond_stop): New for stopping a timer when it was not already
296         running.
298         * timevar.c (timevar_stop): Enable start/stop timers to start again.
299         * (timevar_cond_start): New as above.
300         * (timevar_cond_stop): New as above.
301         * (timevar_print): Reduce time output to fit in an 80-column window.
302         Factor out units to column headings.
303         Conditionally compile column headings as well as column data.
305         * timevar.def: Add start/stop timers for compiler phases,
306         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_C_WRAPUP_CHECK,
307         TV_PHASE_CP_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO
308         (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE, and
309         TV_PHASE_FINALIZE.
310         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
311         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
312         TV_PARSE_INMETH, TV_INSTANTIATE_TEMPLATE.
313         Change push/pop timers TV_GC and TV_NAME_LOOKUP into start/stop timers.
314         Add start/stop timer TV_RESOLVE_OVERLOAD.
315         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
316         Mark the strings for TV_GC, TV_NAME_LOOKUP, and
317         TV_RESOLVE_OVERLOAD with a "|" to indicate that they are
318         start/stop timers.
320         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
321         Start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
322         * (do_compile): Start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
324         * c-decl.c (c_write_global_declarations): Add start/stop of
325         TV_PHASE_C_WRAPUP_CHECK, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
327         * ggc-zone.c (ggc_collect): Change TV_GC to start/stop.
328         * ggc-page.c (ggc_collect): Change TV_GC to start/stop.
330         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC.
331         * (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
332         * (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
334 2011-01-21  Diego Novillo  <dnovillo@google.com>
336         Mainline merge r169107.
338         * DATESTAMP: Update merge revision.
340 2011-01-05  Diego Novillo  <dnovillo@google.com>
342         Mainline merge r168483.
344         * DATESTAMP: Update merge revision.
346 2010-12-17  Diego Novillo  <dnovillo@google.com>
348         Fix broken bootstrap.
350         * BASE-VER: Move trunk revision suffix...
351         * DATESTAMP: ... here.
353 2010-12-17  Diego Novillo  <dnovillo@google.com>
355         Mainline merge r167963.
357         * BASE-VER: Update revision stamp.
359 2010-11-02  Lawrence Crowl  <crowl@google.com>
360             Diego Novillo  <dnovillo@google.com>
362         * tree-pretty-print.c (dump_generic_node): Protect
363         against NULL TREE_TYPE.
364         * tree.c (make_node_stat): Call
365         lang_hooks.pph_catch_tree, if defined.
366         * input.h (LOCATION_COLUMN): Define.
367         * timevar.def (TV_PTH_DEPENDENCY): Define.
368         (TV_PTH_MANAGE): Define.
369         (TV_PTH_MD5): Define.
370         (TV_PTH_LOAD): Define.
371         (TV_PTH_SAVE): Define.
372         (TV_PTH_SKIP_TOKENS): Define.
373         (TV_PTH_INIT): Define.
374         (TV_PPH_CACHE_IN): Define.
375         (TV_PPH_CACHE_OUT): Define.
376         (TV_PPH_MANAGE): Define.
377         * langhooks.h: Add fields pph_catch_tree and pph_uncatch_tree.
378         * tree-inline.c (copy_tree_r): Tolerate STATEMENT_LISTs
379         when DATA is not NULL.
380         * langhooks-def.h (LANG_HOOKS_PPH_UNCATCH_TREE): Define.
381         (LANG_HOOKS_PPH_CATCH_TREE): Define.
382         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_PPH_UNCATCH_TREE
383         and LANG_HOOKS_PPH_CATCH_TREE.