]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/lto/ChangeLog
PR ipa/61324
[thirdparty/gcc.git] / gcc / lto / ChangeLog
CommitLineData
366970c6 12014-12-11 Jan Hubicka <hubicka@ucw.cz>
2
3 PR ipa/61324
4 * lto.c (read_cgraph_and_symbols): Update call of
5 remove_unreachable_nodes.
6 (do_whole_program_analysis): Remove call of
7 symtab->remove_unreachable_nodes
8
9dac2720 92014-12-08 Trevor Saunders <tsaunders@mozilla.com>
10
11 * lto.c (read_cgraph_and_symbols): allocate gimple_canonical_types
12 htab with malloc instead of ggc.
13
9f9f871f 142014-11-20 Trevor Saunders <tsaunders@mozilla.com>
15
16 * lto.c: Replace htab with hash_table.
17
5ecbd52e 182014-11-20 Trevor Saunders <tsaunders@mozilla.com>
19
20 * lto.c (lto_read_in_decl_state): Adjust.
21 (lto_fixup_state): Likewise.
22
23de2c1d 232014-11-17 Jan Hubicka <hubicka@ucw.cz>
24
25 * lto.c (lto_read_decls): Do not rebuild DECL_FUNCTION_SPECIFIC_TARGET.
26
ab90b67e 272014-11-14 Jan Hubicka <hubicka@ucw.cz>
28
29 * lto.c (compare_tree_sccs_1): Compare cl_target_option_eq.
30
b0c5e347 312014-11-13 Ilya Verbin <ilya.verbin@intel.com>
32 Bernd Schmidt <bernds@codesourcery.com>
33 Andrey Turetskiy <andrey.turetskiy@intel.com>
34 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
35
dccabdd1 36 * lto/lto.c (read_cgraph_and_symbols): Call input_offload_tables.
37
382014-11-13 Ilya Verbin <ilya.verbin@intel.com>
39 Ilya Tocar <ilya.tocar@intel.com>
40 Andrey Turetskiy <andrey.turetskiy@intel.com>
41 Bernd Schmidt <bernds@codesourcery.com>
42
b0c5e347 43 * lto-object.c (lto_obj_add_section): Use section_name_prefix instead of
44 LTO_SECTION_NAME_PREFIX.
45 * lto-partition.c (lto_promote_cross_file_statics): Call
46 select_what_to_stream.
47 * lto.c (lto_section_with_id): Use section_name_prefix instead of
48 LTO_SECTION_NAME_PREFIX.
49 (read_cgraph_and_symbols): Read OFFLOAD_SECTION_NAME_PREFIX sections, if
50 being built as an offload compiler.
51
3754d046 522014-10-29 Richard Sandiford <richard.sandiford@arm.com>
53
54 * lto-lang.c: Remove redundant enum from machine_mode.
55
1140c305 562014-10-28 Andrew MacLeod <amacleod@redhat.com>
57
58 * lto.c: Adjust include files.
59 * lto-lang.c: Ditto.
60 * lto-object.c: Ditto.
61 * lto-partition.c: Ditto.
62 * lto-symtab.c: Ditto.
63
94ea8568 642014-10-27 Andrew MacLeod <amacleod@redhat.com>
65
66 * lto-lang.c: Adjust include files.
67 * lto-object.c: Ditto.
68 * lto-partition.c: Ditto.
69 * lto-symtab.c: Ditto.
70 * lto.c: Ditto.
71
c219a638 722014-10-16 DJ Delorie <dj@redhat.com>
73
74 * lto-object.c (lto_obj_begin_section): In the event that pointer
75 sizes aren't powers of two, choose a more suitable alignment
76 than (unsigned)(-1).
77
9f75f026 782014-10-14 DJ Delorie <dj@redhat.com>
79
80 * lto-lang.c (lto_build_c_type_nodes): Check intN types for
81 size-type as well.
82 (lto_init): Initialize all intN types, not just int128.
83
120ce989 842014-10-06 Martin Liska <mliska@suse.cz>
85
86 * lto.c (stream_out): ARG_UNUSED added for last argument.
87
16d41ae2 882014-09-24 Aldy Hernandez <aldyh@redhat.com>
89
90 * lto-symtab.c, lto.c: Rename all instances of DECL_ABSTRACT to
91 DECL_ABSTRACT_P.
92
6b722052 932014-09-23 Andi Kleen <ak@linux.intel.com>
94
95 * lto-partition.c (node_cmp): Update comment.
96 (varpool_node_cmp): Use symtab_node for comparison.
97 (add_sorted_nodes): New function.
98 (lto_balanced_map): Change to keep ordered queue
99 of ordered node. Handle no_reorder attribute.
100
d585ba22 1012014-09-11 Jan Hubicka <hubicka@ucw.cz>
102
103 * lto.c (lto_read_decls): Register ODR types.
104
289c4db4 1052014-08-20 Jan Hubicka <hubicka@ucw.cz>
106
107 * lto.c (read_cgraph_and_symbols): Fix symtab_remove_unreachable_nodes
108 call.
109 (do_whole_program_analysis): Only sanity check that IPA passes cleans up.
110
1df805e3 1112014-08-14 Jan Hubicka <hubicka@ucw.cz>
112
113 * lto-symtab.c (lto_varpool_replace_node): Call compare_virtual_tables.
114
62cc770a 1152014-08-14 Richard Biener <rguenther@suse.de>
116
117 PR lto/62067
118 * lto-lang.c (def_fn_type): Fix error handling wrt va_end.
119
472ca566 1202014-08-08 Richard Biener <rguenther@suse.de>
121
122 * lto.c (lto_read_decls): Adjust for lto_input_block changes.
123
fc8393b7 1242014-08-08 Bin Cheng <bin.cheng@arm.com>
125
126 PR lto/62032
127 * lto-lang.c (lto_init): Switch mis-matched arguments.
128
5f8841a5 1292014-08-07 Trevor Saunders <tsaunders@mozilla.com>
130
131 * lto-partition.c, lto.c: Use hash_map instead of pointer_map.
132
431205b7 1332014-08-02 Trevor Saunders <tsaunders@mozilla.com>
134
135 * lto-partition.c, lto-partition.h: Use hash_set instead of
136 pointer_set.
137
7fdbd1ec 1382014-07-31 Andi Kleen <ak@linux.intel.com>
139
140 * lto.c (hash_canonical_type): Use inchash::hash
141 and use inchash::add_expr.
142 (iterative_hash_canonical_type): Dito.
143
2d97af95 1442014-07-30 Richard Biener <rguenther@suse.de>
145
146 * lto-streamer.h (lto_write_data): New function.
147 * langhooks.c (lhd_append_data): Do not free block.
148 * lto-section-out.c (lto_write_data): New function writing
149 raw data to the current section.
150 (lto_write_stream): Adjust for langhook semantic change.
151 (lto_destroy_simple_output_block): Write header directly.
152 * lto-opts.c (lto_write_options): Write options directly.
153 * lto-streamer-out.c (produce_asm): Write heaeder directly.
154 (lto_output_toplevel_asms): Likewise.
155 (copy_function_or_variable): Copy data directly.
156 (write_global_references): Output index table directly.
157 (lto_output_decl_state_refs): Likewise.
158 (write_symbol): Write data directly.
159 (produce_symtab): Adjust.
160 (produce_asm_for_decls): Output header and refs directly.
161
045e2f27 1622014-07-25 Andi Kleen <ak@linux.intel.com>
163
164 * lto.c (hash_canonical_type): Call iterative_hstate_expr.
165
e7f95d73 1662014-07-25 Andi Kleen <ak@linux.intel.com>
167
168 * lto.c (hash_canonical_type): Convert to inchash.
169 (iterative_hash_canonical_type): Dito.
170
6b214d09 1712014-07-25 Andi Kleen <ak@linux.intel.com>
172
173 * lto.c: Include inchash.h
174
83c7dcd8 1752014-07-14 Jan Hubicka <hubicka@ucw.cz>
176
177 * lto.c (mentions_vars_p_decl_non_common): Skip
178 DECL_ARGUMENT_FLD.
179 mentions_vars_p_function): Do DECL_ARGUMENTS.
180 (lto_fixup_prevailing_decls): Update.
181
e52d4978 1822014-07-12 Jan Hubicka <hubicka@ucw.cz>
183
184 * lto.c (read_cgraph_and_symbols): Do not push DECL_INIT_IO
185 timevar
186 (materialize_cgraph): Do not push GIMPLE_IN timevar.
187
afb0d513 1882014-07-11 Jan Hubicka <hubicka@ucw.cz>
189
190 * lto-partition.c (add_references_to_partition): Use
191 varpool_ctor_useable_for_folding_p.
192 * lto.c (lto_read_in_decl_state): Update sanity check.
193
e4a2b488 1942014-07-01 Martin Liska <mliska@suse.cz>
195
196 IPA REF alias refactoring
197 * lto-partition.c (add_symbol_to_partition_1): Usage of
198 FOR_EACH_ALIAS added.
199
c7be6601 2002014-06-28 Jan Hubicka <hubicka@ucw.cz>
201
202 Revert:
203 * lto.c (lto_copy_fields_not_streamed): New function.
204 (compare_tree_sccs_1): Do not compare fields shared in between type
205 and variant.
206 (lto_read_decls): Fixup types first before inserting into hash.
207
c1526d28 2082014-06-28 Andrew Pinski <apinski@cavium.com>
209
210 * lto.c (lto_read_decls): Fix comment in comment.
211
28635c35 2122014-06-28 Jan Hubicka <hubicka@ucw.cz>
213
214 * lto.c (lto_copy_fields_not_streamed): New function.
215 (compare_tree_sccs_1): Do not compare fields shared in between type
216 and variant.
217 (lto_read_decls): Fixup types first before inserting into hash.
218
737331e8 2192014-06-25 Martin Liska <mliska@suse.cz>
220
221 * lto/lto-partition.c (add_references_to_partition): New IPA REF function
222 used.
223 (add_symbol_to_partition_1): Likewise.
224 (lto_balanced_map): Likewise.
225 * lto/lto-symtab.c (lto_cgraph_replace_node): Likewise.
226
9c2e58d0 2272014-06-24 Jan Hubicka <hubicka@ucw.cz>
228
229 * lto.c (mentions_vars_p_decl_non_common): Move DECL_VINDEX check to ..
230 (mentions_vars_p_function): ... here.
231 (compare_tree_sccs_1): Update VINDEX checks.
232 (lto_fixup_prevailing_decls): Likewise.
233
d62dd039 2342014-06-24 Trevor Saunders <tsaunders@mozilla.com>
235
236 * lto.c (canonical_type_hash_cache): Use hash_map instead of
237 pointer_map.
238
c1f445d2 2392014-06-24 Trevor Saunders <tsaunders@mozilla.com>
240
241 * lto.c: Adjust.
242
b7393cee 2432014-06-20 Jan Hubicka <hubicka@ucw.cz>
244
245 * lto-symtab.c (lto_varpool_replace_node): Report TLS model conflicts.
246
9db80d42 2472014-06-20 Jan Hubicka <hubicka@ucw.cz>
248
249 * lto.c (compare_tree_sccs_1): Do not compare priorities.
250
5e68df57 2512014-06-15 Jan Hubicka <hubicka@ucw.cz>
252
253 * lto.c (compare_tree_sccs_1): Do not compare DECL_TLS_MODEL.
254
e4c07a06 2552014-06-10 Jan Hubicka <hubicka@ucw.cz>
256
257 * lto.c (read_cgraph_and_symbols): Remove unreachable symbols.
258 (do_whole_program_analysis): Use verify_symtab.
259
71e19e54 2602014-06-07 Jan Hubicka <hubicka@ucw.cz>
261
262 * lto.c (mentions_vars_p_decl_with_vis, compare_tree_sccs_1,
263 lto_fixup_prevailing_decls): Skip section names.
264
f7715905 2652014-06-02 Andrew MacLeod <amacleod@redhat.com>
266
267 * lto-symtab.c: Include builtins.h.
268
3a4303e7 2692014-05-26 Richard Biener <rguenther@suse.de>
270
271 * lto.c (lto_parse_hex): Use int64_t.
272 (lto_resolution_read): Likewise.
273
4f78e0a8 2742014-05-23 Jan Hubicka <hubicka@ucw.cz>
275
276 * lto.c (read_cgraph_and_symbols): Grow ggc memory after streaming.
277
8c016392 2782014-05-23 Jan Hubicka <hubicka@ucw.cz>
279
280 * lto-symtab.c (lto_symtab_merge_symbols): Update code setting
281 symtab pointer.
282 * lto.c (compare_tree_sccs_1): Do not compare comdat groups.
283
3c77ca67 2842014-05-22 Thomas Schwinge <thomas@codesourcery.com>
285
286 * lto-lang.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
287 (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
288 (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
289
47131315 2902012-05-22 Bernd Schmidt <bernds@codesourcery.com>
291
292 * lto-object.c: Include "lto-section-names.h".
293 (LTO_SEGMENT_NAME): Don't define.
294 * lto.c: Include "lto-section-names.h".
295
24888760 2962014-05-17 Jan Hubicka <hubicka@ucw.cz>
297
298 PR lto/61012
299 * lto-symtab.c (lto_symtab_merge_decls_1): Do not ICE on undefined externals
300 mixed with variables.
301
25a27413 3022014-05-17 Trevor Saunders <tsaunders@mozilla.com>
303
304 * lto-tree.h: Don't use variable_size gty attribute.
305 * lto.c (lto_read_in_decl_state): Adjust.
306 (create_subid_section_table): Likewise.
307 (lto_flatten_files): Likewise.
308 (read_cgraph_and_symbols): Likewise.
309
960d5a55 3102014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
311 Mike Stump <mikestump@comcast.net>
312 Richard Sandiford <rdsandiford@googlemail.com>
313
314 * lto.c (compare_tree_sccs_1): Use wide-int interfaces.
315 * lto-lang.c (get_nonnull_operand): Likewise.
316
060fc206 3172014-04-28 Richard Biener <rguenther@suse.de>
318
319 PR middle-end/60092
320 * lto-lang.c: Define flag_isoc11.
321
13cbeaac 3222014-04-23 David Malcolm <dmalcolm@redhat.com>
323
324 * lto-partition.c (add_references_to_partition): Update for
325 removal of implicit pointer from the is-a.h API.
326 (add_symbol_to_partition_1): Likewise.
327 (contained_in_symbol): Likewise.
328 (undo_partition): Likewise.
329 (lto_balanced_map): Likewise.
330 (promote_symbol): Likewise.
331 * lto-symtab.c (lto_symtab_merge_symbols_1): Likewise.
332 (lto_symtab_merge_symbols): Likewise.
333 * lto.c (lto_wpa_write_files): Likewise.
334
4a137074 3352014-04-15 Richard Biener <rguenther@suse.de>
336
337 * lto.c: Include params.h.
338 (do_whole_program_analysis): Switch on flag_lto_partition value,
339 add support for LTO_PARTITION_ONE.
340 * lto-partition.h (lto_balanced_map): Adjust.
341 * lto-partition.c (lto_balanced_map): Get number of desired
342 partitions as argument to support -flto-partition=one.
343
df565eb6 3442014-04-14 Jan Hubicka <hubicka@ucw.cz>
345
346 * lto/lto-symtab.c (lto_cgraph_replace_node): Don't re-merge
347 tp_first_run.
348
ceaf91ad 3492014-03-19 Jan Hubicka <hubicka@ucw.cz>
350
351 * lto.c: Include ipa-inline.h
352 (do_whole_program_analysis): Free inline summary after partitioning.
353
73249b1e 3542014-03-19 Richard Biener <rguenther@suse.de>
355
356 PR middle-end/60553
357 * lto-tree.h (lang_tree_node): For types use TYPE_NEXT_VARIANT
358 instead of TREE_CHAIN as chain_next.
359
4e6f2fb9 3602014-03-19 Richard Biener <rguenther@suse.de>
361
362 * lto.c (lto_wpa_write_files): Move call to
363 lto_promote_cross_file_statics ...
364 (do_whole_program_analysis): ... here, into the partitioning
365 block. Do not ggc_collect after lto_wpa_write_files but
366 for a last time before it.
367
e629dc34 3682014-03-19 Jakub Jelinek <jakub@redhat.com>
369
370 PR lto/60571
371 * lto.c (wait_for_child): Define WCONTINUED if not defined to 0.
372 Fix formatting.
373
0baf842d 3742014-03-18 Jakub Jelinek <jakub@redhat.com>
375
376 PR sanitizer/60535
377 * lto-lang.c (lto_init): Add NAME_TYPE for int128_integer_type_node
378 and complex_{float,{,long_}double}_type_node.
379
c9a24b37 3802014-03-08 Paulo Matos <paulo@matos-sorge.com>
381
0baf842d 382 * lto-lang.c (lto_init): Pass flag_short_double to
383 build_common_tree_nodes.
c9a24b37 384
a2223fa9 3852014-02-14 Jan Hubicka <hubicka@ucw.cz>
386
387 PR lto/60295
388 * lto.c (stream_out): Avoid parallel streaming with
389 -flto=jobserver until we are able to throttle it down
390 resonably.
391
8c075206 3922014-02-14 Jan Hubicka <hubicka@ucw.cz>
393
394 * lto-partition.c (add_symbol_to_partition_1,
395 undo_partition, lto_balanced_map): Aliases have no
396 defined size.
397 (lto_balanced_map): Do not follow refering variables
398 if they can be optimized out.
399
f4c35256 4002014-02-14 Richard Biener <rguenther@suse.de>
401
402 PR lto/60179
403 * lto.c (compare_tree_sccs_1): Do not compare
404 DECL_FUNCTION_SPECIFIC_TARGET.
405 (lto_read_decls): Re-build DECL_FUNCTION_SPECIFIC_TARGET.
406
f5cbf731 4072014-02-12 Richard Biener <rguenther@suse.de>
408
409 PR lto/60060
410 * lto-lang.c (lto_write_globals): Do not call
411 wrapup_global_declarations or emit_debug_global_declarations
412 but emit debug info for non-function scope variables
413 directly.
414
a973177e 4152014-02-06 Jan Hubicka <hubicka@ucw.cz>
416
417 * lto.c (unify_scc): Free CONSTRUCTOR_ELTS.
418
94107507 4192014-02-06 Jan Hubicka <hubicka@ucw.cz>
420
421 PR ipa/59469
422 * lto-partition.c (symbol_class): Move to cgraph.h
423 (get_symbol_class): Move to symtab.c
424 (add_references_to_partition, add_symbol_to_partition_1,
425 lto_max_map, lto_1_to_1_map, lto_balanced_map,
426 lto_promote_cross_file_statics): Update.
427
3e17769e 4282014-02-05 Jan Hubicka <hubicka@ucw.cz>
429
430 * lto.c (lto_parallelism): New static var.
431 (do_stream_out, wait_for_child, stream_out): New static functions.
432 (lto_wpa_write_files): Add support for parallel streaming.
433 (do_whole_program_analysis): Set parallelism.
434 * lang.opt (fwpa): Add parameter.
435 * lto-lang.c (lto_handle_option): Handle flag_wpa.
436 (lto_init): Update use of flag_wpa.
437 * lto-streamer.h (asm_nodes_output): Declare.
438
00288439 4392014-02-05 Richard Biener <rguenther@suse.de>
440
441 * lto.h (lto_global_var_decls): Remove.
442 * lto-lang.c (lto_init): Do not allocate lto_global_var_decls.
443 (lto_write_globals): Do nothing in WPA stage, gather globals from
444 the varpool here ...
445 * lto.c (lto_main): ... not here.
446 (materialize_cgraph): Do not call rest_of_decl_compilation
447 on the empty lto_global_var_decls vector.
448 (lto_global_var_decls): Remove.
449
96a3dc39 4502014-02-04 Jan Hubicka <hubicka@ucw.cz>
451
452 * lto-partition.c (get_symbol_class): Only unforced DECL_ONE_ONLY
453 needs duplicating, not generic COMDAT.
454
6541e9a1 4552014-02-04 Richard Biener <rguenther@suse.de>
456
457 PR lto/59723
458 * lto.c (mentions_vars_p): Handle NAMELIST_DECL.
459 (lto_fixup_prevailing_decls): Handle fixing up CONSTRUCTOR values.
460
b89ce5e3 4612014-02-04 Jan Hubicka <hubicka@ucw.cz>
462 Markus Trippelsdorf
463
464 PR ipa/59469
465 * lto-symtab.c (lto_cgraph_replace_node, lto_varpool_replace_node):
466 merge force_output and forced_by_abi flags.
467
a89e6c15 4682014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
469
470 * lto-lang.c (lto_init): Replaced flag_enable_cilkplus with
471 flag_cilkplus.
472
c205a71b 4732014-01-09 Richard Biener <rguenther@suse.de>
474
475 * lto.c (gimple_canonical_types_compatible_p): Fix comment.
476
f1105f81 4772014-01-09 Richard Biener <rguenther@suse.de>
478
479 PR lto/45586
480 * lto.c (hash_canonical_type): Do not hash TREE_ADDRESSABLE,
481 TYPE_ALIGN, TYPE_RESTRICT or TYPE_REF_CAN_ALIAS_ALL.
482 (gimple_canonical_types_compatible_p): Do not compare them either.
483
3aea1f79 4842014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
485
486 Update copyright years
487
098f44bc 4882013-12-06 Oleg Endo <olegendo@gcc.gnu.org>
489
490 * lto.c: Remove struct tags when referring to class varpool_node.
491 * lto-partition.c: Likewise.
492 * lto-symtab.c: Likewise.
493
ea0695f9 4942013-11-29 Jakub Jelinek <jakub@redhat.com>
495 Richard Biener <rguenther@suse.de>
496
497 PR lto/59326
498 * lto.c (compare_tree_sccs_1): Handle OMP_CLAUSE.
499
fe3e3369 5002013-11-29 Jakub Jelinek <jakub@redhat.com>
501
502 PR lto/59326
503 * lto.c (mentions_vars_p_omp_clause): New function.
504 (mentions_vars_p): Call it for OMP_CLAUSE. Remove break;
505 after return stmts.
506
bc61cadb 5072013-11-22 Andrew MacLeod <amacleod@redhat.com>
508
509 * lto.c: Add required include files from gimple.h.
510 * lto-lang.c: Likewise
511 * lto-object.c: Likewise
512 * lto-partition.c: Likewise
513 * lto-symtab.c: Likewise
514
f1c8b4d7 5152013-11-18 Trevor Saunders <tsaunders@mozilla.com>
516
517 * lto-partition.c lto-symtab.c lto.c Adjust.
518
9ed99284 5192013-11-14 Diego Novillo <dnovillo@google.com>
520
521 * lto-lang.c: Include stringpool.h.
522 Include stor-layout.h.
523 * lto-partition.c: Include gcc-symtab.h.
524 * lto.c: Include stor-layout.h.
525
452659af 5262013-10-31 David Malcolm <dmalcolm@redhat.com>
527
528 Automated part of renaming of symtab_node_base to symtab_node.
529
530 Patch autogenerated by rename_symtab.py from
531 https://github.com/davidmalcolm/gcc-refactoring-scripts
532 revision 58bb219cc090b2f4516a9297d868c245495ee622
533
534 * lto-partition.c (add_symbol_to_partition): Rename
535 symtab_node_base to symtab_node.
536 (get_symbol_class): Likewise.
537 (symbol_partitioned_p): Likewise.
538 (add_references_to_partition): Likewise.
539 (add_symbol_to_partition_1): Likewise.
540 (contained_in_symbol): Likewise.
541 (add_symbol_to_partition): Likewise.
542 (lto_1_to_1_map): Likewise.
543 (lto_max_map): Likewise.
544 (lto_balanced_map): Likewise.
545 (privatize_symbol_name): Likewise.
546 (promote_symbol): Likewise.
547 (may_need_named_section_p): Likewise.
548 (rename_statics): Likewise.
549 (lto_promote_statics_nonwpa): Likewise.
550 * lto-symtab.c (lto_symtab_merge): Likewise.
551 (lto_symtab_resolve_replaceable_p): Likewise.
552 (lto_symtab_symbol_p): Likewise.
553 (lto_symtab_resolve_can_prevail_p): Likewise.
554 (lto_symtab_resolve_symbols): Likewise.
555 (lto_symtab_merge_decls_2): Likewise.
556 (lto_symtab_merge_decls_1): Likewise.
557 (lto_symtab_merge_decls): Likewise.
558 (lto_symtab_merge_symbols_1): Likewise.
559 (lto_symtab_merge_symbols): Likewise.
560 (lto_symtab_prevailing_decl): Likewise.
561 * lto.c (lto_wpa_write_files): Likewise.
562 (read_cgraph_and_symbols): Likewise.
563 (do_whole_program_analysis): Likewise.
564
d03e6917 5652013-10-30 David Malcolm <dmalcolm@redhat.com>
566
567 * lto-symtab.c (lto_symtab_merge_decls_2): Split symtab_node
568 declarations onto multiple lines to make things easier for
569 rename_symtab.py.
570 (lto_symtab_merge_decls_1): Likewise.
571 (lto_symtab_merge_symbols_1): Likewise.
572
d037099f 5732013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com>
574
575 * Make-lang.in (lto/lto-lang.o): Added cilk.h in dependency list.
576 * lto-lang.c (lto_init): Added a call to cilk_init_builtins if Cilk
577 Plus is enabled.
578
02774f2d 5792013-10-29 David Malcolm <dmalcolm@redhat.com>
580
581 Patch autogenerated by refactor_symtab.py from
582 https://github.com/davidmalcolm/gcc-refactoring-scripts
583 revision 58bb219cc090b2f4516a9297d868c245495ee622
584
585 * lto-partition.c (lto_promote_cross_file_statics): Update for
586 conversion of symtab types to a true class hierarchy.
587 (rename_statics): Likewise.
588 (promote_symbol): Likewise.
589 (privatize_symbol_name): Likewise.
590 (lto_balanced_map): Likewise.
591 (varpool_node_cmp): Likewise.
592 (node_cmp): Likewise.
593 (lto_1_to_1_map): Likewise.
594 (undo_partition): Likewise.
595 (add_symbol_to_partition): Likewise.
596 (contained_in_symbol): Likewise.
597 (add_symbol_to_partition_1): Likewise.
598 (add_references_to_partition): Likewise.
599 (symbol_partitioned_p): Likewise.
600 (get_symbol_class): Likewise.
601 (lto_max_map): Likewise.
602 * lto-symtab.c (lto_symtab_prevailing_decl): Likewise.
603 (lto_symtab_merge_symbols): Likewise.
604 (lto_symtab_merge_symbols_1): Likewise.
605 (lto_symtab_merge_decls): Likewise.
606 (lto_symtab_merge_decls_1): Likewise.
607 (lto_symtab_merge_decls_2): Likewise.
608 (lto_symtab_resolve_symbols): Likewise.
609 (lto_symtab_resolve_can_prevail_p): Likewise.
610 (lto_symtab_symbol_p): Likewise.
611 (lto_symtab_resolve_replaceable_p): Likewise.
612 (lto_symtab_merge): Likewise.
613 (lto_varpool_replace_node): Likewise.
614 (lto_cgraph_replace_node): Likewise.
615 * lto.c (lto_main): Likewise.
616 (do_whole_program_analysis): Likewise.
617 (materialize_cgraph): Likewise.
618 (read_cgraph_and_symbols): Likewise.
619 (cmp_partitions_order): Likewise.
620 (lto_materialize_function): Likewise.
621 (has_analyzed_clone_p): Likewise.
622
b23fb4cb 6232013-10-29 Andrew MacLeod <amacleod@redhat.com>
624
625 * lto/lto-object.c: Add gimple.h to include list.
626 * lto/lto-partition.c: Likewise.
627
dd9784d4 6282013-10-18 Andrew MacLeod <amacleod@redhat.com>
629
630 * lto.c: Remove tree-flow.h from include list.
631
fdbb424a 6322013-10-15 Richard Biener <rguenther@suse.de>
633
634 * lto.c (hash_canonical_type): Split out from ...
635 (iterative_hash_canonical_type): ... here. Register types
636 we recurse to.
637 (gimple_canonical_type_hash): Adjust.
638 (gimple_register_canonical_type_1): Split out from ...
639 (gimple_register_canonical_type): ... here. Cache computed
640 hash value.
641 (lto_register_canonical_types): Split into two modes,
642 clearing and computing TYPE_CANONICAL.
643 (lto_read_decls): Adjust.
644 (read_cgraph_and_symbols): Do two passes over global trees,
645 first clearing then computing TYPE_CANONICAL.
646
fb26741a 6472013-10-14 Richard Biener <rguenther@suse.de>
648
649 * lto.c (gimple_canonical_types): Move out-of GC space.
650 (canonical_type_hash_cache): Make a pointer-map.
651 (num_canonical_type_hash_entries, num_canonical_type_hash_queries):
652 New counters.
653 (iterative_hash_canonical_type): Adjust.
654 (read_cgraph_and_symbols): Likewise.
655 (print_lto_report_1): Likewise.
656
d7009cf6 6572013-10-14 Richard Biener <rguenther@suse.de>
658
659 * lto.c (gimple_types, type_hash_cache, struct type_pair_d,
660 type_pair_cache, lookup_type_pair, struct sccs, next_dfs_num,
661 gtc_next_dfs_num, compare_type_names_p, gtc_visit,
662 gimple_types_compatible_p_1, gimple_types_compatible_p,
663 visit, iterative_hash_name, struct type_hash_pair,
664 type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash,
665 gimple_type_eq, gimple_register_type, num_not_merged_types,
666 num_not_merged_types_in_same_scc, num_not_merged_types_trees,
667 num_not_merged_types_in_same_scc_trees): Remove old merging code
668 and statistics.
669 (lto_read_decls): Do not run old merging code in parallel.
670 (read_cgraph_and_symbols): Do not init/free old merging
671 data structures.
672 (print_lto_report_1): Do not report differences of old vs. new
673 merging code.
674
700d6a0b 6752013-10-14 Richard Biener <rguenther@suse.de>
676
677 * lto-lang.c (lto_init): Do not re-init canonical types here.
678 (lto_register_canonical_types): Move to ...
679 * lto.c (lto_register_canonical_types): ... here.
680 (gimple_canonical_types, canonical_type_hash_cache,
681 iterative_hash_canonical_type, gimple_canonical_type_hash,
682 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
683 gimple_register_canonical_type): Add canonical type merging machinery
684 moved from gimple.c.
685 (read_cgraph_and_symbols): Init and free canonical type tables
686 here.
687 (print_lto_report_1): Report canonical type table stats here.
688
bc7bff74 6892013-10-11 Jakub Jelinek <jakub@redhat.com>
690
691 * lto-lang.c (DEF_FUNCTION_TYPE_8): Define.
692
d2681e34 6932013-09-25 Tom Tromey <tromey@redhat.com>
694
695 * Make-lang.in (LTO_H, LINKER_PLUGIN_API_H, LTO_TREE_H)
696 (lto/lto-lang.o, lto/lto.o, lto/lto-partition.o)
697 (lto/lto-object.o): Remove.
698
94956000 6992013-09-06 Richard Biener <rguenther@suse.de>
700
701 * lto-symtab.c: Move from gcc/
702 * lto.h: Include vec.h.
703 (lto_global_var_decls): Declare.
704 * lto.c (lto_global_var_decls): Move definition here.
705 * Make-lang.in (LTO_OBJS): Add lto-symtab.o.
706 (lto-symtab.o): Add.
707 * config-lang.in (gtfiles): Add lto.h.
708
93cb0915 7092013-08-31 Jan Hubicka <jh@suse.cz>
710
711 * lto.c (mentions_vars_p_field_decl, lto_fixup_prevailing_decls):
712 DECL_FIELD_OFFSET can contain an reference to variable.
713
d21755bc 7142013-08-31 Jan Hubicka <jh@suse.cz>
715
716 * lto.c (tree_with_vars): Turn into vector.
717 (MAYBE_REMEMBER_WITH_VARS): Change to...
718 (CHECK_VAR): ... this one.
719 (CHECK_NO_VAR): New macro.
720 (maybe_remember_with_vars_typed): Turn to ...
721 (mentions_vars_p_typed): ... this one.
722 (maybe_remember_with_vars_common): Turn to ...
723 (mentions_vars_p_comon): ... this one.
724 (maybe_remember_with_vars_decl_minimal): Turn to ...
725 (mentions_vars_p_decl_minmal): ... this one.
726 (maybe_remember_with_vars_decl_common): Turn to ...
727 (mentions_vars_p_decl_common): ... this one.
728 (maybe_remember_with_vars_decl_with_vis): Turn to ...
729 (mentions_vars_p_decl_with_vis): ... this one.
730 (maybe_remember_with_vars_decl_non_common): Turn to ...
731 (mentions_vars_p_decl_non_common): ... this one.
732 (maybe_remember_with_vars_function): Turn to ...
733 (mentions_vars_p_function): ... this one.
734 (maybe_remember_with_vars_field_decl): Turn to ...
735 (mentions_vars_p_field_decl): ... this one.
736 (maybe_remember_with_vars_type): Turn to ...
737 (mentions_vars_p_type): ... this one.
738 (maybe_remember_with_vars_binfo): Turn to ...
739 (mentions_vars_p_binfo): ... this one.
740 (maybe_remember_with_vars_constructor): Turn to ...
741 (mentions_vars_p_constructor): ... this one.
742 (maybe_remember_with_vars_expr): Turn to ...
743 (mentions_vars_p_expr): ... this one.
744 (maybe_remember_with_vars): Turn to ...
745 (mentions_vars_p): ... this one.
746 (lto_read_decls): Update.
747 (LTO_SET_PREVAIL): Do not call function for internal decls.
748 (lto_fixup_prevailing_decls): Update to match mentions_vars_p;
749 check that something was updated.
750 (lto_fixup_state): Do not care about internal decls.
751 (lto_fixup_decls): Update.
752 (read_cgraph_and_symbols): Update.
753
5f74a074 7542013-08-29 Jan Hubicka <jh@suse.cz>
755
756 * lto.c (read_cgraph_and_symbols): Free decl states.
757
2d9cc481 7582013-08-29 Jan Hubicka <jh@suse.cz>
759
760 * lto.c (compare_tree_sccs_1): Compare DECL_FINAL_P,
761 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and
762 TYPE_FINAL_P.
763
881fe02c 7642013-08-28 Jan Hubicka <jh@suse.cz>
765
766 * lto.c (compare_tree_sccs_1): Drop DECL_ERROR_ISSUED,
767 DECL_DEFER_OUTPUT and DECL_IN_TEXT_SECTION.
768 (unify_scc): Do checking assert.
769
66d78392 7702013-08-06 Jan Hubicka <jh@suse.cz>
771 Martin Liska <marxin.liska@gmail.com>
772
773 * lto-partition.c (lto_balanced_map): Always base order on
774 source file order.
775
eaad46f2 7762013-08-06 Jan Hubicka <jh@suse.cz>
777
778 * lto.c (lto_materialize_function): Do not read body anymore.
779
4df870fd 7802013-08-02 Jan Hubicka <jh@suse.cz>
781
782 * lto.c (lto_materialize_function): Do not push struct function.
783 * lto-partition.c (get_symbol_class): Handle abstracts correctly.
784 (may_need_named_section_p): Even abstract origins may need
785 named section.
786
3ea50c01 7872013-07-30 David Malcolm <dmalcolm@redhat.com>
788
789 * Make-lang.in (lto/lto.o:): Depend on CONTEXT_H and
790 PASS_MANAGER_H.
791
792 * lto.c (do_whole_program_analysis): Update for move of
793 all_regular_ipa_passes from a global to a field of class
794 pass_manager.
795
75de4aa2 7962013-07-21 OndÅ\99ej Bílka <neleai@seznam.cz>
797
798 * lto-partition.c: Fix typos.
799
593309df 8002013-06-20 Jan Hubicka <jh@suse.cz>
801
802 * lto-partition.c (lto_balanced_map): Fix -fno-toplevel-reorder
803 partitioning of variables.
804
fdbe58cf 8052013-06-20 Jan Hubicka <jh@suse.cz>
806
807 * lto.c (read_cgraph_and_symbols): Set cgraph state.
808
df8d3e89 8092013-06-19 Jan Hubicka <jh@suse.cz>
810
811 * lto-partition.c (add_references_to_partition): Use
812 ctor_for_folding.
813
be1cd111 8142013-06-18 Richard Biener <rguenther@suse.de>
815
816 * lto.c (lto_register_var_decl_in_symtab): Pass in cache index
817 and use it.
818 (lto_register_function_decl_in_symtab): Likewise.
819 (cmp_tree): New function.
820 (unify_scc): Instead of using the streamer cache map from entry
821 to cache index match up the two maps we have by sorting them.
822 Adjust calls to lto_register_var_decl_in_symtab and
823 lto_register_function_decl_in_symtab.
824
8ceff600 8252013-06-17 Richard Biener <rguenther@suse.de>
826
827 * Make-lang.in (lto.o): Add $(DATA_STREAMER_H) dependency.
828 * lto.c: Include data-streamer.h.
829 (lto_read_in_decl_state): Use streamer_tree_cache_get_tree.
830 (gimple_type_leader_entry_s, gimple_type_leader,
831 gimple_lookup_type_leader): Remove.
832 (gtc_visit): Simplify.
833 (gimple_types_compatible_p): Likewise.
834 (gimple_register_type_1): Likewise. Merge into ...
835 (gimple_register_type): ... this. Keep it as legacy for
836 statistics purposes for now.
837 (fixup_integer_cst): Remove.
838 (LTO_FIXUP_TREE, lto_fixup_types, lto_ft_*): Simplify and
839 rename to ...
840 (MAYBE_REMEMBER_WITH_VARS, maybe_remember_with_vars,
841 maybe_remember_with_vars_*): ... these.
842 (uniquify_nodes): Remove.
843 (lto_fixup_prevailing_type): New function.
844 (struct tree_scc, struct tree_scc_hasher): New type and hasher.
845 (tree_scc_hash, tree_scc_hash_obstack): New globals.
846 (num_merged_types, num_prevailing_types, num_not_merged_types,
847 num_not_merged_types_in_same_scc, total_scc_size, num_sccs_read,
848 total_scc_size_merged, num_sccs_merged, num_scc_compares,
849 num_scc_compare_collisions): New global counters.
850 (compare_tree_sccs_1): New function.
851 (compare_tree_sccs): Likewise.
852 (unify_scc): Likewise.
853 (lto_read_decls): Stream in tree SCCs and unify them on the
854 way in. Finalize prevailing SCC tree members.
855 (read_cgraph_and_symbols): Do not initialize or free gimple_type_leader.
856 Allocate and free tree_scc_hash_obstack and tree_scc_hash, do not bother
857 to ggc-collect during merging.
858 (print_lto_report_1): Adjust for new merging code.
859
da4b8721 8602013-06-12 Jan Hubicka <jh@suse.cz>
861
862 * lto.c (read_cgraph_and_symbols): Set cgraph into streaming state.
863
9e9c3e92 8642013-06-12 Jan Hubicka <jh@suse.cz>
865
866 * lto.c (register_resolution): Take lto_file_data argument.
867 (lto_register_var_decl_in_symtab,
868 lto_register_function_decl_in_symtab): Update.
869 (read_cgraph_and_symbols): Update resolution_map handling.
870
21ebaa24 8712013-06-11 Jan Hubicka <jh@suse.cz>
f2526cce 872
873 * lto-partition.c (get_symbol_class): Simplify weakref handling.
874 (add_symbol_to_partition_1): Likewise.
875 (contained_in_symbol): Likewise.
876 (lto_balanced_map): Likewise.
877 (rename_statics): Drop weakref.
878
4b927f54 8792013-06-05 Richard Biener <rguenther@suse.de>
880
881 * lto.c (num_merged_types): New global variable.
882 (uniquify_nodes): Increase num_merged_types when merging a type.
883 (print_lto_report_1): Output the number of merged types.
884
48669653 8852013-06-01 Jan Hubicka <jh@suse.cz>
886
887 * lto.c (read_cgraph_and_symbols): Simplify dumping; Replace
888 lto_symtab_merge_cgraph_nodes by lto_symtab_merge_symbols.
889 (do_whole_program_analysis): Update dumping.
890
15ca8f90 8912013-05-29 Jan Hubicka <jh@suse.cz>
892
893 * lto.c (has_analyzed_clone_p, lto_materialize_function): Update for new symtab
894 flags.
895 * lto-partition.c (get_symbol_class, lto_balanced_map): Likewise.
896
59651d3b 8972013-05-15 Jan Hubicka <jh@suse.cz>
898
899 * lto-partition.c (privatize_symbol_name): Return true when
900 privatizing happened.
901 (rename_statics): Do not go into infinite loop when privatizing
902 is not needed.
903
be5f9e46 9042013-05-16 Jason Merrill <jason@redhat.com>
905
906 * Make-lang.in ($(LTO_EXE)): Use link mutex.
907
15c999e3 9082013-05-15 Martin Jambor <mjambor@suse.cz>
909
910 * lto-partition.c (lto_balanced_map): Print symbol order instead
911 of node uids.
912
33864132 9132013-05-15 Jan Hubicka <jh@suse.cz>
914
915 PR lto/57038
916 PR lto/47375
917 * lto-partition.c (get_symbol_class): Fix weakrefs.
918 (lto_balanced_map): Fix weakrefs.
919 (privatize_symbol_name): Remove unnecesary label.
920 (rename_statics): Handle weakrefs as statics.
921
85b7ebb2 9222013-05-09 Jan Hubicka <jh@suse.cz>
923 Richard Biener <rguenther@suse.de>
924
925 * lto.c (lto_register_var_decl_in_symtab): Don't do renaming.
926 (lto_register_var_decl_in_symtab): Likewise.
927 (lto_main): Promote statics.
928 * lto-partition.c (privatize_symbol_name): New function.
929 (promote_symbol): Use it.
930 (may_need_named_section_p): New predicate.
931 (rename_statics): New functions.
932 (lto_promote_cross_file_statics): Simplify; do renaming.
933 (lto_promote_statics_nonwpa): New function.
934 * lto-partition.h (lto_promote_statics_nonwpa): New function.
935
ab3c0986 9362013-02-08 Richard Biener <rguenther@suse.de>
937
938 PR lto/56231
939 * lto-lang.c (lto_init): Do not enter a dummy file.
940
7a87c8e1 9412013-02-07 Uros Bizjak <ubizjak@gmail.com>
942
943 PR bootstrap/56227
944 * lto.c (lto_resolution_ready): Use %wx instead of
945 HOST_WIDE_INT_PRINT_HEX_PURE in the argument to internal_error.
946
871609a8 9472013-02-04 Richard Guenther <rguenther@suse.de>
948
949 PR lto/56168
950 * lto.c (read_cgraph_and_symbols): Do not call lto_symtab_merge_decls
951 or lto_fixup_decls at LTRANS time.
952
c7fbaa62 9532013-01-09 Jan Hubicka <jh@suse.cz>
954
955 PR lto/45375
956 * lto.c (do_whole_program_analysis): Remove unreachable nodes after IPA.
957
d9501635 9582012-12-10 H.J. Lu <hongjiu.lu@intel.com>
959
960 PR lto/55466
961 * lto.c (lto_register_var_decl_in_symtab): Don't record static
962 variables.
963 (lto_main): Record the global variables if WPA isn't enabled.
964
1e094109 9652012-11-20 Diego Novillo <dnovillo@google.com>
966 Jakub Jelinek <jakub@redhat.com>
967
968 * lto.c: Replace all vec<T, A>() initializers with vNULL.
969
f1f41a6c 9702012-11-16 Diego Novillo <dnovillo@google.com>
971
972 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
973
974 * lto-lang.c: Use new vec API in vec.h.
975 * lto-partition.c: Likewise.
976 * lto-partition.h: Likewise.
977 * lto.c: Likewise.
978
d2313b52 9792012-10-31 Lawrence Crowl <crowl@google.com>
980
981 * lto.c (lto_wpa_write_files): Change symtab checking to a checked
982 down-cast via dyn_cast.
983 * lto-partition.c (add_symbol_to_partition_1): Likewise.
984 (undo_partition): Likewise.
985 (lto_balanced_map): Likewise.
986 (get_symbol_class): Likewise and via is_a.
987 (lto_balanced_map): Change symtab checking to is_a.
988
a5693828 9892012-10-12 Richard Biener <rguenther@suse.de>
990
991 PR lto/54898
992 * lto.c (gimple_types_compatible_p_1): Also compare
993 TYPE_MAIN_VARIANT.
994 (iterative_hash_gimple_type): Also hash TYPE_MAIN_VARIANT.
995
883554eb 9962012-10-09 Tobias Burnus <burnus@net-b.de>
997
998 * lto-lang.c (lto_register_builtin_type): Avoid useless
999 decl creation.
1000 * lto-object.c (lto_obj_file_open, lto_obj_file_open): Free memory.
1001
14c7dd36 10022012-10-08 Tobias Burnus <burnus@net-b.de>
1003
1004 * lto.c (lto_wpa_write_files, read_cgraph_and_symbols):
1005 Free lto_file struct after closing the file.
1006
35d3a6eb 10072012-10-08 Jan Hubicka <jh@suse.cz>
1008
1009 * lto/lto.c (remember_with_vars): Also fixup INTEGER_CST.
1010 (fixup_integer_cst): New functoin.
1011 (lto_ft_type): Fixup BASETYPE of methods and offsets.
1012
b8925abd 10132012-10-07 Jan Hubicka <jh@suse.cz>
1014
1015 * lto.c (read_cgraph_and_symbols): Release type merging hash early;
1016 release input encoders.
1017 * lto-partition.c (new_partition): Update for new lto_symtab_encoder_new.
1018
18ff06f9 10192012-10-06 Jan Hubicka <jh@suse.cz>
1020
1021 PR lto/54790
1022 * lto.c (resolution_map): New static var.
1023 (register_resolution): New function.
1024 (lto_register_var_decl_in_symtab): Use it.
1025 (read_cgraph_and_symbols): Copy resolutions into the symtab.
1026
9078126c 10272012-09-20 Martin Jambor <mjambor@suse.cz>
1028
1029 * lto.c (lto_materialize_function): Call push_struct_function and
1030 pop_cfun.
1031
5169661d 10322012-09-19 Dehao Chen <dehao@google.com>
1033
1034 * lto/lto.c (lto_fixup_prevailing_decls): Remove tree.exp.block field.
1035
c9aa6453 10362012-09-19 Jan Hubicka <jh@suse.cz>
1037
1038 * lto.c (lto_materialize_function): Update confused comment.
1039 (read_cgraph_and_symbols): Do not free symtab.
1040
0851d795 10412012-09-12 Jan Hubicka <jh@suse.cz>
1042
1043 * lto.c (do_whole_program_analysis): Care timevars, statistics and
1044 AUX pointer cleaning. Add max partitioning.
1045 * lto-partition.c (enum symbol_class): New.
1046 (get_symbol_class): New function.
1047 (symbol_partitioned_p): New function.
1048 (add_references_to_partition): Remove.
1049 (add_aliases_to_partition): Remove.
1050 (add_cgraph_node_to_partition_1): Remove.
1051 (add_cgraph_node_to_partition): Remove.
1052 (add_symbol_to_partition): New function.
1053 (add_symbol_to_partition_1): New function.
1054 (contained_in_symbol): New function.
1055 (partition_cgraph_node_p): Remove.
1056 (partition_varpool_node_p): Remove.
1057 (partition_symbol_p): Remove.
1058 (lto_1_to_1_map): Cleanup.
1059 (lto_max_map): New.
1060 (lto_balanced_map): Update.
1061 (lto_promote_cross_file_statics): Update.
1062 * lto-partition.h (lto_max_map): Declare.
1063 * timevar.def (TV_WHOPR_PARTITIONING): New timevar.
1064
8873e58c 10652012-09-11 Jan Hubicka <jh@suse.cz>
1066
1067 PR lto/54312
1068 * lto.c (uniquify_nodes): Remove quadratic loop checking if the
1069 type is variant leader.
1070
ed29d77f 10712012-09-11 Richard Guenther <rguenther@suse.de>
1072
1073 * lto.c (enum gtc_mode): Remove.
1074 (struct type_pair_d): Adjust.
1075 (lookup_type_pair): Likewise.
1076 (gimple_type_leader): Do not mark as deletable.
1077 (gimple_lookup_type_leader): Adjust.
1078 (gtc_visit): Likewise.
1079 (gimple_types_compatible_p_1): Likewise.
1080 (gimple_types_compatible_p): Likewise.
1081 (gimple_type_hash): Likewise.
1082 (gimple_register_type): Likewise.
1083 (read_cgraph_and_symbols): Manage lifetime of tables
1084 here.
1085
bdaea387 10862012-09-11 Richard Guenther <rguenther@suse.de>
1087
1088 * lto.c (gimple_types, type_hash_cache, enum gtc_mode,
1089 struct type_pair_d, lookup_type_pair, struct sccs,
1090 next_dfs_num, gtc_next_dfs_num, struct gimple_type_leader_entry_s,
1091 gimple_type_leader, gimple_lookup_type_leader, compare_type_names_p,
1092 gtc_visit, gimple_types_compatible_p_1, gimple_types_compatible_p,
1093 visit, iterative_hash_name, struct type_hash_pair,
1094 type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash,
1095 gimple_type_eq, gimple_register_type_1, gimple_register_type):
1096 Move here from gimple.c
1097 (read_cgraph_and_symbols): Free hash tables here.
1098 (print_lto_report_1): New function wrapping print_lto_report.
1099 (do_whole_program_analysis): Call it.
1100 (lto_main): Likewise.
1101
b6f96313 11022012-09-10 Jan Hubicka <jh@suse.cz>
1103
1104 * lto-partition.c (partition_symbol_p): Forward declare.
1105 (add_references_to_partition): Reimplement using partition_symbol_p.
1106 (add_aliases_to_partition): Break out from add_references_to_partition;
1107 reimplement using partition_symbol_p.
1108 (add_cgraph_node_to_partition_1): Handle callees using partition_symbol_p;
1109 add sanity checks.
1110 (add_varpool_node_to_partition): Use add_aliases_to_partition.
1111 (partition_varpool_node_p): Do not special case aliases.
1112
724462b0 11132012-08-12 Jan Hubicka <jh@suse.cz>
1114
1115 * lto.c (lto_wpa_write_files): Do not delete partition encoder;
1116 it is deleted after streaming.
1117 * lto-partition.c (partition_symbol_p): New function.
1118 (promote_var, promote_fn): Remove.
1119 (promote_symbol): New function.
1120 (lto_promote_cross_file_statics): First compute boundaries; rewrite
1121 to lookup the actual boundaries instead of computing them ad-hoc.
1122
5cf7e051 11232012-08-12 Jan Hubicka <jh@suse.cz>
1124
1125 Replace cgraph_node_set and varpool_node_set by symtab_node_encoder
1126 in partitioning.
1127 * lto-partition.h (ltrans_partition_def): Replace cgraph_set and varpool_set
1128 by encoder.
1129 * lto-partition.c (new_partition): Update.
1130 * lto.c (cmp_partitions_order): Update.
1131 (lto_wpa_write_files): Update.
1132 (free_ltrans_partitions): Update.
1133 (add_references_to_partition): Update.
1134 (add_cgraph_node_to_partition_1): Update.
1135 (add_cgraph_node_to_partition): Update.
1136 (add_varpool_node_to_partition): Update.
1137 (undo_partition): Update.
1138 (lto_balanced_map): Update.
1139 (set_referenced_from_other_partition_p, set_reachable_from_other_partition_p,
1140 set_referenced_from_this_partition_p): Update.
1141 (lto_promote_cross_file_statics): Update.
1142
eab36a5a 11432012-08-12 Jan Hubicka <jh@suse.cz>
1144
1145 * lto-partition.c (set_referenced_from_other_partition_p,
1146 set_reachable_from_other_partition_p, set_referenced_from_this_partition_p):
1147 New functions.
1148 (lto_promote_cross_file_statics): Use them.
1149
02b699d5 11502012-07-24 Jan Hubicka <jh@suse.cz>
1151
1152 * lto.c (read_cgraph_and_symbols): Use input_symtab.
1153
a5656b73 11542012-07-24 Uros Bizjak <ubizjak@gmail.com>
1155
1156 * lto-tree.h (lang_decl): Add variable_size GTY option.
1157
b9ed1410 11582012-07-16 Steven Bosscher <steven@gcc.gnu.org>
1159
1160 * lto.c: Do not include timevar.h.
1161 * Make-lang.in: Fix dependencies.
1162
161121a9 11632012-06-18 Lawrence Crowl <crowl@google.com>
1164
1165 * lto.c (do_whole_program_analysis): Rename use of TV_PHASE_CGRAPH to
1166 TV_PHASE_OPT_GEN. Use new timevar TV_PHASE_STREAM_OUT around the call
1167 to lto_wpa_write_files.
1168 (lto_main): Rename use of TV_PHASE_CGRAPH to TV_PHASE_OPT_GEN. Move
1169 start of TV_PHASE_OPT_GEN to include call to materialize_cgraph. Use
1170 TV_PHASE_SETUP for the call to lto_init. Use new timevar
1171 TV_PHASE_STREAM_IN around the call to read_cgraph_and_symbols.
1172 Turn TV_PHASE_PARSING off then back on again, because LTO is pretending
1173 to be a front end, but is not one.
1174
18a71d50 11752012-05-18 Jan Hubicka <jh@suse.cz>
1176
1177 * lto.c (lto_materialize_constructors_and_inits): Remove.
1178 (read_cgraph_and_symbols): Remove handling of alias pairs.
1179
aa419a52 11802012-05-17 Jan Hubicka <jh@suse.cz>
1181
1182 * lto-partition.c (add_references_to_partition): Handle external vars.
1183 (partition_varpool_node_p): Likewise.
1184 (lto_promote_cross_file_statics): Do not promote externals.
1185
258a168d 11862012-05-14 Bernd Schmidt <bernds@codesourcery.com>
1187
1188 * lto-lang.c (handle_fnspec_attribute): New static function.
1189 (lto_attribute_table): Add "fn spec".
1190 (DEF_ATTR_STRING): Define and undefine along with the other macros.
1191
3d1c0354 11922012-05-04 Jan Hubicka <jh@suse.cz>
1193
1194 * lto.c (do_whole_program_analysis): Set timevars correctly.
1195 (lto_main): Likewise.
258a168d 1196
596c40fb 11972012-05-04 Richard Guenther <rguenther@suse.de>
1198
1199 * lang.opt (fwpa): Do not mark as Optimization.
1200 (fltrans): Likewise.
1201
cf951b1a 12022012-04-30 Jan Hubicka <jh@suse.cz>
1203
1204 * lto.c (lto_main): Use compile ().
596c40fb 1205 * lto-partition.c (partition_cgraph_node_p): Use
1206 symtab_used_from_object_file_p.
cf951b1a 1207 (partition_varpool_node_p): Likewise.
1208
8efa224a 12092012-04-20 Jan Hubicka <jh@suse.cz>
1210
1211 * lto-partition.c (partition_cgraph_node_p): Use force_output.
1212
04ec15fa 12132012-04-18 Jan Hubicka <jh@suse.cz>
1214
1215 * lto-partition.c (add_references_to_partition, lto_balanced_map):
1216 Update for new ipa-ref API.
1217
7c455d87 12182012-04-16 Jan Hubicka <jh@suse.cz>
1219
1220 * lto.c (read_cgraph_and_symbols): Use FOR_EACH
1221 walkers to walk cgraph and varpool.
1222 (materialize_cgraph): Likewise.
1223 * lto-partition.c (lto_1_to_1_map): Likewise.
1224 (lto_balanced_map): Likewise.
1225 (lto_promote_cross_file_statics): Likewise.
1226
7d0d0ce1 12272012-04-14 Jan Hubicka <jh@suse.cz>
1228
1229 * lto.c: Update field referenced for new cgraph/varpool layout.
1230 * lto-partition.c: Likewise.
1231
50ed40f5 12322012-04-11 Jan Hubicka <jh@suse.cz>
1233
1234 * lto.c: Update copyright; remove params.h, ipa-inline.h
1235 and ipa-utils.h inlines; inline lto-partition.h
1236 (ltrans_partition_def, ltrans_partition, add_cgraph_node_to_partition,
1237 add_varpool_node_to_partition, new_partition, free_ltrans_partitions,
1238 add_references_to_partition, add_cgraph_node_to_partition_1,
1239 add_cgraph_node_to_partition, add_varpool_node_to_partition,
1240 undo_partition, partition_cgraph_node_p, partition_varpool_node_p,
1241 lto_1_to_1_map, node_cmp, varpool_node_cmp, lto_balanced_map,
1242 promote_var, promote_fn, lto_promote_cross_file_statics): move to...
1243 * lto-partition.c: ... here; new file.
1244 * lto-partition.h: New file.
1245 * Make-lang.in (lto.o): Update dependencies.
1246 (lto-partition.o): New.
1247
37e77161 12482012-04-05 Richard Guenther <rguenther@suse.de>
1249
1250 * lto-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Remove
1251 definition.
1252
a51edb4c 12532012-03-12 Richard Guenther <rguenther@suse.de>
1254
1255 * lto-lang.c (builtin_type_for_size): Use lto_type_for_size.
1256
90f56810 12572012-03-06 Richard Guenther <rguenther@suse.de>
1258
1259 PR lto/52097
1260 * lto.c (uniquify_nodes): Merge TYPE_FIELDS of variant types.
1261
ff56be02 12622012-02-28 Richard Guenther <rguenther@suse.de>
1263
1264 PR lto/52400
1265 * lto.c (lto_register_function_decl_in_symtab): Do not register
1266 a reverse renamed decl mapping.
1267
3affb5a8 12682012-01-06 Jakub Jelinek <jakub@redhat.com>
1269
1270 PR lto/51774
1271 * lto-lang.c (handle_returns_twice_attribute): New function.
1272 (lto_attribute_table): Add returns_twice attribute.
1273
a7a11a02 12742011-12-21 Richard Guenther <rguenther@suse.de>
1275
1276 * lto.c (GIMPLE_REGISTER_TYPE): New define.
1277 (LTO_FIXUP_TREE): Use it.
1278 (uniquify_nodes): Mark new non-prevailing types and avoid
1279 calling gimple_register_type on others.
1280 (lto_read_decls): Add comment.
1281
949e5786 12822011-12-13 Eric Botcazou <ebotcazou@adacore.com>
1283
1284 * lto.h (lto_parse_hex): Delete.
1285 * lto.c (lto_read_decls): Use 'int' for offsets.
1286 (lto_parse_hex): Make static and return proper 64-bit host type.
1287 (lto_resolution_read): Use proper 64-bit host type.
1288
6cd6787c 12892011-12-13 Richard Guenther <rguenther@suse.de>
1290
1291 PR lto/48354
1292 * lto.c (lto_ft_decl_non_common): When we merged DECL_ORIGINAL_TYPE
1293 with the type of the TYPE_DECL clear DECL_ORIGINAL_TYPE.
1294
c8c597a7 12952011-12-01 Uros Bizjak <ubizjak@gmail.com>
1296
1297 * lto-lang.c (lto_attribute_table): Handle *tm regparm.
1298 (ignore_attribute): New.
1299
ea0e88d1 13002011-11-21 Aldy Hernandez <aldyh@redhat.com>
1301
1302 * lto-lang.c (lto_attribute_table): Handle transaction_pure.
1303 (handle_transaction_pure_attribute): New.
1304
954825c9 13052011-11-03 Richard Guenther <rguenther@suse.de>
1306
1307 PR lto/44965
1308 * lto-lang.c (lto_post_options): Do not read file options.
1309 * lto.c (lto_read_all_file_options): Remove.
1310 (lto_init): Call lto_set_in_hooks here.
1311
bc2cc717 13122011-10-09 Jan Hubicka <jh@suse.cz>
1313
1314 * lto.c (node_cmp, varpool_node_cmp): New functions.
1315 (lto_balanced_map): Honnor -fno-toplevel-reorder of vars&functions.
1316 (cmp_partitions): Rename to ...
1317 (cmp_partitions_size): ... this one.
1318 (cmp_partitions_order): New function.
1319 (lto_wpa_write_files): Sort partitions by order when
1320 -fno-toplevel-reorder is used.
1321
a5f12044 13222011-10-09 Andi Kleen <ak@linux.intel.com>
1323
1324 * lto.c (lto_section_read): Call fatal_error on IO or mmap errors.
1325
b9a16870 13262011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
1327
1328 * lto-lang.c (def_builtin_1): Delete old interface with two
1329 parallel arrays to hold standard builtin declarations, and replace
1330 it with a function based interface that can support creating
1331 builtins on the fly in the future. Change all uses, and poison
1332 the old names. Make sure 0 is not a legitimate builtin index.
1333
21ebaa24 13342011-10-02 Andi Kleen <ak@linux.intel.com>
805389b2 1335
1336 * lto-object.c (lto_obj_add_section_data): Add list.
1337 (lto_obj_add_section): Fill in list.
1338 (ltoobj_build_section_table): Pass through list.
1339 * lto.c (file_data_list): Declare.
1340 (create_subid_section_table): Pass arguments directly.
1341 Fill in list of file_datas.
1342 (lwstate): Delete.
1343 (lto_create_files_from_ids): Pass in direct arguments.
1344 Don't maintain list.
1345 (lto_file_read): Use explicit section and file data lists.
1346 (lto_read_all_file_options): Pass in section_list.
1347 * lto.h (lto_obj_build_section_table): Add list.
1348 (lto_section_slot): Add next.
1349 (lto_section_list): Declare.
1350
da722561 13512011-10-02 Jan Hubicka <jh@suse.cz>
1352
1353 PR lto/47247
1354 * common.c (lto_resolution_str): Add new resolution.
1355 * common.h (lto_resolution_str): Likewise.
1356
15c58191 13572011-09-30 H.J. Lu <hongjiu.lu@intel.com>
1358 Andi Kleen <ak@linux.intel.com>
1359
1360 PR lto/50568
1361 * lto.c (lto_splay_tree_delete_id): New.
1362 (lto_splay_tree_compare_ids): Likewise.
1363 (lto_splay_tree_lookup): Likewise.
1364 (lto_splay_tree_id_equal_p): Likewise.
1365 (lto_splay_tree_insert): Likewise.
1366 (lto_splay_tree_new): Likewise.
1367 (lto_resolution_read): Change id to unsigned HOST_WIDE_INT.
1368 Use lto_splay_tree_id_equal_p and lto_splay_tree_lookup.
1369 (create_subid_section_table): Use lto_splay_tree_lookup and
1370 lto_splay_tree_insert.
1371 (lto_file_read): Use lto_splay_tree_new.
1372
21ebaa24 13732011-09-26 Andi Kleen <ak@linux.intel.com>
badc6cfa 1374
1375 * lto.c (lto_resolution_read): Remove id dumping.
1376 (lto_section_with_id): Turn id HOST_WIDE_ID.
1377 (create_subid_section_table): Dito.
1378
1dc92c59 13792011-08-28 Dodji Seketeli <dodji@redhat.com>
1380
1381 * lto-lang.c (lto_init): Likewise. Also, avoid calling
1382 linemap_add twice.
1383
b6c200c3 13842011-08-11 Martin Jambor <mjambor@suse.cz>
1385
1386 * lto.c (uniquify_nodes): Use main variant's BINFO too.
1387
2541503d 13882011-08-08 Diego Novillo <dnovillo@google.com>
1389
1390 * Make-lang.in (lto/lto.o): Add TREE_STREAMER_H.
1391 * lto.c: Include tree-streamer.h.
1392
c38a75b7 13932011-07-06 Richard Guenther <rguenther@suse.de>
1394
1395 * lto-lang.c (lto_init):
1396 Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
1397
e71f2f1c 13982011-06-11 Jan Hubicka <jh@suse.cz>
1399
ac11d294 1400 PR lto/48246
e71f2f1c 1401 * lto.c (lto_1_to_1_map): Don't create empty partitions.
1402 (lto_balanced_map): Likewise.
1403
c70f46b0 14042011-06-11 Jan Hubicka <jh@suse.cz>
1405
1406 * lto.c (add_cgraph_node_to_partition_1): Break out from ...
1407 (add_cgraph_node_to_partition) ... here; walk aliases.
1408 (lto_1_to_1_map): Remove same body alias code.
1409 (promote_fn): Likewise.
1410 (lto_promote_cross_file_statics): Update comment.
1411
1412
bbcef2a7 14132011-06-07 Diego Novillo <dnovillo@google.com>
1414
1415 * lto.c (uniquify_nodes): Move code to register decls to
1416 the loop that computes canonical types.
1417
1af0124d 14182011-06-07 Richard Guenther <rguenther@suse.de>
1419
1420 * lto-lang.c (lto_init): Do not set
1421 size_type_node or call set_sizetype.
1422
a0605d65 14232011-06-04 Diego Novillo <dnovillo@google.com>
1424
1425 * lto.c (lto_init): New.
1426 (lto_main): Call it.
1427
f05c9dfb 14282011-06-03 Diego Novillo <dnovillo@google.com>
1429
1430 * lto.c (get_resolution): Move from lto-streamer-in.c.
1431 (lto_register_var_decl_in_symtab): Likewise.
1432 (lto_register_function_decl_in_symtab): Likewise.
1433 (uniquify_nodes): Call lto_register_var_decl and
1434 lto_register_function_decl_in_symtab after reading a new
1435 VAR_DECL or FUNCTION_DECL.
1436
ed61b909 14372011-06-01 Richard Guenther <rguenther@suse.de>
1438
1439 * lto-lang.c (lto_register_canonical_types): New function.
1440 (lto_init): Register common nodes with the canonical type machinery.
1441 Do not play tricks with char_type_node.
1442
8f2b914f 14432011-05-26 Richard Guenther <rguenther@suse.de>
1444
1445 * lto.c (uniquify_nodes): Fix bug in one of the previous changes.
1446
1e184c62 14472011-05-25 Nathan Froyd <froydnj@codesourcery.com>
1448
1449 * lto.c (lto_ft_typed): New function.
1450 (lto_ft_common): Call it.
1451 (lto_ft_constructor): Likewise.
1452 (lto_ft_expr): Likewise.
1453 (lto_fixup_prevailing_decls): Check for TS_COMMON before accessing
1454 TREE_CHAIN.
1455
4d83607a 14562011-05-20 Richard Guenther <rguenther@suse.de>
1457
1458 * lto.c (lto_ft_common): Remove pointer-to chain teardown.
1459 (lto_ft_type): Move main-variant and pointer-to chain building ...
1460 (uniquify_nodes): ... here. Compute TYPE_CANONICAL also here,
1461 in a separate final loop.
1462
bddb3763 14632011-05-19 Richard Guenther <rguenther@suse.de>
1464
1465 * lto.c (uniquify_nodes): First register all types before
1466 fixing up the tree SCC.
1467
c6641d23 14682011-05-11 Jan Hubicka <jh@suse.cz>
1469
1470 PR lto/48952
1471 * lto.c (do_whole_program_analysis): Do not register cgraph hooks.
1472
8f2eb9e1 14732011-05-11 Nathan Froyd <froydnj@codesourcery.com>
1474
1475 * lto.c (lto_ft_type): Use TYPE_MINVAL and TYPE_MAXVAL. Adjust
1476 location of binfo field.
1477 (lto_fixup_prevailing_decls): Likewise.
1478
3a939d12 14792011-05-10 Nathan Froyd <froydnj@codesourcery.com>
1480
1481 * lto-lang.c (def_fn_type): Don't call build_function_type, call
1482 build_function_type_array or build_varargs_function_type_array
1483 instead.
1484
1d2bb655 14852011-05-07 Eric Botcazou <ebotcazou@adacore.com>
1486
1487 * lto-lang.c (global_bindings_p): Return bool.
1488
91bf9d9a 14892011-05-07 Jan Hubicka <jh@suse.cz>
1490
56bef313 1491 * lto.c (lto_materialize_function): Use
1492 cgraph_function_with_gimple_body_p.
1493 (add_cgraph_node_to_partition): Do not re-add items to partition;
1494 handle thunks.
91bf9d9a 1495 (add_varpool_node_to_partition): Do not re-add items to partition.
1496
423ba805 14972011-05-03 Jan Hubicka <jh@suse.cz>
1498
1499 * lto.c (free_ltrans_partitions): Fix accidental commit.
1500
19ad01f7 15012011-05-03 Jan Hubicka <jh@suse.cz>
1502
1503 * lto.c (ltrans_partition_def): Remove GTY annotations.
1504 (ltrans_partitions): Move to heap.
1505 (new_partition): Update.
1506 (free_ltrans_partitions): New function.
1507 (lto_wpa_write_files): Use it.
1508
7771d558 15092011-04-29 Martin Jambor <mjambor@suse.cz>
1510
1511 * lto.c: Include ipa-utils.h.
1512 (lto_balanced_map): Update call to ipa_reverse_postorder.
1513 * Make-lang.in (lto/lto.o): Add IPA_UTILS_H to dependencies.
1514
d534cab0 15152011-04-29 Michael Matz <matz@suse.de>
1516
1517 * lto.c (toplevel): Include tree-flow.h.
1518 (lto_read_in_decl_state): Don't merge types here.
1519 (tree_with_vars): New static hash table.
1520 (remember_with_vars): New static functions.
1521 (LTO_FIXUP_TYPE): New macro.
1522 (lto_ft_common, lto_ft_decl_minimal, lto_ft_decl_common,
1523 lto_ft_decl_with_vis, lto_ft_decl_non_common, lto_ft_function,
1524 lto_ft_field_decl, lto_ft_type, lto_ft_binfo, lto_ft_constructor,
1525 lto_ft_expr, lto_fixup_types, uniquify_nodes): New static functions.
1526 (lto_read_decls): Uniquify while reading in trees.
1527 (lto_fixup_data_t, LTO_FIXUP_SUBTREE,
1528 LTO_REGISTER_TYPE_AND_FIXUP_SUBTREE, no_fixup_p, lto_fixup_common,
1529 lto_fixup_decl_minimal, lto_fixup_decl_common, lto_fixup_decl_with_vis,
1530 lto_fixup_decl_non_common, lto_fixup_function, lto_fixup_field_decl,
1531 lto_fixup_type, lto_fixup_binfo, lto_fixup_constructor,
1532 lto_fixup_tree): Remove.
1533 (lto_fixup_state): Remove data argument. Use
1534 lto_symtab_prevailing_decl.
1535 (LTO_SET_PREVAIL, LTO_NO_PREVAIL): New macros.
1536 (lto_fixup_prevailing_decls): New function.
1537 (lto_fixup_state_aux): Argument aux is unused.
1538 (lto_fixup_decls): Don't allocate pointer sets, don't use
1539 lto_fixup_tree, use lto_fixup_prevailing_decls.
1540 (read_cgraph_and_symbols): Allocate and remove tree_with_vars.
1541 * Make-lang.in (lto/lto.o): Depend on $(TREE_FLOW_H).
1542
b630a10e 15432011-04-16 Eric Botcazou <ebotcazou@adacore.com>
1544
1545 * lto.c (lto_balanced_map): Fix typos in head comment.
1546 (lto_promote_cross_file_statics): Fix long lines and remove redundant
1547 test.
1548
cbd7f5a0 15492011-04-16 Jan Hubicka <jh@suse.cz>
1550
1551 * lto.c (lto_balanced_map): Update.
1552
c7b2cc59 15532011-04-14 Jan Hubicka <jh@suse.cz>
1554
1555 * lto.c: Include ipa-inline.h
b630a10e 1556 (add_cgraph_node_to_partition, undo_partition): Use inline_summary
1557 accessor.
c7b2cc59 1558 (ipa_node_duplication_hook): Fix declaration.
1559 * Make-lang.in (lto.o): Update dependencies.
1560
9b88d08d 15612011-04-12 Nathan Froyd <froydnj@codesourcery.com>
1562
1563 * lto-tree.h (union lang_tree_node): Check for TS_COMMON before
1564 calling TREE_CHAIN.
1565 * lto.c (lto_fixup_common): Likewise.
1566
c33080b9 15672011-04-08 Nathan Froyd <froydnj@codesourcery.com>
1568
1569 * lto-lang.c (handle_sentinel_attribute): Don't use TYPE_ARG_TYPES.
1570 (handle_type_generic_attribute): Likewise.
1571
5cd33168 15722011-04-03 Michael Matz <matz@suse.de>
1573
1574 * lto.c (lto_materialize_function): Don't read and then discard
1575 sections in WPA mode.
1576 (lto_read_in_decl_state): Adjust call to lto_streamer_cache_get.
1577
1578 * lto-lang.c (registered_builtin_fndecls): Remove.
1579 (lto_getdecls): Return NULL_TREE.
1580 (lto_builtin_function): Don't remember in registered_builtin_fndecls.
1581
d45127a1 15822011-03-31 Richard Guenther <rguenther@suse.de>
1583
1584 PR lto/48246
1585 * lto.c (lto_wpa_write_files): Disable assert for non-empty
1586 partitions when checking is not enabled.
1587
82715bcd 15882011-03-25 Kai Tietz <ktietz@redhat.com>
1589
1590 * lto.c (lto_resolution_read): Use filename_cmp instead
1591 of strcmp.
1592 (lto_read_section_data): Likewise.
1593
451c8e2f 15942011-03-25 Jeff Law <law@redhat.com>
1595
1596 * lto/lto-lang.c (def_fn_type): Add missing va_end.
1597
ac86af5d 15982011-03-21 Kai Tietz <ktietz@redhat.com>
1599
1600 PR target/12171
1601 * lto-lang.c (lto_attribute_table): Adjust table.
1602
5a8834a5 16032011-02-18 Jakub Jelinek <jakub@redhat.com>
1604
1605 PR bootstrap/47807
1606 * Make-lang.in (lto/lto-lang.o): Depend on $(LTO_STREAMER_H) instead
1607 of lto-streamer.h.
1608
30865946 16092011-02-18 Richard Guenther <rguenther@suse.de>
1610
1611 PR lto/47798
1612 * lto-tree.h (lto_global_var_decls): Do not declare here.
1613 * lto-lang.c: Include lto-streamer.h.
1614 * Make-lang.in (lto-lang.o): Adjust dependencies.
1615
fad71d4f 16162011-02-10 Kai Tietz <kai.tietz@onevision.com>
1617
1618 PR lto/47241
1619 * lto.c (lto_read_section_data): Free
1620 fd_name in failure case.
1621 For mingw targets don't hash file-descriptor.
1622 (read_cgraph_and_symbols): Close current_lto_file
1623 in failure case.
1624
232c9ac7 16252011-01-11 Jan Hubicka <jh@suse.cz>
1626
1627 PR lto/45721
1628 PR lto/45375
b630a10e 1629 * lto.c (partition_cgraph_node_p, partition_varpool_node_p): Weakrefs
1630 are not partitioned.
232c9ac7 1631
a36cf284 16322010-12-22 Nathan Froyd <froydnj@codesourcery.com>
1633
1634 * lto-lang.c (handle_nonnull_attribute, handle_sentinel_attribute):
1635 Use prototype_p.
1636
6abc14d6 16372010-12-06 Richard Guenther <rguenther@suse.de>
1638
1639 PR lto/46796
1640 * lto-lang.c (lto_init): Give names to basic types.
1641
b96c136c 16422010-11-30 Joseph Myers <joseph@codesourcery.com>
1643
1644 * lto-object.c: Don't include toplev.h.
1645 * Make-lang.in (lto/lto-object.o): Don't depend on toplev.h.
1646
92468061 16472010-11-30 Joseph Myers <joseph@codesourcery.com>
1648
1649 * Make-lang.in (lto/lto-object.o): Depend on toplev.h instead of
1650 $(TOPLEV_H).
1651
967958e4 16522010-11-29 Joseph Myers <joseph@codesourcery.com>
1653
1654 * lto-endian.h: Delete.
1655 * lto-object.c: Don't include "libiberty.h".
1656 (O_BINARY): Don't define.
1657 * lto.c: Don't include "libiberty.h" or <sys/mman.h>.
1658 (O_BINARY): Don't define.
1659
baa6eec4 16602010-11-23 Richard Guenther <rguenther@suse.de>
1661
1662 * lto.c (read_cgraph_and_symbols): Remove newline from diagnostic.
1663
4f3aea0d 16642010-11-23 Richard Guenther <rguenther@suse.de>
1665
1666 PR lto/46605
1667 * lto.c (read_cgraph_and_symbols): Bail out after errors.
1668
b8ba44e7 16692010-11-17 Joseph Myers <joseph@codesourcery.com>
1670
1671 * lto.c (lto_main): Take no arguments.
1672 * lto.h (lto_main): Update prototype.
1673
2e521e13 16742010-11-16 Ian Lance Taylor <iant@google.com>
1675
1676 * lto-object.c (lto_obj_file_open): Call
1677 simple_object_attributes_merge rather than
1678 simple_object_attributes_compare.
1679
3c6c0e40 16802010-11-12 Joseph Myers <joseph@codesourcery.com>
1681
1682 * Make-lang.in (lto/lto.o): Use $(OPTS_H).
1683 * lto-lang.c (lto_handle_option): Take location_t parameter.
1684
bf776685 16852010-11-10 Joseph Myers <joseph@codesourcery.com>
1686
1687 * lto.c (lto_resolution_read): Start diagnostics with lowercase
1688 letters and remove trailing '.'.
1689 (lto_file_finalize): Start diagnostic with a lowercase letter.
1690
e09108e1 16912010-11-02 Ian Lance Taylor <iant@google.com>
1692
1693 * lto-object.c: New file.
1694 * lto-elf.c: Remove file.
1695 * lto-macho.c: Remove file.
1696 * lto-macho.h: Remove file.
1697 * lto-coff.c: Remove file.
1698 * lto-coff.h: Remove file.
1699 * Make-lang.in (LTO_OBJS): Change lto/$(LTO_BINARY_READER).o to
1700 lto/lto-object.o.
1701 ($(LTO_EXE)): Remove $(LTO_USE_LIBELF)
1702 (lto/lto-objfile.o): New target.
1703 (lto/lto-elf.o, lto/lto-coff.o, lto/lto-macho.o): Remove targets.
1704 (lto/lto.o): Remove $(LIBIBERTY_H).
1705
4037a4c1 17062010-10-22 Jan Hubicka <jh@suse.cz>
1707
1708 * lto.c (add_cgraph_node_to_partition,
1709 add_varpool_node_to_partition): Add debug info.
1710 (lto_1_to_1_map, lto_balanced_map): Do not re-add already
1711 partitioned nodes.
1712 (do_whole_program_analysis): Set function flags before dumping.
1713
7a3ccc3b 17142010-10-22 Richard Guenther <rguenther@suse.de>
1715
1716 * lto.c (lto_fixup_type): Fixup TYPE_CANONICAL again, via
1717 the new gimple_register_canonical_type.
1718
55e9d7d7 17192010-10-20 H.J. Lu <hongjiu.lu@intel.com>
1720
1721 PR bootstrap/45954
1722 * config-lang.in (boot_language): Set to $enable_lto.
1723
d63880ad 17242010-10-18 Jakub Jelinek <jakub@redhat.com>
1725
1726 PR lto/45638
1727 * Make-lang.in (check-lto): New dummy target.
1728
8e8e1ee7 17292010-10-14 Eric Botcazou <ebotcazou@adacore.com>
1730
1731 * lto-elf.c (SHN_XINDEX): Define if not already defined.
1732
f3f006ad 17332010-10-08 Joseph Myers <joseph@codesourcery.com>
1734
1735 * lto-lang.c (lto_init_options): Change to
1736 lto_init_options_struct. Update parameters.
1737 (LANG_HOOKS_INIT_OPTIONS): Don't define.
1738 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
1739
1e52cb3c 17402010-10-06 Jan Hubicka <jh@suse.cz>
1741
1742 * lto.c (lto_balanced_map): Fix accounting of program size.
1743
11da9120 17442010-10-06 Jan Hubicka <jh@suse.cz>
1745
1746 * lto.c (lto_balanced_map): Do not produce empty partitions.
1747
21ebaa24 17482010-10-06 Andi Kleen <ak@linux.intel.com>
a3de1f55 1749
1750 * lto.c (lto_process_name): Add.
1751 (lto_main): Call lto_process_name.
1752
7ad28d2a 17532010-10-06 Jan Hubicka <jh@suse.cz>
1754
1755 * lto.c (partition_cgraph_node_p, partition_varpool_node_p): Handle
1756 COMDATs required by the linker.
1757
eaa13879 17582010-10-05 Ian Lance Taylor <iant@google.com>
1759
1760 * lto.c (lto_section_with_id): Make s a const pointer.
1761
48e3ea52 17622010-10-05 Jan Hubicka <jh@suse.cz>
1763
1764 * lto.c: Include params.h.
1765 (add_cgraph_node_to_partition, add_varpool_node_to_partition): Do
1766 refcounting in aux field.
1767 (undo_partition, partition_cgraph_node_p, partition_varpool_node_p):
1768 New functions.
1769 (lto_1_to_1_map): Simplify.
1770 (lto_balanced_map): New function.
1771 (do_whole_program_analysis): Chose proper partitioning alg.
1772 * Make-lang.in (lto.o): Add dependency on params.h
1773
21ebaa24 17742010-10-04 Andi Kleen <ak@linux.intel.com>
70293f47 1775
1776 * Make-lang.in (lto1): Add + to build rule.
1777
21ebaa24 17782010-10-03 Andi Kleen <ak@linux.intel.com>
fd30d60a 1779
1780 * lto.c (lto_file_finalize): Replace gcc_assert for missing section
1781 with fatal_error.
1782
4a68fd3c 17832010-09-28 Jan Hubicka <jh@suse.cz>
1784
1785 * lto-lang.c (handle_leaf_attribute): New function.
1786 (lto_attribute_tables): Add leaf.
1787
2edfba82 17882010-09-25 Jie Zhang <jie@codesourcery.com>
1789
1790 * lto.c (lto_read_all_file_options): Start a new line after
1791 printing out file names.
1792
9ced88d0 17932010-09-24 Jan Hubicka <jh@suse.cz>
1794
1795 * lto.c (lto_promote_cross_file_statics): Use const_value_known_p.
1796
7ae8b539 17972010-09-20 Jan Hubicka <jh@suse.cz>
1798
1799 PR tree-optimize/45605
1800 * lto.c (lto_promote_cross_file_statics): Use const_value_known_p.
1801
be1a554f 18022010-09-18 Gerald Pfeifer <gerald@pfeifer.com>
1803
1804 * lto-elf.c (lto_obj_file_open): Also provide filename when
1805 elf_begin fails.
1806
7de998de 18072010-09-17 Jan Hubicka <jh@suse.cz>
1808
1809 * lto.c (lto_promote_cross_file_statics): Use const_value_known.
1810
78d063c8 18112010-09-17 Richard Guenther <rguenther@suse.de>
1812
1813 * lang.opt (flag_wpa): Also enable for the driver.
1814
cdc58a66 18152010-09-16 Jan Hubicka <jh@suse.cz>
1816
1817 * lto.c (lto_materialize_function): Do not tamper with STATIC and
1818 EXTERNAL flags.
1819
7b80d28f 18202010-09-15 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1821
1822 * lto-tree.h (struct lang_type): Add variable_size GTY option.
1823
3210ebe5 18242010-09-08 Jan Hubicka <jh@suse.cz>
1825
1826 * lto.c (real_file_count, real_file_decl_data): New static vars.
1827 (read_cgraph_and_symbols): Use it.
1828
7a52b640 18292010-09-08 Richard Guenther <rguenther@suse.de>
1830
1831 * lto.c (read_cgraph_and_symbols): Collect again after each
1832 file.
1833
be147e7f 18342010-09-07 Jan Hubicka <jh@suse.cz>
1835
1836 * lto.c (promote_var, promote_fn): Set DECL_VISIBILITY_SPECIFIED.
1837
56c34a25 18382010-09-03 Richard Guenther <rguenther@suse.de>
1839
1840 * lto-elf.c (validate_file): Always error if validation fails.
1841
c5cc4842 18422010-08-20 Jan Hubicka <jh@suse.cz>
1843
1844 * lto.c (lto_1_to_1_map): Be prepared for node to have no file data.
1845 (lto_wpa_write_files): Update comments.
1846
9543655f 18472010-08-20 H.J. Lu <hongjiu.lu@intel.com>
1848
1849 PR bootstrap/45357
1850 * lto.c (lto_materialize_function): Replace has_analyzed_clone
1851 with has_analyzed_clone_p.
1852
97b862d3 18532010-08-20 Jan Hubicka <jh@suse.cz>
1854
1855 * lto.c (has_analyzed_clone_p): New function
1856 (lto_materialize_function): Use callgraph to determine if
1857 body is needed.
1858 (materialize_cgraph): Remove DECL_IS_BUILTIN check.
1859
48148244 18602010-08-20 Nathan Froyd <froydnj@codesourcery.com>
1861
1862 * lto.c: Use FOR_EACH_VEC_ELT.
1863
21ebaa24 18642010-07-27 Andi Kleen <ak@linux.intel.com>
eb219e9c 1865
1866 * Make-lang.in (lto.o): Add dependency to splay-tree.h
1867
b78351e5 18682010-07-27 Joseph Myers <joseph@codesourcery.com>
1869
1870 * lto-lang.c (lto_handle_option): Update prototype and return
1871 value type. Remove duplicate assignment to result.
1872
e88d34f6 18732010-07-27 Joseph Myers <joseph@codesourcery.com>
1874
1875 * lto-lang.c (lto_option_lang_mask, lto_complain_wrong_lang_p):
1876 New.
1877 (lto_init_options): Update prototype.
1878 (LANG_HOOKS_OPTION_LANG_MASK, LANG_HOOKS_COMPLAIN_WRONG_LANG_P):
1879 Define.
1880
21ebaa24 18812010-07-10 Andi Kleen <ak@linux.intel.com>
f18bad33 1882
1883 PR lto/44992
1884 * lto.c: Include splay-tree.h
1885 (lto_resolution_read): Change to walk file_ids tree and parse
1886 extra file_id in resolution file.
1887 (lto_section_with_id): Add.
1888 (create_subid_section_table): Add.
1889 (lwstate): Add.
1890 (lto_create_files_from_ids): Add.
1891 (lto_file_read): Change to handle sub file ids and create list
1892 of file_datas. Add output argument for count.
1893 (get_section_data): Pass file_data to lto_get_section_name.
1894 (lto_flatten_file): Add.
1895 (read_cgraph_and_symbols): Handle linked lists of file_datas.
1896
21ebaa24 18972010-07-10 Andi Kleen <ak@linux.intel.com>
58d9117a 1898
1899 * lto-coff.c (hash_name, eq_name): Move.
1900 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
1901 * lto-elf.c: (hash_name, eq_name): Move.
1902 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
1903 * lto-macho.c: (hash_name, eq_name): Move.
1904 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
1905 * lto.c: (hash_name, eq_name): Move from lto-*.c
1906 (lto_obj_create_section_hash_table): Add.
1907 (free_with_string): Add.
1908
0b205f4c 19092010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
1910
1911 * lto-coff.c: Include diagnostic-core.h in every file that
1912 includes toplev.h.
1913 * lto-elf.c: Likewise.
1914 * lto-lang.c: Likewise.
1915 * lto-macho.c: Likewise.
1916
9dccd5de 19172010-07-07 Jakub Jelinek <jakub@redhat.com>
1918
1919 * lto-elf.c (ELFOSABI_NONE, ELFOSABI_LINUX): Define if not defined.
1920 (validate_file): Allow merging of ELFOSABI_NONE with ELFOSABI_LINUX
1921 objects.
1922
7550e1d1 19232010-07-05 Jan Hubicka <jh@suse.cz>
1924
1925 * lto.c (add_cgraph_node_to_partition): Forward declare; walk also
1926 nodes from same comdat group as well as all comdat functions referenced
1927 here.
b630a10e 1928 (add_varpool_node_to_partition, add_references_to_partition): New
1929 function.
1930 (lto_1_1_map): Skip COMDAT fnctions/variables; use
1931 add_varpool_node_to_partition; clear aux flags when done.
1932 (lto_promote_cross_file_statics): Do not promote stuff that gets
1933 duplicated to each ltrans.
7550e1d1 1934
01ec0a6c 19352010-07-04 Jan Hubicka <jh@suse.cz>
1936
1937 * lto.c (read_cgraph_and_symbols): Dump cgraph before merging.
1938
09eb10ed 19392010-06-13 Richard Guenther <rguenther@suse.de>
1940
1941 * lto.c (lto_fixup_type): Do not register or fixup TYPE_CANONICAL.
1942
6c8c5385 19432010-06-09 Kai Tietz <kai.tietz@onevision.com>
1944
1945 * lto.c (lto_resolution_read): Pre-initialize local variable r.
1946 * lto-coff.c (coff_write_object_file): Add braces to if.
1947
ba72912a 19482010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1949
1950 * lto.c (lto_read_in_decl_state): Use typed GC allocation.
1951 (lto_file_read): Likewise.
1952 (new_partition): Likewise.
1953 (read_cgraph_and_symbols): Likewise.
1954
4aafe913 19552010-06-07 Joseph Myers <joseph@codesourcery.com>
1956
1957 * lto-lang.c (flag_no_builtin, flag_no_nonansi_builtin): Remove.
1958 (lto_handle_option): Don't set flag_signed_char here.
1959
fab8a209 19602010-06-04 Richard Guenther <rguenther@suse.de>
1961
1962 PR lto/41584
1963 * lto.c (lto_1_to_1_map): Use the proper file_data for
1964 varpool nodes.
1965
ecb08119 19662010-05-30 Jan Hubicka <jh@suse.cz>
1967
1968 * lto.c (promote_var, promote_fn, lto_wpa_write_files): Dump
1969 partitioning decisions.
1970
68b8d829 19712010-05-29 Jan Hubicka <jh@suse.cz>
1972
1973 * lto.c (bitmap vector): Remove.
1974 (lto_cgraph_node_sets, lto_varpool_node_sets): Remove.
1975 (ltrans_partition_def): New structure.
1976 (ltrans_partition): New type and VECtor.
1977 (new_partition): New function.
1978 (add_cgraph_node_to_partition): New function.
1979 (lto_1_to_1_map): Reorganize for partitions.
1980 (lto_add_inline_clones): Remove.
1981 (lto_add_all_inlinees): Remove.
1982 (lto_promote_cross_file_statics): Use partitions.
1983 (cmp_partitions): New function.
1984 (lto_wpa_write_files): Do not call lto_add_all_inlinees;
1985 use partitions; output files sorted by size.
1986
ea269688 19872010-05-29 Steven Bosscher <steven@gcc.gnu.org>
1988
1989 * Make-lang.in: Replace vec.h dependency with VEC_H.
1990
8fb69344 19912010-05-28 Joseph Myers <joseph@codesourcery.com>
1992
1993 * lto-coff.c (coff_errmsg): Remove.
1994 (lto_coff_begin_section_with_type, lto_obj_append_data): Use %m in
1995 errors instead of coff_errmsg (-1).
1996 * lto-macho.c (mach_o_errmsg): Remove.
1997 (lto_obj_begin_section, lto_obj_append_data): Use %m in errors
1998 instead of mach_o_errmsg (-1).
1999 * lto.c (read_cgraph_and_symbols): Use %m in errors instead of
2000 xstrerror (errno).
2001
2024fa7d 20022010-05-28 Richard Guenther <rguenther@suse.de>
2003
2004 * lto.c (prefix_name_with_star): Removed.
2005 (strip_extension): Likewise.
2006 (get_filename_for_set): Likewise.
2007 (lto_write_ltrans_list): Fold into ...
2008 (lto_wpa_write_files): ... this. Name LTRANS units
2009 by suffixing the ltrans output list filename.
2010 (do_whole_program_analysis): Adjust.
2011
852f689e 20122010-05-27 Joseph Myers <joseph@codesourcery.com>
2013
2014 * lto.c: Include diagnostic-core.h instead of diagnostic.h.
2015 (read_cgraph_and_symbols, lto_main): Use seen_error.
2016 * Make-lang.in (lto/lto.o): Update dependencies.
2017
3c9e9cba 20182010-05-27 Eric Botcazou <ebotcazou@adacore.com>
2019
2020 PR lto/44230
2021 * lto.h (lto_eh_personality): New prototype.
2022 * lto.c: Include debug.h.
2023 (first_personality_decl): New static variable.
2024 (lto_materialize_function): Set it to DECL_FUNCTION_PERSONALITY of the
2025 first function for which it is non-null.
2026 (lto_eh_personality_decl): New static variable.
2027 (lto_eh_personality): New function.
2028 * lto-lang.c (LANG_HOOKS_EH_PERSONALITY): Redefine to above function.
2029 * Make-lang.in (lto/lto.o): Add dependency on debug.h.
2030
cdd0ea37 20312010-05-26 Steven Bosscher <steven@gcc.gnu.org>
2032
2033 * lto-lang.c: Do not include expr.h.
2034
71eb351d 20352010-05-24 Richard Guenther <rguenther@suse.de>
2036
2037 * lto-elf.c (lto_obj_build_section_table): Work around
2038 FreeBSD libelf issue.
2039
ca3e35a1 20402010-05-22 Richard Guenther <rguenther@suse.de>
2041
2042 * lto.c (read_cgraph_and_symbols): Do not collect.
2043
e5507c85 20442010-05-20 Jan Hubicka <jh@suse.cz>
2045
2046 * lto.c (promote_var, promote_fn): New functions.
2047 (lto_promote_cross_file_statics): Compute correctly boundary including
2048 static initializers of readonly vars.
2049
a510bd8d 20502010-05-18 Jan Hubicka <jh@suse.cz>
2051
e5507c85 2052 * lto.c (lto_1_to_1_map): Partition non-inline clones.
a510bd8d 2053 (lto_promote_cross_file_statics): Deal with non-inline clones.
2054
1375c6f8 20552010-05-18 Jan Hubicka <jh@suse.cz>
2056
2057 * lto.c (lto_materialize_function): Announce function when
2058 reading body; allocate_struct_function only when reading body;
2059 do not finalize local statics; ggc_collect after reading;
2060 do not mark reachable node.
2061 (materialize_cgraph): Do not announce function.
2062
757a3237 20632010-05-11 Jan Hubicka <jh@suse.cz>
2064
2065 * lto.c (materialize_cgraph): Revert my previous patch.
2066
942dc465 20672010-05-11 Kai Tietz <kai.tietz@onevision.com>
2068
2069 * lto-coff.c (IMAGE_FILE_MACHINE_ADM64): Rename to
2070 IMAGE_FILE_MACHINE_AMD64.
2071 * lto-coff.c (IMAGE_FILE_MACHINE_ADM64): Likewise.
2072
b4c8770a 20732010-05-11 Jan Hubicka <jh@suse.cz>
2074
2075 * lto.c (lto_fixup_decls): Remove global var decls freeing here.
2076 (materialize_cgraph): Add it here.
2077
25429dc2 20782010-05-11 Jan Hubicka <jh@suse.cz>
2079
2080 * lto.c (lto_fixup_decls): Free no longer needed lto_global_var_decls
2081 vector.
2082
20832010-05-11 Jan Hubicka <jh@suse.cz>
2084
2085 * lto.c (lto_1_to_1_map): Remove some no longer needed checks.
2086 (lto_promote_cross_file_statics): Never promote DECL_EXTERNAL;
2087 use reachable_from_other_partition_p and
2088 referenced_from_other_partition_p test.
2089
6dd40464 20902010-05-11 Kai Tietz <kai.tietz@onevision.com>
2091
2092 * lto-coff.c (validate_file): Add x64-coff support.
2093 * lto-coff.h (IMAGE_FILE_MACHINE_ADM64): New.
2094 (COFF_KNOWN_MACHINES): Add IMAGE_FILE_MACHINE_ADM64.
2095 * lto-lang.c (lto_build_c_type_nodes): Add check for
2096 'long long unsigned int' for x64-windows.
2097 (lto_init): Likewise.
2098
2099
23433d72 21002010-05-07 Steven Bosscher <steven@gcc.gnu.org>
2101
2102 * lto.h (struct lto_file_struct): Document offset member.
2103 * lto-endian.h: New file.
2104 * lto-macho.h: New file.
2105 * lto-macho.c: New file.
2106 * Make-lang.in: Add rule for lto-macho.o.
2107
eb4ef3d1 21082010-05-07 Richard Guenther <rguenther@suse.de>
2109
2110 PR lto/43857
2111 PR lto/43371
2112 * lang.opt (fresolution): Change to ...
2113 (fresolution=): ... this.
2114 * lto-lang.c (lto_handle_option): Adjust.
2115
264cbb51 21162010-05-07 Richard Guenther <rguenther@suse.de>
2117
2118 * lto.c (DUMPBASE_SUFFIX): Remove.
2119 (lto_execute_ltrans): Move functionality to lto-wrapper.c.
2120 Rename to ...
2121 (lto_write_ltrans_list): ... only output the list of ltrans files.
2122 (lto_maybe_unlink): Remove.
2123 (do_whole_program_analysis): Do not execute LTRANS phase
2124 from here.
2125
11dc3713 21262010-05-06 H.J. Lu <hongjiu.lu@intel.com>
2127
2128 * lto-lang.c (lto_handle_option): Add argument kind.
2129
8d810329 21302010-05-05 Jan Hubicka <jh@suse.cz>
2131
264cbb51 2132 * lto.c (lto_promote_cross_file_statics): Compute boundary based on
2133 refs.
8d810329 2134
a238367f 21352010-05-05 Jan Hubicka <jh@suse.cz>
2136
2137 * lto.c (lto_1_to_1_map): Partition only needed nodes.
2138
bf7d782b 21392010-04-30 Jan Hubicka <jh@suse.cz>
2140
b630a10e 2141 * lto.c (get_filename_for_set): Look for cgraph node and if none found,
2142 use default name.
bf7d782b 2143 (lto_wpa_write_files): Write any non-empty partition.
2144
da67d826 21452010-04-30 Jan Hubicka <jh@suse.cz>
2146
2147 * lto.c: Do not attempt to make constant pool references global.
2148
57305941 21492010-04-28 Jan Hubicka <jh@suse.cz>
2150
2151 * lto/lto.c (lto_read_in_decl_state): Use GGC.
2152 (lto_wpa_write_files): Announce what we are writting.
2153 (all_file_decl_data): New.
2154 (read_cgraph_and_symbols): Use GGC; correct timevars.
2155 (do_whole_program_analysis): Collect.
2156 * lto/Make-lang.in (lto.o): Fix dependency.
2157 * Makefile.in (GTFILES): Add lto-streamer.h.
2158 * varpool.c (varpool_analyze_pending_decls): Use TV_VARPOOL.
2159 (varpool_assemble_pending_decls): Use VAROUT.
2160 * lto-streamer.h (lto_tree_ref_table): Annotate.
2161 (lto_in_decl_state): Annotate.
2162 (lto_file_decl_data): Annotate.
2163
0cddb138 21642010-04-28 Jan Hubicka <jh@suse.cz>
2165
2166 * lto.c (lto_varpool_node_sets): New.
2167 (lto_1_to_1_map): Partition varpool too.
2168 (globalize_context_t, globalize_cross_file_statics,
2169 lto_scan_statics_in_ref_table, lto_scan_statics_in_cgraph_node,
2170 lto_scan_statics_in_remaining_global_vars): Remove.
2171 (lto_promote_cross_file_statics): Rewrite.
2172 (get_filename_for_set): Take vset argument.
2173 (lto_wpa_write_files): Pass around vsets.
2174
4d992eb6 21752010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
2176
2177 PR lto/42776
2178 * Make-lang.in (LTO_OBJS): Use LTO_BINARY_READER instead of
2179 hardcoding 'lto-elf.o'.
2180 ($(LTO_EXE)): Use LTO_USE_LIBELF instead of hardcoding '-lelf'.
2181
2182 * lto-coff.h: New file.
2183 * lto-coff.c: Likewise.
2184
9c491711 21852010-04-26 Richard Guenther <rguenther@suse.de>
2186
2187 * lto.c (lto_fixup_type): Deal with non-type TYPE_CONTEXT.
2188
3ba0ce47 21892010-04-26 Dave Korn <dave.korn.cygwin@gmail.com>
2190
2191 * lto.h (lto_elf_file_open): Rename prototype from this ...
2192 (lto_obj_file_open): ... to this.
2193 (lto_elf_file_close): Likewise ...
2194 (lto_obj_file_close): ... and likewise.
2195 (lto_elf_build_section_table): Likewise ...
2196 (lto_obj_build_section_table): ... and likewise.
2197 (lto_elf_begin_section): Likewise ...
2198 (lto_obj_begin_section): ... and likewise.
2199 (lto_elf_append_data): Likewise ...
2200 (lto_obj_append_data): ... and likewise.
2201 (lto_elf_end_section): Likewise ...
2202 (lto_obj_end_section): ... and likewise.
2203 * lto.c (lto_file_read): Update references to the above.
2204 (lto_wpa_write_files): Likewise.
2205 (lto_read_all_file_options): Likewise.
2206 (read_cgraph_and_symbols): Likewise.
2207 * lto-lang.c (LANG_HOOKS_BEGIN_SECTION): Likewise.
2208 (LANG_HOOKS_APPEND_DATA): Likewise.
2209 (LANG_HOOKS_END_SECTION): Likewise.
2210 * lto-elf.c (lto_elf_file_open): Rename from this ...
2211 (lto_obj_file_open): ... to this, updating any references.
2212 (lto_elf_file_close): Likewise ...
2213 (lto_obj_file_close): ... and likewise.
2214 (lto_elf_build_section_table): Likewise ...
2215 (lto_obj_build_section_table): ... and likewise.
2216 (lto_elf_begin_section): Likewise ...
2217 (lto_obj_begin_section): ... and likewise.
2218 (lto_elf_append_data): Likewise ...
2219 (lto_obj_append_data): ... and likewise.
2220 (lto_elf_end_section): Likewise ...
2221 (lto_obj_end_section): ... and likewise.
2222
5a2aecd6 22232010-04-21 Jan Hubicka <jh@suse.cz>
2224
2225 * lto.c (lto_fixup_tree): Do not call wpa fixup.
2226 (materialize_cgraph): Likewise.
2227
ddc90d88 22282010-04-21 Jan Hubicka <jh@suse.cz>
2229
2230 * lto.c (lto_wpa_write_files): Update.
2231 (read_cgraph_and_symbols): Be more verbose.
2232 (materialize_cgraph): Likewise.
2233 (do_whole_program_analysis): Likewise.
2234
e288c7a9 22352010-04-21 Jan Hubicka <jh@suse.cz>
2236
2237 * lto.c (globalize_cross_file_statics): When function has address taken,
2238 it needs to be public.
2239
08843223 22402010-04-20 Jan Hubicka <jh@suse.cz>
2241
2242 * lto.c (lto_add_inline_clones): Do not track inlined_decls.
2243 (lto_add_all_inlinees): Likewise.
2244 (lto_wpa_write_files): Likewise.
2245
ad086ed4 22462010-04-18 Eric Botcazou <ebotcazou@adacore.com>
2247
2248 * lto-lang.c (lto_init): Remove second argument in call to
2249 build_common_tree_nodes.
2250
d6845139 22512010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2252
2253 * lto-elf.c [!HAVE_ELF_GETSHDRSTRNDX] (elf_getshdrstrndx): New
2254 function.
2255
a5813485 22562010-03-09 Eric Botcazou <ebotcazou@adacore.com>
2257
2258 PR bootstrap/43276
2259 * lto-elf.c: Define EM_* constants if not already defined.
2260
a219f6a5 22612010-03-03 Eric Botcazou <ebotcazou@adacore.com>
2262
2263 * lto-elf.c (is_compatible_architecture): New static function.
2264 (DEFINE_VALIDATE_EHDR): Use it to validate the architecture.
2265
2bd888dc 22662010-02-11 Richard Guenther <rguenther@suse.de>
2267
2268 PR driver/43021
2269 * lto-elf.c (lto_elf_file_open): Handle file@offset case more
2270 appropriately.
2271
27721832 22722010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
2273
2274 * lto.c (O_BINARY): Define.
2275 (lto_read_section_data): Open file in binary mode.
2276 * lto-elf.c (O_BINARY): Define.
2277 (lto_elf_file_open): Open file in binary mode.
2278
3bfd70ae 22792010-01-08 Richard Guenther <rguenther@suse.de>
2280
2281 PR lto/42528
2282 * lto-lang.c (lto_handle_option): Handle -f[un]signed-char.
2283 (lto_init): Do not init char_type_node in a standard way
2284 but according to flag_signed_char.
2285
50ca7c37 22862010-01-03 H.J. Lu <hongjiu.lu@intel.com>
2287
2288 PR lto/41564
2289 * lto.c (DUMPBASE_SUFFIX): New.
2290 (lto_execute_ltrans): Append a sequence number to -dumpbase
2291 for LTRANS.
2292
d5e86d20 22932010-01-02 H.J. Lu <hongjiu.lu@intel.com>
2294
2295 PR lto/42580
2296 * lto-elf.c (lto_elf_file_open): Stop if the command line
2297 option file is missing.
2298
08a7e80f 22992009-12-15 Richard Guenther <rguenther@suse.de>
2300
2301 * lto.c (lto_fixup_field_decl): Fixup DECL_FIELD_OFFSET.
2302 (lto_post_options): Do not disable debuginfo.
2303
4af4d09c 23042009-12-14 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
2305
2306 * Make-lang.in ($(LTO_EXE)): Use $(LINKER).
2307
50b2dbd9 23082009-12-11 Richard Guenther <rguenther@suse.de>
2309
2310 PR lto/42037
2311 * lto.c (lto_resolution_read): Properly grow the vector.
2312
97e90c2e 23132009-12-11 Richard Guenther <rguenther@suse.de>
2314
2315 PR lto/41915
2316 * lto-lang.c (lto_init_options): Initialize flag_complex_method
2317 to the C99 default. Do not set flag_unit_at_a_time.
2318
f018d957 23192009-11-28 Jakub Jelinek <jakub@redhat.com>
2320
2321 * lto-lang.c (handle_nonnull_attribute): Remove unused attr_arg_num
2322 variable.
2323
81897669 23242009-11-19 Rafael Avila de Espindola <espindola@google.com>
2325
2326 PR bootstrap/42096
2327 * lto-elf.c (lto_elf_file_open): Use lto_parse_hex.
2328 * lto.c (lto_parse_hex): New.
2329 (lto_resolution_read): Use lto_parse_hex.
2330 * lto.h (lto_parse_hex): New.
2331
b7fedf62 23322009-11-17 Rafael Avila de Espindola <espindola@google.com>
2333
2334 * lto-elf.c (lto_file_init): Add offset argument.
2335 (lto_elf_file_open): Record the offset.
2336 * lto.c (lto_resolution_read): Change file_name into a lto_file
2337 argument. Check offsets.
2338 (lto_file_read): Update call to lto_resolution_read.
2339 * lto.h (lto_file_struct): Add the offset field.
2340
6575099f 23412009-11-16 Rafael Avila de Espindola <espindola@google.com>
2342
2343 * lto-elf.c (lto_elf_file_open): Use strtoll to parse the offset.
2344
6d1cc52c 23452009-11-14 Jan Hubicka <jh@suse.cz>
2346
2347 * lto.c (read_cgraph_and_symbols): Set also ipa_transforms_to_apply.
2348
d405c5a4 23492009-11-12 Rafael Avila de Espindola <espindola@google.com>
2350
2351 * lang.opt (fresolution): Renamed from resolution.
2352 * lto-lang.c (lto_handle_option): Handle new option name.
2353 * lto.c (lto_resolution_read): Add more checks. Discard rest of line.
2354
06b9e52b 23552009-11-04 Richard Guenther <rguenther@suse.de>
2356 Rafael Avila de Espindola <espindola@google.com>
2357
2358 * lto-elf.c (lto_elf_build_section_table): Add the base offset.
2359 (lto_elf_file_open): Handle offsets in arguments name@offest.
2360
f5a023c5 23612009-10-30 Richard Guenther <rguenther@suse.de>
2362
2363 PR lto/41858
2364 * lto.c (lto_file_read): Do not set file_data->fd.
2365 (lto_read_section_data): Use a single-entry file-descriptor cache.
2366 Do not check the result of xmalloc.
2367 (free_section_data): Do not use file_data->fd.
2368 (lto_read_all_file_options): Likewise.
2369
21ce3cc7 23702009-10-22 Richard Guenther <rguenther@suse.de>
2371
2372 * lto.c (lto_fixup_jump_functions): Remove.
2373 (lto_fixup_decls): Do not fixup jump functions.
2374 (read_cgraph_and_symbols): Schedule cgraph merging after
2375 summary reading. Schedule type and decl fixup before
2376 summary reading.
2377
5575303a 23782009-10-22 Richard Guenther <rguenther@suse.de>
2379
2380 * lto.c (lto_fixup_data_t): Remove free_list member.
2381 (lto_fixup_tree): Do not insert into free_list.
2382 (free_decl): Remove.
2383 (lto_fixup_decls): Remove free-list handling.
2384
8867b500 23852009-10-22 Jan Hubicka <jh@suse.cz>
2386
2387 * lto.c (lto_fixup_jump_functions): New function.
2388 (lto_fixup_decls): Use it.
2389
b787522e 23902009-10-16 Richard Guenther <rguenther@suse.de>
2391
2392 PR lto/41715
2393 * lto.c (lto_fixup_tree): Revert last change.
2394
bc0ed27c 23952009-10-14 Richard Guenther <rguenther@suse.de>
2396
2397 * lto.c (lto_fixup_tree): In case the prevailing decl is not
2398 compatible with the one we replace wrap it around a
2399 VIEW_CONVERT_EXPR.
2400
c515f146 24012009-10-09 Richard Guenther <rguenther@suse.de>
2402
2403 PR lto/41635
2404 PR lto/41636
2405 * lto.c (read_cgraph_and_symbols): Do not assert we can open
2406 a file.
2407 * lto-elf.c (init_shdr##BITS): Fix i18n problems.
2408 (init_ehdr##BITS): Likewise.
2409
48cf7037 24102009-10-08 Joseph Myers <joseph@codesourcery.com>
2411
2412 * lto-elf.c (init_shdr##BITS, lto_elf_begin_section_with_type,
2413 init_ehdr##BITS, lto_elf_file_close): Remove trailing "." from
2414 diagnostics.
2415 * lto-lang.c (lto_post_options): Remove trailing "." from
2416 diagnostics.
2417
7366cbe7 24182009-10-08 Richard Guenther <rguenther@suse.de>
2419
2420 * lto.c (read_cgraph_and_symbols): Free the gimple type merging
2421 hash tables.
2422
7c3f71c3 24232009-10-07 Joseph Myers <joseph@codesourcery.com>
2424
2425 * lto.c: Only include <sys/mman.h> if HAVE_MMAP_FILE.
2426
59dd4830 24272009-10-07 Jan Hubicka <jh@suse.cz>
2428
2429 * lto.c (read_cgraph_and_symbols): Mark functions neccesary only at
2430 ltrans stage; explain why this is needed and should not.
2431
fd193bcd 24322009-10-05 Richard Guenther <rguenther@suse.de>
2433
2434 PR lto/41552
2435 PR lto/41487
2436 * lto.c (lto_read_decls): Do not register deferred decls.
2437 (read_cgraph_and_symbols): Delay symbol and cgraph merging
2438 until after reading the IPA summaries.
2439
7bfefa9d 24402009-10-02 Rafael Avila de Espindola <espindola@google.com>
2441
2442 * Make-lang.in (lto/lto-lang.o): Don't depend on lto/common.h.
2443 (lto-lang.c): Don't include lto/common.h.
2444
24452009-10-02 Rafael Avila de Espindola <espindola@google.com>
2446
2447 * Make-lang.in (LTO_OBJS): Remove lto/common.o.
2448 (lto/common.o): Remove.
2449 * common.c: Remove.
2450 * common.h (lto_kind_str): Remove.
2451 (lto_visibility_str): Remove.
2452 (lto_resolution_str): Make it static.
2453
24542009-10-01 Diego Novillo <dnovillo@google.com>
2455
2456 * lto.c (lto_read_decls): Add comment.
2457 Call internal_error instead of gcc_assert.
2458 (lto_resolution_read): Likewise.
2459 (lto_add_all_inlinees): Tidy.
2460 * Make-lang.in: Fix copyright boilerplate.
2461 (lto.pdf): New.
2462 (lto.install-pdf): New.
2463 * lto-tree.h: Fix copyright boilerplate.
2464 * lang-specs.h: Likewise.
2465 Remove ".lto" entry from compilers fragment.
2466 * lto-elf.c: Move inclusion of gelf.h after config.h.
2467 Tidy formatting everywhere.
2468 * lto.h: Fix copyright boilerplate.
2469 Tidy formatting everywhere.
2470 * common.c: Likewise.
2471 * config-lang.in: Likewise.
2472 * common.h: Likewise.
2473 * lto-lang.c: Likewise.
2474
24752009-10-01 Richard Guenther <rguenther@suse.de>
2476
2477 * lto.c (lto_read_section_data): Use plain lseek/read.
2478
24792009-10-01 Richard Guenther <rguenther@suse.de>
2480
2481 * lto.c (LTO_MMAP_IO): Define if we can mmap files and
2482 use sysconf to query the system page size.
2483 (lto_file_read): Implement fallback using stdio.
2484 (free_section_data): Likewise.
2485
24862009-09-29 Diego Novillo <dnovillo@google.com>
2487
2488 * lto-lang.c (lto_init): Really fix call to
2489 build_common_builtin_nodes.
2490
24912009-09-29 Diego Novillo <dnovillo@google.com>
2492
2493 * lto-lang.c (lto_init): Fix call to
2494 build_common_builtin_nodes.
2495
24962009-09-29 Richard Guenther <rguenther@suse.de>
2497
2498 PR lto/40754
2499 * lto-elf.c (init_shdr##BITS): Properly specify alignment
2500 in bytes.
2501 (first_data_block): New static variable.
2502 (lto_elf_append_data): Align the first data block in each
2503 section.
2504
25052009-09-28 Diego Novillo <dnovillo@google.com>
2506
2507 * lto-lang.c: Tidy. Remove stale FIXME lto markers.
2508 * lto.c (strip_extension): New.
2509 (get_filename_for_set): Call it. Do not call make_cwd_temp_file.
2510 (lto_execute_ltrans): Tidy.
2511 Do not pass -fwpa nor -fltrans-* to LTRANS.
2512 * opts.c: Tidy formatting and remove stale FIXME lto markers.
2513 * tree.c (need_assembler_name_p): Call
2514 lang_hooks.decls.may_need_assembler_name_p if set.
2515 * varasm.c (default_binds_local_p_1): Remove check for
2516 flag_ltrans.
2517 * varpool.c (decide_is_variable_needed): Do not test for
2518 in_lto_p.
2519
25202009-09-22 Richard Guenther <rguenther@suse.de>
2521
2522 PR lto/39276
2523 * lto.c (lto_execute_ltrans): Perform ltrans phase manually.
2524 * Make-lang.in: Remove ltrans-driver stuff.
2525 * config-lang.in: Likewise.
2526 * lang.opt (fltrans-driver): Remove.
2527 * lto-lang.c (lto_init_options): Remove code initializing
2528 ltrans_driver.
2529 * ltrans-driver: Remove.
2530
25312009-09-21 Diego Novillo <dnovillo@google.com>
2532
2533 * lto-lang.c (lto_define_builtins): Remove superfluous
2534 calls to targetm.init_builtins and build_common_builtin_nodes.
2535 (lto_init): Add targetm.arm_eabi_unwinder as parameter to
2536 build_common_builtin_nodes.
2537 * lto.c (lto_materialize_function): Do nothing if NODE is a
2538 clone.
2539
25402009-09-03 Diego Novillo <dnovillo@google.com>
2541
2542 * lto-elf.c (validate_file): Replace call to
2543 elf_getshstrndx with call to elf_getshdrstrndx.
2544
25452009-08-19 Richard Guenther <rguenther@suse.de>
2546
2547 * lto-lang.c (lto_init): Merge char_type_node with the
2548 appropriately signed variant.
2549
25502009-08-19 Richard Guenther <rguenther@suse.de>
2551
2552 PR lto/41071
2553 * lto.c (lto_fixup_common): Re-build the pointer-to chain part one.
2554 (lto_fixup_type): Re-build the pointer-to chain part two.
2555
25562009-08-19 Richard Guenther <rguenther@suse.de>
2557
2558 PR lto/41071
2559 * lto.c (lto_fixup_type): Re-build the type variant chain.
2560
25612009-08-19 Richard Guenther <rguenther@suse.de>
2562
2563 PR lto/41071
2564 * lto.c (lto_fixup_constructor): New function.
2565 (lto_fixup_tree): Replace all types. Properly fixup
2566 constructors and constants.
2567
25682009-08-14 Richard Guenther <rguenther@suse.de>
2569
2570 * lto.c (read_cgraph_and_symbols): Exchange TREE_CHAIN use
2571 for DECL_LANG_SPECIFIC.
2572
25732009-08-13 Richard Guenther <rguenther@suse.de>
2574
2575 PR lto/41032
2576 * lto-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define to NULL.
2577
25782009-07-30 Richard Guenther <rguenther@suse.de>
2579
2580 PR lto/40903
2581 * lto.c (read_cgraph_and_symbols): After fixing up decls choose
2582 the largest decl for output and free TREE_CHAIN for further
2583 use.
2584
25852009-07-24 Diego Novillo <dnovillo@google.com>
2586
2587 * Make-lang.in: Add empty lto.install-plugin target.
2588
25892009-07-13 Diego Novillo <dnovillo@google.com>
2590
2591 * lto.c (lto_fixup_tree): Handle IMPORTED_DECL.
2592
25932009-07-11 Richard Guenther <rguenther@suse.de>
2594
2595 * lto-lang.c (lto_write_globals): Wrapup global decls.
2596
25972009-07-10 Richard Guenther <rguenther@suse.de>
2598
2599 * lto-lang.c (lto_init): Allocate one more location to make
2600 BUILTINS_LOCATION correct.
2601
26022009-07-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2603
2604 * lto.c (free_section_data): Cast computed_offset to caddr_t.
2605
26062009-07-06 Diego Novillo <dnovillo@google.com>
2607
2608 * lto.c (lto_fixup_type): Fixup TYPE_SIZE and
2609 TYPE_SIZE_UNIT.
2610
26112009-07-06 Diego Novillo <dnovillo@google.com>
2612
2613 * lto.c (preload_common_nodes): Remove.
2614 (lto_read_in_decl_state): Call lto_streamer_cache_get.
2615 (lto_read_decls): Call lto_data_in_create and
2616 lto_data_in_delete.
2617 (free_decl): Do not call ggc_free.
2618 (lto_main): Call lto_init_reader.
2619 * lto-lang.c (lto_type_for_size): Handle intTI_type_node.
2620 (lto_init): Initialize main_identifier_node if needed.
2621 Make ptrdiff_type_node be integer_type_node.
2622
26232009-06-19 Diego Novillo <dnovillo@google.com>
2624
2625 * lto.c: Remove code guarded by #ifdef LTO_STREAM_DEBUGGING.
2626 Remove code guarded by #ifdef GLOBAL_STREAMER_TRACE.
2627 Remove code guarded by #ifdef LOCAL_TRACE.
2628
26292009-06-18 Diego Novillo <dnovillo@google.com>
2630
2631 * lto.c: Update license to GPLv3.
2632 * lto-elf.c: Likewise.
2633 * common.c: Likewise.
2634 * lto-lang.c: Likewise.
2635 * lto.h: Remove superfluous include files. Update all
2636 users.
2637
26382009-06-17 Diego Novillo <dnovillo@google.com>
2639
2640 * lto.c (read_cgraph_and_symbols): Call input_cgraph.
2641
26422009-06-02 Diego Novillo <dnovillo@google.com>
2643
2644 * lto.c (lto_1_to_1_map): Ignore nodes that have not been
2645 read in.
2646 (materialize_cgraph): Only materialize nodes that have a
2647 representation on file.
2648
26492009-06-01 Diego Novillo <dnovillo@google.com>
2650
2651 * lto-lang.c (lto_handle_option): Hanlde OPT_Wabi.
2652
26532009-05-31 Diego Novillo <dnovillo@google.com>
2654
2655 * lto-lang.c (lto_type_for_mode): Handle all the modes
2656 handled in c_common_type_for_mode.
2657
26582009-05-21 Diego Novillo <dnovillo@google.com>
2659
2660 * lto-elf.c: Always include <gelf.h>.
2661 * config-lang.in (target_libs): Remove.
2662 (build_by_default): Set to no.
2663
26642009-05-15 Diego Novillo <dnovillo@google.com>
2665
2666 * lto.c (lto_materialize_function): Assert that DECL is
2667 not a builtin.
2668 (materialize_cgraph): Don't try to materialize builtin
2669 functions.
2670 * lto-section-out.c (write_symbol_vec): Do not write
2671 builtin functions.
2672
26732009-05-13 Diego Novillo <dnovillo@google.com>
2674
2675 * lto-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define.
2676
26772009-05-07 Diego Novillo <dnovillo@google.com>
2678
2679 * lto.c (lto_resolution_read): Add type casts for C++ warnings.
2680 (LTO_REGISTER_TYPE_AND_FIXUP_SUBTREE): Define.
2681 (lto_fixup_type): Call it for TYPE_POINTER_TO,
2682 TYPE_REFERENCE_TO, TYPE_CONTEXT and TYPE_CANONICAL.
2683 (lto_fixup_tree): Call gimple_register_type when *TP is a
2684 type.
2685 (lto_main): Call bitmap_obstack_initialize.
2686
26872009-04-22 Diego Novillo <dnovillo@google.com>
2688
2689 * lto.c (free_section_data): Tidy.
2690 (lto_1_to_1_map): Tidy.
2691 (lto_add_all_inlinees): Tidy.
2692 (prefix_name_with_star): New.
2693 (get_filename_for_set): New.
2694 (lto_wpa_write_files): Call cgraph_node_set_needs_ltrans_p
2695 to determine what cgraph node sets to write.
2696 Call get_filename_for_set to compute temporary file
2697 names.
2698 (lto_execute_ltrans): Do not execute LTRANS on files with
2699 names that start with '*'.
2700 Move logic to execute LTRANS together so that LTRANS is
2701 invoked only if there are any files to compile.
2702 (do_whole_program_analysis): Only remove output files
2703 that do not start with '*'.
2704
27052009-04-06 Diego Novillo <dnovillo@google.com>
2706
2707 * lto-lang.c (lto_post_options): Set flag_excess_precision_cmdline.
2708 * lto.c (read_cgraph_and_symbols): Set cgraph_function_flags_ready.
2709 (lto_add_all_inlinees): Tidy.
2710
27112009-03-26 Diego Novillo <dnovillo@google.com>
2712
2713 * lto.c: Include gimple.h.
2714 (lto_read_in_decl_state): Call gimple_register_type for
2715 every type in every stream.
2716 (lto_fixup_common): Call gimple_register_type if T has a
2717 type.
2718 (do_whole_program_analysis): Call print_lto_report.
2719 (lto_main): Call print_lto_report after cgraph_optimize.
2720 * Make-lang.in (lto.o): Add dependency on GIMPLE_H.
2721
27222009-03-24 Diego Novillo <dnovillo@google.com>
2723
2724 * Make-lang.in (lto-lang.o): Add dependency on TARGET_H and EXPR_H.
2725 (lto.o): Add dependency on GIMPLE_H.
2726
27272009-03-10 Simon Baldwin <simonb@google.com>
2728
2729 * lto.c (lto_read_all_file_options): Close any open file descriptor
2730 contained in file_data before freeing.
2731
27322009-02-24 Rafael Avila de Espindola <espindola@google.com>
2733
2734 * lto.c (lto_add_inline_clones): Don't add the master clone. Check
2735 for a decl in the original bitmap, not a node.
2736 (lto_add_all_inlinees): Remove original nodes that are not needed.
2737 (lto_scan_statics_in_cgraph_node): Don't care if the node is the master.
2738
27392009-02-24 Diego Novillo <dnovillo@google.com>
2740
2741 * lto.c (lto_materialize_function): Update
2742 lto_stats.num_function_bodies.
2743 (get_section_data): Initialize *LEN to 0.
2744 (lto_1_to_1_map): Update lto_stats.num_cgraph_partitions.
2745 (lto_wpa_write_files): Update lto_stats.num_cgraph_nodes.
2746 Update lto_stats.num_output_files.
2747 (read_cgraph_and_symbols): Update lto_stats.num_input_files.
2748 (materialize_cgraph): Update lto_stats.num_input_cgraph_nodes.
2749 (lto_main): Initialize lto_stats.
2750 If flag_lto_report is set, call print_lto_report.
2751
27522009-02-19 Diego Novillo <dnovillo@google.com>
2753
2754 Revert
2755
2756 2009-02-19 Rafael Avila de Espindola <espindola@google.com>
2757
2758 * lto.c (lto_add_inline_clones): Don't add the
2759 master clone. Check for a decl in the original
2760 bitmap, not a node.
2761 (lto_add_all_inlinees): Remove original nodes
2762 that are not needed.
2763 (lto_scan_statics_in_cgraph_node): Don't care if
2764 the node is the master.
2765 (lto_promote_cross_file_statics): Use a new
2766 context.seen_node_decls for each set
2767
27682009-02-19 Rafael Avila de Espindola <espindola@google.com>
2769
2770 * lto.c (lto_add_inline_clones): Don't add the master clone. Check
2771 for a decl in the original bitmap, not a node.
2772 (lto_add_all_inlinees): Remove original nodes that are not needed.
2773 (lto_scan_statics_in_cgraph_node): Don't care if the node is the master.
2774 (lto_promote_cross_file_statics): Use a new context.seen_node_decls
2775 for each set
2776
27772009-02-18 Diego Novillo <dnovillo@google.com>
2778
2779 * lto.c (lto_wpa_write_files): Use timers TV_WHOPR_WPA
2780 and TV_WHOPR_WPA_IO.
2781 (lto_execute_ltrans): Use timer TV_WHOPR_WPA_LTRANS_EXEC.
2782 (read_cgraph_and_symbols): Use timer TV_IPA_LTO_DECL_IO.
2783 (materialize_cgraph): Use timer TV_IPA_LTO_GIMPLE_IO.
2784 Use timer TV_WHOPR_WPA or TV_WHOPR_LTRANS or TV_LTO
2785 depending on command line flags.
2786 (do_whole_program_analysis): Use timer TV_WHOPR_WPA.
2787 (lto_main): Remove timer uses.
2788
27892009-02-18 Rafael Avila de Espindola <espindola@google.com>
2790
2791 * lto.c (lto_materialize_function): Don't set DECL_EXTERN to 0.
2792 (lto_wpa_write_files): Update calls to renamed functions.
2793
27942009-02-17 Diego Novillo <dnovillo@google.com>
2795
2796 PR 39203
2797 * lto-lang.c (lto_post_options): Disable -fwhole-program
2798 when running LTRANS.
2799
28002009-02-10 Diego Novillo <dnovillo@google.com>
2801
2802 * lto.c (read_cgraph_and_symbols): Fix comment.
2803
28042009-02-10 Diego Novillo <dnovillo@google.com>
2805
2806 * lto.c (read_cgraph_and_symbols): Read options from all
2807 IL files.
2808
28092009-02-10 Diego Novillo <dnovillo@google.com>
2810
2811 * lto.c (read_cgraph_and_symbols): Factor out of lto_main.
2812 (materialize_cgraph): Likewise.
2813 (do_whole_program_analysis): Likewise.
2814 (lto_main): Call read_cgraph_and_symbols,
2815 materialize_cgraph and do_whole_program_analysis.
2816
28172009-02-10 Simon Baldwin <simonb@google.com>
2818
2819 * lto.c: Include lto-opts.h.
2820 * (lto_main): Clear file options at loop start, read any saved
2821 options from the first file handled, and re-issue options.
2822 * Makefile.in (lto.o): Add dependency on lto-opts.h.
2823
28242009-02-02 Diego Novillo <dnovillo@google.com>
2825
2826 * lto.c (lto_main): Stop LTO_TIMER and use
2827 TV_WHOPR_WPA_LTRANS_EXEC when launching LTRANS.
2828
28292009-01-30 H.J. Lu <hongjiu.lu@intel.com>
2830
2831 PR lto/38995
2832 * lto-elf.c (init_shdr##BITS): Set the sh_addralign field
2833 to POINTER_SIZE.
2834
28352009-01-29 Ramana Radhakrishnan <ramana.r@gmail.com>
2836
2837 * Make-lang.in (LTO_EXE): Link with all
2838 BACKENDLIBS and not only GMPLIBS
2839
28402009-01-28 H.J. Lu <hongjiu.lu@intel.com>
2841
2842 PR bootstrap/38992
2843 * lto-elf.c: Include gelf.h instead of libelf.h.
2844 (lto_elf_file_close): Replace elfx_update_shstrndx with
2845 gelf_getehdr, elf_getscn, gelf_getshdr, gelf_update_shdr and
2846 gelf_update_ehdr.
2847
28482009-01-28 H.J. Lu <hongjiu.lu@intel.com>
2849
2850 PR middle-end/38996
2851 * lto-elf.c (DEFINE_INIT_EHDR): Initialize e_version.
2852
28532009-01-26 Diego Novillo <dnovillo@google.com>
2854
2855 * lto-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Update.
2856
28572009-01-26 Diego Novillo <dnovillo@google.com>
2858
2859 * lto-lang.c (lto_types_compatible_p): Move to gimple.c
2860 and rename into gimple_types_compatible_p.
2861
28622009-01-12 Rafael Avila de Espindola <espindola@google.com>
2863
2864 * lto-lang.c (lang_hooks): Remove the const qualifier.
2865
28662009-01-06 Diego Novillo <dnovillo@google.com>
2867
2868 * ltrans-driver: Mark 'all' target as phony.
2869
28702008-12-31 Diego Novillo <dnovillo@google.com>
2871
2872 * ltrans-driver: Execute a NOP action for target 'all'.
2873
28742008-12-19 Diego Novillo <dnovillo@google.com>
2875
2876 * lto.c (lto_1_to_1_map): Tidy.
2877
28782008-12-19 Diego Novillo <dnovillo@google.com>
2879
2880 * lto-elf.c (lto_elf_file_open): When FILENAME cannot
2881 be opened, show its name.
2882 * ltrans-driver: If $verbose is set, do not use parallelism.
2883
28842008-12-17 Rafael Avila de Espindola <espindola@google.com>
2885
2886 * lto.c (lto_fixup_function): New.
2887 (lto_fixup_tree): Call lto_fixup_function.
2888
28892008-12-14 Doug Kwan <dougkwan@google.com>
2890
2891 * lto.c (lto_1_to_1_map): Create a cgraph node set for any global
2892 variables if there is no function.
2893
28942008-12-10 Simon Baldwin <simonb@google.com>
2895
2896 * ltrans-driver: Always run make in silent mode, to avoid make's
2897 trace on stdout interfering with lto-wrapper output.
2898
28992008-12-10 Doug Kwan <dougkwan@google.com>
2900
2901 * lto.c (lto_add_inline_clones): Do not force master clones of
2902 inlined functions already in SET to be static inline.
2903
29042008-12-04 Doug Kwan <dougkwan@google.com>
2905
2906 * lto.c (globalize_context_t): New type to store states in
2907 globalization of cross-file statics.
2908 (globalize_cross_file_statics): New.
2909 (lto_scan_statics_in_ref_table): Walk tree to look for reachable
2910 static decls that need to be fixed up.
2911 (lto_scan_statics_in_cgraph_node): Change call interface to use
2912 a globalize_context_t CONTEXT for all states used.
2913 (lto_scan_statics_in_remaining_global_vars): New.
2914 (lto_promote_cross_file_statics): Use new call interface of
2915 LTO_SCAN_STATICS_IN_CGRAPH_NODE. Handle remaining externally
2916 visible vars in the last set.
2917
29182008-12-03 Diego Novillo <dnovillo@google.com>
2919
2920 * lto.c (lto_fixup_tree): Do not emit an error when
2921 PREVAILING throw but T doesn't.
2922
29232008-12-02 Doug Kwan <dougkwan@google.com>
2924
2925 * lto.c (lto_scan_statics_in_ref_table): New function factored out
2926 from code in ...
2927 (lto_scan_statics_in_cgraph_node): Handle both file-scope static
2928 variables and functions.
2929 (lto_promote_cross_file_statics): Rename bitmaps to SEEN_DECLS
2930 and GLOBAL_DECLS from SEEN_VARS and GLOBAL_VARS.
2931
29322008-11-29 Diego Novillo <dnovillo@google.com>
2933
2934 * lto.c: Include timevar.h.
2935 (lto_materialize_function): Tidy. Add comments.
2936 (lto_wpa_write_files): Tidy.
2937 (lto_execute_ltrans): Tidy.
2938 (lto_main): Add local variable LTO_TIMER. Initialize it
2939 to one of TV_WHOPR_WPA, TV_WHOPR_LTRANS or TV_LTO.
2940 Start and stop the timer.
2941 Tidy comments.
2942 * Make-lang.in (lto.o): Add dependency on timevar.h.
2943 * ltrans-driver: React to -v and -save-temps.
2944 Use simple heuristic to determine how much parallelism to
2945 use when executing make.
2946
29472008-11-12 Doug Kwan <dougkwan@google.com>
2948
2949 * lto.c (lto_bitmap_obstack): Remove var.
2950 (lto_materialize_function): Do nothing instead of marking function
2951 body in file if flag_wpa is true.
2952 (lto_add_all_inlinees): Use bitmap functions in lto-utils.c.
2953 (lto_scan_statics_in_cgraph_node): New function.
2954 (lto_promote_cross_file_statics): Same.
2955 (lto_wpa_write_files): Call lto_promote_cross_file_statics.
2956 Use bitmap functions in lto-utils.c. Remove unsued label OUT.
2957 * Make-lang.in (lto/lto.o): Add lto-utils.h to dependency list.
2958
29592008-11-09 Diego Novillo <dnovillo@google.com>
2960
2961 * lto/lto.c (lto_fixup_tree): Change error message locus
2962 information to include location of mismatching
2963 declaration.
2964 Use TREE_NO_WARNING to avoid repeated messages.
2965 (lto_main): If lto_fixup_decls emitted any errors, exit.
2966 * lto/lto-lang.c: Don't include libfuncs.h and except.h
2967 (lto_init_options): Don't enable exceptions by default.
2968 (lto_eh_runtime_type): Move to lto-function-in.c
2969 (lto_init_eh): Likewise.
2970 (lto_init): Don't call lto_init_eh.
2971 * lto/Make-lang.in (lto-lang.o): Remove dependency on
2972 libfuncs.h and except.h.
2973
29742008-10-30 Diego Novillo <dnovillo@google.com>
2975
2976 * lto.c (lto_read_decls): Declare debug_main only if
2977 LTO_STREAM_DEBUGGING is enabled.
2978
29792008-10-30 Simon Baldwin <simonb@google.com>
2980
2981 * lto.c (lto_wpa_write_files): Create intermediate files with
2982 make_cwd_temp_file().
2983 (lto_maybe_unlink): New. Delete intermediate WPA files unless
2984 WPA_SAVE_LTRANS is set.
2985 (lto_main): Call lto_maybe_unlink() for intermediate WPA files.
2986 * ltrans-driver: Do not strip directory from output files.
2987
29882008-10-29 Doug Kwan <dougkwan@google.com>
2989
2990 * lto.c (free_decl): Call lto_symtab_clear_resolution when freeing
2991 DECL.
2992 * Make-lang.in (LTO_OBJS): Remove lto/lto-symtab.o
2993 (lto/lto-symtab.o): Remove rule.
2994 * lto-tree.h (struct lang_identifier): Remove LTO specific fields.
2995 (struct lang_decl): Remove RESOLUTION and add DUMMY in struct.
2996 (LANG_IDENTIFIER_CAST, LTO_IDENTIFIER_DECL, LTO_DECL_RESOLUTION):
2997 Remove macros.
2998 lto-symtab.c (File): Move up one level.
2999 lto-lang.c (cgraph.h): Remove include.
3000 (input_overwrite_node, input_node, input_edge, input_cgraph_1,
3001 input_cgraph): Move to lto-cgraph.c in gcc directory above.
3002 (LANG_HOOKS_INPUT_CGRAPH): Remove use of macro.
3003
30042008-10-24 Rafael Espindola <espindola@google.com>
3005
3006 * lto-function-in.c (get_resolution): Return LDPR_PREEMPTED_IR for
3007 non prevailing weak symbols.
3008
30092008-10-24 Rafael Espindola <espindola@google.com>
3010
3011 * lto-lang.c (input_cgraph_1): Iterate over nodes, not cgraph_nodes.
3012
30132008-10-24 Rafael Espindola <espindola@google.com>
3014
3015 * lto-lang.c (input_node): Avoid casts from pointers to ints of
3016 different types.
3017
30182008-10-23 Simon Baldwin <simonb@google.com>
3019
3020 * lto-lang.c (input_node): Save the node reference, rather than the
3021 node pointer, in node->inlined_to.
3022 (input_cgraph_1): Convert node references into node pointers.
3023
30242008-10-22 Diego Novillo <dnovillo@google.com>
3025 Rafael Espindola <espindola@google.com>
3026
3027 * lto.c (lto_resolution_read): Tidy.
3028 * lto-symtab.c (lto_symtab_prevailing_decl): Do not
3029 abort if RET is NULL.
3030
30312008-10-22 Doug Kwan <dougkwan@google.com>
3032
3033 * lto.c (lto_fixup_tree): Check for NOTHROW conflict only if
3034 exceptions flag is given.
3035 * lto-lang.c: (lto_init_options) Set default exceptions flag.
3036 (lto_init_eh): Remove exceptions flag initialization.
3037 (lto_init): Only call lto_init_eh if exceptions flag is set.
3038
30392008-10-21 Diego Novillo <dnovillo@google.com>
3040
3041 * lto.c: Tidy some formatting.
3042 * lto.h: Likewise.
3043
30442008-10-21 Simon Baldwin <simonb@google.com>
3045
3046 * lto-symtab.c: (lto_same_type_p): Types cannot be equal if one of
3047 them is NULL (but not the other).
3048
30492008-10-17 Diego Novillo <dnovillo@google.com>
3050
3051 * ltrans-driver: Divert output from make to a temporary file.
3052 Show it if the call to make failed.
3053
30542008-10-15 Diego Novillo <dnovillo@google.com>
3055
3056 * lto.c (lto_wpa_write_files): Reformat do-while loop.
3057 Do not print TEMP_FILENAME
3058 * ltrans-driver: Call make with -s.
3059
30602008-10-15 Diego Novillo <dnovillo@google.com>
3061
3062 * lto-symtab.c (lto_symtab_merge_decl): Do not force
3063 TREE_STATIC on global symbols.
3064
30652008-10-14 Ollie Wild <aaw@google.com>
3066
3067 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): Remove.
3068 (LTRANS_DRIVER_EXE): Add.
3069 (lto.all.cross): Add LTRANS_DRIVER_EXE.
3070 (lto.all.encap): Add LTRANS_DRIVER_EXE.
3071 (lto.install.common): Remove ltrans-driver.
3072 (lto.mostlyclean): Add LTRANS_DRIVER_EXE.
3073 (LTRANS_DRIVER_EXE): New build rule.
3074 * config-lang.in (compilers): Add ltrans-driver.
3075
30762008-10-14 Diego Novillo <dnovillo@google.com>
3077
3078 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): Disable transformation
3079 of program name.
3080
30812008-10-13 Ollie Wild <aaw@google.com>
3082
3083 * lang-spec.h (@lto): Replace lto1_options with cc1_options.
3084 * lto.c (lto_execute_ltrans): Add "-fno-wpa -fltrans -xlto" to CFLAGS.
3085 * ltrans-driver (LTRANS_FLAGS): Remove.
3086
30872008-10-08 Doug Kwan <dougkwan@google.com>
3088
3089 * lto.c (lto_fixup_tree): Remove ATTRIBUTE_UNUSED from DATA.
3090 Handle new tree codes RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE
3091 and TREE_BINFO. Also move code handling FUNCTION_DECL and VAR_DECL
3092 from lto_fixup_state to here.
3093 (lto_fixup_state): Take an lto_fixup_data_t object DATA instead of
3094 just a free-list. Fix up types also. Move decl merging code to
3095 lto_fixup_tree.
3096 (lto_fixup_state_aux): Change AUX to point to an lto_fixup_data_t
3097 object.
3098 (lto_fixup_decls): Use another pointer set to avoid multiple
3099 walking of nodes except for DECLs to be replaced. Pass an
3100 lto_fixup_data_t object to tree-walker.
3101
31022008-10-08 Rafael Espindola <espindola@google.com>
3103
3104 * lto-symtab.c (lto_symtab_set_resolution): New.
3105 (lto_symtab_merge_decl): Use lto_symtab_set_resolution and
3106 lto_symtab_get_resolution.
3107 (lto_symtab_prevailing_decl): Return decl for non public decls.
3108 (lto_symtab_get_resolution): New.
3109 * lto.c (lto_fixup_tree, lto_fixup_state): Remove unecessary checks.
3110
31112008-10-06 Rafael Espindola <espindola@google.com>
3112
3113 * lto-lang.c: Include cgraph.h.
3114 (input_overwrite_node, input_node, input_edge, input_cgraph_1,
3115 input_cgraph): Moved from lto-cgraph.c.
3116 (LANG_HOOKS_INPUT_CGRAPH): New.
3117
31182008-10-03 Rafael Espindola <espindola@google.com>
3119
3120 * lto.c (lto_fixup_tree, lto_fixup_state): Fix the FIXME.
3121
31222008-10-03 Rafael Espindola <espindola@google.com>
3123
3124 * lto-symtab.c (lto_symtab_overwrite_decl): Remove. Remove all calls.
3125 (lto_symtab_merge_decl): Update LTO_IDENTIFIER_DECL the reflect the
3126 prevailing definition. Don't mark TREE_NOTHROW differences.
3127 * lto.c (lto_fixup_tree): New.
3128 (lto_fixup_state): New.
3129 (lto_fixup_state_aux): New.
3130 (free_decl): New.
3131 (lto_fixup_decls): New.
3132 (lto_main): Call lto_fixup_decls.
3133
31342008-10-02 Ollie Wild <aaw@google.com>
3135
3136 * lang.opt (fltrans): Moved from common.opt. Remove RejectNegative
3137 and Init.
3138 (fwpa): Moved from common.opt. Remove RejectNegative and Init.
3139 * lto-lang.c (lto_post_options): Add validation and fixups for
3140 -fltrans and -fwpa.
3141
31422008-10-02 Rafael Espindola <espindola@google.com>
3143
3144 * lto-symtab.c (lto_symtab_merge_var, lto_symtab_merge_fn,
3145 lto_symtab_merge_decl): Return void.
3146 (lto_symtab_prevailing_decl): New.
3147
31482008-09-30 Rafael Espindola <espindola@google.com>
3149
3150 * lto-symtab.c (lto_symtab_compatible): Remove the check for already
3151 defined symbols.
3152 (lto_symtab_overwrite_decl): Copy LTO_DECL_RESOLUTION.
3153 (lto_symtab_merge_decl): Store symbol resolution in LTO_DECL_RESOLUTION.
3154 Check for already defined symbols.
3155 * lto-tree.h (lang_decl): Remove dummy and add resolution fields.
3156 (LTO_IDENTIFIER_RESOLUTION): Remove.
3157 (LTO_DECL_RESOLUTION): New.
3158
31592008-09-30 Rafael Espindola <espindola@google.com>
3160
3161 * lto.c (lto_read_decls): Use new input_tree signature.
3162
31632008-09-26 Doug Kwan <dougkwan@google.com>
3164
3165 * lto.c (lto_main): Call lto_fixup_nothrow_decls to fix up function
3166 bodies affected by exception attribute merging of DECLs.
3167 * lto-symtab.c (lto_symtab_merge_decl): Handle exception attribute
3168 merging.
3169
31702008-09-25 Rafael Espindola <espindola@google.com>
3171
3172 * Make-lang.in (PLUGIN_API_H, LTO_TREE_H): New.
3173 (lto/lto-lang.o, lto/lto.o, lto/lto-symtab.o) Use LTO_TREE_H.
3174 * lto-symtab.c (lto_symtab_compatible): New.
3175 (lto_symtab_overwrite_decl): New.
3176 (lto_symtab_merge_decl): Refactor to use the above functions
3177 and the resolution from lang_identifier.
3178 * lto-tree.h: Include plugin-api.h.
3179 (lang_identifier): Add resolution.
3180 (LTO_IDENTIFIER_RESOLUTION): New.
3181
31822008-09-25 Ollie Wild <aaw@google.com>
3183
3184 * lang.opt (fltrans-output-list=): New option.
3185 * lto.c (lto_execute_ltrans): Output file names to ltrans_output_list.
3186
31872008-09-25 Rafael Espindola <espindola@google.com>
3188
3189 * lto.c (lto_resolution_read): Initialize ret;
3190
31912008-09-24 Ollie Wild <aaw@google.com>
3192
3193 * lto.c (sys/mman.h): Move include.
3194 (lto_wpa_write_files): Return a list of written files.
3195 (lto_execute_ltrans): New function.
3196 (lto_main): Call lto_execute_ltrans.
3197 (ltrans-driver): New file.
3198 * lto-lang.c (DEFAULT_LTRANS_DRIVER): New macro.
3199 (DEAULT_LTRANS_DRIVER_LEN): New macro.
3200 (lto_init_options): Initialize ltrans_driver.
3201 (lto_handle_option): Fix incorrect default output value.
3202 * lang.opt (fltrans-driver=): New option.
3203 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): New variable.
3204 (lto.install-common): Add lto/ltrans-driver.
3205
32062008-09-24 Rafael Espindola <espindola@google.com>
3207
3208 * Make-lang.in (LTO_OBJS): Add lto/common.o.
3209 (lto/lto.o): Depend on lto/common.h.
3210 (lto/common.o): New.
3211 * lang.opt (resolution): New.
3212 * lto-lang.c (resolution_file_name): New.
3213 (lto_handle_option): Handle OPT_resolution.
3214 * lto-symtab.c (lto_symtab_merge_decl): Add a resolution argument.
3215 (lto_symtab_merge_var,lto_symtab_merge_fn): Add a resolution argument.
3216 pass it to lto_symtab_merge_decl.
3217 * lto.c: Include common.h.
3218 (lto_read_decls): Add resolutions and resolutions_size arguments.
3219 Initialize data_in.globals_resolution and
3220 data_in.globals_resolution_size.
3221 (index_and_symbol_resolution): New.
3222 (lto_resolution_read): New.
3223 (lto_file_read): Add argument resolution_file.
3224 Read resolution.
3225 * lto.h (resolution_file_name): New.
3226
32272008-09-23 Rafael Espindola <espindola@google.com>
3228
3229 * common.c: Update description.
3230 * common.h: Update description.
3231
32322008-09-23 Rafael Espindola <espindola@google.com>
3233
3234 * common.c: Moved from lto-plugin.
3235 * common.h: Moved from lto-plugin.
3236
32372008-09-22 Doug Kwan <dougkwan@google.com>
3238
3239 * lto.c (VEC(bitmap,heap)): Declare.
3240 (lto_materialize_function): Handle WAP mode specially.
3241 (lto_add_inline_clones): New.
3242 (lto_add_all_inlinees): Changle algorithm and to use bitmaps. Also
3243 return a bitmap of inlined decls.
3244 (lto_wpa_write_files): Handle all DECLs brought in by inlining.
3245 (lto_main): Call reset_inline_failed to reset inlining states.
3246 Check call-graph after WPA inlining.
3247 * lto-lang.c (lto_init): Do not clear flag_generate_lto
3248 unconditionally.
3249
32502008-09-19 Doug Kwan <dougkwan@google.com>
3251
3252 lto.c (lto_main): Remove unsued wrapper code.
3253 lang-specs.h (@lto): Use lto1_options instead of cc1_options.
3254
32552008-09-19 Rafael Espindola <espindola@google.com>
3256
3257 * lto-symtab.c: Include lto-tree-in.h.
3258 * lto-tree.h (lto_symtab_merge_var, lto_symtab_merge_fn): Remove.
3259 * lto.h (lto_symtab_merge_var, lto_symtab_merge_fn): Remove
3260 * Make-lang.in (lto/lto-symtab.o): Add lto-tree-in.h.
3261
32622008-09-17 Paolo Bonzini <bonzini@gnu.org>
3263 Rafael Avila de Espindola <espindola@google.com>
3264
3265 * lto-lang.c (COMPOUND_LITERAL_EXPR_DECL_STMT,
3266 COMPOUND_LITERAL_EXPR_DECL): Remove.
3267 (emit_local_var): Remove.
3268 (lto_expand_expr): Remove.
3269 (lto_staticp): Remove.
3270 (LANG_HOOKS_EXPAND_EXPR): Remove.
3271 (LANG_HOOKS_STATICP): Remove.
3272
32732008-09-11 Diego Novillo <dnovillo@google.com>
3274
3275 * lto-lang.c: Include except.h and libfuncs.h.
3276 (lto_init_eh): New.
3277 (lto_init): Call it.
3278 Set flag_generate_lto to 0.
3279 * Make-lang.in (lto-lang.o): Add dependency on except.h
3280 and libfuncs.h.
3281
32822008-09-09 Bill Maddox <maddox@google.com>
3283
3284 * lto-lang.c: Include header file expr.h.
3285 (COMPOUND_LITERAL_EXPR_DECL_STMT,
3286 COMPOUND_LITERAL_EXPR_DECL): Copied from c-common.h.
3287 (emit_local_var): Copied from c-semantics.c.
3288 (lto_expand_expr, lto_staticp): Copied from c_expand_expr
3289 and c_staticp in c-common.c.
3290 (LANG_HOOKS_EXPAND_EXPR,LANG_HOOKS_STATICP): Redefined.
3291
32922008-09-08 Diego Novillo <dnovillo@google.com>
3293
3294 * lto-lang.c (lto_global_bindings_p): Return 1 during
3295 IPA passes.
3296
32972008-09-07 Diego Novillo <dnovillo@google.com>
3298
3299 * lto.c: Tidy formatting.
3300
33012008-08-04 Bill Maddox <maddox@google.com>
3302
3303 * lto-symtab.c (lto_symtab_merge_decl): Add comment.
3304
33052008-09-03 Doug Kwan <dougkwan@google.com>
3306
3307 lto.c (lto_add_all_inlinees): Reset FAILED_REASON of edges to
3308 CIF_OK instead of NULL.
3309
33102008-09-02 Diego Novillo <dnovillo@google.com>
3311 Simon Baldwin <simonb@google.com>
3312
3313 * lto-lang.c (lto_type_for_size): Rewrite. Adapt from
3314 c_common_type_for_size.
3315 (lto_type_for_mode): Remove ATTRIBUTE_UNUSED markers.
3316 (lto_init): Call linemap_add.
3317 (signed_and_unsigned_types): Remove.
3318
33192008-08-29 Diego Novillo <dnovillo@google.com>
3320
3321 * lto-lang.c (handle_noreturn_attribute): New local function.
3322 (handle_const_attribute): New local function.
3323 (handle_malloc_attribute): New local function.
3324 (handle_pure_attribute): New local function.
3325 (handle_novops_attribute): New local function.
3326 (handle_nonnull_attribute): New local function.
3327 (handle_nothrow_attribute): New local function.
3328 (handle_sentinel_attribute): New local function.
3329 (handle_type_generic_attribute): New local function.
3330 (handle_format_attribute): New local function.
3331 (handle_format_arg_attribute): New local function.
3332 (lto_attribute_table): Declare.
3333 (lto_format_attribute_table): Declare.
3334 (lto_init_attributes): New local function.
3335 (lto_define_builtins): Call it.
3336 Call targetm.init_builtins and build_common_builtin_nodes.
3337 (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Define.
3338 (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Define.
3339
33402008-08-28 Diego Novillo <dnovillo@google.com>
3341
3342 * Make-lang.in (lto-lang.o): Replace tree-gimple.h with
3343 $(GIMPLE_H).
3344 (lto-symtab.o): Add dependency on $(GIMPLE_H).
3345 * lto-lang.c: Include gimple.h instead of tree-gimple.h.
3346 * lto-symtab.c: Include gimple.h.
3347 * lto-tree.h (chain_next): Replace GENERIC_NEXT with
3348 TREE_CHAIN.
3349
33502008-08-27 Doug Kwan <dougkwan@google.com>
3351
3352 * lto.c (vec.h, bitmap.h, pointer-set.h, ipa-prop.h, ggc.h,
3353 gt-lto-lto.h): New includes.
3354 (lto_materialize_function): Do not read in function body in WPA mode.
3355 Format a line to fit in 80 columns.
3356 (lto_cgraph_node_sets): New garbage collected variable.
3357 (lto_1_to_1_map, lto_add_all_inlinees, lto_wpa_write_files):
3358 New functions.
3359 (lto_main): Initialize bitmap obstack. Add code to handle WPA mode.
3360 * Make-lang.in (LTO_H): Replace filename lto-section-in.h with
3361 variable LTO_SECTION_IN_H.
3362 (lto/lto.o): Include gt-lto-lto-c.h ggc.h ,VEC_H, BITMAP_H,
3363 pointer-set.h and IPA_PROP_H. Also replace filename lto-section-in.h
3364 with variable LTO_SECTION_IN_H.
3365 * config-lang.in (gtfiles): Add lto/lto.c.
3366 * lto-symtab.c (lto_symtab_merge_decl): Set DECL_CONTEXT of
3367 merged DECL_RESULT correctly.
3368
33692008-08-26 Bill Maddox <maddox@google.com>
3370
3371 * lto-lang.c Include tree-gimple.h.
3372 (lto_mark_addressable): Call mark_addressable rather than
3373 asserting.
3374 (lto_post_options): Suppress debug info generation.
3375 * Make-lang.in: Add dependency of lto-lang.o on tree-gimple.h.
3376
33772008-08-25 Bill Maddox <maddox@google.com>
3378
3379 * lto-symtab.c (lto_symtab_merge_decl): Remove a suspect
3380 assertion and leave an explanatory comment in its place.
3381
33822008-08-21 Doug Kwan <dougkwan@google.com>
3383
3384 * lto.c (preload_common_nodes): Call lto_get_common_nodes to get a list
3385 of common nodes instead of computing locallly.
3386 (lto_read_in_decl_state): New.
3387 (lto_read_decls): Change code for udpate in struct lto_decl_header.
3388 Read global and per-function in-decl states.
3389 * Make-lang.in (LTO_H): Update dependency.
3390 (lto/lto.o): Same.
3391 (lto-symtab.c): Merge (revision 139039)
3392 * lto-symtab.c (lto_symtab_merge_decl): Merge DECL_RESULT.
3393
33942008-08-21 Rafael Espindola <espindola@google.com>
3395
3396 * config-lang.in (target_libs): New.
3397
33982008-08-20 Bill Maddox <maddox@google.com>
3399
3400 * lto.c (current_lto_file): Remove GTY marker from static
3401 variable. Remove include of file gt-lto-lto.h.
3402 * Make-lang.in: Remove dependency of lto/lto.o on
3403 gt-lto-lto.h.
3404 * lto-elf.c (lto_file_close): Removed.
3405 (lto_elf_file_open): Use XCNEW instead of GGC_CNEW to
3406 allocate lto_elf_file object.
3407 (lto_elf_file_close): Free lto_elf_file object after close.
3408 * lto.h (struct lto_file_struct): Remove GTY marker.
3409 * config-lang.in: Remove lto/lto.h and lto/lto.c from
3410 gtfiles.
3411
34122008-08-20 Bill Maddox <maddox@google.com>
3413
3414 * lto.c (lto_read_decls): Provide dummy argument to input_tree
3415 to conform to its new signature.
3416 * lto-symtab.c (lto_symtab_merge_decl): Do not invoke ggc_free
3417 on discarded node here, now called in global_vector_fixup.
3418
34192008-08-09 Bill Maddox <maddox@google.com>
3420
3421 * lto.c (preload_common_nodes): Verify that fileptr_type_node
3422 has not been set to a front-end-specific value.
3423
34242008-08-05 Doug Kwan <dougkwan@google.com>
3425
3426 * Make-lang.in (lto-symtab.o): Add missing dependencies to fix
3427 build breakage.
3428
34292008-07-30 Bill Maddox <maddox@google.com>
3430
3431 * lto.c (lto_materialize_function): Call lto_original_decl_name.
3432 Remove obsolete comments.
3433 (lto_read_decls): Remove initialization of deleted field data_in.global.
3434 Tidy up comments.
3435 (lto_main): Remove redundant initialization of section_hash_table.
3436 * lto-elf.c: Removed obsolete comments.
3437 * lto.h: Tidy up comments.
3438 * lto-symtab.c (lto_least_common_multiple): New function.
3439 (lto_symtab_merge_decl): Merge variable alignments in some cases.
3440 Tidy up comments.
3441
34422008-07-25 Diego Novillo <dnovillo@google.com>
3443 Bill Maddox <maddox@google.com>
3444
3445 * lto.c: Re-order include files.
3446 Include lto-section-out.h.
3447 (preload_common_nodes): Add debugging output.
3448 Add new local INDEX_TABLE.
3449 Call preload_common_node.
3450 * Make-lang.in (lto.o): Add dependency on lto-section-out.h
3451
34522008-07-13 Bill Maddox <maddox@google.com>
3453
3454 * lto.c (lto_read_decls): Cast pointer to const char * to avoid
3455 unwanted scaling during pointer addition.
3456
34572008-07-11 Bill Maddox <maddox@google.com>
3458 Diego Novillo <dnovillo@google.com>
3459
3460 * lto.c (lto_read_decls): Fix C++ compatibility warnings.
3461 Make code const-correct.
3462 (lto_file_read): Fix C++ compatibility warnings.
3463 (lto_read_section_data): Fix C++ compatibility warnings.
3464 (lto_get_section_data): Use CONST_CAST to avoid warning when
3465 const pointer passed to free.
3466 * lto-elf.c (lto_elf_build_section_table): Fix C++
3467 compatibility warnings.
3468 (lto_elf_append_data): Fix C++ compatibility warnings. Use CONST_CAST
3469 to avoid warning assigning const pointer to d_buf field of Elf_Data.
3470 (lto_get_current_out_file): Fix C++ compatibility warnings.
3471
34722008-07-11 Diego Novillo <dnovillo@google.com>
3473
3474 * Make-lang.in (lto-warn): Define.
3475
34762008-07-03 Simon Baldwin <simonb@google.com>
3477
3478 * lto.c (lto_read_decls): Wrapped debug-only data items within #ifdef
3479 LTO_STREAM_DEBUGGING.
3480
34812008-06-27 Ollie Wild <aaw@google.com>
3482
3483 * lto-elf.c (lto-section-out.h): New include.
3484 (struct lto_elf_file): Remove bits member. Add scn, shstrtab_stream,
3485 and data members.
3486 (cached_file_attrs): New static variable.
3487 (lto_elf_get_shdr, lto_elf_free_shdr): Remove elf_file parameter.
3488 Use cached_file_attrs for checking bits.
3489 (lto_elf_build_section_table): Remove elf_file argument from
3490 lto_elf_get_shdr and lto_elf_free_shdr calls.
3491 (DEFINE_INIT_SHDR): New macro.
3492 (init_shdr32, init_shdr64): New functions defined via the
3493 DEFINE_INIT_SHDR macro.
3494 (lto_elf_begin_section_with_type): New function.
3495 (lto_elf_begin_section): New function.
3496 (lto_elf_append_data): New function.
3497 (lto_elf_end_section): New function.
3498 (DEFINE_VALIDATE_EHDR): New macro.
3499 (validate_ehdr32, validate_ehdr64): New functions defined via the
3500 DEFINE_VALIDATE_EHDR macro.
3501 (validate_file): New function.
3502 (DEFINE_INIT_EHDR): New macro.
3503 (init_ehdr32, init_ehdr64): New functions defined via the
3504 DEFINE_INIT_EHDR macro.
3505 (init_ehdr): New function.
3506 (lto_elf_file_open): Add support for writable files. Move some
3507 validation logic to validate_file.
3508 (lto_elf_file_close): Add support for writable files. Write file data
3509 and free data blocks.
3510 (current_out_file): New static variable.
3511 (lto_set_current_out_file): New function.
3512 (lto_get_current_out_file): New function.
3513 * lto.c (lto_main): Add writable argument to lto_elf_file_open calls.
3514 Add temporary initialization for testing ELF serialization.
3515 * lto.h (lto-section-out.h): New include.
3516 (struct lto_file_struct): Slight modification to comment.
3517 (lto_elf_file_open): Add writable parameter.
3518 (lto_elf_begin_section): New function declaration.
3519 (lto_elf_append_data): New function declaration.
3520 (lto_elf_end_section): New function declaration.
3521 (lto_set_current_out_file, lto_get_current_out_file): New function
3522 declarations.
3523 * lto-lang.c (LANG_HOOKS_BEGIN_SECTION): Set as lto_elf_begin_section.
3524 (LANG_HOOKS_APPEND_DATA): Set as lto_elf_append_data.
3525 (LANG_HOOKS_END_SECTION): Set as lto_elf_end_section.
3526 * Make-lang.in (LTO_H): Add lto-section-out.h.
3527
35282008-06-12 Ollie Wild <aaw@google.com>
3529
3530 * lto.h (struct lto_file_vtable_struct): Remove.
3531 (struct lto_file_struct): Remove vtable member.
3532 * lto-elf.c (lto_file_init): Remove vtable argument.
3533 (lto_elf_map_optional_lto_section): Remove.
3534 (lto_elf_unmap_section): Remove.
3535 (lto_elf_file_vtable): Remove.
3536 (lto_elf_file_open): Remove lto_elf_file_vtable argument from
3537 lto_file_init call.
3538 (lto_elf_find_section_data): Remove.
3539
35402008-06-11 Ollie Wild <aaw@google.com>
3541
3542 * lto.c (lto_file_read): Add const qualifier to data variable.
3543
35442008-06-11 Diego Novillo <dnovillo@google.com>
3545
3546 Merge from lto-streamber sub-branch.
3547
3548 2008-06-04 Ollie Wild <aaw@google.com>
3549
3550 * lto.c: Remove inclusion of dwarf2.h and dwarf2out.h.
3551 * Make-lang.in (lto.o): Remove dependency on dwarf2.h.
3552
3553 2008-05-28 Bill Maddox <maddox@google.com>
3554
3555 Replace the DWARF reader in the LTO front-end.
3556
3557 * lto.c: Include lto-tree-in.h, lto-tags.h.
3558 (enum DWARF2_class, DW_cl_constant, struct
3559 DWARF2_form_data, struct lto_context,
3560 lto_fd_init, lto_info_fd_init,
3561 lto_abbrev_fd_init, lto_info_fd_close,
3562 lto_file_init, lto_file_close,
3563 lto_file_corrupt_error, lto_abi_mismatch_error,
3564 LTO_CHECK_INT_VAL, LTO_READ_TYPE,
3565 lto_read_uleb128, lto_read_sleb128,
3566 lto_read_initial_length, lto_abbrev_read_attrs,
3567 lto_abbrev_read, lto_abbrev_read_lookup,
3568 lto_read_section_offset,
3569 lto_read_comp_unit_header, find_cu_for_offset,
3570 lto_get_file_name,
3571 lto_resolve_reference,lto_read_form,
3572 attribute_value_as_int,
3573 make_signed_host_wide_int,
3574 attribute_value_as_constant, lto_cache_hash,
3575 lto_cache_eq, lto_cache_store_DIE,
3576 lto_cache_lookup_DIE, lto_find_integral_type,
3577 lto_find_integral_type_1,
3578 LTO_BEGIN_READ_ATTRS_UNCHECKED,
3579 LTO_BEGIN_READ_ATTRS, LTO_END_READ_ATTRS,
3580 lto_unsupported_attr_error, lto_get_identifier,
3581 lto_read_referenced_type_DIE,
3582 lto_read_compile_unit_DIE,
3583 lto_read_array_type_DIE,
3584 lto_read_structure_union_class_type_DIE,
3585 lto_read_enumerator_DIE,
3586 lto_read_enumeration_type_DIE,
3587 lto_read_only_for_child_DIEs,
3588 lto_read_only_for_child_DIEs,
3589 lto_read_member_DIE, lto_read_abbrev,
3590 lto_read_variable_formal_parameter_constant_DIE,
3591 lto_get_body): Removed.
3592 (preload_common_nodes): New function.
3593 (lto_read_decls): Convert for new global streamer.
3594 (lto_materialze_file_data,
3595 lto_read_subroutine_type_subprogram_die,
3596 lto_read_unspecified_parameters_DIE,
3597 lto_read_typedef_DIE,
3598 lto_read_pointer_reference_type_DIE,
3599 lto_read_subrange_type_DIE,
3600 lto_read_base_type_DIE,
3601 lto_read_const_volatile_restrict_type_DIE,
3602 lto_read_namespace_DIE,
3603 lto_read_unspecified_type_DIE, lto_read_DIE,
3604 lto_read_child_DIEs, lto_collect_child_DIEs):
3605 Removed.
3606 (lto_info_read, lto_set_cu_context): Removed.
3607 (lto_file_read): Convert for new global streamer.
3608 (lto_resolve_type_ref, lto_read_DIE_at_ptr,
3609 lto_resolve_var_ref, lto_resolve_fn_ref,
3610 lto_resolve_field_ref, lto_resolve_typedecl_ref,
3611 lto_resolve_namespacedecl_ref): Removed.
3612 (lto_file_init, lto_file_close): Moved to lto-elf.c.
3613 * lto-tree.h (lto_symtab_merge_var,
3614 lto_symtab_mergee_fun): Declare here.
3615 * lto-elf.c (lto_file_init, lto_file_close): Moved from lto.c.
3616 (lto_elf_file_open): Removed code to read DWARF debug sections.
3617 * lto.h (lto_context, DWARF2_attr, DWARF2_abbrev,
3618 DWARF2_CompUnit, lto_die_ptr,
3619 lto_die_cache_entry, lto_fd, lto_info_fd,
3620 lto_abbrev_fd): Removed.
3621 (lto_file): Removed debug_info and debug_abbrev fields.
3622 (lto_ref): Removed.
3623 (lto_file_init, lto_file_close,
3624 lto_resolve_type_ref, lto_resolve_var_ref,
3625 lto_resolve_fn_ref, lto_resolve_field_ref,
3626 lto_resolve_typedecl_ref,
3627 lto_resolve_namespacedecl_ref,
3628 lto_get_file_name): Removed declarations.
3629 (lto_symtab_merge_var, lto_symtab_merge_fn):
3630 Declarations moved to lto-tree.h.
3631 * lto-symtab.c (lto_compatible_attributes_p):
3632 Lobotomize this, as it barfs on "Hello, world!".
3633 * lto-section-out.c: Include lto-tree-out.h.
3634 (lto_hash_global_slot_node,
3635 lto_eq_global_slot_node, preload_common_nodes,
3636 write_global_stream, write_global_references):
3637 New functions.
3638 (produce_asm_for_decls): Convert for new global streamer.
3639 * lto-section-out.h (lto_hash_global_slot_node,
3640 lto_eq_global_slot_node): Declare.
3641
36422008-06-07 Kenneth Zadeck <zadeck@naturalbridge.com>
3643 Jan Hubicka <jh@suse.cz>
3644
3645 * lto.c (sys/mman.h, tree-pass.h): New includes.
3646 (lto_materialize_constructors_and_inits,
3647 lto_materialize_function): Keeps length of section.
3648 (lto_materialize_cgraph): Removed.
3649 (lto_read_decls): Initialize fd field.
3650 (lto_file_read): Different return type and removed much code to
3651 lto_main.
3652 (page_mask): New variable.
3653 (lto_read_section_data, get_section_data, free_section_data): New
3654 functions.
3655 (lto_main): Now calls pass manager, sets the hooks so that the ipa
3656 passes can get the section data.
3657
36582008-05-27 Kenneth Zadeck <zadeck@naturalbridge.com>
3659
3660 * lto.h (lto_read_decls): Made local.
3661 (lto_input_function_body, lto_input_constructors_and_inits,
3662 lto_input_cgraph): Declarations moved to lto-section-in.h.
3663 * lto-section-in.c: Moved to .. .
3664 * lto-cgraph-in.c: Ditto.
3665 * lto-section-in.h: Ditto.
3666 * lto-function-in.c: Ditto.
3667 * lto-lang.c (lto_handle_option): Added ATTRIBUTE_UNUSED to parms.
3668 (lto_insert_block): Removed.
3669 (LANG_HOOKS_INSERT_BLOCK): Removed.
3670 * Make-lang.in (lto-cgraph-in.o, lto-function-in.o,
3671 lto-section-in.o): Rules moved to lto/Makefile.in.
3672
3673
36742008-05-16 Ollie Wild <aaw@google.com>
3675
3676 * lto-lang.c (tree-inline.h): Include.
3677 (lto_post_options): New function.
3678 (LANG_HOOKS_POST_OPTIONS): Define.
3679 * lto-cgraph-in.c (overwrite_node): Set node->global.insns.
3680 * lto-function-in.c (input_bb): Set TREE_BLOCK (stmt).
3681
36822008-05-13 Diego Novillo <dnovillo@google.com>
3683
3684 * lto-function-in.c (input_ssa_names): Call
3685 make_ssa_name_fn instead of make_ssa_name.
3686
36872008-05-12 Diego Novillo <dnovillo@google.com>
3688
3689 * lto-cgraph-in.c (overwrite_node): Update references to
3690 inline summary fields.
3691 * lto-function-in.c (input_expr_operand): Do not handle
3692 STRUCT_FIELD_TAG.
3693
36942008-05-09 Ollie Wild <aaw@google.com>
3695
3696 * lang.opt: New file.
3697 * lto-lang.c (lto_init_options): New function.
3698 (lto_handle_option): New function.
3699 (lto_init): Move initialization of flag_unit_at_a_time to
3700 lto_init_options.
3701 (LANG_HOOKS_INIT_OPTIONS): Define.
3702 (LANG_HOOKS_HANDLE_OPTION): Define.
3703
37042008-04-29 Ollie Wild <aaw@google.com>
3705
3706 * lto.c (lto_read_namespace_DIE): New function.
3707 (lto_read_DIE): Add lto_read_namespace_DIE callback. Cache
3708 NAMESPACE_DECL DIE's.
3709 (lto_resolve_namespacedecl_ref): New function.
3710 * lto.h (lto_resolve_namespacedecl_ref): New function.
3711 * lto-section-in.c (lto_read_decls): Read namespace declarations.
3712 * lto-section-in.h (struct lto_file_decl_data): Add namespace_decls
3713 and num_namespace_decls.
3714 * lto-function-in.c (input_expr_operand): Add NAMESPACE_DECL case.
3715 * lto-lang.c (lto_init_ts): New function.
3716 (LANG_HOOKS_INIT_TS): Set as lto_init_ts.
3717
37182008-04-16 Ollie Wild <aaw@google.com>
3719
3720 * lto-function-in.c (input_type_ref): Updated function description.
3721
37222008-04-16 Ollie Wild <aaw@google.com>
3723
3724 * lto-function-in.c (input_type_ref_1): New function.
3725 (input_type_ref): Split into two functions.
3726 (input_function): Add support for type contexts.
3727
37282008-04-16 Ollie Wild <aaw@google.com>
3729
3730 * lto.c (lto_materialize_function): Use DECL_ASSEMBLER_NAME to compute
3731 section name
3732
37332008-04-16 Ollie Wild <aaw@google.com>
3734
3735 * lto.c (lto_read_compile_unit_DIE): Add DW_LANG_C_plus_plus to the
3736 list of supported languages.
3737
37382008-03-25 Kenneth Zadeck <zadeck@naturalbridge.com>
3739
3740 Merge with mainline @133491.
3741
37422008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
3743 Jan Hubicka <jh@suse.cz>
3744
3745 * lto.c (lto_info_fd_init, lto_info_fd_close): Get rid of
3746 fd->unmaterialized_fndecls.
3747 (lto_get_file_name, lto_materialize_cgraph): New function.
3748 (lto_materialize_constructors_and_inits,
3749 lto_materialize_function): Read info directly from elf file.
3750 (lto_file_read): Made local and initialize dictionary so that
3751 other lto sections can be read without reprocessing the elf file.
3752 (lto_main): Read all functions after all files have been processed
3753 for their types, globals and cgraph.
3754 * Make-lang.in (lto.o, lto-cgraph-in.c, lto-section-in): Changed
3755 dependencies.
3756 * lto-elf.c (lto_elf_file): Removed strtab, symtab fields.
3757 (hash_name, eq_name, lto_elf_build_section_table): New functions.
3758 (lto_elf_read_symtab): Removed function.
3759 (lto_elf_file_open): Removed call to lto_elf_read_symtab.
3760 * lto.h (lto_info_fd_struct): Removed unmaterialized_fndecls.
3761 (lto_file_read): Made local.
3762 (lto_get_file_name, lto_elf_build_section_table,
3763 lto_input_cgraph):
3764 New function.
3765 * lto-section-in.c (lto_read_section_data, lto_get_section_data):
3766 New functions.
3767 (lto_read_decls): Get the file name.
3768 * lto-cgraph-in.c: New file.
3769 * lto-function-in.c (tag_to_expr): Stops at LTO_tree_last_tag.
3770 (input_expr_operand, lto_read_body): Set lto_debug_context.tag_names.
3771 (input_labels): Fixed latent sizeof issue.
3772 (input_function): Build stmt array to set call sites into cgraph
3773 edges.
3774 (lto_read_body): Reset cfun->curr_properties.
3775 * lto_section_in.h (lto_section_slot): New structure.
3776 (section_hash_table.lto_file_decl_data): New field.
3777
3778
37792008-02-09 Kenneth Zadeck <zadeck@naturalbridge.com>
3780
3781 * lto.c (lto_read_variable_formal_parameter_const): Remove code to
3782 reconstruct static initializers.
3783 (lto_get_body, lto_materialize_function): Add lto_section_type as
3784 a parameter.
3785 (lto_materialize_constructors_and_inits,
3786 lto_materialize_file_data): New function.
3787 (lto_materialize_function,
3788 lto_read_subroutine_type_subprogram_DIE): Renamed unmap_fn_body to
3789 unmap_section and map_fn_body to map_section.
3790 (lto_set_cu_context): Process functions and static inits
3791 differently.
3792 * Make-lang.in (LTO_H, lto/lto-function-in.o,
3793 lto/lto-section-in.o): Update dependencies.
3794 * lto/lto-elf.c (lto_elf_map_optional_lto_section): Add
3795 lto_section_type parameter.
3796 (lto_elf_unmap_fn_body): Renamed to lto_elf_unmap_section.
3797 * lto.h (lto_file_vtable_struct): Removed two of the fields and
3798 renamed the other two so that there is only one map function and
3799 one unmap function and each takes a section type parameter.
3800 (lto_read_function_body): Renamed to lto_input_function_body and
3801 added file_data parameter.
3802 (lto_read_var_init): Removed.
3803 (lto_input_constructors_and_inits): New function.
3804 * lto-section-in.c (lto_read_decls): New function.
3805 * lto-function-in.c (data_in): Moved fields field_decls, fn_decls,
3806 var_decls, type_decls, types to lto_file_decl_data.
3807 (input_type_ref, input_expr_operand, lto_read_body): Get
3808 field_decls, fn_decls, var_decls, type_decls, types from different
3809 structure.
3810 (input_globals, input_constructor, lto_read_var_init): Removed.
3811 (input_constructors_or_inits): New function.
3812 (lto_read_function_body, lto_input_constructors_and_inits):
3813 Renamed to lto_input_function_body and takes file_data parameter.
3814 * lto-section-in.h (lto_file_decl_data): New structure.
3815
38162008-01-28 Kenneth Zadeck <zadeck@naturalbridge.com>
3817
3818 * lto-function-in.c (input_globals.c): Changed input type to
3819 lto_function_header.
3820 (input_bb): Removed code to deserialize the stmt number.
3821 (input_function): Renumber all stmts after they are input.
3822 (lto_read_body, lto_read_function_body, lto_read_var_init):
3823 Changed to used new header format and enum section_type.
3824 *lto-lang.c (success): Removed.
3825
38262008-01-28 Nathan Froyd <froydnj@codesourcery.com>
3827
3828 * lto-elf.c (lto_elf_lookup_sym): Remove unused function.
3829 (lto_elf_free_sym): Likewise.
3830
3831 * lto-elf.c (lto_elf_read_var_init): Remove unused function.
3832 (lto_elf_build_init): Likewise.
3833
38342008-01-14 Kenneth Zadeck <zadeck@naturalbridge.com>
3835
3836 * lto-read.c: Renamed to lto-function-in.c.
3837 (input_1_unsigned): Moved to lto-section-in.c and renamed
3838 lto_input_1_unsigned.
3839 (input_uleb128): Moved to lto-section-in.c and renamed
3840 lto_input_uleb128.
3841 (input_widest_uint_uleb128): Moved to lto-section-in.c and renamed
3842 lto_input_widest_uint_uleb128.
3843 (input_sleb128): Moved to lto-section-in.c and renamed
3844 lto_input_sleb128.
3845 (input_integer): Moved to lto-section-in.c and renamed
3846 lto_input_integer.
3847 (debug_in_fun): Moved to lto-section-in.c and renamed
3848 lto_debug_in_fun.
3849 (input_block): Moved to lto-section-in.h and renamed
3850 lto_input_block.
3851 (input_expr_operand): Fixed to allow lists with more than one
3852 element.
3853 * lto-section-in.h: New file.
3854 * lto-section-in.c: New file with changes from above.
3855 * Make-lang.in (lto-read.o): Renamed lto-function-in.c.
3856 (lto-section-in.o): New rule.
3857
38582007-12-29 Nathan Froyd <froydnj@codesourcery.com>
3859
3860 * lto-read.c (input_expr_operand): Mark static and external
3861 VAR_DECLs as needed.
3862
38632007-12-29 Nathan Froyd <froydnj@codesourcery.com>
3864
3865 * lto-read.c (input_integer): Use the correct shift amount.
3866
38672007-12-29 Nathan Froyd <froydnj@codesourcery.com>
3868
3869 * lto-lang.c (lto_pushdecl): Do nothing instead of aborting.
3870 (LANG_HOOKS_NAME): Define.
3871
38722007-12-27 Nathan Froyd <froydnj@codesourcery.com>
3873
3874 * lto.c (lto_find_integral_type): Define as a macro. Rename the
3875 original function to...
3876 (lto_find_integral_type_1): ...this. Consult UNSIGNEDP if we
3877 don't have a base type.
3878 (lto_read_enumeration_type_DIE): Examine the values of the
3879 enumeration to determine whether we can use an unsigned type for
3880 the base type of the enumeration.
3881
38822007-12-24 Nathan Froyd <froydnj@codesourcery.com>
3883
3884 * lto.c (lto_read_structure_union_class_type_DIE): Set TYPE_MODE
3885 and TYPE_ALIGN on UNION_TYPEs as soon as possible.
3886
38872007-12-22 Nathan Froyd <froydnj@codesourcery.com>
3888
3889 * lto-lang.c (lto_types_compatible_p): New function.
3890 (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3891
38922007-12-22 Nathan Froyd <froydnj@codesourcery.com>
3893 Kenneth Zadeck <zadeck@naturalbridge.com>
3894
3895 * lto-read.c (input_expr_operand): Fixed uninitialize var warning.
3896 (input_local_vars): Read in DECL_INITIAL and context for local
3897 statics that need to be put in unexpanded_vars_list.
3898
38992007-12-21 Nathan Froyd <froydnj@codesourcery.com>
3900
3901 * lto-read.c (input_real): Use a separate null-terminated buffer
3902 for calling real_from_string.
3903 (input_expr_operand): If we take the address of a FUNCTION_DECL,
3904 tell cgraph that it's needed.
3905
39062007-12-19 Doug Kwan <dougkwan@google.com>
3907
3908 * lto.c (lto_read_base_type_DIE): Handle complex integer types.
3909
39102007-12-18 Nathan Froyd <froydnj@codesourcery.com>
3911
3912 * lto.c (lto_read_DIE): Call lto_read_only_for_child_DIEs instead.
3913 (lto_file_read): Reset the members of 'context' every time we read
3914 a toplevel DIE, with special attention to last_param_type.
3915
39162007-12-18 Nathan Froyd <froydnj@codesourcery.com>
3917
3918 * lto.c (lto_read_subroutine_type_subprogram_DIE): Initialize
3919 'declaration'. Set the assembler name for non-public functions.
3920
39212007-12-17 Kenneth Zadeck <zadeck@naturalbridge.com>
3922
3923 * lto_read.c (data_in.unexpanded_indexes): New array.
3924 (input_local_var): Added code to read in unexpanded_var_list
3925 indexes for variables. Only read in DECL_CHAIN field for
3926 parameters.
3927 (input_local_vars): Added code to rebuild unexpanded_var_list in
3928 order using unexpanded_indexes.
3929 (input_function): Added code to set DECL_CONTEXT for functions.
3930
39312007-12-13 Doug Kwan <dougkwan@google.com>
3932
3933 * lto.c (lto_read_pointer_reference_type_DIE): Handle optional name
3934 in pointer and reference types.
3935
39362007-12-13 Nathan Froyd <froydnj@codesourcery.com>
3937
3938 * lto-read.c (input_expr_operand): Use DECL_RESULT when reading a
3939 RESULT_DECL.
3940
39412007-12-13 Nathan Froyd <froydnj@codesourcery.com>
3942
3943 * lto.c (lto_read_array_type_DIE): Return the cached DIE if we've
3944 already read the DIE.
3945 (lto_get_body): New function, split out from...
3946 (lto_materialize_function): ...here. Call it.
3947 (lto_read_subroutine_type_subprogram_DIE): Call lto_get_body to
3948 determine DECL_EXTERNAL.
3949 * lto-symtab.c (lto_symtab_merge_decl): Merge the DECL_RESULTs of
3950 FUNCTION_DECLs when necessary. Use the type of the actual
3951 function definition if we are unable to easily merge types. Ignore
3952 spurious DECL_MODE mismatches on VAR_DECLs. Merge DECL_MODEs when
3953 necessary.
3954
39552007-12-13 Nathan Froyd <froydnj@codesourcery.com>
3956
3957 * lto-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
3958
39592007-12-12 Bill Maddox <maddox@google.com>
3960
3961 Revert
3962 2007-12-07 Bill Maddox <maddox@google.com>
3963
3964 * lto.c (lto_str_fd_init): New function.
3965 (lto_str_fd_close): New function.
3966 (lto_file_init): Call lto_str_fd_init.
3967 (lto_file_close): Call lto_str_fd_close.
3968 (lto_str_read): New function. Read debug string table.
3969 (lto_str_lookup): New function. Get string for debug
3970 string table offset.
3971 (lto_read_form): Recognize DW_FORM_strp.
3972 (lto_file_read): Invoke lto_str_read.
3973
3974 * lto-elf.c (lto_elf_file_open): Read raw section data
3975 for the .debug_str section, if present.
3976
3977 * lto.h (struct lto_str_fd_struct): New struct.
3978 (struct lto_file_struct): Added new field DEBUG_STR
3979 to hold the file descriptor for the debug string table.
3980
39812007-12-07 Bill Maddox <maddox@google.com>
3982
3983 * lto.c (lto_str_fd_init): New function.
3984 (lto_str_fd_close): New function.
3985 (lto_file_init): Call lto_str_fd_init.
3986 (lto_file_close): Call lto_str_fd_close.
3987 (lto_str_read): New function. Read debug string table.
3988 (lto_str_lookup): New function. Get string for debug
3989 string table offset.
3990 (lto_read_form): Recognize DW_FORM_strp.
3991 (lto_file_read): Invoke lto_str_read.
3992
3993 * lto-elf.c (lto_elf_file_open): Read raw section data
3994 for the .debug_str section, if present.
3995
3996 * lto.h (struct lto_str_fd_struct): New struct.
3997 (struct lto_file_struct): Added new field DEBUG_STR
3998 to hold the file descriptor for the debug string table.
3999
40002007-12-07 Nathan Froyd <froydnj@codesourcery.com>
4001
4002 * lto-read.c (input_cfg): Call init_empty_tree_cfg_for_function.
4003 Grow the basic_block_info and label_to_block_map vectors if
4004 necessary. Read in the block chain.
4005
40062007-12-06 Nathan Froyd <froydnj@codesourcery.com>
4007
4008 * lto.c (lto_read_DIE): Set TYPE_ALIAS_SET where necessary.
4009
40102007-12-06 Nathan Froyd <froydnj@codesourcery.com>
4011
4012 * lto.c (lto_read_form): Add DW_cl_address for DW_AT_const_value.
4013
40142007-12-06 Nathan Froyd <froydnj@codesourcery.com>
4015
4016 * lto-read.c (input_expr_operand): Don't check for MTAGs.
4017 (lto_read_body): Don't declare PROP_alias.
4018
40192007-12-06 Nathan Froyd <froydnj@codesourcery.com>
4020
4021 * lto-symtab.c (lto_symtab_merge_decl): Handle FUNCTION_DECLs without
4022 argument type information.
4023
40242007-12-03 Nathan Froyd <froydnj@codesourcery.com>
4025
4026 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Set
4027 TREE_THIS_VOLATILE if the associated type is a volatile type.
4028 (lto_materialize_function): Remove call to init_ssa_operands.
4029 * lto-read.c (input_expr_operand): Add SSA_NAME_VAR as a referenced
4030 variable when reading an SSA_NAME. Do the same when reading a
4031 RESULT_DECL, a RETURN_EXPR, or an MTAG.
4032 (input_cfg): Call init_ssa_operands.
4033 (input_ssa_names): Set the default def of an SSA_NAME if necessary.
4034 Move call to init_tree_ssa...
4035 (lto_read_body): ...here. Use push_cfun and pop_cfun. Call
4036 add_referenced_var on any variables referenced from the body of the
4037 function. Inform the rest of the compiler we are in SSA form and
4038 inform later passes about the current properties.
4039
40402007-11-30 Nathan Froyd <froydnj@codesourcery.com>
4041
4042 * lto.c (lto_materialize_function): Add FIXME.
4043
40442007-11-29 Nathan Froyd <froydnj@codesourcery.com>
4045
4046 * lto-lang.c (enum built_in_attribute): New enum.
4047 (flag_no_builtin, flag_no_nonansi_builtin, flag_isoc94, flag_isoc99,
4048 built_in_attributes): New variables.
4049 (def_builtin_1): New function.
4050 (lto_define_builtins): #define DEF_BUILTIN and include builtins.def.
4051
40522007-11-28 Nathan Froyd <froydnj@codesourcery.com>
4053
4054 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Set
4055 DECL_SOURCE_LOCATION for debugging purposes.
4056 (lto_read_member_DIE): Set DECL_SOURCE_LOCATION. If we have read a
4057 bitfield, use the type specified by the DIE for TREE_TYPE and defer
4058 laying out the decl until later.
4059 (lto_read_subroutine_type_subprogram_DIE): Compare the function's
4060 name with DECL_ASSEMBLER_NAME. Set DECL_SOURCE_LOCATION and
4061 TREE_ADDRESSABLE.
4062 * lto-read.c (input_expr_operand): Set TREE_ADDRESSABLE on the
4063 operand of an ADDR_EXPR.
4064 * lto-lang.c (enum lto_builtin_type): New enum.
4065 (builtin_type): New typedef.
4066 (builtin_types, string_type_node, const_string_type_node,
4067 wint_type_node, intmax_type_node, uintmax_type_node,
4068 signed_size_type_node): New variables.
4069 (def_fn_type, builtin_type_for_size, lto_define_builtins,
4070 lto_build_c_type_nodes): New functions.
4071 (lto_init): Initialize builtin types.
4072 (lto_set_decl_assembler_name): Let the target machine mangle the
4073 name if the decl is TREE_PUBLIC, otherwise uniquify it.
4074
40752007-11-21 Nathan Froyd <froydnj@codesourcery.com>
4076
4077 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Don't
4078 set TREE_ADDRESSABLE. Do set DECL_COMDAT. Set TREE_READONLY if
4079 the type is a constant type. Set the assembler name and inform
4080 the rest of the compiler about the new decl if the decl is not
4081 public.
4082 (lto_read_subroutine_type_subprogram_DIE): Don't check for equivalency
4083 of DECL_ASSEMBLER_NAME when determining if we have a builtin. Don't
4084 try to read in function bodies for functions that already have bodies.
4085 * lto-symtab.c (lto_same_type_p): Check for unbounded array
4086 equivalency.
4087 (lto_symtab_merge_decl): Don't merge decls that aren't TREE_PUBLIC.
4088 Check for whether we matched a builtin function type before calling
4089 lto_same_type_p on the generated type. Permit cases where the
4090 declaration of an array is unbounded, but the definition is bounded.
4091 Don't combine TREE_PUBLIC flags. Copy over DECL_SIZE and
4092 DECL_SIZE_UNIT if necessary.
4093
40942007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
4095
4096 * lto-read.c (input_expr_operand): Get types right
4097 for COMPLEX_CST.
4098
40992007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
4100
4101 * lto-read.c (make_new_block, input_cfg): Properly set
4102 n_basic_blocks.
4103
41042007-11-16 Nathan Froyd <froydnj@codesourcery.com>
4105
4106 * lto.c (lto_read_array_type_DIE): Handle DIEs with DW_AT_GNU_vector
4107 set properly by building a VECTOR_TYPE instead of an ARRAY_TYPE.
4108
41092007-11-16 Nathan Froyd <froydnj@codesourcery.com>
4110
4111 * lto.c (lto_read_base_type_DIE): Use make_bitfield_integer_type to
4112 construct the integer type for bitfields.
4113
41142007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
4115
4116 * lto-read.c (data_in.current_node_has_loc): Removed.
4117 (input_line_info): Returns true if node needs line set.
4118 (set_line_info): Always sets line if called.
4119 (clear_line_info): Removed reference to current_node_needs_loc.
4120 (input_expr_operand): Keeps track locally if current node needs a loc.
4121 (input_local_var): Added code to handle DECL_INITIAL for
4122 static local vars. Only set loc if necessary.
4123
41242007-11-15 Nathan Froyd <froydnj@codesourcery.com>
4125
4126 * lto.c (lto_read_subroutine_type_subprogram_DIE): Fix thinko'd
4127 DECL_CONTEXT.
4128
41292007-11-15 Nathan Froyd <froydnj@codesourcery.com>
4130
4131 * lto.c: Include langhooks.h.
4132 (lto_find_integral_type): Rework logic to handle the case where
4133 got_byte_size is true, but the bitsize requested and that of the
4134 base_type doesn't match.
4135 (lto_read_variable_formal_parameter_constant_DIE): Only check for
4136 asm_name if we are creating a VAR_DECL.
4137 (lto_materialize_function): Set DECL_EXTERNAL if we can't find a
4138 definition.
4139 (lto_read_subroutine_type_subprogram_DIE): Check for a builtin
4140 function reference and use the builtin's decl if so. Set the
4141 DECL_CONTEXT of the RESULT_DECL for the function.
4142 * lto-lang.c (registered_builtin_fndecls): New variable.
4143 (lto_getdecls): Return it.
4144 (lto_builtin_function): Chain the new decl onto
4145 registered_builtin_fndecls.
4146
41472007-11-15 Kenneth Zadeck <zadeck@naturalbridge.com>
4148
4149 * lto-read.c (process_tree_flags, lto_static_init_local):
4150 Renamed to ADD_CLASS_EXPR_FLAG. ADD_CLASS_DECL_FLAG New Macro.
4151 (input_line_info, clear_line_info): Fixed new line number code.
4152 (input_expr_operand): Added type to SWITCH_EXPR.
4153 (lto_read_body): Properly initialized data_in.
4154 Clear line info when leaving.
4155
41562007-11-13 Diego Novillo <dnovillo@google.com>
4157
4158 * lto.c (lto_read_variable_formal_parameter_constant_DIE):
4159 Initialize ARTIFICIAL.
4160 (lto_read_subroutine_type_subprogram_DIE): Initialize
4161 SAVED_SCOPE.
4162 * lto-read.c (set_line_info): Remove ; from calls to
4163 LINEMAP_POSITION_FOR_COLUMN.
4164
41652007-11-13 Kenneth Zadeck <zadeck@naturalbridge.com>
4166
4167 * lto-read.c (input_type_ref): Renamed from get_type_ref.
4168 (input_expr_operand, input_local_var): Renamed get_type_ref to
4169 input_type_ref.
4170 (input_expr_operand): Get the types correct for
4171 vector-cst. Get SSA_NAME_DEF_STMT correct for return_exprs.
4172
41732007-11-13 Doug Kwan <dougkwan@google.com>
4174
4175 * lto-read.c (input_widest_uint_uleb128): New function.
4176 (input_tree_flags, process_tree_flags, input_line_info,
4177 input_expr_operand, input_local_var, input_phi, input_ssa_names):
4178 Change to use lto_flags_type and BITS_PER_LTO_FLAGS_TYPES instead of
4179 unsigned HOST_WIDE_INT and HOST_BITS_PER_WIDE_INT.
4180 (lto_static_init_local): Add code to assert that lto_flags_type is
4181 wide enough.
4182
41832007-11-13 Nathan Froyd <froydnj@codesourcery.com>
4184
4185 * lto.c (lto_read_array_type_DIE): Handle DW_AT_GNU_vector.
4186 (lto_read_subroutine_type_subprogram_DIE): Handle
4187 DW_AT_static_link and DW_AT_specification. Return the
4188 specification if present.
4189 (lto_read_base_type_DIE): Handle DW_ATE_complex_float.
4190
41912007-11-13 Nathan Froyd <froydnj@codesourcery.com>
4192
4193 * lto-lang.c: Include target.h.
4194 (registered_builtin_types): New variable.
4195 (lto_type_for_mode): Increase number of modes handled.
4196 (lto_builtin_function): Fix argument list and return the decl.
4197 (lto_register_builtin_type): New function.
4198 (lto_init): Initialize target builtins and language-independent
4199 nodes.
4200 (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define.
4201
42022007-11-13 Kenneth Zadeck <zadeck@naturalbridge.com>
4203
4204 * lto-read.c (input_expr_operand): Added code to properly handle
4205 index filed. Added new RANGE_EXPR case.
4206
42072007-11-11 Kenneth Zadeck <zadeck@naturalbridge.com>
4208
4209 * lto-read.c (ADD_FUNC_FLAG): Deleted macro.
4210 (data_in): Added current_node_has_loc field.
4211 (input_line_info, set_line_info, clear_line_info): Added a support
4212 for USE_MAPPED_LOCATION and not adding line numbers to nodes that
4213 did not have on on the source side.
4214 (input_expr_operand): Make sure that GIMPLE_MODIFY_STMTS get line
4215 numbers too.
4216
42172007-11-09 Doug Kwan <dougkwan@google.com>
4218
4219 * lto-read.c (input_expr_operand): Change type of operand 2 of
4220 BIT_FIELD_REF expression to be bitsizetype instead of sizetype.
4221
42222007-11-09 Nathan Froyd <froydnj@codesourcery.com>
4223
4224 * lto.c: Include lto-tree.h. Effect small spaces->tabs cleanup.
4225 (lto_read_variable_formal_parameter_constant_DIE): Transfer bits
4226 from a DW_AT_specification or DW_AT_abstract_origin attribute to
4227 the new decl we are creating. Move informing the middle end about
4228 the new decl to...
4229 (lto_main): ...here. Inform the middle end about global variables
4230 after we have read in all the input files.
4231 * lto-symtab.c (lto_symtab_merge_decl): We really do need to merge
4232 variables with internal linkage, so delete the check for internal
4233 linkage. Combine TREE_PUBLIC flags.
4234
42352007-11-08 Nathan Froyd <froydnj@codesourcery.com>
4236
4237 * lto.c (lto_read_subroutine_type_subprogram_DIE): Handle
4238 DW_AT_decl_line.
4239 * lto-symtab.c (lto_symtab_merge_decl): Handle redefinition of a
4240 builtin specially. Move check for attribute compatibility
4241 earlier.
4242
42432007-11-07 Nathan Froyd <froydnj@codesourcery.com>
4244
4245 * Make-lang.in (lto/lto.o): Depend on gt-lto-lto.h.
4246 * config-lang.in (gtfiles): Add lto.h and lto.c.
4247 * lto-elf.c: Include ggc.h.
4248 (lto_elf_file_open): Allocate elf_file from GC memory.
4249 * lto.c: Include tree-ssa-operands.h and gt-lto-lto.h
4250 (lto_info_fd_init): Allocate the die_cache and unmaterialized_fndecls
4251 in GC memory.
4252 (lto_info_fd_close): Free unmaterialized_fndecls from GC memory.
4253 (lto_file_close): Free file from GC memory.
4254 (lto_cache_store_DIE): Allocate the new entry in GC memory.
4255 (lto_read_member_DIE): Fix declaration.
4256 (lto_read_subroutine_type_subprogram_DIE): unmaterialized_fndecls lives
4257 in GC memory.
4258 (current_lto_file): New variable.
4259 (lto_main): Use it.
4260 (DWARF2_attr, DWARF2_abbrev, lto_die_ptr, DWARF2_CompUnit,
4261 lto_die_cache_entry): Move to...
4262 * lto.h: ...here and add GTY markers as appropriate. Delete forward
4263 declarations accordingly.
4264 (struct lto_file_struct): Declare.
4265 (lto_file_vtable): Use it instead of lto_file.
4266
42672007-11-06 Alon Dayan <alond@il.ibm.com>
4268 Kenneth Zadeck <zadeck@naturalbridge.com>
4269
4270 * lto-read.c (process_flags, lto_static_init_local):
4271 read flags of VAR_DECL and FUNCTION_DECL of size>1.
4272 change global array num_flags_for_code to flags_length_for_code.
4273 (set_line_info): Make decls work in USE_MAPPED_LOCATION mode.
4274
42752007-11-05 Nathan Froyd <froydnj@codesourcery.com>
4276
4277 * lto.c (lto_read_structure_union_class_type_DIE): Use proper record
4278 layout functions to compute information about the newly constructed
4279 type.
4280
42812007-11-02 Nathan Froyd <froydnj@codesourcery.com>
4282
4283 * lto-read.c (input_expr_operand): Change the LTO_return_expr1
4284 case to use DECL_RESULT if necessary.
4285
42862007-11-01 Kenneth Zadeck <zadeck@naturalbridge.com>
4287
4288 * lto-read.c (input_tree_list): Removed.
4289 (input_tree_flags): Added parameter to force flags no matter what
4290 tree code.
4291 (input_expr_operand): Added parameter to input_tree_flags.
4292 Added case for IDENTIFIER_NODE and TREE_LIST. Changed ASM to call
4293 input_expr_operand rather than input_tree_lists.
4294 (input_local_var): Use input_expr_operand to read attributes
4295 rather then input_tree_list.
4296 (input_phi, input_ssa_names): Added parameter to input_tree_flags.
4297
42982007-10-31 Nathan Froyd <froydnj@codesourcery.com>
4299
4300 * lto.c (lto_read_typedef_DIE): Fix comment typo.
4301 (lto_resolve_typedecl_ref): Fetch the referred-to type and build a fake
4302 TYPE_DECL for it.
4303 * lto-read.c (lto_read_body): Use correct sizes for calculating
4304 type_decls_offset and types_offset.
4305
43062007-10-30 Nathan Froyd <froydnj@codesourcery.com>
4307
4308 * lto-tree.h (union lang_tree_node): Change GTY description to chain
4309 with GENERIC_NEXT.
4310 * config-lang.in (gtfiles): Add lto-lang.c.
4311 * lto-lang.c: Include gt-lto-lto-lang.h.
4312 * Make-lang.in (lto/lto-lang.o): Add dependency on gt-lto-lto-lang.h
4313 (lto/lto-symtab.o): Depend on LTO_H instead of TREE_H.
4314 (lto/lto-read.o): Likewise.
4315
43162007-10-29 Kenneth Zadeck <zadeck@naturalbridge.com>
4317
4318 * lto-read.c (data_in): Added type_decls and current_col fields.
4319 (string_slot): New type to hold canonized file name.
4320 (hash_string_slot_node, eq_string_slot_node, canon_file_name,
4321 input_line_info, set_line_info, clear_line_info): New functions.
4322 (file_name_hash_table): New hash table.
4323 (input_local_var, input_labels, input_local_vars_index,
4324 input_local_var, input_local_vars, input_ssa_names): Reorganized parameters.
4325 (input_uleb128): Changed type of byte var.
4326 (input_expr_operand): Large number of changes to get line numbers
4327 correct. Added TYPE_DECL case.
4328 (input_globals): Added code to get TYPE_DECLs processed.
4329 (input_local_var): Added code to process line numbers and
4330 TREE_CHAIN and DECL_CONTEXT.
4331 (input_function, input_constructor): Added call to
4332 clear_line_number.
4333 (lto_static_init_local): Added code to get line numbers correct.
4334 (lto_read_body): Added code to get TYPE_DECLS read and to change
4335 parameters to the calls above that had their parms reorganized.
4336
4337
43382007-10-29 Nathan Froyd <froydnj@codesourcery.com>
4339
4340 * lto.h (lto_resolve_typedecl_ref): Declare.
4341 * lto.c (lto_resolve_typedecl_ref): New function.
4342
43432007-10-29 Mark Mitchell <mark@codesourcery.com>
4344 Nathan Froyd <froydnj@codesourcery.com>
4345
4346 * lto.c (lto_read_subroutine_type_subprogram_DIE): Read the child
4347 DIEs even if we find an abstract origin for this DIE.
4348
43492007-10-29 Nathan Froyd <froydnj@codesourcery.com>
4350
4351 * lto.c (lto_read_subroutine_type_subprogram_DIE): Build the
4352 RESULT_DECL slightly earlier. Only remember the decl for later
4353 if we successfully merge declarations.
4354
43552007-10-24 Kenneth Zadeck <zadeck@naturalbridge.com>
4356
4357 * lto-read.c (input_expr_operand): Give label_values the proper
4358 context and provide switch statements with a default type.
4359
43602007-10-23 Nathan Froyd <froydnj@codesourcery.com>
4361
4362 * lto-read.c (lto_read_body): Move call to init_ssa_operands...
4363 * lto.c (lto_materialize_function): ...to here.
4364
43652007-10-22 Nathan Froyd <froydnj@codesourcery.com>
4366
4367 * lto.h (struct lto_info_fd): Add field unmaterialized_fndecls.
4368 * lto.c (lto_info_fd_init): Initialize it.
4369 (lto_info_fd_close): Free it.
4370 (lto_materialize_function): New function.
4371 (lto_read_subroutine_type_subprogram_DIE): Save the result decl on
4372 unmaterialized_fndecls.
4373 (lto_file_read): Read in all the function bodies after we have read
4374 all of the DWARF info.
4375 * lto-read.c (lto_read_body): Call init_ssa_operands if we are
4376 reading a function body.
4377
43782007-10-20 Kenneth Zadeck <zadeck@naturalbridge.com>
4379
4380 * lto-read.c (input_tree_flags): Renamed from input_flags to be
4381 semetric with output_tree_flags. Added call to log flags.
4382 (process_tree_flags): Renamed from process_flags. Fixed a lot of
4383 type issues to make everything consistent with flags being
4384 unsigned HOST_WIDE_INTS.
4385 (input_expr_operand): Added call to
4386 recompute_tree_invariant_for_addr_expr.
4387 (input_local_var): Added debugging for tree_chains. Now calls
4388 input_tree_flags.
4389 (input_phi): Made flags unsigned HOST_WIDE_INT.
4390 (input_ssa_names): Now calls input_tree_flags.
4391 (lto_read_body): Now sets cfun.
4392 (lto_read_function_body): Now sets current_function_pointer.
4393
43942007-10-19 Nathan Froyd <froydnj@codesourcery.com>
4395
4396 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Check
4397 definitively whether SPECIFICATION or ABSTRACT_ORIGIN exist before
4398 inspecting fields within.
4399 (lto_read_DIE_at_ptr): Delete check for null result; let callers
4400 handle this appropriately.
4401
44022007-10-19 Nathan Froyd <froydnj@codesourcery.com>
4403
4404 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Handle
4405 DW_AT_abstract_origin properly. Ensure that we're not dealing with
4406 both DW_AT_abstract_origin and DW_AT_specification.
4407 (lto_read_subroutine_type_subprogram_DIE): Handle
4408 DW_AT_abstract_origin.
4409 (lto_read_DIE): Use lto_read_only_for_child_DIEs for labels.
4410 (lto_read_DIE_at_ptr): Define as static to match declaration.
4411 Lookup the PTR in the cache before reading it from the file.
4412 (lto_resolve_var_ref): Adjust accordingly.
4413 (lto_resolve_fn_ref): Adjust accordingly. Tweak comment.
4414 (lto_resolve_field_ref): Adjust accordingly. Tweak comment.
4415
44162007-10-19 Nathan Froyd <froydnj@codesourcery.com>
4417
4418 * lto.c (lto_read_DIE_at_ptr): New function.
4419 (lto_resolve_var_ref): Use it.
4420 (lto_resolve_fn_ref): Use it.
4421 (lto_resolve_field_ref): Use it.
4422 (lto_read_variable_formal_parameter_constant_DIE): Follow
4423 DW_AT_specification and return the associated decl when appropriate.
4424
44252007-10-18 Nathan Froyd <froydnj@codesourcery.com>
4426
4427 * lto-lang.c (lto_type_for_mode): Move after lto_type_for_size.
4428 Implement for scalar integer modes.
4429 (lto_init): Initialize size_type_node.
4430
44312007-10-18 Kenneth Zadeck <zadeck@naturalbridge.com>
4432
4433 * lto-read.c (input_expr_operand): Remove ssa name asserts.
4434 (input_local_var): Add chaining for params.
4435 (input_ssa_names): Add cfun parameter.
4436 (input_function): Remove unnecessary else.
4437
44382007-10-17 Nathan Froyd <froydnj@codesourcery.com>
4439
4440 * lto.c (lto_read_only_for_child_DIEs): Mark die parameter as unused.
4441 (lto_resolve_var_ref): Use proper types.
4442 (lto_resolve_fn_ref): Likewise.
4443 (lto_resolve_field_ref): Likewise.
4444
44452007-10-17 Nathan Froyd <froydnj@codesourcery.com>
4446
4447 * lto-read.c (input_expr_operand): Remove case.
4448
44492007-10-17 Nathan Froyd <froydnj@codesourcery.com>
4450
4451 * lto.c (lto_read_only_for_child_DIEs): New function.
4452 (lto_read_DIE): Use it for lexical_block and inlined_subroutine DIEs.
4453 * lto-elf.c (lto_elf_map_lto_section): Remove.
4454 (lto_elf_file_vtable): Use lto_elf_map_optional_lto_section instead.
4455 * lto-read.c (input_expr_operand): Assert that we never read a NULL
4456 SSA_NAME. Add missing case for mechanical codes.
4457 (input_cfg): Use basic_block_info_for_function instead of
4458 basic_block_info.
4459
44602007-10-16 Kenneth Zadeck <zadeck@naturalbridge.com>
4461
4462 * lto-read.c (input_sleb128, input_integer): Use proper casts.
4463 (input_list): Renamed input_tree_list and modified to follow same
4464 protocol as lto-function-out.c:output_tree_list.
4465 (input_expr_operand): Make asm operands use input_tree_list.
4466 (input_local_var): Now uses input_tree_list.
4467 (lto_read_body): Change placement for setting context of debug_labels.
4468
4469
44702007-10-16 Kenneth Zadeck <zadeck@naturalbridge.com>
4471
4472 * lto-read.c (input_real): Output debugging in proper order.
4473 (input_integer): Compute bit lengths properly.
4474 (input_list): Clean up declaration.
4475 (input_expr_operand): Change calls to input_real to match fix.
4476 Make reading of LTO_bit_field_ref1 match output.
4477 (input_local_var): Make reading of attributes match what is being
4478 written.
4479 (dump_debug_stream): Also print char in hex.
4480 (debug_out_fun): Fix signed unsigned mismatch.
4481
44822007-10-10 Nathan Froyd <froydnj@codesourcery.com>
4483
4484 * lto.c (lto_read_form): Handle DW_AT_MIPS_linkage_name and
4485 DW_AT_GNU_vector specially, as they are not contiguous with the
4486 specified set of attribute names. Use class_mask to check for
4487 errors at the end of the function
4488 (lto_resolve_var_ref): Read the DIE if it is not cached.
4489 (lto_resolve_fn_ref): Likewise.
4490 (lto_resolve_field_ref): Likewise.
4491
44922007-10-05 Nathan Froyd <froydnj@codesourcery.com>
4493
4494 * lto.c: Include dwarf2out.h.
4495 (lto_cache_store_DIE): Assert that we never change the value.
4496 (LTO_BEGIN_READ_ATTRS): Print an informative error message.
4497 (lto_read_compile_unit_DIE): Handle DW_AT_entry_pc.
4498 (lto_read_array_type_DIE): Don't error on ndims == 0; build a
4499 sensible type instead.
4500 (lto_read_structure_union_class_type_DIE): Store the newly
4501 created type prior to reading the members of the structure to
4502 avoid infinite recursion. Avoid computing types and alignments
4503 for structures whose sizes are unknown.
4504 (lto_read_variable_formal_parameter_const): Handle DW_AT_artificial
4505 and set DECL_ARTIFICIAL accordingly. Ignore DW_AT_abstract_origin,
4506 DW_AT_const_value, and DW_AT_specification.
4507 (lto_read_subroutine_type_subprogram_DIE): Handle DW_AT_declaration.
4508 Return early if we have already constructed the function type.
4509 (lto_read_typedef_DIE): Check to see if the type has been cached
4510 already. Cache the type before reading any children.
4511 (lto_read_const_volatile_restrict_type_DIE): Handle DW_AT_name.
4512 (lto_read_DIE): Unset context->skip_non_parameters around reading
4513 the DIE.
4514 (lto_resolve_fn_ref): Delete trailing whitespace.
4515
45162007-09-11 Kenneth Zadeck <zadeck@naturalbridge.com>
4517
4518 * lto-read.c (input_expr_operand): Added type for STRING_CST.
4519
45202007-09-10 Nathan Froyd <froydnj@codesourcery.com>
4521
4522 * lto-read.c (lto_read): Set the type of the newly created CALL_EXPR.
4523
45242007-09-07 Nathan Froyd <froydnj@codesourcery.com>
4525
4526 * lto-lang.c (signed_and_unsigned_types): New variable.
4527 (lto_type_for_size): Consult signed_and_unsigned_types to find
4528 an approprite type, creating it if necessary.
4529 (lto_set_decl_assembler_name): Add actual method body.
4530
45312007-09-06 Jim Blandy <jimb@codesourcery.com>
4532
4533 * lto.c (lto_read_variable_formal_parameter_constant_DIE): If we
4534 can't find a var init for this variable, leave its DECL_INITIAL.
4535 * lto-elf.c (lto_elf_map_optional_lto_section): Renamed from
4536 lto_elf_map_fn_body.
4537 (lto_map_lto_section): New function.
4538 (lto_elf_file_vtable): Use lto_elf_map_lto_section for function
4539 bodies, and lto_elf_map_optional_lto_section for variable
4540 initializers.
4541 (lto_elf_find_section_data): Quietly return NULL if the section is
4542 missing.
4543 (lto_elf_file_open): Check for a NULL from lto_elf_find_section_data.
4544
4545 * lto-elf.c (lto_elf_find_section_data): Remove dead code.
4546
4547 * lto-read.c (lto_read_body): Doc fix.
4548
45492007-08-29 Kenneth Zadeck <zadeck@naturalbridge.com>
4550
4551 * lto-read.c (fun_in): Renamed to data_in.
4552 (input_expr_operand, input_local_var, input_string_internal,
4553 input_string, input_real, input_list, get_label_decl,
4554 get_type_ref, input_expr_operand, input_globals, input_labels,
4555 input_local_vars_index, input_local_var, input_local_vars,
4556 input_cfg, input_phi, input_ssa_names, input_bb, ): Renamed fun_in to data_in.
4557 (input_constructor): New function.
4558 (lto_read_function_body): Renamed to lto_read_body and generalized
4559 to handle both functions and constructors.
4560 (lto_read_function_body, lto_read_var_init): New function.
4561
4562
45632007-08-28 Kenneth Zadeck <zadeck@naturalbridge.com>
4564
4565 * lto-read.c (input_expr_operand): Assert that there really is a
4566 FUNCTION_DECL.
4567 (input_globals): Removed checks on 0 section.
4568
45692007-08-28 Kenneth Zadeck <zadeck@naturalbridge.com>
4570
4571 * lto-read.c (fun_in): Added local_decls_index and
4572 local_decls_index_d.
4573 (input_expr_operand): Changed inputting of PARM_DECLs and VAR_DECLs.
4574 (input_globals): Enabled code to handle FIELD_DECLs.
4575 (input_local_vars_index, input_local_vars): New function.
4576 (input_local_var): Changed to allow locals to be input randomly.
4577 (lto_read_function_body): Added code to input the
4578 local_decls_index and to free various structures.
4579
45802007-08-17 Jim Blandy <jimb@codesourcery.com>
4581
4582 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Remove
4583 ATTRIBUTE_UNUSED from 'die' formal.
4584
4585 Use enum LTO_tags where appropriate, instead of 'unsigned int'.
4586 * lto-read.c (input_record_start): Fix return type, type of 'tag'.
4587 (input_list): Fix type of 'tag'.
4588 (input_expr_operand): Fix type of 'tag' argument. Update
4589 declaration. Fix type of 'ctag'. Add default case to switch,
4590 since the type of the switched value is now an enum.
4591 (input_local_vars): Fix type of 'tag'.
4592 (input_bb): Fix type of 'tag' argument.
4593 (input_function): Fix type of 'tag' argument.
4594
45952007-08-16 Jim Blandy <jimb@codesourcery.com>
4596
4597 * lto.c (lto_read_member_DIE): Record the tree we create in
4598 fd->die_cache. (Our 'die' argument is no longer unused.)
4599 (lto_resolve_field_ref): New function.
4600 * lto.h (lto_resolve_field_ref): New declaration.
4601
46022007-08-15 Jim Blandy <jimb@codesourcery.com>
4603
4604 * lto-read.c (lto_read_var_init): Mark arguments as unused.
4605
46062007-08-07 Jim Blandy <jimb@codesourcery.com>
4607
4608 * lto.c (lto_read_form): Complete attr_classes table.
4609 (DWARF2_form_data): Doc fix.
4610
46112007-08-05 Mark Mitchell <mark@codesourcery.com>
4612
4613 * lto.h (lto_file_vtable): Remove read_var_init. Add map_var_init
4614 and unmap_var_init.
4615 (lto_read_var_init): Declare.
4616 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Use new
4617 interface for reading variable initializers.
4618 * lto-elf.c (lto_elf_read_var_init): Remove.
4619 (lto_elf_file_vtable): Update initializer.
4620 (lto_elf_read_var_init): Add comment about unused-ness.
4621 * lto-read.c (lto_read_var_init): New.
4622
4623 * lto.c (lto_read_form): Add entry for DW_AT_inline.
4624
46252007-08-02 Kenneth Zadeck <zadeck@naturalbridge.com>
4626
4627 * lto-read.c (lto_read_function_body): Moved declaration of fn
4628 outside of ifdef.
4629
46302007-08-01 Kenneth Zadeck <zadeck@naturalbridge.com>
4631
4632 * lto-read.c (input_uleb128, input_string_internal, input_real,
4633 input_integer, input_record_start, input_list, get_type_ref,
4634 input_flags, input_expr_operand, input_expr_operand,
4635 input_expr_operand, input_local_vars, input_cfg, input_phi,
4636 input_ssa_names, input_bb, input_function): Added semicolons.
4637
4638
46392007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
4640
4641 * lto-read.c (input_globals): Remove debugging.
4642 (input_function): Set DECL_ARGUMENTS.
4643
4644
46452007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
4646
4647 * lto-read.c (input_expr_operand): Fixed code for COND_EXEC,
4648 RETURN_EXPR, MODIFY_EXPR and processing of flags.
4649 (input_phi): Made work with operands other than SSA_NAMES and
4650 fixed processing of flags.
4651 (input_ssa_names): Initialize SSA_NAME_DEF_STMT to empty stmt.
4652 (input_flags): New function.
4653 * lto-lang.c (lto_init): Changed state of in_lto_p.
4654
4655
46562007-07-24 Mark Mitchell <mark@codesourcery.com>
4657
4658 * lto-tree.h (lto_varargs_cookie): Remove.
4659 * lto.c (lto_context): Add last_parm_type, varargs_p, skip_all,
4660 skip_non_parameters, skip_parameters.
4661 (lto_varargs_cookie): Remove.
4662 (lto_read_variable_formal_parameter_constant_DIE): Keep track of
4663 parameter types.
4664 (lto_read_abbrev): New function.
4665 (lto_read_subroutine_type_subprogram_DIE): Make two passes over
4666 child DIEs.
4667 (lto_read_unspecified_parameters_DIE): Set context->varargs_p.
4668 (lto_read_DIE): Use lto_read_abbrev. Honor skip_* flags.
4669 (lto_file_read): Initialize new context fields.
4670 * lto-lang.c (lto_type_for_mode): Return NULL_TREE.
4671 (lto_unsigned_type): Remove.
4672 (lto_signed_type): Likewise.
4673 (lto_signed_or_unsigned_type): Likewise.
4674 (lto_init): Do not create lto_varargs_cookie.
4675 (LANG_HOOKS_UNSIGNED_TYPE): Do not define.
4676 (LANG_HOOKS_SIGNED_TYPE): Likewise.
4677 (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Likewise.
4678
46792007-07-19 Jan Hubicka <jh@suse.cz>
4680
4681 * lto-read.c (lto_read_function_body): Produce empty scope block
4682 to avoid crash.
4683
46842007-07-18 Mark Mitchell <mark@codesourcery.com>
4685
4686 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Do not
4687 process local variables.
4688 (lto_read_subroutine_type_subprogram_DIE): Read child DIEs.
4689
46902007-07-13 Kenneth Zadeck <zadeck@naturalbridge.com>
4691
4692 * lto-read.c (input_list, input_expr_operand): Added struct
4693 function parameter.
4694 (init_cfg, finalize_cfg): Removed function.
4695 (input_expr_operand): Added SSA_NAME and GIMPLE_MODIFY_STMT cases.
4696 (input_labels, input_local_vars): Now takes input_block parameter rather than
4697 synthsyzing it.
4698 (input_cfg, input_phi, input_ssa_names): New functions.
4699 (input_bb): Now passes in input_blocks. Does not construct cfg
4700 and processes the list of phi functions.
4701 (input_function): Now builds both the cfg and ssa_names table.
4702 (lto_read_function_body): Processes new header fields to construct
4703 streams for the ssa_names and cfg and their debugging.
4704 * lto/lto-lang.c (lto_init): Set in_lto_p.
4705
4706
47072007-06-28 Mark Mitchell <mark@codesourcery.com>
4708
4709 * lto.h (lto_file_vtable): Add read_var_init.
4710 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Read
4711 initializers.
4712 (lto_main): Remove bogus asserts.
4713 * lto-elf.c (tm.h): Include it.
4714 (libiberty.y): Likewise.
4715 (lto_elf_file): Add strtab and symtab. Rename
4716 string_table_section_index to sec_strtab.
4717 (lto_elf_file_vtable): Add lto_elf_read_var_init.
4718 (lto_elf_get_shdr): New function.
4719 (lto_elf_free_shdr): Likewise.
4720 (lto_elf_find_section_data): Use them.
4721 (lto_elf_read_symtab): New function.
4722 (lto_elf_lookup_sym): Likewise.
4723 (lto_elf_free_sym): Likewise.
4724 (lto_elf_file_open): Tidy. Call lto_elf_read_symtab.
4725 (lto_elf_built_init): New function.
4726 (lto_elf_read_var_init): Likewise.
4727 * Make-lang.in (lto/lto-elf.o): Depend on $(TM_H).
4728
47292007-06-26 Kenneth Zadeck <zadeck@naturalbridge.com>
4730
4731 * lto-read (make_new_block): Initialize the stmt_list.
4732 (lto_static_init_local): Add debugging for missing codes.
4733
47342007-06-26 Mark Mitchell <mark@codesourcery.com>
4735
4736 * lto.c (lto_read_subroutine_type_subprogram_DIE): Handle
4737 unprototyped functions.
4738
47392007-06-23 Mark Mitchell <mark@codesourcery.com>
4740
4741 * lto.c (lto_read_variable_formal_parameter_constant_DIE):
4742 Handle DW_AT_MIPS_linkage_name.
4743 (lto_read_subroutine_type_subprogram): Likewise. Correct
4744 compilation errors.
4745 (lto_main): Remove incorrect assertions.
4746 * lto-symbtab.c: Build function types out of TREE_LISTs.
4747
4748 * lto-elf.c (<libelf>): Check for HAVE_LIBELF_H.
4749
4750 * Make-lang.in (LTO_OBJS): Depend on attribs.o.
4751
47522007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com>
4753
4754 * lto/lto-tree.h (lang_decl, lang_type, language_function): Added
4755 dummy since ggc does not like empty structs.
4756 * lto/lto-elf.c (libelf.h): Changed to libelf/libelf.h.
4757 * lto/lto-read.c (ADD_CLASS_FLAG, ADD_EXPR_FLAG): Changed
4758 expr->common to expr->base.
4759 (make_new_block): Moved stmt_list to proper place.
4760
4761
47622007-03-14 Robert Kennedy <jimbob@google.com>
4763
4764 Eliminate use of lang_hooks.set_decl_assembler_name from LTO
4765 * lto.c (lto_read_subroutine_type_subprogram_DIE) Get DECL
4766 assembler name from DWARF.
4767 * lto-lang.c (lto_set_decl_assembler_name) New function.
4768
47692006-09-10 Mark Mitchell <mark@codesourcery.com>
4770
4771 * lto.h (lto_file_vtable): New structure.
4772 (lto_file): Add vtable pointer.
4773 (lto_file_init): Add vtable paramter.
4774 (lto_read_function_body): New function.
4775 (lto_symtab_merge_fn): New function.
4776 * lto.c (lto_file_init): Add vtable parameter.
4777 (lto_read_form): Fill in entries for DW_AT_prototyped,
4778 DW_AT_frame_base.
4779 (lto_read_subroutine_type_subprogram_DIE): New function.
4780 (lto_read_DIE): Fill in entries for DW_TAG_subroutine_type and
4781 DW_TAG_subprogram.
4782 * lto-elf.c (lto_elf_vile_vtable): New variable.
4783 (lto_elf_file_open): Pass it to lto_file_init.
4784 (lto_elf_map_fn_body): New function.
4785 (lto_elf_unmap_fn_body): Likewise.
4786 * lto-read.c: New file.
4787 * lto-symtab.c (lto_symtab_merge_fn): New function.
4788 * lto-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define to
4789 tree_rest_of_compilation.
4790 * Make-lang.in (LTO_OBJS): Add lto-read.o
4791 (lto-read.o): New target.
4792
47932006-09-03 Mark Mitchell <mark@codesourcery.com>
4794
4795 * lto.c (<inttypes.h>): Don't include it.
4796 (lto_context): Don't typedef it.
4797 (lto_resolve_reference): New function.
4798 (lto_read_form): Use it.
4799 (lto_resolve_type_ref): New function.
4800 (lto_resolve_var_ref): Likewise.
4801 (lto_resolve_fn_ref): Likewise.
4802 * lto.h (<inttypes.h>): Include it.
4803 (lto_context): New type.
4804 (lto_ref): New structure.
4805 (lto_resolve_type_ref): Declare.
4806 (lto_resolve_var_ref): Likewise.
4807 (lto_resolve_fn_ref): Likewise.
4808
48092006-08-18 Mark Mitchell <mark@codesourcery.com>
4810
4811 * lang-specs.h: New file.
4812
48132006-08-14 Mark Mitchell <mark@codesourcery.com>
4814
4815 * lto.c (lto_info_fd_init): Allocate the DIE cache.
4816 (lto_info_fd_close): Deallocate it.
4817 (lto_die_cache_entry): New structure.
4818 (lto_cache_hash): New function.
4819 (lto_cache_eq): Likewise.
4820 (lto_cache_store_DIE): Likewise.
4821 (lto_cache_lookup_DIE): Likewise.
4822 (lto_read_referenced_type_DIE): Use the cache.
4823 (lto_read_pointer_type_DIE): Robustify.
4824 (lto_read_DIE): Use the cache.
4825 * lto.h (hashtab.h): Include.
4826 (lto_info_fd): Add DIE cache.
4827 * Make-lang.in (LTO_H): New variable.
4828 (lto/lto-lang.o): Use LTO_H.
4829 (lto/lto-elf.o): Likewise.
4830 (lto/lto-symtab.o): Likewise.
4831
48322006-07-09 Mark Mitchell <mark@codesourcery.com>
4833
4834 * lto.c (lto_abi_mismatch_error): New function.
4835 (lto_abbrev_read): Initialize num_abbrevs.
4836 (lto_read_form): Specify allowed form classes for
4837 DW_AT_declaration. Adjust for change to lto_set_cu_context.
4838 (lto_read_variable_formal_parameter_constant_DIE): Handle
4839 DW_AT_declaration. Call lto_symtab_merge_var.
4840 (lto_read_pointer_type_DIE): New function.
4841 (lto_read_base_type_DIE): Use build_nonstandard_integer_type. Do
4842 not creat TYPE_DECLs for types that already have them.
4843 (lto_read_DIE): Add lto_read_pointer_type_DIE.
4844 (lto_set_cu_context): Make cu_start point to the header, not the
4845 first DIE.
4846 (lto_file_read): Adjust for change to lto_set_cu_context.
4847 * Make-lang.in (LTO_OBJS): Add lto-symtab.o.
4848 (lto/lto-symtab.o): New rule.
4849 * lto-tree.h (lang_identifier): Add decl field.
4850 (LANG_IDENTIFIER_CAST): New macro.
4851 (LTO_IDENTIFIER_DECL): Likewise.
4852 (lto_symtab_merge_var): Declare.
4853 * lto-symtab.c: New file.
4854
48552006-07-02 Daniel Berlin <dberlin@dberlin.org>
4856
4857 * lto.c (lto_context): Add current_cu and info_fd members.
4858 (DWARF2_CompUnit): New structure.
4859 (lto_read_DIE): Take lto_info_fd *.
4860 (lto_read_child_DIEs): Ditto.
4861 (lto_file_corrupt_error): Constify argument.
4862 (lto_set_cu_context): New function
4863 (lto_info_fd_init): Ditto.
4864 (lto_info_fd_close): Ditto.
4865 (lto_file_init): Use lto_info_fd_init.
4866 (lto_file_close): Use lto_info_fd_close.
4867 (lto_read_initial_length): Pass in pointer to header size.
4868 (lto_read_comp_unit_header): Correct cu_length to
4869 real length from beginning of header. Take lto_info_fd * as
4870 argument.
4871 (find_cu_for_offset): New function.
4872 (lto_read_form): Change first argument to lto_info_fd *.
4873 Add FORM_CONTEXT argument.
4874 Handle DW_FORM_ref_addr.
4875 (lto_read_tag_DIE): Change first argument to lto_info_fd *.
4876 (LTO_BEGIN_READ_ATTRS_UNCHECKED): Save old context.
4877 Swap contexts if necessary for form.
4878 (LTO_BEGIN_READ_ATTRS): Cast fd to right type for
4879 lto_file_corrupt_error.
4880 (LTO_END_READ_ATTRS): Swap contexts back if it had changed.
4881 (lto_read_referenced_type_DIE): Change first argument to
4882 lto_info_fd *. Access lto_fd fields through base pointer.
4883 (lto_read_compile_unit_DIE): Change first argument to an
4884 lto_info_fd *.
4885 (lto_read_variable_formal_parameter_constant_DIE): Ditto.
4886 (lto_read_base_type_DIE): Ditto.
4887 (lto_read_child_DIEs): Ditto.
4888 (lto_read_DIE): Ditto. Change type of function pointer.
4889 (lto_info_read): New function.
4890 (lto_set_cu_context): Ditto.
4891 (lto_file_read): Use lto_info_read, walk resulting CU's
4892 (lto_main): Update for lto_info_fd change.
4893 * lto-elf.c (lto_elf_file_open): Cast lto_info_fd to lto_fd where
4894 necessary.
4895 * lto.h (DWARF2_CompUnit): New structure.
4896 (lto_info_fd): Ditto.
4897 (lto_file): Change debug_info to be an lto_info_fd.
4898
48992006-06-25 Mark Mitchell <mark@codesourcery.com>
4900
4901 * lto.c (toplev.h): Include it.
4902 (dwarf2.h): Likewise.
4903 (tree.h): Likewise.
4904 (tm.h): Likewise.
4905 (cgraph.h): Likewise.
4906 (ggc.h): Likewise.
4907 (inttypes.h): Likewise.
4908 (DWARF2_attr): New type.
4909 (DWARF2_abbrev): Likewise.
4910 (DWARF2_class): Likewise.
4911 (DWARF2_form_data): Likewise.
4912 (lto_context): Likewise.
4913 (lto_fd_init): New function.
4914 (lto_abbrev_fd_init): Likewise.
4915 (lto_abbrev_fd_close): Likewise.
4916 (lto_file_init): Use them.
4917 (lto_file_close): New function.
4918 (lto_file_corrupt_error): Likewise.
4919 (LTO_CHECK_INT_VAL): New macro.
4920 (lto_check_size_t_val): New function.
4921 (lto_check_int_val): Likewise.
4922 (LTO_READ_TYPE): New macro.
4923 (lto_read_ubyte): New function.
4924 (lto_read_uhalf): Likewise.
4925 (lto_read_uword): Likewise.
4926 (lto_read_uleb128): Likewise.
4927 (lto_read_initial_length): Likewise.
4928 (lto_abbrev_read_attrs): Likewise.
4929 (lto_abbrev_read): Likewise.
4930 (lto_abbrev_lookup): Likewise.
4931 (lto_read_section_offset): Likewise.
4932 (lto_read_comp_unit_header): Likewise.
4933 (lto_read_form): Likewise.
4934 (LTO_BEGIN_READ_ATTRS_UNCHECKED): New macro.
4935 (LTO_BEGIN_READ_ATTRS): Likewise.
4936 (LTO_END_READ_ATTRS): Likewise.
4937 (lto_unsupported_attr_error): New function.
4938 (lto_get_identifier): Likewise.
4939 (lto_read_referenced_type_DIE): Likewise.
4940 (lto_read_compile_unit_DIE): Likewise.
4941 (lto_read_variable_formal_parameter_constant_DIE): Likewise.
4942 (lto_read_base_type_DIE): Likewise.
4943 (lto_read_DIE): Likewise.
4944 (lto_read_child_DIEs): Likewise.
4945 (lto_file_read): Read DIEs.
4946 (lto_main): Ask middle end to emit entities.
4947 * lto-tree.h (lang_identifier): Inherit from tree_identifier.
4948 * lto-elf.c (lto_elf_file_open): Adjust for interface changes.
4949 (lto_elf_file_close): Likewise.
4950 * lto.h (lto_file): Declare.
4951 (DWARF2_abbrev): Likewise.
4952 (lto_fd): New type.
4953 (lto_abbrev_fd): Likewise.
4954 (lto_file): Use new types.
4955 (lto_file_close): Declare.
4956 * lto-lang.c (lto_init): Always use unit-at-a-time mode.
4957
49582006-06-18 Mark Mitchell <mark@codesourcery.com>
4959
4960 * lto.h: New file.
4961 * lto.c: New file.
4962 * lto-elf.c: New file.
4963 * lto-lang.c (flags.h): Include it.
4964 (lto.h): Likewise.
4965 (lto_init): New function.
4966 (lto_write_globals): Remove.
4967 (LANG_HOOKS_WRITE_GLOBALS): Define to lhd_do_nothing.
4968 (LANG_HOOKS_INIT): Define.
4969 (LANG_HOOKS_PARSE_FILE): Likewise.
4970 * Make-lang.in (LTO_OBJS): Add lto.o and lto-elf.o.
4971 (LTO_EXE): Link with libelf.
4972 (lto/lto-lang.o): Update dependencies.
4973 (lto/lto.o): New target.
4974 (lto/lto-elf.o): Likewise.
4975
49762006-06-12 Mark Mitchell <mark@codesourcery.com>
4977
4978 * config-lang.in: New file.
4979 * Make-lang.in: Likewise.
4980 * lto-tree.h: Likewise.
4981 * lto-lang.c: Likewise.
4982