]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/lto/ChangeLog
Wrap option names in gcc internal messages with %< and %>.
[thirdparty/gcc.git] / gcc / lto / ChangeLog
1 2019-03-11 Martin Liska <mliska@suse.cz>
2
3 * lto-lang.c (lto_post_options): Wrap an option name
4 in a string format message and fix GNU coding style.
5 * lto-symtab.c (lto_symtab_merge_decls_2): Likewise.
6
7 2019-03-09 Jakub Jelinek <jakub@redhat.com>
8
9 PR target/79645
10 * lang.opt: Terminate description text with a dot.
11
12 2019-02-28 Jason Merrill <jason@redhat.com>
13
14 PR c++/88049 - ICE with undefined destructor and anon namespace.
15 * lto-symtab.c (lto_symtab_prevailing_virtual_decl): Return early
16 for a type in an anonymous namespace.
17
18 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
19
20 PR other/16615
21
22 * lto-partition.c: Mechanically replace "can not" with "cannot".
23 * lto-symtab.c: Likewise.
24 * lto.c: Likewise.
25
26 2019-01-01 Jakub Jelinek <jakub@redhat.com>
27
28 Update copyright years.
29
30 2018-12-24 Jan Hubicka <hubicka@ucw.cz>
31
32 * lto-symtab.c (lto_symtab_merge_decls_2): Do not report ODR violations
33 for method whose basetype was already reported.
34
35 2018-11-30 Michael Ploujnikov <michael.ploujnikov@oracle.com>
36
37 Minimize clone counter memory usage in LTO.
38 * lto-partition.c (privatize_symbol_name_1): Keep track of
39 non-unique symbol counters in the lto_clone_numbers hash
40 map.
41 (lto_promote_cross_file_statics): Allocate and free the
42 lto_clone_numbers hash map.
43 (lto_promote_statics_nonwpa): Free the lto_clone_numbers hash
44 map.
45
46 2018-11-28 Jan Hubicka <jh@suse.cz>
47
48 * lto.c (lto_read_decls): Fix handling of INTEGER_CST.
49
50 2018-11-22 Jan Hubicka <jh@suse.cz>
51
52 * lto.c (cmp_type_location): Remove.
53 (lto_read_decls): Do not allocate odr_types.
54
55 2018-11-19 Martin Liska <mliska@suse.cz>
56
57 PR lto/88077
58 * lto-symtab.c (lto_symtab_merge): Transform the
59 condition before r256989.
60
61 2018-11-16 Martin Liska <mliska@suse.cz>
62
63 PR lto/88004
64 * lto-symtab.c (lto_symtab_merge_symbols_1): Do not call
65 lto_symtab_symbol_p as it does checking of transparent alias.
66 These needs to be also merged in the function.
67
68 2018-10-30 Michael Ploujnikov <michael.ploujnikov@oracle.com>
69
70 * lto-partition.c (privatize_symbol_name_1): Use
71 clone_function_name_numbered.
72
73 2018-10-26 Jan Hubicka <jh@suse.cz>
74
75 * lto/lto-symtab.c (lto_symtab_merge_decls_2): Fix extra space.
76
77 2018-10-17 David Malcolm <dmalcolm@redhat.com>
78
79 * Make-lang.in (selftest-lto): New.
80
81 2018-08-29 Martin Liska <mliska@suse.cz>
82
83 PR bootstrap/87130
84 * lto.c (read_cgraph_and_symbols): Fix thinko, revert
85 to behavior before r263887.
86
87 2018-08-27 Martin Liska <mliska@suse.cz>
88
89 * lto-lang.c (handle_const_attribute): Use new function
90 fndecl_built_in_p and remove check for FUNCTION_DECL if
91 possible.
92 * lto-symtab.c (lto_symtab_merge_p): Likewise.
93 (lto_symtab_merge_decls_1): Likewise.
94 (lto_symtab_merge_symbols): Likewise.
95 * lto.c (lto_maybe_register_decl): Likewise.
96 (read_cgraph_and_symbols): Likewise.
97
98 2018-08-21 Tom de Vries <tdevries@suse.de>
99
100 * lto.c (lto_main): Call debuginfo_early_start and
101 debuginfo_early_stop.
102
103 2018-07-20 Martin Sebor <msebor@redhat.com>
104
105 PR middle-end/82063
106 * lto-lang.c (lto_handle_option): Change function argument
107 to HOST_WIDE_INT.
108
109 2018-07-20 Richard Biener <rguenther@suse.de>
110
111 PR debug/86585
112 * lto.c (unify_scc): Before we throw away an SCC see if we
113 can amend prevailing single-entry SCC with debug refs.
114
115 2018-07-13 Jan Hubicka <hubicka@ucw.cz>
116
117 * lto.c (do_stream_out): Add PART parameter; open dump file.
118 (stream_out): Add PART parameter; pass it to do_stream_out.
119 (lto_wpa_write_files): Update call of stream_out.
120
121 2018-07-04 Martin Liska <mliska@suse.cz>
122
123 PR middle-end/66240
124 PR target/45996
125 PR c/84100
126 * lto.c (compare_tree_sccs_1): Use cl_optimization_option_eq
127 instead of memcmp.
128
129 2018-06-20 Martin Liska <mliska@suse.cz>
130
131 * lto-symtab.c (lto_symtab_merge_p): Remove not valid
132 FIXME comment.
133
134 2018-06-19 Martin Liska <mliska@suse.cz>
135
136 * lto-partition.c (add_symbol_to_partition_1): Use symbol_summary::get instead
137 of get_create.
138 (undo_partition): Likewise.
139 (lto_balanced_map): Likewise.
140
141 2018-06-19 Martin Liska <mliska@suse.cz>
142
143 * config-lang.in: Remove stagestuff.
144
145 2018-06-08 Jan Hubicka <hubicka@ucw.cz>
146
147 * lto-lang.c (lto_link_dump_id, decl_merge_dump_id, partition_dump_id):
148 New global vars.
149 (lto_register_dumps): New hook.
150 (LANG_HOOKS_REGISTER_DUMPS): New.
151 * lto-partition.c: Dump into dump_file instead of symtab->dump_file.
152 * lto-symtab.c: Include lto.h; dump into dump_file instead of
153 symtab->dump_file.
154 (lto_symtab_merge_decls): Initialize dump file.
155 * lto.c (read_cgraph_and_symbols): Initialize dump file.
156 (do_whole_program_analysis): Likewise.
157
158 2018-06-08 Martin Liska <mliska@suse.cz>
159
160 * lto-partition.c (lto_balanced_map): Use cgraph_node::uid
161 instead of summary_uid.
162
163 2018-06-08 Martin Liska <mliska@suse.cz>
164
165 * lto-partition.c (add_symbol_to_partition_1): Use get_create instead
166 of get.
167 (undo_partition): Likewise.
168 (lto_balanced_map): Likewise.
169
170 2018-06-08 Martin Liska <mliska@suse.cz>
171
172 * lto-partition.c (add_references_to_partition): Remove support
173 for MPX (macros, related functions, fields in cgraph_node, ...).
174 (add_symbol_to_partition_1): Likewise.
175 (privatize_symbol_name): Likewise.
176 * lto-symtab.c (lto_cgraph_replace_node): Likewise.
177
178 2018-06-05 Richard Biener <rguenther@suse.de>
179
180 * lto.c (cmp_type_location): Expand locations only once.
181
182 2018-05-30 Jan Hubicka <hubicka@ucw.cz>
183
184 * lang.opt (lto_linker_output): Add nolto-rel.
185 * lto-lang.c (lto_post_options): Handle LTO_LINKER_OUTPUT_REL
186 and LTO_LINKER_OUTPUT_NOLTOREL.
187 (lto_init): Generate lto when doing incremental link.
188 * lto.c (lto_precess_name): Add lto1-inclink.
189
190 2018-05-18 Jan Hubicka <jh@suse.cz>
191
192 PR lto/85583
193 * lto-partition.c (account_reference_p): Do not account
194 references from aliases; do not account refernces from
195 external initializers.
196
197 2018-04-30 Jan Hubicka <jh@suse.cz>
198
199 * lto.c (cmp_partitions_size): Remove.
200 (lto_wpa_write_files): Also output priorities; do not sort partitions.
201 (cmp_partition_order): Move to ...
202 * lto-partition.c (cmp_partition_order): ...
203 (lto_1_to_1_map): Sort partitions.
204
205 2018-04-20 Jan Hubicka <jh@suse.cz>
206
207 * lto-partition.c (lto_balanced_map): Fix sanity check.
208
209 2018-04-19 Jan Hubicka <jh@suse.cz>
210
211 * lto-partition.c: Include sreal.h
212 (add_symbol_to_partition_1): Use size instead of self_size
213 for size estimate.
214 (account_reference_p): New.
215 (lto_balanced_map): Use 64bit arithmetics for size calculatoins; cleanup;
216 fix accounting errors in boundary size; add debug output; combine cost
217 as cost/size instead of cost/internal; reduce the partitioning error to
218 +- 1/8 of the parttion size.
219
220 2018-04-19 Martin Liska <mliska@suse.cz>
221
222 * lto-symtab.c (lto_symtab_resolve_symbols): Do not bail out
223 for multiple PREVAILING_DEF_IRONLY for common symbols.
224
225 2018-04-18 Martin Liska <mliska@suse.cz>
226
227 * lto.c (lto_read_decls): Fix GNU coding style and typos.
228
229 2018-04-18 Martin Liska <mliska@suse.cz>
230
231 PR ipa/83983
232 PR ipa/85391
233 * lto.c (cmp_type_location): New function.
234 (lto_read_decls): First collect all types, then
235 sort them according by location before register_odr_type
236 is called.
237
238 2018-04-18 Jan Hubicka <jh@suse.cz>
239 Martin Liska <mliska@suse.cz>
240
241 PR lto/85391
242 * lto.c (lto_read_decls): Do not test TYPE_CANONICAL before registering odr
243 types.
244
245 2018-04-11 Martin Liska <mliska@suse.cz>
246
247 * lto-symtab.c (lto_symtab_merge_p): Use attribute_value_equal
248 function.
249
250 2018-04-10 Martin Liska <mliska@suse.cz>
251
252 PR lto/85248
253 * lto-symtab.c (lto_symtab_merge_p): Do not check for
254 TREE_VALUES of error attributes.
255
256 2018-04-10 Richard Biener <rguenther@suse.de>
257 Martin Liska <mliska@suse.cz>
258
259 PR lto/85248
260 * lto-symtab.c (lto_symtab_merge_p): Handle noreturn attribute.
261
262 2018-02-08 Jan Hubicka <hubicka@ucw.cz>
263
264 * lto-partition.c (lto_balanced_map): Watch overflow.
265
266 2018-02-08 Jan Hubicka <hubicka@ucw.cz>
267
268 PR ipa/81360
269 * lto.c (unify_scc): Register prevailing trees, not trees to be freed.
270 (read_cgraph_and_symbols): Use
271 symtab_node::output_to_lto_symbol_table_p.
272
273 2018-01-30 Jan Hubicka <hubicka@ucw.cz>
274
275 * lto.c (register_resolution): Remove forgotten sanity check.
276
277 2018-01-30 Jan Hubicka <hubicka@ucw.cz>
278
279 PR lto/81004
280 * lto.c: Include builtins.h
281 (register_resolution): Merge resolutions in case trees was
282 merged across units.
283 (lto_maybe_register_decl): Break out from ...
284 (lto_read_decls): ... here.
285 (unify_scc): Also register decls here.
286 (read_cgraph_and_symbols): Sanity check that all resolutions was
287 read.
288
289 2018-02-02 Eric Botcazou <ebotcazou@adacore.com>
290
291 PR lto/83954
292 * lto-symtab.c (warn_type_compatibility_p): Do not recurse into the
293 component type of array types with non-aliased component.
294
295 2018-01-30 Jan Hubicka <hubicka@ucw.cz>
296
297 PR lto/83954
298 * lto-symtab.c (warn_type_compatibility_p): Silence false positive
299 for type match warning on arrays of pointers.
300
301 2018-01-23 Martin Liska <mliska@suse.cz>
302
303 PR lto/81440
304 * lto-symtab.c (lto_symtab_merge): Handle and do not warn about
305 trailing arrays at the end of a struct.
306
307 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
308 Alan Hayward <alan.hayward@arm.com>
309 David Sherwood <david.sherwood@arm.com>
310
311 * lto-lang.c (lto_type_for_mode): Handle MODE_VECTOR_BOOL.
312
313 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
314 Alan Hayward <alan.hayward@arm.com>
315 David Sherwood <david.sherwood@arm.com>
316
317 * lto-lang.c (lto_type_for_mode): Check valid_vector_subparts_p.
318 * lto.c (hash_canonical_type): Handle polynomial TYPE_VECTOR_SUBPARTS.
319
320 2018-01-03 Jakub Jelinek <jakub@redhat.com>
321
322 Update copyright years.
323
324 2017-12-15 Jakub Jelinek <jakub@redhat.com>
325
326 * lto-lang.c (lto_attribute_table, lto_format_attribute_table): Swap
327 affects_type_identity and handler fields, adjust comments.
328
329 2017-12-07 Richard Sandiford <richard.sandiford@arm.com>
330
331 * lto.c (compare_tree_sccs_1): Compare the new VECTOR_CST flags.
332
333 2017-12-07 Martin Sebor <msebor@redhat.com>
334
335 PR c/81544
336 * lto-lang.c (lto_attribute_table): Initialize new member of struct
337 attribute_spec.
338
339 2017-11-30 Jakub Jelinek <jakub@redhat.com>
340
341 * lto.c (create_subid_section_table): Use ; instead of ;;.
342
343 2017-11-22 Marek Polacek <polacek@redhat.com>
344
345 PR c++/60336
346 PR middle-end/67239
347 PR target/68355
348 * lto.c (compare_tree_sccs_1): Compare TYPE_EMPTY_P and DECL_PADDING_P.
349
350 2017-11-10 Jan Hubicka <hubicka@ucw.cz>
351
352 * lto-partition.c (lto_balanced_map): Use frequency accessor.
353
354 2017-10-13 Jan Hubicka <hubicka@ucw.cz>
355
356 * lto-lang.c (lto_post_options): Clean shlib flag when not doing PIC.
357
358 2017-10-11 Nathan Sidwell <nathan@acm.org>
359
360 * lto.c (mentions_vars_p_decl_with_vis): Use
361 DECL_ASSEMBLER_NAME_RAW.
362 (lto_fixup_prevailing_decls): Likewise.
363
364 2017-10-10 Richard Sandiford <richard.sandiford@linaro.org>
365
366 * lto.c (compare_tree_sccs_1): Use wi::to_wide when
367 operating on trees as wide_ints.
368
369 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
370 Alan Hayward <alan.hayward@arm.com>
371 David Sherwood <david.sherwood@arm.com>
372
373 * lto-lang.c (lto_type_for_mode): Use as_a <scalar_int_mode>.
374
375 2017-08-21 Richard Biener <rguenther@suse.de>
376
377 * lto.c (unify_scc): Truncate DIE reference queue for dropped SCCs.
378 (lto_read_decls): Process TRANSLATION_UNIT_DECLs. Remove
379 TYPE_DECL debug processing, register DIE references from
380 prevailing SCCs with the debug machinery.
381 (lto_section_with_id): Handle LTO debug sections.
382
383 2017-08-16 Nathan Sidwell <nathan@acm.org>
384
385 * lto.c (mentions_vars_p_type): Use TYPE_LANG_SLOT_1.
386 (compare_tree_sccs_1): No need to compare TYPE_BINFO directly.
387 (lto_fixup_prevailing_decls): Use TYPE_LANG_SLOT_1.
388
389 2017-08-08 Tom de Vries <tom@codesourcery.com>
390
391 * lto.c: Include attribs.h.
392
393 2017-08-08 Martin Liska <mliska@suse.cz>
394
395 * lto-lang.c: Include header files.
396 * lto-symtab.c: Likewise.
397
398 2017-08-03 Richard Biener <rguenther@suse.de>
399
400 * lto-symtab.h (lto_symtab_prevail_decl): Do not use
401 DECL_ABSTRACT_ORIGIN as flag we can end up using that. Instead
402 use DECL_LANG_FLAG_0.
403 (lto_symtab_prevail_decl): Likewise.
404
405 2017-07-07 Torsten Duwe <duwe@suse.de>
406
407 * lto-lang.c (lto_attribute_table): Add entry for
408 "patchable_function_entry".
409
410 2017-07-19 Nathan Sidwell <nathan@acm.org>
411
412 * lto.c (mentions_vars_p_type): Use TYPE_{MIN,MAX}_VALUE_RAW.
413 (compare_tree_sccs_1, lto_fixup_prevailing_decls): Likewise.
414
415 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
416
417 * lto-partition.c (lto_balanced_map): Do not check
418 flag_toplevel_reorder.
419
420 2017-06-23 Marc Glisse <marc.glisse@inria.fr>
421 * lto-lang.c (lto_init): Use builtin_structptr_types.
422
423 2017-06-15 Jan Hubicka <hubicka@ucw.cz>
424 Thomas Preud'homme <thomas.preudhomme@arm.com>
425
426 PR lto/69866
427 * lto-symtab.c (lto_symtab_merge_symbols): Drop useless definitions
428 that resolved externally.
429
430 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
431
432 * lto.c (do_whole_program_analysis): Replace inline_free_summary
433 by ipa_free_fn_summary.
434
435 2017-05-23 Martin Liska <mliska@suse.cz>
436
437 * lto-symtab.c (lto_cgraph_replace_node): Use
438 symtab_node::dump_{asm_,}name functions.
439 * lto.c (read_cgraph_and_symbols): Likewise.
440 (do_whole_program_analysis): Likewise.
441
442 2017-05-23 Martin Liska <mliska@suse.cz>
443
444 * lto.c (read_cgraph_and_symbols): Use the renamed function.
445 (do_whole_program_analysis): Use the renamed function.
446
447 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
448
449 * lto.c: Replace ipa-inline.h by ipa-fnsummary.h
450 * lto-partition.c: Replace ipa-inline.h by ipa-fnsummary.h
451
452 2017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
453
454 PR c++/80038
455 * lto-lang.c (lto_init): Set in_lto_p earlier.
456
457 2017-04-12 Richard Biener <rguenther@suse.de>
458 Bernd Edlinger <bernd.edlinger@hotmail.de>
459
460 PR middle-end/79671
461 * lto.c (compare_tree_sccs_1): Compare TYPE_TYPELESS_STORAGE.
462
463 2017-02-14 Martin Liska <mliska@suse.cz>
464
465 * lto.c (do_stream_out): Free LTO file filename string.
466
467 2017-01-19 David Malcolm <dmalcolm@redhat.com>
468
469 * lto-lang.c (builtin_type_for_size): Convert call to
470 lto_type_for_size to one through the langhook.
471 (lto_type_for_size): Move to langhooks.c and rename to
472 lhd_type_for_size.
473 (LANG_HOOKS_TYPE_FOR_SIZE): Don't redefine.
474
475 2017-01-11 Jakub Jelinek <jakub@redhat.com>
476
477 PR middle-end/50199
478 * lto-lang.c (lto_post_options): Force flag_merge_constants = 1
479 if it was 0.
480
481 2017-01-09 Jakub Jelinek <jakub@redhat.com>
482
483 PR translation/79019
484 PR translation/79020
485 * lto-symtab.c (lto_symtab_merge_symbols): Fix comment typo.
486
487 2017-01-06 Nathan Sidwell <nathan@acm.org>
488
489 * lto-partition.c (promote_symbol): Write to dump file sooner,
490 include alias promoting too.
491
492 * lto-partition.c (lto_balanced_map): Reformat/respell comment.
493 (may_need_named_section_p): Likewise.
494 (rename_statics): Likewise.
495 (lto_promote_cross_file_statics): Likewise.
496
497 2017-01-01 Jakub Jelinek <jakub@redhat.com>
498
499 Update copyright years.
500
501 2016-11-30 Georg-Johann Lay <avr@gjlay.de>
502
503 PR lto/78562
504 * lto-symtab.c (lto_symtab_merge_decls_2): Don't diagnose type
505 mismatch if the two types are built-in.
506
507 2016-11-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
508
509 * lto-lang.c (lto_init): Remove initialization of ptrdiff_type_node.
510
511 2016-11-23 Richard Biener <rguenther@suse.de>
512
513 PR lto/78472
514 * lto.c (hash_canonical_type): Ignore zero-sized fields.
515
516 2016-11-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
517
518 PR c++/71973
519 * lto-lang.c (lto_init): Assert const_tm_ptr_type_node is sane.
520
521 2016-11-18 Richard Sandiford <richard.sandiford@arm.com>
522 Alan Hayward <alan.hayward@arm.com>
523 David Sherwood <david.sherwood@arm.com>
524
525 * lto.c (offload_handle_link_vars): Use SET_DECL_MODE.
526
527 2016-10-31 Richard Biener <rguenther@suse.de>
528
529 PR lto/78129
530 * lto.c (do_whole_program_analysis): Bail out after errors
531 from WPA analysis.
532
533 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
534
535 * lto-partition.c: Include tree-vrp.h.
536 * lto.c: Likewise.
537
538 2016-09-20 Richard Biener <rguenther@suse.de>
539
540 * lto.c (lto_main): Call early_finish with "<artificial>" as
541 filename.
542
543 2016-09-19 Richard Biener <rguenther@suse.de>
544
545 * lto.c (lto_main): Invoke early_finish debug hook.
546
547 2016-07-25 Richard Biener <rguenther@suse.de>
548
549 * lto.c (compare_tree_sccs_1): Remove streamer_handle_as_builtin_p uses.
550 (unify_scc): Likewise.
551 (lto_read_decls): Likewise.
552
553 2016-06-28 Jakub Jelinek <jakub@redhat.com>
554
555 * Make-lang.in: Don't cat ../stage_current if it does not exist.
556
557 2016-06-23 Andi Kleen <ak@linux.intel.com>
558
559 * Make-lang.in: Add support for autofdo (disabled for now)
560
561 2016-06-10 Martin Sebor <msebor@redhat.com>
562
563 PR c/71392
564 * gcc/lto/lto-lang.c (handle_nonnull_attribute): Accept the nonnull
565 attribute in type-generic builtins.
566
567 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
568
569 * lto-partition.c (add_symbol_to_partition_1): Likewise.
570
571 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
572
573 * lto-symtab.c (lto_cgraph_replace_node): Initialize inline_failed.
574
575 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
576
577 * lto-partition.h (lto_balanced_map): New parameter.
578 * lto-partition.c (lto_balanced_map): New parameter
579 max_partition_size.
580 Check if partition size is greater than max_partition_size.
581 * lto.c (do_whole_program_analysis): Adjust calls to
582 lto_balanced_map() to pass 2nd argument.
583
584 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
585
586 PR lto/70258
587 * lto-lang.c (lto_post_options): Set flag_pic to flag_pie for
588 PIE.
589
590 2016-03-08 Jakub Jelinek <jakub@redhat.com>
591
592 * lto-symtab.h (lto_symtab_prevail_decl): Fix spelling
593 - becuase -> because.
594
595 2016-02-15 Tom de Vries <tom@codesourcery.com>
596
597 PR lto/69655
598 * lto.c (read_cgraph_and_symbols): Call input_offload_tables with
599 argument.
600
601 2016-01-27 Martin Liska <mliska@suse.cz>
602
603 * lto-partition.c (add_symbol_to_partition_1): Remove usage
604 of hsa_summaries.
605
606 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
607
608 PR lto/69136
609 * lto-symtab.c (lto_symtab_prevailing_virtual_decl): Abstract
610 decls have no assemblernames.
611
612 2016-01-19 Martin Liska <mliska@suse.cz>
613 Martin Jambor <mjambor@suse.cz>
614
615 * lto-partition.c: Include "hsa.h"
616 (add_symbol_to_partition_1): Put hsa implementations into the
617 same partition as host implementations.
618
619 2016-01-12 Jan Hubicka <hubicka@ucw.cz>
620
621 PR lto/69003
622 * lto-partition.c (rename_statics): Fix pasto.
623
624 2016-01-18 Richard Biener <rguenther@suse.de>
625
626 PR lto/69337
627 * lto-symtab.c (lto_symtab_merge): Return early for mismatched
628 function vs. variable.
629
630 2016-01-12 Richard Biener <rguenther@suse.de>
631
632 PR lto/69077
633 * lto-symtab.c (lto_symtab_prevailing_virtual_decl): Properly
634 merge TREE_ADDRESSABLE and DECL_POSSIBLY_INLINED flags.
635
636 2016-01-04 Jakub Jelinek <jakub@redhat.com>
637
638 Update copyright years.
639
640 2015-12-10 Jan Hubicka <hubicka@ucw.cz>
641
642 PR lto/68878
643 * lto-symtab.c (lto_symtab_prevailing_virtual_decl): New function.
644 * lto-symtab.h (lto_symtab_prevailing_virtual_decl): Declare.
645 (lto_symtab_prevailing_decl): Use it.
646
647 2015-12-15 Ilya Verbin <ilya.verbin@intel.com>
648
649 * lto.c: Include stringpool.h and fold-const.h.
650 (offload_handle_link_vars): New static function.
651 (lto_main): Call offload_handle_link_vars.
652
653 2015-12-10 Jan Hubicka <hubicka@ucw.cz>
654
655 * lto.c (lto_read_in_decl_state): Unpickle compressed bit.
656
657 2015-12-11 Jan Hubicka <hubicka@ucw.cz>
658
659 PR ipa/61886
660 * lto-symtab.c (lto_symtab_merge_p): Avoid merging across different
661 values of error and warning attributes.
662
663 2015-12-08 Jan Hubicka <hubicka@ucw.cz>
664
665 PR lto/68811
666 * lto.c (lto_fixup_prevailing_decls): Do not check TREE_CHAIN of
667 DECL.
668 (LTO_NO_PREVAIL): Use gcc_checking_assert.
669
670 2015-12-08 Jan Hubicka <hubicka@ucw.cz>
671
672 PR lto/68811
673 * lto-symtab.c (lto_symtab_merge_decls_2): Decl can never be prevailed
674 by itself.
675
676 2015-12-08 Jan Hubicka <hubicka@ucw.cz>
677
678 PR ipa/61886
679 * lto-symtab.c: Include lto-symtab.h.
680 (lto_cgraph_replace_node): Do not merge profiles here.
681 (lto_symtab_merge_p): New function.
682 (lto_symtab_merge_decls_2): Honor lto_symtab_merge_p.
683 (lto_symtab_merge_symbols_1): Turn unmerged decls into transparent
684 aliases.
685 (lto_symtab_merge_symbols): Do not clear node->aux; we no longer use it.
686 (lto_symtab_prevailing_decl): Move to lto-symtab.h; rewrite.
687 * lto.c: Include lto-symtab.h
688 * lto-symtab.h: New.
689
690 2015-12-08 Jan Hubicka <hubicka@ucw.cz>
691
692 PR ipa/61886
693 * lto-partition.c (add_symbol_to_partition_1): Transparent aliases
694 are not part of the definition.
695 (contained_in_symbol): Likewise.
696 (promote_symbol): When promoting a symbol also promote all transparent
697 aliases.
698 (rename_statics): Weakref needs unique name, too.
699
700 2015-12-07 Jan Hubicka <hubicka@ucw.cz>
701
702 PR ipa/61886
703 * lto-partition.c (add_symbol_to_partition_1, contained_in_symbol,
704 rename_statics, rename_statics): Handle transparent aliases.
705
706 2015-12-04 Jan Hubicka <hubicka@ucw.cz>
707
708 * lto-symtab.c (lto_cgraph_replace_node): Update code computing
709 merged_comdat.
710
711 2015-12-01 Jan Hubicka <hubicka@ucw.cz>
712
713 * lto.c (compare_tree_sccs_1): Do not compare TYPE_ALIAS_SET.
714
715 2015-11-25 Jan Hubicka <jh@suse.cz>
716
717 * lto-lang.c (lto_post_options): Process flag_lto_linker_output.
718 * lang.opt (lto_linker_output): New enum.
719 (flinker_output): New flag.
720
721 2015-11-24 Jan Hubicka <hubicka@ucw.cz>
722
723 * lto-symtab.c: Include alias.h
724 (warn_type_compatibility_p): Replace types_compatible_p checks by
725 TBAA and size checks; set bit 2 if locations are TBAA incompatible.
726 (lto_symtab_merge): Compare DECL sizes.
727 (lto_symtab_merge_decls_2): Warn about TBAA in compatibility.
728
729 2015-11-24 Jan Hubicka <hubicka@ucw.cz>
730
731 * lto.c (iterative_hash_canonical_type): Recruse for all types
732 which pass !canonical_type_used_p.
733 (gimple_register_canonical_type_1): Sanity check we do not compute
734 canonical type of anything with !canonical_type_used_p.
735 (gimple_register_canonical_type): Skip all types that are
736 !canonical_type_used_p
737
738 2015-11-24 Jan Hubicka <hubicka@ucw.cz>
739
740 * lto.c (unify_scc): Use free_node.
741
742 2015-11-21 Jan Hubicka <hubicka@ucw.cz>
743
744 * lto.c (iterative_hash_canonical_type): Always recurse for pointers.
745 (gimple_register_canonical_type_1): Check that pointers do not get
746 canonical types.
747 (gimple_register_canonical_type): Do not register pointers.
748
749 2015-11-21 Jan Hubicka <hubicka@ucw.cz>
750
751 * lto-symtab.c (warn_type_compatibility_p): Do not set ODR mismatch
752 flag for types that are not ODR; fix loop walking parameters.
753
754 2015-11-11 Andrew MacLeod <amacleod@redhat.com>
755
756 * lto-lang.c: Remove unused header files.
757 * lto-object.c: Likewise.
758 * lto-partition.c: Likewise.
759 * lto-symtab.c: Likewise.
760 * lto.c: Likewise.
761
762 2015-11-08 Eric Botcazou <ebotcazou@adacore.com>
763
764 * lto.c (compare_tree_sccs_1): Deal with TYPE_REVERSE_STORAGE_ORDER.
765
766 2015-11-07 Richard Sandiford <richard.sandiford@arm.com>
767
768 * lto-lang.c: Don't undef DEF_BUILTIN.
769
770 2015-10-29 Andrew MacLeod <amacleod@redhat.com>
771
772 * lto-lang.c: Reorder #include's and remove duplicates.
773 * lto-object.c: Likewise.
774 * lto-partition.c: Likewise.
775 * lto-symtab.c: Likewise.
776 * lto.c: Likewise.
777
778 2015-10-27 Mikhail Maltsev <maltsevm@gmail.com>
779
780 * lto.c (unify_scc): Use flag_checking and remove ENABLE_CHECKING
781 conditionals.
782 (lto_fixup_state): Likewise.
783 (do_whole_program_analysis): Use
784 symtab_node::checking_verify_symtab_nodes and remove ENABLE_CHECKING
785 conditionals.
786
787 2015-10-13 Jakub Jelinek <jakub@redhat.com>
788
789 * lto-lang.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
790 DEF_FUNCTION_TYPE_11): Define.
791
792 2015-10-10 Jan Hubicka <hubicka@ucw.cz>
793
794 * lto.c (hash_canonical_type): Honor
795 type_with_interoperable_signedness.
796
797 2015-09-28 Nathan Sidwell <nathan@codesourcery.com>
798
799 * lto-lang.c (DEF_FUNCTION_TYPE_VAR_6): New.
800 (DEF_FUNCTION_TYPE_VAR_11): Delete.
801
802 2015-08-31 Richard Biener <rguenther@suse.de>
803
804 * lto.c (compare_tree_sccs_1): Compare DECL_ABSTRACT_ORIGIN.
805 * lto-symtab.c (lto_symtab_merge): Merge DECL_POSSIBLY_INLINED flag.
806 (lto_symtab_prevailing_decl): Do not replace a decl that didn't
807 participate in merging with something else.
808
809 2015-08-31 Richard Biener <rguenther@suse.de>
810
811 * lto-symtab.c (lto_symtab_prevailing_decl): Remove redundant
812 test, do not replace a non-builtin with a builtin.
813 * lto.c (compare_tree_sccs_1): Do not merge things we stream
814 as builtins vs. non-builtins.
815
816 2015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org>
817
818 * lto.h: Remove useless typedefs.
819
820 2015-07-15 Andrew MacLeod <amacleod@redhat.com>
821
822 * lto.c: Remove redundant includes.
823
824 2015-07-12 Aldy Hernandez <aldyh@redhat.com>
825
826 * lto-lang.c: Fix double word typos.
827
828 2015-07-10 Andrew MacLeod <amacleod@redhat.com>
829
830 * lto.c: Include cfghooks.h rather than predict.h.
831
832 2015-07-09 Andrew MacLeod <amacleod@redhat.com>
833
834 * lto-lang.c: Adjust includes of target.h, alloc-pool.h and
835 lto-streamer.h.
836 * lto-object.c: Likewise.
837 * lto-partition.c: Likewise.
838 * lto-symtab.c: Likewise.
839
840 2015-07-09 Andrew MacLeod <amacleod@redhat.com>
841
842 * lto-lang.c: Adjust includes for flags.h changes.
843
844 2015-07-07 Andrew MacLeod <amacleod@redhat.com>
845
846 * lto-lang.c: Adjust includes.
847 * lto-object.c: Likewise.
848 * lto-partition.c: Likewise.
849 * lto-symtab.c: Likewise.
850 * lto.c: Likewise.
851
852 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
853
854 * lto-lang.c: Remove ipa-ref.h and plugin-api.h from include list.
855 * lto-object.c: Likewise.
856 * lto-partition.c: Likewise.
857 * lto-symtab.c: Likewise.
858 * lto-tree.h: Likewise.
859 * lto.c: Likewise.
860
861 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
862
863 * lto.c (tree_scc_hasher): Inherit from nofree_ptr_hash rather
864 than typed_noop_remove. Remove redudant typedefs.
865
866 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
867
868 * lto-lang.c: Do not include input.h, line-map.h or is-a.h.
869 * lto-object.c: Likewise.
870 * lto-partition.c: Likewise.
871 * lto-symtab.c: Likewise.
872 * lto.c: Likewise.
873
874 2015-06-14 Jan Hubicka <hubicka@ucw.cz>
875
876 PR ipa/66181
877 * lto.c (compare_tree_sccs_1): Do not compare TYPE_NO_FORCE_BLK.
878
879 2015-06-12 DJ Delorie <dj@redhat.com>
880
881 * lto-lang.c (lto_type_for_size): Include intN types.
882 (lto_type_for_mode): Likewise.
883
884 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
885
886 * lto.c (hash_canonical_type): Drop hashing of TYPE_STRING_FLAG.
887
888 2015-06-08 Andrew MacLeod <amacleod@redhat.com>
889
890 * lto-lang.c : Adjust include files.
891 * lto-object.c : Likewise.
892 * lto-partition.c : Likewise.
893 * lto-partition.h : Likewise.
894 * lto-symtab.c : Likewise.
895 * lto.c : Likewise.
896 * lto.h : Likewise.
897
898 2015-06-06 Jan Hubicka <hubicka@ucw.cz>
899
900 PR lto/65378
901 * lto-symtab.c (warn_type_compatibility_p): Fix call of
902 odr_or_derived_type_p.
903 (lto_symtab_merge_decls_2): Update call of warn_types_mismatch.
904
905 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
906
907
908 * lto.c (hash_canonical_type): Do not hash TREE_CODE of TREE_TYPE of
909 pointers.
910
911 2015-06-05 Aldy Hernandez <aldyh@redhat.com>
912
913 * lto-lang.c (lto_write_globals): Remove.
914 (LANG_HOOKS_WRITE_GLOBALS): Same.
915
916 2015-06-04 Andrew MacLeod <amacleod@redhat.com>
917
918 * lto-lang.c: Adjust includes for restructured coretypes.h.
919 * lto-object.c: Likewise.
920 * lto-partition.c: Likewise.
921 * lto-symtab.c: Likewise.
922 * lto.c: Likewise.
923
924 2015-06-04 Jan Hubicka <hubicka@ucw.cz>
925
926 * lto.c (hash_canonical_type): Use tree_code_for_canonical_type_merging.
927
928 2015-06-03 Jan Hubicka <hubicka@ucw.cz>
929
930 * lto.c (iterative_hash_canonical_type,
931 gimple_register_canonical_type): only hash main variants of types
932
933 2015-05-27 Martin Liska <mliska@suse.cz>
934
935 * lto-partition.c (new_partition): Reset number of symbols.
936 (add_symbol_to_partition_1): Increment number of symbols.
937 (undo_partition): Decrement number of symbols.
938 (lto_balanced_map): Dump number of symbols and insns that
939 belong to a partition.
940 * lto-partition.h (struct ltrans_partition_def): Add symbol counter.
941
942 2015-05-22 Jan Hubicka <hubicka@ucw.cz>
943
944 * lto.c (hash_canonical_type): Be sure we hash only types that
945 need alias set.
946 (gimple_register_canonical_type_1): Do not produce canonical
947 types for types that do not need alias sets.
948
949 2015-05-22 Jan Hubicka <hubicka@ucw.cz>
950
951 * lto.c (hash_canonical_type): Drop hashing of METHOD_BASETYPE.
952
953 2015-05-19 Jan Hubicka <hubicka@ucw.cz>
954
955 * lto.c (gimple_canonical_types_compatible_p): Move to tree.c
956
957 2015-05-17 Jan Hubicka <hubicka@ucw.cz>
958
959 * lto-symtab.c (warn_type_compatibility_p): Break out from ...;
960 compare ODR types (if available) and function types.
961 (lto_symtab_merge): ... here; output ODR violation warnings
962 and call warn_types_mismatch.
963
964 2015-04-29 Jan Hubicka <hubicka@ucw.cz>
965
966 * lto.c (lto_fixup_state): Call verify_type.
967
968 2015-04-18 Trevor Saunders <tsaunders@mozilla.com>
969
970 * lto.c: Adjust for hash_table changes.
971
972 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
973
974 * lto.c (lto_read_decls): Move code registering odr types out
975 of TYPE_CANONICAL conditional and also register polymorphic types.
976
977 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
978
979 * lto-symtab.c (lto_symtab_merge_decls_2): Silence warning on
980 DECL_ARTIFICAL symbols.
981
982 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
983
984 PR lto/65536
985 * lto.c (unify_scc): Revert location cache when unification
986 suceeded.
987 (lto_read_decls): Accept location cache after sucess;
988 apply location cache before calling debug hooks.
989
990 2015-03-10 Jan Hubicka <hubicka@ucw.cz>
991
992 * lto.c (read_cgraph_and_symbols): Do not do merging
993 at ltrans stage.
994
995 2015-02-26 Jakub Jelinek <jakub@redhat.com>
996
997 * lto.c (lto_mode_identity_table): New variable.
998 (lto_read_decls): Add mode_table argument to the lto_input_block
999 constructor.
1000 (lto_file_finalize): Initialize mode_table.
1001 (lto_init): Initialize lto_mode_identity_table.
1002
1003 2015-02-24 Thomas Schwinge <thomas@codesourcery.com>
1004
1005 PR libgomp/64625
1006 * lto-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
1007 Remove macros.
1008 (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
1009
1010 2015-02-03 Jan Hubicka <hubicka@ucw.cz>
1011
1012 * lto-symtab.c (lto_cgraph_replace_node): Maintain merged flag.
1013
1014 2015-01-30 Joseph Myers <joseph@codesourcery.com>
1015
1016 * lto-object.c, lto-symtab.c, lto.c: All callers of fatal_error
1017 changed to pass input_location as first argument.
1018
1019 2014-12-11 Jan Hubicka <hubicka@ucw.cz>
1020
1021 * lto-symtab.c (lto_varpool_replace_node): Merge TLS models.
1022
1023 2014-12-11 Jan Hubicka <hubicka@ucw.cz>
1024
1025 * lto.c (compare_tree_sccs_1): Add comparsion of
1026 DECL_FUNCTION_SPECIFIC_TARGET
1027
1028 2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
1029 James Norris <jnorris@codesourcery.com>
1030
1031 * lto-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
1032 New macros.
1033 * lto.c: Include "gomp-constants.h".
1034
1035 2015-01-14 Ilya Verbin <ilya.verbin@intel.com>
1036
1037 * lto-partition.c (lto_promote_cross_file_statics): Remove argument
1038 from select_what_to_stream.
1039
1040 2015-01-09 Bernd Schmidt <bernds@codesourcery.com>
1041 Jakub Jelinek <jakub@redhat.com>
1042
1043 PR middle-end/64412
1044 * lto.c (read_cgraph_and_symbols): Set lto_stream_offload_p
1045 if ACCEL_COMPILER.
1046
1047 2015-01-09 Michael Collison <michael.collison@linaro.org>
1048
1049 * lto.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1050 input.h, alias.h, symtab.h, options, fold-const.h,
1051 wide-int.h, and inchash.h due to flattening of tree.h.
1052 * lto-lang.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1053 input.h, alias.h, symtab.h, fold-const.h,
1054 wide-int.h, and inchash.h due to flattening of tree.h.
1055 * lto-object.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1056 input.h, alias.h, symtab.h, options, fold-const.h,
1057 wide-int.h, and inchash.h due to flattening of tree.h.
1058 * lto-partition.c: Ditto.
1059 * lto-symtab.c: Ditto.
1060
1061 2015-01-05 Jakub Jelinek <jakub@redhat.com>
1062
1063 Update copyright years.
1064
1065 2014-12-22 Martin Liska <mliska@suse.cz>
1066
1067 * lto-partition.c (add_symbol_to_partition_1): New inline_summaries
1068 is used.
1069 (undo_partition): Likewise.
1070 (lto_balanced_map): Likewise.
1071
1072 2014-12-22 Martin Liska <mliska@suse.cz>
1073
1074 * lto-partition.c: Include of symbol-summary.h is added.
1075 * lto-symtab.c: Likewise.
1076 * lto.c: Likewise.
1077
1078 2014-12-11 Jan Hubicka <hubicka@ucw.cz>
1079
1080 PR ipa/61324
1081 * lto.c (read_cgraph_and_symbols): Update call of
1082 remove_unreachable_nodes.
1083 (do_whole_program_analysis): Remove call of
1084 symtab->remove_unreachable_nodes
1085
1086 2014-12-08 Trevor Saunders <tsaunders@mozilla.com>
1087
1088 * lto.c (read_cgraph_and_symbols): allocate gimple_canonical_types
1089 htab with malloc instead of ggc.
1090
1091 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
1092
1093 * lto.c: Replace htab with hash_table.
1094
1095 2014-11-20 Trevor Saunders <tsaunders@mozilla.com>
1096
1097 * lto.c (lto_read_in_decl_state): Adjust.
1098 (lto_fixup_state): Likewise.
1099
1100 2014-11-17 Jan Hubicka <hubicka@ucw.cz>
1101
1102 * lto.c (lto_read_decls): Do not rebuild DECL_FUNCTION_SPECIFIC_TARGET.
1103
1104 2014-11-14 Jan Hubicka <hubicka@ucw.cz>
1105
1106 * lto.c (compare_tree_sccs_1): Compare cl_target_option_eq.
1107
1108 2014-11-13 Ilya Verbin <ilya.verbin@intel.com>
1109 Bernd Schmidt <bernds@codesourcery.com>
1110 Andrey Turetskiy <andrey.turetskiy@intel.com>
1111 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1112
1113 * lto/lto.c (read_cgraph_and_symbols): Call input_offload_tables.
1114
1115 2014-11-13 Ilya Verbin <ilya.verbin@intel.com>
1116 Ilya Tocar <ilya.tocar@intel.com>
1117 Andrey Turetskiy <andrey.turetskiy@intel.com>
1118 Bernd Schmidt <bernds@codesourcery.com>
1119
1120 * lto-object.c (lto_obj_add_section): Use section_name_prefix instead of
1121 LTO_SECTION_NAME_PREFIX.
1122 * lto-partition.c (lto_promote_cross_file_statics): Call
1123 select_what_to_stream.
1124 * lto.c (lto_section_with_id): Use section_name_prefix instead of
1125 LTO_SECTION_NAME_PREFIX.
1126 (read_cgraph_and_symbols): Read OFFLOAD_SECTION_NAME_PREFIX sections, if
1127 being built as an offload compiler.
1128
1129 2014-10-29 Richard Sandiford <richard.sandiford@arm.com>
1130
1131 * lto-lang.c: Remove redundant enum from machine_mode.
1132
1133 2014-10-28 Andrew MacLeod <amacleod@redhat.com>
1134
1135 * lto.c: Adjust include files.
1136 * lto-lang.c: Ditto.
1137 * lto-object.c: Ditto.
1138 * lto-partition.c: Ditto.
1139 * lto-symtab.c: Ditto.
1140
1141 2014-10-27 Andrew MacLeod <amacleod@redhat.com>
1142
1143 * lto-lang.c: Adjust include files.
1144 * lto-object.c: Ditto.
1145 * lto-partition.c: Ditto.
1146 * lto-symtab.c: Ditto.
1147 * lto.c: Ditto.
1148
1149 2014-10-16 DJ Delorie <dj@redhat.com>
1150
1151 * lto-object.c (lto_obj_begin_section): In the event that pointer
1152 sizes aren't powers of two, choose a more suitable alignment
1153 than (unsigned)(-1).
1154
1155 2014-10-14 DJ Delorie <dj@redhat.com>
1156
1157 * lto-lang.c (lto_build_c_type_nodes): Check intN types for
1158 size-type as well.
1159 (lto_init): Initialize all intN types, not just int128.
1160
1161 2014-10-06 Martin Liska <mliska@suse.cz>
1162
1163 * lto.c (stream_out): ARG_UNUSED added for last argument.
1164
1165 2014-09-24 Aldy Hernandez <aldyh@redhat.com>
1166
1167 * lto-symtab.c, lto.c: Rename all instances of DECL_ABSTRACT to
1168 DECL_ABSTRACT_P.
1169
1170 2014-09-23 Andi Kleen <ak@linux.intel.com>
1171
1172 * lto-partition.c (node_cmp): Update comment.
1173 (varpool_node_cmp): Use symtab_node for comparison.
1174 (add_sorted_nodes): New function.
1175 (lto_balanced_map): Change to keep ordered queue
1176 of ordered node. Handle no_reorder attribute.
1177
1178 2014-09-11 Jan Hubicka <hubicka@ucw.cz>
1179
1180 * lto.c (lto_read_decls): Register ODR types.
1181
1182 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
1183
1184 * lto.c (read_cgraph_and_symbols): Fix symtab_remove_unreachable_nodes
1185 call.
1186 (do_whole_program_analysis): Only sanity check that IPA passes cleans up.
1187
1188 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
1189
1190 * lto-symtab.c (lto_varpool_replace_node): Call compare_virtual_tables.
1191
1192 2014-08-14 Richard Biener <rguenther@suse.de>
1193
1194 PR lto/62067
1195 * lto-lang.c (def_fn_type): Fix error handling wrt va_end.
1196
1197 2014-08-08 Richard Biener <rguenther@suse.de>
1198
1199 * lto.c (lto_read_decls): Adjust for lto_input_block changes.
1200
1201 2014-08-08 Bin Cheng <bin.cheng@arm.com>
1202
1203 PR lto/62032
1204 * lto-lang.c (lto_init): Switch mis-matched arguments.
1205
1206 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
1207
1208 * lto-partition.c, lto.c: Use hash_map instead of pointer_map.
1209
1210 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
1211
1212 * lto-partition.c, lto-partition.h: Use hash_set instead of
1213 pointer_set.
1214
1215 2014-07-31 Andi Kleen <ak@linux.intel.com>
1216
1217 * lto.c (hash_canonical_type): Use inchash::hash
1218 and use inchash::add_expr.
1219 (iterative_hash_canonical_type): Dito.
1220
1221 2014-07-30 Richard Biener <rguenther@suse.de>
1222
1223 * lto-streamer.h (lto_write_data): New function.
1224 * langhooks.c (lhd_append_data): Do not free block.
1225 * lto-section-out.c (lto_write_data): New function writing
1226 raw data to the current section.
1227 (lto_write_stream): Adjust for langhook semantic change.
1228 (lto_destroy_simple_output_block): Write header directly.
1229 * lto-opts.c (lto_write_options): Write options directly.
1230 * lto-streamer-out.c (produce_asm): Write heaeder directly.
1231 (lto_output_toplevel_asms): Likewise.
1232 (copy_function_or_variable): Copy data directly.
1233 (write_global_references): Output index table directly.
1234 (lto_output_decl_state_refs): Likewise.
1235 (write_symbol): Write data directly.
1236 (produce_symtab): Adjust.
1237 (produce_asm_for_decls): Output header and refs directly.
1238
1239 2014-07-25 Andi Kleen <ak@linux.intel.com>
1240
1241 * lto.c (hash_canonical_type): Call iterative_hstate_expr.
1242
1243 2014-07-25 Andi Kleen <ak@linux.intel.com>
1244
1245 * lto.c (hash_canonical_type): Convert to inchash.
1246 (iterative_hash_canonical_type): Dito.
1247
1248 2014-07-25 Andi Kleen <ak@linux.intel.com>
1249
1250 * lto.c: Include inchash.h
1251
1252 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
1253
1254 * lto.c (mentions_vars_p_decl_non_common): Skip
1255 DECL_ARGUMENT_FLD.
1256 mentions_vars_p_function): Do DECL_ARGUMENTS.
1257 (lto_fixup_prevailing_decls): Update.
1258
1259 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
1260
1261 * lto.c (read_cgraph_and_symbols): Do not push DECL_INIT_IO
1262 timevar
1263 (materialize_cgraph): Do not push GIMPLE_IN timevar.
1264
1265 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
1266
1267 * lto-partition.c (add_references_to_partition): Use
1268 varpool_ctor_useable_for_folding_p.
1269 * lto.c (lto_read_in_decl_state): Update sanity check.
1270
1271 2014-07-01 Martin Liska <mliska@suse.cz>
1272
1273 IPA REF alias refactoring
1274 * lto-partition.c (add_symbol_to_partition_1): Usage of
1275 FOR_EACH_ALIAS added.
1276
1277 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
1278
1279 Revert:
1280 * lto.c (lto_copy_fields_not_streamed): New function.
1281 (compare_tree_sccs_1): Do not compare fields shared in between type
1282 and variant.
1283 (lto_read_decls): Fixup types first before inserting into hash.
1284
1285 2014-06-28 Andrew Pinski <apinski@cavium.com>
1286
1287 * lto.c (lto_read_decls): Fix comment in comment.
1288
1289 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
1290
1291 * lto.c (lto_copy_fields_not_streamed): New function.
1292 (compare_tree_sccs_1): Do not compare fields shared in between type
1293 and variant.
1294 (lto_read_decls): Fixup types first before inserting into hash.
1295
1296 2014-06-25 Martin Liska <mliska@suse.cz>
1297
1298 * lto/lto-partition.c (add_references_to_partition): New IPA REF function
1299 used.
1300 (add_symbol_to_partition_1): Likewise.
1301 (lto_balanced_map): Likewise.
1302 * lto/lto-symtab.c (lto_cgraph_replace_node): Likewise.
1303
1304 2014-06-24 Jan Hubicka <hubicka@ucw.cz>
1305
1306 * lto.c (mentions_vars_p_decl_non_common): Move DECL_VINDEX check to ..
1307 (mentions_vars_p_function): ... here.
1308 (compare_tree_sccs_1): Update VINDEX checks.
1309 (lto_fixup_prevailing_decls): Likewise.
1310
1311 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
1312
1313 * lto.c (canonical_type_hash_cache): Use hash_map instead of
1314 pointer_map.
1315
1316 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
1317
1318 * lto.c: Adjust.
1319
1320 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
1321
1322 * lto-symtab.c (lto_varpool_replace_node): Report TLS model conflicts.
1323
1324 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
1325
1326 * lto.c (compare_tree_sccs_1): Do not compare priorities.
1327
1328 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
1329
1330 * lto.c (compare_tree_sccs_1): Do not compare DECL_TLS_MODEL.
1331
1332 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
1333
1334 * lto.c (read_cgraph_and_symbols): Remove unreachable symbols.
1335 (do_whole_program_analysis): Use verify_symtab.
1336
1337 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
1338
1339 * lto.c (mentions_vars_p_decl_with_vis, compare_tree_sccs_1,
1340 lto_fixup_prevailing_decls): Skip section names.
1341
1342 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
1343
1344 * lto-symtab.c: Include builtins.h.
1345
1346 2014-05-26 Richard Biener <rguenther@suse.de>
1347
1348 * lto.c (lto_parse_hex): Use int64_t.
1349 (lto_resolution_read): Likewise.
1350
1351 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
1352
1353 * lto.c (read_cgraph_and_symbols): Grow ggc memory after streaming.
1354
1355 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
1356
1357 * lto-symtab.c (lto_symtab_merge_symbols): Update code setting
1358 symtab pointer.
1359 * lto.c (compare_tree_sccs_1): Do not compare comdat groups.
1360
1361 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
1362
1363 * lto-lang.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
1364 (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
1365 (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
1366
1367 2012-05-22 Bernd Schmidt <bernds@codesourcery.com>
1368
1369 * lto-object.c: Include "lto-section-names.h".
1370 (LTO_SEGMENT_NAME): Don't define.
1371 * lto.c: Include "lto-section-names.h".
1372
1373 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
1374
1375 PR lto/61012
1376 * lto-symtab.c (lto_symtab_merge_decls_1): Do not ICE on undefined externals
1377 mixed with variables.
1378
1379 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
1380
1381 * lto-tree.h: Don't use variable_size gty attribute.
1382 * lto.c (lto_read_in_decl_state): Adjust.
1383 (create_subid_section_table): Likewise.
1384 (lto_flatten_files): Likewise.
1385 (read_cgraph_and_symbols): Likewise.
1386
1387 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
1388 Mike Stump <mikestump@comcast.net>
1389 Richard Sandiford <rdsandiford@googlemail.com>
1390
1391 * lto.c (compare_tree_sccs_1): Use wide-int interfaces.
1392 * lto-lang.c (get_nonnull_operand): Likewise.
1393
1394 2014-04-28 Richard Biener <rguenther@suse.de>
1395
1396 PR middle-end/60092
1397 * lto-lang.c: Define flag_isoc11.
1398
1399 2014-04-23 David Malcolm <dmalcolm@redhat.com>
1400
1401 * lto-partition.c (add_references_to_partition): Update for
1402 removal of implicit pointer from the is-a.h API.
1403 (add_symbol_to_partition_1): Likewise.
1404 (contained_in_symbol): Likewise.
1405 (undo_partition): Likewise.
1406 (lto_balanced_map): Likewise.
1407 (promote_symbol): Likewise.
1408 * lto-symtab.c (lto_symtab_merge_symbols_1): Likewise.
1409 (lto_symtab_merge_symbols): Likewise.
1410 * lto.c (lto_wpa_write_files): Likewise.
1411
1412 2014-04-15 Richard Biener <rguenther@suse.de>
1413
1414 * lto.c: Include params.h.
1415 (do_whole_program_analysis): Switch on flag_lto_partition value,
1416 add support for LTO_PARTITION_ONE.
1417 * lto-partition.h (lto_balanced_map): Adjust.
1418 * lto-partition.c (lto_balanced_map): Get number of desired
1419 partitions as argument to support -flto-partition=one.
1420
1421 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
1422
1423 * lto/lto-symtab.c (lto_cgraph_replace_node): Don't re-merge
1424 tp_first_run.
1425
1426 2014-03-19 Jan Hubicka <hubicka@ucw.cz>
1427
1428 * lto.c: Include ipa-inline.h
1429 (do_whole_program_analysis): Free inline summary after partitioning.
1430
1431 2014-03-19 Richard Biener <rguenther@suse.de>
1432
1433 PR middle-end/60553
1434 * lto-tree.h (lang_tree_node): For types use TYPE_NEXT_VARIANT
1435 instead of TREE_CHAIN as chain_next.
1436
1437 2014-03-19 Richard Biener <rguenther@suse.de>
1438
1439 * lto.c (lto_wpa_write_files): Move call to
1440 lto_promote_cross_file_statics ...
1441 (do_whole_program_analysis): ... here, into the partitioning
1442 block. Do not ggc_collect after lto_wpa_write_files but
1443 for a last time before it.
1444
1445 2014-03-19 Jakub Jelinek <jakub@redhat.com>
1446
1447 PR lto/60571
1448 * lto.c (wait_for_child): Define WCONTINUED if not defined to 0.
1449 Fix formatting.
1450
1451 2014-03-18 Jakub Jelinek <jakub@redhat.com>
1452
1453 PR sanitizer/60535
1454 * lto-lang.c (lto_init): Add NAME_TYPE for int128_integer_type_node
1455 and complex_{float,{,long_}double}_type_node.
1456
1457 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
1458
1459 * lto-lang.c (lto_init): Pass flag_short_double to
1460 build_common_tree_nodes.
1461
1462 2014-02-14 Jan Hubicka <hubicka@ucw.cz>
1463
1464 PR lto/60295
1465 * lto.c (stream_out): Avoid parallel streaming with
1466 -flto=jobserver until we are able to throttle it down
1467 resonably.
1468
1469 2014-02-14 Jan Hubicka <hubicka@ucw.cz>
1470
1471 * lto-partition.c (add_symbol_to_partition_1,
1472 undo_partition, lto_balanced_map): Aliases have no
1473 defined size.
1474 (lto_balanced_map): Do not follow refering variables
1475 if they can be optimized out.
1476
1477 2014-02-14 Richard Biener <rguenther@suse.de>
1478
1479 PR lto/60179
1480 * lto.c (compare_tree_sccs_1): Do not compare
1481 DECL_FUNCTION_SPECIFIC_TARGET.
1482 (lto_read_decls): Re-build DECL_FUNCTION_SPECIFIC_TARGET.
1483
1484 2014-02-12 Richard Biener <rguenther@suse.de>
1485
1486 PR lto/60060
1487 * lto-lang.c (lto_write_globals): Do not call
1488 wrapup_global_declarations or emit_debug_global_declarations
1489 but emit debug info for non-function scope variables
1490 directly.
1491
1492 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
1493
1494 * lto.c (unify_scc): Free CONSTRUCTOR_ELTS.
1495
1496 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
1497
1498 PR ipa/59469
1499 * lto-partition.c (symbol_class): Move to cgraph.h
1500 (get_symbol_class): Move to symtab.c
1501 (add_references_to_partition, add_symbol_to_partition_1,
1502 lto_max_map, lto_1_to_1_map, lto_balanced_map,
1503 lto_promote_cross_file_statics): Update.
1504
1505 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
1506
1507 * lto.c (lto_parallelism): New static var.
1508 (do_stream_out, wait_for_child, stream_out): New static functions.
1509 (lto_wpa_write_files): Add support for parallel streaming.
1510 (do_whole_program_analysis): Set parallelism.
1511 * lang.opt (fwpa): Add parameter.
1512 * lto-lang.c (lto_handle_option): Handle flag_wpa.
1513 (lto_init): Update use of flag_wpa.
1514 * lto-streamer.h (asm_nodes_output): Declare.
1515
1516 2014-02-05 Richard Biener <rguenther@suse.de>
1517
1518 * lto.h (lto_global_var_decls): Remove.
1519 * lto-lang.c (lto_init): Do not allocate lto_global_var_decls.
1520 (lto_write_globals): Do nothing in WPA stage, gather globals from
1521 the varpool here ...
1522 * lto.c (lto_main): ... not here.
1523 (materialize_cgraph): Do not call rest_of_decl_compilation
1524 on the empty lto_global_var_decls vector.
1525 (lto_global_var_decls): Remove.
1526
1527 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
1528
1529 * lto-partition.c (get_symbol_class): Only unforced DECL_ONE_ONLY
1530 needs duplicating, not generic COMDAT.
1531
1532 2014-02-04 Richard Biener <rguenther@suse.de>
1533
1534 PR lto/59723
1535 * lto.c (mentions_vars_p): Handle NAMELIST_DECL.
1536 (lto_fixup_prevailing_decls): Handle fixing up CONSTRUCTOR values.
1537
1538 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
1539 Markus Trippelsdorf
1540
1541 PR ipa/59469
1542 * lto-symtab.c (lto_cgraph_replace_node, lto_varpool_replace_node):
1543 merge force_output and forced_by_abi flags.
1544
1545 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
1546
1547 * lto-lang.c (lto_init): Replaced flag_enable_cilkplus with
1548 flag_cilkplus.
1549
1550 2014-01-09 Richard Biener <rguenther@suse.de>
1551
1552 * lto.c (gimple_canonical_types_compatible_p): Fix comment.
1553
1554 2014-01-09 Richard Biener <rguenther@suse.de>
1555
1556 PR lto/45586
1557 * lto.c (hash_canonical_type): Do not hash TREE_ADDRESSABLE,
1558 TYPE_ALIGN, TYPE_RESTRICT or TYPE_REF_CAN_ALIAS_ALL.
1559 (gimple_canonical_types_compatible_p): Do not compare them either.
1560
1561 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
1562
1563 Update copyright years
1564
1565 2013-12-06 Oleg Endo <olegendo@gcc.gnu.org>
1566
1567 * lto.c: Remove struct tags when referring to class varpool_node.
1568 * lto-partition.c: Likewise.
1569 * lto-symtab.c: Likewise.
1570
1571 2013-11-29 Jakub Jelinek <jakub@redhat.com>
1572 Richard Biener <rguenther@suse.de>
1573
1574 PR lto/59326
1575 * lto.c (compare_tree_sccs_1): Handle OMP_CLAUSE.
1576
1577 2013-11-29 Jakub Jelinek <jakub@redhat.com>
1578
1579 PR lto/59326
1580 * lto.c (mentions_vars_p_omp_clause): New function.
1581 (mentions_vars_p): Call it for OMP_CLAUSE. Remove break;
1582 after return stmts.
1583
1584 2013-11-22 Andrew MacLeod <amacleod@redhat.com>
1585
1586 * lto.c: Add required include files from gimple.h.
1587 * lto-lang.c: Likewise
1588 * lto-object.c: Likewise
1589 * lto-partition.c: Likewise
1590 * lto-symtab.c: Likewise
1591
1592 2013-11-18 Trevor Saunders <tsaunders@mozilla.com>
1593
1594 * lto-partition.c lto-symtab.c lto.c Adjust.
1595
1596 2013-11-14 Diego Novillo <dnovillo@google.com>
1597
1598 * lto-lang.c: Include stringpool.h.
1599 Include stor-layout.h.
1600 * lto-partition.c: Include gcc-symtab.h.
1601 * lto.c: Include stor-layout.h.
1602
1603 2013-10-31 David Malcolm <dmalcolm@redhat.com>
1604
1605 Automated part of renaming of symtab_node_base to symtab_node.
1606
1607 Patch autogenerated by rename_symtab.py from
1608 https://github.com/davidmalcolm/gcc-refactoring-scripts
1609 revision 58bb219cc090b2f4516a9297d868c245495ee622
1610
1611 * lto-partition.c (add_symbol_to_partition): Rename
1612 symtab_node_base to symtab_node.
1613 (get_symbol_class): Likewise.
1614 (symbol_partitioned_p): Likewise.
1615 (add_references_to_partition): Likewise.
1616 (add_symbol_to_partition_1): Likewise.
1617 (contained_in_symbol): Likewise.
1618 (add_symbol_to_partition): Likewise.
1619 (lto_1_to_1_map): Likewise.
1620 (lto_max_map): Likewise.
1621 (lto_balanced_map): Likewise.
1622 (privatize_symbol_name): Likewise.
1623 (promote_symbol): Likewise.
1624 (may_need_named_section_p): Likewise.
1625 (rename_statics): Likewise.
1626 (lto_promote_statics_nonwpa): Likewise.
1627 * lto-symtab.c (lto_symtab_merge): Likewise.
1628 (lto_symtab_resolve_replaceable_p): Likewise.
1629 (lto_symtab_symbol_p): Likewise.
1630 (lto_symtab_resolve_can_prevail_p): Likewise.
1631 (lto_symtab_resolve_symbols): Likewise.
1632 (lto_symtab_merge_decls_2): Likewise.
1633 (lto_symtab_merge_decls_1): Likewise.
1634 (lto_symtab_merge_decls): Likewise.
1635 (lto_symtab_merge_symbols_1): Likewise.
1636 (lto_symtab_merge_symbols): Likewise.
1637 (lto_symtab_prevailing_decl): Likewise.
1638 * lto.c (lto_wpa_write_files): Likewise.
1639 (read_cgraph_and_symbols): Likewise.
1640 (do_whole_program_analysis): Likewise.
1641
1642 2013-10-30 David Malcolm <dmalcolm@redhat.com>
1643
1644 * lto-symtab.c (lto_symtab_merge_decls_2): Split symtab_node
1645 declarations onto multiple lines to make things easier for
1646 rename_symtab.py.
1647 (lto_symtab_merge_decls_1): Likewise.
1648 (lto_symtab_merge_symbols_1): Likewise.
1649
1650 2013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com>
1651
1652 * Make-lang.in (lto/lto-lang.o): Added cilk.h in dependency list.
1653 * lto-lang.c (lto_init): Added a call to cilk_init_builtins if Cilk
1654 Plus is enabled.
1655
1656 2013-10-29 David Malcolm <dmalcolm@redhat.com>
1657
1658 Patch autogenerated by refactor_symtab.py from
1659 https://github.com/davidmalcolm/gcc-refactoring-scripts
1660 revision 58bb219cc090b2f4516a9297d868c245495ee622
1661
1662 * lto-partition.c (lto_promote_cross_file_statics): Update for
1663 conversion of symtab types to a true class hierarchy.
1664 (rename_statics): Likewise.
1665 (promote_symbol): Likewise.
1666 (privatize_symbol_name): Likewise.
1667 (lto_balanced_map): Likewise.
1668 (varpool_node_cmp): Likewise.
1669 (node_cmp): Likewise.
1670 (lto_1_to_1_map): Likewise.
1671 (undo_partition): Likewise.
1672 (add_symbol_to_partition): Likewise.
1673 (contained_in_symbol): Likewise.
1674 (add_symbol_to_partition_1): Likewise.
1675 (add_references_to_partition): Likewise.
1676 (symbol_partitioned_p): Likewise.
1677 (get_symbol_class): Likewise.
1678 (lto_max_map): Likewise.
1679 * lto-symtab.c (lto_symtab_prevailing_decl): Likewise.
1680 (lto_symtab_merge_symbols): Likewise.
1681 (lto_symtab_merge_symbols_1): Likewise.
1682 (lto_symtab_merge_decls): Likewise.
1683 (lto_symtab_merge_decls_1): Likewise.
1684 (lto_symtab_merge_decls_2): Likewise.
1685 (lto_symtab_resolve_symbols): Likewise.
1686 (lto_symtab_resolve_can_prevail_p): Likewise.
1687 (lto_symtab_symbol_p): Likewise.
1688 (lto_symtab_resolve_replaceable_p): Likewise.
1689 (lto_symtab_merge): Likewise.
1690 (lto_varpool_replace_node): Likewise.
1691 (lto_cgraph_replace_node): Likewise.
1692 * lto.c (lto_main): Likewise.
1693 (do_whole_program_analysis): Likewise.
1694 (materialize_cgraph): Likewise.
1695 (read_cgraph_and_symbols): Likewise.
1696 (cmp_partitions_order): Likewise.
1697 (lto_materialize_function): Likewise.
1698 (has_analyzed_clone_p): Likewise.
1699
1700 2013-10-29 Andrew MacLeod <amacleod@redhat.com>
1701
1702 * lto/lto-object.c: Add gimple.h to include list.
1703 * lto/lto-partition.c: Likewise.
1704
1705 2013-10-18 Andrew MacLeod <amacleod@redhat.com>
1706
1707 * lto.c: Remove tree-flow.h from include list.
1708
1709 2013-10-15 Richard Biener <rguenther@suse.de>
1710
1711 * lto.c (hash_canonical_type): Split out from ...
1712 (iterative_hash_canonical_type): ... here. Register types
1713 we recurse to.
1714 (gimple_canonical_type_hash): Adjust.
1715 (gimple_register_canonical_type_1): Split out from ...
1716 (gimple_register_canonical_type): ... here. Cache computed
1717 hash value.
1718 (lto_register_canonical_types): Split into two modes,
1719 clearing and computing TYPE_CANONICAL.
1720 (lto_read_decls): Adjust.
1721 (read_cgraph_and_symbols): Do two passes over global trees,
1722 first clearing then computing TYPE_CANONICAL.
1723
1724 2013-10-14 Richard Biener <rguenther@suse.de>
1725
1726 * lto.c (gimple_canonical_types): Move out-of GC space.
1727 (canonical_type_hash_cache): Make a pointer-map.
1728 (num_canonical_type_hash_entries, num_canonical_type_hash_queries):
1729 New counters.
1730 (iterative_hash_canonical_type): Adjust.
1731 (read_cgraph_and_symbols): Likewise.
1732 (print_lto_report_1): Likewise.
1733
1734 2013-10-14 Richard Biener <rguenther@suse.de>
1735
1736 * lto.c (gimple_types, type_hash_cache, struct type_pair_d,
1737 type_pair_cache, lookup_type_pair, struct sccs, next_dfs_num,
1738 gtc_next_dfs_num, compare_type_names_p, gtc_visit,
1739 gimple_types_compatible_p_1, gimple_types_compatible_p,
1740 visit, iterative_hash_name, struct type_hash_pair,
1741 type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash,
1742 gimple_type_eq, gimple_register_type, num_not_merged_types,
1743 num_not_merged_types_in_same_scc, num_not_merged_types_trees,
1744 num_not_merged_types_in_same_scc_trees): Remove old merging code
1745 and statistics.
1746 (lto_read_decls): Do not run old merging code in parallel.
1747 (read_cgraph_and_symbols): Do not init/free old merging
1748 data structures.
1749 (print_lto_report_1): Do not report differences of old vs. new
1750 merging code.
1751
1752 2013-10-14 Richard Biener <rguenther@suse.de>
1753
1754 * lto-lang.c (lto_init): Do not re-init canonical types here.
1755 (lto_register_canonical_types): Move to ...
1756 * lto.c (lto_register_canonical_types): ... here.
1757 (gimple_canonical_types, canonical_type_hash_cache,
1758 iterative_hash_canonical_type, gimple_canonical_type_hash,
1759 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
1760 gimple_register_canonical_type): Add canonical type merging machinery
1761 moved from gimple.c.
1762 (read_cgraph_and_symbols): Init and free canonical type tables
1763 here.
1764 (print_lto_report_1): Report canonical type table stats here.
1765
1766 2013-10-11 Jakub Jelinek <jakub@redhat.com>
1767
1768 * lto-lang.c (DEF_FUNCTION_TYPE_8): Define.
1769
1770 2013-09-25 Tom Tromey <tromey@redhat.com>
1771
1772 * Make-lang.in (LTO_H, LINKER_PLUGIN_API_H, LTO_TREE_H)
1773 (lto/lto-lang.o, lto/lto.o, lto/lto-partition.o)
1774 (lto/lto-object.o): Remove.
1775
1776 2013-09-06 Richard Biener <rguenther@suse.de>
1777
1778 * lto-symtab.c: Move from gcc/
1779 * lto.h: Include vec.h.
1780 (lto_global_var_decls): Declare.
1781 * lto.c (lto_global_var_decls): Move definition here.
1782 * Make-lang.in (LTO_OBJS): Add lto-symtab.o.
1783 (lto-symtab.o): Add.
1784 * config-lang.in (gtfiles): Add lto.h.
1785
1786 2013-08-31 Jan Hubicka <jh@suse.cz>
1787
1788 * lto.c (mentions_vars_p_field_decl, lto_fixup_prevailing_decls):
1789 DECL_FIELD_OFFSET can contain an reference to variable.
1790
1791 2013-08-31 Jan Hubicka <jh@suse.cz>
1792
1793 * lto.c (tree_with_vars): Turn into vector.
1794 (MAYBE_REMEMBER_WITH_VARS): Change to...
1795 (CHECK_VAR): ... this one.
1796 (CHECK_NO_VAR): New macro.
1797 (maybe_remember_with_vars_typed): Turn to ...
1798 (mentions_vars_p_typed): ... this one.
1799 (maybe_remember_with_vars_common): Turn to ...
1800 (mentions_vars_p_comon): ... this one.
1801 (maybe_remember_with_vars_decl_minimal): Turn to ...
1802 (mentions_vars_p_decl_minmal): ... this one.
1803 (maybe_remember_with_vars_decl_common): Turn to ...
1804 (mentions_vars_p_decl_common): ... this one.
1805 (maybe_remember_with_vars_decl_with_vis): Turn to ...
1806 (mentions_vars_p_decl_with_vis): ... this one.
1807 (maybe_remember_with_vars_decl_non_common): Turn to ...
1808 (mentions_vars_p_decl_non_common): ... this one.
1809 (maybe_remember_with_vars_function): Turn to ...
1810 (mentions_vars_p_function): ... this one.
1811 (maybe_remember_with_vars_field_decl): Turn to ...
1812 (mentions_vars_p_field_decl): ... this one.
1813 (maybe_remember_with_vars_type): Turn to ...
1814 (mentions_vars_p_type): ... this one.
1815 (maybe_remember_with_vars_binfo): Turn to ...
1816 (mentions_vars_p_binfo): ... this one.
1817 (maybe_remember_with_vars_constructor): Turn to ...
1818 (mentions_vars_p_constructor): ... this one.
1819 (maybe_remember_with_vars_expr): Turn to ...
1820 (mentions_vars_p_expr): ... this one.
1821 (maybe_remember_with_vars): Turn to ...
1822 (mentions_vars_p): ... this one.
1823 (lto_read_decls): Update.
1824 (LTO_SET_PREVAIL): Do not call function for internal decls.
1825 (lto_fixup_prevailing_decls): Update to match mentions_vars_p;
1826 check that something was updated.
1827 (lto_fixup_state): Do not care about internal decls.
1828 (lto_fixup_decls): Update.
1829 (read_cgraph_and_symbols): Update.
1830
1831 2013-08-29 Jan Hubicka <jh@suse.cz>
1832
1833 * lto.c (read_cgraph_and_symbols): Free decl states.
1834
1835 2013-08-29 Jan Hubicka <jh@suse.cz>
1836
1837 * lto.c (compare_tree_sccs_1): Compare DECL_FINAL_P,
1838 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and
1839 TYPE_FINAL_P.
1840
1841 2013-08-28 Jan Hubicka <jh@suse.cz>
1842
1843 * lto.c (compare_tree_sccs_1): Drop DECL_ERROR_ISSUED,
1844 DECL_DEFER_OUTPUT and DECL_IN_TEXT_SECTION.
1845 (unify_scc): Do checking assert.
1846
1847 2013-08-06 Jan Hubicka <jh@suse.cz>
1848 Martin Liska <marxin.liska@gmail.com>
1849
1850 * lto-partition.c (lto_balanced_map): Always base order on
1851 source file order.
1852
1853 2013-08-06 Jan Hubicka <jh@suse.cz>
1854
1855 * lto.c (lto_materialize_function): Do not read body anymore.
1856
1857 2013-08-02 Jan Hubicka <jh@suse.cz>
1858
1859 * lto.c (lto_materialize_function): Do not push struct function.
1860 * lto-partition.c (get_symbol_class): Handle abstracts correctly.
1861 (may_need_named_section_p): Even abstract origins may need
1862 named section.
1863
1864 2013-07-30 David Malcolm <dmalcolm@redhat.com>
1865
1866 * Make-lang.in (lto/lto.o:): Depend on CONTEXT_H and
1867 PASS_MANAGER_H.
1868
1869 * lto.c (do_whole_program_analysis): Update for move of
1870 all_regular_ipa_passes from a global to a field of class
1871 pass_manager.
1872
1873 2013-07-21 OndÅ\99ej Bílka <neleai@seznam.cz>
1874
1875 * lto-partition.c: Fix typos.
1876
1877 2013-06-20 Jan Hubicka <jh@suse.cz>
1878
1879 * lto-partition.c (lto_balanced_map): Fix -fno-toplevel-reorder
1880 partitioning of variables.
1881
1882 2013-06-20 Jan Hubicka <jh@suse.cz>
1883
1884 * lto.c (read_cgraph_and_symbols): Set cgraph state.
1885
1886 2013-06-19 Jan Hubicka <jh@suse.cz>
1887
1888 * lto-partition.c (add_references_to_partition): Use
1889 ctor_for_folding.
1890
1891 2013-06-18 Richard Biener <rguenther@suse.de>
1892
1893 * lto.c (lto_register_var_decl_in_symtab): Pass in cache index
1894 and use it.
1895 (lto_register_function_decl_in_symtab): Likewise.
1896 (cmp_tree): New function.
1897 (unify_scc): Instead of using the streamer cache map from entry
1898 to cache index match up the two maps we have by sorting them.
1899 Adjust calls to lto_register_var_decl_in_symtab and
1900 lto_register_function_decl_in_symtab.
1901
1902 2013-06-17 Richard Biener <rguenther@suse.de>
1903
1904 * Make-lang.in (lto.o): Add $(DATA_STREAMER_H) dependency.
1905 * lto.c: Include data-streamer.h.
1906 (lto_read_in_decl_state): Use streamer_tree_cache_get_tree.
1907 (gimple_type_leader_entry_s, gimple_type_leader,
1908 gimple_lookup_type_leader): Remove.
1909 (gtc_visit): Simplify.
1910 (gimple_types_compatible_p): Likewise.
1911 (gimple_register_type_1): Likewise. Merge into ...
1912 (gimple_register_type): ... this. Keep it as legacy for
1913 statistics purposes for now.
1914 (fixup_integer_cst): Remove.
1915 (LTO_FIXUP_TREE, lto_fixup_types, lto_ft_*): Simplify and
1916 rename to ...
1917 (MAYBE_REMEMBER_WITH_VARS, maybe_remember_with_vars,
1918 maybe_remember_with_vars_*): ... these.
1919 (uniquify_nodes): Remove.
1920 (lto_fixup_prevailing_type): New function.
1921 (struct tree_scc, struct tree_scc_hasher): New type and hasher.
1922 (tree_scc_hash, tree_scc_hash_obstack): New globals.
1923 (num_merged_types, num_prevailing_types, num_not_merged_types,
1924 num_not_merged_types_in_same_scc, total_scc_size, num_sccs_read,
1925 total_scc_size_merged, num_sccs_merged, num_scc_compares,
1926 num_scc_compare_collisions): New global counters.
1927 (compare_tree_sccs_1): New function.
1928 (compare_tree_sccs): Likewise.
1929 (unify_scc): Likewise.
1930 (lto_read_decls): Stream in tree SCCs and unify them on the
1931 way in. Finalize prevailing SCC tree members.
1932 (read_cgraph_and_symbols): Do not initialize or free gimple_type_leader.
1933 Allocate and free tree_scc_hash_obstack and tree_scc_hash, do not bother
1934 to ggc-collect during merging.
1935 (print_lto_report_1): Adjust for new merging code.
1936
1937 2013-06-12 Jan Hubicka <jh@suse.cz>
1938
1939 * lto.c (read_cgraph_and_symbols): Set cgraph into streaming state.
1940
1941 2013-06-12 Jan Hubicka <jh@suse.cz>
1942
1943 * lto.c (register_resolution): Take lto_file_data argument.
1944 (lto_register_var_decl_in_symtab,
1945 lto_register_function_decl_in_symtab): Update.
1946 (read_cgraph_and_symbols): Update resolution_map handling.
1947
1948 2013-06-11 Jan Hubicka <jh@suse.cz>
1949
1950 * lto-partition.c (get_symbol_class): Simplify weakref handling.
1951 (add_symbol_to_partition_1): Likewise.
1952 (contained_in_symbol): Likewise.
1953 (lto_balanced_map): Likewise.
1954 (rename_statics): Drop weakref.
1955
1956 2013-06-05 Richard Biener <rguenther@suse.de>
1957
1958 * lto.c (num_merged_types): New global variable.
1959 (uniquify_nodes): Increase num_merged_types when merging a type.
1960 (print_lto_report_1): Output the number of merged types.
1961
1962 2013-06-01 Jan Hubicka <jh@suse.cz>
1963
1964 * lto.c (read_cgraph_and_symbols): Simplify dumping; Replace
1965 lto_symtab_merge_cgraph_nodes by lto_symtab_merge_symbols.
1966 (do_whole_program_analysis): Update dumping.
1967
1968 2013-05-29 Jan Hubicka <jh@suse.cz>
1969
1970 * lto.c (has_analyzed_clone_p, lto_materialize_function): Update for new symtab
1971 flags.
1972 * lto-partition.c (get_symbol_class, lto_balanced_map): Likewise.
1973
1974 2013-05-15 Jan Hubicka <jh@suse.cz>
1975
1976 * lto-partition.c (privatize_symbol_name): Return true when
1977 privatizing happened.
1978 (rename_statics): Do not go into infinite loop when privatizing
1979 is not needed.
1980
1981 2013-05-16 Jason Merrill <jason@redhat.com>
1982
1983 * Make-lang.in ($(LTO_EXE)): Use link mutex.
1984
1985 2013-05-15 Martin Jambor <mjambor@suse.cz>
1986
1987 * lto-partition.c (lto_balanced_map): Print symbol order instead
1988 of node uids.
1989
1990 2013-05-15 Jan Hubicka <jh@suse.cz>
1991
1992 PR lto/57038
1993 PR lto/47375
1994 * lto-partition.c (get_symbol_class): Fix weakrefs.
1995 (lto_balanced_map): Fix weakrefs.
1996 (privatize_symbol_name): Remove unnecesary label.
1997 (rename_statics): Handle weakrefs as statics.
1998
1999 2013-05-09 Jan Hubicka <jh@suse.cz>
2000 Richard Biener <rguenther@suse.de>
2001
2002 * lto.c (lto_register_var_decl_in_symtab): Don't do renaming.
2003 (lto_register_var_decl_in_symtab): Likewise.
2004 (lto_main): Promote statics.
2005 * lto-partition.c (privatize_symbol_name): New function.
2006 (promote_symbol): Use it.
2007 (may_need_named_section_p): New predicate.
2008 (rename_statics): New functions.
2009 (lto_promote_cross_file_statics): Simplify; do renaming.
2010 (lto_promote_statics_nonwpa): New function.
2011 * lto-partition.h (lto_promote_statics_nonwpa): New function.
2012
2013 2013-02-08 Richard Biener <rguenther@suse.de>
2014
2015 PR lto/56231
2016 * lto-lang.c (lto_init): Do not enter a dummy file.
2017
2018 2013-02-07 Uros Bizjak <ubizjak@gmail.com>
2019
2020 PR bootstrap/56227
2021 * lto.c (lto_resolution_ready): Use %wx instead of
2022 HOST_WIDE_INT_PRINT_HEX_PURE in the argument to internal_error.
2023
2024 2013-02-04 Richard Guenther <rguenther@suse.de>
2025
2026 PR lto/56168
2027 * lto.c (read_cgraph_and_symbols): Do not call lto_symtab_merge_decls
2028 or lto_fixup_decls at LTRANS time.
2029
2030 2013-01-09 Jan Hubicka <jh@suse.cz>
2031
2032 PR lto/45375
2033 * lto.c (do_whole_program_analysis): Remove unreachable nodes after IPA.
2034
2035 2012-12-10 H.J. Lu <hongjiu.lu@intel.com>
2036
2037 PR lto/55466
2038 * lto.c (lto_register_var_decl_in_symtab): Don't record static
2039 variables.
2040 (lto_main): Record the global variables if WPA isn't enabled.
2041
2042 2012-11-20 Diego Novillo <dnovillo@google.com>
2043 Jakub Jelinek <jakub@redhat.com>
2044
2045 * lto.c: Replace all vec<T, A>() initializers with vNULL.
2046
2047 2012-11-16 Diego Novillo <dnovillo@google.com>
2048
2049 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
2050
2051 * lto-lang.c: Use new vec API in vec.h.
2052 * lto-partition.c: Likewise.
2053 * lto-partition.h: Likewise.
2054 * lto.c: Likewise.
2055
2056 2012-10-31 Lawrence Crowl <crowl@google.com>
2057
2058 * lto.c (lto_wpa_write_files): Change symtab checking to a checked
2059 down-cast via dyn_cast.
2060 * lto-partition.c (add_symbol_to_partition_1): Likewise.
2061 (undo_partition): Likewise.
2062 (lto_balanced_map): Likewise.
2063 (get_symbol_class): Likewise and via is_a.
2064 (lto_balanced_map): Change symtab checking to is_a.
2065
2066 2012-10-12 Richard Biener <rguenther@suse.de>
2067
2068 PR lto/54898
2069 * lto.c (gimple_types_compatible_p_1): Also compare
2070 TYPE_MAIN_VARIANT.
2071 (iterative_hash_gimple_type): Also hash TYPE_MAIN_VARIANT.
2072
2073 2012-10-09 Tobias Burnus <burnus@net-b.de>
2074
2075 * lto-lang.c (lto_register_builtin_type): Avoid useless
2076 decl creation.
2077 * lto-object.c (lto_obj_file_open, lto_obj_file_open): Free memory.
2078
2079 2012-10-08 Tobias Burnus <burnus@net-b.de>
2080
2081 * lto.c (lto_wpa_write_files, read_cgraph_and_symbols):
2082 Free lto_file struct after closing the file.
2083
2084 2012-10-08 Jan Hubicka <jh@suse.cz>
2085
2086 * lto/lto.c (remember_with_vars): Also fixup INTEGER_CST.
2087 (fixup_integer_cst): New functoin.
2088 (lto_ft_type): Fixup BASETYPE of methods and offsets.
2089
2090 2012-10-07 Jan Hubicka <jh@suse.cz>
2091
2092 * lto.c (read_cgraph_and_symbols): Release type merging hash early;
2093 release input encoders.
2094 * lto-partition.c (new_partition): Update for new lto_symtab_encoder_new.
2095
2096 2012-10-06 Jan Hubicka <jh@suse.cz>
2097
2098 PR lto/54790
2099 * lto.c (resolution_map): New static var.
2100 (register_resolution): New function.
2101 (lto_register_var_decl_in_symtab): Use it.
2102 (read_cgraph_and_symbols): Copy resolutions into the symtab.
2103
2104 2012-09-20 Martin Jambor <mjambor@suse.cz>
2105
2106 * lto.c (lto_materialize_function): Call push_struct_function and
2107 pop_cfun.
2108
2109 2012-09-19 Dehao Chen <dehao@google.com>
2110
2111 * lto/lto.c (lto_fixup_prevailing_decls): Remove tree.exp.block field.
2112
2113 2012-09-19 Jan Hubicka <jh@suse.cz>
2114
2115 * lto.c (lto_materialize_function): Update confused comment.
2116 (read_cgraph_and_symbols): Do not free symtab.
2117
2118 2012-09-12 Jan Hubicka <jh@suse.cz>
2119
2120 * lto.c (do_whole_program_analysis): Care timevars, statistics and
2121 AUX pointer cleaning. Add max partitioning.
2122 * lto-partition.c (enum symbol_class): New.
2123 (get_symbol_class): New function.
2124 (symbol_partitioned_p): New function.
2125 (add_references_to_partition): Remove.
2126 (add_aliases_to_partition): Remove.
2127 (add_cgraph_node_to_partition_1): Remove.
2128 (add_cgraph_node_to_partition): Remove.
2129 (add_symbol_to_partition): New function.
2130 (add_symbol_to_partition_1): New function.
2131 (contained_in_symbol): New function.
2132 (partition_cgraph_node_p): Remove.
2133 (partition_varpool_node_p): Remove.
2134 (partition_symbol_p): Remove.
2135 (lto_1_to_1_map): Cleanup.
2136 (lto_max_map): New.
2137 (lto_balanced_map): Update.
2138 (lto_promote_cross_file_statics): Update.
2139 * lto-partition.h (lto_max_map): Declare.
2140 * timevar.def (TV_WHOPR_PARTITIONING): New timevar.
2141
2142 2012-09-11 Jan Hubicka <jh@suse.cz>
2143
2144 PR lto/54312
2145 * lto.c (uniquify_nodes): Remove quadratic loop checking if the
2146 type is variant leader.
2147
2148 2012-09-11 Richard Guenther <rguenther@suse.de>
2149
2150 * lto.c (enum gtc_mode): Remove.
2151 (struct type_pair_d): Adjust.
2152 (lookup_type_pair): Likewise.
2153 (gimple_type_leader): Do not mark as deletable.
2154 (gimple_lookup_type_leader): Adjust.
2155 (gtc_visit): Likewise.
2156 (gimple_types_compatible_p_1): Likewise.
2157 (gimple_types_compatible_p): Likewise.
2158 (gimple_type_hash): Likewise.
2159 (gimple_register_type): Likewise.
2160 (read_cgraph_and_symbols): Manage lifetime of tables
2161 here.
2162
2163 2012-09-11 Richard Guenther <rguenther@suse.de>
2164
2165 * lto.c (gimple_types, type_hash_cache, enum gtc_mode,
2166 struct type_pair_d, lookup_type_pair, struct sccs,
2167 next_dfs_num, gtc_next_dfs_num, struct gimple_type_leader_entry_s,
2168 gimple_type_leader, gimple_lookup_type_leader, compare_type_names_p,
2169 gtc_visit, gimple_types_compatible_p_1, gimple_types_compatible_p,
2170 visit, iterative_hash_name, struct type_hash_pair,
2171 type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash,
2172 gimple_type_eq, gimple_register_type_1, gimple_register_type):
2173 Move here from gimple.c
2174 (read_cgraph_and_symbols): Free hash tables here.
2175 (print_lto_report_1): New function wrapping print_lto_report.
2176 (do_whole_program_analysis): Call it.
2177 (lto_main): Likewise.
2178
2179 2012-09-10 Jan Hubicka <jh@suse.cz>
2180
2181 * lto-partition.c (partition_symbol_p): Forward declare.
2182 (add_references_to_partition): Reimplement using partition_symbol_p.
2183 (add_aliases_to_partition): Break out from add_references_to_partition;
2184 reimplement using partition_symbol_p.
2185 (add_cgraph_node_to_partition_1): Handle callees using partition_symbol_p;
2186 add sanity checks.
2187 (add_varpool_node_to_partition): Use add_aliases_to_partition.
2188 (partition_varpool_node_p): Do not special case aliases.
2189
2190 2012-08-12 Jan Hubicka <jh@suse.cz>
2191
2192 * lto.c (lto_wpa_write_files): Do not delete partition encoder;
2193 it is deleted after streaming.
2194 * lto-partition.c (partition_symbol_p): New function.
2195 (promote_var, promote_fn): Remove.
2196 (promote_symbol): New function.
2197 (lto_promote_cross_file_statics): First compute boundaries; rewrite
2198 to lookup the actual boundaries instead of computing them ad-hoc.
2199
2200 2012-08-12 Jan Hubicka <jh@suse.cz>
2201
2202 Replace cgraph_node_set and varpool_node_set by symtab_node_encoder
2203 in partitioning.
2204 * lto-partition.h (ltrans_partition_def): Replace cgraph_set and varpool_set
2205 by encoder.
2206 * lto-partition.c (new_partition): Update.
2207 * lto.c (cmp_partitions_order): Update.
2208 (lto_wpa_write_files): Update.
2209 (free_ltrans_partitions): Update.
2210 (add_references_to_partition): Update.
2211 (add_cgraph_node_to_partition_1): Update.
2212 (add_cgraph_node_to_partition): Update.
2213 (add_varpool_node_to_partition): Update.
2214 (undo_partition): Update.
2215 (lto_balanced_map): Update.
2216 (set_referenced_from_other_partition_p, set_reachable_from_other_partition_p,
2217 set_referenced_from_this_partition_p): Update.
2218 (lto_promote_cross_file_statics): Update.
2219
2220 2012-08-12 Jan Hubicka <jh@suse.cz>
2221
2222 * lto-partition.c (set_referenced_from_other_partition_p,
2223 set_reachable_from_other_partition_p, set_referenced_from_this_partition_p):
2224 New functions.
2225 (lto_promote_cross_file_statics): Use them.
2226
2227 2012-07-24 Jan Hubicka <jh@suse.cz>
2228
2229 * lto.c (read_cgraph_and_symbols): Use input_symtab.
2230
2231 2012-07-24 Uros Bizjak <ubizjak@gmail.com>
2232
2233 * lto-tree.h (lang_decl): Add variable_size GTY option.
2234
2235 2012-07-16 Steven Bosscher <steven@gcc.gnu.org>
2236
2237 * lto.c: Do not include timevar.h.
2238 * Make-lang.in: Fix dependencies.
2239
2240 2012-06-18 Lawrence Crowl <crowl@google.com>
2241
2242 * lto.c (do_whole_program_analysis): Rename use of TV_PHASE_CGRAPH to
2243 TV_PHASE_OPT_GEN. Use new timevar TV_PHASE_STREAM_OUT around the call
2244 to lto_wpa_write_files.
2245 (lto_main): Rename use of TV_PHASE_CGRAPH to TV_PHASE_OPT_GEN. Move
2246 start of TV_PHASE_OPT_GEN to include call to materialize_cgraph. Use
2247 TV_PHASE_SETUP for the call to lto_init. Use new timevar
2248 TV_PHASE_STREAM_IN around the call to read_cgraph_and_symbols.
2249 Turn TV_PHASE_PARSING off then back on again, because LTO is pretending
2250 to be a front end, but is not one.
2251
2252 2012-05-18 Jan Hubicka <jh@suse.cz>
2253
2254 * lto.c (lto_materialize_constructors_and_inits): Remove.
2255 (read_cgraph_and_symbols): Remove handling of alias pairs.
2256
2257 2012-05-17 Jan Hubicka <jh@suse.cz>
2258
2259 * lto-partition.c (add_references_to_partition): Handle external vars.
2260 (partition_varpool_node_p): Likewise.
2261 (lto_promote_cross_file_statics): Do not promote externals.
2262
2263 2012-05-14 Bernd Schmidt <bernds@codesourcery.com>
2264
2265 * lto-lang.c (handle_fnspec_attribute): New static function.
2266 (lto_attribute_table): Add "fn spec".
2267 (DEF_ATTR_STRING): Define and undefine along with the other macros.
2268
2269 2012-05-04 Jan Hubicka <jh@suse.cz>
2270
2271 * lto.c (do_whole_program_analysis): Set timevars correctly.
2272 (lto_main): Likewise.
2273
2274 2012-05-04 Richard Guenther <rguenther@suse.de>
2275
2276 * lang.opt (fwpa): Do not mark as Optimization.
2277 (fltrans): Likewise.
2278
2279 2012-04-30 Jan Hubicka <jh@suse.cz>
2280
2281 * lto.c (lto_main): Use compile ().
2282 * lto-partition.c (partition_cgraph_node_p): Use
2283 symtab_used_from_object_file_p.
2284 (partition_varpool_node_p): Likewise.
2285
2286 2012-04-20 Jan Hubicka <jh@suse.cz>
2287
2288 * lto-partition.c (partition_cgraph_node_p): Use force_output.
2289
2290 2012-04-18 Jan Hubicka <jh@suse.cz>
2291
2292 * lto-partition.c (add_references_to_partition, lto_balanced_map):
2293 Update for new ipa-ref API.
2294
2295 2012-04-16 Jan Hubicka <jh@suse.cz>
2296
2297 * lto.c (read_cgraph_and_symbols): Use FOR_EACH
2298 walkers to walk cgraph and varpool.
2299 (materialize_cgraph): Likewise.
2300 * lto-partition.c (lto_1_to_1_map): Likewise.
2301 (lto_balanced_map): Likewise.
2302 (lto_promote_cross_file_statics): Likewise.
2303
2304 2012-04-14 Jan Hubicka <jh@suse.cz>
2305
2306 * lto.c: Update field referenced for new cgraph/varpool layout.
2307 * lto-partition.c: Likewise.
2308
2309 2012-04-11 Jan Hubicka <jh@suse.cz>
2310
2311 * lto.c: Update copyright; remove params.h, ipa-inline.h
2312 and ipa-utils.h inlines; inline lto-partition.h
2313 (ltrans_partition_def, ltrans_partition, add_cgraph_node_to_partition,
2314 add_varpool_node_to_partition, new_partition, free_ltrans_partitions,
2315 add_references_to_partition, add_cgraph_node_to_partition_1,
2316 add_cgraph_node_to_partition, add_varpool_node_to_partition,
2317 undo_partition, partition_cgraph_node_p, partition_varpool_node_p,
2318 lto_1_to_1_map, node_cmp, varpool_node_cmp, lto_balanced_map,
2319 promote_var, promote_fn, lto_promote_cross_file_statics): move to...
2320 * lto-partition.c: ... here; new file.
2321 * lto-partition.h: New file.
2322 * Make-lang.in (lto.o): Update dependencies.
2323 (lto-partition.o): New.
2324
2325 2012-04-05 Richard Guenther <rguenther@suse.de>
2326
2327 * lto-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Remove
2328 definition.
2329
2330 2012-03-12 Richard Guenther <rguenther@suse.de>
2331
2332 * lto-lang.c (builtin_type_for_size): Use lto_type_for_size.
2333
2334 2012-03-06 Richard Guenther <rguenther@suse.de>
2335
2336 PR lto/52097
2337 * lto.c (uniquify_nodes): Merge TYPE_FIELDS of variant types.
2338
2339 2012-02-28 Richard Guenther <rguenther@suse.de>
2340
2341 PR lto/52400
2342 * lto.c (lto_register_function_decl_in_symtab): Do not register
2343 a reverse renamed decl mapping.
2344
2345 2012-01-06 Jakub Jelinek <jakub@redhat.com>
2346
2347 PR lto/51774
2348 * lto-lang.c (handle_returns_twice_attribute): New function.
2349 (lto_attribute_table): Add returns_twice attribute.
2350
2351 2011-12-21 Richard Guenther <rguenther@suse.de>
2352
2353 * lto.c (GIMPLE_REGISTER_TYPE): New define.
2354 (LTO_FIXUP_TREE): Use it.
2355 (uniquify_nodes): Mark new non-prevailing types and avoid
2356 calling gimple_register_type on others.
2357 (lto_read_decls): Add comment.
2358
2359 2011-12-13 Eric Botcazou <ebotcazou@adacore.com>
2360
2361 * lto.h (lto_parse_hex): Delete.
2362 * lto.c (lto_read_decls): Use 'int' for offsets.
2363 (lto_parse_hex): Make static and return proper 64-bit host type.
2364 (lto_resolution_read): Use proper 64-bit host type.
2365
2366 2011-12-13 Richard Guenther <rguenther@suse.de>
2367
2368 PR lto/48354
2369 * lto.c (lto_ft_decl_non_common): When we merged DECL_ORIGINAL_TYPE
2370 with the type of the TYPE_DECL clear DECL_ORIGINAL_TYPE.
2371
2372 2011-12-01 Uros Bizjak <ubizjak@gmail.com>
2373
2374 * lto-lang.c (lto_attribute_table): Handle *tm regparm.
2375 (ignore_attribute): New.
2376
2377 2011-11-21 Aldy Hernandez <aldyh@redhat.com>
2378
2379 * lto-lang.c (lto_attribute_table): Handle transaction_pure.
2380 (handle_transaction_pure_attribute): New.
2381
2382 2011-11-03 Richard Guenther <rguenther@suse.de>
2383
2384 PR lto/44965
2385 * lto-lang.c (lto_post_options): Do not read file options.
2386 * lto.c (lto_read_all_file_options): Remove.
2387 (lto_init): Call lto_set_in_hooks here.
2388
2389 2011-10-09 Jan Hubicka <jh@suse.cz>
2390
2391 * lto.c (node_cmp, varpool_node_cmp): New functions.
2392 (lto_balanced_map): Honnor -fno-toplevel-reorder of vars&functions.
2393 (cmp_partitions): Rename to ...
2394 (cmp_partitions_size): ... this one.
2395 (cmp_partitions_order): New function.
2396 (lto_wpa_write_files): Sort partitions by order when
2397 -fno-toplevel-reorder is used.
2398
2399 2011-10-09 Andi Kleen <ak@linux.intel.com>
2400
2401 * lto.c (lto_section_read): Call fatal_error on IO or mmap errors.
2402
2403 2011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
2404
2405 * lto-lang.c (def_builtin_1): Delete old interface with two
2406 parallel arrays to hold standard builtin declarations, and replace
2407 it with a function based interface that can support creating
2408 builtins on the fly in the future. Change all uses, and poison
2409 the old names. Make sure 0 is not a legitimate builtin index.
2410
2411 2011-10-02 Andi Kleen <ak@linux.intel.com>
2412
2413 * lto-object.c (lto_obj_add_section_data): Add list.
2414 (lto_obj_add_section): Fill in list.
2415 (ltoobj_build_section_table): Pass through list.
2416 * lto.c (file_data_list): Declare.
2417 (create_subid_section_table): Pass arguments directly.
2418 Fill in list of file_datas.
2419 (lwstate): Delete.
2420 (lto_create_files_from_ids): Pass in direct arguments.
2421 Don't maintain list.
2422 (lto_file_read): Use explicit section and file data lists.
2423 (lto_read_all_file_options): Pass in section_list.
2424 * lto.h (lto_obj_build_section_table): Add list.
2425 (lto_section_slot): Add next.
2426 (lto_section_list): Declare.
2427
2428 2011-10-02 Jan Hubicka <jh@suse.cz>
2429
2430 PR lto/47247
2431 * common.c (lto_resolution_str): Add new resolution.
2432 * common.h (lto_resolution_str): Likewise.
2433
2434 2011-09-30 H.J. Lu <hongjiu.lu@intel.com>
2435 Andi Kleen <ak@linux.intel.com>
2436
2437 PR lto/50568
2438 * lto.c (lto_splay_tree_delete_id): New.
2439 (lto_splay_tree_compare_ids): Likewise.
2440 (lto_splay_tree_lookup): Likewise.
2441 (lto_splay_tree_id_equal_p): Likewise.
2442 (lto_splay_tree_insert): Likewise.
2443 (lto_splay_tree_new): Likewise.
2444 (lto_resolution_read): Change id to unsigned HOST_WIDE_INT.
2445 Use lto_splay_tree_id_equal_p and lto_splay_tree_lookup.
2446 (create_subid_section_table): Use lto_splay_tree_lookup and
2447 lto_splay_tree_insert.
2448 (lto_file_read): Use lto_splay_tree_new.
2449
2450 2011-09-26 Andi Kleen <ak@linux.intel.com>
2451
2452 * lto.c (lto_resolution_read): Remove id dumping.
2453 (lto_section_with_id): Turn id HOST_WIDE_ID.
2454 (create_subid_section_table): Dito.
2455
2456 2011-08-28 Dodji Seketeli <dodji@redhat.com>
2457
2458 * lto-lang.c (lto_init): Likewise. Also, avoid calling
2459 linemap_add twice.
2460
2461 2011-08-11 Martin Jambor <mjambor@suse.cz>
2462
2463 * lto.c (uniquify_nodes): Use main variant's BINFO too.
2464
2465 2011-08-08 Diego Novillo <dnovillo@google.com>
2466
2467 * Make-lang.in (lto/lto.o): Add TREE_STREAMER_H.
2468 * lto.c: Include tree-streamer.h.
2469
2470 2011-07-06 Richard Guenther <rguenther@suse.de>
2471
2472 * lto-lang.c (lto_init):
2473 Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
2474
2475 2011-06-11 Jan Hubicka <jh@suse.cz>
2476
2477 PR lto/48246
2478 * lto.c (lto_1_to_1_map): Don't create empty partitions.
2479 (lto_balanced_map): Likewise.
2480
2481 2011-06-11 Jan Hubicka <jh@suse.cz>
2482
2483 * lto.c (add_cgraph_node_to_partition_1): Break out from ...
2484 (add_cgraph_node_to_partition) ... here; walk aliases.
2485 (lto_1_to_1_map): Remove same body alias code.
2486 (promote_fn): Likewise.
2487 (lto_promote_cross_file_statics): Update comment.
2488
2489
2490 2011-06-07 Diego Novillo <dnovillo@google.com>
2491
2492 * lto.c (uniquify_nodes): Move code to register decls to
2493 the loop that computes canonical types.
2494
2495 2011-06-07 Richard Guenther <rguenther@suse.de>
2496
2497 * lto-lang.c (lto_init): Do not set
2498 size_type_node or call set_sizetype.
2499
2500 2011-06-04 Diego Novillo <dnovillo@google.com>
2501
2502 * lto.c (lto_init): New.
2503 (lto_main): Call it.
2504
2505 2011-06-03 Diego Novillo <dnovillo@google.com>
2506
2507 * lto.c (get_resolution): Move from lto-streamer-in.c.
2508 (lto_register_var_decl_in_symtab): Likewise.
2509 (lto_register_function_decl_in_symtab): Likewise.
2510 (uniquify_nodes): Call lto_register_var_decl and
2511 lto_register_function_decl_in_symtab after reading a new
2512 VAR_DECL or FUNCTION_DECL.
2513
2514 2011-06-01 Richard Guenther <rguenther@suse.de>
2515
2516 * lto-lang.c (lto_register_canonical_types): New function.
2517 (lto_init): Register common nodes with the canonical type machinery.
2518 Do not play tricks with char_type_node.
2519
2520 2011-05-26 Richard Guenther <rguenther@suse.de>
2521
2522 * lto.c (uniquify_nodes): Fix bug in one of the previous changes.
2523
2524 2011-05-25 Nathan Froyd <froydnj@codesourcery.com>
2525
2526 * lto.c (lto_ft_typed): New function.
2527 (lto_ft_common): Call it.
2528 (lto_ft_constructor): Likewise.
2529 (lto_ft_expr): Likewise.
2530 (lto_fixup_prevailing_decls): Check for TS_COMMON before accessing
2531 TREE_CHAIN.
2532
2533 2011-05-20 Richard Guenther <rguenther@suse.de>
2534
2535 * lto.c (lto_ft_common): Remove pointer-to chain teardown.
2536 (lto_ft_type): Move main-variant and pointer-to chain building ...
2537 (uniquify_nodes): ... here. Compute TYPE_CANONICAL also here,
2538 in a separate final loop.
2539
2540 2011-05-19 Richard Guenther <rguenther@suse.de>
2541
2542 * lto.c (uniquify_nodes): First register all types before
2543 fixing up the tree SCC.
2544
2545 2011-05-11 Jan Hubicka <jh@suse.cz>
2546
2547 PR lto/48952
2548 * lto.c (do_whole_program_analysis): Do not register cgraph hooks.
2549
2550 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
2551
2552 * lto.c (lto_ft_type): Use TYPE_MINVAL and TYPE_MAXVAL. Adjust
2553 location of binfo field.
2554 (lto_fixup_prevailing_decls): Likewise.
2555
2556 2011-05-10 Nathan Froyd <froydnj@codesourcery.com>
2557
2558 * lto-lang.c (def_fn_type): Don't call build_function_type, call
2559 build_function_type_array or build_varargs_function_type_array
2560 instead.
2561
2562 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
2563
2564 * lto-lang.c (global_bindings_p): Return bool.
2565
2566 2011-05-07 Jan Hubicka <jh@suse.cz>
2567
2568 * lto.c (lto_materialize_function): Use
2569 cgraph_function_with_gimple_body_p.
2570 (add_cgraph_node_to_partition): Do not re-add items to partition;
2571 handle thunks.
2572 (add_varpool_node_to_partition): Do not re-add items to partition.
2573
2574 2011-05-03 Jan Hubicka <jh@suse.cz>
2575
2576 * lto.c (free_ltrans_partitions): Fix accidental commit.
2577
2578 2011-05-03 Jan Hubicka <jh@suse.cz>
2579
2580 * lto.c (ltrans_partition_def): Remove GTY annotations.
2581 (ltrans_partitions): Move to heap.
2582 (new_partition): Update.
2583 (free_ltrans_partitions): New function.
2584 (lto_wpa_write_files): Use it.
2585
2586 2011-04-29 Martin Jambor <mjambor@suse.cz>
2587
2588 * lto.c: Include ipa-utils.h.
2589 (lto_balanced_map): Update call to ipa_reverse_postorder.
2590 * Make-lang.in (lto/lto.o): Add IPA_UTILS_H to dependencies.
2591
2592 2011-04-29 Michael Matz <matz@suse.de>
2593
2594 * lto.c (toplevel): Include tree-flow.h.
2595 (lto_read_in_decl_state): Don't merge types here.
2596 (tree_with_vars): New static hash table.
2597 (remember_with_vars): New static functions.
2598 (LTO_FIXUP_TYPE): New macro.
2599 (lto_ft_common, lto_ft_decl_minimal, lto_ft_decl_common,
2600 lto_ft_decl_with_vis, lto_ft_decl_non_common, lto_ft_function,
2601 lto_ft_field_decl, lto_ft_type, lto_ft_binfo, lto_ft_constructor,
2602 lto_ft_expr, lto_fixup_types, uniquify_nodes): New static functions.
2603 (lto_read_decls): Uniquify while reading in trees.
2604 (lto_fixup_data_t, LTO_FIXUP_SUBTREE,
2605 LTO_REGISTER_TYPE_AND_FIXUP_SUBTREE, no_fixup_p, lto_fixup_common,
2606 lto_fixup_decl_minimal, lto_fixup_decl_common, lto_fixup_decl_with_vis,
2607 lto_fixup_decl_non_common, lto_fixup_function, lto_fixup_field_decl,
2608 lto_fixup_type, lto_fixup_binfo, lto_fixup_constructor,
2609 lto_fixup_tree): Remove.
2610 (lto_fixup_state): Remove data argument. Use
2611 lto_symtab_prevailing_decl.
2612 (LTO_SET_PREVAIL, LTO_NO_PREVAIL): New macros.
2613 (lto_fixup_prevailing_decls): New function.
2614 (lto_fixup_state_aux): Argument aux is unused.
2615 (lto_fixup_decls): Don't allocate pointer sets, don't use
2616 lto_fixup_tree, use lto_fixup_prevailing_decls.
2617 (read_cgraph_and_symbols): Allocate and remove tree_with_vars.
2618 * Make-lang.in (lto/lto.o): Depend on $(TREE_FLOW_H).
2619
2620 2011-04-16 Eric Botcazou <ebotcazou@adacore.com>
2621
2622 * lto.c (lto_balanced_map): Fix typos in head comment.
2623 (lto_promote_cross_file_statics): Fix long lines and remove redundant
2624 test.
2625
2626 2011-04-16 Jan Hubicka <jh@suse.cz>
2627
2628 * lto.c (lto_balanced_map): Update.
2629
2630 2011-04-14 Jan Hubicka <jh@suse.cz>
2631
2632 * lto.c: Include ipa-inline.h
2633 (add_cgraph_node_to_partition, undo_partition): Use inline_summary
2634 accessor.
2635 (ipa_node_duplication_hook): Fix declaration.
2636 * Make-lang.in (lto.o): Update dependencies.
2637
2638 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
2639
2640 * lto-tree.h (union lang_tree_node): Check for TS_COMMON before
2641 calling TREE_CHAIN.
2642 * lto.c (lto_fixup_common): Likewise.
2643
2644 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
2645
2646 * lto-lang.c (handle_sentinel_attribute): Don't use TYPE_ARG_TYPES.
2647 (handle_type_generic_attribute): Likewise.
2648
2649 2011-04-03 Michael Matz <matz@suse.de>
2650
2651 * lto.c (lto_materialize_function): Don't read and then discard
2652 sections in WPA mode.
2653 (lto_read_in_decl_state): Adjust call to lto_streamer_cache_get.
2654
2655 * lto-lang.c (registered_builtin_fndecls): Remove.
2656 (lto_getdecls): Return NULL_TREE.
2657 (lto_builtin_function): Don't remember in registered_builtin_fndecls.
2658
2659 2011-03-31 Richard Guenther <rguenther@suse.de>
2660
2661 PR lto/48246
2662 * lto.c (lto_wpa_write_files): Disable assert for non-empty
2663 partitions when checking is not enabled.
2664
2665 2011-03-25 Kai Tietz <ktietz@redhat.com>
2666
2667 * lto.c (lto_resolution_read): Use filename_cmp instead
2668 of strcmp.
2669 (lto_read_section_data): Likewise.
2670
2671 2011-03-25 Jeff Law <law@redhat.com>
2672
2673 * lto/lto-lang.c (def_fn_type): Add missing va_end.
2674
2675 2011-03-21 Kai Tietz <ktietz@redhat.com>
2676
2677 PR target/12171
2678 * lto-lang.c (lto_attribute_table): Adjust table.
2679
2680 2011-02-18 Jakub Jelinek <jakub@redhat.com>
2681
2682 PR bootstrap/47807
2683 * Make-lang.in (lto/lto-lang.o): Depend on $(LTO_STREAMER_H) instead
2684 of lto-streamer.h.
2685
2686 2011-02-18 Richard Guenther <rguenther@suse.de>
2687
2688 PR lto/47798
2689 * lto-tree.h (lto_global_var_decls): Do not declare here.
2690 * lto-lang.c: Include lto-streamer.h.
2691 * Make-lang.in (lto-lang.o): Adjust dependencies.
2692
2693 2011-02-10 Kai Tietz <kai.tietz@onevision.com>
2694
2695 PR lto/47241
2696 * lto.c (lto_read_section_data): Free
2697 fd_name in failure case.
2698 For mingw targets don't hash file-descriptor.
2699 (read_cgraph_and_symbols): Close current_lto_file
2700 in failure case.
2701
2702 2011-01-11 Jan Hubicka <jh@suse.cz>
2703
2704 PR lto/45721
2705 PR lto/45375
2706 * lto.c (partition_cgraph_node_p, partition_varpool_node_p): Weakrefs
2707 are not partitioned.
2708
2709 2010-12-22 Nathan Froyd <froydnj@codesourcery.com>
2710
2711 * lto-lang.c (handle_nonnull_attribute, handle_sentinel_attribute):
2712 Use prototype_p.
2713
2714 2010-12-06 Richard Guenther <rguenther@suse.de>
2715
2716 PR lto/46796
2717 * lto-lang.c (lto_init): Give names to basic types.
2718
2719 2010-11-30 Joseph Myers <joseph@codesourcery.com>
2720
2721 * lto-object.c: Don't include toplev.h.
2722 * Make-lang.in (lto/lto-object.o): Don't depend on toplev.h.
2723
2724 2010-11-30 Joseph Myers <joseph@codesourcery.com>
2725
2726 * Make-lang.in (lto/lto-object.o): Depend on toplev.h instead of
2727 $(TOPLEV_H).
2728
2729 2010-11-29 Joseph Myers <joseph@codesourcery.com>
2730
2731 * lto-endian.h: Delete.
2732 * lto-object.c: Don't include "libiberty.h".
2733 (O_BINARY): Don't define.
2734 * lto.c: Don't include "libiberty.h" or <sys/mman.h>.
2735 (O_BINARY): Don't define.
2736
2737 2010-11-23 Richard Guenther <rguenther@suse.de>
2738
2739 * lto.c (read_cgraph_and_symbols): Remove newline from diagnostic.
2740
2741 2010-11-23 Richard Guenther <rguenther@suse.de>
2742
2743 PR lto/46605
2744 * lto.c (read_cgraph_and_symbols): Bail out after errors.
2745
2746 2010-11-17 Joseph Myers <joseph@codesourcery.com>
2747
2748 * lto.c (lto_main): Take no arguments.
2749 * lto.h (lto_main): Update prototype.
2750
2751 2010-11-16 Ian Lance Taylor <iant@google.com>
2752
2753 * lto-object.c (lto_obj_file_open): Call
2754 simple_object_attributes_merge rather than
2755 simple_object_attributes_compare.
2756
2757 2010-11-12 Joseph Myers <joseph@codesourcery.com>
2758
2759 * Make-lang.in (lto/lto.o): Use $(OPTS_H).
2760 * lto-lang.c (lto_handle_option): Take location_t parameter.
2761
2762 2010-11-10 Joseph Myers <joseph@codesourcery.com>
2763
2764 * lto.c (lto_resolution_read): Start diagnostics with lowercase
2765 letters and remove trailing '.'.
2766 (lto_file_finalize): Start diagnostic with a lowercase letter.
2767
2768 2010-11-02 Ian Lance Taylor <iant@google.com>
2769
2770 * lto-object.c: New file.
2771 * lto-elf.c: Remove file.
2772 * lto-macho.c: Remove file.
2773 * lto-macho.h: Remove file.
2774 * lto-coff.c: Remove file.
2775 * lto-coff.h: Remove file.
2776 * Make-lang.in (LTO_OBJS): Change lto/$(LTO_BINARY_READER).o to
2777 lto/lto-object.o.
2778 ($(LTO_EXE)): Remove $(LTO_USE_LIBELF)
2779 (lto/lto-objfile.o): New target.
2780 (lto/lto-elf.o, lto/lto-coff.o, lto/lto-macho.o): Remove targets.
2781 (lto/lto.o): Remove $(LIBIBERTY_H).
2782
2783 2010-10-22 Jan Hubicka <jh@suse.cz>
2784
2785 * lto.c (add_cgraph_node_to_partition,
2786 add_varpool_node_to_partition): Add debug info.
2787 (lto_1_to_1_map, lto_balanced_map): Do not re-add already
2788 partitioned nodes.
2789 (do_whole_program_analysis): Set function flags before dumping.
2790
2791 2010-10-22 Richard Guenther <rguenther@suse.de>
2792
2793 * lto.c (lto_fixup_type): Fixup TYPE_CANONICAL again, via
2794 the new gimple_register_canonical_type.
2795
2796 2010-10-20 H.J. Lu <hongjiu.lu@intel.com>
2797
2798 PR bootstrap/45954
2799 * config-lang.in (boot_language): Set to $enable_lto.
2800
2801 2010-10-18 Jakub Jelinek <jakub@redhat.com>
2802
2803 PR lto/45638
2804 * Make-lang.in (check-lto): New dummy target.
2805
2806 2010-10-14 Eric Botcazou <ebotcazou@adacore.com>
2807
2808 * lto-elf.c (SHN_XINDEX): Define if not already defined.
2809
2810 2010-10-08 Joseph Myers <joseph@codesourcery.com>
2811
2812 * lto-lang.c (lto_init_options): Change to
2813 lto_init_options_struct. Update parameters.
2814 (LANG_HOOKS_INIT_OPTIONS): Don't define.
2815 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
2816
2817 2010-10-06 Jan Hubicka <jh@suse.cz>
2818
2819 * lto.c (lto_balanced_map): Fix accounting of program size.
2820
2821 2010-10-06 Jan Hubicka <jh@suse.cz>
2822
2823 * lto.c (lto_balanced_map): Do not produce empty partitions.
2824
2825 2010-10-06 Andi Kleen <ak@linux.intel.com>
2826
2827 * lto.c (lto_process_name): Add.
2828 (lto_main): Call lto_process_name.
2829
2830 2010-10-06 Jan Hubicka <jh@suse.cz>
2831
2832 * lto.c (partition_cgraph_node_p, partition_varpool_node_p): Handle
2833 COMDATs required by the linker.
2834
2835 2010-10-05 Ian Lance Taylor <iant@google.com>
2836
2837 * lto.c (lto_section_with_id): Make s a const pointer.
2838
2839 2010-10-05 Jan Hubicka <jh@suse.cz>
2840
2841 * lto.c: Include params.h.
2842 (add_cgraph_node_to_partition, add_varpool_node_to_partition): Do
2843 refcounting in aux field.
2844 (undo_partition, partition_cgraph_node_p, partition_varpool_node_p):
2845 New functions.
2846 (lto_1_to_1_map): Simplify.
2847 (lto_balanced_map): New function.
2848 (do_whole_program_analysis): Chose proper partitioning alg.
2849 * Make-lang.in (lto.o): Add dependency on params.h
2850
2851 2010-10-04 Andi Kleen <ak@linux.intel.com>
2852
2853 * Make-lang.in (lto1): Add + to build rule.
2854
2855 2010-10-03 Andi Kleen <ak@linux.intel.com>
2856
2857 * lto.c (lto_file_finalize): Replace gcc_assert for missing section
2858 with fatal_error.
2859
2860 2010-09-28 Jan Hubicka <jh@suse.cz>
2861
2862 * lto-lang.c (handle_leaf_attribute): New function.
2863 (lto_attribute_tables): Add leaf.
2864
2865 2010-09-25 Jie Zhang <jie@codesourcery.com>
2866
2867 * lto.c (lto_read_all_file_options): Start a new line after
2868 printing out file names.
2869
2870 2010-09-24 Jan Hubicka <jh@suse.cz>
2871
2872 * lto.c (lto_promote_cross_file_statics): Use const_value_known_p.
2873
2874 2010-09-20 Jan Hubicka <jh@suse.cz>
2875
2876 PR tree-optimize/45605
2877 * lto.c (lto_promote_cross_file_statics): Use const_value_known_p.
2878
2879 2010-09-18 Gerald Pfeifer <gerald@pfeifer.com>
2880
2881 * lto-elf.c (lto_obj_file_open): Also provide filename when
2882 elf_begin fails.
2883
2884 2010-09-17 Jan Hubicka <jh@suse.cz>
2885
2886 * lto.c (lto_promote_cross_file_statics): Use const_value_known.
2887
2888 2010-09-17 Richard Guenther <rguenther@suse.de>
2889
2890 * lang.opt (flag_wpa): Also enable for the driver.
2891
2892 2010-09-16 Jan Hubicka <jh@suse.cz>
2893
2894 * lto.c (lto_materialize_function): Do not tamper with STATIC and
2895 EXTERNAL flags.
2896
2897 2010-09-15 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2898
2899 * lto-tree.h (struct lang_type): Add variable_size GTY option.
2900
2901 2010-09-08 Jan Hubicka <jh@suse.cz>
2902
2903 * lto.c (real_file_count, real_file_decl_data): New static vars.
2904 (read_cgraph_and_symbols): Use it.
2905
2906 2010-09-08 Richard Guenther <rguenther@suse.de>
2907
2908 * lto.c (read_cgraph_and_symbols): Collect again after each
2909 file.
2910
2911 2010-09-07 Jan Hubicka <jh@suse.cz>
2912
2913 * lto.c (promote_var, promote_fn): Set DECL_VISIBILITY_SPECIFIED.
2914
2915 2010-09-03 Richard Guenther <rguenther@suse.de>
2916
2917 * lto-elf.c (validate_file): Always error if validation fails.
2918
2919 2010-08-20 Jan Hubicka <jh@suse.cz>
2920
2921 * lto.c (lto_1_to_1_map): Be prepared for node to have no file data.
2922 (lto_wpa_write_files): Update comments.
2923
2924 2010-08-20 H.J. Lu <hongjiu.lu@intel.com>
2925
2926 PR bootstrap/45357
2927 * lto.c (lto_materialize_function): Replace has_analyzed_clone
2928 with has_analyzed_clone_p.
2929
2930 2010-08-20 Jan Hubicka <jh@suse.cz>
2931
2932 * lto.c (has_analyzed_clone_p): New function
2933 (lto_materialize_function): Use callgraph to determine if
2934 body is needed.
2935 (materialize_cgraph): Remove DECL_IS_BUILTIN check.
2936
2937 2010-08-20 Nathan Froyd <froydnj@codesourcery.com>
2938
2939 * lto.c: Use FOR_EACH_VEC_ELT.
2940
2941 2010-07-27 Andi Kleen <ak@linux.intel.com>
2942
2943 * Make-lang.in (lto.o): Add dependency to splay-tree.h
2944
2945 2010-07-27 Joseph Myers <joseph@codesourcery.com>
2946
2947 * lto-lang.c (lto_handle_option): Update prototype and return
2948 value type. Remove duplicate assignment to result.
2949
2950 2010-07-27 Joseph Myers <joseph@codesourcery.com>
2951
2952 * lto-lang.c (lto_option_lang_mask, lto_complain_wrong_lang_p):
2953 New.
2954 (lto_init_options): Update prototype.
2955 (LANG_HOOKS_OPTION_LANG_MASK, LANG_HOOKS_COMPLAIN_WRONG_LANG_P):
2956 Define.
2957
2958 2010-07-10 Andi Kleen <ak@linux.intel.com>
2959
2960 PR lto/44992
2961 * lto.c: Include splay-tree.h
2962 (lto_resolution_read): Change to walk file_ids tree and parse
2963 extra file_id in resolution file.
2964 (lto_section_with_id): Add.
2965 (create_subid_section_table): Add.
2966 (lwstate): Add.
2967 (lto_create_files_from_ids): Add.
2968 (lto_file_read): Change to handle sub file ids and create list
2969 of file_datas. Add output argument for count.
2970 (get_section_data): Pass file_data to lto_get_section_name.
2971 (lto_flatten_file): Add.
2972 (read_cgraph_and_symbols): Handle linked lists of file_datas.
2973
2974 2010-07-10 Andi Kleen <ak@linux.intel.com>
2975
2976 * lto-coff.c (hash_name, eq_name): Move.
2977 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
2978 * lto-elf.c: (hash_name, eq_name): Move.
2979 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
2980 * lto-macho.c: (hash_name, eq_name): Move.
2981 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
2982 * lto.c: (hash_name, eq_name): Move from lto-*.c
2983 (lto_obj_create_section_hash_table): Add.
2984 (free_with_string): Add.
2985
2986 2010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
2987
2988 * lto-coff.c: Include diagnostic-core.h in every file that
2989 includes toplev.h.
2990 * lto-elf.c: Likewise.
2991 * lto-lang.c: Likewise.
2992 * lto-macho.c: Likewise.
2993
2994 2010-07-07 Jakub Jelinek <jakub@redhat.com>
2995
2996 * lto-elf.c (ELFOSABI_NONE, ELFOSABI_LINUX): Define if not defined.
2997 (validate_file): Allow merging of ELFOSABI_NONE with ELFOSABI_LINUX
2998 objects.
2999
3000 2010-07-05 Jan Hubicka <jh@suse.cz>
3001
3002 * lto.c (add_cgraph_node_to_partition): Forward declare; walk also
3003 nodes from same comdat group as well as all comdat functions referenced
3004 here.
3005 (add_varpool_node_to_partition, add_references_to_partition): New
3006 function.
3007 (lto_1_1_map): Skip COMDAT fnctions/variables; use
3008 add_varpool_node_to_partition; clear aux flags when done.
3009 (lto_promote_cross_file_statics): Do not promote stuff that gets
3010 duplicated to each ltrans.
3011
3012 2010-07-04 Jan Hubicka <jh@suse.cz>
3013
3014 * lto.c (read_cgraph_and_symbols): Dump cgraph before merging.
3015
3016 2010-06-13 Richard Guenther <rguenther@suse.de>
3017
3018 * lto.c (lto_fixup_type): Do not register or fixup TYPE_CANONICAL.
3019
3020 2010-06-09 Kai Tietz <kai.tietz@onevision.com>
3021
3022 * lto.c (lto_resolution_read): Pre-initialize local variable r.
3023 * lto-coff.c (coff_write_object_file): Add braces to if.
3024
3025 2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
3026
3027 * lto.c (lto_read_in_decl_state): Use typed GC allocation.
3028 (lto_file_read): Likewise.
3029 (new_partition): Likewise.
3030 (read_cgraph_and_symbols): Likewise.
3031
3032 2010-06-07 Joseph Myers <joseph@codesourcery.com>
3033
3034 * lto-lang.c (flag_no_builtin, flag_no_nonansi_builtin): Remove.
3035 (lto_handle_option): Don't set flag_signed_char here.
3036
3037 2010-06-04 Richard Guenther <rguenther@suse.de>
3038
3039 PR lto/41584
3040 * lto.c (lto_1_to_1_map): Use the proper file_data for
3041 varpool nodes.
3042
3043 2010-05-30 Jan Hubicka <jh@suse.cz>
3044
3045 * lto.c (promote_var, promote_fn, lto_wpa_write_files): Dump
3046 partitioning decisions.
3047
3048 2010-05-29 Jan Hubicka <jh@suse.cz>
3049
3050 * lto.c (bitmap vector): Remove.
3051 (lto_cgraph_node_sets, lto_varpool_node_sets): Remove.
3052 (ltrans_partition_def): New structure.
3053 (ltrans_partition): New type and VECtor.
3054 (new_partition): New function.
3055 (add_cgraph_node_to_partition): New function.
3056 (lto_1_to_1_map): Reorganize for partitions.
3057 (lto_add_inline_clones): Remove.
3058 (lto_add_all_inlinees): Remove.
3059 (lto_promote_cross_file_statics): Use partitions.
3060 (cmp_partitions): New function.
3061 (lto_wpa_write_files): Do not call lto_add_all_inlinees;
3062 use partitions; output files sorted by size.
3063
3064 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
3065
3066 * Make-lang.in: Replace vec.h dependency with VEC_H.
3067
3068 2010-05-28 Joseph Myers <joseph@codesourcery.com>
3069
3070 * lto-coff.c (coff_errmsg): Remove.
3071 (lto_coff_begin_section_with_type, lto_obj_append_data): Use %m in
3072 errors instead of coff_errmsg (-1).
3073 * lto-macho.c (mach_o_errmsg): Remove.
3074 (lto_obj_begin_section, lto_obj_append_data): Use %m in errors
3075 instead of mach_o_errmsg (-1).
3076 * lto.c (read_cgraph_and_symbols): Use %m in errors instead of
3077 xstrerror (errno).
3078
3079 2010-05-28 Richard Guenther <rguenther@suse.de>
3080
3081 * lto.c (prefix_name_with_star): Removed.
3082 (strip_extension): Likewise.
3083 (get_filename_for_set): Likewise.
3084 (lto_write_ltrans_list): Fold into ...
3085 (lto_wpa_write_files): ... this. Name LTRANS units
3086 by suffixing the ltrans output list filename.
3087 (do_whole_program_analysis): Adjust.
3088
3089 2010-05-27 Joseph Myers <joseph@codesourcery.com>
3090
3091 * lto.c: Include diagnostic-core.h instead of diagnostic.h.
3092 (read_cgraph_and_symbols, lto_main): Use seen_error.
3093 * Make-lang.in (lto/lto.o): Update dependencies.
3094
3095 2010-05-27 Eric Botcazou <ebotcazou@adacore.com>
3096
3097 PR lto/44230
3098 * lto.h (lto_eh_personality): New prototype.
3099 * lto.c: Include debug.h.
3100 (first_personality_decl): New static variable.
3101 (lto_materialize_function): Set it to DECL_FUNCTION_PERSONALITY of the
3102 first function for which it is non-null.
3103 (lto_eh_personality_decl): New static variable.
3104 (lto_eh_personality): New function.
3105 * lto-lang.c (LANG_HOOKS_EH_PERSONALITY): Redefine to above function.
3106 * Make-lang.in (lto/lto.o): Add dependency on debug.h.
3107
3108 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
3109
3110 * lto-lang.c: Do not include expr.h.
3111
3112 2010-05-24 Richard Guenther <rguenther@suse.de>
3113
3114 * lto-elf.c (lto_obj_build_section_table): Work around
3115 FreeBSD libelf issue.
3116
3117 2010-05-22 Richard Guenther <rguenther@suse.de>
3118
3119 * lto.c (read_cgraph_and_symbols): Do not collect.
3120
3121 2010-05-20 Jan Hubicka <jh@suse.cz>
3122
3123 * lto.c (promote_var, promote_fn): New functions.
3124 (lto_promote_cross_file_statics): Compute correctly boundary including
3125 static initializers of readonly vars.
3126
3127 2010-05-18 Jan Hubicka <jh@suse.cz>
3128
3129 * lto.c (lto_1_to_1_map): Partition non-inline clones.
3130 (lto_promote_cross_file_statics): Deal with non-inline clones.
3131
3132 2010-05-18 Jan Hubicka <jh@suse.cz>
3133
3134 * lto.c (lto_materialize_function): Announce function when
3135 reading body; allocate_struct_function only when reading body;
3136 do not finalize local statics; ggc_collect after reading;
3137 do not mark reachable node.
3138 (materialize_cgraph): Do not announce function.
3139
3140 2010-05-11 Jan Hubicka <jh@suse.cz>
3141
3142 * lto.c (materialize_cgraph): Revert my previous patch.
3143
3144 2010-05-11 Kai Tietz <kai.tietz@onevision.com>
3145
3146 * lto-coff.c (IMAGE_FILE_MACHINE_ADM64): Rename to
3147 IMAGE_FILE_MACHINE_AMD64.
3148 * lto-coff.c (IMAGE_FILE_MACHINE_ADM64): Likewise.
3149
3150 2010-05-11 Jan Hubicka <jh@suse.cz>
3151
3152 * lto.c (lto_fixup_decls): Remove global var decls freeing here.
3153 (materialize_cgraph): Add it here.
3154
3155 2010-05-11 Jan Hubicka <jh@suse.cz>
3156
3157 * lto.c (lto_fixup_decls): Free no longer needed lto_global_var_decls
3158 vector.
3159
3160 2010-05-11 Jan Hubicka <jh@suse.cz>
3161
3162 * lto.c (lto_1_to_1_map): Remove some no longer needed checks.
3163 (lto_promote_cross_file_statics): Never promote DECL_EXTERNAL;
3164 use reachable_from_other_partition_p and
3165 referenced_from_other_partition_p test.
3166
3167 2010-05-11 Kai Tietz <kai.tietz@onevision.com>
3168
3169 * lto-coff.c (validate_file): Add x64-coff support.
3170 * lto-coff.h (IMAGE_FILE_MACHINE_ADM64): New.
3171 (COFF_KNOWN_MACHINES): Add IMAGE_FILE_MACHINE_ADM64.
3172 * lto-lang.c (lto_build_c_type_nodes): Add check for
3173 'long long unsigned int' for x64-windows.
3174 (lto_init): Likewise.
3175
3176
3177 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
3178
3179 * lto.h (struct lto_file_struct): Document offset member.
3180 * lto-endian.h: New file.
3181 * lto-macho.h: New file.
3182 * lto-macho.c: New file.
3183 * Make-lang.in: Add rule for lto-macho.o.
3184
3185 2010-05-07 Richard Guenther <rguenther@suse.de>
3186
3187 PR lto/43857
3188 PR lto/43371
3189 * lang.opt (fresolution): Change to ...
3190 (fresolution=): ... this.
3191 * lto-lang.c (lto_handle_option): Adjust.
3192
3193 2010-05-07 Richard Guenther <rguenther@suse.de>
3194
3195 * lto.c (DUMPBASE_SUFFIX): Remove.
3196 (lto_execute_ltrans): Move functionality to lto-wrapper.c.
3197 Rename to ...
3198 (lto_write_ltrans_list): ... only output the list of ltrans files.
3199 (lto_maybe_unlink): Remove.
3200 (do_whole_program_analysis): Do not execute LTRANS phase
3201 from here.
3202
3203 2010-05-06 H.J. Lu <hongjiu.lu@intel.com>
3204
3205 * lto-lang.c (lto_handle_option): Add argument kind.
3206
3207 2010-05-05 Jan Hubicka <jh@suse.cz>
3208
3209 * lto.c (lto_promote_cross_file_statics): Compute boundary based on
3210 refs.
3211
3212 2010-05-05 Jan Hubicka <jh@suse.cz>
3213
3214 * lto.c (lto_1_to_1_map): Partition only needed nodes.
3215
3216 2010-04-30 Jan Hubicka <jh@suse.cz>
3217
3218 * lto.c (get_filename_for_set): Look for cgraph node and if none found,
3219 use default name.
3220 (lto_wpa_write_files): Write any non-empty partition.
3221
3222 2010-04-30 Jan Hubicka <jh@suse.cz>
3223
3224 * lto.c: Do not attempt to make constant pool references global.
3225
3226 2010-04-28 Jan Hubicka <jh@suse.cz>
3227
3228 * lto/lto.c (lto_read_in_decl_state): Use GGC.
3229 (lto_wpa_write_files): Announce what we are writting.
3230 (all_file_decl_data): New.
3231 (read_cgraph_and_symbols): Use GGC; correct timevars.
3232 (do_whole_program_analysis): Collect.
3233 * lto/Make-lang.in (lto.o): Fix dependency.
3234 * Makefile.in (GTFILES): Add lto-streamer.h.
3235 * varpool.c (varpool_analyze_pending_decls): Use TV_VARPOOL.
3236 (varpool_assemble_pending_decls): Use VAROUT.
3237 * lto-streamer.h (lto_tree_ref_table): Annotate.
3238 (lto_in_decl_state): Annotate.
3239 (lto_file_decl_data): Annotate.
3240
3241 2010-04-28 Jan Hubicka <jh@suse.cz>
3242
3243 * lto.c (lto_varpool_node_sets): New.
3244 (lto_1_to_1_map): Partition varpool too.
3245 (globalize_context_t, globalize_cross_file_statics,
3246 lto_scan_statics_in_ref_table, lto_scan_statics_in_cgraph_node,
3247 lto_scan_statics_in_remaining_global_vars): Remove.
3248 (lto_promote_cross_file_statics): Rewrite.
3249 (get_filename_for_set): Take vset argument.
3250 (lto_wpa_write_files): Pass around vsets.
3251
3252 2010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
3253
3254 PR lto/42776
3255 * Make-lang.in (LTO_OBJS): Use LTO_BINARY_READER instead of
3256 hardcoding 'lto-elf.o'.
3257 ($(LTO_EXE)): Use LTO_USE_LIBELF instead of hardcoding '-lelf'.
3258
3259 * lto-coff.h: New file.
3260 * lto-coff.c: Likewise.
3261
3262 2010-04-26 Richard Guenther <rguenther@suse.de>
3263
3264 * lto.c (lto_fixup_type): Deal with non-type TYPE_CONTEXT.
3265
3266 2010-04-26 Dave Korn <dave.korn.cygwin@gmail.com>
3267
3268 * lto.h (lto_elf_file_open): Rename prototype from this ...
3269 (lto_obj_file_open): ... to this.
3270 (lto_elf_file_close): Likewise ...
3271 (lto_obj_file_close): ... and likewise.
3272 (lto_elf_build_section_table): Likewise ...
3273 (lto_obj_build_section_table): ... and likewise.
3274 (lto_elf_begin_section): Likewise ...
3275 (lto_obj_begin_section): ... and likewise.
3276 (lto_elf_append_data): Likewise ...
3277 (lto_obj_append_data): ... and likewise.
3278 (lto_elf_end_section): Likewise ...
3279 (lto_obj_end_section): ... and likewise.
3280 * lto.c (lto_file_read): Update references to the above.
3281 (lto_wpa_write_files): Likewise.
3282 (lto_read_all_file_options): Likewise.
3283 (read_cgraph_and_symbols): Likewise.
3284 * lto-lang.c (LANG_HOOKS_BEGIN_SECTION): Likewise.
3285 (LANG_HOOKS_APPEND_DATA): Likewise.
3286 (LANG_HOOKS_END_SECTION): Likewise.
3287 * lto-elf.c (lto_elf_file_open): Rename from this ...
3288 (lto_obj_file_open): ... to this, updating any references.
3289 (lto_elf_file_close): Likewise ...
3290 (lto_obj_file_close): ... and likewise.
3291 (lto_elf_build_section_table): Likewise ...
3292 (lto_obj_build_section_table): ... and likewise.
3293 (lto_elf_begin_section): Likewise ...
3294 (lto_obj_begin_section): ... and likewise.
3295 (lto_elf_append_data): Likewise ...
3296 (lto_obj_append_data): ... and likewise.
3297 (lto_elf_end_section): Likewise ...
3298 (lto_obj_end_section): ... and likewise.
3299
3300 2010-04-21 Jan Hubicka <jh@suse.cz>
3301
3302 * lto.c (lto_fixup_tree): Do not call wpa fixup.
3303 (materialize_cgraph): Likewise.
3304
3305 2010-04-21 Jan Hubicka <jh@suse.cz>
3306
3307 * lto.c (lto_wpa_write_files): Update.
3308 (read_cgraph_and_symbols): Be more verbose.
3309 (materialize_cgraph): Likewise.
3310 (do_whole_program_analysis): Likewise.
3311
3312 2010-04-21 Jan Hubicka <jh@suse.cz>
3313
3314 * lto.c (globalize_cross_file_statics): When function has address taken,
3315 it needs to be public.
3316
3317 2010-04-20 Jan Hubicka <jh@suse.cz>
3318
3319 * lto.c (lto_add_inline_clones): Do not track inlined_decls.
3320 (lto_add_all_inlinees): Likewise.
3321 (lto_wpa_write_files): Likewise.
3322
3323 2010-04-18 Eric Botcazou <ebotcazou@adacore.com>
3324
3325 * lto-lang.c (lto_init): Remove second argument in call to
3326 build_common_tree_nodes.
3327
3328 2010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3329
3330 * lto-elf.c [!HAVE_ELF_GETSHDRSTRNDX] (elf_getshdrstrndx): New
3331 function.
3332
3333 2010-03-09 Eric Botcazou <ebotcazou@adacore.com>
3334
3335 PR bootstrap/43276
3336 * lto-elf.c: Define EM_* constants if not already defined.
3337
3338 2010-03-03 Eric Botcazou <ebotcazou@adacore.com>
3339
3340 * lto-elf.c (is_compatible_architecture): New static function.
3341 (DEFINE_VALIDATE_EHDR): Use it to validate the architecture.
3342
3343 2010-02-11 Richard Guenther <rguenther@suse.de>
3344
3345 PR driver/43021
3346 * lto-elf.c (lto_elf_file_open): Handle file@offset case more
3347 appropriately.
3348
3349 2010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
3350
3351 * lto.c (O_BINARY): Define.
3352 (lto_read_section_data): Open file in binary mode.
3353 * lto-elf.c (O_BINARY): Define.
3354 (lto_elf_file_open): Open file in binary mode.
3355
3356 2010-01-08 Richard Guenther <rguenther@suse.de>
3357
3358 PR lto/42528
3359 * lto-lang.c (lto_handle_option): Handle -f[un]signed-char.
3360 (lto_init): Do not init char_type_node in a standard way
3361 but according to flag_signed_char.
3362
3363 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
3364
3365 PR lto/41564
3366 * lto.c (DUMPBASE_SUFFIX): New.
3367 (lto_execute_ltrans): Append a sequence number to -dumpbase
3368 for LTRANS.
3369
3370 2010-01-02 H.J. Lu <hongjiu.lu@intel.com>
3371
3372 PR lto/42580
3373 * lto-elf.c (lto_elf_file_open): Stop if the command line
3374 option file is missing.
3375
3376 2009-12-15 Richard Guenther <rguenther@suse.de>
3377
3378 * lto.c (lto_fixup_field_decl): Fixup DECL_FIELD_OFFSET.
3379 (lto_post_options): Do not disable debuginfo.
3380
3381 2009-12-14 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
3382
3383 * Make-lang.in ($(LTO_EXE)): Use $(LINKER).
3384
3385 2009-12-11 Richard Guenther <rguenther@suse.de>
3386
3387 PR lto/42037
3388 * lto.c (lto_resolution_read): Properly grow the vector.
3389
3390 2009-12-11 Richard Guenther <rguenther@suse.de>
3391
3392 PR lto/41915
3393 * lto-lang.c (lto_init_options): Initialize flag_complex_method
3394 to the C99 default. Do not set flag_unit_at_a_time.
3395
3396 2009-11-28 Jakub Jelinek <jakub@redhat.com>
3397
3398 * lto-lang.c (handle_nonnull_attribute): Remove unused attr_arg_num
3399 variable.
3400
3401 2009-11-19 Rafael Avila de Espindola <espindola@google.com>
3402
3403 PR bootstrap/42096
3404 * lto-elf.c (lto_elf_file_open): Use lto_parse_hex.
3405 * lto.c (lto_parse_hex): New.
3406 (lto_resolution_read): Use lto_parse_hex.
3407 * lto.h (lto_parse_hex): New.
3408
3409 2009-11-17 Rafael Avila de Espindola <espindola@google.com>
3410
3411 * lto-elf.c (lto_file_init): Add offset argument.
3412 (lto_elf_file_open): Record the offset.
3413 * lto.c (lto_resolution_read): Change file_name into a lto_file
3414 argument. Check offsets.
3415 (lto_file_read): Update call to lto_resolution_read.
3416 * lto.h (lto_file_struct): Add the offset field.
3417
3418 2009-11-16 Rafael Avila de Espindola <espindola@google.com>
3419
3420 * lto-elf.c (lto_elf_file_open): Use strtoll to parse the offset.
3421
3422 2009-11-14 Jan Hubicka <jh@suse.cz>
3423
3424 * lto.c (read_cgraph_and_symbols): Set also ipa_transforms_to_apply.
3425
3426 2009-11-12 Rafael Avila de Espindola <espindola@google.com>
3427
3428 * lang.opt (fresolution): Renamed from resolution.
3429 * lto-lang.c (lto_handle_option): Handle new option name.
3430 * lto.c (lto_resolution_read): Add more checks. Discard rest of line.
3431
3432 2009-11-04 Richard Guenther <rguenther@suse.de>
3433 Rafael Avila de Espindola <espindola@google.com>
3434
3435 * lto-elf.c (lto_elf_build_section_table): Add the base offset.
3436 (lto_elf_file_open): Handle offsets in arguments name@offest.
3437
3438 2009-10-30 Richard Guenther <rguenther@suse.de>
3439
3440 PR lto/41858
3441 * lto.c (lto_file_read): Do not set file_data->fd.
3442 (lto_read_section_data): Use a single-entry file-descriptor cache.
3443 Do not check the result of xmalloc.
3444 (free_section_data): Do not use file_data->fd.
3445 (lto_read_all_file_options): Likewise.
3446
3447 2009-10-22 Richard Guenther <rguenther@suse.de>
3448
3449 * lto.c (lto_fixup_jump_functions): Remove.
3450 (lto_fixup_decls): Do not fixup jump functions.
3451 (read_cgraph_and_symbols): Schedule cgraph merging after
3452 summary reading. Schedule type and decl fixup before
3453 summary reading.
3454
3455 2009-10-22 Richard Guenther <rguenther@suse.de>
3456
3457 * lto.c (lto_fixup_data_t): Remove free_list member.
3458 (lto_fixup_tree): Do not insert into free_list.
3459 (free_decl): Remove.
3460 (lto_fixup_decls): Remove free-list handling.
3461
3462 2009-10-22 Jan Hubicka <jh@suse.cz>
3463
3464 * lto.c (lto_fixup_jump_functions): New function.
3465 (lto_fixup_decls): Use it.
3466
3467 2009-10-16 Richard Guenther <rguenther@suse.de>
3468
3469 PR lto/41715
3470 * lto.c (lto_fixup_tree): Revert last change.
3471
3472 2009-10-14 Richard Guenther <rguenther@suse.de>
3473
3474 * lto.c (lto_fixup_tree): In case the prevailing decl is not
3475 compatible with the one we replace wrap it around a
3476 VIEW_CONVERT_EXPR.
3477
3478 2009-10-09 Richard Guenther <rguenther@suse.de>
3479
3480 PR lto/41635
3481 PR lto/41636
3482 * lto.c (read_cgraph_and_symbols): Do not assert we can open
3483 a file.
3484 * lto-elf.c (init_shdr##BITS): Fix i18n problems.
3485 (init_ehdr##BITS): Likewise.
3486
3487 2009-10-08 Joseph Myers <joseph@codesourcery.com>
3488
3489 * lto-elf.c (init_shdr##BITS, lto_elf_begin_section_with_type,
3490 init_ehdr##BITS, lto_elf_file_close): Remove trailing "." from
3491 diagnostics.
3492 * lto-lang.c (lto_post_options): Remove trailing "." from
3493 diagnostics.
3494
3495 2009-10-08 Richard Guenther <rguenther@suse.de>
3496
3497 * lto.c (read_cgraph_and_symbols): Free the gimple type merging
3498 hash tables.
3499
3500 2009-10-07 Joseph Myers <joseph@codesourcery.com>
3501
3502 * lto.c: Only include <sys/mman.h> if HAVE_MMAP_FILE.
3503
3504 2009-10-07 Jan Hubicka <jh@suse.cz>
3505
3506 * lto.c (read_cgraph_and_symbols): Mark functions neccesary only at
3507 ltrans stage; explain why this is needed and should not.
3508
3509 2009-10-05 Richard Guenther <rguenther@suse.de>
3510
3511 PR lto/41552
3512 PR lto/41487
3513 * lto.c (lto_read_decls): Do not register deferred decls.
3514 (read_cgraph_and_symbols): Delay symbol and cgraph merging
3515 until after reading the IPA summaries.
3516
3517 2009-10-02 Rafael Avila de Espindola <espindola@google.com>
3518
3519 * Make-lang.in (lto/lto-lang.o): Don't depend on lto/common.h.
3520 (lto-lang.c): Don't include lto/common.h.
3521
3522 2009-10-02 Rafael Avila de Espindola <espindola@google.com>
3523
3524 * Make-lang.in (LTO_OBJS): Remove lto/common.o.
3525 (lto/common.o): Remove.
3526 * common.c: Remove.
3527 * common.h (lto_kind_str): Remove.
3528 (lto_visibility_str): Remove.
3529 (lto_resolution_str): Make it static.
3530
3531 2009-10-01 Diego Novillo <dnovillo@google.com>
3532
3533 * lto.c (lto_read_decls): Add comment.
3534 Call internal_error instead of gcc_assert.
3535 (lto_resolution_read): Likewise.
3536 (lto_add_all_inlinees): Tidy.
3537 * Make-lang.in: Fix copyright boilerplate.
3538 (lto.pdf): New.
3539 (lto.install-pdf): New.
3540 * lto-tree.h: Fix copyright boilerplate.
3541 * lang-specs.h: Likewise.
3542 Remove ".lto" entry from compilers fragment.
3543 * lto-elf.c: Move inclusion of gelf.h after config.h.
3544 Tidy formatting everywhere.
3545 * lto.h: Fix copyright boilerplate.
3546 Tidy formatting everywhere.
3547 * common.c: Likewise.
3548 * config-lang.in: Likewise.
3549 * common.h: Likewise.
3550 * lto-lang.c: Likewise.
3551
3552 2009-10-01 Richard Guenther <rguenther@suse.de>
3553
3554 * lto.c (lto_read_section_data): Use plain lseek/read.
3555
3556 2009-10-01 Richard Guenther <rguenther@suse.de>
3557
3558 * lto.c (LTO_MMAP_IO): Define if we can mmap files and
3559 use sysconf to query the system page size.
3560 (lto_file_read): Implement fallback using stdio.
3561 (free_section_data): Likewise.
3562
3563 2009-09-29 Diego Novillo <dnovillo@google.com>
3564
3565 * lto-lang.c (lto_init): Really fix call to
3566 build_common_builtin_nodes.
3567
3568 2009-09-29 Diego Novillo <dnovillo@google.com>
3569
3570 * lto-lang.c (lto_init): Fix call to
3571 build_common_builtin_nodes.
3572
3573 2009-09-29 Richard Guenther <rguenther@suse.de>
3574
3575 PR lto/40754
3576 * lto-elf.c (init_shdr##BITS): Properly specify alignment
3577 in bytes.
3578 (first_data_block): New static variable.
3579 (lto_elf_append_data): Align the first data block in each
3580 section.
3581
3582 2009-09-28 Diego Novillo <dnovillo@google.com>
3583
3584 * lto-lang.c: Tidy. Remove stale FIXME lto markers.
3585 * lto.c (strip_extension): New.
3586 (get_filename_for_set): Call it. Do not call make_cwd_temp_file.
3587 (lto_execute_ltrans): Tidy.
3588 Do not pass -fwpa nor -fltrans-* to LTRANS.
3589 * opts.c: Tidy formatting and remove stale FIXME lto markers.
3590 * tree.c (need_assembler_name_p): Call
3591 lang_hooks.decls.may_need_assembler_name_p if set.
3592 * varasm.c (default_binds_local_p_1): Remove check for
3593 flag_ltrans.
3594 * varpool.c (decide_is_variable_needed): Do not test for
3595 in_lto_p.
3596
3597 2009-09-22 Richard Guenther <rguenther@suse.de>
3598
3599 PR lto/39276
3600 * lto.c (lto_execute_ltrans): Perform ltrans phase manually.
3601 * Make-lang.in: Remove ltrans-driver stuff.
3602 * config-lang.in: Likewise.
3603 * lang.opt (fltrans-driver): Remove.
3604 * lto-lang.c (lto_init_options): Remove code initializing
3605 ltrans_driver.
3606 * ltrans-driver: Remove.
3607
3608 2009-09-21 Diego Novillo <dnovillo@google.com>
3609
3610 * lto-lang.c (lto_define_builtins): Remove superfluous
3611 calls to targetm.init_builtins and build_common_builtin_nodes.
3612 (lto_init): Add targetm.arm_eabi_unwinder as parameter to
3613 build_common_builtin_nodes.
3614 * lto.c (lto_materialize_function): Do nothing if NODE is a
3615 clone.
3616
3617 2009-09-03 Diego Novillo <dnovillo@google.com>
3618
3619 * lto-elf.c (validate_file): Replace call to
3620 elf_getshstrndx with call to elf_getshdrstrndx.
3621
3622 2009-08-19 Richard Guenther <rguenther@suse.de>
3623
3624 * lto-lang.c (lto_init): Merge char_type_node with the
3625 appropriately signed variant.
3626
3627 2009-08-19 Richard Guenther <rguenther@suse.de>
3628
3629 PR lto/41071
3630 * lto.c (lto_fixup_common): Re-build the pointer-to chain part one.
3631 (lto_fixup_type): Re-build the pointer-to chain part two.
3632
3633 2009-08-19 Richard Guenther <rguenther@suse.de>
3634
3635 PR lto/41071
3636 * lto.c (lto_fixup_type): Re-build the type variant chain.
3637
3638 2009-08-19 Richard Guenther <rguenther@suse.de>
3639
3640 PR lto/41071
3641 * lto.c (lto_fixup_constructor): New function.
3642 (lto_fixup_tree): Replace all types. Properly fixup
3643 constructors and constants.
3644
3645 2009-08-14 Richard Guenther <rguenther@suse.de>
3646
3647 * lto.c (read_cgraph_and_symbols): Exchange TREE_CHAIN use
3648 for DECL_LANG_SPECIFIC.
3649
3650 2009-08-13 Richard Guenther <rguenther@suse.de>
3651
3652 PR lto/41032
3653 * lto-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define to NULL.
3654
3655 2009-07-30 Richard Guenther <rguenther@suse.de>
3656
3657 PR lto/40903
3658 * lto.c (read_cgraph_and_symbols): After fixing up decls choose
3659 the largest decl for output and free TREE_CHAIN for further
3660 use.
3661
3662 2009-07-24 Diego Novillo <dnovillo@google.com>
3663
3664 * Make-lang.in: Add empty lto.install-plugin target.
3665
3666 2009-07-13 Diego Novillo <dnovillo@google.com>
3667
3668 * lto.c (lto_fixup_tree): Handle IMPORTED_DECL.
3669
3670 2009-07-11 Richard Guenther <rguenther@suse.de>
3671
3672 * lto-lang.c (lto_write_globals): Wrapup global decls.
3673
3674 2009-07-10 Richard Guenther <rguenther@suse.de>
3675
3676 * lto-lang.c (lto_init): Allocate one more location to make
3677 BUILTINS_LOCATION correct.
3678
3679 2009-07-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3680
3681 * lto.c (free_section_data): Cast computed_offset to caddr_t.
3682
3683 2009-07-06 Diego Novillo <dnovillo@google.com>
3684
3685 * lto.c (lto_fixup_type): Fixup TYPE_SIZE and
3686 TYPE_SIZE_UNIT.
3687
3688 2009-07-06 Diego Novillo <dnovillo@google.com>
3689
3690 * lto.c (preload_common_nodes): Remove.
3691 (lto_read_in_decl_state): Call lto_streamer_cache_get.
3692 (lto_read_decls): Call lto_data_in_create and
3693 lto_data_in_delete.
3694 (free_decl): Do not call ggc_free.
3695 (lto_main): Call lto_init_reader.
3696 * lto-lang.c (lto_type_for_size): Handle intTI_type_node.
3697 (lto_init): Initialize main_identifier_node if needed.
3698 Make ptrdiff_type_node be integer_type_node.
3699
3700 2009-06-19 Diego Novillo <dnovillo@google.com>
3701
3702 * lto.c: Remove code guarded by #ifdef LTO_STREAM_DEBUGGING.
3703 Remove code guarded by #ifdef GLOBAL_STREAMER_TRACE.
3704 Remove code guarded by #ifdef LOCAL_TRACE.
3705
3706 2009-06-18 Diego Novillo <dnovillo@google.com>
3707
3708 * lto.c: Update license to GPLv3.
3709 * lto-elf.c: Likewise.
3710 * common.c: Likewise.
3711 * lto-lang.c: Likewise.
3712 * lto.h: Remove superfluous include files. Update all
3713 users.
3714
3715 2009-06-17 Diego Novillo <dnovillo@google.com>
3716
3717 * lto.c (read_cgraph_and_symbols): Call input_cgraph.
3718
3719 2009-06-02 Diego Novillo <dnovillo@google.com>
3720
3721 * lto.c (lto_1_to_1_map): Ignore nodes that have not been
3722 read in.
3723 (materialize_cgraph): Only materialize nodes that have a
3724 representation on file.
3725
3726 2009-06-01 Diego Novillo <dnovillo@google.com>
3727
3728 * lto-lang.c (lto_handle_option): Hanlde OPT_Wabi.
3729
3730 2009-05-31 Diego Novillo <dnovillo@google.com>
3731
3732 * lto-lang.c (lto_type_for_mode): Handle all the modes
3733 handled in c_common_type_for_mode.
3734
3735 2009-05-21 Diego Novillo <dnovillo@google.com>
3736
3737 * lto-elf.c: Always include <gelf.h>.
3738 * config-lang.in (target_libs): Remove.
3739 (build_by_default): Set to no.
3740
3741 2009-05-15 Diego Novillo <dnovillo@google.com>
3742
3743 * lto.c (lto_materialize_function): Assert that DECL is
3744 not a builtin.
3745 (materialize_cgraph): Don't try to materialize builtin
3746 functions.
3747 * lto-section-out.c (write_symbol_vec): Do not write
3748 builtin functions.
3749
3750 2009-05-13 Diego Novillo <dnovillo@google.com>
3751
3752 * lto-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define.
3753
3754 2009-05-07 Diego Novillo <dnovillo@google.com>
3755
3756 * lto.c (lto_resolution_read): Add type casts for C++ warnings.
3757 (LTO_REGISTER_TYPE_AND_FIXUP_SUBTREE): Define.
3758 (lto_fixup_type): Call it for TYPE_POINTER_TO,
3759 TYPE_REFERENCE_TO, TYPE_CONTEXT and TYPE_CANONICAL.
3760 (lto_fixup_tree): Call gimple_register_type when *TP is a
3761 type.
3762 (lto_main): Call bitmap_obstack_initialize.
3763
3764 2009-04-22 Diego Novillo <dnovillo@google.com>
3765
3766 * lto.c (free_section_data): Tidy.
3767 (lto_1_to_1_map): Tidy.
3768 (lto_add_all_inlinees): Tidy.
3769 (prefix_name_with_star): New.
3770 (get_filename_for_set): New.
3771 (lto_wpa_write_files): Call cgraph_node_set_needs_ltrans_p
3772 to determine what cgraph node sets to write.
3773 Call get_filename_for_set to compute temporary file
3774 names.
3775 (lto_execute_ltrans): Do not execute LTRANS on files with
3776 names that start with '*'.
3777 Move logic to execute LTRANS together so that LTRANS is
3778 invoked only if there are any files to compile.
3779 (do_whole_program_analysis): Only remove output files
3780 that do not start with '*'.
3781
3782 2009-04-06 Diego Novillo <dnovillo@google.com>
3783
3784 * lto-lang.c (lto_post_options): Set flag_excess_precision_cmdline.
3785 * lto.c (read_cgraph_and_symbols): Set cgraph_function_flags_ready.
3786 (lto_add_all_inlinees): Tidy.
3787
3788 2009-03-26 Diego Novillo <dnovillo@google.com>
3789
3790 * lto.c: Include gimple.h.
3791 (lto_read_in_decl_state): Call gimple_register_type for
3792 every type in every stream.
3793 (lto_fixup_common): Call gimple_register_type if T has a
3794 type.
3795 (do_whole_program_analysis): Call print_lto_report.
3796 (lto_main): Call print_lto_report after cgraph_optimize.
3797 * Make-lang.in (lto.o): Add dependency on GIMPLE_H.
3798
3799 2009-03-24 Diego Novillo <dnovillo@google.com>
3800
3801 * Make-lang.in (lto-lang.o): Add dependency on TARGET_H and EXPR_H.
3802 (lto.o): Add dependency on GIMPLE_H.
3803
3804 2009-03-10 Simon Baldwin <simonb@google.com>
3805
3806 * lto.c (lto_read_all_file_options): Close any open file descriptor
3807 contained in file_data before freeing.
3808
3809 2009-02-24 Rafael Avila de Espindola <espindola@google.com>
3810
3811 * lto.c (lto_add_inline_clones): Don't add the master clone. Check
3812 for a decl in the original bitmap, not a node.
3813 (lto_add_all_inlinees): Remove original nodes that are not needed.
3814 (lto_scan_statics_in_cgraph_node): Don't care if the node is the master.
3815
3816 2009-02-24 Diego Novillo <dnovillo@google.com>
3817
3818 * lto.c (lto_materialize_function): Update
3819 lto_stats.num_function_bodies.
3820 (get_section_data): Initialize *LEN to 0.
3821 (lto_1_to_1_map): Update lto_stats.num_cgraph_partitions.
3822 (lto_wpa_write_files): Update lto_stats.num_cgraph_nodes.
3823 Update lto_stats.num_output_files.
3824 (read_cgraph_and_symbols): Update lto_stats.num_input_files.
3825 (materialize_cgraph): Update lto_stats.num_input_cgraph_nodes.
3826 (lto_main): Initialize lto_stats.
3827 If flag_lto_report is set, call print_lto_report.
3828
3829 2009-02-19 Diego Novillo <dnovillo@google.com>
3830
3831 Revert
3832
3833 2009-02-19 Rafael Avila de Espindola <espindola@google.com>
3834
3835 * lto.c (lto_add_inline_clones): Don't add the
3836 master clone. Check for a decl in the original
3837 bitmap, not a node.
3838 (lto_add_all_inlinees): Remove original nodes
3839 that are not needed.
3840 (lto_scan_statics_in_cgraph_node): Don't care if
3841 the node is the master.
3842 (lto_promote_cross_file_statics): Use a new
3843 context.seen_node_decls for each set
3844
3845 2009-02-19 Rafael Avila de Espindola <espindola@google.com>
3846
3847 * lto.c (lto_add_inline_clones): Don't add the master clone. Check
3848 for a decl in the original bitmap, not a node.
3849 (lto_add_all_inlinees): Remove original nodes that are not needed.
3850 (lto_scan_statics_in_cgraph_node): Don't care if the node is the master.
3851 (lto_promote_cross_file_statics): Use a new context.seen_node_decls
3852 for each set
3853
3854 2009-02-18 Diego Novillo <dnovillo@google.com>
3855
3856 * lto.c (lto_wpa_write_files): Use timers TV_WHOPR_WPA
3857 and TV_WHOPR_WPA_IO.
3858 (lto_execute_ltrans): Use timer TV_WHOPR_WPA_LTRANS_EXEC.
3859 (read_cgraph_and_symbols): Use timer TV_IPA_LTO_DECL_IO.
3860 (materialize_cgraph): Use timer TV_IPA_LTO_GIMPLE_IO.
3861 Use timer TV_WHOPR_WPA or TV_WHOPR_LTRANS or TV_LTO
3862 depending on command line flags.
3863 (do_whole_program_analysis): Use timer TV_WHOPR_WPA.
3864 (lto_main): Remove timer uses.
3865
3866 2009-02-18 Rafael Avila de Espindola <espindola@google.com>
3867
3868 * lto.c (lto_materialize_function): Don't set DECL_EXTERN to 0.
3869 (lto_wpa_write_files): Update calls to renamed functions.
3870
3871 2009-02-17 Diego Novillo <dnovillo@google.com>
3872
3873 PR 39203
3874 * lto-lang.c (lto_post_options): Disable -fwhole-program
3875 when running LTRANS.
3876
3877 2009-02-10 Diego Novillo <dnovillo@google.com>
3878
3879 * lto.c (read_cgraph_and_symbols): Fix comment.
3880
3881 2009-02-10 Diego Novillo <dnovillo@google.com>
3882
3883 * lto.c (read_cgraph_and_symbols): Read options from all
3884 IL files.
3885
3886 2009-02-10 Diego Novillo <dnovillo@google.com>
3887
3888 * lto.c (read_cgraph_and_symbols): Factor out of lto_main.
3889 (materialize_cgraph): Likewise.
3890 (do_whole_program_analysis): Likewise.
3891 (lto_main): Call read_cgraph_and_symbols,
3892 materialize_cgraph and do_whole_program_analysis.
3893
3894 2009-02-10 Simon Baldwin <simonb@google.com>
3895
3896 * lto.c: Include lto-opts.h.
3897 * (lto_main): Clear file options at loop start, read any saved
3898 options from the first file handled, and re-issue options.
3899 * Makefile.in (lto.o): Add dependency on lto-opts.h.
3900
3901 2009-02-02 Diego Novillo <dnovillo@google.com>
3902
3903 * lto.c (lto_main): Stop LTO_TIMER and use
3904 TV_WHOPR_WPA_LTRANS_EXEC when launching LTRANS.
3905
3906 2009-01-30 H.J. Lu <hongjiu.lu@intel.com>
3907
3908 PR lto/38995
3909 * lto-elf.c (init_shdr##BITS): Set the sh_addralign field
3910 to POINTER_SIZE.
3911
3912 2009-01-29 Ramana Radhakrishnan <ramana.r@gmail.com>
3913
3914 * Make-lang.in (LTO_EXE): Link with all
3915 BACKENDLIBS and not only GMPLIBS
3916
3917 2009-01-28 H.J. Lu <hongjiu.lu@intel.com>
3918
3919 PR bootstrap/38992
3920 * lto-elf.c: Include gelf.h instead of libelf.h.
3921 (lto_elf_file_close): Replace elfx_update_shstrndx with
3922 gelf_getehdr, elf_getscn, gelf_getshdr, gelf_update_shdr and
3923 gelf_update_ehdr.
3924
3925 2009-01-28 H.J. Lu <hongjiu.lu@intel.com>
3926
3927 PR middle-end/38996
3928 * lto-elf.c (DEFINE_INIT_EHDR): Initialize e_version.
3929
3930 2009-01-26 Diego Novillo <dnovillo@google.com>
3931
3932 * lto-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Update.
3933
3934 2009-01-26 Diego Novillo <dnovillo@google.com>
3935
3936 * lto-lang.c (lto_types_compatible_p): Move to gimple.c
3937 and rename into gimple_types_compatible_p.
3938
3939 2009-01-12 Rafael Avila de Espindola <espindola@google.com>
3940
3941 * lto-lang.c (lang_hooks): Remove the const qualifier.
3942
3943 2009-01-06 Diego Novillo <dnovillo@google.com>
3944
3945 * ltrans-driver: Mark 'all' target as phony.
3946
3947 2008-12-31 Diego Novillo <dnovillo@google.com>
3948
3949 * ltrans-driver: Execute a NOP action for target 'all'.
3950
3951 2008-12-19 Diego Novillo <dnovillo@google.com>
3952
3953 * lto.c (lto_1_to_1_map): Tidy.
3954
3955 2008-12-19 Diego Novillo <dnovillo@google.com>
3956
3957 * lto-elf.c (lto_elf_file_open): When FILENAME cannot
3958 be opened, show its name.
3959 * ltrans-driver: If $verbose is set, do not use parallelism.
3960
3961 2008-12-17 Rafael Avila de Espindola <espindola@google.com>
3962
3963 * lto.c (lto_fixup_function): New.
3964 (lto_fixup_tree): Call lto_fixup_function.
3965
3966 2008-12-14 Doug Kwan <dougkwan@google.com>
3967
3968 * lto.c (lto_1_to_1_map): Create a cgraph node set for any global
3969 variables if there is no function.
3970
3971 2008-12-10 Simon Baldwin <simonb@google.com>
3972
3973 * ltrans-driver: Always run make in silent mode, to avoid make's
3974 trace on stdout interfering with lto-wrapper output.
3975
3976 2008-12-10 Doug Kwan <dougkwan@google.com>
3977
3978 * lto.c (lto_add_inline_clones): Do not force master clones of
3979 inlined functions already in SET to be static inline.
3980
3981 2008-12-04 Doug Kwan <dougkwan@google.com>
3982
3983 * lto.c (globalize_context_t): New type to store states in
3984 globalization of cross-file statics.
3985 (globalize_cross_file_statics): New.
3986 (lto_scan_statics_in_ref_table): Walk tree to look for reachable
3987 static decls that need to be fixed up.
3988 (lto_scan_statics_in_cgraph_node): Change call interface to use
3989 a globalize_context_t CONTEXT for all states used.
3990 (lto_scan_statics_in_remaining_global_vars): New.
3991 (lto_promote_cross_file_statics): Use new call interface of
3992 LTO_SCAN_STATICS_IN_CGRAPH_NODE. Handle remaining externally
3993 visible vars in the last set.
3994
3995 2008-12-03 Diego Novillo <dnovillo@google.com>
3996
3997 * lto.c (lto_fixup_tree): Do not emit an error when
3998 PREVAILING throw but T doesn't.
3999
4000 2008-12-02 Doug Kwan <dougkwan@google.com>
4001
4002 * lto.c (lto_scan_statics_in_ref_table): New function factored out
4003 from code in ...
4004 (lto_scan_statics_in_cgraph_node): Handle both file-scope static
4005 variables and functions.
4006 (lto_promote_cross_file_statics): Rename bitmaps to SEEN_DECLS
4007 and GLOBAL_DECLS from SEEN_VARS and GLOBAL_VARS.
4008
4009 2008-11-29 Diego Novillo <dnovillo@google.com>
4010
4011 * lto.c: Include timevar.h.
4012 (lto_materialize_function): Tidy. Add comments.
4013 (lto_wpa_write_files): Tidy.
4014 (lto_execute_ltrans): Tidy.
4015 (lto_main): Add local variable LTO_TIMER. Initialize it
4016 to one of TV_WHOPR_WPA, TV_WHOPR_LTRANS or TV_LTO.
4017 Start and stop the timer.
4018 Tidy comments.
4019 * Make-lang.in (lto.o): Add dependency on timevar.h.
4020 * ltrans-driver: React to -v and -save-temps.
4021 Use simple heuristic to determine how much parallelism to
4022 use when executing make.
4023
4024 2008-11-12 Doug Kwan <dougkwan@google.com>
4025
4026 * lto.c (lto_bitmap_obstack): Remove var.
4027 (lto_materialize_function): Do nothing instead of marking function
4028 body in file if flag_wpa is true.
4029 (lto_add_all_inlinees): Use bitmap functions in lto-utils.c.
4030 (lto_scan_statics_in_cgraph_node): New function.
4031 (lto_promote_cross_file_statics): Same.
4032 (lto_wpa_write_files): Call lto_promote_cross_file_statics.
4033 Use bitmap functions in lto-utils.c. Remove unsued label OUT.
4034 * Make-lang.in (lto/lto.o): Add lto-utils.h to dependency list.
4035
4036 2008-11-09 Diego Novillo <dnovillo@google.com>
4037
4038 * lto/lto.c (lto_fixup_tree): Change error message locus
4039 information to include location of mismatching
4040 declaration.
4041 Use TREE_NO_WARNING to avoid repeated messages.
4042 (lto_main): If lto_fixup_decls emitted any errors, exit.
4043 * lto/lto-lang.c: Don't include libfuncs.h and except.h
4044 (lto_init_options): Don't enable exceptions by default.
4045 (lto_eh_runtime_type): Move to lto-function-in.c
4046 (lto_init_eh): Likewise.
4047 (lto_init): Don't call lto_init_eh.
4048 * lto/Make-lang.in (lto-lang.o): Remove dependency on
4049 libfuncs.h and except.h.
4050
4051 2008-10-30 Diego Novillo <dnovillo@google.com>
4052
4053 * lto.c (lto_read_decls): Declare debug_main only if
4054 LTO_STREAM_DEBUGGING is enabled.
4055
4056 2008-10-30 Simon Baldwin <simonb@google.com>
4057
4058 * lto.c (lto_wpa_write_files): Create intermediate files with
4059 make_cwd_temp_file().
4060 (lto_maybe_unlink): New. Delete intermediate WPA files unless
4061 WPA_SAVE_LTRANS is set.
4062 (lto_main): Call lto_maybe_unlink() for intermediate WPA files.
4063 * ltrans-driver: Do not strip directory from output files.
4064
4065 2008-10-29 Doug Kwan <dougkwan@google.com>
4066
4067 * lto.c (free_decl): Call lto_symtab_clear_resolution when freeing
4068 DECL.
4069 * Make-lang.in (LTO_OBJS): Remove lto/lto-symtab.o
4070 (lto/lto-symtab.o): Remove rule.
4071 * lto-tree.h (struct lang_identifier): Remove LTO specific fields.
4072 (struct lang_decl): Remove RESOLUTION and add DUMMY in struct.
4073 (LANG_IDENTIFIER_CAST, LTO_IDENTIFIER_DECL, LTO_DECL_RESOLUTION):
4074 Remove macros.
4075 lto-symtab.c (File): Move up one level.
4076 lto-lang.c (cgraph.h): Remove include.
4077 (input_overwrite_node, input_node, input_edge, input_cgraph_1,
4078 input_cgraph): Move to lto-cgraph.c in gcc directory above.
4079 (LANG_HOOKS_INPUT_CGRAPH): Remove use of macro.
4080
4081 2008-10-24 Rafael Espindola <espindola@google.com>
4082
4083 * lto-function-in.c (get_resolution): Return LDPR_PREEMPTED_IR for
4084 non prevailing weak symbols.
4085
4086 2008-10-24 Rafael Espindola <espindola@google.com>
4087
4088 * lto-lang.c (input_cgraph_1): Iterate over nodes, not cgraph_nodes.
4089
4090 2008-10-24 Rafael Espindola <espindola@google.com>
4091
4092 * lto-lang.c (input_node): Avoid casts from pointers to ints of
4093 different types.
4094
4095 2008-10-23 Simon Baldwin <simonb@google.com>
4096
4097 * lto-lang.c (input_node): Save the node reference, rather than the
4098 node pointer, in node->inlined_to.
4099 (input_cgraph_1): Convert node references into node pointers.
4100
4101 2008-10-22 Diego Novillo <dnovillo@google.com>
4102 Rafael Espindola <espindola@google.com>
4103
4104 * lto.c (lto_resolution_read): Tidy.
4105 * lto-symtab.c (lto_symtab_prevailing_decl): Do not
4106 abort if RET is NULL.
4107
4108 2008-10-22 Doug Kwan <dougkwan@google.com>
4109
4110 * lto.c (lto_fixup_tree): Check for NOTHROW conflict only if
4111 exceptions flag is given.
4112 * lto-lang.c: (lto_init_options) Set default exceptions flag.
4113 (lto_init_eh): Remove exceptions flag initialization.
4114 (lto_init): Only call lto_init_eh if exceptions flag is set.
4115
4116 2008-10-21 Diego Novillo <dnovillo@google.com>
4117
4118 * lto.c: Tidy some formatting.
4119 * lto.h: Likewise.
4120
4121 2008-10-21 Simon Baldwin <simonb@google.com>
4122
4123 * lto-symtab.c: (lto_same_type_p): Types cannot be equal if one of
4124 them is NULL (but not the other).
4125
4126 2008-10-17 Diego Novillo <dnovillo@google.com>
4127
4128 * ltrans-driver: Divert output from make to a temporary file.
4129 Show it if the call to make failed.
4130
4131 2008-10-15 Diego Novillo <dnovillo@google.com>
4132
4133 * lto.c (lto_wpa_write_files): Reformat do-while loop.
4134 Do not print TEMP_FILENAME
4135 * ltrans-driver: Call make with -s.
4136
4137 2008-10-15 Diego Novillo <dnovillo@google.com>
4138
4139 * lto-symtab.c (lto_symtab_merge_decl): Do not force
4140 TREE_STATIC on global symbols.
4141
4142 2008-10-14 Ollie Wild <aaw@google.com>
4143
4144 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): Remove.
4145 (LTRANS_DRIVER_EXE): Add.
4146 (lto.all.cross): Add LTRANS_DRIVER_EXE.
4147 (lto.all.encap): Add LTRANS_DRIVER_EXE.
4148 (lto.install.common): Remove ltrans-driver.
4149 (lto.mostlyclean): Add LTRANS_DRIVER_EXE.
4150 (LTRANS_DRIVER_EXE): New build rule.
4151 * config-lang.in (compilers): Add ltrans-driver.
4152
4153 2008-10-14 Diego Novillo <dnovillo@google.com>
4154
4155 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): Disable transformation
4156 of program name.
4157
4158 2008-10-13 Ollie Wild <aaw@google.com>
4159
4160 * lang-spec.h (@lto): Replace lto1_options with cc1_options.
4161 * lto.c (lto_execute_ltrans): Add "-fno-wpa -fltrans -xlto" to CFLAGS.
4162 * ltrans-driver (LTRANS_FLAGS): Remove.
4163
4164 2008-10-08 Doug Kwan <dougkwan@google.com>
4165
4166 * lto.c (lto_fixup_tree): Remove ATTRIBUTE_UNUSED from DATA.
4167 Handle new tree codes RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE
4168 and TREE_BINFO. Also move code handling FUNCTION_DECL and VAR_DECL
4169 from lto_fixup_state to here.
4170 (lto_fixup_state): Take an lto_fixup_data_t object DATA instead of
4171 just a free-list. Fix up types also. Move decl merging code to
4172 lto_fixup_tree.
4173 (lto_fixup_state_aux): Change AUX to point to an lto_fixup_data_t
4174 object.
4175 (lto_fixup_decls): Use another pointer set to avoid multiple
4176 walking of nodes except for DECLs to be replaced. Pass an
4177 lto_fixup_data_t object to tree-walker.
4178
4179 2008-10-08 Rafael Espindola <espindola@google.com>
4180
4181 * lto-symtab.c (lto_symtab_set_resolution): New.
4182 (lto_symtab_merge_decl): Use lto_symtab_set_resolution and
4183 lto_symtab_get_resolution.
4184 (lto_symtab_prevailing_decl): Return decl for non public decls.
4185 (lto_symtab_get_resolution): New.
4186 * lto.c (lto_fixup_tree, lto_fixup_state): Remove unecessary checks.
4187
4188 2008-10-06 Rafael Espindola <espindola@google.com>
4189
4190 * lto-lang.c: Include cgraph.h.
4191 (input_overwrite_node, input_node, input_edge, input_cgraph_1,
4192 input_cgraph): Moved from lto-cgraph.c.
4193 (LANG_HOOKS_INPUT_CGRAPH): New.
4194
4195 2008-10-03 Rafael Espindola <espindola@google.com>
4196
4197 * lto.c (lto_fixup_tree, lto_fixup_state): Fix the FIXME.
4198
4199 2008-10-03 Rafael Espindola <espindola@google.com>
4200
4201 * lto-symtab.c (lto_symtab_overwrite_decl): Remove. Remove all calls.
4202 (lto_symtab_merge_decl): Update LTO_IDENTIFIER_DECL the reflect the
4203 prevailing definition. Don't mark TREE_NOTHROW differences.
4204 * lto.c (lto_fixup_tree): New.
4205 (lto_fixup_state): New.
4206 (lto_fixup_state_aux): New.
4207 (free_decl): New.
4208 (lto_fixup_decls): New.
4209 (lto_main): Call lto_fixup_decls.
4210
4211 2008-10-02 Ollie Wild <aaw@google.com>
4212
4213 * lang.opt (fltrans): Moved from common.opt. Remove RejectNegative
4214 and Init.
4215 (fwpa): Moved from common.opt. Remove RejectNegative and Init.
4216 * lto-lang.c (lto_post_options): Add validation and fixups for
4217 -fltrans and -fwpa.
4218
4219 2008-10-02 Rafael Espindola <espindola@google.com>
4220
4221 * lto-symtab.c (lto_symtab_merge_var, lto_symtab_merge_fn,
4222 lto_symtab_merge_decl): Return void.
4223 (lto_symtab_prevailing_decl): New.
4224
4225 2008-09-30 Rafael Espindola <espindola@google.com>
4226
4227 * lto-symtab.c (lto_symtab_compatible): Remove the check for already
4228 defined symbols.
4229 (lto_symtab_overwrite_decl): Copy LTO_DECL_RESOLUTION.
4230 (lto_symtab_merge_decl): Store symbol resolution in LTO_DECL_RESOLUTION.
4231 Check for already defined symbols.
4232 * lto-tree.h (lang_decl): Remove dummy and add resolution fields.
4233 (LTO_IDENTIFIER_RESOLUTION): Remove.
4234 (LTO_DECL_RESOLUTION): New.
4235
4236 2008-09-30 Rafael Espindola <espindola@google.com>
4237
4238 * lto.c (lto_read_decls): Use new input_tree signature.
4239
4240 2008-09-26 Doug Kwan <dougkwan@google.com>
4241
4242 * lto.c (lto_main): Call lto_fixup_nothrow_decls to fix up function
4243 bodies affected by exception attribute merging of DECLs.
4244 * lto-symtab.c (lto_symtab_merge_decl): Handle exception attribute
4245 merging.
4246
4247 2008-09-25 Rafael Espindola <espindola@google.com>
4248
4249 * Make-lang.in (PLUGIN_API_H, LTO_TREE_H): New.
4250 (lto/lto-lang.o, lto/lto.o, lto/lto-symtab.o) Use LTO_TREE_H.
4251 * lto-symtab.c (lto_symtab_compatible): New.
4252 (lto_symtab_overwrite_decl): New.
4253 (lto_symtab_merge_decl): Refactor to use the above functions
4254 and the resolution from lang_identifier.
4255 * lto-tree.h: Include plugin-api.h.
4256 (lang_identifier): Add resolution.
4257 (LTO_IDENTIFIER_RESOLUTION): New.
4258
4259 2008-09-25 Ollie Wild <aaw@google.com>
4260
4261 * lang.opt (fltrans-output-list=): New option.
4262 * lto.c (lto_execute_ltrans): Output file names to ltrans_output_list.
4263
4264 2008-09-25 Rafael Espindola <espindola@google.com>
4265
4266 * lto.c (lto_resolution_read): Initialize ret;
4267
4268 2008-09-24 Ollie Wild <aaw@google.com>
4269
4270 * lto.c (sys/mman.h): Move include.
4271 (lto_wpa_write_files): Return a list of written files.
4272 (lto_execute_ltrans): New function.
4273 (lto_main): Call lto_execute_ltrans.
4274 (ltrans-driver): New file.
4275 * lto-lang.c (DEFAULT_LTRANS_DRIVER): New macro.
4276 (DEAULT_LTRANS_DRIVER_LEN): New macro.
4277 (lto_init_options): Initialize ltrans_driver.
4278 (lto_handle_option): Fix incorrect default output value.
4279 * lang.opt (fltrans-driver=): New option.
4280 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): New variable.
4281 (lto.install-common): Add lto/ltrans-driver.
4282
4283 2008-09-24 Rafael Espindola <espindola@google.com>
4284
4285 * Make-lang.in (LTO_OBJS): Add lto/common.o.
4286 (lto/lto.o): Depend on lto/common.h.
4287 (lto/common.o): New.
4288 * lang.opt (resolution): New.
4289 * lto-lang.c (resolution_file_name): New.
4290 (lto_handle_option): Handle OPT_resolution.
4291 * lto-symtab.c (lto_symtab_merge_decl): Add a resolution argument.
4292 (lto_symtab_merge_var,lto_symtab_merge_fn): Add a resolution argument.
4293 pass it to lto_symtab_merge_decl.
4294 * lto.c: Include common.h.
4295 (lto_read_decls): Add resolutions and resolutions_size arguments.
4296 Initialize data_in.globals_resolution and
4297 data_in.globals_resolution_size.
4298 (index_and_symbol_resolution): New.
4299 (lto_resolution_read): New.
4300 (lto_file_read): Add argument resolution_file.
4301 Read resolution.
4302 * lto.h (resolution_file_name): New.
4303
4304 2008-09-23 Rafael Espindola <espindola@google.com>
4305
4306 * common.c: Update description.
4307 * common.h: Update description.
4308
4309 2008-09-23 Rafael Espindola <espindola@google.com>
4310
4311 * common.c: Moved from lto-plugin.
4312 * common.h: Moved from lto-plugin.
4313
4314 2008-09-22 Doug Kwan <dougkwan@google.com>
4315
4316 * lto.c (VEC(bitmap,heap)): Declare.
4317 (lto_materialize_function): Handle WAP mode specially.
4318 (lto_add_inline_clones): New.
4319 (lto_add_all_inlinees): Changle algorithm and to use bitmaps. Also
4320 return a bitmap of inlined decls.
4321 (lto_wpa_write_files): Handle all DECLs brought in by inlining.
4322 (lto_main): Call reset_inline_failed to reset inlining states.
4323 Check call-graph after WPA inlining.
4324 * lto-lang.c (lto_init): Do not clear flag_generate_lto
4325 unconditionally.
4326
4327 2008-09-19 Doug Kwan <dougkwan@google.com>
4328
4329 lto.c (lto_main): Remove unsued wrapper code.
4330 lang-specs.h (@lto): Use lto1_options instead of cc1_options.
4331
4332 2008-09-19 Rafael Espindola <espindola@google.com>
4333
4334 * lto-symtab.c: Include lto-tree-in.h.
4335 * lto-tree.h (lto_symtab_merge_var, lto_symtab_merge_fn): Remove.
4336 * lto.h (lto_symtab_merge_var, lto_symtab_merge_fn): Remove
4337 * Make-lang.in (lto/lto-symtab.o): Add lto-tree-in.h.
4338
4339 2008-09-17 Paolo Bonzini <bonzini@gnu.org>
4340 Rafael Avila de Espindola <espindola@google.com>
4341
4342 * lto-lang.c (COMPOUND_LITERAL_EXPR_DECL_STMT,
4343 COMPOUND_LITERAL_EXPR_DECL): Remove.
4344 (emit_local_var): Remove.
4345 (lto_expand_expr): Remove.
4346 (lto_staticp): Remove.
4347 (LANG_HOOKS_EXPAND_EXPR): Remove.
4348 (LANG_HOOKS_STATICP): Remove.
4349
4350 2008-09-11 Diego Novillo <dnovillo@google.com>
4351
4352 * lto-lang.c: Include except.h and libfuncs.h.
4353 (lto_init_eh): New.
4354 (lto_init): Call it.
4355 Set flag_generate_lto to 0.
4356 * Make-lang.in (lto-lang.o): Add dependency on except.h
4357 and libfuncs.h.
4358
4359 2008-09-09 Bill Maddox <maddox@google.com>
4360
4361 * lto-lang.c: Include header file expr.h.
4362 (COMPOUND_LITERAL_EXPR_DECL_STMT,
4363 COMPOUND_LITERAL_EXPR_DECL): Copied from c-common.h.
4364 (emit_local_var): Copied from c-semantics.c.
4365 (lto_expand_expr, lto_staticp): Copied from c_expand_expr
4366 and c_staticp in c-common.c.
4367 (LANG_HOOKS_EXPAND_EXPR,LANG_HOOKS_STATICP): Redefined.
4368
4369 2008-09-08 Diego Novillo <dnovillo@google.com>
4370
4371 * lto-lang.c (lto_global_bindings_p): Return 1 during
4372 IPA passes.
4373
4374 2008-09-07 Diego Novillo <dnovillo@google.com>
4375
4376 * lto.c: Tidy formatting.
4377
4378 2008-08-04 Bill Maddox <maddox@google.com>
4379
4380 * lto-symtab.c (lto_symtab_merge_decl): Add comment.
4381
4382 2008-09-03 Doug Kwan <dougkwan@google.com>
4383
4384 lto.c (lto_add_all_inlinees): Reset FAILED_REASON of edges to
4385 CIF_OK instead of NULL.
4386
4387 2008-09-02 Diego Novillo <dnovillo@google.com>
4388 Simon Baldwin <simonb@google.com>
4389
4390 * lto-lang.c (lto_type_for_size): Rewrite. Adapt from
4391 c_common_type_for_size.
4392 (lto_type_for_mode): Remove ATTRIBUTE_UNUSED markers.
4393 (lto_init): Call linemap_add.
4394 (signed_and_unsigned_types): Remove.
4395
4396 2008-08-29 Diego Novillo <dnovillo@google.com>
4397
4398 * lto-lang.c (handle_noreturn_attribute): New local function.
4399 (handle_const_attribute): New local function.
4400 (handle_malloc_attribute): New local function.
4401 (handle_pure_attribute): New local function.
4402 (handle_novops_attribute): New local function.
4403 (handle_nonnull_attribute): New local function.
4404 (handle_nothrow_attribute): New local function.
4405 (handle_sentinel_attribute): New local function.
4406 (handle_type_generic_attribute): New local function.
4407 (handle_format_attribute): New local function.
4408 (handle_format_arg_attribute): New local function.
4409 (lto_attribute_table): Declare.
4410 (lto_format_attribute_table): Declare.
4411 (lto_init_attributes): New local function.
4412 (lto_define_builtins): Call it.
4413 Call targetm.init_builtins and build_common_builtin_nodes.
4414 (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Define.
4415 (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Define.
4416
4417 2008-08-28 Diego Novillo <dnovillo@google.com>
4418
4419 * Make-lang.in (lto-lang.o): Replace tree-gimple.h with
4420 $(GIMPLE_H).
4421 (lto-symtab.o): Add dependency on $(GIMPLE_H).
4422 * lto-lang.c: Include gimple.h instead of tree-gimple.h.
4423 * lto-symtab.c: Include gimple.h.
4424 * lto-tree.h (chain_next): Replace GENERIC_NEXT with
4425 TREE_CHAIN.
4426
4427 2008-08-27 Doug Kwan <dougkwan@google.com>
4428
4429 * lto.c (vec.h, bitmap.h, pointer-set.h, ipa-prop.h, ggc.h,
4430 gt-lto-lto.h): New includes.
4431 (lto_materialize_function): Do not read in function body in WPA mode.
4432 Format a line to fit in 80 columns.
4433 (lto_cgraph_node_sets): New garbage collected variable.
4434 (lto_1_to_1_map, lto_add_all_inlinees, lto_wpa_write_files):
4435 New functions.
4436 (lto_main): Initialize bitmap obstack. Add code to handle WPA mode.
4437 * Make-lang.in (LTO_H): Replace filename lto-section-in.h with
4438 variable LTO_SECTION_IN_H.
4439 (lto/lto.o): Include gt-lto-lto-c.h ggc.h ,VEC_H, BITMAP_H,
4440 pointer-set.h and IPA_PROP_H. Also replace filename lto-section-in.h
4441 with variable LTO_SECTION_IN_H.
4442 * config-lang.in (gtfiles): Add lto/lto.c.
4443 * lto-symtab.c (lto_symtab_merge_decl): Set DECL_CONTEXT of
4444 merged DECL_RESULT correctly.
4445
4446 2008-08-26 Bill Maddox <maddox@google.com>
4447
4448 * lto-lang.c Include tree-gimple.h.
4449 (lto_mark_addressable): Call mark_addressable rather than
4450 asserting.
4451 (lto_post_options): Suppress debug info generation.
4452 * Make-lang.in: Add dependency of lto-lang.o on tree-gimple.h.
4453
4454 2008-08-25 Bill Maddox <maddox@google.com>
4455
4456 * lto-symtab.c (lto_symtab_merge_decl): Remove a suspect
4457 assertion and leave an explanatory comment in its place.
4458
4459 2008-08-21 Doug Kwan <dougkwan@google.com>
4460
4461 * lto.c (preload_common_nodes): Call lto_get_common_nodes to get a list
4462 of common nodes instead of computing locallly.
4463 (lto_read_in_decl_state): New.
4464 (lto_read_decls): Change code for udpate in struct lto_decl_header.
4465 Read global and per-function in-decl states.
4466 * Make-lang.in (LTO_H): Update dependency.
4467 (lto/lto.o): Same.
4468 (lto-symtab.c): Merge (revision 139039)
4469 * lto-symtab.c (lto_symtab_merge_decl): Merge DECL_RESULT.
4470
4471 2008-08-21 Rafael Espindola <espindola@google.com>
4472
4473 * config-lang.in (target_libs): New.
4474
4475 2008-08-20 Bill Maddox <maddox@google.com>
4476
4477 * lto.c (current_lto_file): Remove GTY marker from static
4478 variable. Remove include of file gt-lto-lto.h.
4479 * Make-lang.in: Remove dependency of lto/lto.o on
4480 gt-lto-lto.h.
4481 * lto-elf.c (lto_file_close): Removed.
4482 (lto_elf_file_open): Use XCNEW instead of GGC_CNEW to
4483 allocate lto_elf_file object.
4484 (lto_elf_file_close): Free lto_elf_file object after close.
4485 * lto.h (struct lto_file_struct): Remove GTY marker.
4486 * config-lang.in: Remove lto/lto.h and lto/lto.c from
4487 gtfiles.
4488
4489 2008-08-20 Bill Maddox <maddox@google.com>
4490
4491 * lto.c (lto_read_decls): Provide dummy argument to input_tree
4492 to conform to its new signature.
4493 * lto-symtab.c (lto_symtab_merge_decl): Do not invoke ggc_free
4494 on discarded node here, now called in global_vector_fixup.
4495
4496 2008-08-09 Bill Maddox <maddox@google.com>
4497
4498 * lto.c (preload_common_nodes): Verify that fileptr_type_node
4499 has not been set to a front-end-specific value.
4500
4501 2008-08-05 Doug Kwan <dougkwan@google.com>
4502
4503 * Make-lang.in (lto-symtab.o): Add missing dependencies to fix
4504 build breakage.
4505
4506 2008-07-30 Bill Maddox <maddox@google.com>
4507
4508 * lto.c (lto_materialize_function): Call lto_original_decl_name.
4509 Remove obsolete comments.
4510 (lto_read_decls): Remove initialization of deleted field data_in.global.
4511 Tidy up comments.
4512 (lto_main): Remove redundant initialization of section_hash_table.
4513 * lto-elf.c: Removed obsolete comments.
4514 * lto.h: Tidy up comments.
4515 * lto-symtab.c (lto_least_common_multiple): New function.
4516 (lto_symtab_merge_decl): Merge variable alignments in some cases.
4517 Tidy up comments.
4518
4519 2008-07-25 Diego Novillo <dnovillo@google.com>
4520 Bill Maddox <maddox@google.com>
4521
4522 * lto.c: Re-order include files.
4523 Include lto-section-out.h.
4524 (preload_common_nodes): Add debugging output.
4525 Add new local INDEX_TABLE.
4526 Call preload_common_node.
4527 * Make-lang.in (lto.o): Add dependency on lto-section-out.h
4528
4529 2008-07-13 Bill Maddox <maddox@google.com>
4530
4531 * lto.c (lto_read_decls): Cast pointer to const char * to avoid
4532 unwanted scaling during pointer addition.
4533
4534 2008-07-11 Bill Maddox <maddox@google.com>
4535 Diego Novillo <dnovillo@google.com>
4536
4537 * lto.c (lto_read_decls): Fix C++ compatibility warnings.
4538 Make code const-correct.
4539 (lto_file_read): Fix C++ compatibility warnings.
4540 (lto_read_section_data): Fix C++ compatibility warnings.
4541 (lto_get_section_data): Use CONST_CAST to avoid warning when
4542 const pointer passed to free.
4543 * lto-elf.c (lto_elf_build_section_table): Fix C++
4544 compatibility warnings.
4545 (lto_elf_append_data): Fix C++ compatibility warnings. Use CONST_CAST
4546 to avoid warning assigning const pointer to d_buf field of Elf_Data.
4547 (lto_get_current_out_file): Fix C++ compatibility warnings.
4548
4549 2008-07-11 Diego Novillo <dnovillo@google.com>
4550
4551 * Make-lang.in (lto-warn): Define.
4552
4553 2008-07-03 Simon Baldwin <simonb@google.com>
4554
4555 * lto.c (lto_read_decls): Wrapped debug-only data items within #ifdef
4556 LTO_STREAM_DEBUGGING.
4557
4558 2008-06-27 Ollie Wild <aaw@google.com>
4559
4560 * lto-elf.c (lto-section-out.h): New include.
4561 (struct lto_elf_file): Remove bits member. Add scn, shstrtab_stream,
4562 and data members.
4563 (cached_file_attrs): New static variable.
4564 (lto_elf_get_shdr, lto_elf_free_shdr): Remove elf_file parameter.
4565 Use cached_file_attrs for checking bits.
4566 (lto_elf_build_section_table): Remove elf_file argument from
4567 lto_elf_get_shdr and lto_elf_free_shdr calls.
4568 (DEFINE_INIT_SHDR): New macro.
4569 (init_shdr32, init_shdr64): New functions defined via the
4570 DEFINE_INIT_SHDR macro.
4571 (lto_elf_begin_section_with_type): New function.
4572 (lto_elf_begin_section): New function.
4573 (lto_elf_append_data): New function.
4574 (lto_elf_end_section): New function.
4575 (DEFINE_VALIDATE_EHDR): New macro.
4576 (validate_ehdr32, validate_ehdr64): New functions defined via the
4577 DEFINE_VALIDATE_EHDR macro.
4578 (validate_file): New function.
4579 (DEFINE_INIT_EHDR): New macro.
4580 (init_ehdr32, init_ehdr64): New functions defined via the
4581 DEFINE_INIT_EHDR macro.
4582 (init_ehdr): New function.
4583 (lto_elf_file_open): Add support for writable files. Move some
4584 validation logic to validate_file.
4585 (lto_elf_file_close): Add support for writable files. Write file data
4586 and free data blocks.
4587 (current_out_file): New static variable.
4588 (lto_set_current_out_file): New function.
4589 (lto_get_current_out_file): New function.
4590 * lto.c (lto_main): Add writable argument to lto_elf_file_open calls.
4591 Add temporary initialization for testing ELF serialization.
4592 * lto.h (lto-section-out.h): New include.
4593 (struct lto_file_struct): Slight modification to comment.
4594 (lto_elf_file_open): Add writable parameter.
4595 (lto_elf_begin_section): New function declaration.
4596 (lto_elf_append_data): New function declaration.
4597 (lto_elf_end_section): New function declaration.
4598 (lto_set_current_out_file, lto_get_current_out_file): New function
4599 declarations.
4600 * lto-lang.c (LANG_HOOKS_BEGIN_SECTION): Set as lto_elf_begin_section.
4601 (LANG_HOOKS_APPEND_DATA): Set as lto_elf_append_data.
4602 (LANG_HOOKS_END_SECTION): Set as lto_elf_end_section.
4603 * Make-lang.in (LTO_H): Add lto-section-out.h.
4604
4605 2008-06-12 Ollie Wild <aaw@google.com>
4606
4607 * lto.h (struct lto_file_vtable_struct): Remove.
4608 (struct lto_file_struct): Remove vtable member.
4609 * lto-elf.c (lto_file_init): Remove vtable argument.
4610 (lto_elf_map_optional_lto_section): Remove.
4611 (lto_elf_unmap_section): Remove.
4612 (lto_elf_file_vtable): Remove.
4613 (lto_elf_file_open): Remove lto_elf_file_vtable argument from
4614 lto_file_init call.
4615 (lto_elf_find_section_data): Remove.
4616
4617 2008-06-11 Ollie Wild <aaw@google.com>
4618
4619 * lto.c (lto_file_read): Add const qualifier to data variable.
4620
4621 2008-06-11 Diego Novillo <dnovillo@google.com>
4622
4623 Merge from lto-streamber sub-branch.
4624
4625 2008-06-04 Ollie Wild <aaw@google.com>
4626
4627 * lto.c: Remove inclusion of dwarf2.h and dwarf2out.h.
4628 * Make-lang.in (lto.o): Remove dependency on dwarf2.h.
4629
4630 2008-05-28 Bill Maddox <maddox@google.com>
4631
4632 Replace the DWARF reader in the LTO front-end.
4633
4634 * lto.c: Include lto-tree-in.h, lto-tags.h.
4635 (enum DWARF2_class, DW_cl_constant, struct
4636 DWARF2_form_data, struct lto_context,
4637 lto_fd_init, lto_info_fd_init,
4638 lto_abbrev_fd_init, lto_info_fd_close,
4639 lto_file_init, lto_file_close,
4640 lto_file_corrupt_error, lto_abi_mismatch_error,
4641 LTO_CHECK_INT_VAL, LTO_READ_TYPE,
4642 lto_read_uleb128, lto_read_sleb128,
4643 lto_read_initial_length, lto_abbrev_read_attrs,
4644 lto_abbrev_read, lto_abbrev_read_lookup,
4645 lto_read_section_offset,
4646 lto_read_comp_unit_header, find_cu_for_offset,
4647 lto_get_file_name,
4648 lto_resolve_reference,lto_read_form,
4649 attribute_value_as_int,
4650 make_signed_host_wide_int,
4651 attribute_value_as_constant, lto_cache_hash,
4652 lto_cache_eq, lto_cache_store_DIE,
4653 lto_cache_lookup_DIE, lto_find_integral_type,
4654 lto_find_integral_type_1,
4655 LTO_BEGIN_READ_ATTRS_UNCHECKED,
4656 LTO_BEGIN_READ_ATTRS, LTO_END_READ_ATTRS,
4657 lto_unsupported_attr_error, lto_get_identifier,
4658 lto_read_referenced_type_DIE,
4659 lto_read_compile_unit_DIE,
4660 lto_read_array_type_DIE,
4661 lto_read_structure_union_class_type_DIE,
4662 lto_read_enumerator_DIE,
4663 lto_read_enumeration_type_DIE,
4664 lto_read_only_for_child_DIEs,
4665 lto_read_only_for_child_DIEs,
4666 lto_read_member_DIE, lto_read_abbrev,
4667 lto_read_variable_formal_parameter_constant_DIE,
4668 lto_get_body): Removed.
4669 (preload_common_nodes): New function.
4670 (lto_read_decls): Convert for new global streamer.
4671 (lto_materialze_file_data,
4672 lto_read_subroutine_type_subprogram_die,
4673 lto_read_unspecified_parameters_DIE,
4674 lto_read_typedef_DIE,
4675 lto_read_pointer_reference_type_DIE,
4676 lto_read_subrange_type_DIE,
4677 lto_read_base_type_DIE,
4678 lto_read_const_volatile_restrict_type_DIE,
4679 lto_read_namespace_DIE,
4680 lto_read_unspecified_type_DIE, lto_read_DIE,
4681 lto_read_child_DIEs, lto_collect_child_DIEs):
4682 Removed.
4683 (lto_info_read, lto_set_cu_context): Removed.
4684 (lto_file_read): Convert for new global streamer.
4685 (lto_resolve_type_ref, lto_read_DIE_at_ptr,
4686 lto_resolve_var_ref, lto_resolve_fn_ref,
4687 lto_resolve_field_ref, lto_resolve_typedecl_ref,
4688 lto_resolve_namespacedecl_ref): Removed.
4689 (lto_file_init, lto_file_close): Moved to lto-elf.c.
4690 * lto-tree.h (lto_symtab_merge_var,
4691 lto_symtab_mergee_fun): Declare here.
4692 * lto-elf.c (lto_file_init, lto_file_close): Moved from lto.c.
4693 (lto_elf_file_open): Removed code to read DWARF debug sections.
4694 * lto.h (lto_context, DWARF2_attr, DWARF2_abbrev,
4695 DWARF2_CompUnit, lto_die_ptr,
4696 lto_die_cache_entry, lto_fd, lto_info_fd,
4697 lto_abbrev_fd): Removed.
4698 (lto_file): Removed debug_info and debug_abbrev fields.
4699 (lto_ref): Removed.
4700 (lto_file_init, lto_file_close,
4701 lto_resolve_type_ref, lto_resolve_var_ref,
4702 lto_resolve_fn_ref, lto_resolve_field_ref,
4703 lto_resolve_typedecl_ref,
4704 lto_resolve_namespacedecl_ref,
4705 lto_get_file_name): Removed declarations.
4706 (lto_symtab_merge_var, lto_symtab_merge_fn):
4707 Declarations moved to lto-tree.h.
4708 * lto-symtab.c (lto_compatible_attributes_p):
4709 Lobotomize this, as it barfs on "Hello, world!".
4710 * lto-section-out.c: Include lto-tree-out.h.
4711 (lto_hash_global_slot_node,
4712 lto_eq_global_slot_node, preload_common_nodes,
4713 write_global_stream, write_global_references):
4714 New functions.
4715 (produce_asm_for_decls): Convert for new global streamer.
4716 * lto-section-out.h (lto_hash_global_slot_node,
4717 lto_eq_global_slot_node): Declare.
4718
4719 2008-06-07 Kenneth Zadeck <zadeck@naturalbridge.com>
4720 Jan Hubicka <jh@suse.cz>
4721
4722 * lto.c (sys/mman.h, tree-pass.h): New includes.
4723 (lto_materialize_constructors_and_inits,
4724 lto_materialize_function): Keeps length of section.
4725 (lto_materialize_cgraph): Removed.
4726 (lto_read_decls): Initialize fd field.
4727 (lto_file_read): Different return type and removed much code to
4728 lto_main.
4729 (page_mask): New variable.
4730 (lto_read_section_data, get_section_data, free_section_data): New
4731 functions.
4732 (lto_main): Now calls pass manager, sets the hooks so that the ipa
4733 passes can get the section data.
4734
4735 2008-05-27 Kenneth Zadeck <zadeck@naturalbridge.com>
4736
4737 * lto.h (lto_read_decls): Made local.
4738 (lto_input_function_body, lto_input_constructors_and_inits,
4739 lto_input_cgraph): Declarations moved to lto-section-in.h.
4740 * lto-section-in.c: Moved to .. .
4741 * lto-cgraph-in.c: Ditto.
4742 * lto-section-in.h: Ditto.
4743 * lto-function-in.c: Ditto.
4744 * lto-lang.c (lto_handle_option): Added ATTRIBUTE_UNUSED to parms.
4745 (lto_insert_block): Removed.
4746 (LANG_HOOKS_INSERT_BLOCK): Removed.
4747 * Make-lang.in (lto-cgraph-in.o, lto-function-in.o,
4748 lto-section-in.o): Rules moved to lto/Makefile.in.
4749
4750
4751 2008-05-16 Ollie Wild <aaw@google.com>
4752
4753 * lto-lang.c (tree-inline.h): Include.
4754 (lto_post_options): New function.
4755 (LANG_HOOKS_POST_OPTIONS): Define.
4756 * lto-cgraph-in.c (overwrite_node): Set node->global.insns.
4757 * lto-function-in.c (input_bb): Set TREE_BLOCK (stmt).
4758
4759 2008-05-13 Diego Novillo <dnovillo@google.com>
4760
4761 * lto-function-in.c (input_ssa_names): Call
4762 make_ssa_name_fn instead of make_ssa_name.
4763
4764 2008-05-12 Diego Novillo <dnovillo@google.com>
4765
4766 * lto-cgraph-in.c (overwrite_node): Update references to
4767 inline summary fields.
4768 * lto-function-in.c (input_expr_operand): Do not handle
4769 STRUCT_FIELD_TAG.
4770
4771 2008-05-09 Ollie Wild <aaw@google.com>
4772
4773 * lang.opt: New file.
4774 * lto-lang.c (lto_init_options): New function.
4775 (lto_handle_option): New function.
4776 (lto_init): Move initialization of flag_unit_at_a_time to
4777 lto_init_options.
4778 (LANG_HOOKS_INIT_OPTIONS): Define.
4779 (LANG_HOOKS_HANDLE_OPTION): Define.
4780
4781 2008-04-29 Ollie Wild <aaw@google.com>
4782
4783 * lto.c (lto_read_namespace_DIE): New function.
4784 (lto_read_DIE): Add lto_read_namespace_DIE callback. Cache
4785 NAMESPACE_DECL DIE's.
4786 (lto_resolve_namespacedecl_ref): New function.
4787 * lto.h (lto_resolve_namespacedecl_ref): New function.
4788 * lto-section-in.c (lto_read_decls): Read namespace declarations.
4789 * lto-section-in.h (struct lto_file_decl_data): Add namespace_decls
4790 and num_namespace_decls.
4791 * lto-function-in.c (input_expr_operand): Add NAMESPACE_DECL case.
4792 * lto-lang.c (lto_init_ts): New function.
4793 (LANG_HOOKS_INIT_TS): Set as lto_init_ts.
4794
4795 2008-04-16 Ollie Wild <aaw@google.com>
4796
4797 * lto-function-in.c (input_type_ref): Updated function description.
4798
4799 2008-04-16 Ollie Wild <aaw@google.com>
4800
4801 * lto-function-in.c (input_type_ref_1): New function.
4802 (input_type_ref): Split into two functions.
4803 (input_function): Add support for type contexts.
4804
4805 2008-04-16 Ollie Wild <aaw@google.com>
4806
4807 * lto.c (lto_materialize_function): Use DECL_ASSEMBLER_NAME to compute
4808 section name
4809
4810 2008-04-16 Ollie Wild <aaw@google.com>
4811
4812 * lto.c (lto_read_compile_unit_DIE): Add DW_LANG_C_plus_plus to the
4813 list of supported languages.
4814
4815 2008-03-25 Kenneth Zadeck <zadeck@naturalbridge.com>
4816
4817 Merge with mainline @133491.
4818
4819 2008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
4820 Jan Hubicka <jh@suse.cz>
4821
4822 * lto.c (lto_info_fd_init, lto_info_fd_close): Get rid of
4823 fd->unmaterialized_fndecls.
4824 (lto_get_file_name, lto_materialize_cgraph): New function.
4825 (lto_materialize_constructors_and_inits,
4826 lto_materialize_function): Read info directly from elf file.
4827 (lto_file_read): Made local and initialize dictionary so that
4828 other lto sections can be read without reprocessing the elf file.
4829 (lto_main): Read all functions after all files have been processed
4830 for their types, globals and cgraph.
4831 * Make-lang.in (lto.o, lto-cgraph-in.c, lto-section-in): Changed
4832 dependencies.
4833 * lto-elf.c (lto_elf_file): Removed strtab, symtab fields.
4834 (hash_name, eq_name, lto_elf_build_section_table): New functions.
4835 (lto_elf_read_symtab): Removed function.
4836 (lto_elf_file_open): Removed call to lto_elf_read_symtab.
4837 * lto.h (lto_info_fd_struct): Removed unmaterialized_fndecls.
4838 (lto_file_read): Made local.
4839 (lto_get_file_name, lto_elf_build_section_table,
4840 lto_input_cgraph):
4841 New function.
4842 * lto-section-in.c (lto_read_section_data, lto_get_section_data):
4843 New functions.
4844 (lto_read_decls): Get the file name.
4845 * lto-cgraph-in.c: New file.
4846 * lto-function-in.c (tag_to_expr): Stops at LTO_tree_last_tag.
4847 (input_expr_operand, lto_read_body): Set lto_debug_context.tag_names.
4848 (input_labels): Fixed latent sizeof issue.
4849 (input_function): Build stmt array to set call sites into cgraph
4850 edges.
4851 (lto_read_body): Reset cfun->curr_properties.
4852 * lto_section_in.h (lto_section_slot): New structure.
4853 (section_hash_table.lto_file_decl_data): New field.
4854
4855
4856 2008-02-09 Kenneth Zadeck <zadeck@naturalbridge.com>
4857
4858 * lto.c (lto_read_variable_formal_parameter_const): Remove code to
4859 reconstruct static initializers.
4860 (lto_get_body, lto_materialize_function): Add lto_section_type as
4861 a parameter.
4862 (lto_materialize_constructors_and_inits,
4863 lto_materialize_file_data): New function.
4864 (lto_materialize_function,
4865 lto_read_subroutine_type_subprogram_DIE): Renamed unmap_fn_body to
4866 unmap_section and map_fn_body to map_section.
4867 (lto_set_cu_context): Process functions and static inits
4868 differently.
4869 * Make-lang.in (LTO_H, lto/lto-function-in.o,
4870 lto/lto-section-in.o): Update dependencies.
4871 * lto/lto-elf.c (lto_elf_map_optional_lto_section): Add
4872 lto_section_type parameter.
4873 (lto_elf_unmap_fn_body): Renamed to lto_elf_unmap_section.
4874 * lto.h (lto_file_vtable_struct): Removed two of the fields and
4875 renamed the other two so that there is only one map function and
4876 one unmap function and each takes a section type parameter.
4877 (lto_read_function_body): Renamed to lto_input_function_body and
4878 added file_data parameter.
4879 (lto_read_var_init): Removed.
4880 (lto_input_constructors_and_inits): New function.
4881 * lto-section-in.c (lto_read_decls): New function.
4882 * lto-function-in.c (data_in): Moved fields field_decls, fn_decls,
4883 var_decls, type_decls, types to lto_file_decl_data.
4884 (input_type_ref, input_expr_operand, lto_read_body): Get
4885 field_decls, fn_decls, var_decls, type_decls, types from different
4886 structure.
4887 (input_globals, input_constructor, lto_read_var_init): Removed.
4888 (input_constructors_or_inits): New function.
4889 (lto_read_function_body, lto_input_constructors_and_inits):
4890 Renamed to lto_input_function_body and takes file_data parameter.
4891 * lto-section-in.h (lto_file_decl_data): New structure.
4892
4893 2008-01-28 Kenneth Zadeck <zadeck@naturalbridge.com>
4894
4895 * lto-function-in.c (input_globals.c): Changed input type to
4896 lto_function_header.
4897 (input_bb): Removed code to deserialize the stmt number.
4898 (input_function): Renumber all stmts after they are input.
4899 (lto_read_body, lto_read_function_body, lto_read_var_init):
4900 Changed to used new header format and enum section_type.
4901 *lto-lang.c (success): Removed.
4902
4903 2008-01-28 Nathan Froyd <froydnj@codesourcery.com>
4904
4905 * lto-elf.c (lto_elf_lookup_sym): Remove unused function.
4906 (lto_elf_free_sym): Likewise.
4907
4908 * lto-elf.c (lto_elf_read_var_init): Remove unused function.
4909 (lto_elf_build_init): Likewise.
4910
4911 2008-01-14 Kenneth Zadeck <zadeck@naturalbridge.com>
4912
4913 * lto-read.c: Renamed to lto-function-in.c.
4914 (input_1_unsigned): Moved to lto-section-in.c and renamed
4915 lto_input_1_unsigned.
4916 (input_uleb128): Moved to lto-section-in.c and renamed
4917 lto_input_uleb128.
4918 (input_widest_uint_uleb128): Moved to lto-section-in.c and renamed
4919 lto_input_widest_uint_uleb128.
4920 (input_sleb128): Moved to lto-section-in.c and renamed
4921 lto_input_sleb128.
4922 (input_integer): Moved to lto-section-in.c and renamed
4923 lto_input_integer.
4924 (debug_in_fun): Moved to lto-section-in.c and renamed
4925 lto_debug_in_fun.
4926 (input_block): Moved to lto-section-in.h and renamed
4927 lto_input_block.
4928 (input_expr_operand): Fixed to allow lists with more than one
4929 element.
4930 * lto-section-in.h: New file.
4931 * lto-section-in.c: New file with changes from above.
4932 * Make-lang.in (lto-read.o): Renamed lto-function-in.c.
4933 (lto-section-in.o): New rule.
4934
4935 2007-12-29 Nathan Froyd <froydnj@codesourcery.com>
4936
4937 * lto-read.c (input_expr_operand): Mark static and external
4938 VAR_DECLs as needed.
4939
4940 2007-12-29 Nathan Froyd <froydnj@codesourcery.com>
4941
4942 * lto-read.c (input_integer): Use the correct shift amount.
4943
4944 2007-12-29 Nathan Froyd <froydnj@codesourcery.com>
4945
4946 * lto-lang.c (lto_pushdecl): Do nothing instead of aborting.
4947 (LANG_HOOKS_NAME): Define.
4948
4949 2007-12-27 Nathan Froyd <froydnj@codesourcery.com>
4950
4951 * lto.c (lto_find_integral_type): Define as a macro. Rename the
4952 original function to...
4953 (lto_find_integral_type_1): ...this. Consult UNSIGNEDP if we
4954 don't have a base type.
4955 (lto_read_enumeration_type_DIE): Examine the values of the
4956 enumeration to determine whether we can use an unsigned type for
4957 the base type of the enumeration.
4958
4959 2007-12-24 Nathan Froyd <froydnj@codesourcery.com>
4960
4961 * lto.c (lto_read_structure_union_class_type_DIE): Set TYPE_MODE
4962 and TYPE_ALIGN on UNION_TYPEs as soon as possible.
4963
4964 2007-12-22 Nathan Froyd <froydnj@codesourcery.com>
4965
4966 * lto-lang.c (lto_types_compatible_p): New function.
4967 (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
4968
4969 2007-12-22 Nathan Froyd <froydnj@codesourcery.com>
4970 Kenneth Zadeck <zadeck@naturalbridge.com>
4971
4972 * lto-read.c (input_expr_operand): Fixed uninitialize var warning.
4973 (input_local_vars): Read in DECL_INITIAL and context for local
4974 statics that need to be put in unexpanded_vars_list.
4975
4976 2007-12-21 Nathan Froyd <froydnj@codesourcery.com>
4977
4978 * lto-read.c (input_real): Use a separate null-terminated buffer
4979 for calling real_from_string.
4980 (input_expr_operand): If we take the address of a FUNCTION_DECL,
4981 tell cgraph that it's needed.
4982
4983 2007-12-19 Doug Kwan <dougkwan@google.com>
4984
4985 * lto.c (lto_read_base_type_DIE): Handle complex integer types.
4986
4987 2007-12-18 Nathan Froyd <froydnj@codesourcery.com>
4988
4989 * lto.c (lto_read_DIE): Call lto_read_only_for_child_DIEs instead.
4990 (lto_file_read): Reset the members of 'context' every time we read
4991 a toplevel DIE, with special attention to last_param_type.
4992
4993 2007-12-18 Nathan Froyd <froydnj@codesourcery.com>
4994
4995 * lto.c (lto_read_subroutine_type_subprogram_DIE): Initialize
4996 'declaration'. Set the assembler name for non-public functions.
4997
4998 2007-12-17 Kenneth Zadeck <zadeck@naturalbridge.com>
4999
5000 * lto_read.c (data_in.unexpanded_indexes): New array.
5001 (input_local_var): Added code to read in unexpanded_var_list
5002 indexes for variables. Only read in DECL_CHAIN field for
5003 parameters.
5004 (input_local_vars): Added code to rebuild unexpanded_var_list in
5005 order using unexpanded_indexes.
5006 (input_function): Added code to set DECL_CONTEXT for functions.
5007
5008 2007-12-13 Doug Kwan <dougkwan@google.com>
5009
5010 * lto.c (lto_read_pointer_reference_type_DIE): Handle optional name
5011 in pointer and reference types.
5012
5013 2007-12-13 Nathan Froyd <froydnj@codesourcery.com>
5014
5015 * lto-read.c (input_expr_operand): Use DECL_RESULT when reading a
5016 RESULT_DECL.
5017
5018 2007-12-13 Nathan Froyd <froydnj@codesourcery.com>
5019
5020 * lto.c (lto_read_array_type_DIE): Return the cached DIE if we've
5021 already read the DIE.
5022 (lto_get_body): New function, split out from...
5023 (lto_materialize_function): ...here. Call it.
5024 (lto_read_subroutine_type_subprogram_DIE): Call lto_get_body to
5025 determine DECL_EXTERNAL.
5026 * lto-symtab.c (lto_symtab_merge_decl): Merge the DECL_RESULTs of
5027 FUNCTION_DECLs when necessary. Use the type of the actual
5028 function definition if we are unable to easily merge types. Ignore
5029 spurious DECL_MODE mismatches on VAR_DECLs. Merge DECL_MODEs when
5030 necessary.
5031
5032 2007-12-13 Nathan Froyd <froydnj@codesourcery.com>
5033
5034 * lto-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
5035
5036 2007-12-12 Bill Maddox <maddox@google.com>
5037
5038 Revert
5039 2007-12-07 Bill Maddox <maddox@google.com>
5040
5041 * lto.c (lto_str_fd_init): New function.
5042 (lto_str_fd_close): New function.
5043 (lto_file_init): Call lto_str_fd_init.
5044 (lto_file_close): Call lto_str_fd_close.
5045 (lto_str_read): New function. Read debug string table.
5046 (lto_str_lookup): New function. Get string for debug
5047 string table offset.
5048 (lto_read_form): Recognize DW_FORM_strp.
5049 (lto_file_read): Invoke lto_str_read.
5050
5051 * lto-elf.c (lto_elf_file_open): Read raw section data
5052 for the .debug_str section, if present.
5053
5054 * lto.h (struct lto_str_fd_struct): New struct.
5055 (struct lto_file_struct): Added new field DEBUG_STR
5056 to hold the file descriptor for the debug string table.
5057
5058 2007-12-07 Bill Maddox <maddox@google.com>
5059
5060 * lto.c (lto_str_fd_init): New function.
5061 (lto_str_fd_close): New function.
5062 (lto_file_init): Call lto_str_fd_init.
5063 (lto_file_close): Call lto_str_fd_close.
5064 (lto_str_read): New function. Read debug string table.
5065 (lto_str_lookup): New function. Get string for debug
5066 string table offset.
5067 (lto_read_form): Recognize DW_FORM_strp.
5068 (lto_file_read): Invoke lto_str_read.
5069
5070 * lto-elf.c (lto_elf_file_open): Read raw section data
5071 for the .debug_str section, if present.
5072
5073 * lto.h (struct lto_str_fd_struct): New struct.
5074 (struct lto_file_struct): Added new field DEBUG_STR
5075 to hold the file descriptor for the debug string table.
5076
5077 2007-12-07 Nathan Froyd <froydnj@codesourcery.com>
5078
5079 * lto-read.c (input_cfg): Call init_empty_tree_cfg_for_function.
5080 Grow the basic_block_info and label_to_block_map vectors if
5081 necessary. Read in the block chain.
5082
5083 2007-12-06 Nathan Froyd <froydnj@codesourcery.com>
5084
5085 * lto.c (lto_read_DIE): Set TYPE_ALIAS_SET where necessary.
5086
5087 2007-12-06 Nathan Froyd <froydnj@codesourcery.com>
5088
5089 * lto.c (lto_read_form): Add DW_cl_address for DW_AT_const_value.
5090
5091 2007-12-06 Nathan Froyd <froydnj@codesourcery.com>
5092
5093 * lto-read.c (input_expr_operand): Don't check for MTAGs.
5094 (lto_read_body): Don't declare PROP_alias.
5095
5096 2007-12-06 Nathan Froyd <froydnj@codesourcery.com>
5097
5098 * lto-symtab.c (lto_symtab_merge_decl): Handle FUNCTION_DECLs without
5099 argument type information.
5100
5101 2007-12-03 Nathan Froyd <froydnj@codesourcery.com>
5102
5103 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Set
5104 TREE_THIS_VOLATILE if the associated type is a volatile type.
5105 (lto_materialize_function): Remove call to init_ssa_operands.
5106 * lto-read.c (input_expr_operand): Add SSA_NAME_VAR as a referenced
5107 variable when reading an SSA_NAME. Do the same when reading a
5108 RESULT_DECL, a RETURN_EXPR, or an MTAG.
5109 (input_cfg): Call init_ssa_operands.
5110 (input_ssa_names): Set the default def of an SSA_NAME if necessary.
5111 Move call to init_tree_ssa...
5112 (lto_read_body): ...here. Use push_cfun and pop_cfun. Call
5113 add_referenced_var on any variables referenced from the body of the
5114 function. Inform the rest of the compiler we are in SSA form and
5115 inform later passes about the current properties.
5116
5117 2007-11-30 Nathan Froyd <froydnj@codesourcery.com>
5118
5119 * lto.c (lto_materialize_function): Add FIXME.
5120
5121 2007-11-29 Nathan Froyd <froydnj@codesourcery.com>
5122
5123 * lto-lang.c (enum built_in_attribute): New enum.
5124 (flag_no_builtin, flag_no_nonansi_builtin, flag_isoc94, flag_isoc99,
5125 built_in_attributes): New variables.
5126 (def_builtin_1): New function.
5127 (lto_define_builtins): #define DEF_BUILTIN and include builtins.def.
5128
5129 2007-11-28 Nathan Froyd <froydnj@codesourcery.com>
5130
5131 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Set
5132 DECL_SOURCE_LOCATION for debugging purposes.
5133 (lto_read_member_DIE): Set DECL_SOURCE_LOCATION. If we have read a
5134 bitfield, use the type specified by the DIE for TREE_TYPE and defer
5135 laying out the decl until later.
5136 (lto_read_subroutine_type_subprogram_DIE): Compare the function's
5137 name with DECL_ASSEMBLER_NAME. Set DECL_SOURCE_LOCATION and
5138 TREE_ADDRESSABLE.
5139 * lto-read.c (input_expr_operand): Set TREE_ADDRESSABLE on the
5140 operand of an ADDR_EXPR.
5141 * lto-lang.c (enum lto_builtin_type): New enum.
5142 (builtin_type): New typedef.
5143 (builtin_types, string_type_node, const_string_type_node,
5144 wint_type_node, intmax_type_node, uintmax_type_node,
5145 signed_size_type_node): New variables.
5146 (def_fn_type, builtin_type_for_size, lto_define_builtins,
5147 lto_build_c_type_nodes): New functions.
5148 (lto_init): Initialize builtin types.
5149 (lto_set_decl_assembler_name): Let the target machine mangle the
5150 name if the decl is TREE_PUBLIC, otherwise uniquify it.
5151
5152 2007-11-21 Nathan Froyd <froydnj@codesourcery.com>
5153
5154 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Don't
5155 set TREE_ADDRESSABLE. Do set DECL_COMDAT. Set TREE_READONLY if
5156 the type is a constant type. Set the assembler name and inform
5157 the rest of the compiler about the new decl if the decl is not
5158 public.
5159 (lto_read_subroutine_type_subprogram_DIE): Don't check for equivalency
5160 of DECL_ASSEMBLER_NAME when determining if we have a builtin. Don't
5161 try to read in function bodies for functions that already have bodies.
5162 * lto-symtab.c (lto_same_type_p): Check for unbounded array
5163 equivalency.
5164 (lto_symtab_merge_decl): Don't merge decls that aren't TREE_PUBLIC.
5165 Check for whether we matched a builtin function type before calling
5166 lto_same_type_p on the generated type. Permit cases where the
5167 declaration of an array is unbounded, but the definition is bounded.
5168 Don't combine TREE_PUBLIC flags. Copy over DECL_SIZE and
5169 DECL_SIZE_UNIT if necessary.
5170
5171 2007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
5172
5173 * lto-read.c (input_expr_operand): Get types right
5174 for COMPLEX_CST.
5175
5176 2007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
5177
5178 * lto-read.c (make_new_block, input_cfg): Properly set
5179 n_basic_blocks.
5180
5181 2007-11-16 Nathan Froyd <froydnj@codesourcery.com>
5182
5183 * lto.c (lto_read_array_type_DIE): Handle DIEs with DW_AT_GNU_vector
5184 set properly by building a VECTOR_TYPE instead of an ARRAY_TYPE.
5185
5186 2007-11-16 Nathan Froyd <froydnj@codesourcery.com>
5187
5188 * lto.c (lto_read_base_type_DIE): Use make_bitfield_integer_type to
5189 construct the integer type for bitfields.
5190
5191 2007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
5192
5193 * lto-read.c (data_in.current_node_has_loc): Removed.
5194 (input_line_info): Returns true if node needs line set.
5195 (set_line_info): Always sets line if called.
5196 (clear_line_info): Removed reference to current_node_needs_loc.
5197 (input_expr_operand): Keeps track locally if current node needs a loc.
5198 (input_local_var): Added code to handle DECL_INITIAL for
5199 static local vars. Only set loc if necessary.
5200
5201 2007-11-15 Nathan Froyd <froydnj@codesourcery.com>
5202
5203 * lto.c (lto_read_subroutine_type_subprogram_DIE): Fix thinko'd
5204 DECL_CONTEXT.
5205
5206 2007-11-15 Nathan Froyd <froydnj@codesourcery.com>
5207
5208 * lto.c: Include langhooks.h.
5209 (lto_find_integral_type): Rework logic to handle the case where
5210 got_byte_size is true, but the bitsize requested and that of the
5211 base_type doesn't match.
5212 (lto_read_variable_formal_parameter_constant_DIE): Only check for
5213 asm_name if we are creating a VAR_DECL.
5214 (lto_materialize_function): Set DECL_EXTERNAL if we can't find a
5215 definition.
5216 (lto_read_subroutine_type_subprogram_DIE): Check for a builtin
5217 function reference and use the builtin's decl if so. Set the
5218 DECL_CONTEXT of the RESULT_DECL for the function.
5219 * lto-lang.c (registered_builtin_fndecls): New variable.
5220 (lto_getdecls): Return it.
5221 (lto_builtin_function): Chain the new decl onto
5222 registered_builtin_fndecls.
5223
5224 2007-11-15 Kenneth Zadeck <zadeck@naturalbridge.com>
5225
5226 * lto-read.c (process_tree_flags, lto_static_init_local):
5227 Renamed to ADD_CLASS_EXPR_FLAG. ADD_CLASS_DECL_FLAG New Macro.
5228 (input_line_info, clear_line_info): Fixed new line number code.
5229 (input_expr_operand): Added type to SWITCH_EXPR.
5230 (lto_read_body): Properly initialized data_in.
5231 Clear line info when leaving.
5232
5233 2007-11-13 Diego Novillo <dnovillo@google.com>
5234
5235 * lto.c (lto_read_variable_formal_parameter_constant_DIE):
5236 Initialize ARTIFICIAL.
5237 (lto_read_subroutine_type_subprogram_DIE): Initialize
5238 SAVED_SCOPE.
5239 * lto-read.c (set_line_info): Remove ; from calls to
5240 LINEMAP_POSITION_FOR_COLUMN.
5241
5242 2007-11-13 Kenneth Zadeck <zadeck@naturalbridge.com>
5243
5244 * lto-read.c (input_type_ref): Renamed from get_type_ref.
5245 (input_expr_operand, input_local_var): Renamed get_type_ref to
5246 input_type_ref.
5247 (input_expr_operand): Get the types correct for
5248 vector-cst. Get SSA_NAME_DEF_STMT correct for return_exprs.
5249
5250 2007-11-13 Doug Kwan <dougkwan@google.com>
5251
5252 * lto-read.c (input_widest_uint_uleb128): New function.
5253 (input_tree_flags, process_tree_flags, input_line_info,
5254 input_expr_operand, input_local_var, input_phi, input_ssa_names):
5255 Change to use lto_flags_type and BITS_PER_LTO_FLAGS_TYPES instead of
5256 unsigned HOST_WIDE_INT and HOST_BITS_PER_WIDE_INT.
5257 (lto_static_init_local): Add code to assert that lto_flags_type is
5258 wide enough.
5259
5260 2007-11-13 Nathan Froyd <froydnj@codesourcery.com>
5261
5262 * lto.c (lto_read_array_type_DIE): Handle DW_AT_GNU_vector.
5263 (lto_read_subroutine_type_subprogram_DIE): Handle
5264 DW_AT_static_link and DW_AT_specification. Return the
5265 specification if present.
5266 (lto_read_base_type_DIE): Handle DW_ATE_complex_float.
5267
5268 2007-11-13 Nathan Froyd <froydnj@codesourcery.com>
5269
5270 * lto-lang.c: Include target.h.
5271 (registered_builtin_types): New variable.
5272 (lto_type_for_mode): Increase number of modes handled.
5273 (lto_builtin_function): Fix argument list and return the decl.
5274 (lto_register_builtin_type): New function.
5275 (lto_init): Initialize target builtins and language-independent
5276 nodes.
5277 (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define.
5278
5279 2007-11-13 Kenneth Zadeck <zadeck@naturalbridge.com>
5280
5281 * lto-read.c (input_expr_operand): Added code to properly handle
5282 index filed. Added new RANGE_EXPR case.
5283
5284 2007-11-11 Kenneth Zadeck <zadeck@naturalbridge.com>
5285
5286 * lto-read.c (ADD_FUNC_FLAG): Deleted macro.
5287 (data_in): Added current_node_has_loc field.
5288 (input_line_info, set_line_info, clear_line_info): Added a support
5289 for USE_MAPPED_LOCATION and not adding line numbers to nodes that
5290 did not have on on the source side.
5291 (input_expr_operand): Make sure that GIMPLE_MODIFY_STMTS get line
5292 numbers too.
5293
5294 2007-11-09 Doug Kwan <dougkwan@google.com>
5295
5296 * lto-read.c (input_expr_operand): Change type of operand 2 of
5297 BIT_FIELD_REF expression to be bitsizetype instead of sizetype.
5298
5299 2007-11-09 Nathan Froyd <froydnj@codesourcery.com>
5300
5301 * lto.c: Include lto-tree.h. Effect small spaces->tabs cleanup.
5302 (lto_read_variable_formal_parameter_constant_DIE): Transfer bits
5303 from a DW_AT_specification or DW_AT_abstract_origin attribute to
5304 the new decl we are creating. Move informing the middle end about
5305 the new decl to...
5306 (lto_main): ...here. Inform the middle end about global variables
5307 after we have read in all the input files.
5308 * lto-symtab.c (lto_symtab_merge_decl): We really do need to merge
5309 variables with internal linkage, so delete the check for internal
5310 linkage. Combine TREE_PUBLIC flags.
5311
5312 2007-11-08 Nathan Froyd <froydnj@codesourcery.com>
5313
5314 * lto.c (lto_read_subroutine_type_subprogram_DIE): Handle
5315 DW_AT_decl_line.
5316 * lto-symtab.c (lto_symtab_merge_decl): Handle redefinition of a
5317 builtin specially. Move check for attribute compatibility
5318 earlier.
5319
5320 2007-11-07 Nathan Froyd <froydnj@codesourcery.com>
5321
5322 * Make-lang.in (lto/lto.o): Depend on gt-lto-lto.h.
5323 * config-lang.in (gtfiles): Add lto.h and lto.c.
5324 * lto-elf.c: Include ggc.h.
5325 (lto_elf_file_open): Allocate elf_file from GC memory.
5326 * lto.c: Include tree-ssa-operands.h and gt-lto-lto.h
5327 (lto_info_fd_init): Allocate the die_cache and unmaterialized_fndecls
5328 in GC memory.
5329 (lto_info_fd_close): Free unmaterialized_fndecls from GC memory.
5330 (lto_file_close): Free file from GC memory.
5331 (lto_cache_store_DIE): Allocate the new entry in GC memory.
5332 (lto_read_member_DIE): Fix declaration.
5333 (lto_read_subroutine_type_subprogram_DIE): unmaterialized_fndecls lives
5334 in GC memory.
5335 (current_lto_file): New variable.
5336 (lto_main): Use it.
5337 (DWARF2_attr, DWARF2_abbrev, lto_die_ptr, DWARF2_CompUnit,
5338 lto_die_cache_entry): Move to...
5339 * lto.h: ...here and add GTY markers as appropriate. Delete forward
5340 declarations accordingly.
5341 (struct lto_file_struct): Declare.
5342 (lto_file_vtable): Use it instead of lto_file.
5343
5344 2007-11-06 Alon Dayan <alond@il.ibm.com>
5345 Kenneth Zadeck <zadeck@naturalbridge.com>
5346
5347 * lto-read.c (process_flags, lto_static_init_local):
5348 read flags of VAR_DECL and FUNCTION_DECL of size>1.
5349 change global array num_flags_for_code to flags_length_for_code.
5350 (set_line_info): Make decls work in USE_MAPPED_LOCATION mode.
5351
5352 2007-11-05 Nathan Froyd <froydnj@codesourcery.com>
5353
5354 * lto.c (lto_read_structure_union_class_type_DIE): Use proper record
5355 layout functions to compute information about the newly constructed
5356 type.
5357
5358 2007-11-02 Nathan Froyd <froydnj@codesourcery.com>
5359
5360 * lto-read.c (input_expr_operand): Change the LTO_return_expr1
5361 case to use DECL_RESULT if necessary.
5362
5363 2007-11-01 Kenneth Zadeck <zadeck@naturalbridge.com>
5364
5365 * lto-read.c (input_tree_list): Removed.
5366 (input_tree_flags): Added parameter to force flags no matter what
5367 tree code.
5368 (input_expr_operand): Added parameter to input_tree_flags.
5369 Added case for IDENTIFIER_NODE and TREE_LIST. Changed ASM to call
5370 input_expr_operand rather than input_tree_lists.
5371 (input_local_var): Use input_expr_operand to read attributes
5372 rather then input_tree_list.
5373 (input_phi, input_ssa_names): Added parameter to input_tree_flags.
5374
5375 2007-10-31 Nathan Froyd <froydnj@codesourcery.com>
5376
5377 * lto.c (lto_read_typedef_DIE): Fix comment typo.
5378 (lto_resolve_typedecl_ref): Fetch the referred-to type and build a fake
5379 TYPE_DECL for it.
5380 * lto-read.c (lto_read_body): Use correct sizes for calculating
5381 type_decls_offset and types_offset.
5382
5383 2007-10-30 Nathan Froyd <froydnj@codesourcery.com>
5384
5385 * lto-tree.h (union lang_tree_node): Change GTY description to chain
5386 with GENERIC_NEXT.
5387 * config-lang.in (gtfiles): Add lto-lang.c.
5388 * lto-lang.c: Include gt-lto-lto-lang.h.
5389 * Make-lang.in (lto/lto-lang.o): Add dependency on gt-lto-lto-lang.h
5390 (lto/lto-symtab.o): Depend on LTO_H instead of TREE_H.
5391 (lto/lto-read.o): Likewise.
5392
5393 2007-10-29 Kenneth Zadeck <zadeck@naturalbridge.com>
5394
5395 * lto-read.c (data_in): Added type_decls and current_col fields.
5396 (string_slot): New type to hold canonized file name.
5397 (hash_string_slot_node, eq_string_slot_node, canon_file_name,
5398 input_line_info, set_line_info, clear_line_info): New functions.
5399 (file_name_hash_table): New hash table.
5400 (input_local_var, input_labels, input_local_vars_index,
5401 input_local_var, input_local_vars, input_ssa_names): Reorganized parameters.
5402 (input_uleb128): Changed type of byte var.
5403 (input_expr_operand): Large number of changes to get line numbers
5404 correct. Added TYPE_DECL case.
5405 (input_globals): Added code to get TYPE_DECLs processed.
5406 (input_local_var): Added code to process line numbers and
5407 TREE_CHAIN and DECL_CONTEXT.
5408 (input_function, input_constructor): Added call to
5409 clear_line_number.
5410 (lto_static_init_local): Added code to get line numbers correct.
5411 (lto_read_body): Added code to get TYPE_DECLS read and to change
5412 parameters to the calls above that had their parms reorganized.
5413
5414
5415 2007-10-29 Nathan Froyd <froydnj@codesourcery.com>
5416
5417 * lto.h (lto_resolve_typedecl_ref): Declare.
5418 * lto.c (lto_resolve_typedecl_ref): New function.
5419
5420 2007-10-29 Mark Mitchell <mark@codesourcery.com>
5421 Nathan Froyd <froydnj@codesourcery.com>
5422
5423 * lto.c (lto_read_subroutine_type_subprogram_DIE): Read the child
5424 DIEs even if we find an abstract origin for this DIE.
5425
5426 2007-10-29 Nathan Froyd <froydnj@codesourcery.com>
5427
5428 * lto.c (lto_read_subroutine_type_subprogram_DIE): Build the
5429 RESULT_DECL slightly earlier. Only remember the decl for later
5430 if we successfully merge declarations.
5431
5432 2007-10-24 Kenneth Zadeck <zadeck@naturalbridge.com>
5433
5434 * lto-read.c (input_expr_operand): Give label_values the proper
5435 context and provide switch statements with a default type.
5436
5437 2007-10-23 Nathan Froyd <froydnj@codesourcery.com>
5438
5439 * lto-read.c (lto_read_body): Move call to init_ssa_operands...
5440 * lto.c (lto_materialize_function): ...to here.
5441
5442 2007-10-22 Nathan Froyd <froydnj@codesourcery.com>
5443
5444 * lto.h (struct lto_info_fd): Add field unmaterialized_fndecls.
5445 * lto.c (lto_info_fd_init): Initialize it.
5446 (lto_info_fd_close): Free it.
5447 (lto_materialize_function): New function.
5448 (lto_read_subroutine_type_subprogram_DIE): Save the result decl on
5449 unmaterialized_fndecls.
5450 (lto_file_read): Read in all the function bodies after we have read
5451 all of the DWARF info.
5452 * lto-read.c (lto_read_body): Call init_ssa_operands if we are
5453 reading a function body.
5454
5455 2007-10-20 Kenneth Zadeck <zadeck@naturalbridge.com>
5456
5457 * lto-read.c (input_tree_flags): Renamed from input_flags to be
5458 semetric with output_tree_flags. Added call to log flags.
5459 (process_tree_flags): Renamed from process_flags. Fixed a lot of
5460 type issues to make everything consistent with flags being
5461 unsigned HOST_WIDE_INTS.
5462 (input_expr_operand): Added call to
5463 recompute_tree_invariant_for_addr_expr.
5464 (input_local_var): Added debugging for tree_chains. Now calls
5465 input_tree_flags.
5466 (input_phi): Made flags unsigned HOST_WIDE_INT.
5467 (input_ssa_names): Now calls input_tree_flags.
5468 (lto_read_body): Now sets cfun.
5469 (lto_read_function_body): Now sets current_function_pointer.
5470
5471 2007-10-19 Nathan Froyd <froydnj@codesourcery.com>
5472
5473 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Check
5474 definitively whether SPECIFICATION or ABSTRACT_ORIGIN exist before
5475 inspecting fields within.
5476 (lto_read_DIE_at_ptr): Delete check for null result; let callers
5477 handle this appropriately.
5478
5479 2007-10-19 Nathan Froyd <froydnj@codesourcery.com>
5480
5481 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Handle
5482 DW_AT_abstract_origin properly. Ensure that we're not dealing with
5483 both DW_AT_abstract_origin and DW_AT_specification.
5484 (lto_read_subroutine_type_subprogram_DIE): Handle
5485 DW_AT_abstract_origin.
5486 (lto_read_DIE): Use lto_read_only_for_child_DIEs for labels.
5487 (lto_read_DIE_at_ptr): Define as static to match declaration.
5488 Lookup the PTR in the cache before reading it from the file.
5489 (lto_resolve_var_ref): Adjust accordingly.
5490 (lto_resolve_fn_ref): Adjust accordingly. Tweak comment.
5491 (lto_resolve_field_ref): Adjust accordingly. Tweak comment.
5492
5493 2007-10-19 Nathan Froyd <froydnj@codesourcery.com>
5494
5495 * lto.c (lto_read_DIE_at_ptr): New function.
5496 (lto_resolve_var_ref): Use it.
5497 (lto_resolve_fn_ref): Use it.
5498 (lto_resolve_field_ref): Use it.
5499 (lto_read_variable_formal_parameter_constant_DIE): Follow
5500 DW_AT_specification and return the associated decl when appropriate.
5501
5502 2007-10-18 Nathan Froyd <froydnj@codesourcery.com>
5503
5504 * lto-lang.c (lto_type_for_mode): Move after lto_type_for_size.
5505 Implement for scalar integer modes.
5506 (lto_init): Initialize size_type_node.
5507
5508 2007-10-18 Kenneth Zadeck <zadeck@naturalbridge.com>
5509
5510 * lto-read.c (input_expr_operand): Remove ssa name asserts.
5511 (input_local_var): Add chaining for params.
5512 (input_ssa_names): Add cfun parameter.
5513 (input_function): Remove unnecessary else.
5514
5515 2007-10-17 Nathan Froyd <froydnj@codesourcery.com>
5516
5517 * lto.c (lto_read_only_for_child_DIEs): Mark die parameter as unused.
5518 (lto_resolve_var_ref): Use proper types.
5519 (lto_resolve_fn_ref): Likewise.
5520 (lto_resolve_field_ref): Likewise.
5521
5522 2007-10-17 Nathan Froyd <froydnj@codesourcery.com>
5523
5524 * lto-read.c (input_expr_operand): Remove case.
5525
5526 2007-10-17 Nathan Froyd <froydnj@codesourcery.com>
5527
5528 * lto.c (lto_read_only_for_child_DIEs): New function.
5529 (lto_read_DIE): Use it for lexical_block and inlined_subroutine DIEs.
5530 * lto-elf.c (lto_elf_map_lto_section): Remove.
5531 (lto_elf_file_vtable): Use lto_elf_map_optional_lto_section instead.
5532 * lto-read.c (input_expr_operand): Assert that we never read a NULL
5533 SSA_NAME. Add missing case for mechanical codes.
5534 (input_cfg): Use basic_block_info_for_function instead of
5535 basic_block_info.
5536
5537 2007-10-16 Kenneth Zadeck <zadeck@naturalbridge.com>
5538
5539 * lto-read.c (input_sleb128, input_integer): Use proper casts.
5540 (input_list): Renamed input_tree_list and modified to follow same
5541 protocol as lto-function-out.c:output_tree_list.
5542 (input_expr_operand): Make asm operands use input_tree_list.
5543 (input_local_var): Now uses input_tree_list.
5544 (lto_read_body): Change placement for setting context of debug_labels.
5545
5546
5547 2007-10-16 Kenneth Zadeck <zadeck@naturalbridge.com>
5548
5549 * lto-read.c (input_real): Output debugging in proper order.
5550 (input_integer): Compute bit lengths properly.
5551 (input_list): Clean up declaration.
5552 (input_expr_operand): Change calls to input_real to match fix.
5553 Make reading of LTO_bit_field_ref1 match output.
5554 (input_local_var): Make reading of attributes match what is being
5555 written.
5556 (dump_debug_stream): Also print char in hex.
5557 (debug_out_fun): Fix signed unsigned mismatch.
5558
5559 2007-10-10 Nathan Froyd <froydnj@codesourcery.com>
5560
5561 * lto.c (lto_read_form): Handle DW_AT_MIPS_linkage_name and
5562 DW_AT_GNU_vector specially, as they are not contiguous with the
5563 specified set of attribute names. Use class_mask to check for
5564 errors at the end of the function
5565 (lto_resolve_var_ref): Read the DIE if it is not cached.
5566 (lto_resolve_fn_ref): Likewise.
5567 (lto_resolve_field_ref): Likewise.
5568
5569 2007-10-05 Nathan Froyd <froydnj@codesourcery.com>
5570
5571 * lto.c: Include dwarf2out.h.
5572 (lto_cache_store_DIE): Assert that we never change the value.
5573 (LTO_BEGIN_READ_ATTRS): Print an informative error message.
5574 (lto_read_compile_unit_DIE): Handle DW_AT_entry_pc.
5575 (lto_read_array_type_DIE): Don't error on ndims == 0; build a
5576 sensible type instead.
5577 (lto_read_structure_union_class_type_DIE): Store the newly
5578 created type prior to reading the members of the structure to
5579 avoid infinite recursion. Avoid computing types and alignments
5580 for structures whose sizes are unknown.
5581 (lto_read_variable_formal_parameter_const): Handle DW_AT_artificial
5582 and set DECL_ARTIFICIAL accordingly. Ignore DW_AT_abstract_origin,
5583 DW_AT_const_value, and DW_AT_specification.
5584 (lto_read_subroutine_type_subprogram_DIE): Handle DW_AT_declaration.
5585 Return early if we have already constructed the function type.
5586 (lto_read_typedef_DIE): Check to see if the type has been cached
5587 already. Cache the type before reading any children.
5588 (lto_read_const_volatile_restrict_type_DIE): Handle DW_AT_name.
5589 (lto_read_DIE): Unset context->skip_non_parameters around reading
5590 the DIE.
5591 (lto_resolve_fn_ref): Delete trailing whitespace.
5592
5593 2007-09-11 Kenneth Zadeck <zadeck@naturalbridge.com>
5594
5595 * lto-read.c (input_expr_operand): Added type for STRING_CST.
5596
5597 2007-09-10 Nathan Froyd <froydnj@codesourcery.com>
5598
5599 * lto-read.c (lto_read): Set the type of the newly created CALL_EXPR.
5600
5601 2007-09-07 Nathan Froyd <froydnj@codesourcery.com>
5602
5603 * lto-lang.c (signed_and_unsigned_types): New variable.
5604 (lto_type_for_size): Consult signed_and_unsigned_types to find
5605 an approprite type, creating it if necessary.
5606 (lto_set_decl_assembler_name): Add actual method body.
5607
5608 2007-09-06 Jim Blandy <jimb@codesourcery.com>
5609
5610 * lto.c (lto_read_variable_formal_parameter_constant_DIE): If we
5611 can't find a var init for this variable, leave its DECL_INITIAL.
5612 * lto-elf.c (lto_elf_map_optional_lto_section): Renamed from
5613 lto_elf_map_fn_body.
5614 (lto_map_lto_section): New function.
5615 (lto_elf_file_vtable): Use lto_elf_map_lto_section for function
5616 bodies, and lto_elf_map_optional_lto_section for variable
5617 initializers.
5618 (lto_elf_find_section_data): Quietly return NULL if the section is
5619 missing.
5620 (lto_elf_file_open): Check for a NULL from lto_elf_find_section_data.
5621
5622 * lto-elf.c (lto_elf_find_section_data): Remove dead code.
5623
5624 * lto-read.c (lto_read_body): Doc fix.
5625
5626 2007-08-29 Kenneth Zadeck <zadeck@naturalbridge.com>
5627
5628 * lto-read.c (fun_in): Renamed to data_in.
5629 (input_expr_operand, input_local_var, input_string_internal,
5630 input_string, input_real, input_list, get_label_decl,
5631 get_type_ref, input_expr_operand, input_globals, input_labels,
5632 input_local_vars_index, input_local_var, input_local_vars,
5633 input_cfg, input_phi, input_ssa_names, input_bb, ): Renamed fun_in to data_in.
5634 (input_constructor): New function.
5635 (lto_read_function_body): Renamed to lto_read_body and generalized
5636 to handle both functions and constructors.
5637 (lto_read_function_body, lto_read_var_init): New function.
5638
5639
5640 2007-08-28 Kenneth Zadeck <zadeck@naturalbridge.com>
5641
5642 * lto-read.c (input_expr_operand): Assert that there really is a
5643 FUNCTION_DECL.
5644 (input_globals): Removed checks on 0 section.
5645
5646 2007-08-28 Kenneth Zadeck <zadeck@naturalbridge.com>
5647
5648 * lto-read.c (fun_in): Added local_decls_index and
5649 local_decls_index_d.
5650 (input_expr_operand): Changed inputting of PARM_DECLs and VAR_DECLs.
5651 (input_globals): Enabled code to handle FIELD_DECLs.
5652 (input_local_vars_index, input_local_vars): New function.
5653 (input_local_var): Changed to allow locals to be input randomly.
5654 (lto_read_function_body): Added code to input the
5655 local_decls_index and to free various structures.
5656
5657 2007-08-17 Jim Blandy <jimb@codesourcery.com>
5658
5659 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Remove
5660 ATTRIBUTE_UNUSED from 'die' formal.
5661
5662 Use enum LTO_tags where appropriate, instead of 'unsigned int'.
5663 * lto-read.c (input_record_start): Fix return type, type of 'tag'.
5664 (input_list): Fix type of 'tag'.
5665 (input_expr_operand): Fix type of 'tag' argument. Update
5666 declaration. Fix type of 'ctag'. Add default case to switch,
5667 since the type of the switched value is now an enum.
5668 (input_local_vars): Fix type of 'tag'.
5669 (input_bb): Fix type of 'tag' argument.
5670 (input_function): Fix type of 'tag' argument.
5671
5672 2007-08-16 Jim Blandy <jimb@codesourcery.com>
5673
5674 * lto.c (lto_read_member_DIE): Record the tree we create in
5675 fd->die_cache. (Our 'die' argument is no longer unused.)
5676 (lto_resolve_field_ref): New function.
5677 * lto.h (lto_resolve_field_ref): New declaration.
5678
5679 2007-08-15 Jim Blandy <jimb@codesourcery.com>
5680
5681 * lto-read.c (lto_read_var_init): Mark arguments as unused.
5682
5683 2007-08-07 Jim Blandy <jimb@codesourcery.com>
5684
5685 * lto.c (lto_read_form): Complete attr_classes table.
5686 (DWARF2_form_data): Doc fix.
5687
5688 2007-08-05 Mark Mitchell <mark@codesourcery.com>
5689
5690 * lto.h (lto_file_vtable): Remove read_var_init. Add map_var_init
5691 and unmap_var_init.
5692 (lto_read_var_init): Declare.
5693 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Use new
5694 interface for reading variable initializers.
5695 * lto-elf.c (lto_elf_read_var_init): Remove.
5696 (lto_elf_file_vtable): Update initializer.
5697 (lto_elf_read_var_init): Add comment about unused-ness.
5698 * lto-read.c (lto_read_var_init): New.
5699
5700 * lto.c (lto_read_form): Add entry for DW_AT_inline.
5701
5702 2007-08-02 Kenneth Zadeck <zadeck@naturalbridge.com>
5703
5704 * lto-read.c (lto_read_function_body): Moved declaration of fn
5705 outside of ifdef.
5706
5707 2007-08-01 Kenneth Zadeck <zadeck@naturalbridge.com>
5708
5709 * lto-read.c (input_uleb128, input_string_internal, input_real,
5710 input_integer, input_record_start, input_list, get_type_ref,
5711 input_flags, input_expr_operand, input_expr_operand,
5712 input_expr_operand, input_local_vars, input_cfg, input_phi,
5713 input_ssa_names, input_bb, input_function): Added semicolons.
5714
5715
5716 2007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
5717
5718 * lto-read.c (input_globals): Remove debugging.
5719 (input_function): Set DECL_ARGUMENTS.
5720
5721 2007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
5722
5723 * lto-read.c (input_expr_operand): Fixed code for COND_EXEC,
5724 RETURN_EXPR, MODIFY_EXPR and processing of flags.
5725 (input_phi): Made work with operands other than SSA_NAMES and
5726 fixed processing of flags.
5727 (input_ssa_names): Initialize SSA_NAME_DEF_STMT to empty stmt.
5728 (input_flags): New function.
5729 * lto-lang.c (lto_init): Changed state of in_lto_p.
5730
5731
5732 2007-07-24 Mark Mitchell <mark@codesourcery.com>
5733
5734 * lto-tree.h (lto_varargs_cookie): Remove.
5735 * lto.c (lto_context): Add last_parm_type, varargs_p, skip_all,
5736 skip_non_parameters, skip_parameters.
5737 (lto_varargs_cookie): Remove.
5738 (lto_read_variable_formal_parameter_constant_DIE): Keep track of
5739 parameter types.
5740 (lto_read_abbrev): New function.
5741 (lto_read_subroutine_type_subprogram_DIE): Make two passes over
5742 child DIEs.
5743 (lto_read_unspecified_parameters_DIE): Set context->varargs_p.
5744 (lto_read_DIE): Use lto_read_abbrev. Honor skip_* flags.
5745 (lto_file_read): Initialize new context fields.
5746 * lto-lang.c (lto_type_for_mode): Return NULL_TREE.
5747 (lto_unsigned_type): Remove.
5748 (lto_signed_type): Likewise.
5749 (lto_signed_or_unsigned_type): Likewise.
5750 (lto_init): Do not create lto_varargs_cookie.
5751 (LANG_HOOKS_UNSIGNED_TYPE): Do not define.
5752 (LANG_HOOKS_SIGNED_TYPE): Likewise.
5753 (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Likewise.
5754
5755 2007-07-19 Jan Hubicka <jh@suse.cz>
5756
5757 * lto-read.c (lto_read_function_body): Produce empty scope block
5758 to avoid crash.
5759
5760 2007-07-18 Mark Mitchell <mark@codesourcery.com>
5761
5762 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Do not
5763 process local variables.
5764 (lto_read_subroutine_type_subprogram_DIE): Read child DIEs.
5765
5766 2007-07-13 Kenneth Zadeck <zadeck@naturalbridge.com>
5767
5768 * lto-read.c (input_list, input_expr_operand): Added struct
5769 function parameter.
5770 (init_cfg, finalize_cfg): Removed function.
5771 (input_expr_operand): Added SSA_NAME and GIMPLE_MODIFY_STMT cases.
5772 (input_labels, input_local_vars): Now takes input_block parameter rather than
5773 synthsyzing it.
5774 (input_cfg, input_phi, input_ssa_names): New functions.
5775 (input_bb): Now passes in input_blocks. Does not construct cfg
5776 and processes the list of phi functions.
5777 (input_function): Now builds both the cfg and ssa_names table.
5778 (lto_read_function_body): Processes new header fields to construct
5779 streams for the ssa_names and cfg and their debugging.
5780 * lto/lto-lang.c (lto_init): Set in_lto_p.
5781
5782
5783 2007-06-28 Mark Mitchell <mark@codesourcery.com>
5784
5785 * lto.h (lto_file_vtable): Add read_var_init.
5786 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Read
5787 initializers.
5788 (lto_main): Remove bogus asserts.
5789 * lto-elf.c (tm.h): Include it.
5790 (libiberty.y): Likewise.
5791 (lto_elf_file): Add strtab and symtab. Rename
5792 string_table_section_index to sec_strtab.
5793 (lto_elf_file_vtable): Add lto_elf_read_var_init.
5794 (lto_elf_get_shdr): New function.
5795 (lto_elf_free_shdr): Likewise.
5796 (lto_elf_find_section_data): Use them.
5797 (lto_elf_read_symtab): New function.
5798 (lto_elf_lookup_sym): Likewise.
5799 (lto_elf_free_sym): Likewise.
5800 (lto_elf_file_open): Tidy. Call lto_elf_read_symtab.
5801 (lto_elf_built_init): New function.
5802 (lto_elf_read_var_init): Likewise.
5803 * Make-lang.in (lto/lto-elf.o): Depend on $(TM_H).
5804
5805 2007-06-26 Kenneth Zadeck <zadeck@naturalbridge.com>
5806
5807 * lto-read (make_new_block): Initialize the stmt_list.
5808 (lto_static_init_local): Add debugging for missing codes.
5809
5810 2007-06-26 Mark Mitchell <mark@codesourcery.com>
5811
5812 * lto.c (lto_read_subroutine_type_subprogram_DIE): Handle
5813 unprototyped functions.
5814
5815 2007-06-23 Mark Mitchell <mark@codesourcery.com>
5816
5817 * lto.c (lto_read_variable_formal_parameter_constant_DIE):
5818 Handle DW_AT_MIPS_linkage_name.
5819 (lto_read_subroutine_type_subprogram): Likewise. Correct
5820 compilation errors.
5821 (lto_main): Remove incorrect assertions.
5822 * lto-symbtab.c: Build function types out of TREE_LISTs.
5823
5824 * lto-elf.c (<libelf>): Check for HAVE_LIBELF_H.
5825
5826 * Make-lang.in (LTO_OBJS): Depend on attribs.o.
5827
5828 2007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com>
5829
5830 * lto/lto-tree.h (lang_decl, lang_type, language_function): Added
5831 dummy since ggc does not like empty structs.
5832 * lto/lto-elf.c (libelf.h): Changed to libelf/libelf.h.
5833 * lto/lto-read.c (ADD_CLASS_FLAG, ADD_EXPR_FLAG): Changed
5834 expr->common to expr->base.
5835 (make_new_block): Moved stmt_list to proper place.
5836
5837
5838 2007-03-14 Robert Kennedy <jimbob@google.com>
5839
5840 Eliminate use of lang_hooks.set_decl_assembler_name from LTO
5841 * lto.c (lto_read_subroutine_type_subprogram_DIE) Get DECL
5842 assembler name from DWARF.
5843 * lto-lang.c (lto_set_decl_assembler_name) New function.
5844
5845 2006-09-10 Mark Mitchell <mark@codesourcery.com>
5846
5847 * lto.h (lto_file_vtable): New structure.
5848 (lto_file): Add vtable pointer.
5849 (lto_file_init): Add vtable paramter.
5850 (lto_read_function_body): New function.
5851 (lto_symtab_merge_fn): New function.
5852 * lto.c (lto_file_init): Add vtable parameter.
5853 (lto_read_form): Fill in entries for DW_AT_prototyped,
5854 DW_AT_frame_base.
5855 (lto_read_subroutine_type_subprogram_DIE): New function.
5856 (lto_read_DIE): Fill in entries for DW_TAG_subroutine_type and
5857 DW_TAG_subprogram.
5858 * lto-elf.c (lto_elf_vile_vtable): New variable.
5859 (lto_elf_file_open): Pass it to lto_file_init.
5860 (lto_elf_map_fn_body): New function.
5861 (lto_elf_unmap_fn_body): Likewise.
5862 * lto-read.c: New file.
5863 * lto-symtab.c (lto_symtab_merge_fn): New function.
5864 * lto-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define to
5865 tree_rest_of_compilation.
5866 * Make-lang.in (LTO_OBJS): Add lto-read.o
5867 (lto-read.o): New target.
5868
5869 2006-09-03 Mark Mitchell <mark@codesourcery.com>
5870
5871 * lto.c (<inttypes.h>): Don't include it.
5872 (lto_context): Don't typedef it.
5873 (lto_resolve_reference): New function.
5874 (lto_read_form): Use it.
5875 (lto_resolve_type_ref): New function.
5876 (lto_resolve_var_ref): Likewise.
5877 (lto_resolve_fn_ref): Likewise.
5878 * lto.h (<inttypes.h>): Include it.
5879 (lto_context): New type.
5880 (lto_ref): New structure.
5881 (lto_resolve_type_ref): Declare.
5882 (lto_resolve_var_ref): Likewise.
5883 (lto_resolve_fn_ref): Likewise.
5884
5885 2006-08-18 Mark Mitchell <mark@codesourcery.com>
5886
5887 * lang-specs.h: New file.
5888
5889 2006-08-14 Mark Mitchell <mark@codesourcery.com>
5890
5891 * lto.c (lto_info_fd_init): Allocate the DIE cache.
5892 (lto_info_fd_close): Deallocate it.
5893 (lto_die_cache_entry): New structure.
5894 (lto_cache_hash): New function.
5895 (lto_cache_eq): Likewise.
5896 (lto_cache_store_DIE): Likewise.
5897 (lto_cache_lookup_DIE): Likewise.
5898 (lto_read_referenced_type_DIE): Use the cache.
5899 (lto_read_pointer_type_DIE): Robustify.
5900 (lto_read_DIE): Use the cache.
5901 * lto.h (hashtab.h): Include.
5902 (lto_info_fd): Add DIE cache.
5903 * Make-lang.in (LTO_H): New variable.
5904 (lto/lto-lang.o): Use LTO_H.
5905 (lto/lto-elf.o): Likewise.
5906 (lto/lto-symtab.o): Likewise.
5907
5908 2006-07-09 Mark Mitchell <mark@codesourcery.com>
5909
5910 * lto.c (lto_abi_mismatch_error): New function.
5911 (lto_abbrev_read): Initialize num_abbrevs.
5912 (lto_read_form): Specify allowed form classes for
5913 DW_AT_declaration. Adjust for change to lto_set_cu_context.
5914 (lto_read_variable_formal_parameter_constant_DIE): Handle
5915 DW_AT_declaration. Call lto_symtab_merge_var.
5916 (lto_read_pointer_type_DIE): New function.
5917 (lto_read_base_type_DIE): Use build_nonstandard_integer_type. Do
5918 not creat TYPE_DECLs for types that already have them.
5919 (lto_read_DIE): Add lto_read_pointer_type_DIE.
5920 (lto_set_cu_context): Make cu_start point to the header, not the
5921 first DIE.
5922 (lto_file_read): Adjust for change to lto_set_cu_context.
5923 * Make-lang.in (LTO_OBJS): Add lto-symtab.o.
5924 (lto/lto-symtab.o): New rule.
5925 * lto-tree.h (lang_identifier): Add decl field.
5926 (LANG_IDENTIFIER_CAST): New macro.
5927 (LTO_IDENTIFIER_DECL): Likewise.
5928 (lto_symtab_merge_var): Declare.
5929 * lto-symtab.c: New file.
5930
5931 2006-07-02 Daniel Berlin <dberlin@dberlin.org>
5932
5933 * lto.c (lto_context): Add current_cu and info_fd members.
5934 (DWARF2_CompUnit): New structure.
5935 (lto_read_DIE): Take lto_info_fd *.
5936 (lto_read_child_DIEs): Ditto.
5937 (lto_file_corrupt_error): Constify argument.
5938 (lto_set_cu_context): New function
5939 (lto_info_fd_init): Ditto.
5940 (lto_info_fd_close): Ditto.
5941 (lto_file_init): Use lto_info_fd_init.
5942 (lto_file_close): Use lto_info_fd_close.
5943 (lto_read_initial_length): Pass in pointer to header size.
5944 (lto_read_comp_unit_header): Correct cu_length to
5945 real length from beginning of header. Take lto_info_fd * as
5946 argument.
5947 (find_cu_for_offset): New function.
5948 (lto_read_form): Change first argument to lto_info_fd *.
5949 Add FORM_CONTEXT argument.
5950 Handle DW_FORM_ref_addr.
5951 (lto_read_tag_DIE): Change first argument to lto_info_fd *.
5952 (LTO_BEGIN_READ_ATTRS_UNCHECKED): Save old context.
5953 Swap contexts if necessary for form.
5954 (LTO_BEGIN_READ_ATTRS): Cast fd to right type for
5955 lto_file_corrupt_error.
5956 (LTO_END_READ_ATTRS): Swap contexts back if it had changed.
5957 (lto_read_referenced_type_DIE): Change first argument to
5958 lto_info_fd *. Access lto_fd fields through base pointer.
5959 (lto_read_compile_unit_DIE): Change first argument to an
5960 lto_info_fd *.
5961 (lto_read_variable_formal_parameter_constant_DIE): Ditto.
5962 (lto_read_base_type_DIE): Ditto.
5963 (lto_read_child_DIEs): Ditto.
5964 (lto_read_DIE): Ditto. Change type of function pointer.
5965 (lto_info_read): New function.
5966 (lto_set_cu_context): Ditto.
5967 (lto_file_read): Use lto_info_read, walk resulting CU's
5968 (lto_main): Update for lto_info_fd change.
5969 * lto-elf.c (lto_elf_file_open): Cast lto_info_fd to lto_fd where
5970 necessary.
5971 * lto.h (DWARF2_CompUnit): New structure.
5972 (lto_info_fd): Ditto.
5973 (lto_file): Change debug_info to be an lto_info_fd.
5974
5975 2006-06-25 Mark Mitchell <mark@codesourcery.com>
5976
5977 * lto.c (toplev.h): Include it.
5978 (dwarf2.h): Likewise.
5979 (tree.h): Likewise.
5980 (tm.h): Likewise.
5981 (cgraph.h): Likewise.
5982 (ggc.h): Likewise.
5983 (inttypes.h): Likewise.
5984 (DWARF2_attr): New type.
5985 (DWARF2_abbrev): Likewise.
5986 (DWARF2_class): Likewise.
5987 (DWARF2_form_data): Likewise.
5988 (lto_context): Likewise.
5989 (lto_fd_init): New function.
5990 (lto_abbrev_fd_init): Likewise.
5991 (lto_abbrev_fd_close): Likewise.
5992 (lto_file_init): Use them.
5993 (lto_file_close): New function.
5994 (lto_file_corrupt_error): Likewise.
5995 (LTO_CHECK_INT_VAL): New macro.
5996 (lto_check_size_t_val): New function.
5997 (lto_check_int_val): Likewise.
5998 (LTO_READ_TYPE): New macro.
5999 (lto_read_ubyte): New function.
6000 (lto_read_uhalf): Likewise.
6001 (lto_read_uword): Likewise.
6002 (lto_read_uleb128): Likewise.
6003 (lto_read_initial_length): Likewise.
6004 (lto_abbrev_read_attrs): Likewise.
6005 (lto_abbrev_read): Likewise.
6006 (lto_abbrev_lookup): Likewise.
6007 (lto_read_section_offset): Likewise.
6008 (lto_read_comp_unit_header): Likewise.
6009 (lto_read_form): Likewise.
6010 (LTO_BEGIN_READ_ATTRS_UNCHECKED): New macro.
6011 (LTO_BEGIN_READ_ATTRS): Likewise.
6012 (LTO_END_READ_ATTRS): Likewise.
6013 (lto_unsupported_attr_error): New function.
6014 (lto_get_identifier): Likewise.
6015 (lto_read_referenced_type_DIE): Likewise.
6016 (lto_read_compile_unit_DIE): Likewise.
6017 (lto_read_variable_formal_parameter_constant_DIE): Likewise.
6018 (lto_read_base_type_DIE): Likewise.
6019 (lto_read_DIE): Likewise.
6020 (lto_read_child_DIEs): Likewise.
6021 (lto_file_read): Read DIEs.
6022 (lto_main): Ask middle end to emit entities.
6023 * lto-tree.h (lang_identifier): Inherit from tree_identifier.
6024 * lto-elf.c (lto_elf_file_open): Adjust for interface changes.
6025 (lto_elf_file_close): Likewise.
6026 * lto.h (lto_file): Declare.
6027 (DWARF2_abbrev): Likewise.
6028 (lto_fd): New type.
6029 (lto_abbrev_fd): Likewise.
6030 (lto_file): Use new types.
6031 (lto_file_close): Declare.
6032 * lto-lang.c (lto_init): Always use unit-at-a-time mode.
6033
6034 2006-06-18 Mark Mitchell <mark@codesourcery.com>
6035
6036 * lto.h: New file.
6037 * lto.c: New file.
6038 * lto-elf.c: New file.
6039 * lto-lang.c (flags.h): Include it.
6040 (lto.h): Likewise.
6041 (lto_init): New function.
6042 (lto_write_globals): Remove.
6043 (LANG_HOOKS_WRITE_GLOBALS): Define to lhd_do_nothing.
6044 (LANG_HOOKS_INIT): Define.
6045 (LANG_HOOKS_PARSE_FILE): Likewise.
6046 * Make-lang.in (LTO_OBJS): Add lto.o and lto-elf.o.
6047 (LTO_EXE): Link with libelf.
6048 (lto/lto-lang.o): Update dependencies.
6049 (lto/lto.o): New target.
6050 (lto/lto-elf.o): Likewise.
6051
6052 2006-06-12 Mark Mitchell <mark@codesourcery.com>
6053
6054 * config-lang.in: New file.
6055 * Make-lang.in: Likewise.
6056 * lto-tree.h: Likewise.
6057 * lto-lang.c: Likewise.
6058 \f
6059 Copyright (C) 2006-2019 Free Software Foundation, Inc.
6060
6061 Copying and distribution of this file, with or without modification,
6062 are permitted in any medium without royalty provided the copyright
6063 notice and this notice are preserved.