]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/lto/ChangeLog
varpool.c (tls_model_names): Fix names.
[thirdparty/gcc.git] / gcc / lto / ChangeLog
CommitLineData
69fe4502
JH
12014-12-11 Jan Hubicka <hubicka@ucw.cz>
2
3 * lto.c (compare_tree_sccs_1): Add comparsion of
4 DECL_FUNCTION_SPECIFIC_TARGET
5
41dbbb37
TS
62015-01-15 Thomas Schwinge <thomas@codesourcery.com>
7 James Norris <jnorris@codesourcery.com>
8
9 * lto-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
10 New macros.
11 * lto.c: Include "gomp-constants.h".
12
837bac8c
IV
132015-01-14 Ilya Verbin <ilya.verbin@intel.com>
14
15 * lto-partition.c (lto_promote_cross_file_statics): Remove argument
16 from select_what_to_stream.
17
1b34e6e2
BS
182015-01-09 Bernd Schmidt <bernds@codesourcery.com>
19 Jakub Jelinek <jakub@redhat.com>
20
21 PR middle-end/64412
22 * lto.c (read_cgraph_and_symbols): Set lto_stream_offload_p
23 if ACCEL_COMPILER.
24
adfac8df
JJ
252015-01-09 Michael Collison <michael.collison@linaro.org>
26
27 * lto.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
28 input.h, alias.h, symtab.h, options, fold-const.h,
29 wide-int.h, and inchash.h due to flattening of tree.h.
30 * lto-lang.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
31 input.h, alias.h, symtab.h, fold-const.h,
32 wide-int.h, and inchash.h due to flattening of tree.h.
33 * lto-object.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
34 input.h, alias.h, symtab.h, options, fold-const.h,
35 wide-int.h, and inchash.h due to flattening of tree.h.
36 * lto-partition.c: Ditto.
37 * lto-symtab.c: Ditto.
38
5624e564
JJ
392015-01-05 Jakub Jelinek <jakub@redhat.com>
40
41 Update copyright years.
42
9a1e784a
ML
432014-12-22 Martin Liska <mliska@suse.cz>
44
45 * lto-partition.c (add_symbol_to_partition_1): New inline_summaries
46 is used.
47 (undo_partition): Likewise.
48 (lto_balanced_map): Likewise.
49
dd912cb8
ML
502014-12-22 Martin Liska <mliska@suse.cz>
51
52 * lto-partition.c: Include of symbol-summary.h is added.
53 * lto-symtab.c: Likewise.
54 * lto.c: Likewise.
55
17e0fc92
JH
562014-12-11 Jan Hubicka <hubicka@ucw.cz>
57
58 PR ipa/61324
59 * lto.c (read_cgraph_and_symbols): Update call of
60 remove_unreachable_nodes.
61 (do_whole_program_analysis): Remove call of
62 symtab->remove_unreachable_nodes
63
58dddbd2
TS
642014-12-08 Trevor Saunders <tsaunders@mozilla.com>
65
66 * lto.c (read_cgraph_and_symbols): allocate gimple_canonical_types
67 htab with malloc instead of ggc.
68
907dadbd
TS
692014-11-20 Trevor Saunders <tsaunders@mozilla.com>
70
71 * lto.c: Replace htab with hash_table.
72
9c71e9df
TS
732014-11-20 Trevor Saunders <tsaunders@mozilla.com>
74
75 * lto.c (lto_read_in_decl_state): Adjust.
76 (lto_fixup_state): Likewise.
77
72a4a8b0
JH
782014-11-17 Jan Hubicka <hubicka@ucw.cz>
79
80 * lto.c (lto_read_decls): Do not rebuild DECL_FUNCTION_SPECIFIC_TARGET.
81
54e774c0
JH
822014-11-14 Jan Hubicka <hubicka@ucw.cz>
83
84 * lto.c (compare_tree_sccs_1): Compare cl_target_option_eq.
85
1f6be682
IV
862014-11-13 Ilya Verbin <ilya.verbin@intel.com>
87 Bernd Schmidt <bernds@codesourcery.com>
88 Andrey Turetskiy <andrey.turetskiy@intel.com>
89 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
90
ec6fe917
IV
91 * lto/lto.c (read_cgraph_and_symbols): Call input_offload_tables.
92
932014-11-13 Ilya Verbin <ilya.verbin@intel.com>
94 Ilya Tocar <ilya.tocar@intel.com>
95 Andrey Turetskiy <andrey.turetskiy@intel.com>
96 Bernd Schmidt <bernds@codesourcery.com>
97
1f6be682
IV
98 * lto-object.c (lto_obj_add_section): Use section_name_prefix instead of
99 LTO_SECTION_NAME_PREFIX.
100 * lto-partition.c (lto_promote_cross_file_statics): Call
101 select_what_to_stream.
102 * lto.c (lto_section_with_id): Use section_name_prefix instead of
103 LTO_SECTION_NAME_PREFIX.
104 (read_cgraph_and_symbols): Read OFFLOAD_SECTION_NAME_PREFIX sections, if
105 being built as an offload compiler.
106
ef4bddc2
RS
1072014-10-29 Richard Sandiford <richard.sandiford@arm.com>
108
109 * lto-lang.c: Remove redundant enum from machine_mode.
110
c582198b
AM
1112014-10-28 Andrew MacLeod <amacleod@redhat.com>
112
113 * lto.c: Adjust include files.
114 * lto-lang.c: Ditto.
115 * lto-object.c: Ditto.
116 * lto-partition.c: Ditto.
117 * lto-symtab.c: Ditto.
118
60393bbc
AM
1192014-10-27 Andrew MacLeod <amacleod@redhat.com>
120
121 * lto-lang.c: Adjust include files.
122 * lto-object.c: Ditto.
123 * lto-partition.c: Ditto.
124 * lto-symtab.c: Ditto.
125 * lto.c: Ditto.
126
957f47e6
DD
1272014-10-16 DJ Delorie <dj@redhat.com>
128
129 * lto-object.c (lto_obj_begin_section): In the event that pointer
130 sizes aren't powers of two, choose a more suitable alignment
131 than (unsigned)(-1).
132
78a7c317
DD
1332014-10-14 DJ Delorie <dj@redhat.com>
134
135 * lto-lang.c (lto_build_c_type_nodes): Check intN types for
136 size-type as well.
137 (lto_init): Initialize all intN types, not just int128.
138
70261a4f
ML
1392014-10-06 Martin Liska <mliska@suse.cz>
140
141 * lto.c (stream_out): ARG_UNUSED added for last argument.
142
00de328a
AH
1432014-09-24 Aldy Hernandez <aldyh@redhat.com>
144
145 * lto-symtab.c, lto.c: Rename all instances of DECL_ABSTRACT to
146 DECL_ABSTRACT_P.
147
7861b648
AK
1482014-09-23 Andi Kleen <ak@linux.intel.com>
149
150 * lto-partition.c (node_cmp): Update comment.
151 (varpool_node_cmp): Use symtab_node for comparison.
152 (add_sorted_nodes): New function.
153 (lto_balanced_map): Change to keep ordered queue
154 of ordered node. Handle no_reorder attribute.
155
1ee85ee1
JH
1562014-09-11 Jan Hubicka <hubicka@ucw.cz>
157
158 * lto.c (lto_read_decls): Register ODR types.
159
8605403e
JH
1602014-08-20 Jan Hubicka <hubicka@ucw.cz>
161
162 * lto.c (read_cgraph_and_symbols): Fix symtab_remove_unreachable_nodes
163 call.
164 (do_whole_program_analysis): Only sanity check that IPA passes cleans up.
165
56b1f114
JH
1662014-08-14 Jan Hubicka <hubicka@ucw.cz>
167
168 * lto-symtab.c (lto_varpool_replace_node): Call compare_virtual_tables.
169
833f94c0
RB
1702014-08-14 Richard Biener <rguenther@suse.de>
171
172 PR lto/62067
173 * lto-lang.c (def_fn_type): Fix error handling wrt va_end.
174
207c68cd
RB
1752014-08-08 Richard Biener <rguenther@suse.de>
176
177 * lto.c (lto_read_decls): Adjust for lto_input_block changes.
178
7c581d61
BC
1792014-08-08 Bin Cheng <bin.cheng@arm.com>
180
181 PR lto/62032
182 * lto-lang.c (lto_init): Switch mis-matched arguments.
183
39c8aaa4
TS
1842014-08-07 Trevor Saunders <tsaunders@mozilla.com>
185
186 * lto-partition.c, lto.c: Use hash_map instead of pointer_map.
187
6e2830c3
TS
1882014-08-02 Trevor Saunders <tsaunders@mozilla.com>
189
190 * lto-partition.c, lto-partition.h: Use hash_set instead of
191 pointer_set.
192
50de5793
AK
1932014-07-31 Andi Kleen <ak@linux.intel.com>
194
195 * lto.c (hash_canonical_type): Use inchash::hash
196 and use inchash::add_expr.
197 (iterative_hash_canonical_type): Dito.
198
f6bcdb5e
RB
1992014-07-30 Richard Biener <rguenther@suse.de>
200
201 * lto-streamer.h (lto_write_data): New function.
202 * langhooks.c (lhd_append_data): Do not free block.
203 * lto-section-out.c (lto_write_data): New function writing
204 raw data to the current section.
205 (lto_write_stream): Adjust for langhook semantic change.
206 (lto_destroy_simple_output_block): Write header directly.
207 * lto-opts.c (lto_write_options): Write options directly.
208 * lto-streamer-out.c (produce_asm): Write heaeder directly.
209 (lto_output_toplevel_asms): Likewise.
210 (copy_function_or_variable): Copy data directly.
211 (write_global_references): Output index table directly.
212 (lto_output_decl_state_refs): Likewise.
213 (write_symbol): Write data directly.
214 (produce_symtab): Adjust.
215 (produce_asm_for_decls): Output header and refs directly.
216
56fdfd3e
AK
2172014-07-25 Andi Kleen <ak@linux.intel.com>
218
219 * lto.c (hash_canonical_type): Call iterative_hstate_expr.
220
0bd8bb04
AK
2212014-07-25 Andi Kleen <ak@linux.intel.com>
222
223 * lto.c (hash_canonical_type): Convert to inchash.
224 (iterative_hash_canonical_type): Dito.
225
6d8eb96b
AK
2262014-07-25 Andi Kleen <ak@linux.intel.com>
227
228 * lto.c: Include inchash.h
229
ad115a3c
JH
2302014-07-14 Jan Hubicka <hubicka@ucw.cz>
231
232 * lto.c (mentions_vars_p_decl_non_common): Skip
233 DECL_ARGUMENT_FLD.
234 mentions_vars_p_function): Do DECL_ARGUMENTS.
235 (lto_fixup_prevailing_decls): Update.
236
917dd9bf
JH
2372014-07-12 Jan Hubicka <hubicka@ucw.cz>
238
239 * lto.c (read_cgraph_and_symbols): Do not push DECL_INIT_IO
240 timevar
241 (materialize_cgraph): Do not push GIMPLE_IN timevar.
242
0b83e688
JH
2432014-07-11 Jan Hubicka <hubicka@ucw.cz>
244
245 * lto-partition.c (add_references_to_partition): Use
246 varpool_ctor_useable_for_folding_p.
247 * lto.c (lto_read_in_decl_state): Update sanity check.
248
e55637b7
ML
2492014-07-01 Martin Liska <mliska@suse.cz>
250
251 IPA REF alias refactoring
252 * lto-partition.c (add_symbol_to_partition_1): Usage of
253 FOR_EACH_ALIAS added.
254
010f4e27
JH
2552014-06-28 Jan Hubicka <hubicka@ucw.cz>
256
257 Revert:
258 * lto.c (lto_copy_fields_not_streamed): New function.
259 (compare_tree_sccs_1): Do not compare fields shared in between type
260 and variant.
261 (lto_read_decls): Fixup types first before inserting into hash.
262
b82fe354
AP
2632014-06-28 Andrew Pinski <apinski@cavium.com>
264
265 * lto.c (lto_read_decls): Fix comment in comment.
266
288eeff7
JH
2672014-06-28 Jan Hubicka <hubicka@ucw.cz>
268
269 * lto.c (lto_copy_fields_not_streamed): New function.
270 (compare_tree_sccs_1): Do not compare fields shared in between type
271 and variant.
272 (lto_read_decls): Fixup types first before inserting into hash.
273
e01fa630
ML
2742014-06-25 Martin Liska <mliska@suse.cz>
275
276 * lto/lto-partition.c (add_references_to_partition): New IPA REF function
277 used.
278 (add_symbol_to_partition_1): Likewise.
279 (lto_balanced_map): Likewise.
280 * lto/lto-symtab.c (lto_cgraph_replace_node): Likewise.
281
aaf8a23e
JH
2822014-06-24 Jan Hubicka <hubicka@ucw.cz>
283
284 * lto.c (mentions_vars_p_decl_non_common): Move DECL_VINDEX check to ..
285 (mentions_vars_p_function): ... here.
286 (compare_tree_sccs_1): Update VINDEX checks.
287 (lto_fixup_prevailing_decls): Likewise.
288
1eb68d2d
TS
2892014-06-24 Trevor Saunders <tsaunders@mozilla.com>
290
291 * lto.c (canonical_type_hash_cache): Use hash_map instead of
292 pointer_map.
293
c203e8a7
TS
2942014-06-24 Trevor Saunders <tsaunders@mozilla.com>
295
296 * lto.c: Adjust.
297
714c800f
JH
2982014-06-20 Jan Hubicka <hubicka@ucw.cz>
299
300 * lto-symtab.c (lto_varpool_replace_node): Report TLS model conflicts.
301
569b1784
JH
3022014-06-20 Jan Hubicka <hubicka@ucw.cz>
303
304 * lto.c (compare_tree_sccs_1): Do not compare priorities.
305
56363ffd
JH
3062014-06-15 Jan Hubicka <hubicka@ucw.cz>
307
308 * lto.c (compare_tree_sccs_1): Do not compare DECL_TLS_MODEL.
309
e257a17c
JH
3102014-06-10 Jan Hubicka <hubicka@ucw.cz>
311
312 * lto.c (read_cgraph_and_symbols): Remove unreachable symbols.
313 (do_whole_program_analysis): Use verify_symtab.
314
24d047a3
JH
3152014-06-07 Jan Hubicka <hubicka@ucw.cz>
316
317 * lto.c (mentions_vars_p_decl_with_vis, compare_tree_sccs_1,
318 lto_fixup_prevailing_decls): Skip section names.
319
9b2b7279
AM
3202014-06-02 Andrew MacLeod <amacleod@redhat.com>
321
322 * lto-symtab.c: Include builtins.h.
323
a9243bfc
RB
3242014-05-26 Richard Biener <rguenther@suse.de>
325
326 * lto.c (lto_parse_hex): Use int64_t.
327 (lto_resolution_read): Likewise.
328
fd1e9302
JH
3292014-05-23 Jan Hubicka <hubicka@ucw.cz>
330
331 * lto.c (read_cgraph_and_symbols): Grow ggc memory after streaming.
332
aede2c10
JH
3332014-05-23 Jan Hubicka <hubicka@ucw.cz>
334
335 * lto-symtab.c (lto_symtab_merge_symbols): Update code setting
336 symtab pointer.
337 * lto.c (compare_tree_sccs_1): Do not compare comdat groups.
338
f6a7cffc
TS
3392014-05-22 Thomas Schwinge <thomas@codesourcery.com>
340
341 * lto-lang.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
342 (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
343 (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
344
4000360e
BS
3452012-05-22 Bernd Schmidt <bernds@codesourcery.com>
346
347 * lto-object.c: Include "lto-section-names.h".
348 (LTO_SEGMENT_NAME): Don't define.
349 * lto.c: Include "lto-section-names.h".
350
b9559136
JH
3512014-05-17 Jan Hubicka <hubicka@ucw.cz>
352
353 PR lto/61012
354 * lto-symtab.c (lto_symtab_merge_decls_1): Do not ICE on undefined externals
355 mixed with variables.
356
766090c2
TS
3572014-05-17 Trevor Saunders <tsaunders@mozilla.com>
358
359 * lto-tree.h: Don't use variable_size gty attribute.
360 * lto.c (lto_read_in_decl_state): Adjust.
361 (create_subid_section_table): Likewise.
362 (lto_flatten_files): Likewise.
363 (read_cgraph_and_symbols): Likewise.
364
1d60af08
KZ
3652014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
366 Mike Stump <mikestump@comcast.net>
367 Richard Sandiford <rdsandiford@googlemail.com>
368
369 * lto.c (compare_tree_sccs_1): Use wide-int interfaces.
370 * lto-lang.c (get_nonnull_operand): Likewise.
371
22869a37
RB
3722014-04-28 Richard Biener <rguenther@suse.de>
373
374 PR middle-end/60092
375 * lto-lang.c: Define flag_isoc11.
376
7de90a6c
DM
3772014-04-23 David Malcolm <dmalcolm@redhat.com>
378
379 * lto-partition.c (add_references_to_partition): Update for
380 removal of implicit pointer from the is-a.h API.
381 (add_symbol_to_partition_1): Likewise.
382 (contained_in_symbol): Likewise.
383 (undo_partition): Likewise.
384 (lto_balanced_map): Likewise.
385 (promote_symbol): Likewise.
386 * lto-symtab.c (lto_symtab_merge_symbols_1): Likewise.
387 (lto_symtab_merge_symbols): Likewise.
388 * lto.c (lto_wpa_write_files): Likewise.
389
783dab6b
RB
3902014-04-15 Richard Biener <rguenther@suse.de>
391
392 * lto.c: Include params.h.
393 (do_whole_program_analysis): Switch on flag_lto_partition value,
394 add support for LTO_PARTITION_ONE.
395 * lto-partition.h (lto_balanced_map): Adjust.
396 * lto-partition.c (lto_balanced_map): Get number of desired
397 partitions as argument to support -flto-partition=one.
398
cb90235d
JH
3992014-04-14 Jan Hubicka <hubicka@ucw.cz>
400
401 * lto/lto-symtab.c (lto_cgraph_replace_node): Don't re-merge
402 tp_first_run.
403
bbe281da
JH
4042014-03-19 Jan Hubicka <hubicka@ucw.cz>
405
406 * lto.c: Include ipa-inline.h
407 (do_whole_program_analysis): Free inline summary after partitioning.
408
ce2f49b3
RB
4092014-03-19 Richard Biener <rguenther@suse.de>
410
411 PR middle-end/60553
412 * lto-tree.h (lang_tree_node): For types use TYPE_NEXT_VARIANT
413 instead of TREE_CHAIN as chain_next.
414
e41106fc
RB
4152014-03-19 Richard Biener <rguenther@suse.de>
416
417 * lto.c (lto_wpa_write_files): Move call to
418 lto_promote_cross_file_statics ...
419 (do_whole_program_analysis): ... here, into the partitioning
420 block. Do not ggc_collect after lto_wpa_write_files but
421 for a last time before it.
422
15df2655
JJ
4232014-03-19 Jakub Jelinek <jakub@redhat.com>
424
425 PR lto/60571
426 * lto.c (wait_for_child): Define WCONTINUED if not defined to 0.
427 Fix formatting.
428
415e2e6b
JJ
4292014-03-18 Jakub Jelinek <jakub@redhat.com>
430
431 PR sanitizer/60535
432 * lto-lang.c (lto_init): Add NAME_TYPE for int128_integer_type_node
433 and complex_{float,{,long_}double}_type_node.
434
f42c637e
PM
4352014-03-08 Paulo Matos <paulo@matos-sorge.com>
436
415e2e6b
JJ
437 * lto-lang.c (lto_init): Pass flag_short_double to
438 build_common_tree_nodes.
f42c637e 439
6dab804d
JH
4402014-02-14 Jan Hubicka <hubicka@ucw.cz>
441
442 PR lto/60295
443 * lto.c (stream_out): Avoid parallel streaming with
444 -flto=jobserver until we are able to throttle it down
445 resonably.
446
39434bce
JH
4472014-02-14 Jan Hubicka <hubicka@ucw.cz>
448
449 * lto-partition.c (add_symbol_to_partition_1,
450 undo_partition, lto_balanced_map): Aliases have no
451 defined size.
452 (lto_balanced_map): Do not follow refering variables
453 if they can be optimized out.
454
1966fd99
RB
4552014-02-14 Richard Biener <rguenther@suse.de>
456
457 PR lto/60179
458 * lto.c (compare_tree_sccs_1): Do not compare
459 DECL_FUNCTION_SPECIFIC_TARGET.
460 (lto_read_decls): Re-build DECL_FUNCTION_SPECIFIC_TARGET.
461
283416b3
RB
4622014-02-12 Richard Biener <rguenther@suse.de>
463
464 PR lto/60060
465 * lto-lang.c (lto_write_globals): Do not call
466 wrapup_global_declarations or emit_debug_global_declarations
467 but emit debug info for non-function scope variables
468 directly.
469
b7e85694
JH
4702014-02-06 Jan Hubicka <hubicka@ucw.cz>
471
472 * lto.c (unify_scc): Free CONSTRUCTOR_ELTS.
473
96451279
JH
4742014-02-06 Jan Hubicka <hubicka@ucw.cz>
475
476 PR ipa/59469
477 * lto-partition.c (symbol_class): Move to cgraph.h
478 (get_symbol_class): Move to symtab.c
479 (add_references_to_partition, add_symbol_to_partition_1,
480 lto_max_map, lto_1_to_1_map, lto_balanced_map,
481 lto_promote_cross_file_statics): Update.
482
f300e7b8
JH
4832014-02-05 Jan Hubicka <hubicka@ucw.cz>
484
485 * lto.c (lto_parallelism): New static var.
486 (do_stream_out, wait_for_child, stream_out): New static functions.
487 (lto_wpa_write_files): Add support for parallel streaming.
488 (do_whole_program_analysis): Set parallelism.
489 * lang.opt (fwpa): Add parameter.
490 * lto-lang.c (lto_handle_option): Handle flag_wpa.
491 (lto_init): Update use of flag_wpa.
492 * lto-streamer.h (asm_nodes_output): Declare.
493
f0f91770
RB
4942014-02-05 Richard Biener <rguenther@suse.de>
495
496 * lto.h (lto_global_var_decls): Remove.
497 * lto-lang.c (lto_init): Do not allocate lto_global_var_decls.
498 (lto_write_globals): Do nothing in WPA stage, gather globals from
499 the varpool here ...
500 * lto.c (lto_main): ... not here.
501 (materialize_cgraph): Do not call rest_of_decl_compilation
502 on the empty lto_global_var_decls vector.
503 (lto_global_var_decls): Remove.
504
d665f8dd
JH
5052014-02-04 Jan Hubicka <hubicka@ucw.cz>
506
507 * lto-partition.c (get_symbol_class): Only unforced DECL_ONE_ONLY
508 needs duplicating, not generic COMDAT.
509
c39276b8
RB
5102014-02-04 Richard Biener <rguenther@suse.de>
511
512 PR lto/59723
513 * lto.c (mentions_vars_p): Handle NAMELIST_DECL.
514 (lto_fixup_prevailing_decls): Handle fixing up CONSTRUCTOR values.
515
5f876ae7
JH
5162014-02-04 Jan Hubicka <hubicka@ucw.cz>
517 Markus Trippelsdorf
518
519 PR ipa/59469
520 * lto-symtab.c (lto_cgraph_replace_node, lto_varpool_replace_node):
521 merge force_output and forced_by_abi flags.
522
b72271b9
BI
5232014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
524
525 * lto-lang.c (lto_init): Replaced flag_enable_cilkplus with
526 flag_cilkplus.
527
63124c48
RB
5282014-01-09 Richard Biener <rguenther@suse.de>
529
530 * lto.c (gimple_canonical_types_compatible_p): Fix comment.
531
d05b9920
RB
5322014-01-09 Richard Biener <rguenther@suse.de>
533
534 PR lto/45586
535 * lto.c (hash_canonical_type): Do not hash TREE_ADDRESSABLE,
536 TYPE_ALIGN, TYPE_RESTRICT or TYPE_REF_CAN_ALIAS_ALL.
537 (gimple_canonical_types_compatible_p): Do not compare them either.
538
23a5b65a
RS
5392014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
540
541 Update copyright years
542
2c8326a5
OE
5432013-12-06 Oleg Endo <olegendo@gcc.gnu.org>
544
545 * lto.c: Remove struct tags when referring to class varpool_node.
546 * lto-partition.c: Likewise.
547 * lto-symtab.c: Likewise.
548
e06f9964
JJ
5492013-11-29 Jakub Jelinek <jakub@redhat.com>
550 Richard Biener <rguenther@suse.de>
551
552 PR lto/59326
553 * lto.c (compare_tree_sccs_1): Handle OMP_CLAUSE.
554
c193f58b
JJ
5552013-11-29 Jakub Jelinek <jakub@redhat.com>
556
557 PR lto/59326
558 * lto.c (mentions_vars_p_omp_clause): New function.
559 (mentions_vars_p): Call it for OMP_CLAUSE. Remove break;
560 after return stmts.
561
2fb9a547
AM
5622013-11-22 Andrew MacLeod <amacleod@redhat.com>
563
564 * lto.c: Add required include files from gimple.h.
565 * lto-lang.c: Likewise
566 * lto-object.c: Likewise
567 * lto-partition.c: Likewise
568 * lto-symtab.c: Likewise
569
fec39fa6
TS
5702013-11-18 Trevor Saunders <tsaunders@mozilla.com>
571
572 * lto-partition.c lto-symtab.c lto.c Adjust.
573
d8a2d370
DN
5742013-11-14 Diego Novillo <dnovillo@google.com>
575
576 * lto-lang.c: Include stringpool.h.
577 Include stor-layout.h.
578 * lto-partition.c: Include gcc-symtab.h.
579 * lto.c: Include stor-layout.h.
580
5e20cdc9
DM
5812013-10-31 David Malcolm <dmalcolm@redhat.com>
582
583 Automated part of renaming of symtab_node_base to symtab_node.
584
585 Patch autogenerated by rename_symtab.py from
586 https://github.com/davidmalcolm/gcc-refactoring-scripts
587 revision 58bb219cc090b2f4516a9297d868c245495ee622
588
589 * lto-partition.c (add_symbol_to_partition): Rename
590 symtab_node_base to symtab_node.
591 (get_symbol_class): Likewise.
592 (symbol_partitioned_p): Likewise.
593 (add_references_to_partition): Likewise.
594 (add_symbol_to_partition_1): Likewise.
595 (contained_in_symbol): Likewise.
596 (add_symbol_to_partition): Likewise.
597 (lto_1_to_1_map): Likewise.
598 (lto_max_map): Likewise.
599 (lto_balanced_map): Likewise.
600 (privatize_symbol_name): Likewise.
601 (promote_symbol): Likewise.
602 (may_need_named_section_p): Likewise.
603 (rename_statics): Likewise.
604 (lto_promote_statics_nonwpa): Likewise.
605 * lto-symtab.c (lto_symtab_merge): Likewise.
606 (lto_symtab_resolve_replaceable_p): Likewise.
607 (lto_symtab_symbol_p): Likewise.
608 (lto_symtab_resolve_can_prevail_p): Likewise.
609 (lto_symtab_resolve_symbols): Likewise.
610 (lto_symtab_merge_decls_2): Likewise.
611 (lto_symtab_merge_decls_1): Likewise.
612 (lto_symtab_merge_decls): Likewise.
613 (lto_symtab_merge_symbols_1): Likewise.
614 (lto_symtab_merge_symbols): Likewise.
615 (lto_symtab_prevailing_decl): Likewise.
616 * lto.c (lto_wpa_write_files): Likewise.
617 (read_cgraph_and_symbols): Likewise.
618 (do_whole_program_analysis): Likewise.
619
378cd6b1
DM
6202013-10-30 David Malcolm <dmalcolm@redhat.com>
621
622 * lto-symtab.c (lto_symtab_merge_decls_2): Split symtab_node
623 declarations onto multiple lines to make things easier for
624 rename_symtab.py.
625 (lto_symtab_merge_decls_1): Likewise.
626 (lto_symtab_merge_symbols_1): Likewise.
627
939b37da
BI
6282013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com>
629
630 * Make-lang.in (lto/lto-lang.o): Added cilk.h in dependency list.
631 * lto-lang.c (lto_init): Added a call to cilk_init_builtins if Cilk
632 Plus is enabled.
633
67348ccc
DM
6342013-10-29 David Malcolm <dmalcolm@redhat.com>
635
636 Patch autogenerated by refactor_symtab.py from
637 https://github.com/davidmalcolm/gcc-refactoring-scripts
638 revision 58bb219cc090b2f4516a9297d868c245495ee622
639
640 * lto-partition.c (lto_promote_cross_file_statics): Update for
641 conversion of symtab types to a true class hierarchy.
642 (rename_statics): Likewise.
643 (promote_symbol): Likewise.
644 (privatize_symbol_name): Likewise.
645 (lto_balanced_map): Likewise.
646 (varpool_node_cmp): Likewise.
647 (node_cmp): Likewise.
648 (lto_1_to_1_map): Likewise.
649 (undo_partition): Likewise.
650 (add_symbol_to_partition): Likewise.
651 (contained_in_symbol): Likewise.
652 (add_symbol_to_partition_1): Likewise.
653 (add_references_to_partition): Likewise.
654 (symbol_partitioned_p): Likewise.
655 (get_symbol_class): Likewise.
656 (lto_max_map): Likewise.
657 * lto-symtab.c (lto_symtab_prevailing_decl): Likewise.
658 (lto_symtab_merge_symbols): Likewise.
659 (lto_symtab_merge_symbols_1): Likewise.
660 (lto_symtab_merge_decls): Likewise.
661 (lto_symtab_merge_decls_1): Likewise.
662 (lto_symtab_merge_decls_2): Likewise.
663 (lto_symtab_resolve_symbols): Likewise.
664 (lto_symtab_resolve_can_prevail_p): Likewise.
665 (lto_symtab_symbol_p): Likewise.
666 (lto_symtab_resolve_replaceable_p): Likewise.
667 (lto_symtab_merge): Likewise.
668 (lto_varpool_replace_node): Likewise.
669 (lto_cgraph_replace_node): Likewise.
670 * lto.c (lto_main): Likewise.
671 (do_whole_program_analysis): Likewise.
672 (materialize_cgraph): Likewise.
673 (read_cgraph_and_symbols): Likewise.
674 (cmp_partitions_order): Likewise.
675 (lto_materialize_function): Likewise.
676 (has_analyzed_clone_p): Likewise.
677
8e9055ae
AM
6782013-10-29 Andrew MacLeod <amacleod@redhat.com>
679
680 * lto/lto-object.c: Add gimple.h to include list.
681 * lto/lto-partition.c: Likewise.
682
377d9792
AM
6832013-10-18 Andrew MacLeod <amacleod@redhat.com>
684
685 * lto.c: Remove tree-flow.h from include list.
686
fffda8d7
RB
6872013-10-15 Richard Biener <rguenther@suse.de>
688
689 * lto.c (hash_canonical_type): Split out from ...
690 (iterative_hash_canonical_type): ... here. Register types
691 we recurse to.
692 (gimple_canonical_type_hash): Adjust.
693 (gimple_register_canonical_type_1): Split out from ...
694 (gimple_register_canonical_type): ... here. Cache computed
695 hash value.
696 (lto_register_canonical_types): Split into two modes,
697 clearing and computing TYPE_CANONICAL.
698 (lto_read_decls): Adjust.
699 (read_cgraph_and_symbols): Do two passes over global trees,
700 first clearing then computing TYPE_CANONICAL.
701
1394237e
RB
7022013-10-14 Richard Biener <rguenther@suse.de>
703
704 * lto.c (gimple_canonical_types): Move out-of GC space.
705 (canonical_type_hash_cache): Make a pointer-map.
706 (num_canonical_type_hash_entries, num_canonical_type_hash_queries):
707 New counters.
708 (iterative_hash_canonical_type): Adjust.
709 (read_cgraph_and_symbols): Likewise.
710 (print_lto_report_1): Likewise.
711
0a387eca
RB
7122013-10-14 Richard Biener <rguenther@suse.de>
713
714 * lto.c (gimple_types, type_hash_cache, struct type_pair_d,
715 type_pair_cache, lookup_type_pair, struct sccs, next_dfs_num,
716 gtc_next_dfs_num, compare_type_names_p, gtc_visit,
717 gimple_types_compatible_p_1, gimple_types_compatible_p,
718 visit, iterative_hash_name, struct type_hash_pair,
719 type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash,
720 gimple_type_eq, gimple_register_type, num_not_merged_types,
721 num_not_merged_types_in_same_scc, num_not_merged_types_trees,
722 num_not_merged_types_in_same_scc_trees): Remove old merging code
723 and statistics.
724 (lto_read_decls): Do not run old merging code in parallel.
725 (read_cgraph_and_symbols): Do not init/free old merging
726 data structures.
727 (print_lto_report_1): Do not report differences of old vs. new
728 merging code.
729
83fd5d11
RB
7302013-10-14 Richard Biener <rguenther@suse.de>
731
732 * lto-lang.c (lto_init): Do not re-init canonical types here.
733 (lto_register_canonical_types): Move to ...
734 * lto.c (lto_register_canonical_types): ... here.
735 (gimple_canonical_types, canonical_type_hash_cache,
736 iterative_hash_canonical_type, gimple_canonical_type_hash,
737 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
738 gimple_register_canonical_type): Add canonical type merging machinery
739 moved from gimple.c.
740 (read_cgraph_and_symbols): Init and free canonical type tables
741 here.
742 (print_lto_report_1): Report canonical type table stats here.
743
acf0174b
JJ
7442013-10-11 Jakub Jelinek <jakub@redhat.com>
745
746 * lto-lang.c (DEF_FUNCTION_TYPE_8): Define.
747
7c6fedd2
TT
7482013-09-25 Tom Tromey <tromey@redhat.com>
749
750 * Make-lang.in (LTO_H, LINKER_PLUGIN_API_H, LTO_TREE_H)
751 (lto/lto-lang.o, lto/lto.o, lto/lto-partition.o)
752 (lto/lto-object.o): Remove.
753
35f32ad4
RB
7542013-09-06 Richard Biener <rguenther@suse.de>
755
756 * lto-symtab.c: Move from gcc/
757 * lto.h: Include vec.h.
758 (lto_global_var_decls): Declare.
759 * lto.c (lto_global_var_decls): Move definition here.
760 * Make-lang.in (LTO_OBJS): Add lto-symtab.o.
761 (lto-symtab.o): Add.
762 * config-lang.in (gtfiles): Add lto.h.
763
49322b12
JH
7642013-08-31 Jan Hubicka <jh@suse.cz>
765
766 * lto.c (mentions_vars_p_field_decl, lto_fixup_prevailing_decls):
767 DECL_FIELD_OFFSET can contain an reference to variable.
768
31f1f73b
JH
7692013-08-31 Jan Hubicka <jh@suse.cz>
770
771 * lto.c (tree_with_vars): Turn into vector.
772 (MAYBE_REMEMBER_WITH_VARS): Change to...
773 (CHECK_VAR): ... this one.
774 (CHECK_NO_VAR): New macro.
775 (maybe_remember_with_vars_typed): Turn to ...
776 (mentions_vars_p_typed): ... this one.
777 (maybe_remember_with_vars_common): Turn to ...
778 (mentions_vars_p_comon): ... this one.
779 (maybe_remember_with_vars_decl_minimal): Turn to ...
780 (mentions_vars_p_decl_minmal): ... this one.
781 (maybe_remember_with_vars_decl_common): Turn to ...
782 (mentions_vars_p_decl_common): ... this one.
783 (maybe_remember_with_vars_decl_with_vis): Turn to ...
784 (mentions_vars_p_decl_with_vis): ... this one.
785 (maybe_remember_with_vars_decl_non_common): Turn to ...
786 (mentions_vars_p_decl_non_common): ... this one.
787 (maybe_remember_with_vars_function): Turn to ...
788 (mentions_vars_p_function): ... this one.
789 (maybe_remember_with_vars_field_decl): Turn to ...
790 (mentions_vars_p_field_decl): ... this one.
791 (maybe_remember_with_vars_type): Turn to ...
792 (mentions_vars_p_type): ... this one.
793 (maybe_remember_with_vars_binfo): Turn to ...
794 (mentions_vars_p_binfo): ... this one.
795 (maybe_remember_with_vars_constructor): Turn to ...
796 (mentions_vars_p_constructor): ... this one.
797 (maybe_remember_with_vars_expr): Turn to ...
798 (mentions_vars_p_expr): ... this one.
799 (maybe_remember_with_vars): Turn to ...
800 (mentions_vars_p): ... this one.
801 (lto_read_decls): Update.
802 (LTO_SET_PREVAIL): Do not call function for internal decls.
803 (lto_fixup_prevailing_decls): Update to match mentions_vars_p;
804 check that something was updated.
805 (lto_fixup_state): Do not care about internal decls.
806 (lto_fixup_decls): Update.
807 (read_cgraph_and_symbols): Update.
808
256eefa9
JH
8092013-08-29 Jan Hubicka <jh@suse.cz>
810
811 * lto.c (read_cgraph_and_symbols): Free decl states.
812
0170f33c
JH
8132013-08-29 Jan Hubicka <jh@suse.cz>
814
815 * lto.c (compare_tree_sccs_1): Compare DECL_FINAL_P,
816 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and
817 TYPE_FINAL_P.
818
c01c111b
JH
8192013-08-28 Jan Hubicka <jh@suse.cz>
820
821 * lto.c (compare_tree_sccs_1): Drop DECL_ERROR_ISSUED,
822 DECL_DEFER_OUTPUT and DECL_IN_TEXT_SECTION.
823 (unify_scc): Do checking assert.
824
6a49f3c9
JH
8252013-08-06 Jan Hubicka <jh@suse.cz>
826 Martin Liska <marxin.liska@gmail.com>
827
828 * lto-partition.c (lto_balanced_map): Always base order on
829 source file order.
830
a2e2a668
JH
8312013-08-06 Jan Hubicka <jh@suse.cz>
832
833 * lto.c (lto_materialize_function): Do not read body anymore.
834
815effe1
JH
8352013-08-02 Jan Hubicka <jh@suse.cz>
836
837 * lto.c (lto_materialize_function): Do not push struct function.
838 * lto-partition.c (get_symbol_class): Handle abstracts correctly.
839 (may_need_named_section_p): Even abstract origins may need
840 named section.
841
315f8c0e
DM
8422013-07-30 David Malcolm <dmalcolm@redhat.com>
843
844 * Make-lang.in (lto/lto.o:): Depend on CONTEXT_H and
845 PASS_MANAGER_H.
846
847 * lto.c (do_whole_program_analysis): Update for move of
848 all_regular_ipa_passes from a global to a field of class
849 pass_manager.
850
1aa95df7
OB
8512013-07-21 OndÅ\99ej Bílka <neleai@seznam.cz>
852
853 * lto-partition.c: Fix typos.
854
c525ba9a
JH
8552013-06-20 Jan Hubicka <jh@suse.cz>
856
857 * lto-partition.c (lto_balanced_map): Fix -fno-toplevel-reorder
858 partitioning of variables.
859
7a89ad00
JH
8602013-06-20 Jan Hubicka <jh@suse.cz>
861
862 * lto.c (read_cgraph_and_symbols): Set cgraph state.
863
6a6dac52
JH
8642013-06-19 Jan Hubicka <jh@suse.cz>
865
866 * lto-partition.c (add_references_to_partition): Use
867 ctor_for_folding.
868
ac0511f2
RB
8692013-06-18 Richard Biener <rguenther@suse.de>
870
871 * lto.c (lto_register_var_decl_in_symtab): Pass in cache index
872 and use it.
873 (lto_register_function_decl_in_symtab): Likewise.
874 (cmp_tree): New function.
875 (unify_scc): Instead of using the streamer cache map from entry
876 to cache index match up the two maps we have by sorting them.
877 Adjust calls to lto_register_var_decl_in_symtab and
878 lto_register_function_decl_in_symtab.
879
ee03e71d
RB
8802013-06-17 Richard Biener <rguenther@suse.de>
881
882 * Make-lang.in (lto.o): Add $(DATA_STREAMER_H) dependency.
883 * lto.c: Include data-streamer.h.
884 (lto_read_in_decl_state): Use streamer_tree_cache_get_tree.
885 (gimple_type_leader_entry_s, gimple_type_leader,
886 gimple_lookup_type_leader): Remove.
887 (gtc_visit): Simplify.
888 (gimple_types_compatible_p): Likewise.
889 (gimple_register_type_1): Likewise. Merge into ...
890 (gimple_register_type): ... this. Keep it as legacy for
891 statistics purposes for now.
892 (fixup_integer_cst): Remove.
893 (LTO_FIXUP_TREE, lto_fixup_types, lto_ft_*): Simplify and
894 rename to ...
895 (MAYBE_REMEMBER_WITH_VARS, maybe_remember_with_vars,
896 maybe_remember_with_vars_*): ... these.
897 (uniquify_nodes): Remove.
898 (lto_fixup_prevailing_type): New function.
899 (struct tree_scc, struct tree_scc_hasher): New type and hasher.
900 (tree_scc_hash, tree_scc_hash_obstack): New globals.
901 (num_merged_types, num_prevailing_types, num_not_merged_types,
902 num_not_merged_types_in_same_scc, total_scc_size, num_sccs_read,
903 total_scc_size_merged, num_sccs_merged, num_scc_compares,
904 num_scc_compare_collisions): New global counters.
905 (compare_tree_sccs_1): New function.
906 (compare_tree_sccs): Likewise.
907 (unify_scc): Likewise.
908 (lto_read_decls): Stream in tree SCCs and unify them on the
909 way in. Finalize prevailing SCC tree members.
910 (read_cgraph_and_symbols): Do not initialize or free gimple_type_leader.
911 Allocate and free tree_scc_hash_obstack and tree_scc_hash, do not bother
912 to ggc-collect during merging.
913 (print_lto_report_1): Adjust for new merging code.
914
ca0f62a8
JH
9152013-06-12 Jan Hubicka <jh@suse.cz>
916
917 * lto.c (read_cgraph_and_symbols): Set cgraph into streaming state.
918
bbf9ad07
JH
9192013-06-12 Jan Hubicka <jh@suse.cz>
920
921 * lto.c (register_resolution): Take lto_file_data argument.
922 (lto_register_var_decl_in_symtab,
923 lto_register_function_decl_in_symtab): Update.
924 (read_cgraph_and_symbols): Update resolution_map handling.
925
ecdbd01a 9262013-06-11 Jan Hubicka <jh@suse.cz>
08346abd
JH
927
928 * lto-partition.c (get_symbol_class): Simplify weakref handling.
929 (add_symbol_to_partition_1): Likewise.
930 (contained_in_symbol): Likewise.
931 (lto_balanced_map): Likewise.
932 (rename_statics): Drop weakref.
933
a367df53
RB
9342013-06-05 Richard Biener <rguenther@suse.de>
935
936 * lto.c (num_merged_types): New global variable.
937 (uniquify_nodes): Increase num_merged_types when merging a type.
938 (print_lto_report_1): Output the number of merged types.
939
40a7fe1e
JH
9402013-06-01 Jan Hubicka <jh@suse.cz>
941
942 * lto.c (read_cgraph_and_symbols): Simplify dumping; Replace
943 lto_symtab_merge_cgraph_nodes by lto_symtab_merge_symbols.
944 (do_whole_program_analysis): Update dumping.
945
e70670cf
JH
9462013-05-29 Jan Hubicka <jh@suse.cz>
947
948 * lto.c (has_analyzed_clone_p, lto_materialize_function): Update for new symtab
949 flags.
950 * lto-partition.c (get_symbol_class, lto_balanced_map): Likewise.
951
8ee05051
JH
9522013-05-15 Jan Hubicka <jh@suse.cz>
953
954 * lto-partition.c (privatize_symbol_name): Return true when
955 privatizing happened.
956 (rename_statics): Do not go into infinite loop when privatizing
957 is not needed.
958
427b248d
JM
9592013-05-16 Jason Merrill <jason@redhat.com>
960
961 * Make-lang.in ($(LTO_EXE)): Use link mutex.
962
9de04252
MJ
9632013-05-15 Martin Jambor <mjambor@suse.cz>
964
965 * lto-partition.c (lto_balanced_map): Print symbol order instead
966 of node uids.
967
2d6e4603
JH
9682013-05-15 Jan Hubicka <jh@suse.cz>
969
970 PR lto/57038
971 PR lto/47375
972 * lto-partition.c (get_symbol_class): Fix weakrefs.
973 (lto_balanced_map): Fix weakrefs.
974 (privatize_symbol_name): Remove unnecesary label.
975 (rename_statics): Handle weakrefs as statics.
976
64cfa6c0
JH
9772013-05-09 Jan Hubicka <jh@suse.cz>
978 Richard Biener <rguenther@suse.de>
979
980 * lto.c (lto_register_var_decl_in_symtab): Don't do renaming.
981 (lto_register_var_decl_in_symtab): Likewise.
982 (lto_main): Promote statics.
983 * lto-partition.c (privatize_symbol_name): New function.
984 (promote_symbol): Use it.
985 (may_need_named_section_p): New predicate.
986 (rename_statics): New functions.
987 (lto_promote_cross_file_statics): Simplify; do renaming.
988 (lto_promote_statics_nonwpa): New function.
989 * lto-partition.h (lto_promote_statics_nonwpa): New function.
990
e45cde98
RB
9912013-02-08 Richard Biener <rguenther@suse.de>
992
993 PR lto/56231
994 * lto-lang.c (lto_init): Do not enter a dummy file.
995
6edc3e32
UB
9962013-02-07 Uros Bizjak <ubizjak@gmail.com>
997
998 PR bootstrap/56227
999 * lto.c (lto_resolution_ready): Use %wx instead of
1000 HOST_WIDE_INT_PRINT_HEX_PURE in the argument to internal_error.
1001
ed73881e
RG
10022013-02-04 Richard Guenther <rguenther@suse.de>
1003
1004 PR lto/56168
1005 * lto.c (read_cgraph_and_symbols): Do not call lto_symtab_merge_decls
1006 or lto_fixup_decls at LTRANS time.
1007
a19b1432
JH
10082013-01-09 Jan Hubicka <jh@suse.cz>
1009
1010 PR lto/45375
1011 * lto.c (do_whole_program_analysis): Remove unreachable nodes after IPA.
1012
49c01f87
L
10132012-12-10 H.J. Lu <hongjiu.lu@intel.com>
1014
1015 PR lto/55466
1016 * lto.c (lto_register_var_decl_in_symtab): Don't record static
1017 variables.
1018 (lto_main): Record the global variables if WPA isn't enabled.
1019
6e1aa848
DN
10202012-11-20 Diego Novillo <dnovillo@google.com>
1021 Jakub Jelinek <jakub@redhat.com>
1022
1023 * lto.c: Replace all vec<T, A>() initializers with vNULL.
1024
9771b263
DN
10252012-11-16 Diego Novillo <dnovillo@google.com>
1026
1027 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
1028
1029 * lto-lang.c: Use new vec API in vec.h.
1030 * lto-partition.c: Likewise.
1031 * lto-partition.h: Likewise.
1032 * lto.c: Likewise.
1033
24551b9c
LC
10342012-10-31 Lawrence Crowl <crowl@google.com>
1035
1036 * lto.c (lto_wpa_write_files): Change symtab checking to a checked
1037 down-cast via dyn_cast.
1038 * lto-partition.c (add_symbol_to_partition_1): Likewise.
1039 (undo_partition): Likewise.
1040 (lto_balanced_map): Likewise.
1041 (get_symbol_class): Likewise and via is_a.
1042 (lto_balanced_map): Change symtab checking to is_a.
1043
aec06f6f
RB
10442012-10-12 Richard Biener <rguenther@suse.de>
1045
1046 PR lto/54898
1047 * lto.c (gimple_types_compatible_p_1): Also compare
1048 TYPE_MAIN_VARIANT.
1049 (iterative_hash_gimple_type): Also hash TYPE_MAIN_VARIANT.
1050
0b8c30f9
TB
10512012-10-09 Tobias Burnus <burnus@net-b.de>
1052
1053 * lto-lang.c (lto_register_builtin_type): Avoid useless
1054 decl creation.
1055 * lto-object.c (lto_obj_file_open, lto_obj_file_open): Free memory.
1056
da3202a8
TB
10572012-10-08 Tobias Burnus <burnus@net-b.de>
1058
1059 * lto.c (lto_wpa_write_files, read_cgraph_and_symbols):
1060 Free lto_file struct after closing the file.
1061
2512a443
JH
10622012-10-08 Jan Hubicka <jh@suse.cz>
1063
1064 * lto/lto.c (remember_with_vars): Also fixup INTEGER_CST.
1065 (fixup_integer_cst): New functoin.
1066 (lto_ft_type): Fixup BASETYPE of methods and offsets.
1067
e75f8f79
JH
10682012-10-07 Jan Hubicka <jh@suse.cz>
1069
1070 * lto.c (read_cgraph_and_symbols): Release type merging hash early;
1071 release input encoders.
1072 * lto-partition.c (new_partition): Update for new lto_symtab_encoder_new.
1073
46591697
JH
10742012-10-06 Jan Hubicka <jh@suse.cz>
1075
1076 PR lto/54790
1077 * lto.c (resolution_map): New static var.
1078 (register_resolution): New function.
1079 (lto_register_var_decl_in_symtab): Use it.
1080 (read_cgraph_and_symbols): Copy resolutions into the symtab.
1081
af16bc76
MJ
10822012-09-20 Martin Jambor <mjambor@suse.cz>
1083
1084 * lto.c (lto_materialize_function): Call push_struct_function and
1085 pop_cfun.
1086
5368224f
DC
10872012-09-19 Dehao Chen <dehao@google.com>
1088
1089 * lto/lto.c (lto_fixup_prevailing_decls): Remove tree.exp.block field.
1090
b5493fb2
JH
10912012-09-19 Jan Hubicka <jh@suse.cz>
1092
1093 * lto.c (lto_materialize_function): Update confused comment.
1094 (read_cgraph_and_symbols): Do not free symtab.
1095
c3c445e1
JH
10962012-09-12 Jan Hubicka <jh@suse.cz>
1097
1098 * lto.c (do_whole_program_analysis): Care timevars, statistics and
1099 AUX pointer cleaning. Add max partitioning.
1100 * lto-partition.c (enum symbol_class): New.
1101 (get_symbol_class): New function.
1102 (symbol_partitioned_p): New function.
1103 (add_references_to_partition): Remove.
1104 (add_aliases_to_partition): Remove.
1105 (add_cgraph_node_to_partition_1): Remove.
1106 (add_cgraph_node_to_partition): Remove.
1107 (add_symbol_to_partition): New function.
1108 (add_symbol_to_partition_1): New function.
1109 (contained_in_symbol): New function.
1110 (partition_cgraph_node_p): Remove.
1111 (partition_varpool_node_p): Remove.
1112 (partition_symbol_p): Remove.
1113 (lto_1_to_1_map): Cleanup.
1114 (lto_max_map): New.
1115 (lto_balanced_map): Update.
1116 (lto_promote_cross_file_statics): Update.
1117 * lto-partition.h (lto_max_map): Declare.
1118 * timevar.def (TV_WHOPR_PARTITIONING): New timevar.
1119
b5c7cdfb
JH
11202012-09-11 Jan Hubicka <jh@suse.cz>
1121
1122 PR lto/54312
1123 * lto.c (uniquify_nodes): Remove quadratic loop checking if the
1124 type is variant leader.
1125
b29402f0
RG
11262012-09-11 Richard Guenther <rguenther@suse.de>
1127
1128 * lto.c (enum gtc_mode): Remove.
1129 (struct type_pair_d): Adjust.
1130 (lookup_type_pair): Likewise.
1131 (gimple_type_leader): Do not mark as deletable.
1132 (gimple_lookup_type_leader): Adjust.
1133 (gtc_visit): Likewise.
1134 (gimple_types_compatible_p_1): Likewise.
1135 (gimple_types_compatible_p): Likewise.
1136 (gimple_type_hash): Likewise.
1137 (gimple_register_type): Likewise.
1138 (read_cgraph_and_symbols): Manage lifetime of tables
1139 here.
1140
b8f4e58f
RG
11412012-09-11 Richard Guenther <rguenther@suse.de>
1142
1143 * lto.c (gimple_types, type_hash_cache, enum gtc_mode,
1144 struct type_pair_d, lookup_type_pair, struct sccs,
1145 next_dfs_num, gtc_next_dfs_num, struct gimple_type_leader_entry_s,
1146 gimple_type_leader, gimple_lookup_type_leader, compare_type_names_p,
1147 gtc_visit, gimple_types_compatible_p_1, gimple_types_compatible_p,
1148 visit, iterative_hash_name, struct type_hash_pair,
1149 type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash,
1150 gimple_type_eq, gimple_register_type_1, gimple_register_type):
1151 Move here from gimple.c
1152 (read_cgraph_and_symbols): Free hash tables here.
1153 (print_lto_report_1): New function wrapping print_lto_report.
1154 (do_whole_program_analysis): Call it.
1155 (lto_main): Likewise.
1156
1cdbb3f9
JH
11572012-09-10 Jan Hubicka <jh@suse.cz>
1158
1159 * lto-partition.c (partition_symbol_p): Forward declare.
1160 (add_references_to_partition): Reimplement using partition_symbol_p.
1161 (add_aliases_to_partition): Break out from add_references_to_partition;
1162 reimplement using partition_symbol_p.
1163 (add_cgraph_node_to_partition_1): Handle callees using partition_symbol_p;
1164 add sanity checks.
1165 (add_varpool_node_to_partition): Use add_aliases_to_partition.
1166 (partition_varpool_node_p): Do not special case aliases.
1167
b4661bfe
JH
11682012-08-12 Jan Hubicka <jh@suse.cz>
1169
1170 * lto.c (lto_wpa_write_files): Do not delete partition encoder;
1171 it is deleted after streaming.
1172 * lto-partition.c (partition_symbol_p): New function.
1173 (promote_var, promote_fn): Remove.
1174 (promote_symbol): New function.
1175 (lto_promote_cross_file_statics): First compute boundaries; rewrite
1176 to lookup the actual boundaries instead of computing them ad-hoc.
1177
7b99cca4
JH
11782012-08-12 Jan Hubicka <jh@suse.cz>
1179
1180 Replace cgraph_node_set and varpool_node_set by symtab_node_encoder
1181 in partitioning.
1182 * lto-partition.h (ltrans_partition_def): Replace cgraph_set and varpool_set
1183 by encoder.
1184 * lto-partition.c (new_partition): Update.
1185 * lto.c (cmp_partitions_order): Update.
1186 (lto_wpa_write_files): Update.
1187 (free_ltrans_partitions): Update.
1188 (add_references_to_partition): Update.
1189 (add_cgraph_node_to_partition_1): Update.
1190 (add_cgraph_node_to_partition): Update.
1191 (add_varpool_node_to_partition): Update.
1192 (undo_partition): Update.
1193 (lto_balanced_map): Update.
1194 (set_referenced_from_other_partition_p, set_reachable_from_other_partition_p,
1195 set_referenced_from_this_partition_p): Update.
1196 (lto_promote_cross_file_statics): Update.
1197
f27c1867
JH
11982012-08-12 Jan Hubicka <jh@suse.cz>
1199
1200 * lto-partition.c (set_referenced_from_other_partition_p,
1201 set_reachable_from_other_partition_p, set_referenced_from_this_partition_p):
1202 New functions.
1203 (lto_promote_cross_file_statics): Use them.
1204
ab96cc5b
JH
12052012-07-24 Jan Hubicka <jh@suse.cz>
1206
1207 * lto.c (read_cgraph_and_symbols): Use input_symtab.
1208
0229aee9
UB
12092012-07-24 Uros Bizjak <ubizjak@gmail.com>
1210
1211 * lto-tree.h (lang_decl): Add variable_size GTY option.
1212
7ee2468b
SB
12132012-07-16 Steven Bosscher <steven@gcc.gnu.org>
1214
1215 * lto.c: Do not include timevar.h.
1216 * Make-lang.in: Fix dependencies.
1217
a910399d
LC
12182012-06-18 Lawrence Crowl <crowl@google.com>
1219
1220 * lto.c (do_whole_program_analysis): Rename use of TV_PHASE_CGRAPH to
1221 TV_PHASE_OPT_GEN. Use new timevar TV_PHASE_STREAM_OUT around the call
1222 to lto_wpa_write_files.
1223 (lto_main): Rename use of TV_PHASE_CGRAPH to TV_PHASE_OPT_GEN. Move
1224 start of TV_PHASE_OPT_GEN to include call to materialize_cgraph. Use
1225 TV_PHASE_SETUP for the call to lto_init. Use new timevar
1226 TV_PHASE_STREAM_IN around the call to read_cgraph_and_symbols.
1227 Turn TV_PHASE_PARSING off then back on again, because LTO is pretending
1228 to be a front end, but is not one.
1229
877ab5e9
JH
12302012-05-18 Jan Hubicka <jh@suse.cz>
1231
1232 * lto.c (lto_materialize_constructors_and_inits): Remove.
1233 (read_cgraph_and_symbols): Remove handling of alias pairs.
1234
6649df51
JH
12352012-05-17 Jan Hubicka <jh@suse.cz>
1236
1237 * lto-partition.c (add_references_to_partition): Handle external vars.
1238 (partition_varpool_node_p): Likewise.
1239 (lto_promote_cross_file_statics): Do not promote externals.
1240
d1ede5f4
BS
12412012-05-14 Bernd Schmidt <bernds@codesourcery.com>
1242
1243 * lto-lang.c (handle_fnspec_attribute): New static function.
1244 (lto_attribute_table): Add "fn spec".
1245 (DEF_ATTR_STRING): Define and undefine along with the other macros.
1246
0d6bf48c
JH
12472012-05-04 Jan Hubicka <jh@suse.cz>
1248
1249 * lto.c (do_whole_program_analysis): Set timevars correctly.
1250 (lto_main): Likewise.
d1ede5f4 1251
1d67dde8
RB
12522012-05-04 Richard Guenther <rguenther@suse.de>
1253
1254 * lang.opt (fwpa): Do not mark as Optimization.
1255 (fltrans): Likewise.
1256
65d630d4
JH
12572012-04-30 Jan Hubicka <jh@suse.cz>
1258
1259 * lto.c (lto_main): Use compile ().
1d67dde8
RB
1260 * lto-partition.c (partition_cgraph_node_p): Use
1261 symtab_used_from_object_file_p.
65d630d4
JH
1262 (partition_varpool_node_p): Likewise.
1263
ead84f73
JH
12642012-04-20 Jan Hubicka <jh@suse.cz>
1265
1266 * lto-partition.c (partition_cgraph_node_p): Use force_output.
1267
5932a4d4
JH
12682012-04-18 Jan Hubicka <jh@suse.cz>
1269
1270 * lto-partition.c (add_references_to_partition, lto_balanced_map):
1271 Update for new ipa-ref API.
1272
65c70e6b
JH
12732012-04-16 Jan Hubicka <jh@suse.cz>
1274
1275 * lto.c (read_cgraph_and_symbols): Use FOR_EACH
1276 walkers to walk cgraph and varpool.
1277 (materialize_cgraph): Likewise.
1278 * lto-partition.c (lto_1_to_1_map): Likewise.
1279 (lto_balanced_map): Likewise.
1280 (lto_promote_cross_file_statics): Likewise.
1281
960bfb69
JH
12822012-04-14 Jan Hubicka <jh@suse.cz>
1283
1284 * lto.c: Update field referenced for new cgraph/varpool layout.
1285 * lto-partition.c: Likewise.
1286
a66dc285
JH
12872012-04-11 Jan Hubicka <jh@suse.cz>
1288
1289 * lto.c: Update copyright; remove params.h, ipa-inline.h
1290 and ipa-utils.h inlines; inline lto-partition.h
1291 (ltrans_partition_def, ltrans_partition, add_cgraph_node_to_partition,
1292 add_varpool_node_to_partition, new_partition, free_ltrans_partitions,
1293 add_references_to_partition, add_cgraph_node_to_partition_1,
1294 add_cgraph_node_to_partition, add_varpool_node_to_partition,
1295 undo_partition, partition_cgraph_node_p, partition_varpool_node_p,
1296 lto_1_to_1_map, node_cmp, varpool_node_cmp, lto_balanced_map,
1297 promote_var, promote_fn, lto_promote_cross_file_statics): move to...
1298 * lto-partition.c: ... here; new file.
1299 * lto-partition.h: New file.
1300 * Make-lang.in (lto.o): Update dependencies.
1301 (lto-partition.o): New.
1302
f3b249e5
RG
13032012-04-05 Richard Guenther <rguenther@suse.de>
1304
1305 * lto-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Remove
1306 definition.
1307
21fa2faf
RG
13082012-03-12 Richard Guenther <rguenther@suse.de>
1309
1310 * lto-lang.c (builtin_type_for_size): Use lto_type_for_size.
1311
6bb485a3
RG
13122012-03-06 Richard Guenther <rguenther@suse.de>
1313
1314 PR lto/52097
1315 * lto.c (uniquify_nodes): Merge TYPE_FIELDS of variant types.
1316
95510497
RG
13172012-02-28 Richard Guenther <rguenther@suse.de>
1318
1319 PR lto/52400
1320 * lto.c (lto_register_function_decl_in_symtab): Do not register
1321 a reverse renamed decl mapping.
1322
09228fef
JJ
13232012-01-06 Jakub Jelinek <jakub@redhat.com>
1324
1325 PR lto/51774
1326 * lto-lang.c (handle_returns_twice_attribute): New function.
1327 (lto_attribute_table): Add returns_twice attribute.
1328
b03eda0d
RG
13292011-12-21 Richard Guenther <rguenther@suse.de>
1330
1331 * lto.c (GIMPLE_REGISTER_TYPE): New define.
1332 (LTO_FIXUP_TREE): Use it.
1333 (uniquify_nodes): Mark new non-prevailing types and avoid
1334 calling gimple_register_type on others.
1335 (lto_read_decls): Add comment.
1336
4ad9a9de
EB
13372011-12-13 Eric Botcazou <ebotcazou@adacore.com>
1338
1339 * lto.h (lto_parse_hex): Delete.
1340 * lto.c (lto_read_decls): Use 'int' for offsets.
1341 (lto_parse_hex): Make static and return proper 64-bit host type.
1342 (lto_resolution_read): Use proper 64-bit host type.
1343
ea973bad
RG
13442011-12-13 Richard Guenther <rguenther@suse.de>
1345
1346 PR lto/48354
1347 * lto.c (lto_ft_decl_non_common): When we merged DECL_ORIGINAL_TYPE
1348 with the type of the TYPE_DECL clear DECL_ORIGINAL_TYPE.
1349
c8218030
UB
13502011-12-01 Uros Bizjak <ubizjak@gmail.com>
1351
1352 * lto-lang.c (lto_attribute_table): Handle *tm regparm.
1353 (ignore_attribute): New.
1354
57ac2606
AH
13552011-11-21 Aldy Hernandez <aldyh@redhat.com>
1356
1357 * lto-lang.c (lto_attribute_table): Handle transaction_pure.
1358 (handle_transaction_pure_attribute): New.
1359
52a35ef7
RG
13602011-11-03 Richard Guenther <rguenther@suse.de>
1361
1362 PR lto/44965
1363 * lto-lang.c (lto_post_options): Do not read file options.
1364 * lto.c (lto_read_all_file_options): Remove.
1365 (lto_init): Call lto_set_in_hooks here.
1366
51973b1e
JH
13672011-10-09 Jan Hubicka <jh@suse.cz>
1368
1369 * lto.c (node_cmp, varpool_node_cmp): New functions.
1370 (lto_balanced_map): Honnor -fno-toplevel-reorder of vars&functions.
1371 (cmp_partitions): Rename to ...
1372 (cmp_partitions_size): ... this one.
1373 (cmp_partitions_order): New function.
1374 (lto_wpa_write_files): Sort partitions by order when
1375 -fno-toplevel-reorder is used.
1376
5958009b
AK
13772011-10-09 Andi Kleen <ak@linux.intel.com>
1378
1379 * lto.c (lto_section_read): Call fatal_error on IO or mmap errors.
1380
e79983f4
MM
13812011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
1382
1383 * lto-lang.c (def_builtin_1): Delete old interface with two
1384 parallel arrays to hold standard builtin declarations, and replace
1385 it with a function based interface that can support creating
1386 builtins on the fly in the future. Change all uses, and poison
1387 the old names. Make sure 0 is not a legitimate builtin index.
1388
ecdbd01a 13892011-10-02 Andi Kleen <ak@linux.intel.com>
c17d253c
AK
1390
1391 * lto-object.c (lto_obj_add_section_data): Add list.
1392 (lto_obj_add_section): Fill in list.
1393 (ltoobj_build_section_table): Pass through list.
1394 * lto.c (file_data_list): Declare.
1395 (create_subid_section_table): Pass arguments directly.
1396 Fill in list of file_datas.
1397 (lwstate): Delete.
1398 (lto_create_files_from_ids): Pass in direct arguments.
1399 Don't maintain list.
1400 (lto_file_read): Use explicit section and file data lists.
1401 (lto_read_all_file_options): Pass in section_list.
1402 * lto.h (lto_obj_build_section_table): Add list.
1403 (lto_section_slot): Add next.
1404 (lto_section_list): Declare.
1405
ed0d2da0
JH
14062011-10-02 Jan Hubicka <jh@suse.cz>
1407
1408 PR lto/47247
1409 * common.c (lto_resolution_str): Add new resolution.
1410 * common.h (lto_resolution_str): Likewise.
1411
ad7715f3
L
14122011-09-30 H.J. Lu <hongjiu.lu@intel.com>
1413 Andi Kleen <ak@linux.intel.com>
1414
1415 PR lto/50568
1416 * lto.c (lto_splay_tree_delete_id): New.
1417 (lto_splay_tree_compare_ids): Likewise.
1418 (lto_splay_tree_lookup): Likewise.
1419 (lto_splay_tree_id_equal_p): Likewise.
1420 (lto_splay_tree_insert): Likewise.
1421 (lto_splay_tree_new): Likewise.
1422 (lto_resolution_read): Change id to unsigned HOST_WIDE_INT.
1423 Use lto_splay_tree_id_equal_p and lto_splay_tree_lookup.
1424 (create_subid_section_table): Use lto_splay_tree_lookup and
1425 lto_splay_tree_insert.
1426 (lto_file_read): Use lto_splay_tree_new.
1427
ecdbd01a 14282011-09-26 Andi Kleen <ak@linux.intel.com>
dde8b360
AK
1429
1430 * lto.c (lto_resolution_read): Remove id dumping.
1431 (lto_section_with_id): Turn id HOST_WIDE_ID.
1432 (create_subid_section_table): Dito.
1433
892a371f
DS
14342011-08-28 Dodji Seketeli <dodji@redhat.com>
1435
1436 * lto-lang.c (lto_init): Likewise. Also, avoid calling
1437 linemap_add twice.
1438
f82d1a94
MJ
14392011-08-11 Martin Jambor <mjambor@suse.cz>
1440
1441 * lto.c (uniquify_nodes): Use main variant's BINFO too.
1442
f0efc7aa
DN
14432011-08-08 Diego Novillo <dnovillo@google.com>
1444
1445 * Make-lang.in (lto/lto.o): Add TREE_STREAMER_H.
1446 * lto.c: Include tree-streamer.h.
1447
1a072294
RG
14482011-07-06 Richard Guenther <rguenther@suse.de>
1449
1450 * lto-lang.c (lto_init):
1451 Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
1452
7496868d
JH
14532011-06-11 Jan Hubicka <jh@suse.cz>
1454
10f13f22 1455 PR lto/48246
7496868d
JH
1456 * lto.c (lto_1_to_1_map): Don't create empty partitions.
1457 (lto_balanced_map): Likewise.
1458
39e2db00
JH
14592011-06-11 Jan Hubicka <jh@suse.cz>
1460
1461 * lto.c (add_cgraph_node_to_partition_1): Break out from ...
1462 (add_cgraph_node_to_partition) ... here; walk aliases.
1463 (lto_1_to_1_map): Remove same body alias code.
1464 (promote_fn): Likewise.
1465 (lto_promote_cross_file_statics): Update comment.
1466
1467
28628ea6
DN
14682011-06-07 Diego Novillo <dnovillo@google.com>
1469
1470 * lto.c (uniquify_nodes): Move code to register decls to
1471 the loop that computes canonical types.
1472
009db074
RG
14732011-06-07 Richard Guenther <rguenther@suse.de>
1474
1475 * lto-lang.c (lto_init): Do not set
1476 size_type_node or call set_sizetype.
1477
47c79d56
DN
14782011-06-04 Diego Novillo <dnovillo@google.com>
1479
1480 * lto.c (lto_init): New.
1481 (lto_main): Call it.
1482
d5828cc7
DN
14832011-06-03 Diego Novillo <dnovillo@google.com>
1484
1485 * lto.c (get_resolution): Move from lto-streamer-in.c.
1486 (lto_register_var_decl_in_symtab): Likewise.
1487 (lto_register_function_decl_in_symtab): Likewise.
1488 (uniquify_nodes): Call lto_register_var_decl and
1489 lto_register_function_decl_in_symtab after reading a new
1490 VAR_DECL or FUNCTION_DECL.
1491
6807da97
RG
14922011-06-01 Richard Guenther <rguenther@suse.de>
1493
1494 * lto-lang.c (lto_register_canonical_types): New function.
1495 (lto_init): Register common nodes with the canonical type machinery.
1496 Do not play tricks with char_type_node.
1497
d74be317
RG
14982011-05-26 Richard Guenther <rguenther@suse.de>
1499
1500 * lto.c (uniquify_nodes): Fix bug in one of the previous changes.
1501
d9f8303f
NF
15022011-05-25 Nathan Froyd <froydnj@codesourcery.com>
1503
1504 * lto.c (lto_ft_typed): New function.
1505 (lto_ft_common): Call it.
1506 (lto_ft_constructor): Likewise.
1507 (lto_ft_expr): Likewise.
1508 (lto_fixup_prevailing_decls): Check for TS_COMMON before accessing
1509 TREE_CHAIN.
1510
fb291a1e
RG
15112011-05-20 Richard Guenther <rguenther@suse.de>
1512
1513 * lto.c (lto_ft_common): Remove pointer-to chain teardown.
1514 (lto_ft_type): Move main-variant and pointer-to chain building ...
1515 (uniquify_nodes): ... here. Compute TYPE_CANONICAL also here,
1516 in a separate final loop.
1517
31b3ca64
RG
15182011-05-19 Richard Guenther <rguenther@suse.de>
1519
1520 * lto.c (uniquify_nodes): First register all types before
1521 fixing up the tree SCC.
1522
35d828c5
JH
15232011-05-11 Jan Hubicka <jh@suse.cz>
1524
1525 PR lto/48952
1526 * lto.c (do_whole_program_analysis): Do not register cgraph hooks.
1527
51545682
NF
15282011-05-11 Nathan Froyd <froydnj@codesourcery.com>
1529
1530 * lto.c (lto_ft_type): Use TYPE_MINVAL and TYPE_MAXVAL. Adjust
1531 location of binfo field.
1532 (lto_fixup_prevailing_decls): Likewise.
1533
8242dd04
NF
15342011-05-10 Nathan Froyd <froydnj@codesourcery.com>
1535
1536 * lto-lang.c (def_fn_type): Don't call build_function_type, call
1537 build_function_type_array or build_varargs_function_type_array
1538 instead.
1539
c99c0026
EB
15402011-05-07 Eric Botcazou <ebotcazou@adacore.com>
1541
1542 * lto-lang.c (global_bindings_p): Return bool.
1543
c47d0034
JH
15442011-05-07 Jan Hubicka <jh@suse.cz>
1545
a9bcb3f0
EB
1546 * lto.c (lto_materialize_function): Use
1547 cgraph_function_with_gimple_body_p.
1548 (add_cgraph_node_to_partition): Do not re-add items to partition;
1549 handle thunks.
c47d0034
JH
1550 (add_varpool_node_to_partition): Do not re-add items to partition.
1551
bb3398ca
JH
15522011-05-03 Jan Hubicka <jh@suse.cz>
1553
1554 * lto.c (free_ltrans_partitions): Fix accidental commit.
1555
1cb1a99f
JH
15562011-05-03 Jan Hubicka <jh@suse.cz>
1557
1558 * lto.c (ltrans_partition_def): Remove GTY annotations.
1559 (ltrans_partitions): Move to heap.
1560 (new_partition): Update.
1561 (free_ltrans_partitions): New function.
1562 (lto_wpa_write_files): Use it.
1563
af8bca3c
MJ
15642011-04-29 Martin Jambor <mjambor@suse.cz>
1565
1566 * lto.c: Include ipa-utils.h.
1567 (lto_balanced_map): Update call to ipa_reverse_postorder.
1568 * Make-lang.in (lto/lto.o): Add IPA_UTILS_H to dependencies.
1569
b823cdfe
MM
15702011-04-29 Michael Matz <matz@suse.de>
1571
1572 * lto.c (toplevel): Include tree-flow.h.
1573 (lto_read_in_decl_state): Don't merge types here.
1574 (tree_with_vars): New static hash table.
1575 (remember_with_vars): New static functions.
1576 (LTO_FIXUP_TYPE): New macro.
1577 (lto_ft_common, lto_ft_decl_minimal, lto_ft_decl_common,
1578 lto_ft_decl_with_vis, lto_ft_decl_non_common, lto_ft_function,
1579 lto_ft_field_decl, lto_ft_type, lto_ft_binfo, lto_ft_constructor,
1580 lto_ft_expr, lto_fixup_types, uniquify_nodes): New static functions.
1581 (lto_read_decls): Uniquify while reading in trees.
1582 (lto_fixup_data_t, LTO_FIXUP_SUBTREE,
1583 LTO_REGISTER_TYPE_AND_FIXUP_SUBTREE, no_fixup_p, lto_fixup_common,
1584 lto_fixup_decl_minimal, lto_fixup_decl_common, lto_fixup_decl_with_vis,
1585 lto_fixup_decl_non_common, lto_fixup_function, lto_fixup_field_decl,
1586 lto_fixup_type, lto_fixup_binfo, lto_fixup_constructor,
1587 lto_fixup_tree): Remove.
1588 (lto_fixup_state): Remove data argument. Use
1589 lto_symtab_prevailing_decl.
1590 (LTO_SET_PREVAIL, LTO_NO_PREVAIL): New macros.
1591 (lto_fixup_prevailing_decls): New function.
1592 (lto_fixup_state_aux): Argument aux is unused.
1593 (lto_fixup_decls): Don't allocate pointer sets, don't use
1594 lto_fixup_tree, use lto_fixup_prevailing_decls.
1595 (read_cgraph_and_symbols): Allocate and remove tree_with_vars.
1596 * Make-lang.in (lto/lto.o): Depend on $(TREE_FLOW_H).
1597
b9843260
EB
15982011-04-16 Eric Botcazou <ebotcazou@adacore.com>
1599
1600 * lto.c (lto_balanced_map): Fix typos in head comment.
1601 (lto_promote_cross_file_statics): Fix long lines and remove redundant
1602 test.
1603
e7f23018
JH
16042011-04-16 Jan Hubicka <jh@suse.cz>
1605
1606 * lto.c (lto_balanced_map): Update.
1607
10a5dd5d
JH
16082011-04-14 Jan Hubicka <jh@suse.cz>
1609
1610 * lto.c: Include ipa-inline.h
b9843260
EB
1611 (add_cgraph_node_to_partition, undo_partition): Use inline_summary
1612 accessor.
10a5dd5d
JH
1613 (ipa_node_duplication_hook): Fix declaration.
1614 * Make-lang.in (lto.o): Update dependencies.
1615
81f653d6
NF
16162011-04-12 Nathan Froyd <froydnj@codesourcery.com>
1617
1618 * lto-tree.h (union lang_tree_node): Check for TS_COMMON before
1619 calling TREE_CHAIN.
1620 * lto.c (lto_fixup_common): Likewise.
1621
dcf0c47e
NF
16222011-04-08 Nathan Froyd <froydnj@codesourcery.com>
1623
1624 * lto-lang.c (handle_sentinel_attribute): Don't use TYPE_ARG_TYPES.
1625 (handle_type_generic_attribute): Likewise.
1626
e89964e3
MM
16272011-04-03 Michael Matz <matz@suse.de>
1628
1629 * lto.c (lto_materialize_function): Don't read and then discard
1630 sections in WPA mode.
1631 (lto_read_in_decl_state): Adjust call to lto_streamer_cache_get.
1632
1633 * lto-lang.c (registered_builtin_fndecls): Remove.
1634 (lto_getdecls): Return NULL_TREE.
1635 (lto_builtin_function): Don't remember in registered_builtin_fndecls.
1636
d2b3fe18
RG
16372011-03-31 Richard Guenther <rguenther@suse.de>
1638
1639 PR lto/48246
1640 * lto.c (lto_wpa_write_files): Disable assert for non-empty
1641 partitions when checking is not enabled.
1642
ba78087b
KT
16432011-03-25 Kai Tietz <ktietz@redhat.com>
1644
1645 * lto.c (lto_resolution_read): Use filename_cmp instead
1646 of strcmp.
1647 (lto_read_section_data): Likewise.
1648
0edf1bb2
JL
16492011-03-25 Jeff Law <law@redhat.com>
1650
1651 * lto/lto-lang.c (def_fn_type): Add missing va_end.
1652
62d784f7
KT
16532011-03-21 Kai Tietz <ktietz@redhat.com>
1654
1655 PR target/12171
1656 * lto-lang.c (lto_attribute_table): Adjust table.
1657
62dd9571
JJ
16582011-02-18 Jakub Jelinek <jakub@redhat.com>
1659
1660 PR bootstrap/47807
1661 * Make-lang.in (lto/lto-lang.o): Depend on $(LTO_STREAMER_H) instead
1662 of lto-streamer.h.
1663
237d6259
RG
16642011-02-18 Richard Guenther <rguenther@suse.de>
1665
1666 PR lto/47798
1667 * lto-tree.h (lto_global_var_decls): Do not declare here.
1668 * lto-lang.c: Include lto-streamer.h.
1669 * Make-lang.in (lto-lang.o): Adjust dependencies.
1670
8ead2223
KT
16712011-02-10 Kai Tietz <kai.tietz@onevision.com>
1672
1673 PR lto/47241
1674 * lto.c (lto_read_section_data): Free
1675 fd_name in failure case.
1676 For mingw targets don't hash file-descriptor.
1677 (read_cgraph_and_symbols): Close current_lto_file
1678 in failure case.
1679
6e701822
JH
16802011-01-11 Jan Hubicka <jh@suse.cz>
1681
1682 PR lto/45721
1683 PR lto/45375
b9843260
EB
1684 * lto.c (partition_cgraph_node_p, partition_varpool_node_p): Weakrefs
1685 are not partitioned.
6e701822 1686
f4da8dce
NF
16872010-12-22 Nathan Froyd <froydnj@codesourcery.com>
1688
1689 * lto-lang.c (handle_nonnull_attribute, handle_sentinel_attribute):
1690 Use prototype_p.
1691
6b7fb143
RG
16922010-12-06 Richard Guenther <rguenther@suse.de>
1693
1694 PR lto/46796
1695 * lto-lang.c (lto_init): Give names to basic types.
1696
c59ffc41
JM
16972010-11-30 Joseph Myers <joseph@codesourcery.com>
1698
1699 * lto-object.c: Don't include toplev.h.
1700 * Make-lang.in (lto/lto-object.o): Don't depend on toplev.h.
1701
7c475d11
JM
17022010-11-30 Joseph Myers <joseph@codesourcery.com>
1703
1704 * Make-lang.in (lto/lto-object.o): Depend on toplev.h instead of
1705 $(TOPLEV_H).
1706
71f3e391
JM
17072010-11-29 Joseph Myers <joseph@codesourcery.com>
1708
1709 * lto-endian.h: Delete.
1710 * lto-object.c: Don't include "libiberty.h".
1711 (O_BINARY): Don't define.
1712 * lto.c: Don't include "libiberty.h" or <sys/mman.h>.
1713 (O_BINARY): Don't define.
1714
9f1718b0
RG
17152010-11-23 Richard Guenther <rguenther@suse.de>
1716
1717 * lto.c (read_cgraph_and_symbols): Remove newline from diagnostic.
1718
39c4e298
RG
17192010-11-23 Richard Guenther <rguenther@suse.de>
1720
1721 PR lto/46605
1722 * lto.c (read_cgraph_and_symbols): Bail out after errors.
1723
b37421c6
JM
17242010-11-17 Joseph Myers <joseph@codesourcery.com>
1725
1726 * lto.c (lto_main): Take no arguments.
1727 * lto.h (lto_main): Update prototype.
1728
d82f74d3
ILT
17292010-11-16 Ian Lance Taylor <iant@google.com>
1730
1731 * lto-object.c (lto_obj_file_open): Call
1732 simple_object_attributes_merge rather than
1733 simple_object_attributes_compare.
1734
a4d8c676
JM
17352010-11-12 Joseph Myers <joseph@codesourcery.com>
1736
1737 * Make-lang.in (lto/lto.o): Use $(OPTS_H).
1738 * lto-lang.c (lto_handle_option): Take location_t parameter.
1739
d8a07487
JM
17402010-11-10 Joseph Myers <joseph@codesourcery.com>
1741
1742 * lto.c (lto_resolution_read): Start diagnostics with lowercase
1743 letters and remove trailing '.'.
1744 (lto_file_finalize): Start diagnostic with a lowercase letter.
1745
6b3456d1
ILT
17462010-11-02 Ian Lance Taylor <iant@google.com>
1747
1748 * lto-object.c: New file.
1749 * lto-elf.c: Remove file.
1750 * lto-macho.c: Remove file.
1751 * lto-macho.h: Remove file.
1752 * lto-coff.c: Remove file.
1753 * lto-coff.h: Remove file.
1754 * Make-lang.in (LTO_OBJS): Change lto/$(LTO_BINARY_READER).o to
1755 lto/lto-object.o.
1756 ($(LTO_EXE)): Remove $(LTO_USE_LIBELF)
1757 (lto/lto-objfile.o): New target.
1758 (lto/lto-elf.o, lto/lto-coff.o, lto/lto-macho.o): Remove targets.
1759 (lto/lto.o): Remove $(LIBIBERTY_H).
1760
030cd86c
JH
17612010-10-22 Jan Hubicka <jh@suse.cz>
1762
1763 * lto.c (add_cgraph_node_to_partition,
1764 add_varpool_node_to_partition): Add debug info.
1765 (lto_1_to_1_map, lto_balanced_map): Do not re-add already
1766 partitioned nodes.
1767 (do_whole_program_analysis): Set function flags before dumping.
1768
4490cae6
RG
17692010-10-22 Richard Guenther <rguenther@suse.de>
1770
1771 * lto.c (lto_fixup_type): Fixup TYPE_CANONICAL again, via
1772 the new gimple_register_canonical_type.
1773
703cdce3
L
17742010-10-20 H.J. Lu <hongjiu.lu@intel.com>
1775
1776 PR bootstrap/45954
1777 * config-lang.in (boot_language): Set to $enable_lto.
1778
1915c739
JJ
17792010-10-18 Jakub Jelinek <jakub@redhat.com>
1780
1781 PR lto/45638
1782 * Make-lang.in (check-lto): New dummy target.
1783
82971de5
EB
17842010-10-14 Eric Botcazou <ebotcazou@adacore.com>
1785
1786 * lto-elf.c (SHN_XINDEX): Define if not already defined.
1787
a75bfaa6
JM
17882010-10-08 Joseph Myers <joseph@codesourcery.com>
1789
1790 * lto-lang.c (lto_init_options): Change to
1791 lto_init_options_struct. Update parameters.
1792 (LANG_HOOKS_INIT_OPTIONS): Don't define.
1793 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
1794
937f7f69
JH
17952010-10-06 Jan Hubicka <jh@suse.cz>
1796
1797 * lto.c (lto_balanced_map): Fix accounting of program size.
1798
2169830c
JH
17992010-10-06 Jan Hubicka <jh@suse.cz>
1800
1801 * lto.c (lto_balanced_map): Do not produce empty partitions.
1802
ecdbd01a 18032010-10-06 Andi Kleen <ak@linux.intel.com>
6e9bd0f8
AK
1804
1805 * lto.c (lto_process_name): Add.
1806 (lto_main): Call lto_process_name.
1807
06ed016f
JH
18082010-10-06 Jan Hubicka <jh@suse.cz>
1809
1810 * lto.c (partition_cgraph_node_p, partition_varpool_node_p): Handle
1811 COMDATs required by the linker.
1812
ae718d66
ILT
18132010-10-05 Ian Lance Taylor <iant@google.com>
1814
1815 * lto.c (lto_section_with_id): Make s a const pointer.
1816
852e4bd2
JH
18172010-10-05 Jan Hubicka <jh@suse.cz>
1818
1819 * lto.c: Include params.h.
1820 (add_cgraph_node_to_partition, add_varpool_node_to_partition): Do
1821 refcounting in aux field.
1822 (undo_partition, partition_cgraph_node_p, partition_varpool_node_p):
1823 New functions.
1824 (lto_1_to_1_map): Simplify.
1825 (lto_balanced_map): New function.
1826 (do_whole_program_analysis): Chose proper partitioning alg.
1827 * Make-lang.in (lto.o): Add dependency on params.h
1828
ecdbd01a 18292010-10-04 Andi Kleen <ak@linux.intel.com>
a90163e9
AK
1830
1831 * Make-lang.in (lto1): Add + to build rule.
1832
ecdbd01a 18332010-10-03 Andi Kleen <ak@linux.intel.com>
f1e92a43
AK
1834
1835 * lto.c (lto_file_finalize): Replace gcc_assert for missing section
1836 with fatal_error.
1837
0d6e14fd
JH
18382010-09-28 Jan Hubicka <jh@suse.cz>
1839
1840 * lto-lang.c (handle_leaf_attribute): New function.
1841 (lto_attribute_tables): Add leaf.
1842
fb462383
JZ
18432010-09-25 Jie Zhang <jie@codesourcery.com>
1844
1845 * lto.c (lto_read_all_file_options): Start a new line after
1846 printing out file names.
1847
051f8cc6
JH
18482010-09-24 Jan Hubicka <jh@suse.cz>
1849
1850 * lto.c (lto_promote_cross_file_statics): Use const_value_known_p.
1851
64e0f5ff
JH
18522010-09-20 Jan Hubicka <jh@suse.cz>
1853
1854 PR tree-optimize/45605
1855 * lto.c (lto_promote_cross_file_statics): Use const_value_known_p.
1856
a929ec3d
GP
18572010-09-18 Gerald Pfeifer <gerald@pfeifer.com>
1858
1859 * lto-elf.c (lto_obj_file_open): Also provide filename when
1860 elf_begin fails.
1861
4c588abf
JH
18622010-09-17 Jan Hubicka <jh@suse.cz>
1863
1864 * lto.c (lto_promote_cross_file_statics): Use const_value_known.
1865
c3224d6f
RG
18662010-09-17 Richard Guenther <rguenther@suse.de>
1867
1868 * lang.opt (flag_wpa): Also enable for the driver.
1869
52b3b3c7
JH
18702010-09-16 Jan Hubicka <jh@suse.cz>
1871
1872 * lto.c (lto_materialize_function): Do not tamper with STATIC and
1873 EXTERNAL flags.
1874
969c37b7
LB
18752010-09-15 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1876
1877 * lto-tree.h (struct lang_type): Add variable_size GTY option.
1878
098a4f50
JH
18792010-09-08 Jan Hubicka <jh@suse.cz>
1880
1881 * lto.c (real_file_count, real_file_decl_data): New static vars.
1882 (read_cgraph_and_symbols): Use it.
1883
0f443ad0
RG
18842010-09-08 Richard Guenther <rguenther@suse.de>
1885
1886 * lto.c (read_cgraph_and_symbols): Collect again after each
1887 file.
1888
ee187353
JH
18892010-09-07 Jan Hubicka <jh@suse.cz>
1890
1891 * lto.c (promote_var, promote_fn): Set DECL_VISIBILITY_SPECIFIED.
1892
b3ec52d0
RG
18932010-09-03 Richard Guenther <rguenther@suse.de>
1894
1895 * lto-elf.c (validate_file): Always error if validation fails.
1896
f1395d4a
JH
18972010-08-20 Jan Hubicka <jh@suse.cz>
1898
1899 * lto.c (lto_1_to_1_map): Be prepared for node to have no file data.
1900 (lto_wpa_write_files): Update comments.
1901
2429bce3
L
19022010-08-20 H.J. Lu <hongjiu.lu@intel.com>
1903
1904 PR bootstrap/45357
1905 * lto.c (lto_materialize_function): Replace has_analyzed_clone
1906 with has_analyzed_clone_p.
1907
e0f967db
JH
19082010-08-20 Jan Hubicka <jh@suse.cz>
1909
1910 * lto.c (has_analyzed_clone_p): New function
1911 (lto_materialize_function): Use callgraph to determine if
1912 body is needed.
1913 (materialize_cgraph): Remove DECL_IS_BUILTIN check.
1914
ac47786e
NF
19152010-08-20 Nathan Froyd <froydnj@codesourcery.com>
1916
1917 * lto.c: Use FOR_EACH_VEC_ELT.
1918
ecdbd01a 19192010-07-27 Andi Kleen <ak@linux.intel.com>
d720b869
AK
1920
1921 * Make-lang.in (lto.o): Add dependency to splay-tree.h
1922
5f20c657
JM
19232010-07-27 Joseph Myers <joseph@codesourcery.com>
1924
1925 * lto-lang.c (lto_handle_option): Update prototype and return
1926 value type. Remove duplicate assignment to result.
1927
7a9bf9a4
JM
19282010-07-27 Joseph Myers <joseph@codesourcery.com>
1929
1930 * lto-lang.c (lto_option_lang_mask, lto_complain_wrong_lang_p):
1931 New.
1932 (lto_init_options): Update prototype.
1933 (LANG_HOOKS_OPTION_LANG_MASK, LANG_HOOKS_COMPLAIN_WRONG_LANG_P):
1934 Define.
1935
ecdbd01a 19362010-07-10 Andi Kleen <ak@linux.intel.com>
73ce4d1e
AK
1937
1938 PR lto/44992
1939 * lto.c: Include splay-tree.h
1940 (lto_resolution_read): Change to walk file_ids tree and parse
1941 extra file_id in resolution file.
1942 (lto_section_with_id): Add.
1943 (create_subid_section_table): Add.
1944 (lwstate): Add.
1945 (lto_create_files_from_ids): Add.
1946 (lto_file_read): Change to handle sub file ids and create list
1947 of file_datas. Add output argument for count.
1948 (get_section_data): Pass file_data to lto_get_section_name.
1949 (lto_flatten_file): Add.
1950 (read_cgraph_and_symbols): Handle linked lists of file_datas.
1951
ecdbd01a 19522010-07-10 Andi Kleen <ak@linux.intel.com>
2994ee14
AK
1953
1954 * lto-coff.c (hash_name, eq_name): Move.
1955 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
1956 * lto-elf.c: (hash_name, eq_name): Move.
1957 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
1958 * lto-macho.c: (hash_name, eq_name): Move.
1959 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
1960 * lto.c: (hash_name, eq_name): Move from lto-*.c
1961 (lto_obj_create_section_hash_table): Add.
1962 (free_with_string): Add.
1963
718f9c0f
MLI
19642010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
1965
1966 * lto-coff.c: Include diagnostic-core.h in every file that
1967 includes toplev.h.
1968 * lto-elf.c: Likewise.
1969 * lto-lang.c: Likewise.
1970 * lto-macho.c: Likewise.
1971
1b137837
JJ
19722010-07-07 Jakub Jelinek <jakub@redhat.com>
1973
1974 * lto-elf.c (ELFOSABI_NONE, ELFOSABI_LINUX): Define if not defined.
1975 (validate_file): Allow merging of ELFOSABI_NONE with ELFOSABI_LINUX
1976 objects.
1977
92eb4438
JH
19782010-07-05 Jan Hubicka <jh@suse.cz>
1979
1980 * lto.c (add_cgraph_node_to_partition): Forward declare; walk also
1981 nodes from same comdat group as well as all comdat functions referenced
1982 here.
b9843260
EB
1983 (add_varpool_node_to_partition, add_references_to_partition): New
1984 function.
1985 (lto_1_1_map): Skip COMDAT fnctions/variables; use
1986 add_varpool_node_to_partition; clear aux flags when done.
1987 (lto_promote_cross_file_statics): Do not promote stuff that gets
1988 duplicated to each ltrans.
92eb4438 1989
a05541a9
JH
19902010-07-04 Jan Hubicka <jh@suse.cz>
1991
1992 * lto.c (read_cgraph_and_symbols): Dump cgraph before merging.
1993
4a2ac96f
RG
19942010-06-13 Richard Guenther <rguenther@suse.de>
1995
1996 * lto.c (lto_fixup_type): Do not register or fixup TYPE_CANONICAL.
1997
1d536046
KT
19982010-06-09 Kai Tietz <kai.tietz@onevision.com>
1999
2000 * lto.c (lto_resolution_read): Pre-initialize local variable r.
2001 * lto-coff.c (coff_write_object_file): Add braces to if.
2002
a9429e29
LB
20032010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2004
2005 * lto.c (lto_read_in_decl_state): Use typed GC allocation.
2006 (lto_file_read): Likewise.
2007 (new_partition): Likewise.
2008 (read_cgraph_and_symbols): Likewise.
2009
5498f011
JM
20102010-06-07 Joseph Myers <joseph@codesourcery.com>
2011
2012 * lto-lang.c (flag_no_builtin, flag_no_nonansi_builtin): Remove.
2013 (lto_handle_option): Don't set flag_signed_char here.
2014
d4c0c9f6
RG
20152010-06-04 Richard Guenther <rguenther@suse.de>
2016
2017 PR lto/41584
2018 * lto.c (lto_1_to_1_map): Use the proper file_data for
2019 varpool nodes.
2020
0a5fa5a1
JH
20212010-05-30 Jan Hubicka <jh@suse.cz>
2022
2023 * lto.c (promote_var, promote_fn, lto_wpa_write_files): Dump
2024 partitioning decisions.
2025
9eec9488
JH
20262010-05-29 Jan Hubicka <jh@suse.cz>
2027
2028 * lto.c (bitmap vector): Remove.
2029 (lto_cgraph_node_sets, lto_varpool_node_sets): Remove.
2030 (ltrans_partition_def): New structure.
2031 (ltrans_partition): New type and VECtor.
2032 (new_partition): New function.
2033 (add_cgraph_node_to_partition): New function.
2034 (lto_1_to_1_map): Reorganize for partitions.
2035 (lto_add_inline_clones): Remove.
2036 (lto_add_all_inlinees): Remove.
2037 (lto_promote_cross_file_statics): Use partitions.
2038 (cmp_partitions): New function.
2039 (lto_wpa_write_files): Do not call lto_add_all_inlinees;
2040 use partitions; output files sorted by size.
2041
3e097227
SB
20422010-05-29 Steven Bosscher <steven@gcc.gnu.org>
2043
2044 * Make-lang.in: Replace vec.h dependency with VEC_H.
2045
7ca92787
JM
20462010-05-28 Joseph Myers <joseph@codesourcery.com>
2047
2048 * lto-coff.c (coff_errmsg): Remove.
2049 (lto_coff_begin_section_with_type, lto_obj_append_data): Use %m in
2050 errors instead of coff_errmsg (-1).
2051 * lto-macho.c (mach_o_errmsg): Remove.
2052 (lto_obj_begin_section, lto_obj_append_data): Use %m in errors
2053 instead of mach_o_errmsg (-1).
2054 * lto.c (read_cgraph_and_symbols): Use %m in errors instead of
2055 xstrerror (errno).
2056
b5611987
RG
20572010-05-28 Richard Guenther <rguenther@suse.de>
2058
2059 * lto.c (prefix_name_with_star): Removed.
2060 (strip_extension): Likewise.
2061 (get_filename_for_set): Likewise.
2062 (lto_write_ltrans_list): Fold into ...
2063 (lto_wpa_write_files): ... this. Name LTRANS units
2064 by suffixing the ltrans output list filename.
2065 (do_whole_program_analysis): Adjust.
2066
1da2ed5f
JM
20672010-05-27 Joseph Myers <joseph@codesourcery.com>
2068
2069 * lto.c: Include diagnostic-core.h instead of diagnostic.h.
2070 (read_cgraph_and_symbols, lto_main): Use seen_error.
2071 * Make-lang.in (lto/lto.o): Update dependencies.
2072
7951d88a
EB
20732010-05-27 Eric Botcazou <ebotcazou@adacore.com>
2074
2075 PR lto/44230
2076 * lto.h (lto_eh_personality): New prototype.
2077 * lto.c: Include debug.h.
2078 (first_personality_decl): New static variable.
2079 (lto_materialize_function): Set it to DECL_FUNCTION_PERSONALITY of the
2080 first function for which it is non-null.
2081 (lto_eh_personality_decl): New static variable.
2082 (lto_eh_personality): New function.
2083 * lto-lang.c (LANG_HOOKS_EH_PERSONALITY): Redefine to above function.
2084 * Make-lang.in (lto/lto.o): Add dependency on debug.h.
2085
e12da9c2
SB
20862010-05-26 Steven Bosscher <steven@gcc.gnu.org>
2087
2088 * lto-lang.c: Do not include expr.h.
2089
468194f4
RG
20902010-05-24 Richard Guenther <rguenther@suse.de>
2091
2092 * lto-elf.c (lto_obj_build_section_table): Work around
2093 FreeBSD libelf issue.
2094
bd9eb5da
RG
20952010-05-22 Richard Guenther <rguenther@suse.de>
2096
2097 * lto.c (read_cgraph_and_symbols): Do not collect.
2098
66576e1b
JH
20992010-05-20 Jan Hubicka <jh@suse.cz>
2100
2101 * lto.c (promote_var, promote_fn): New functions.
2102 (lto_promote_cross_file_statics): Compute correctly boundary including
2103 static initializers of readonly vars.
2104
36576655
JH
21052010-05-18 Jan Hubicka <jh@suse.cz>
2106
66576e1b 2107 * lto.c (lto_1_to_1_map): Partition non-inline clones.
36576655
JH
2108 (lto_promote_cross_file_statics): Deal with non-inline clones.
2109
28632d63
JH
21102010-05-18 Jan Hubicka <jh@suse.cz>
2111
2112 * lto.c (lto_materialize_function): Announce function when
2113 reading body; allocate_struct_function only when reading body;
2114 do not finalize local statics; ggc_collect after reading;
2115 do not mark reachable node.
2116 (materialize_cgraph): Do not announce function.
2117
33e42d56
JH
21182010-05-11 Jan Hubicka <jh@suse.cz>
2119
2120 * lto.c (materialize_cgraph): Revert my previous patch.
2121
f6430ea5
KT
21222010-05-11 Kai Tietz <kai.tietz@onevision.com>
2123
2124 * lto-coff.c (IMAGE_FILE_MACHINE_ADM64): Rename to
2125 IMAGE_FILE_MACHINE_AMD64.
2126 * lto-coff.c (IMAGE_FILE_MACHINE_ADM64): Likewise.
2127
0a0b07b7
JH
21282010-05-11 Jan Hubicka <jh@suse.cz>
2129
2130 * lto.c (lto_fixup_decls): Remove global var decls freeing here.
2131 (materialize_cgraph): Add it here.
2132
9a809897
JH
21332010-05-11 Jan Hubicka <jh@suse.cz>
2134
2135 * lto.c (lto_fixup_decls): Free no longer needed lto_global_var_decls
2136 vector.
2137
21382010-05-11 Jan Hubicka <jh@suse.cz>
2139
2140 * lto.c (lto_1_to_1_map): Remove some no longer needed checks.
2141 (lto_promote_cross_file_statics): Never promote DECL_EXTERNAL;
2142 use reachable_from_other_partition_p and
2143 referenced_from_other_partition_p test.
2144
94f64249
KT
21452010-05-11 Kai Tietz <kai.tietz@onevision.com>
2146
2147 * lto-coff.c (validate_file): Add x64-coff support.
2148 * lto-coff.h (IMAGE_FILE_MACHINE_ADM64): New.
2149 (COFF_KNOWN_MACHINES): Add IMAGE_FILE_MACHINE_ADM64.
2150 * lto-lang.c (lto_build_c_type_nodes): Add check for
2151 'long long unsigned int' for x64-windows.
2152 (lto_init): Likewise.
2153
2154
c082f9f3
SB
21552010-05-07 Steven Bosscher <steven@gcc.gnu.org>
2156
2157 * lto.h (struct lto_file_struct): Document offset member.
2158 * lto-endian.h: New file.
2159 * lto-macho.h: New file.
2160 * lto-macho.c: New file.
2161 * Make-lang.in: Add rule for lto-macho.o.
2162
5cd0e96b
RG
21632010-05-07 Richard Guenther <rguenther@suse.de>
2164
2165 PR lto/43857
2166 PR lto/43371
2167 * lang.opt (fresolution): Change to ...
2168 (fresolution=): ... this.
2169 * lto-lang.c (lto_handle_option): Adjust.
2170
48cf395b
RB
21712010-05-07 Richard Guenther <rguenther@suse.de>
2172
2173 * lto.c (DUMPBASE_SUFFIX): Remove.
2174 (lto_execute_ltrans): Move functionality to lto-wrapper.c.
2175 Rename to ...
2176 (lto_write_ltrans_list): ... only output the list of ltrans files.
2177 (lto_maybe_unlink): Remove.
2178 (do_whole_program_analysis): Do not execute LTRANS phase
2179 from here.
2180
afa83c15
L
21812010-05-06 H.J. Lu <hongjiu.lu@intel.com>
2182
2183 * lto-lang.c (lto_handle_option): Add argument kind.
2184
369451ec
JH
21852010-05-05 Jan Hubicka <jh@suse.cz>
2186
48cf395b
RB
2187 * lto.c (lto_promote_cross_file_statics): Compute boundary based on
2188 refs.
369451ec 2189
2f41ecf5
JH
21902010-05-05 Jan Hubicka <jh@suse.cz>
2191
2192 * lto.c (lto_1_to_1_map): Partition only needed nodes.
2193
ace72c88
JH
21942010-04-30 Jan Hubicka <jh@suse.cz>
2195
b9843260
EB
2196 * lto.c (get_filename_for_set): Look for cgraph node and if none found,
2197 use default name.
ace72c88
JH
2198 (lto_wpa_write_files): Write any non-empty partition.
2199
05575e07
JH
22002010-04-30 Jan Hubicka <jh@suse.cz>
2201
2202 * lto.c: Do not attempt to make constant pool references global.
2203
49ba8180
JH
22042010-04-28 Jan Hubicka <jh@suse.cz>
2205
2206 * lto/lto.c (lto_read_in_decl_state): Use GGC.
2207 (lto_wpa_write_files): Announce what we are writting.
2208 (all_file_decl_data): New.
2209 (read_cgraph_and_symbols): Use GGC; correct timevars.
2210 (do_whole_program_analysis): Collect.
2211 * lto/Make-lang.in (lto.o): Fix dependency.
2212 * Makefile.in (GTFILES): Add lto-streamer.h.
2213 * varpool.c (varpool_analyze_pending_decls): Use TV_VARPOOL.
2214 (varpool_assemble_pending_decls): Use VAROUT.
2215 * lto-streamer.h (lto_tree_ref_table): Annotate.
2216 (lto_in_decl_state): Annotate.
2217 (lto_file_decl_data): Annotate.
2218
2942c502
JH
22192010-04-28 Jan Hubicka <jh@suse.cz>
2220
2221 * lto.c (lto_varpool_node_sets): New.
2222 (lto_1_to_1_map): Partition varpool too.
2223 (globalize_context_t, globalize_cross_file_statics,
2224 lto_scan_statics_in_ref_table, lto_scan_statics_in_cgraph_node,
2225 lto_scan_statics_in_remaining_global_vars): Remove.
2226 (lto_promote_cross_file_statics): Rewrite.
2227 (get_filename_for_set): Take vset argument.
2228 (lto_wpa_write_files): Pass around vsets.
2229
3bec79c5
DK
22302010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
2231
2232 PR lto/42776
2233 * Make-lang.in (LTO_OBJS): Use LTO_BINARY_READER instead of
2234 hardcoding 'lto-elf.o'.
2235 ($(LTO_EXE)): Use LTO_USE_LIBELF instead of hardcoding '-lelf'.
2236
2237 * lto-coff.h: New file.
2238 * lto-coff.c: Likewise.
2239
21aac880
RG
22402010-04-26 Richard Guenther <rguenther@suse.de>
2241
2242 * lto.c (lto_fixup_type): Deal with non-type TYPE_CONTEXT.
2243
2cee0101
DK
22442010-04-26 Dave Korn <dave.korn.cygwin@gmail.com>
2245
2246 * lto.h (lto_elf_file_open): Rename prototype from this ...
2247 (lto_obj_file_open): ... to this.
2248 (lto_elf_file_close): Likewise ...
2249 (lto_obj_file_close): ... and likewise.
2250 (lto_elf_build_section_table): Likewise ...
2251 (lto_obj_build_section_table): ... and likewise.
2252 (lto_elf_begin_section): Likewise ...
2253 (lto_obj_begin_section): ... and likewise.
2254 (lto_elf_append_data): Likewise ...
2255 (lto_obj_append_data): ... and likewise.
2256 (lto_elf_end_section): Likewise ...
2257 (lto_obj_end_section): ... and likewise.
2258 * lto.c (lto_file_read): Update references to the above.
2259 (lto_wpa_write_files): Likewise.
2260 (lto_read_all_file_options): Likewise.
2261 (read_cgraph_and_symbols): Likewise.
2262 * lto-lang.c (LANG_HOOKS_BEGIN_SECTION): Likewise.
2263 (LANG_HOOKS_APPEND_DATA): Likewise.
2264 (LANG_HOOKS_END_SECTION): Likewise.
2265 * lto-elf.c (lto_elf_file_open): Rename from this ...
2266 (lto_obj_file_open): ... to this, updating any references.
2267 (lto_elf_file_close): Likewise ...
2268 (lto_obj_file_close): ... and likewise.
2269 (lto_elf_build_section_table): Likewise ...
2270 (lto_obj_build_section_table): ... and likewise.
2271 (lto_elf_begin_section): Likewise ...
2272 (lto_obj_begin_section): ... and likewise.
2273 (lto_elf_append_data): Likewise ...
2274 (lto_obj_append_data): ... and likewise.
2275 (lto_elf_end_section): Likewise ...
2276 (lto_obj_end_section): ... and likewise.
2277
bc58d7e1
JH
22782010-04-21 Jan Hubicka <jh@suse.cz>
2279
2280 * lto.c (lto_fixup_tree): Do not call wpa fixup.
2281 (materialize_cgraph): Likewise.
2282
e792884f
JH
22832010-04-21 Jan Hubicka <jh@suse.cz>
2284
2285 * lto.c (lto_wpa_write_files): Update.
2286 (read_cgraph_and_symbols): Be more verbose.
2287 (materialize_cgraph): Likewise.
2288 (do_whole_program_analysis): Likewise.
2289
c9945504
JH
22902010-04-21 Jan Hubicka <jh@suse.cz>
2291
2292 * lto.c (globalize_cross_file_statics): When function has address taken,
2293 it needs to be public.
2294
a837268b
JH
22952010-04-20 Jan Hubicka <jh@suse.cz>
2296
2297 * lto.c (lto_add_inline_clones): Do not track inlined_decls.
2298 (lto_add_all_inlinees): Likewise.
2299 (lto_wpa_write_files): Likewise.
2300
3b9e5d95
EB
23012010-04-18 Eric Botcazou <ebotcazou@adacore.com>
2302
2303 * lto-lang.c (lto_init): Remove second argument in call to
2304 build_common_tree_nodes.
2305
8ccb78f2
RO
23062010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2307
2308 * lto-elf.c [!HAVE_ELF_GETSHDRSTRNDX] (elf_getshdrstrndx): New
2309 function.
2310
2f9b99e6
EB
23112010-03-09 Eric Botcazou <ebotcazou@adacore.com>
2312
2313 PR bootstrap/43276
2314 * lto-elf.c: Define EM_* constants if not already defined.
2315
bef7d288
EB
23162010-03-03 Eric Botcazou <ebotcazou@adacore.com>
2317
2318 * lto-elf.c (is_compatible_architecture): New static function.
2319 (DEFINE_VALIDATE_EHDR): Use it to validate the architecture.
2320
f68df07c
RG
23212010-02-11 Richard Guenther <rguenther@suse.de>
2322
2323 PR driver/43021
2324 * lto-elf.c (lto_elf_file_open): Handle file@offset case more
2325 appropriately.
2326
3cdea2b4
AH
23272010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
2328
2329 * lto.c (O_BINARY): Define.
2330 (lto_read_section_data): Open file in binary mode.
2331 * lto-elf.c (O_BINARY): Define.
2332 (lto_elf_file_open): Open file in binary mode.
2333
c59449fa
RG
23342010-01-08 Richard Guenther <rguenther@suse.de>
2335
2336 PR lto/42528
2337 * lto-lang.c (lto_handle_option): Handle -f[un]signed-char.
2338 (lto_init): Do not init char_type_node in a standard way
2339 but according to flag_signed_char.
2340
d7fb0a6d
L
23412010-01-03 H.J. Lu <hongjiu.lu@intel.com>
2342
2343 PR lto/41564
2344 * lto.c (DUMPBASE_SUFFIX): New.
2345 (lto_execute_ltrans): Append a sequence number to -dumpbase
2346 for LTRANS.
2347
78ce4053
L
23482010-01-02 H.J. Lu <hongjiu.lu@intel.com>
2349
2350 PR lto/42580
2351 * lto-elf.c (lto_elf_file_open): Stop if the command line
2352 option file is missing.
2353
2a71eb48
RG
23542009-12-15 Richard Guenther <rguenther@suse.de>
2355
2356 * lto.c (lto_fixup_field_decl): Fixup DECL_FIELD_OFFSET.
2357 (lto_post_options): Do not disable debuginfo.
2358
a818bca1
DG
23592009-12-14 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
2360
2361 * Make-lang.in ($(LTO_EXE)): Use $(LINKER).
2362
e7d00517
RG
23632009-12-11 Richard Guenther <rguenther@suse.de>
2364
2365 PR lto/42037
2366 * lto.c (lto_resolution_read): Properly grow the vector.
2367
1ab53893
RG
23682009-12-11 Richard Guenther <rguenther@suse.de>
2369
2370 PR lto/41915
2371 * lto-lang.c (lto_init_options): Initialize flag_complex_method
2372 to the C99 default. Do not set flag_unit_at_a_time.
2373
0f900dfa
JJ
23742009-11-28 Jakub Jelinek <jakub@redhat.com>
2375
2376 * lto-lang.c (handle_nonnull_attribute): Remove unused attr_arg_num
2377 variable.
2378
92fa7608
RAE
23792009-11-19 Rafael Avila de Espindola <espindola@google.com>
2380
2381 PR bootstrap/42096
2382 * lto-elf.c (lto_elf_file_open): Use lto_parse_hex.
2383 * lto.c (lto_parse_hex): New.
2384 (lto_resolution_read): Use lto_parse_hex.
2385 * lto.h (lto_parse_hex): New.
2386
9870fe4f
RAE
23872009-11-17 Rafael Avila de Espindola <espindola@google.com>
2388
2389 * lto-elf.c (lto_file_init): Add offset argument.
2390 (lto_elf_file_open): Record the offset.
2391 * lto.c (lto_resolution_read): Change file_name into a lto_file
2392 argument. Check offsets.
2393 (lto_file_read): Update call to lto_resolution_read.
2394 * lto.h (lto_file_struct): Add the offset field.
2395
1b70729f
RAE
23962009-11-16 Rafael Avila de Espindola <espindola@google.com>
2397
2398 * lto-elf.c (lto_elf_file_open): Use strtoll to parse the offset.
2399
0e3776db
JH
24002009-11-14 Jan Hubicka <jh@suse.cz>
2401
2402 * lto.c (read_cgraph_and_symbols): Set also ipa_transforms_to_apply.
2403
06bd7f56
RAE
24042009-11-12 Rafael Avila de Espindola <espindola@google.com>
2405
2406 * lang.opt (fresolution): Renamed from resolution.
2407 * lto-lang.c (lto_handle_option): Handle new option name.
2408 * lto.c (lto_resolution_read): Add more checks. Discard rest of line.
2409
7e9dc421
RG
24102009-11-04 Richard Guenther <rguenther@suse.de>
2411 Rafael Avila de Espindola <espindola@google.com>
2412
2413 * lto-elf.c (lto_elf_build_section_table): Add the base offset.
2414 (lto_elf_file_open): Handle offsets in arguments name@offest.
2415
b207f900
RG
24162009-10-30 Richard Guenther <rguenther@suse.de>
2417
2418 PR lto/41858
2419 * lto.c (lto_file_read): Do not set file_data->fd.
2420 (lto_read_section_data): Use a single-entry file-descriptor cache.
2421 Do not check the result of xmalloc.
2422 (free_section_data): Do not use file_data->fd.
2423 (lto_read_all_file_options): Likewise.
2424
2c928155
RG
24252009-10-22 Richard Guenther <rguenther@suse.de>
2426
2427 * lto.c (lto_fixup_jump_functions): Remove.
2428 (lto_fixup_decls): Do not fixup jump functions.
2429 (read_cgraph_and_symbols): Schedule cgraph merging after
2430 summary reading. Schedule type and decl fixup before
2431 summary reading.
2432
f9c91f8a
RB
24332009-10-22 Richard Guenther <rguenther@suse.de>
2434
2435 * lto.c (lto_fixup_data_t): Remove free_list member.
2436 (lto_fixup_tree): Do not insert into free_list.
2437 (free_decl): Remove.
2438 (lto_fixup_decls): Remove free-list handling.
2439
fb3f88cc
JH
24402009-10-22 Jan Hubicka <jh@suse.cz>
2441
2442 * lto.c (lto_fixup_jump_functions): New function.
2443 (lto_fixup_decls): Use it.
2444
35f1e9f4
RG
24452009-10-16 Richard Guenther <rguenther@suse.de>
2446
2447 PR lto/41715
2448 * lto.c (lto_fixup_tree): Revert last change.
2449
200c8750
RG
24502009-10-14 Richard Guenther <rguenther@suse.de>
2451
2452 * lto.c (lto_fixup_tree): In case the prevailing decl is not
2453 compatible with the one we replace wrap it around a
2454 VIEW_CONVERT_EXPR.
2455
b1b07c92
RG
24562009-10-09 Richard Guenther <rguenther@suse.de>
2457
2458 PR lto/41635
2459 PR lto/41636
2460 * lto.c (read_cgraph_and_symbols): Do not assert we can open
2461 a file.
2462 * lto-elf.c (init_shdr##BITS): Fix i18n problems.
2463 (init_ehdr##BITS): Likewise.
2464
3c2e7d45
JM
24652009-10-08 Joseph Myers <joseph@codesourcery.com>
2466
2467 * lto-elf.c (init_shdr##BITS, lto_elf_begin_section_with_type,
2468 init_ehdr##BITS, lto_elf_file_close): Remove trailing "." from
2469 diagnostics.
2470 * lto-lang.c (lto_post_options): Remove trailing "." from
2471 diagnostics.
2472
0d0bfe17
RG
24732009-10-08 Richard Guenther <rguenther@suse.de>
2474
2475 * lto.c (read_cgraph_and_symbols): Free the gimple type merging
2476 hash tables.
2477
4bedf19a
JM
24782009-10-07 Joseph Myers <joseph@codesourcery.com>
2479
2480 * lto.c: Only include <sys/mman.h> if HAVE_MMAP_FILE.
2481
b20996ff
JH
24822009-10-07 Jan Hubicka <jh@suse.cz>
2483
2484 * lto.c (read_cgraph_and_symbols): Mark functions neccesary only at
2485 ltrans stage; explain why this is needed and should not.
2486
1a735925
RG
24872009-10-05 Richard Guenther <rguenther@suse.de>
2488
2489 PR lto/41552
2490 PR lto/41487
2491 * lto.c (lto_read_decls): Do not register deferred decls.
2492 (read_cgraph_and_symbols): Delay symbol and cgraph merging
2493 until after reading the IPA summaries.
2494
d7f09764
DN
24952009-10-02 Rafael Avila de Espindola <espindola@google.com>
2496
2497 * Make-lang.in (lto/lto-lang.o): Don't depend on lto/common.h.
2498 (lto-lang.c): Don't include lto/common.h.
2499
25002009-10-02 Rafael Avila de Espindola <espindola@google.com>
2501
2502 * Make-lang.in (LTO_OBJS): Remove lto/common.o.
2503 (lto/common.o): Remove.
2504 * common.c: Remove.
2505 * common.h (lto_kind_str): Remove.
2506 (lto_visibility_str): Remove.
2507 (lto_resolution_str): Make it static.
2508
25092009-10-01 Diego Novillo <dnovillo@google.com>
2510
2511 * lto.c (lto_read_decls): Add comment.
2512 Call internal_error instead of gcc_assert.
2513 (lto_resolution_read): Likewise.
2514 (lto_add_all_inlinees): Tidy.
2515 * Make-lang.in: Fix copyright boilerplate.
2516 (lto.pdf): New.
2517 (lto.install-pdf): New.
2518 * lto-tree.h: Fix copyright boilerplate.
2519 * lang-specs.h: Likewise.
2520 Remove ".lto" entry from compilers fragment.
2521 * lto-elf.c: Move inclusion of gelf.h after config.h.
2522 Tidy formatting everywhere.
2523 * lto.h: Fix copyright boilerplate.
2524 Tidy formatting everywhere.
2525 * common.c: Likewise.
2526 * config-lang.in: Likewise.
2527 * common.h: Likewise.
2528 * lto-lang.c: Likewise.
2529
25302009-10-01 Richard Guenther <rguenther@suse.de>
2531
2532 * lto.c (lto_read_section_data): Use plain lseek/read.
2533
25342009-10-01 Richard Guenther <rguenther@suse.de>
2535
2536 * lto.c (LTO_MMAP_IO): Define if we can mmap files and
2537 use sysconf to query the system page size.
2538 (lto_file_read): Implement fallback using stdio.
2539 (free_section_data): Likewise.
2540
25412009-09-29 Diego Novillo <dnovillo@google.com>
2542
2543 * lto-lang.c (lto_init): Really fix call to
2544 build_common_builtin_nodes.
2545
25462009-09-29 Diego Novillo <dnovillo@google.com>
2547
2548 * lto-lang.c (lto_init): Fix call to
2549 build_common_builtin_nodes.
2550
25512009-09-29 Richard Guenther <rguenther@suse.de>
2552
2553 PR lto/40754
2554 * lto-elf.c (init_shdr##BITS): Properly specify alignment
2555 in bytes.
2556 (first_data_block): New static variable.
2557 (lto_elf_append_data): Align the first data block in each
2558 section.
2559
25602009-09-28 Diego Novillo <dnovillo@google.com>
2561
2562 * lto-lang.c: Tidy. Remove stale FIXME lto markers.
2563 * lto.c (strip_extension): New.
2564 (get_filename_for_set): Call it. Do not call make_cwd_temp_file.
2565 (lto_execute_ltrans): Tidy.
2566 Do not pass -fwpa nor -fltrans-* to LTRANS.
2567 * opts.c: Tidy formatting and remove stale FIXME lto markers.
2568 * tree.c (need_assembler_name_p): Call
2569 lang_hooks.decls.may_need_assembler_name_p if set.
2570 * varasm.c (default_binds_local_p_1): Remove check for
2571 flag_ltrans.
2572 * varpool.c (decide_is_variable_needed): Do not test for
2573 in_lto_p.
2574
25752009-09-22 Richard Guenther <rguenther@suse.de>
2576
2577 PR lto/39276
2578 * lto.c (lto_execute_ltrans): Perform ltrans phase manually.
2579 * Make-lang.in: Remove ltrans-driver stuff.
2580 * config-lang.in: Likewise.
2581 * lang.opt (fltrans-driver): Remove.
2582 * lto-lang.c (lto_init_options): Remove code initializing
2583 ltrans_driver.
2584 * ltrans-driver: Remove.
2585
25862009-09-21 Diego Novillo <dnovillo@google.com>
2587
2588 * lto-lang.c (lto_define_builtins): Remove superfluous
2589 calls to targetm.init_builtins and build_common_builtin_nodes.
2590 (lto_init): Add targetm.arm_eabi_unwinder as parameter to
2591 build_common_builtin_nodes.
2592 * lto.c (lto_materialize_function): Do nothing if NODE is a
2593 clone.
2594
25952009-09-03 Diego Novillo <dnovillo@google.com>
2596
2597 * lto-elf.c (validate_file): Replace call to
2598 elf_getshstrndx with call to elf_getshdrstrndx.
2599
26002009-08-19 Richard Guenther <rguenther@suse.de>
2601
2602 * lto-lang.c (lto_init): Merge char_type_node with the
2603 appropriately signed variant.
2604
26052009-08-19 Richard Guenther <rguenther@suse.de>
2606
2607 PR lto/41071
2608 * lto.c (lto_fixup_common): Re-build the pointer-to chain part one.
2609 (lto_fixup_type): Re-build the pointer-to chain part two.
2610
26112009-08-19 Richard Guenther <rguenther@suse.de>
2612
2613 PR lto/41071
2614 * lto.c (lto_fixup_type): Re-build the type variant chain.
2615
26162009-08-19 Richard Guenther <rguenther@suse.de>
2617
2618 PR lto/41071
2619 * lto.c (lto_fixup_constructor): New function.
2620 (lto_fixup_tree): Replace all types. Properly fixup
2621 constructors and constants.
2622
26232009-08-14 Richard Guenther <rguenther@suse.de>
2624
2625 * lto.c (read_cgraph_and_symbols): Exchange TREE_CHAIN use
2626 for DECL_LANG_SPECIFIC.
2627
26282009-08-13 Richard Guenther <rguenther@suse.de>
2629
2630 PR lto/41032
2631 * lto-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define to NULL.
2632
26332009-07-30 Richard Guenther <rguenther@suse.de>
2634
2635 PR lto/40903
2636 * lto.c (read_cgraph_and_symbols): After fixing up decls choose
2637 the largest decl for output and free TREE_CHAIN for further
2638 use.
2639
26402009-07-24 Diego Novillo <dnovillo@google.com>
2641
2642 * Make-lang.in: Add empty lto.install-plugin target.
2643
26442009-07-13 Diego Novillo <dnovillo@google.com>
2645
2646 * lto.c (lto_fixup_tree): Handle IMPORTED_DECL.
2647
26482009-07-11 Richard Guenther <rguenther@suse.de>
2649
2650 * lto-lang.c (lto_write_globals): Wrapup global decls.
2651
26522009-07-10 Richard Guenther <rguenther@suse.de>
2653
2654 * lto-lang.c (lto_init): Allocate one more location to make
2655 BUILTINS_LOCATION correct.
2656
26572009-07-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2658
2659 * lto.c (free_section_data): Cast computed_offset to caddr_t.
2660
26612009-07-06 Diego Novillo <dnovillo@google.com>
2662
2663 * lto.c (lto_fixup_type): Fixup TYPE_SIZE and
2664 TYPE_SIZE_UNIT.
2665
26662009-07-06 Diego Novillo <dnovillo@google.com>
2667
2668 * lto.c (preload_common_nodes): Remove.
2669 (lto_read_in_decl_state): Call lto_streamer_cache_get.
2670 (lto_read_decls): Call lto_data_in_create and
2671 lto_data_in_delete.
2672 (free_decl): Do not call ggc_free.
2673 (lto_main): Call lto_init_reader.
2674 * lto-lang.c (lto_type_for_size): Handle intTI_type_node.
2675 (lto_init): Initialize main_identifier_node if needed.
2676 Make ptrdiff_type_node be integer_type_node.
2677
26782009-06-19 Diego Novillo <dnovillo@google.com>
2679
2680 * lto.c: Remove code guarded by #ifdef LTO_STREAM_DEBUGGING.
2681 Remove code guarded by #ifdef GLOBAL_STREAMER_TRACE.
2682 Remove code guarded by #ifdef LOCAL_TRACE.
2683
26842009-06-18 Diego Novillo <dnovillo@google.com>
2685
2686 * lto.c: Update license to GPLv3.
2687 * lto-elf.c: Likewise.
2688 * common.c: Likewise.
2689 * lto-lang.c: Likewise.
2690 * lto.h: Remove superfluous include files. Update all
2691 users.
2692
26932009-06-17 Diego Novillo <dnovillo@google.com>
2694
2695 * lto.c (read_cgraph_and_symbols): Call input_cgraph.
2696
26972009-06-02 Diego Novillo <dnovillo@google.com>
2698
2699 * lto.c (lto_1_to_1_map): Ignore nodes that have not been
2700 read in.
2701 (materialize_cgraph): Only materialize nodes that have a
2702 representation on file.
2703
27042009-06-01 Diego Novillo <dnovillo@google.com>
2705
2706 * lto-lang.c (lto_handle_option): Hanlde OPT_Wabi.
2707
27082009-05-31 Diego Novillo <dnovillo@google.com>
2709
2710 * lto-lang.c (lto_type_for_mode): Handle all the modes
2711 handled in c_common_type_for_mode.
2712
27132009-05-21 Diego Novillo <dnovillo@google.com>
2714
2715 * lto-elf.c: Always include <gelf.h>.
2716 * config-lang.in (target_libs): Remove.
2717 (build_by_default): Set to no.
2718
27192009-05-15 Diego Novillo <dnovillo@google.com>
2720
2721 * lto.c (lto_materialize_function): Assert that DECL is
2722 not a builtin.
2723 (materialize_cgraph): Don't try to materialize builtin
2724 functions.
2725 * lto-section-out.c (write_symbol_vec): Do not write
2726 builtin functions.
2727
27282009-05-13 Diego Novillo <dnovillo@google.com>
2729
2730 * lto-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define.
2731
27322009-05-07 Diego Novillo <dnovillo@google.com>
2733
2734 * lto.c (lto_resolution_read): Add type casts for C++ warnings.
2735 (LTO_REGISTER_TYPE_AND_FIXUP_SUBTREE): Define.
2736 (lto_fixup_type): Call it for TYPE_POINTER_TO,
2737 TYPE_REFERENCE_TO, TYPE_CONTEXT and TYPE_CANONICAL.
2738 (lto_fixup_tree): Call gimple_register_type when *TP is a
2739 type.
2740 (lto_main): Call bitmap_obstack_initialize.
2741
27422009-04-22 Diego Novillo <dnovillo@google.com>
2743
2744 * lto.c (free_section_data): Tidy.
2745 (lto_1_to_1_map): Tidy.
2746 (lto_add_all_inlinees): Tidy.
2747 (prefix_name_with_star): New.
2748 (get_filename_for_set): New.
2749 (lto_wpa_write_files): Call cgraph_node_set_needs_ltrans_p
2750 to determine what cgraph node sets to write.
2751 Call get_filename_for_set to compute temporary file
2752 names.
2753 (lto_execute_ltrans): Do not execute LTRANS on files with
2754 names that start with '*'.
2755 Move logic to execute LTRANS together so that LTRANS is
2756 invoked only if there are any files to compile.
2757 (do_whole_program_analysis): Only remove output files
2758 that do not start with '*'.
2759
27602009-04-06 Diego Novillo <dnovillo@google.com>
2761
2762 * lto-lang.c (lto_post_options): Set flag_excess_precision_cmdline.
2763 * lto.c (read_cgraph_and_symbols): Set cgraph_function_flags_ready.
2764 (lto_add_all_inlinees): Tidy.
2765
27662009-03-26 Diego Novillo <dnovillo@google.com>
2767
2768 * lto.c: Include gimple.h.
2769 (lto_read_in_decl_state): Call gimple_register_type for
2770 every type in every stream.
2771 (lto_fixup_common): Call gimple_register_type if T has a
2772 type.
2773 (do_whole_program_analysis): Call print_lto_report.
2774 (lto_main): Call print_lto_report after cgraph_optimize.
2775 * Make-lang.in (lto.o): Add dependency on GIMPLE_H.
2776
27772009-03-24 Diego Novillo <dnovillo@google.com>
2778
2779 * Make-lang.in (lto-lang.o): Add dependency on TARGET_H and EXPR_H.
2780 (lto.o): Add dependency on GIMPLE_H.
2781
27822009-03-10 Simon Baldwin <simonb@google.com>
2783
2784 * lto.c (lto_read_all_file_options): Close any open file descriptor
2785 contained in file_data before freeing.
2786
27872009-02-24 Rafael Avila de Espindola <espindola@google.com>
2788
2789 * lto.c (lto_add_inline_clones): Don't add the master clone. Check
2790 for a decl in the original bitmap, not a node.
2791 (lto_add_all_inlinees): Remove original nodes that are not needed.
2792 (lto_scan_statics_in_cgraph_node): Don't care if the node is the master.
2793
27942009-02-24 Diego Novillo <dnovillo@google.com>
2795
2796 * lto.c (lto_materialize_function): Update
2797 lto_stats.num_function_bodies.
2798 (get_section_data): Initialize *LEN to 0.
2799 (lto_1_to_1_map): Update lto_stats.num_cgraph_partitions.
2800 (lto_wpa_write_files): Update lto_stats.num_cgraph_nodes.
2801 Update lto_stats.num_output_files.
2802 (read_cgraph_and_symbols): Update lto_stats.num_input_files.
2803 (materialize_cgraph): Update lto_stats.num_input_cgraph_nodes.
2804 (lto_main): Initialize lto_stats.
2805 If flag_lto_report is set, call print_lto_report.
2806
28072009-02-19 Diego Novillo <dnovillo@google.com>
2808
2809 Revert
2810
2811 2009-02-19 Rafael Avila de Espindola <espindola@google.com>
2812
2813 * lto.c (lto_add_inline_clones): Don't add the
2814 master clone. Check for a decl in the original
2815 bitmap, not a node.
2816 (lto_add_all_inlinees): Remove original nodes
2817 that are not needed.
2818 (lto_scan_statics_in_cgraph_node): Don't care if
2819 the node is the master.
2820 (lto_promote_cross_file_statics): Use a new
2821 context.seen_node_decls for each set
2822
28232009-02-19 Rafael Avila de Espindola <espindola@google.com>
2824
2825 * lto.c (lto_add_inline_clones): Don't add the master clone. Check
2826 for a decl in the original bitmap, not a node.
2827 (lto_add_all_inlinees): Remove original nodes that are not needed.
2828 (lto_scan_statics_in_cgraph_node): Don't care if the node is the master.
2829 (lto_promote_cross_file_statics): Use a new context.seen_node_decls
2830 for each set
2831
28322009-02-18 Diego Novillo <dnovillo@google.com>
2833
2834 * lto.c (lto_wpa_write_files): Use timers TV_WHOPR_WPA
2835 and TV_WHOPR_WPA_IO.
2836 (lto_execute_ltrans): Use timer TV_WHOPR_WPA_LTRANS_EXEC.
2837 (read_cgraph_and_symbols): Use timer TV_IPA_LTO_DECL_IO.
2838 (materialize_cgraph): Use timer TV_IPA_LTO_GIMPLE_IO.
2839 Use timer TV_WHOPR_WPA or TV_WHOPR_LTRANS or TV_LTO
2840 depending on command line flags.
2841 (do_whole_program_analysis): Use timer TV_WHOPR_WPA.
2842 (lto_main): Remove timer uses.
2843
28442009-02-18 Rafael Avila de Espindola <espindola@google.com>
2845
2846 * lto.c (lto_materialize_function): Don't set DECL_EXTERN to 0.
2847 (lto_wpa_write_files): Update calls to renamed functions.
2848
28492009-02-17 Diego Novillo <dnovillo@google.com>
2850
2851 PR 39203
2852 * lto-lang.c (lto_post_options): Disable -fwhole-program
2853 when running LTRANS.
2854
28552009-02-10 Diego Novillo <dnovillo@google.com>
2856
2857 * lto.c (read_cgraph_and_symbols): Fix comment.
2858
28592009-02-10 Diego Novillo <dnovillo@google.com>
2860
2861 * lto.c (read_cgraph_and_symbols): Read options from all
2862 IL files.
2863
28642009-02-10 Diego Novillo <dnovillo@google.com>
2865
2866 * lto.c (read_cgraph_and_symbols): Factor out of lto_main.
2867 (materialize_cgraph): Likewise.
2868 (do_whole_program_analysis): Likewise.
2869 (lto_main): Call read_cgraph_and_symbols,
2870 materialize_cgraph and do_whole_program_analysis.
2871
28722009-02-10 Simon Baldwin <simonb@google.com>
2873
2874 * lto.c: Include lto-opts.h.
2875 * (lto_main): Clear file options at loop start, read any saved
2876 options from the first file handled, and re-issue options.
2877 * Makefile.in (lto.o): Add dependency on lto-opts.h.
2878
28792009-02-02 Diego Novillo <dnovillo@google.com>
2880
2881 * lto.c (lto_main): Stop LTO_TIMER and use
2882 TV_WHOPR_WPA_LTRANS_EXEC when launching LTRANS.
2883
28842009-01-30 H.J. Lu <hongjiu.lu@intel.com>
2885
2886 PR lto/38995
2887 * lto-elf.c (init_shdr##BITS): Set the sh_addralign field
2888 to POINTER_SIZE.
2889
28902009-01-29 Ramana Radhakrishnan <ramana.r@gmail.com>
2891
2892 * Make-lang.in (LTO_EXE): Link with all
2893 BACKENDLIBS and not only GMPLIBS
2894
28952009-01-28 H.J. Lu <hongjiu.lu@intel.com>
2896
2897 PR bootstrap/38992
2898 * lto-elf.c: Include gelf.h instead of libelf.h.
2899 (lto_elf_file_close): Replace elfx_update_shstrndx with
2900 gelf_getehdr, elf_getscn, gelf_getshdr, gelf_update_shdr and
2901 gelf_update_ehdr.
2902
29032009-01-28 H.J. Lu <hongjiu.lu@intel.com>
2904
2905 PR middle-end/38996
2906 * lto-elf.c (DEFINE_INIT_EHDR): Initialize e_version.
2907
29082009-01-26 Diego Novillo <dnovillo@google.com>
2909
2910 * lto-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Update.
2911
29122009-01-26 Diego Novillo <dnovillo@google.com>
2913
2914 * lto-lang.c (lto_types_compatible_p): Move to gimple.c
2915 and rename into gimple_types_compatible_p.
2916
29172009-01-12 Rafael Avila de Espindola <espindola@google.com>
2918
2919 * lto-lang.c (lang_hooks): Remove the const qualifier.
2920
29212009-01-06 Diego Novillo <dnovillo@google.com>
2922
2923 * ltrans-driver: Mark 'all' target as phony.
2924
29252008-12-31 Diego Novillo <dnovillo@google.com>
2926
2927 * ltrans-driver: Execute a NOP action for target 'all'.
2928
29292008-12-19 Diego Novillo <dnovillo@google.com>
2930
2931 * lto.c (lto_1_to_1_map): Tidy.
2932
29332008-12-19 Diego Novillo <dnovillo@google.com>
2934
2935 * lto-elf.c (lto_elf_file_open): When FILENAME cannot
2936 be opened, show its name.
2937 * ltrans-driver: If $verbose is set, do not use parallelism.
2938
29392008-12-17 Rafael Avila de Espindola <espindola@google.com>
2940
2941 * lto.c (lto_fixup_function): New.
2942 (lto_fixup_tree): Call lto_fixup_function.
2943
29442008-12-14 Doug Kwan <dougkwan@google.com>
2945
2946 * lto.c (lto_1_to_1_map): Create a cgraph node set for any global
2947 variables if there is no function.
2948
29492008-12-10 Simon Baldwin <simonb@google.com>
2950
2951 * ltrans-driver: Always run make in silent mode, to avoid make's
2952 trace on stdout interfering with lto-wrapper output.
2953
29542008-12-10 Doug Kwan <dougkwan@google.com>
2955
2956 * lto.c (lto_add_inline_clones): Do not force master clones of
2957 inlined functions already in SET to be static inline.
2958
29592008-12-04 Doug Kwan <dougkwan@google.com>
2960
2961 * lto.c (globalize_context_t): New type to store states in
2962 globalization of cross-file statics.
2963 (globalize_cross_file_statics): New.
2964 (lto_scan_statics_in_ref_table): Walk tree to look for reachable
2965 static decls that need to be fixed up.
2966 (lto_scan_statics_in_cgraph_node): Change call interface to use
2967 a globalize_context_t CONTEXT for all states used.
2968 (lto_scan_statics_in_remaining_global_vars): New.
2969 (lto_promote_cross_file_statics): Use new call interface of
2970 LTO_SCAN_STATICS_IN_CGRAPH_NODE. Handle remaining externally
2971 visible vars in the last set.
2972
29732008-12-03 Diego Novillo <dnovillo@google.com>
2974
2975 * lto.c (lto_fixup_tree): Do not emit an error when
2976 PREVAILING throw but T doesn't.
2977
29782008-12-02 Doug Kwan <dougkwan@google.com>
2979
2980 * lto.c (lto_scan_statics_in_ref_table): New function factored out
2981 from code in ...
2982 (lto_scan_statics_in_cgraph_node): Handle both file-scope static
2983 variables and functions.
2984 (lto_promote_cross_file_statics): Rename bitmaps to SEEN_DECLS
2985 and GLOBAL_DECLS from SEEN_VARS and GLOBAL_VARS.
2986
29872008-11-29 Diego Novillo <dnovillo@google.com>
2988
2989 * lto.c: Include timevar.h.
2990 (lto_materialize_function): Tidy. Add comments.
2991 (lto_wpa_write_files): Tidy.
2992 (lto_execute_ltrans): Tidy.
2993 (lto_main): Add local variable LTO_TIMER. Initialize it
2994 to one of TV_WHOPR_WPA, TV_WHOPR_LTRANS or TV_LTO.
2995 Start and stop the timer.
2996 Tidy comments.
2997 * Make-lang.in (lto.o): Add dependency on timevar.h.
2998 * ltrans-driver: React to -v and -save-temps.
2999 Use simple heuristic to determine how much parallelism to
3000 use when executing make.
3001
30022008-11-12 Doug Kwan <dougkwan@google.com>
3003
3004 * lto.c (lto_bitmap_obstack): Remove var.
3005 (lto_materialize_function): Do nothing instead of marking function
3006 body in file if flag_wpa is true.
3007 (lto_add_all_inlinees): Use bitmap functions in lto-utils.c.
3008 (lto_scan_statics_in_cgraph_node): New function.
3009 (lto_promote_cross_file_statics): Same.
3010 (lto_wpa_write_files): Call lto_promote_cross_file_statics.
3011 Use bitmap functions in lto-utils.c. Remove unsued label OUT.
3012 * Make-lang.in (lto/lto.o): Add lto-utils.h to dependency list.
3013
30142008-11-09 Diego Novillo <dnovillo@google.com>
3015
3016 * lto/lto.c (lto_fixup_tree): Change error message locus
3017 information to include location of mismatching
3018 declaration.
3019 Use TREE_NO_WARNING to avoid repeated messages.
3020 (lto_main): If lto_fixup_decls emitted any errors, exit.
3021 * lto/lto-lang.c: Don't include libfuncs.h and except.h
3022 (lto_init_options): Don't enable exceptions by default.
3023 (lto_eh_runtime_type): Move to lto-function-in.c
3024 (lto_init_eh): Likewise.
3025 (lto_init): Don't call lto_init_eh.
3026 * lto/Make-lang.in (lto-lang.o): Remove dependency on
3027 libfuncs.h and except.h.
3028
30292008-10-30 Diego Novillo <dnovillo@google.com>
3030
3031 * lto.c (lto_read_decls): Declare debug_main only if
3032 LTO_STREAM_DEBUGGING is enabled.
3033
30342008-10-30 Simon Baldwin <simonb@google.com>
3035
3036 * lto.c (lto_wpa_write_files): Create intermediate files with
3037 make_cwd_temp_file().
3038 (lto_maybe_unlink): New. Delete intermediate WPA files unless
3039 WPA_SAVE_LTRANS is set.
3040 (lto_main): Call lto_maybe_unlink() for intermediate WPA files.
3041 * ltrans-driver: Do not strip directory from output files.
3042
30432008-10-29 Doug Kwan <dougkwan@google.com>
3044
3045 * lto.c (free_decl): Call lto_symtab_clear_resolution when freeing
3046 DECL.
3047 * Make-lang.in (LTO_OBJS): Remove lto/lto-symtab.o
3048 (lto/lto-symtab.o): Remove rule.
3049 * lto-tree.h (struct lang_identifier): Remove LTO specific fields.
3050 (struct lang_decl): Remove RESOLUTION and add DUMMY in struct.
3051 (LANG_IDENTIFIER_CAST, LTO_IDENTIFIER_DECL, LTO_DECL_RESOLUTION):
3052 Remove macros.
3053 lto-symtab.c (File): Move up one level.
3054 lto-lang.c (cgraph.h): Remove include.
3055 (input_overwrite_node, input_node, input_edge, input_cgraph_1,
3056 input_cgraph): Move to lto-cgraph.c in gcc directory above.
3057 (LANG_HOOKS_INPUT_CGRAPH): Remove use of macro.
3058
30592008-10-24 Rafael Espindola <espindola@google.com>
3060
3061 * lto-function-in.c (get_resolution): Return LDPR_PREEMPTED_IR for
3062 non prevailing weak symbols.
3063
30642008-10-24 Rafael Espindola <espindola@google.com>
3065
3066 * lto-lang.c (input_cgraph_1): Iterate over nodes, not cgraph_nodes.
3067
30682008-10-24 Rafael Espindola <espindola@google.com>
3069
3070 * lto-lang.c (input_node): Avoid casts from pointers to ints of
3071 different types.
3072
30732008-10-23 Simon Baldwin <simonb@google.com>
3074
3075 * lto-lang.c (input_node): Save the node reference, rather than the
3076 node pointer, in node->inlined_to.
3077 (input_cgraph_1): Convert node references into node pointers.
3078
30792008-10-22 Diego Novillo <dnovillo@google.com>
3080 Rafael Espindola <espindola@google.com>
3081
3082 * lto.c (lto_resolution_read): Tidy.
3083 * lto-symtab.c (lto_symtab_prevailing_decl): Do not
3084 abort if RET is NULL.
3085
30862008-10-22 Doug Kwan <dougkwan@google.com>
3087
3088 * lto.c (lto_fixup_tree): Check for NOTHROW conflict only if
3089 exceptions flag is given.
3090 * lto-lang.c: (lto_init_options) Set default exceptions flag.
3091 (lto_init_eh): Remove exceptions flag initialization.
3092 (lto_init): Only call lto_init_eh if exceptions flag is set.
3093
30942008-10-21 Diego Novillo <dnovillo@google.com>
3095
3096 * lto.c: Tidy some formatting.
3097 * lto.h: Likewise.
3098
30992008-10-21 Simon Baldwin <simonb@google.com>
3100
3101 * lto-symtab.c: (lto_same_type_p): Types cannot be equal if one of
3102 them is NULL (but not the other).
3103
31042008-10-17 Diego Novillo <dnovillo@google.com>
3105
3106 * ltrans-driver: Divert output from make to a temporary file.
3107 Show it if the call to make failed.
3108
31092008-10-15 Diego Novillo <dnovillo@google.com>
3110
3111 * lto.c (lto_wpa_write_files): Reformat do-while loop.
3112 Do not print TEMP_FILENAME
3113 * ltrans-driver: Call make with -s.
3114
31152008-10-15 Diego Novillo <dnovillo@google.com>
3116
3117 * lto-symtab.c (lto_symtab_merge_decl): Do not force
3118 TREE_STATIC on global symbols.
3119
31202008-10-14 Ollie Wild <aaw@google.com>
3121
3122 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): Remove.
3123 (LTRANS_DRIVER_EXE): Add.
3124 (lto.all.cross): Add LTRANS_DRIVER_EXE.
3125 (lto.all.encap): Add LTRANS_DRIVER_EXE.
3126 (lto.install.common): Remove ltrans-driver.
3127 (lto.mostlyclean): Add LTRANS_DRIVER_EXE.
3128 (LTRANS_DRIVER_EXE): New build rule.
3129 * config-lang.in (compilers): Add ltrans-driver.
3130
31312008-10-14 Diego Novillo <dnovillo@google.com>
3132
3133 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): Disable transformation
3134 of program name.
3135
31362008-10-13 Ollie Wild <aaw@google.com>
3137
3138 * lang-spec.h (@lto): Replace lto1_options with cc1_options.
3139 * lto.c (lto_execute_ltrans): Add "-fno-wpa -fltrans -xlto" to CFLAGS.
3140 * ltrans-driver (LTRANS_FLAGS): Remove.
3141
31422008-10-08 Doug Kwan <dougkwan@google.com>
3143
3144 * lto.c (lto_fixup_tree): Remove ATTRIBUTE_UNUSED from DATA.
3145 Handle new tree codes RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE
3146 and TREE_BINFO. Also move code handling FUNCTION_DECL and VAR_DECL
3147 from lto_fixup_state to here.
3148 (lto_fixup_state): Take an lto_fixup_data_t object DATA instead of
3149 just a free-list. Fix up types also. Move decl merging code to
3150 lto_fixup_tree.
3151 (lto_fixup_state_aux): Change AUX to point to an lto_fixup_data_t
3152 object.
3153 (lto_fixup_decls): Use another pointer set to avoid multiple
3154 walking of nodes except for DECLs to be replaced. Pass an
3155 lto_fixup_data_t object to tree-walker.
3156
31572008-10-08 Rafael Espindola <espindola@google.com>
3158
3159 * lto-symtab.c (lto_symtab_set_resolution): New.
3160 (lto_symtab_merge_decl): Use lto_symtab_set_resolution and
3161 lto_symtab_get_resolution.
3162 (lto_symtab_prevailing_decl): Return decl for non public decls.
3163 (lto_symtab_get_resolution): New.
3164 * lto.c (lto_fixup_tree, lto_fixup_state): Remove unecessary checks.
3165
31662008-10-06 Rafael Espindola <espindola@google.com>
3167
3168 * lto-lang.c: Include cgraph.h.
3169 (input_overwrite_node, input_node, input_edge, input_cgraph_1,
3170 input_cgraph): Moved from lto-cgraph.c.
3171 (LANG_HOOKS_INPUT_CGRAPH): New.
3172
31732008-10-03 Rafael Espindola <espindola@google.com>
3174
3175 * lto.c (lto_fixup_tree, lto_fixup_state): Fix the FIXME.
3176
31772008-10-03 Rafael Espindola <espindola@google.com>
3178
3179 * lto-symtab.c (lto_symtab_overwrite_decl): Remove. Remove all calls.
3180 (lto_symtab_merge_decl): Update LTO_IDENTIFIER_DECL the reflect the
3181 prevailing definition. Don't mark TREE_NOTHROW differences.
3182 * lto.c (lto_fixup_tree): New.
3183 (lto_fixup_state): New.
3184 (lto_fixup_state_aux): New.
3185 (free_decl): New.
3186 (lto_fixup_decls): New.
3187 (lto_main): Call lto_fixup_decls.
3188
31892008-10-02 Ollie Wild <aaw@google.com>
3190
3191 * lang.opt (fltrans): Moved from common.opt. Remove RejectNegative
3192 and Init.
3193 (fwpa): Moved from common.opt. Remove RejectNegative and Init.
3194 * lto-lang.c (lto_post_options): Add validation and fixups for
3195 -fltrans and -fwpa.
3196
31972008-10-02 Rafael Espindola <espindola@google.com>
3198
3199 * lto-symtab.c (lto_symtab_merge_var, lto_symtab_merge_fn,
3200 lto_symtab_merge_decl): Return void.
3201 (lto_symtab_prevailing_decl): New.
3202
32032008-09-30 Rafael Espindola <espindola@google.com>
3204
3205 * lto-symtab.c (lto_symtab_compatible): Remove the check for already
3206 defined symbols.
3207 (lto_symtab_overwrite_decl): Copy LTO_DECL_RESOLUTION.
3208 (lto_symtab_merge_decl): Store symbol resolution in LTO_DECL_RESOLUTION.
3209 Check for already defined symbols.
3210 * lto-tree.h (lang_decl): Remove dummy and add resolution fields.
3211 (LTO_IDENTIFIER_RESOLUTION): Remove.
3212 (LTO_DECL_RESOLUTION): New.
3213
32142008-09-30 Rafael Espindola <espindola@google.com>
3215
3216 * lto.c (lto_read_decls): Use new input_tree signature.
3217
32182008-09-26 Doug Kwan <dougkwan@google.com>
3219
3220 * lto.c (lto_main): Call lto_fixup_nothrow_decls to fix up function
3221 bodies affected by exception attribute merging of DECLs.
3222 * lto-symtab.c (lto_symtab_merge_decl): Handle exception attribute
3223 merging.
3224
32252008-09-25 Rafael Espindola <espindola@google.com>
3226
3227 * Make-lang.in (PLUGIN_API_H, LTO_TREE_H): New.
3228 (lto/lto-lang.o, lto/lto.o, lto/lto-symtab.o) Use LTO_TREE_H.
3229 * lto-symtab.c (lto_symtab_compatible): New.
3230 (lto_symtab_overwrite_decl): New.
3231 (lto_symtab_merge_decl): Refactor to use the above functions
3232 and the resolution from lang_identifier.
3233 * lto-tree.h: Include plugin-api.h.
3234 (lang_identifier): Add resolution.
3235 (LTO_IDENTIFIER_RESOLUTION): New.
3236
32372008-09-25 Ollie Wild <aaw@google.com>
3238
3239 * lang.opt (fltrans-output-list=): New option.
3240 * lto.c (lto_execute_ltrans): Output file names to ltrans_output_list.
3241
32422008-09-25 Rafael Espindola <espindola@google.com>
3243
3244 * lto.c (lto_resolution_read): Initialize ret;
3245
32462008-09-24 Ollie Wild <aaw@google.com>
3247
3248 * lto.c (sys/mman.h): Move include.
3249 (lto_wpa_write_files): Return a list of written files.
3250 (lto_execute_ltrans): New function.
3251 (lto_main): Call lto_execute_ltrans.
3252 (ltrans-driver): New file.
3253 * lto-lang.c (DEFAULT_LTRANS_DRIVER): New macro.
3254 (DEAULT_LTRANS_DRIVER_LEN): New macro.
3255 (lto_init_options): Initialize ltrans_driver.
3256 (lto_handle_option): Fix incorrect default output value.
3257 * lang.opt (fltrans-driver=): New option.
3258 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): New variable.
3259 (lto.install-common): Add lto/ltrans-driver.
3260
32612008-09-24 Rafael Espindola <espindola@google.com>
3262
3263 * Make-lang.in (LTO_OBJS): Add lto/common.o.
3264 (lto/lto.o): Depend on lto/common.h.
3265 (lto/common.o): New.
3266 * lang.opt (resolution): New.
3267 * lto-lang.c (resolution_file_name): New.
3268 (lto_handle_option): Handle OPT_resolution.
3269 * lto-symtab.c (lto_symtab_merge_decl): Add a resolution argument.
3270 (lto_symtab_merge_var,lto_symtab_merge_fn): Add a resolution argument.
3271 pass it to lto_symtab_merge_decl.
3272 * lto.c: Include common.h.
3273 (lto_read_decls): Add resolutions and resolutions_size arguments.
3274 Initialize data_in.globals_resolution and
3275 data_in.globals_resolution_size.
3276 (index_and_symbol_resolution): New.
3277 (lto_resolution_read): New.
3278 (lto_file_read): Add argument resolution_file.
3279 Read resolution.
3280 * lto.h (resolution_file_name): New.
3281
32822008-09-23 Rafael Espindola <espindola@google.com>
3283
3284 * common.c: Update description.
3285 * common.h: Update description.
3286
32872008-09-23 Rafael Espindola <espindola@google.com>
3288
3289 * common.c: Moved from lto-plugin.
3290 * common.h: Moved from lto-plugin.
3291
32922008-09-22 Doug Kwan <dougkwan@google.com>
3293
3294 * lto.c (VEC(bitmap,heap)): Declare.
3295 (lto_materialize_function): Handle WAP mode specially.
3296 (lto_add_inline_clones): New.
3297 (lto_add_all_inlinees): Changle algorithm and to use bitmaps. Also
3298 return a bitmap of inlined decls.
3299 (lto_wpa_write_files): Handle all DECLs brought in by inlining.
3300 (lto_main): Call reset_inline_failed to reset inlining states.
3301 Check call-graph after WPA inlining.
3302 * lto-lang.c (lto_init): Do not clear flag_generate_lto
3303 unconditionally.
3304
33052008-09-19 Doug Kwan <dougkwan@google.com>
3306
3307 lto.c (lto_main): Remove unsued wrapper code.
3308 lang-specs.h (@lto): Use lto1_options instead of cc1_options.
3309
33102008-09-19 Rafael Espindola <espindola@google.com>
3311
3312 * lto-symtab.c: Include lto-tree-in.h.
3313 * lto-tree.h (lto_symtab_merge_var, lto_symtab_merge_fn): Remove.
3314 * lto.h (lto_symtab_merge_var, lto_symtab_merge_fn): Remove
3315 * Make-lang.in (lto/lto-symtab.o): Add lto-tree-in.h.
3316
33172008-09-17 Paolo Bonzini <bonzini@gnu.org>
3318 Rafael Avila de Espindola <espindola@google.com>
3319
3320 * lto-lang.c (COMPOUND_LITERAL_EXPR_DECL_STMT,
3321 COMPOUND_LITERAL_EXPR_DECL): Remove.
3322 (emit_local_var): Remove.
3323 (lto_expand_expr): Remove.
3324 (lto_staticp): Remove.
3325 (LANG_HOOKS_EXPAND_EXPR): Remove.
3326 (LANG_HOOKS_STATICP): Remove.
3327
33282008-09-11 Diego Novillo <dnovillo@google.com>
3329
3330 * lto-lang.c: Include except.h and libfuncs.h.
3331 (lto_init_eh): New.
3332 (lto_init): Call it.
3333 Set flag_generate_lto to 0.
3334 * Make-lang.in (lto-lang.o): Add dependency on except.h
3335 and libfuncs.h.
3336
33372008-09-09 Bill Maddox <maddox@google.com>
3338
3339 * lto-lang.c: Include header file expr.h.
3340 (COMPOUND_LITERAL_EXPR_DECL_STMT,
3341 COMPOUND_LITERAL_EXPR_DECL): Copied from c-common.h.
3342 (emit_local_var): Copied from c-semantics.c.
3343 (lto_expand_expr, lto_staticp): Copied from c_expand_expr
3344 and c_staticp in c-common.c.
3345 (LANG_HOOKS_EXPAND_EXPR,LANG_HOOKS_STATICP): Redefined.
3346
33472008-09-08 Diego Novillo <dnovillo@google.com>
3348
3349 * lto-lang.c (lto_global_bindings_p): Return 1 during
3350 IPA passes.
3351
33522008-09-07 Diego Novillo <dnovillo@google.com>
3353
3354 * lto.c: Tidy formatting.
3355
33562008-08-04 Bill Maddox <maddox@google.com>
3357
3358 * lto-symtab.c (lto_symtab_merge_decl): Add comment.
3359
33602008-09-03 Doug Kwan <dougkwan@google.com>
3361
3362 lto.c (lto_add_all_inlinees): Reset FAILED_REASON of edges to
3363 CIF_OK instead of NULL.
3364
33652008-09-02 Diego Novillo <dnovillo@google.com>
3366 Simon Baldwin <simonb@google.com>
3367
3368 * lto-lang.c (lto_type_for_size): Rewrite. Adapt from
3369 c_common_type_for_size.
3370 (lto_type_for_mode): Remove ATTRIBUTE_UNUSED markers.
3371 (lto_init): Call linemap_add.
3372 (signed_and_unsigned_types): Remove.
3373
33742008-08-29 Diego Novillo <dnovillo@google.com>
3375
3376 * lto-lang.c (handle_noreturn_attribute): New local function.
3377 (handle_const_attribute): New local function.
3378 (handle_malloc_attribute): New local function.
3379 (handle_pure_attribute): New local function.
3380 (handle_novops_attribute): New local function.
3381 (handle_nonnull_attribute): New local function.
3382 (handle_nothrow_attribute): New local function.
3383 (handle_sentinel_attribute): New local function.
3384 (handle_type_generic_attribute): New local function.
3385 (handle_format_attribute): New local function.
3386 (handle_format_arg_attribute): New local function.
3387 (lto_attribute_table): Declare.
3388 (lto_format_attribute_table): Declare.
3389 (lto_init_attributes): New local function.
3390 (lto_define_builtins): Call it.
3391 Call targetm.init_builtins and build_common_builtin_nodes.
3392 (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Define.
3393 (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Define.
3394
33952008-08-28 Diego Novillo <dnovillo@google.com>
3396
3397 * Make-lang.in (lto-lang.o): Replace tree-gimple.h with
3398 $(GIMPLE_H).
3399 (lto-symtab.o): Add dependency on $(GIMPLE_H).
3400 * lto-lang.c: Include gimple.h instead of tree-gimple.h.
3401 * lto-symtab.c: Include gimple.h.
3402 * lto-tree.h (chain_next): Replace GENERIC_NEXT with
3403 TREE_CHAIN.
3404
34052008-08-27 Doug Kwan <dougkwan@google.com>
3406
3407 * lto.c (vec.h, bitmap.h, pointer-set.h, ipa-prop.h, ggc.h,
3408 gt-lto-lto.h): New includes.
3409 (lto_materialize_function): Do not read in function body in WPA mode.
3410 Format a line to fit in 80 columns.
3411 (lto_cgraph_node_sets): New garbage collected variable.
3412 (lto_1_to_1_map, lto_add_all_inlinees, lto_wpa_write_files):
3413 New functions.
3414 (lto_main): Initialize bitmap obstack. Add code to handle WPA mode.
3415 * Make-lang.in (LTO_H): Replace filename lto-section-in.h with
3416 variable LTO_SECTION_IN_H.
3417 (lto/lto.o): Include gt-lto-lto-c.h ggc.h ,VEC_H, BITMAP_H,
3418 pointer-set.h and IPA_PROP_H. Also replace filename lto-section-in.h
3419 with variable LTO_SECTION_IN_H.
3420 * config-lang.in (gtfiles): Add lto/lto.c.
3421 * lto-symtab.c (lto_symtab_merge_decl): Set DECL_CONTEXT of
3422 merged DECL_RESULT correctly.
3423
34242008-08-26 Bill Maddox <maddox@google.com>
3425
3426 * lto-lang.c Include tree-gimple.h.
3427 (lto_mark_addressable): Call mark_addressable rather than
3428 asserting.
3429 (lto_post_options): Suppress debug info generation.
3430 * Make-lang.in: Add dependency of lto-lang.o on tree-gimple.h.
3431
34322008-08-25 Bill Maddox <maddox@google.com>
3433
3434 * lto-symtab.c (lto_symtab_merge_decl): Remove a suspect
3435 assertion and leave an explanatory comment in its place.
3436
34372008-08-21 Doug Kwan <dougkwan@google.com>
3438
3439 * lto.c (preload_common_nodes): Call lto_get_common_nodes to get a list
3440 of common nodes instead of computing locallly.
3441 (lto_read_in_decl_state): New.
3442 (lto_read_decls): Change code for udpate in struct lto_decl_header.
3443 Read global and per-function in-decl states.
3444 * Make-lang.in (LTO_H): Update dependency.
3445 (lto/lto.o): Same.
3446 (lto-symtab.c): Merge (revision 139039)
3447 * lto-symtab.c (lto_symtab_merge_decl): Merge DECL_RESULT.
3448
34492008-08-21 Rafael Espindola <espindola@google.com>
3450
3451 * config-lang.in (target_libs): New.
3452
34532008-08-20 Bill Maddox <maddox@google.com>
3454
3455 * lto.c (current_lto_file): Remove GTY marker from static
3456 variable. Remove include of file gt-lto-lto.h.
3457 * Make-lang.in: Remove dependency of lto/lto.o on
3458 gt-lto-lto.h.
3459 * lto-elf.c (lto_file_close): Removed.
3460 (lto_elf_file_open): Use XCNEW instead of GGC_CNEW to
3461 allocate lto_elf_file object.
3462 (lto_elf_file_close): Free lto_elf_file object after close.
3463 * lto.h (struct lto_file_struct): Remove GTY marker.
3464 * config-lang.in: Remove lto/lto.h and lto/lto.c from
3465 gtfiles.
3466
34672008-08-20 Bill Maddox <maddox@google.com>
3468
3469 * lto.c (lto_read_decls): Provide dummy argument to input_tree
3470 to conform to its new signature.
3471 * lto-symtab.c (lto_symtab_merge_decl): Do not invoke ggc_free
3472 on discarded node here, now called in global_vector_fixup.
3473
34742008-08-09 Bill Maddox <maddox@google.com>
3475
3476 * lto.c (preload_common_nodes): Verify that fileptr_type_node
3477 has not been set to a front-end-specific value.
3478
34792008-08-05 Doug Kwan <dougkwan@google.com>
3480
3481 * Make-lang.in (lto-symtab.o): Add missing dependencies to fix
3482 build breakage.
3483
34842008-07-30 Bill Maddox <maddox@google.com>
3485
3486 * lto.c (lto_materialize_function): Call lto_original_decl_name.
3487 Remove obsolete comments.
3488 (lto_read_decls): Remove initialization of deleted field data_in.global.
3489 Tidy up comments.
3490 (lto_main): Remove redundant initialization of section_hash_table.
3491 * lto-elf.c: Removed obsolete comments.
3492 * lto.h: Tidy up comments.
3493 * lto-symtab.c (lto_least_common_multiple): New function.
3494 (lto_symtab_merge_decl): Merge variable alignments in some cases.
3495 Tidy up comments.
3496
34972008-07-25 Diego Novillo <dnovillo@google.com>
3498 Bill Maddox <maddox@google.com>
3499
3500 * lto.c: Re-order include files.
3501 Include lto-section-out.h.
3502 (preload_common_nodes): Add debugging output.
3503 Add new local INDEX_TABLE.
3504 Call preload_common_node.
3505 * Make-lang.in (lto.o): Add dependency on lto-section-out.h
3506
35072008-07-13 Bill Maddox <maddox@google.com>
3508
3509 * lto.c (lto_read_decls): Cast pointer to const char * to avoid
3510 unwanted scaling during pointer addition.
3511
35122008-07-11 Bill Maddox <maddox@google.com>
3513 Diego Novillo <dnovillo@google.com>
3514
3515 * lto.c (lto_read_decls): Fix C++ compatibility warnings.
3516 Make code const-correct.
3517 (lto_file_read): Fix C++ compatibility warnings.
3518 (lto_read_section_data): Fix C++ compatibility warnings.
3519 (lto_get_section_data): Use CONST_CAST to avoid warning when
3520 const pointer passed to free.
3521 * lto-elf.c (lto_elf_build_section_table): Fix C++
3522 compatibility warnings.
3523 (lto_elf_append_data): Fix C++ compatibility warnings. Use CONST_CAST
3524 to avoid warning assigning const pointer to d_buf field of Elf_Data.
3525 (lto_get_current_out_file): Fix C++ compatibility warnings.
3526
35272008-07-11 Diego Novillo <dnovillo@google.com>
3528
3529 * Make-lang.in (lto-warn): Define.
3530
35312008-07-03 Simon Baldwin <simonb@google.com>
3532
3533 * lto.c (lto_read_decls): Wrapped debug-only data items within #ifdef
3534 LTO_STREAM_DEBUGGING.
3535
35362008-06-27 Ollie Wild <aaw@google.com>
3537
3538 * lto-elf.c (lto-section-out.h): New include.
3539 (struct lto_elf_file): Remove bits member. Add scn, shstrtab_stream,
3540 and data members.
3541 (cached_file_attrs): New static variable.
3542 (lto_elf_get_shdr, lto_elf_free_shdr): Remove elf_file parameter.
3543 Use cached_file_attrs for checking bits.
3544 (lto_elf_build_section_table): Remove elf_file argument from
3545 lto_elf_get_shdr and lto_elf_free_shdr calls.
3546 (DEFINE_INIT_SHDR): New macro.
3547 (init_shdr32, init_shdr64): New functions defined via the
3548 DEFINE_INIT_SHDR macro.
3549 (lto_elf_begin_section_with_type): New function.
3550 (lto_elf_begin_section): New function.
3551 (lto_elf_append_data): New function.
3552 (lto_elf_end_section): New function.
3553 (DEFINE_VALIDATE_EHDR): New macro.
3554 (validate_ehdr32, validate_ehdr64): New functions defined via the
3555 DEFINE_VALIDATE_EHDR macro.
3556 (validate_file): New function.
3557 (DEFINE_INIT_EHDR): New macro.
3558 (init_ehdr32, init_ehdr64): New functions defined via the
3559 DEFINE_INIT_EHDR macro.
3560 (init_ehdr): New function.
3561 (lto_elf_file_open): Add support for writable files. Move some
3562 validation logic to validate_file.
3563 (lto_elf_file_close): Add support for writable files. Write file data
3564 and free data blocks.
3565 (current_out_file): New static variable.
3566 (lto_set_current_out_file): New function.
3567 (lto_get_current_out_file): New function.
3568 * lto.c (lto_main): Add writable argument to lto_elf_file_open calls.
3569 Add temporary initialization for testing ELF serialization.
3570 * lto.h (lto-section-out.h): New include.
3571 (struct lto_file_struct): Slight modification to comment.
3572 (lto_elf_file_open): Add writable parameter.
3573 (lto_elf_begin_section): New function declaration.
3574 (lto_elf_append_data): New function declaration.
3575 (lto_elf_end_section): New function declaration.
3576 (lto_set_current_out_file, lto_get_current_out_file): New function
3577 declarations.
3578 * lto-lang.c (LANG_HOOKS_BEGIN_SECTION): Set as lto_elf_begin_section.
3579 (LANG_HOOKS_APPEND_DATA): Set as lto_elf_append_data.
3580 (LANG_HOOKS_END_SECTION): Set as lto_elf_end_section.
3581 * Make-lang.in (LTO_H): Add lto-section-out.h.
3582
35832008-06-12 Ollie Wild <aaw@google.com>
3584
3585 * lto.h (struct lto_file_vtable_struct): Remove.
3586 (struct lto_file_struct): Remove vtable member.
3587 * lto-elf.c (lto_file_init): Remove vtable argument.
3588 (lto_elf_map_optional_lto_section): Remove.
3589 (lto_elf_unmap_section): Remove.
3590 (lto_elf_file_vtable): Remove.
3591 (lto_elf_file_open): Remove lto_elf_file_vtable argument from
3592 lto_file_init call.
3593 (lto_elf_find_section_data): Remove.
3594
35952008-06-11 Ollie Wild <aaw@google.com>
3596
3597 * lto.c (lto_file_read): Add const qualifier to data variable.
3598
35992008-06-11 Diego Novillo <dnovillo@google.com>
3600
3601 Merge from lto-streamber sub-branch.
3602
3603 2008-06-04 Ollie Wild <aaw@google.com>
3604
3605 * lto.c: Remove inclusion of dwarf2.h and dwarf2out.h.
3606 * Make-lang.in (lto.o): Remove dependency on dwarf2.h.
3607
3608 2008-05-28 Bill Maddox <maddox@google.com>
3609
3610 Replace the DWARF reader in the LTO front-end.
3611
3612 * lto.c: Include lto-tree-in.h, lto-tags.h.
3613 (enum DWARF2_class, DW_cl_constant, struct
3614 DWARF2_form_data, struct lto_context,
3615 lto_fd_init, lto_info_fd_init,
3616 lto_abbrev_fd_init, lto_info_fd_close,
3617 lto_file_init, lto_file_close,
3618 lto_file_corrupt_error, lto_abi_mismatch_error,
3619 LTO_CHECK_INT_VAL, LTO_READ_TYPE,
3620 lto_read_uleb128, lto_read_sleb128,
3621 lto_read_initial_length, lto_abbrev_read_attrs,
3622 lto_abbrev_read, lto_abbrev_read_lookup,
3623 lto_read_section_offset,
3624 lto_read_comp_unit_header, find_cu_for_offset,
3625 lto_get_file_name,
3626 lto_resolve_reference,lto_read_form,
3627 attribute_value_as_int,
3628 make_signed_host_wide_int,
3629 attribute_value_as_constant, lto_cache_hash,
3630 lto_cache_eq, lto_cache_store_DIE,
3631 lto_cache_lookup_DIE, lto_find_integral_type,
3632 lto_find_integral_type_1,
3633 LTO_BEGIN_READ_ATTRS_UNCHECKED,
3634 LTO_BEGIN_READ_ATTRS, LTO_END_READ_ATTRS,
3635 lto_unsupported_attr_error, lto_get_identifier,
3636 lto_read_referenced_type_DIE,
3637 lto_read_compile_unit_DIE,
3638 lto_read_array_type_DIE,
3639 lto_read_structure_union_class_type_DIE,
3640 lto_read_enumerator_DIE,
3641 lto_read_enumeration_type_DIE,
3642 lto_read_only_for_child_DIEs,
3643 lto_read_only_for_child_DIEs,
3644 lto_read_member_DIE, lto_read_abbrev,
3645 lto_read_variable_formal_parameter_constant_DIE,
3646 lto_get_body): Removed.
3647 (preload_common_nodes): New function.
3648 (lto_read_decls): Convert for new global streamer.
3649 (lto_materialze_file_data,
3650 lto_read_subroutine_type_subprogram_die,
3651 lto_read_unspecified_parameters_DIE,
3652 lto_read_typedef_DIE,
3653 lto_read_pointer_reference_type_DIE,
3654 lto_read_subrange_type_DIE,
3655 lto_read_base_type_DIE,
3656 lto_read_const_volatile_restrict_type_DIE,
3657 lto_read_namespace_DIE,
3658 lto_read_unspecified_type_DIE, lto_read_DIE,
3659 lto_read_child_DIEs, lto_collect_child_DIEs):
3660 Removed.
3661 (lto_info_read, lto_set_cu_context): Removed.
3662 (lto_file_read): Convert for new global streamer.
3663 (lto_resolve_type_ref, lto_read_DIE_at_ptr,
3664 lto_resolve_var_ref, lto_resolve_fn_ref,
3665 lto_resolve_field_ref, lto_resolve_typedecl_ref,
3666 lto_resolve_namespacedecl_ref): Removed.
3667 (lto_file_init, lto_file_close): Moved to lto-elf.c.
3668 * lto-tree.h (lto_symtab_merge_var,
3669 lto_symtab_mergee_fun): Declare here.
3670 * lto-elf.c (lto_file_init, lto_file_close): Moved from lto.c.
3671 (lto_elf_file_open): Removed code to read DWARF debug sections.
3672 * lto.h (lto_context, DWARF2_attr, DWARF2_abbrev,
3673 DWARF2_CompUnit, lto_die_ptr,
3674 lto_die_cache_entry, lto_fd, lto_info_fd,
3675 lto_abbrev_fd): Removed.
3676 (lto_file): Removed debug_info and debug_abbrev fields.
3677 (lto_ref): Removed.
3678 (lto_file_init, lto_file_close,
3679 lto_resolve_type_ref, lto_resolve_var_ref,
3680 lto_resolve_fn_ref, lto_resolve_field_ref,
3681 lto_resolve_typedecl_ref,
3682 lto_resolve_namespacedecl_ref,
3683 lto_get_file_name): Removed declarations.
3684 (lto_symtab_merge_var, lto_symtab_merge_fn):
3685 Declarations moved to lto-tree.h.
3686 * lto-symtab.c (lto_compatible_attributes_p):
3687 Lobotomize this, as it barfs on "Hello, world!".
3688 * lto-section-out.c: Include lto-tree-out.h.
3689 (lto_hash_global_slot_node,
3690 lto_eq_global_slot_node, preload_common_nodes,
3691 write_global_stream, write_global_references):
3692 New functions.
3693 (produce_asm_for_decls): Convert for new global streamer.
3694 * lto-section-out.h (lto_hash_global_slot_node,
3695 lto_eq_global_slot_node): Declare.
3696
36972008-06-07 Kenneth Zadeck <zadeck@naturalbridge.com>
3698 Jan Hubicka <jh@suse.cz>
3699
3700 * lto.c (sys/mman.h, tree-pass.h): New includes.
3701 (lto_materialize_constructors_and_inits,
3702 lto_materialize_function): Keeps length of section.
3703 (lto_materialize_cgraph): Removed.
3704 (lto_read_decls): Initialize fd field.
3705 (lto_file_read): Different return type and removed much code to
3706 lto_main.
3707 (page_mask): New variable.
3708 (lto_read_section_data, get_section_data, free_section_data): New
3709 functions.
3710 (lto_main): Now calls pass manager, sets the hooks so that the ipa
3711 passes can get the section data.
3712
37132008-05-27 Kenneth Zadeck <zadeck@naturalbridge.com>
3714
3715 * lto.h (lto_read_decls): Made local.
3716 (lto_input_function_body, lto_input_constructors_and_inits,
3717 lto_input_cgraph): Declarations moved to lto-section-in.h.
3718 * lto-section-in.c: Moved to .. .
3719 * lto-cgraph-in.c: Ditto.
3720 * lto-section-in.h: Ditto.
3721 * lto-function-in.c: Ditto.
3722 * lto-lang.c (lto_handle_option): Added ATTRIBUTE_UNUSED to parms.
3723 (lto_insert_block): Removed.
3724 (LANG_HOOKS_INSERT_BLOCK): Removed.
3725 * Make-lang.in (lto-cgraph-in.o, lto-function-in.o,
3726 lto-section-in.o): Rules moved to lto/Makefile.in.
3727
3728
37292008-05-16 Ollie Wild <aaw@google.com>
3730
3731 * lto-lang.c (tree-inline.h): Include.
3732 (lto_post_options): New function.
3733 (LANG_HOOKS_POST_OPTIONS): Define.
3734 * lto-cgraph-in.c (overwrite_node): Set node->global.insns.
3735 * lto-function-in.c (input_bb): Set TREE_BLOCK (stmt).
3736
37372008-05-13 Diego Novillo <dnovillo@google.com>
3738
3739 * lto-function-in.c (input_ssa_names): Call
3740 make_ssa_name_fn instead of make_ssa_name.
3741
37422008-05-12 Diego Novillo <dnovillo@google.com>
3743
3744 * lto-cgraph-in.c (overwrite_node): Update references to
3745 inline summary fields.
3746 * lto-function-in.c (input_expr_operand): Do not handle
3747 STRUCT_FIELD_TAG.
3748
37492008-05-09 Ollie Wild <aaw@google.com>
3750
3751 * lang.opt: New file.
3752 * lto-lang.c (lto_init_options): New function.
3753 (lto_handle_option): New function.
3754 (lto_init): Move initialization of flag_unit_at_a_time to
3755 lto_init_options.
3756 (LANG_HOOKS_INIT_OPTIONS): Define.
3757 (LANG_HOOKS_HANDLE_OPTION): Define.
3758
37592008-04-29 Ollie Wild <aaw@google.com>
3760
3761 * lto.c (lto_read_namespace_DIE): New function.
3762 (lto_read_DIE): Add lto_read_namespace_DIE callback. Cache
3763 NAMESPACE_DECL DIE's.
3764 (lto_resolve_namespacedecl_ref): New function.
3765 * lto.h (lto_resolve_namespacedecl_ref): New function.
3766 * lto-section-in.c (lto_read_decls): Read namespace declarations.
3767 * lto-section-in.h (struct lto_file_decl_data): Add namespace_decls
3768 and num_namespace_decls.
3769 * lto-function-in.c (input_expr_operand): Add NAMESPACE_DECL case.
3770 * lto-lang.c (lto_init_ts): New function.
3771 (LANG_HOOKS_INIT_TS): Set as lto_init_ts.
3772
37732008-04-16 Ollie Wild <aaw@google.com>
3774
3775 * lto-function-in.c (input_type_ref): Updated function description.
3776
37772008-04-16 Ollie Wild <aaw@google.com>
3778
3779 * lto-function-in.c (input_type_ref_1): New function.
3780 (input_type_ref): Split into two functions.
3781 (input_function): Add support for type contexts.
3782
37832008-04-16 Ollie Wild <aaw@google.com>
3784
3785 * lto.c (lto_materialize_function): Use DECL_ASSEMBLER_NAME to compute
3786 section name
3787
37882008-04-16 Ollie Wild <aaw@google.com>
3789
3790 * lto.c (lto_read_compile_unit_DIE): Add DW_LANG_C_plus_plus to the
3791 list of supported languages.
3792
37932008-03-25 Kenneth Zadeck <zadeck@naturalbridge.com>
3794
3795 Merge with mainline @133491.
3796
37972008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
3798 Jan Hubicka <jh@suse.cz>
3799
3800 * lto.c (lto_info_fd_init, lto_info_fd_close): Get rid of
3801 fd->unmaterialized_fndecls.
3802 (lto_get_file_name, lto_materialize_cgraph): New function.
3803 (lto_materialize_constructors_and_inits,
3804 lto_materialize_function): Read info directly from elf file.
3805 (lto_file_read): Made local and initialize dictionary so that
3806 other lto sections can be read without reprocessing the elf file.
3807 (lto_main): Read all functions after all files have been processed
3808 for their types, globals and cgraph.
3809 * Make-lang.in (lto.o, lto-cgraph-in.c, lto-section-in): Changed
3810 dependencies.
3811 * lto-elf.c (lto_elf_file): Removed strtab, symtab fields.
3812 (hash_name, eq_name, lto_elf_build_section_table): New functions.
3813 (lto_elf_read_symtab): Removed function.
3814 (lto_elf_file_open): Removed call to lto_elf_read_symtab.
3815 * lto.h (lto_info_fd_struct): Removed unmaterialized_fndecls.
3816 (lto_file_read): Made local.
3817 (lto_get_file_name, lto_elf_build_section_table,
3818 lto_input_cgraph):
3819 New function.
3820 * lto-section-in.c (lto_read_section_data, lto_get_section_data):
3821 New functions.
3822 (lto_read_decls): Get the file name.
3823 * lto-cgraph-in.c: New file.
3824 * lto-function-in.c (tag_to_expr): Stops at LTO_tree_last_tag.
3825 (input_expr_operand, lto_read_body): Set lto_debug_context.tag_names.
3826 (input_labels): Fixed latent sizeof issue.
3827 (input_function): Build stmt array to set call sites into cgraph
3828 edges.
3829 (lto_read_body): Reset cfun->curr_properties.
3830 * lto_section_in.h (lto_section_slot): New structure.
3831 (section_hash_table.lto_file_decl_data): New field.
3832
3833
38342008-02-09 Kenneth Zadeck <zadeck@naturalbridge.com>
3835
3836 * lto.c (lto_read_variable_formal_parameter_const): Remove code to
3837 reconstruct static initializers.
3838 (lto_get_body, lto_materialize_function): Add lto_section_type as
3839 a parameter.
3840 (lto_materialize_constructors_and_inits,
3841 lto_materialize_file_data): New function.
3842 (lto_materialize_function,
3843 lto_read_subroutine_type_subprogram_DIE): Renamed unmap_fn_body to
3844 unmap_section and map_fn_body to map_section.
3845 (lto_set_cu_context): Process functions and static inits
3846 differently.
3847 * Make-lang.in (LTO_H, lto/lto-function-in.o,
3848 lto/lto-section-in.o): Update dependencies.
3849 * lto/lto-elf.c (lto_elf_map_optional_lto_section): Add
3850 lto_section_type parameter.
3851 (lto_elf_unmap_fn_body): Renamed to lto_elf_unmap_section.
3852 * lto.h (lto_file_vtable_struct): Removed two of the fields and
3853 renamed the other two so that there is only one map function and
3854 one unmap function and each takes a section type parameter.
3855 (lto_read_function_body): Renamed to lto_input_function_body and
3856 added file_data parameter.
3857 (lto_read_var_init): Removed.
3858 (lto_input_constructors_and_inits): New function.
3859 * lto-section-in.c (lto_read_decls): New function.
3860 * lto-function-in.c (data_in): Moved fields field_decls, fn_decls,
3861 var_decls, type_decls, types to lto_file_decl_data.
3862 (input_type_ref, input_expr_operand, lto_read_body): Get
3863 field_decls, fn_decls, var_decls, type_decls, types from different
3864 structure.
3865 (input_globals, input_constructor, lto_read_var_init): Removed.
3866 (input_constructors_or_inits): New function.
3867 (lto_read_function_body, lto_input_constructors_and_inits):
3868 Renamed to lto_input_function_body and takes file_data parameter.
3869 * lto-section-in.h (lto_file_decl_data): New structure.
3870
38712008-01-28 Kenneth Zadeck <zadeck@naturalbridge.com>
3872
3873 * lto-function-in.c (input_globals.c): Changed input type to
3874 lto_function_header.
3875 (input_bb): Removed code to deserialize the stmt number.
3876 (input_function): Renumber all stmts after they are input.
3877 (lto_read_body, lto_read_function_body, lto_read_var_init):
3878 Changed to used new header format and enum section_type.
3879 *lto-lang.c (success): Removed.
3880
38812008-01-28 Nathan Froyd <froydnj@codesourcery.com>
3882
3883 * lto-elf.c (lto_elf_lookup_sym): Remove unused function.
3884 (lto_elf_free_sym): Likewise.
3885
3886 * lto-elf.c (lto_elf_read_var_init): Remove unused function.
3887 (lto_elf_build_init): Likewise.
3888
38892008-01-14 Kenneth Zadeck <zadeck@naturalbridge.com>
3890
3891 * lto-read.c: Renamed to lto-function-in.c.
3892 (input_1_unsigned): Moved to lto-section-in.c and renamed
3893 lto_input_1_unsigned.
3894 (input_uleb128): Moved to lto-section-in.c and renamed
3895 lto_input_uleb128.
3896 (input_widest_uint_uleb128): Moved to lto-section-in.c and renamed
3897 lto_input_widest_uint_uleb128.
3898 (input_sleb128): Moved to lto-section-in.c and renamed
3899 lto_input_sleb128.
3900 (input_integer): Moved to lto-section-in.c and renamed
3901 lto_input_integer.
3902 (debug_in_fun): Moved to lto-section-in.c and renamed
3903 lto_debug_in_fun.
3904 (input_block): Moved to lto-section-in.h and renamed
3905 lto_input_block.
3906 (input_expr_operand): Fixed to allow lists with more than one
3907 element.
3908 * lto-section-in.h: New file.
3909 * lto-section-in.c: New file with changes from above.
3910 * Make-lang.in (lto-read.o): Renamed lto-function-in.c.
3911 (lto-section-in.o): New rule.
3912
39132007-12-29 Nathan Froyd <froydnj@codesourcery.com>
3914
3915 * lto-read.c (input_expr_operand): Mark static and external
3916 VAR_DECLs as needed.
3917
39182007-12-29 Nathan Froyd <froydnj@codesourcery.com>
3919
3920 * lto-read.c (input_integer): Use the correct shift amount.
3921
39222007-12-29 Nathan Froyd <froydnj@codesourcery.com>
3923
3924 * lto-lang.c (lto_pushdecl): Do nothing instead of aborting.
3925 (LANG_HOOKS_NAME): Define.
3926
39272007-12-27 Nathan Froyd <froydnj@codesourcery.com>
3928
3929 * lto.c (lto_find_integral_type): Define as a macro. Rename the
3930 original function to...
3931 (lto_find_integral_type_1): ...this. Consult UNSIGNEDP if we
3932 don't have a base type.
3933 (lto_read_enumeration_type_DIE): Examine the values of the
3934 enumeration to determine whether we can use an unsigned type for
3935 the base type of the enumeration.
3936
39372007-12-24 Nathan Froyd <froydnj@codesourcery.com>
3938
3939 * lto.c (lto_read_structure_union_class_type_DIE): Set TYPE_MODE
3940 and TYPE_ALIGN on UNION_TYPEs as soon as possible.
3941
39422007-12-22 Nathan Froyd <froydnj@codesourcery.com>
3943
3944 * lto-lang.c (lto_types_compatible_p): New function.
3945 (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3946
39472007-12-22 Nathan Froyd <froydnj@codesourcery.com>
3948 Kenneth Zadeck <zadeck@naturalbridge.com>
3949
3950 * lto-read.c (input_expr_operand): Fixed uninitialize var warning.
3951 (input_local_vars): Read in DECL_INITIAL and context for local
3952 statics that need to be put in unexpanded_vars_list.
3953
39542007-12-21 Nathan Froyd <froydnj@codesourcery.com>
3955
3956 * lto-read.c (input_real): Use a separate null-terminated buffer
3957 for calling real_from_string.
3958 (input_expr_operand): If we take the address of a FUNCTION_DECL,
3959 tell cgraph that it's needed.
3960
39612007-12-19 Doug Kwan <dougkwan@google.com>
3962
3963 * lto.c (lto_read_base_type_DIE): Handle complex integer types.
3964
39652007-12-18 Nathan Froyd <froydnj@codesourcery.com>
3966
3967 * lto.c (lto_read_DIE): Call lto_read_only_for_child_DIEs instead.
3968 (lto_file_read): Reset the members of 'context' every time we read
3969 a toplevel DIE, with special attention to last_param_type.
3970
39712007-12-18 Nathan Froyd <froydnj@codesourcery.com>
3972
3973 * lto.c (lto_read_subroutine_type_subprogram_DIE): Initialize
3974 'declaration'. Set the assembler name for non-public functions.
3975
39762007-12-17 Kenneth Zadeck <zadeck@naturalbridge.com>
3977
3978 * lto_read.c (data_in.unexpanded_indexes): New array.
3979 (input_local_var): Added code to read in unexpanded_var_list
3980 indexes for variables. Only read in DECL_CHAIN field for
3981 parameters.
3982 (input_local_vars): Added code to rebuild unexpanded_var_list in
3983 order using unexpanded_indexes.
3984 (input_function): Added code to set DECL_CONTEXT for functions.
3985
39862007-12-13 Doug Kwan <dougkwan@google.com>
3987
3988 * lto.c (lto_read_pointer_reference_type_DIE): Handle optional name
3989 in pointer and reference types.
3990
39912007-12-13 Nathan Froyd <froydnj@codesourcery.com>
3992
3993 * lto-read.c (input_expr_operand): Use DECL_RESULT when reading a
3994 RESULT_DECL.
3995
39962007-12-13 Nathan Froyd <froydnj@codesourcery.com>
3997
3998 * lto.c (lto_read_array_type_DIE): Return the cached DIE if we've
3999 already read the DIE.
4000 (lto_get_body): New function, split out from...
4001 (lto_materialize_function): ...here. Call it.
4002 (lto_read_subroutine_type_subprogram_DIE): Call lto_get_body to
4003 determine DECL_EXTERNAL.
4004 * lto-symtab.c (lto_symtab_merge_decl): Merge the DECL_RESULTs of
4005 FUNCTION_DECLs when necessary. Use the type of the actual
4006 function definition if we are unable to easily merge types. Ignore
4007 spurious DECL_MODE mismatches on VAR_DECLs. Merge DECL_MODEs when
4008 necessary.
4009
40102007-12-13 Nathan Froyd <froydnj@codesourcery.com>
4011
4012 * lto-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
4013
40142007-12-12 Bill Maddox <maddox@google.com>
4015
4016 Revert
4017 2007-12-07 Bill Maddox <maddox@google.com>
4018
4019 * lto.c (lto_str_fd_init): New function.
4020 (lto_str_fd_close): New function.
4021 (lto_file_init): Call lto_str_fd_init.
4022 (lto_file_close): Call lto_str_fd_close.
4023 (lto_str_read): New function. Read debug string table.
4024 (lto_str_lookup): New function. Get string for debug
4025 string table offset.
4026 (lto_read_form): Recognize DW_FORM_strp.
4027 (lto_file_read): Invoke lto_str_read.
4028
4029 * lto-elf.c (lto_elf_file_open): Read raw section data
4030 for the .debug_str section, if present.
4031
4032 * lto.h (struct lto_str_fd_struct): New struct.
4033 (struct lto_file_struct): Added new field DEBUG_STR
4034 to hold the file descriptor for the debug string table.
4035
40362007-12-07 Bill Maddox <maddox@google.com>
4037
4038 * lto.c (lto_str_fd_init): New function.
4039 (lto_str_fd_close): New function.
4040 (lto_file_init): Call lto_str_fd_init.
4041 (lto_file_close): Call lto_str_fd_close.
4042 (lto_str_read): New function. Read debug string table.
4043 (lto_str_lookup): New function. Get string for debug
4044 string table offset.
4045 (lto_read_form): Recognize DW_FORM_strp.
4046 (lto_file_read): Invoke lto_str_read.
4047
4048 * lto-elf.c (lto_elf_file_open): Read raw section data
4049 for the .debug_str section, if present.
4050
4051 * lto.h (struct lto_str_fd_struct): New struct.
4052 (struct lto_file_struct): Added new field DEBUG_STR
4053 to hold the file descriptor for the debug string table.
4054
40552007-12-07 Nathan Froyd <froydnj@codesourcery.com>
4056
4057 * lto-read.c (input_cfg): Call init_empty_tree_cfg_for_function.
4058 Grow the basic_block_info and label_to_block_map vectors if
4059 necessary. Read in the block chain.
4060
40612007-12-06 Nathan Froyd <froydnj@codesourcery.com>
4062
4063 * lto.c (lto_read_DIE): Set TYPE_ALIAS_SET where necessary.
4064
40652007-12-06 Nathan Froyd <froydnj@codesourcery.com>
4066
4067 * lto.c (lto_read_form): Add DW_cl_address for DW_AT_const_value.
4068
40692007-12-06 Nathan Froyd <froydnj@codesourcery.com>
4070
4071 * lto-read.c (input_expr_operand): Don't check for MTAGs.
4072 (lto_read_body): Don't declare PROP_alias.
4073
40742007-12-06 Nathan Froyd <froydnj@codesourcery.com>
4075
4076 * lto-symtab.c (lto_symtab_merge_decl): Handle FUNCTION_DECLs without
4077 argument type information.
4078
40792007-12-03 Nathan Froyd <froydnj@codesourcery.com>
4080
4081 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Set
4082 TREE_THIS_VOLATILE if the associated type is a volatile type.
4083 (lto_materialize_function): Remove call to init_ssa_operands.
4084 * lto-read.c (input_expr_operand): Add SSA_NAME_VAR as a referenced
4085 variable when reading an SSA_NAME. Do the same when reading a
4086 RESULT_DECL, a RETURN_EXPR, or an MTAG.
4087 (input_cfg): Call init_ssa_operands.
4088 (input_ssa_names): Set the default def of an SSA_NAME if necessary.
4089 Move call to init_tree_ssa...
4090 (lto_read_body): ...here. Use push_cfun and pop_cfun. Call
4091 add_referenced_var on any variables referenced from the body of the
4092 function. Inform the rest of the compiler we are in SSA form and
4093 inform later passes about the current properties.
4094
40952007-11-30 Nathan Froyd <froydnj@codesourcery.com>
4096
4097 * lto.c (lto_materialize_function): Add FIXME.
4098
40992007-11-29 Nathan Froyd <froydnj@codesourcery.com>
4100
4101 * lto-lang.c (enum built_in_attribute): New enum.
4102 (flag_no_builtin, flag_no_nonansi_builtin, flag_isoc94, flag_isoc99,
4103 built_in_attributes): New variables.
4104 (def_builtin_1): New function.
4105 (lto_define_builtins): #define DEF_BUILTIN and include builtins.def.
4106
41072007-11-28 Nathan Froyd <froydnj@codesourcery.com>
4108
4109 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Set
4110 DECL_SOURCE_LOCATION for debugging purposes.
4111 (lto_read_member_DIE): Set DECL_SOURCE_LOCATION. If we have read a
4112 bitfield, use the type specified by the DIE for TREE_TYPE and defer
4113 laying out the decl until later.
4114 (lto_read_subroutine_type_subprogram_DIE): Compare the function's
4115 name with DECL_ASSEMBLER_NAME. Set DECL_SOURCE_LOCATION and
4116 TREE_ADDRESSABLE.
4117 * lto-read.c (input_expr_operand): Set TREE_ADDRESSABLE on the
4118 operand of an ADDR_EXPR.
4119 * lto-lang.c (enum lto_builtin_type): New enum.
4120 (builtin_type): New typedef.
4121 (builtin_types, string_type_node, const_string_type_node,
4122 wint_type_node, intmax_type_node, uintmax_type_node,
4123 signed_size_type_node): New variables.
4124 (def_fn_type, builtin_type_for_size, lto_define_builtins,
4125 lto_build_c_type_nodes): New functions.
4126 (lto_init): Initialize builtin types.
4127 (lto_set_decl_assembler_name): Let the target machine mangle the
4128 name if the decl is TREE_PUBLIC, otherwise uniquify it.
4129
41302007-11-21 Nathan Froyd <froydnj@codesourcery.com>
4131
4132 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Don't
4133 set TREE_ADDRESSABLE. Do set DECL_COMDAT. Set TREE_READONLY if
4134 the type is a constant type. Set the assembler name and inform
4135 the rest of the compiler about the new decl if the decl is not
4136 public.
4137 (lto_read_subroutine_type_subprogram_DIE): Don't check for equivalency
4138 of DECL_ASSEMBLER_NAME when determining if we have a builtin. Don't
4139 try to read in function bodies for functions that already have bodies.
4140 * lto-symtab.c (lto_same_type_p): Check for unbounded array
4141 equivalency.
4142 (lto_symtab_merge_decl): Don't merge decls that aren't TREE_PUBLIC.
4143 Check for whether we matched a builtin function type before calling
4144 lto_same_type_p on the generated type. Permit cases where the
4145 declaration of an array is unbounded, but the definition is bounded.
4146 Don't combine TREE_PUBLIC flags. Copy over DECL_SIZE and
4147 DECL_SIZE_UNIT if necessary.
4148
41492007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
4150
4151 * lto-read.c (input_expr_operand): Get types right
4152 for COMPLEX_CST.
4153
41542007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
4155
4156 * lto-read.c (make_new_block, input_cfg): Properly set
4157 n_basic_blocks.
4158
41592007-11-16 Nathan Froyd <froydnj@codesourcery.com>
4160
4161 * lto.c (lto_read_array_type_DIE): Handle DIEs with DW_AT_GNU_vector
4162 set properly by building a VECTOR_TYPE instead of an ARRAY_TYPE.
4163
41642007-11-16 Nathan Froyd <froydnj@codesourcery.com>
4165
4166 * lto.c (lto_read_base_type_DIE): Use make_bitfield_integer_type to
4167 construct the integer type for bitfields.
4168
41692007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
4170
4171 * lto-read.c (data_in.current_node_has_loc): Removed.
4172 (input_line_info): Returns true if node needs line set.
4173 (set_line_info): Always sets line if called.
4174 (clear_line_info): Removed reference to current_node_needs_loc.
4175 (input_expr_operand): Keeps track locally if current node needs a loc.
4176 (input_local_var): Added code to handle DECL_INITIAL for
4177 static local vars. Only set loc if necessary.
4178
41792007-11-15 Nathan Froyd <froydnj@codesourcery.com>
4180
4181 * lto.c (lto_read_subroutine_type_subprogram_DIE): Fix thinko'd
4182 DECL_CONTEXT.
4183
41842007-11-15 Nathan Froyd <froydnj@codesourcery.com>
4185
4186 * lto.c: Include langhooks.h.
4187 (lto_find_integral_type): Rework logic to handle the case where
4188 got_byte_size is true, but the bitsize requested and that of the
4189 base_type doesn't match.
4190 (lto_read_variable_formal_parameter_constant_DIE): Only check for
4191 asm_name if we are creating a VAR_DECL.
4192 (lto_materialize_function): Set DECL_EXTERNAL if we can't find a
4193 definition.
4194 (lto_read_subroutine_type_subprogram_DIE): Check for a builtin
4195 function reference and use the builtin's decl if so. Set the
4196 DECL_CONTEXT of the RESULT_DECL for the function.
4197 * lto-lang.c (registered_builtin_fndecls): New variable.
4198 (lto_getdecls): Return it.
4199 (lto_builtin_function): Chain the new decl onto
4200 registered_builtin_fndecls.
4201
42022007-11-15 Kenneth Zadeck <zadeck@naturalbridge.com>
4203
4204 * lto-read.c (process_tree_flags, lto_static_init_local):
4205 Renamed to ADD_CLASS_EXPR_FLAG. ADD_CLASS_DECL_FLAG New Macro.
4206 (input_line_info, clear_line_info): Fixed new line number code.
4207 (input_expr_operand): Added type to SWITCH_EXPR.
4208 (lto_read_body): Properly initialized data_in.
4209 Clear line info when leaving.
4210
42112007-11-13 Diego Novillo <dnovillo@google.com>
4212
4213 * lto.c (lto_read_variable_formal_parameter_constant_DIE):
4214 Initialize ARTIFICIAL.
4215 (lto_read_subroutine_type_subprogram_DIE): Initialize
4216 SAVED_SCOPE.
4217 * lto-read.c (set_line_info): Remove ; from calls to
4218 LINEMAP_POSITION_FOR_COLUMN.
4219
42202007-11-13 Kenneth Zadeck <zadeck@naturalbridge.com>
4221
4222 * lto-read.c (input_type_ref): Renamed from get_type_ref.
4223 (input_expr_operand, input_local_var): Renamed get_type_ref to
4224 input_type_ref.
4225 (input_expr_operand): Get the types correct for
4226 vector-cst. Get SSA_NAME_DEF_STMT correct for return_exprs.
4227
42282007-11-13 Doug Kwan <dougkwan@google.com>
4229
4230 * lto-read.c (input_widest_uint_uleb128): New function.
4231 (input_tree_flags, process_tree_flags, input_line_info,
4232 input_expr_operand, input_local_var, input_phi, input_ssa_names):
4233 Change to use lto_flags_type and BITS_PER_LTO_FLAGS_TYPES instead of
4234 unsigned HOST_WIDE_INT and HOST_BITS_PER_WIDE_INT.
4235 (lto_static_init_local): Add code to assert that lto_flags_type is
4236 wide enough.
4237
42382007-11-13 Nathan Froyd <froydnj@codesourcery.com>
4239
4240 * lto.c (lto_read_array_type_DIE): Handle DW_AT_GNU_vector.
4241 (lto_read_subroutine_type_subprogram_DIE): Handle
4242 DW_AT_static_link and DW_AT_specification. Return the
4243 specification if present.
4244 (lto_read_base_type_DIE): Handle DW_ATE_complex_float.
4245
42462007-11-13 Nathan Froyd <froydnj@codesourcery.com>
4247
4248 * lto-lang.c: Include target.h.
4249 (registered_builtin_types): New variable.
4250 (lto_type_for_mode): Increase number of modes handled.
4251 (lto_builtin_function): Fix argument list and return the decl.
4252 (lto_register_builtin_type): New function.
4253 (lto_init): Initialize target builtins and language-independent
4254 nodes.
4255 (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define.
4256
42572007-11-13 Kenneth Zadeck <zadeck@naturalbridge.com>
4258
4259 * lto-read.c (input_expr_operand): Added code to properly handle
4260 index filed. Added new RANGE_EXPR case.
4261
42622007-11-11 Kenneth Zadeck <zadeck@naturalbridge.com>
4263
4264 * lto-read.c (ADD_FUNC_FLAG): Deleted macro.
4265 (data_in): Added current_node_has_loc field.
4266 (input_line_info, set_line_info, clear_line_info): Added a support
4267 for USE_MAPPED_LOCATION and not adding line numbers to nodes that
4268 did not have on on the source side.
4269 (input_expr_operand): Make sure that GIMPLE_MODIFY_STMTS get line
4270 numbers too.
4271
42722007-11-09 Doug Kwan <dougkwan@google.com>
4273
4274 * lto-read.c (input_expr_operand): Change type of operand 2 of
4275 BIT_FIELD_REF expression to be bitsizetype instead of sizetype.
4276
42772007-11-09 Nathan Froyd <froydnj@codesourcery.com>
4278
4279 * lto.c: Include lto-tree.h. Effect small spaces->tabs cleanup.
4280 (lto_read_variable_formal_parameter_constant_DIE): Transfer bits
4281 from a DW_AT_specification or DW_AT_abstract_origin attribute to
4282 the new decl we are creating. Move informing the middle end about
4283 the new decl to...
4284 (lto_main): ...here. Inform the middle end about global variables
4285 after we have read in all the input files.
4286 * lto-symtab.c (lto_symtab_merge_decl): We really do need to merge
4287 variables with internal linkage, so delete the check for internal
4288 linkage. Combine TREE_PUBLIC flags.
4289
42902007-11-08 Nathan Froyd <froydnj@codesourcery.com>
4291
4292 * lto.c (lto_read_subroutine_type_subprogram_DIE): Handle
4293 DW_AT_decl_line.
4294 * lto-symtab.c (lto_symtab_merge_decl): Handle redefinition of a
4295 builtin specially. Move check for attribute compatibility
4296 earlier.
4297
42982007-11-07 Nathan Froyd <froydnj@codesourcery.com>
4299
4300 * Make-lang.in (lto/lto.o): Depend on gt-lto-lto.h.
4301 * config-lang.in (gtfiles): Add lto.h and lto.c.
4302 * lto-elf.c: Include ggc.h.
4303 (lto_elf_file_open): Allocate elf_file from GC memory.
4304 * lto.c: Include tree-ssa-operands.h and gt-lto-lto.h
4305 (lto_info_fd_init): Allocate the die_cache and unmaterialized_fndecls
4306 in GC memory.
4307 (lto_info_fd_close): Free unmaterialized_fndecls from GC memory.
4308 (lto_file_close): Free file from GC memory.
4309 (lto_cache_store_DIE): Allocate the new entry in GC memory.
4310 (lto_read_member_DIE): Fix declaration.
4311 (lto_read_subroutine_type_subprogram_DIE): unmaterialized_fndecls lives
4312 in GC memory.
4313 (current_lto_file): New variable.
4314 (lto_main): Use it.
4315 (DWARF2_attr, DWARF2_abbrev, lto_die_ptr, DWARF2_CompUnit,
4316 lto_die_cache_entry): Move to...
4317 * lto.h: ...here and add GTY markers as appropriate. Delete forward
4318 declarations accordingly.
4319 (struct lto_file_struct): Declare.
4320 (lto_file_vtable): Use it instead of lto_file.
4321
43222007-11-06 Alon Dayan <alond@il.ibm.com>
4323 Kenneth Zadeck <zadeck@naturalbridge.com>
4324
4325 * lto-read.c (process_flags, lto_static_init_local):
4326 read flags of VAR_DECL and FUNCTION_DECL of size>1.
4327 change global array num_flags_for_code to flags_length_for_code.
4328 (set_line_info): Make decls work in USE_MAPPED_LOCATION mode.
4329
43302007-11-05 Nathan Froyd <froydnj@codesourcery.com>
4331
4332 * lto.c (lto_read_structure_union_class_type_DIE): Use proper record
4333 layout functions to compute information about the newly constructed
4334 type.
4335
43362007-11-02 Nathan Froyd <froydnj@codesourcery.com>
4337
4338 * lto-read.c (input_expr_operand): Change the LTO_return_expr1
4339 case to use DECL_RESULT if necessary.
4340
43412007-11-01 Kenneth Zadeck <zadeck@naturalbridge.com>
4342
4343 * lto-read.c (input_tree_list): Removed.
4344 (input_tree_flags): Added parameter to force flags no matter what
4345 tree code.
4346 (input_expr_operand): Added parameter to input_tree_flags.
4347 Added case for IDENTIFIER_NODE and TREE_LIST. Changed ASM to call
4348 input_expr_operand rather than input_tree_lists.
4349 (input_local_var): Use input_expr_operand to read attributes
4350 rather then input_tree_list.
4351 (input_phi, input_ssa_names): Added parameter to input_tree_flags.
4352
43532007-10-31 Nathan Froyd <froydnj@codesourcery.com>
4354
4355 * lto.c (lto_read_typedef_DIE): Fix comment typo.
4356 (lto_resolve_typedecl_ref): Fetch the referred-to type and build a fake
4357 TYPE_DECL for it.
4358 * lto-read.c (lto_read_body): Use correct sizes for calculating
4359 type_decls_offset and types_offset.
4360
43612007-10-30 Nathan Froyd <froydnj@codesourcery.com>
4362
4363 * lto-tree.h (union lang_tree_node): Change GTY description to chain
4364 with GENERIC_NEXT.
4365 * config-lang.in (gtfiles): Add lto-lang.c.
4366 * lto-lang.c: Include gt-lto-lto-lang.h.
4367 * Make-lang.in (lto/lto-lang.o): Add dependency on gt-lto-lto-lang.h
4368 (lto/lto-symtab.o): Depend on LTO_H instead of TREE_H.
4369 (lto/lto-read.o): Likewise.
4370
43712007-10-29 Kenneth Zadeck <zadeck@naturalbridge.com>
4372
4373 * lto-read.c (data_in): Added type_decls and current_col fields.
4374 (string_slot): New type to hold canonized file name.
4375 (hash_string_slot_node, eq_string_slot_node, canon_file_name,
4376 input_line_info, set_line_info, clear_line_info): New functions.
4377 (file_name_hash_table): New hash table.
4378 (input_local_var, input_labels, input_local_vars_index,
4379 input_local_var, input_local_vars, input_ssa_names): Reorganized parameters.
4380 (input_uleb128): Changed type of byte var.
4381 (input_expr_operand): Large number of changes to get line numbers
4382 correct. Added TYPE_DECL case.
4383 (input_globals): Added code to get TYPE_DECLs processed.
4384 (input_local_var): Added code to process line numbers and
4385 TREE_CHAIN and DECL_CONTEXT.
4386 (input_function, input_constructor): Added call to
4387 clear_line_number.
4388 (lto_static_init_local): Added code to get line numbers correct.
4389 (lto_read_body): Added code to get TYPE_DECLS read and to change
4390 parameters to the calls above that had their parms reorganized.
4391
4392
43932007-10-29 Nathan Froyd <froydnj@codesourcery.com>
4394
4395 * lto.h (lto_resolve_typedecl_ref): Declare.
4396 * lto.c (lto_resolve_typedecl_ref): New function.
4397
43982007-10-29 Mark Mitchell <mark@codesourcery.com>
4399 Nathan Froyd <froydnj@codesourcery.com>
4400
4401 * lto.c (lto_read_subroutine_type_subprogram_DIE): Read the child
4402 DIEs even if we find an abstract origin for this DIE.
4403
44042007-10-29 Nathan Froyd <froydnj@codesourcery.com>
4405
4406 * lto.c (lto_read_subroutine_type_subprogram_DIE): Build the
4407 RESULT_DECL slightly earlier. Only remember the decl for later
4408 if we successfully merge declarations.
4409
44102007-10-24 Kenneth Zadeck <zadeck@naturalbridge.com>
4411
4412 * lto-read.c (input_expr_operand): Give label_values the proper
4413 context and provide switch statements with a default type.
4414
44152007-10-23 Nathan Froyd <froydnj@codesourcery.com>
4416
4417 * lto-read.c (lto_read_body): Move call to init_ssa_operands...
4418 * lto.c (lto_materialize_function): ...to here.
4419
44202007-10-22 Nathan Froyd <froydnj@codesourcery.com>
4421
4422 * lto.h (struct lto_info_fd): Add field unmaterialized_fndecls.
4423 * lto.c (lto_info_fd_init): Initialize it.
4424 (lto_info_fd_close): Free it.
4425 (lto_materialize_function): New function.
4426 (lto_read_subroutine_type_subprogram_DIE): Save the result decl on
4427 unmaterialized_fndecls.
4428 (lto_file_read): Read in all the function bodies after we have read
4429 all of the DWARF info.
4430 * lto-read.c (lto_read_body): Call init_ssa_operands if we are
4431 reading a function body.
4432
44332007-10-20 Kenneth Zadeck <zadeck@naturalbridge.com>
4434
4435 * lto-read.c (input_tree_flags): Renamed from input_flags to be
4436 semetric with output_tree_flags. Added call to log flags.
4437 (process_tree_flags): Renamed from process_flags. Fixed a lot of
4438 type issues to make everything consistent with flags being
4439 unsigned HOST_WIDE_INTS.
4440 (input_expr_operand): Added call to
4441 recompute_tree_invariant_for_addr_expr.
4442 (input_local_var): Added debugging for tree_chains. Now calls
4443 input_tree_flags.
4444 (input_phi): Made flags unsigned HOST_WIDE_INT.
4445 (input_ssa_names): Now calls input_tree_flags.
4446 (lto_read_body): Now sets cfun.
4447 (lto_read_function_body): Now sets current_function_pointer.
4448
44492007-10-19 Nathan Froyd <froydnj@codesourcery.com>
4450
4451 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Check
4452 definitively whether SPECIFICATION or ABSTRACT_ORIGIN exist before
4453 inspecting fields within.
4454 (lto_read_DIE_at_ptr): Delete check for null result; let callers
4455 handle this appropriately.
4456
44572007-10-19 Nathan Froyd <froydnj@codesourcery.com>
4458
4459 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Handle
4460 DW_AT_abstract_origin properly. Ensure that we're not dealing with
4461 both DW_AT_abstract_origin and DW_AT_specification.
4462 (lto_read_subroutine_type_subprogram_DIE): Handle
4463 DW_AT_abstract_origin.
4464 (lto_read_DIE): Use lto_read_only_for_child_DIEs for labels.
4465 (lto_read_DIE_at_ptr): Define as static to match declaration.
4466 Lookup the PTR in the cache before reading it from the file.
4467 (lto_resolve_var_ref): Adjust accordingly.
4468 (lto_resolve_fn_ref): Adjust accordingly. Tweak comment.
4469 (lto_resolve_field_ref): Adjust accordingly. Tweak comment.
4470
44712007-10-19 Nathan Froyd <froydnj@codesourcery.com>
4472
4473 * lto.c (lto_read_DIE_at_ptr): New function.
4474 (lto_resolve_var_ref): Use it.
4475 (lto_resolve_fn_ref): Use it.
4476 (lto_resolve_field_ref): Use it.
4477 (lto_read_variable_formal_parameter_constant_DIE): Follow
4478 DW_AT_specification and return the associated decl when appropriate.
4479
44802007-10-18 Nathan Froyd <froydnj@codesourcery.com>
4481
4482 * lto-lang.c (lto_type_for_mode): Move after lto_type_for_size.
4483 Implement for scalar integer modes.
4484 (lto_init): Initialize size_type_node.
4485
44862007-10-18 Kenneth Zadeck <zadeck@naturalbridge.com>
4487
4488 * lto-read.c (input_expr_operand): Remove ssa name asserts.
4489 (input_local_var): Add chaining for params.
4490 (input_ssa_names): Add cfun parameter.
4491 (input_function): Remove unnecessary else.
4492
44932007-10-17 Nathan Froyd <froydnj@codesourcery.com>
4494
4495 * lto.c (lto_read_only_for_child_DIEs): Mark die parameter as unused.
4496 (lto_resolve_var_ref): Use proper types.
4497 (lto_resolve_fn_ref): Likewise.
4498 (lto_resolve_field_ref): Likewise.
4499
45002007-10-17 Nathan Froyd <froydnj@codesourcery.com>
4501
4502 * lto-read.c (input_expr_operand): Remove case.
4503
45042007-10-17 Nathan Froyd <froydnj@codesourcery.com>
4505
4506 * lto.c (lto_read_only_for_child_DIEs): New function.
4507 (lto_read_DIE): Use it for lexical_block and inlined_subroutine DIEs.
4508 * lto-elf.c (lto_elf_map_lto_section): Remove.
4509 (lto_elf_file_vtable): Use lto_elf_map_optional_lto_section instead.
4510 * lto-read.c (input_expr_operand): Assert that we never read a NULL
4511 SSA_NAME. Add missing case for mechanical codes.
4512 (input_cfg): Use basic_block_info_for_function instead of
4513 basic_block_info.
4514
45152007-10-16 Kenneth Zadeck <zadeck@naturalbridge.com>
4516
4517 * lto-read.c (input_sleb128, input_integer): Use proper casts.
4518 (input_list): Renamed input_tree_list and modified to follow same
4519 protocol as lto-function-out.c:output_tree_list.
4520 (input_expr_operand): Make asm operands use input_tree_list.
4521 (input_local_var): Now uses input_tree_list.
4522 (lto_read_body): Change placement for setting context of debug_labels.
4523
4524
45252007-10-16 Kenneth Zadeck <zadeck@naturalbridge.com>
4526
4527 * lto-read.c (input_real): Output debugging in proper order.
4528 (input_integer): Compute bit lengths properly.
4529 (input_list): Clean up declaration.
4530 (input_expr_operand): Change calls to input_real to match fix.
4531 Make reading of LTO_bit_field_ref1 match output.
4532 (input_local_var): Make reading of attributes match what is being
4533 written.
4534 (dump_debug_stream): Also print char in hex.
4535 (debug_out_fun): Fix signed unsigned mismatch.
4536
45372007-10-10 Nathan Froyd <froydnj@codesourcery.com>
4538
4539 * lto.c (lto_read_form): Handle DW_AT_MIPS_linkage_name and
4540 DW_AT_GNU_vector specially, as they are not contiguous with the
4541 specified set of attribute names. Use class_mask to check for
4542 errors at the end of the function
4543 (lto_resolve_var_ref): Read the DIE if it is not cached.
4544 (lto_resolve_fn_ref): Likewise.
4545 (lto_resolve_field_ref): Likewise.
4546
45472007-10-05 Nathan Froyd <froydnj@codesourcery.com>
4548
4549 * lto.c: Include dwarf2out.h.
4550 (lto_cache_store_DIE): Assert that we never change the value.
4551 (LTO_BEGIN_READ_ATTRS): Print an informative error message.
4552 (lto_read_compile_unit_DIE): Handle DW_AT_entry_pc.
4553 (lto_read_array_type_DIE): Don't error on ndims == 0; build a
4554 sensible type instead.
4555 (lto_read_structure_union_class_type_DIE): Store the newly
4556 created type prior to reading the members of the structure to
4557 avoid infinite recursion. Avoid computing types and alignments
4558 for structures whose sizes are unknown.
4559 (lto_read_variable_formal_parameter_const): Handle DW_AT_artificial
4560 and set DECL_ARTIFICIAL accordingly. Ignore DW_AT_abstract_origin,
4561 DW_AT_const_value, and DW_AT_specification.
4562 (lto_read_subroutine_type_subprogram_DIE): Handle DW_AT_declaration.
4563 Return early if we have already constructed the function type.
4564 (lto_read_typedef_DIE): Check to see if the type has been cached
4565 already. Cache the type before reading any children.
4566 (lto_read_const_volatile_restrict_type_DIE): Handle DW_AT_name.
4567 (lto_read_DIE): Unset context->skip_non_parameters around reading
4568 the DIE.
4569 (lto_resolve_fn_ref): Delete trailing whitespace.
4570
45712007-09-11 Kenneth Zadeck <zadeck@naturalbridge.com>
4572
4573 * lto-read.c (input_expr_operand): Added type for STRING_CST.
4574
45752007-09-10 Nathan Froyd <froydnj@codesourcery.com>
4576
4577 * lto-read.c (lto_read): Set the type of the newly created CALL_EXPR.
4578
45792007-09-07 Nathan Froyd <froydnj@codesourcery.com>
4580
4581 * lto-lang.c (signed_and_unsigned_types): New variable.
4582 (lto_type_for_size): Consult signed_and_unsigned_types to find
4583 an approprite type, creating it if necessary.
4584 (lto_set_decl_assembler_name): Add actual method body.
4585
45862007-09-06 Jim Blandy <jimb@codesourcery.com>
4587
4588 * lto.c (lto_read_variable_formal_parameter_constant_DIE): If we
4589 can't find a var init for this variable, leave its DECL_INITIAL.
4590 * lto-elf.c (lto_elf_map_optional_lto_section): Renamed from
4591 lto_elf_map_fn_body.
4592 (lto_map_lto_section): New function.
4593 (lto_elf_file_vtable): Use lto_elf_map_lto_section for function
4594 bodies, and lto_elf_map_optional_lto_section for variable
4595 initializers.
4596 (lto_elf_find_section_data): Quietly return NULL if the section is
4597 missing.
4598 (lto_elf_file_open): Check for a NULL from lto_elf_find_section_data.
4599
4600 * lto-elf.c (lto_elf_find_section_data): Remove dead code.
4601
4602 * lto-read.c (lto_read_body): Doc fix.
4603
46042007-08-29 Kenneth Zadeck <zadeck@naturalbridge.com>
4605
4606 * lto-read.c (fun_in): Renamed to data_in.
4607 (input_expr_operand, input_local_var, input_string_internal,
4608 input_string, input_real, input_list, get_label_decl,
4609 get_type_ref, input_expr_operand, input_globals, input_labels,
4610 input_local_vars_index, input_local_var, input_local_vars,
4611 input_cfg, input_phi, input_ssa_names, input_bb, ): Renamed fun_in to data_in.
4612 (input_constructor): New function.
4613 (lto_read_function_body): Renamed to lto_read_body and generalized
4614 to handle both functions and constructors.
4615 (lto_read_function_body, lto_read_var_init): New function.
4616
4617
46182007-08-28 Kenneth Zadeck <zadeck@naturalbridge.com>
4619
4620 * lto-read.c (input_expr_operand): Assert that there really is a
4621 FUNCTION_DECL.
4622 (input_globals): Removed checks on 0 section.
4623
46242007-08-28 Kenneth Zadeck <zadeck@naturalbridge.com>
4625
4626 * lto-read.c (fun_in): Added local_decls_index and
4627 local_decls_index_d.
4628 (input_expr_operand): Changed inputting of PARM_DECLs and VAR_DECLs.
4629 (input_globals): Enabled code to handle FIELD_DECLs.
4630 (input_local_vars_index, input_local_vars): New function.
4631 (input_local_var): Changed to allow locals to be input randomly.
4632 (lto_read_function_body): Added code to input the
4633 local_decls_index and to free various structures.
4634
46352007-08-17 Jim Blandy <jimb@codesourcery.com>
4636
4637 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Remove
4638 ATTRIBUTE_UNUSED from 'die' formal.
4639
4640 Use enum LTO_tags where appropriate, instead of 'unsigned int'.
4641 * lto-read.c (input_record_start): Fix return type, type of 'tag'.
4642 (input_list): Fix type of 'tag'.
4643 (input_expr_operand): Fix type of 'tag' argument. Update
4644 declaration. Fix type of 'ctag'. Add default case to switch,
4645 since the type of the switched value is now an enum.
4646 (input_local_vars): Fix type of 'tag'.
4647 (input_bb): Fix type of 'tag' argument.
4648 (input_function): Fix type of 'tag' argument.
4649
46502007-08-16 Jim Blandy <jimb@codesourcery.com>
4651
4652 * lto.c (lto_read_member_DIE): Record the tree we create in
4653 fd->die_cache. (Our 'die' argument is no longer unused.)
4654 (lto_resolve_field_ref): New function.
4655 * lto.h (lto_resolve_field_ref): New declaration.
4656
46572007-08-15 Jim Blandy <jimb@codesourcery.com>
4658
4659 * lto-read.c (lto_read_var_init): Mark arguments as unused.
4660
46612007-08-07 Jim Blandy <jimb@codesourcery.com>
4662
4663 * lto.c (lto_read_form): Complete attr_classes table.
4664 (DWARF2_form_data): Doc fix.
4665
46662007-08-05 Mark Mitchell <mark@codesourcery.com>
4667
4668 * lto.h (lto_file_vtable): Remove read_var_init. Add map_var_init
4669 and unmap_var_init.
4670 (lto_read_var_init): Declare.
4671 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Use new
4672 interface for reading variable initializers.
4673 * lto-elf.c (lto_elf_read_var_init): Remove.
4674 (lto_elf_file_vtable): Update initializer.
4675 (lto_elf_read_var_init): Add comment about unused-ness.
4676 * lto-read.c (lto_read_var_init): New.
4677
4678 * lto.c (lto_read_form): Add entry for DW_AT_inline.
4679
46802007-08-02 Kenneth Zadeck <zadeck@naturalbridge.com>
4681
4682 * lto-read.c (lto_read_function_body): Moved declaration of fn
4683 outside of ifdef.
4684
46852007-08-01 Kenneth Zadeck <zadeck@naturalbridge.com>
4686
4687 * lto-read.c (input_uleb128, input_string_internal, input_real,
4688 input_integer, input_record_start, input_list, get_type_ref,
4689 input_flags, input_expr_operand, input_expr_operand,
4690 input_expr_operand, input_local_vars, input_cfg, input_phi,
4691 input_ssa_names, input_bb, input_function): Added semicolons.
4692
4693
46942007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
4695
4696 * lto-read.c (input_globals): Remove debugging.
4697 (input_function): Set DECL_ARGUMENTS.
4698
4699
47002007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
4701
4702 * lto-read.c (input_expr_operand): Fixed code for COND_EXEC,
4703 RETURN_EXPR, MODIFY_EXPR and processing of flags.
4704 (input_phi): Made work with operands other than SSA_NAMES and
4705 fixed processing of flags.
4706 (input_ssa_names): Initialize SSA_NAME_DEF_STMT to empty stmt.
4707 (input_flags): New function.
4708 * lto-lang.c (lto_init): Changed state of in_lto_p.
4709
4710
47112007-07-24 Mark Mitchell <mark@codesourcery.com>
4712
4713 * lto-tree.h (lto_varargs_cookie): Remove.
4714 * lto.c (lto_context): Add last_parm_type, varargs_p, skip_all,
4715 skip_non_parameters, skip_parameters.
4716 (lto_varargs_cookie): Remove.
4717 (lto_read_variable_formal_parameter_constant_DIE): Keep track of
4718 parameter types.
4719 (lto_read_abbrev): New function.
4720 (lto_read_subroutine_type_subprogram_DIE): Make two passes over
4721 child DIEs.
4722 (lto_read_unspecified_parameters_DIE): Set context->varargs_p.
4723 (lto_read_DIE): Use lto_read_abbrev. Honor skip_* flags.
4724 (lto_file_read): Initialize new context fields.
4725 * lto-lang.c (lto_type_for_mode): Return NULL_TREE.
4726 (lto_unsigned_type): Remove.
4727 (lto_signed_type): Likewise.
4728 (lto_signed_or_unsigned_type): Likewise.
4729 (lto_init): Do not create lto_varargs_cookie.
4730 (LANG_HOOKS_UNSIGNED_TYPE): Do not define.
4731 (LANG_HOOKS_SIGNED_TYPE): Likewise.
4732 (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Likewise.
4733
47342007-07-19 Jan Hubicka <jh@suse.cz>
4735
4736 * lto-read.c (lto_read_function_body): Produce empty scope block
4737 to avoid crash.
4738
47392007-07-18 Mark Mitchell <mark@codesourcery.com>
4740
4741 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Do not
4742 process local variables.
4743 (lto_read_subroutine_type_subprogram_DIE): Read child DIEs.
4744
47452007-07-13 Kenneth Zadeck <zadeck@naturalbridge.com>
4746
4747 * lto-read.c (input_list, input_expr_operand): Added struct
4748 function parameter.
4749 (init_cfg, finalize_cfg): Removed function.
4750 (input_expr_operand): Added SSA_NAME and GIMPLE_MODIFY_STMT cases.
4751 (input_labels, input_local_vars): Now takes input_block parameter rather than
4752 synthsyzing it.
4753 (input_cfg, input_phi, input_ssa_names): New functions.
4754 (input_bb): Now passes in input_blocks. Does not construct cfg
4755 and processes the list of phi functions.
4756 (input_function): Now builds both the cfg and ssa_names table.
4757 (lto_read_function_body): Processes new header fields to construct
4758 streams for the ssa_names and cfg and their debugging.
4759 * lto/lto-lang.c (lto_init): Set in_lto_p.
4760
4761
47622007-06-28 Mark Mitchell <mark@codesourcery.com>
4763
4764 * lto.h (lto_file_vtable): Add read_var_init.
4765 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Read
4766 initializers.
4767 (lto_main): Remove bogus asserts.
4768 * lto-elf.c (tm.h): Include it.
4769 (libiberty.y): Likewise.
4770 (lto_elf_file): Add strtab and symtab. Rename
4771 string_table_section_index to sec_strtab.
4772 (lto_elf_file_vtable): Add lto_elf_read_var_init.
4773 (lto_elf_get_shdr): New function.
4774 (lto_elf_free_shdr): Likewise.
4775 (lto_elf_find_section_data): Use them.
4776 (lto_elf_read_symtab): New function.
4777 (lto_elf_lookup_sym): Likewise.
4778 (lto_elf_free_sym): Likewise.
4779 (lto_elf_file_open): Tidy. Call lto_elf_read_symtab.
4780 (lto_elf_built_init): New function.
4781 (lto_elf_read_var_init): Likewise.
4782 * Make-lang.in (lto/lto-elf.o): Depend on $(TM_H).
4783
47842007-06-26 Kenneth Zadeck <zadeck@naturalbridge.com>
4785
4786 * lto-read (make_new_block): Initialize the stmt_list.
4787 (lto_static_init_local): Add debugging for missing codes.
4788
47892007-06-26 Mark Mitchell <mark@codesourcery.com>
4790
4791 * lto.c (lto_read_subroutine_type_subprogram_DIE): Handle
4792 unprototyped functions.
4793
47942007-06-23 Mark Mitchell <mark@codesourcery.com>
4795
4796 * lto.c (lto_read_variable_formal_parameter_constant_DIE):
4797 Handle DW_AT_MIPS_linkage_name.
4798 (lto_read_subroutine_type_subprogram): Likewise. Correct
4799 compilation errors.
4800 (lto_main): Remove incorrect assertions.
4801 * lto-symbtab.c: Build function types out of TREE_LISTs.
4802
4803 * lto-elf.c (<libelf>): Check for HAVE_LIBELF_H.
4804
4805 * Make-lang.in (LTO_OBJS): Depend on attribs.o.
4806
48072007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com>
4808
4809 * lto/lto-tree.h (lang_decl, lang_type, language_function): Added
4810 dummy since ggc does not like empty structs.
4811 * lto/lto-elf.c (libelf.h): Changed to libelf/libelf.h.
4812 * lto/lto-read.c (ADD_CLASS_FLAG, ADD_EXPR_FLAG): Changed
4813 expr->common to expr->base.
4814 (make_new_block): Moved stmt_list to proper place.
4815
4816
48172007-03-14 Robert Kennedy <jimbob@google.com>
4818
4819 Eliminate use of lang_hooks.set_decl_assembler_name from LTO
4820 * lto.c (lto_read_subroutine_type_subprogram_DIE) Get DECL
4821 assembler name from DWARF.
4822 * lto-lang.c (lto_set_decl_assembler_name) New function.
4823
48242006-09-10 Mark Mitchell <mark@codesourcery.com>
4825
4826 * lto.h (lto_file_vtable): New structure.
4827 (lto_file): Add vtable pointer.
4828 (lto_file_init): Add vtable paramter.
4829 (lto_read_function_body): New function.
4830 (lto_symtab_merge_fn): New function.
4831 * lto.c (lto_file_init): Add vtable parameter.
4832 (lto_read_form): Fill in entries for DW_AT_prototyped,
4833 DW_AT_frame_base.
4834 (lto_read_subroutine_type_subprogram_DIE): New function.
4835 (lto_read_DIE): Fill in entries for DW_TAG_subroutine_type and
4836 DW_TAG_subprogram.
4837 * lto-elf.c (lto_elf_vile_vtable): New variable.
4838 (lto_elf_file_open): Pass it to lto_file_init.
4839 (lto_elf_map_fn_body): New function.
4840 (lto_elf_unmap_fn_body): Likewise.
4841 * lto-read.c: New file.
4842 * lto-symtab.c (lto_symtab_merge_fn): New function.
4843 * lto-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define to
4844 tree_rest_of_compilation.
4845 * Make-lang.in (LTO_OBJS): Add lto-read.o
4846 (lto-read.o): New target.
4847
48482006-09-03 Mark Mitchell <mark@codesourcery.com>
4849
4850 * lto.c (<inttypes.h>): Don't include it.
4851 (lto_context): Don't typedef it.
4852 (lto_resolve_reference): New function.
4853 (lto_read_form): Use it.
4854 (lto_resolve_type_ref): New function.
4855 (lto_resolve_var_ref): Likewise.
4856 (lto_resolve_fn_ref): Likewise.
4857 * lto.h (<inttypes.h>): Include it.
4858 (lto_context): New type.
4859 (lto_ref): New structure.
4860 (lto_resolve_type_ref): Declare.
4861 (lto_resolve_var_ref): Likewise.
4862 (lto_resolve_fn_ref): Likewise.
4863
48642006-08-18 Mark Mitchell <mark@codesourcery.com>
4865
4866 * lang-specs.h: New file.
4867
48682006-08-14 Mark Mitchell <mark@codesourcery.com>
4869
4870 * lto.c (lto_info_fd_init): Allocate the DIE cache.
4871 (lto_info_fd_close): Deallocate it.
4872 (lto_die_cache_entry): New structure.
4873 (lto_cache_hash): New function.
4874 (lto_cache_eq): Likewise.
4875 (lto_cache_store_DIE): Likewise.
4876 (lto_cache_lookup_DIE): Likewise.
4877 (lto_read_referenced_type_DIE): Use the cache.
4878 (lto_read_pointer_type_DIE): Robustify.
4879 (lto_read_DIE): Use the cache.
4880 * lto.h (hashtab.h): Include.
4881 (lto_info_fd): Add DIE cache.
4882 * Make-lang.in (LTO_H): New variable.
4883 (lto/lto-lang.o): Use LTO_H.
4884 (lto/lto-elf.o): Likewise.
4885 (lto/lto-symtab.o): Likewise.
4886
48872006-07-09 Mark Mitchell <mark@codesourcery.com>
4888
4889 * lto.c (lto_abi_mismatch_error): New function.
4890 (lto_abbrev_read): Initialize num_abbrevs.
4891 (lto_read_form): Specify allowed form classes for
4892 DW_AT_declaration. Adjust for change to lto_set_cu_context.
4893 (lto_read_variable_formal_parameter_constant_DIE): Handle
4894 DW_AT_declaration. Call lto_symtab_merge_var.
4895 (lto_read_pointer_type_DIE): New function.
4896 (lto_read_base_type_DIE): Use build_nonstandard_integer_type. Do
4897 not creat TYPE_DECLs for types that already have them.
4898 (lto_read_DIE): Add lto_read_pointer_type_DIE.
4899 (lto_set_cu_context): Make cu_start point to the header, not the
4900 first DIE.
4901 (lto_file_read): Adjust for change to lto_set_cu_context.
4902 * Make-lang.in (LTO_OBJS): Add lto-symtab.o.
4903 (lto/lto-symtab.o): New rule.
4904 * lto-tree.h (lang_identifier): Add decl field.
4905 (LANG_IDENTIFIER_CAST): New macro.
4906 (LTO_IDENTIFIER_DECL): Likewise.
4907 (lto_symtab_merge_var): Declare.
4908 * lto-symtab.c: New file.
4909
49102006-07-02 Daniel Berlin <dberlin@dberlin.org>
4911
4912 * lto.c (lto_context): Add current_cu and info_fd members.
4913 (DWARF2_CompUnit): New structure.
4914 (lto_read_DIE): Take lto_info_fd *.
4915 (lto_read_child_DIEs): Ditto.
4916 (lto_file_corrupt_error): Constify argument.
4917 (lto_set_cu_context): New function
4918 (lto_info_fd_init): Ditto.
4919 (lto_info_fd_close): Ditto.
4920 (lto_file_init): Use lto_info_fd_init.
4921 (lto_file_close): Use lto_info_fd_close.
4922 (lto_read_initial_length): Pass in pointer to header size.
4923 (lto_read_comp_unit_header): Correct cu_length to
4924 real length from beginning of header. Take lto_info_fd * as
4925 argument.
4926 (find_cu_for_offset): New function.
4927 (lto_read_form): Change first argument to lto_info_fd *.
4928 Add FORM_CONTEXT argument.
4929 Handle DW_FORM_ref_addr.
4930 (lto_read_tag_DIE): Change first argument to lto_info_fd *.
4931 (LTO_BEGIN_READ_ATTRS_UNCHECKED): Save old context.
4932 Swap contexts if necessary for form.
4933 (LTO_BEGIN_READ_ATTRS): Cast fd to right type for
4934 lto_file_corrupt_error.
4935 (LTO_END_READ_ATTRS): Swap contexts back if it had changed.
4936 (lto_read_referenced_type_DIE): Change first argument to
4937 lto_info_fd *. Access lto_fd fields through base pointer.
4938 (lto_read_compile_unit_DIE): Change first argument to an
4939 lto_info_fd *.
4940 (lto_read_variable_formal_parameter_constant_DIE): Ditto.
4941 (lto_read_base_type_DIE): Ditto.
4942 (lto_read_child_DIEs): Ditto.
4943 (lto_read_DIE): Ditto. Change type of function pointer.
4944 (lto_info_read): New function.
4945 (lto_set_cu_context): Ditto.
4946 (lto_file_read): Use lto_info_read, walk resulting CU's
4947 (lto_main): Update for lto_info_fd change.
4948 * lto-elf.c (lto_elf_file_open): Cast lto_info_fd to lto_fd where
4949 necessary.
4950 * lto.h (DWARF2_CompUnit): New structure.
4951 (lto_info_fd): Ditto.
4952 (lto_file): Change debug_info to be an lto_info_fd.
4953
49542006-06-25 Mark Mitchell <mark@codesourcery.com>
4955
4956 * lto.c (toplev.h): Include it.
4957 (dwarf2.h): Likewise.
4958 (tree.h): Likewise.
4959 (tm.h): Likewise.
4960 (cgraph.h): Likewise.
4961 (ggc.h): Likewise.
4962 (inttypes.h): Likewise.
4963 (DWARF2_attr): New type.
4964 (DWARF2_abbrev): Likewise.
4965 (DWARF2_class): Likewise.
4966 (DWARF2_form_data): Likewise.
4967 (lto_context): Likewise.
4968 (lto_fd_init): New function.
4969 (lto_abbrev_fd_init): Likewise.
4970 (lto_abbrev_fd_close): Likewise.
4971 (lto_file_init): Use them.
4972 (lto_file_close): New function.
4973 (lto_file_corrupt_error): Likewise.
4974 (LTO_CHECK_INT_VAL): New macro.
4975 (lto_check_size_t_val): New function.
4976 (lto_check_int_val): Likewise.
4977 (LTO_READ_TYPE): New macro.
4978 (lto_read_ubyte): New function.
4979 (lto_read_uhalf): Likewise.
4980 (lto_read_uword): Likewise.
4981 (lto_read_uleb128): Likewise.
4982 (lto_read_initial_length): Likewise.
4983 (lto_abbrev_read_attrs): Likewise.
4984 (lto_abbrev_read): Likewise.
4985 (lto_abbrev_lookup): Likewise.
4986 (lto_read_section_offset): Likewise.
4987 (lto_read_comp_unit_header): Likewise.
4988 (lto_read_form): Likewise.
4989 (LTO_BEGIN_READ_ATTRS_UNCHECKED): New macro.
4990 (LTO_BEGIN_READ_ATTRS): Likewise.
4991 (LTO_END_READ_ATTRS): Likewise.
4992 (lto_unsupported_attr_error): New function.
4993 (lto_get_identifier): Likewise.
4994 (lto_read_referenced_type_DIE): Likewise.
4995 (lto_read_compile_unit_DIE): Likewise.
4996 (lto_read_variable_formal_parameter_constant_DIE): Likewise.
4997 (lto_read_base_type_DIE): Likewise.
4998 (lto_read_DIE): Likewise.
4999 (lto_read_child_DIEs): Likewise.
5000 (lto_file_read): Read DIEs.
5001 (lto_main): Ask middle end to emit entities.
5002 * lto-tree.h (lang_identifier): Inherit from tree_identifier.
5003 * lto-elf.c (lto_elf_file_open): Adjust for interface changes.
5004 (lto_elf_file_close): Likewise.
5005 * lto.h (lto_file): Declare.
5006 (DWARF2_abbrev): Likewise.
5007 (lto_fd): New type.
5008 (lto_abbrev_fd): Likewise.
5009 (lto_file): Use new types.
5010 (lto_file_close): Declare.
5011 * lto-lang.c (lto_init): Always use unit-at-a-time mode.
5012
50132006-06-18 Mark Mitchell <mark@codesourcery.com>
5014
5015 * lto.h: New file.
5016 * lto.c: New file.
5017 * lto-elf.c: New file.
5018 * lto-lang.c (flags.h): Include it.
5019 (lto.h): Likewise.
5020 (lto_init): New function.
5021 (lto_write_globals): Remove.
5022 (LANG_HOOKS_WRITE_GLOBALS): Define to lhd_do_nothing.
5023 (LANG_HOOKS_INIT): Define.
5024 (LANG_HOOKS_PARSE_FILE): Likewise.
5025 * Make-lang.in (LTO_OBJS): Add lto.o and lto-elf.o.
5026 (LTO_EXE): Link with libelf.
5027 (lto/lto-lang.o): Update dependencies.
5028 (lto/lto.o): New target.
5029 (lto/lto-elf.o): Likewise.
5030
50312006-06-12 Mark Mitchell <mark@codesourcery.com>
5032
5033 * config-lang.in: New file.
5034 * Make-lang.in: Likewise.
5035 * lto-tree.h: Likewise.
5036 * lto-lang.c: Likewise.
5037