]> gcc.gnu.org Git - gcc.git/blame - gcc/lto/ChangeLog
gcc/testsuite
[gcc.git] / gcc / lto / ChangeLog
CommitLineData
6e2830c3
TS
12014-08-02 Trevor Saunders <tsaunders@mozilla.com>
2
3 * lto-partition.c, lto-partition.h: Use hash_set instead of
4 pointer_set.
5
50de5793
AK
62014-07-31 Andi Kleen <ak@linux.intel.com>
7
8 * lto.c (hash_canonical_type): Use inchash::hash
9 and use inchash::add_expr.
10 (iterative_hash_canonical_type): Dito.
11
f6bcdb5e
RB
122014-07-30 Richard Biener <rguenther@suse.de>
13
14 * lto-streamer.h (lto_write_data): New function.
15 * langhooks.c (lhd_append_data): Do not free block.
16 * lto-section-out.c (lto_write_data): New function writing
17 raw data to the current section.
18 (lto_write_stream): Adjust for langhook semantic change.
19 (lto_destroy_simple_output_block): Write header directly.
20 * lto-opts.c (lto_write_options): Write options directly.
21 * lto-streamer-out.c (produce_asm): Write heaeder directly.
22 (lto_output_toplevel_asms): Likewise.
23 (copy_function_or_variable): Copy data directly.
24 (write_global_references): Output index table directly.
25 (lto_output_decl_state_refs): Likewise.
26 (write_symbol): Write data directly.
27 (produce_symtab): Adjust.
28 (produce_asm_for_decls): Output header and refs directly.
29
56fdfd3e
AK
302014-07-25 Andi Kleen <ak@linux.intel.com>
31
32 * lto.c (hash_canonical_type): Call iterative_hstate_expr.
33
0bd8bb04
AK
342014-07-25 Andi Kleen <ak@linux.intel.com>
35
36 * lto.c (hash_canonical_type): Convert to inchash.
37 (iterative_hash_canonical_type): Dito.
38
6d8eb96b
AK
392014-07-25 Andi Kleen <ak@linux.intel.com>
40
41 * lto.c: Include inchash.h
42
ad115a3c
JH
432014-07-14 Jan Hubicka <hubicka@ucw.cz>
44
45 * lto.c (mentions_vars_p_decl_non_common): Skip
46 DECL_ARGUMENT_FLD.
47 mentions_vars_p_function): Do DECL_ARGUMENTS.
48 (lto_fixup_prevailing_decls): Update.
49
917dd9bf
JH
502014-07-12 Jan Hubicka <hubicka@ucw.cz>
51
52 * lto.c (read_cgraph_and_symbols): Do not push DECL_INIT_IO
53 timevar
54 (materialize_cgraph): Do not push GIMPLE_IN timevar.
55
0b83e688
JH
562014-07-11 Jan Hubicka <hubicka@ucw.cz>
57
58 * lto-partition.c (add_references_to_partition): Use
59 varpool_ctor_useable_for_folding_p.
60 * lto.c (lto_read_in_decl_state): Update sanity check.
61
e55637b7
ML
622014-07-01 Martin Liska <mliska@suse.cz>
63
64 IPA REF alias refactoring
65 * lto-partition.c (add_symbol_to_partition_1): Usage of
66 FOR_EACH_ALIAS added.
67
010f4e27
JH
682014-06-28 Jan Hubicka <hubicka@ucw.cz>
69
70 Revert:
71 * lto.c (lto_copy_fields_not_streamed): New function.
72 (compare_tree_sccs_1): Do not compare fields shared in between type
73 and variant.
74 (lto_read_decls): Fixup types first before inserting into hash.
75
b82fe354
AP
762014-06-28 Andrew Pinski <apinski@cavium.com>
77
78 * lto.c (lto_read_decls): Fix comment in comment.
79
288eeff7
JH
802014-06-28 Jan Hubicka <hubicka@ucw.cz>
81
82 * lto.c (lto_copy_fields_not_streamed): New function.
83 (compare_tree_sccs_1): Do not compare fields shared in between type
84 and variant.
85 (lto_read_decls): Fixup types first before inserting into hash.
86
e01fa630
ML
872014-06-25 Martin Liska <mliska@suse.cz>
88
89 * lto/lto-partition.c (add_references_to_partition): New IPA REF function
90 used.
91 (add_symbol_to_partition_1): Likewise.
92 (lto_balanced_map): Likewise.
93 * lto/lto-symtab.c (lto_cgraph_replace_node): Likewise.
94
aaf8a23e
JH
952014-06-24 Jan Hubicka <hubicka@ucw.cz>
96
97 * lto.c (mentions_vars_p_decl_non_common): Move DECL_VINDEX check to ..
98 (mentions_vars_p_function): ... here.
99 (compare_tree_sccs_1): Update VINDEX checks.
100 (lto_fixup_prevailing_decls): Likewise.
101
1eb68d2d
TS
1022014-06-24 Trevor Saunders <tsaunders@mozilla.com>
103
104 * lto.c (canonical_type_hash_cache): Use hash_map instead of
105 pointer_map.
106
c203e8a7
TS
1072014-06-24 Trevor Saunders <tsaunders@mozilla.com>
108
109 * lto.c: Adjust.
110
714c800f
JH
1112014-06-20 Jan Hubicka <hubicka@ucw.cz>
112
113 * lto-symtab.c (lto_varpool_replace_node): Report TLS model conflicts.
114
569b1784
JH
1152014-06-20 Jan Hubicka <hubicka@ucw.cz>
116
117 * lto.c (compare_tree_sccs_1): Do not compare priorities.
118
56363ffd
JH
1192014-06-15 Jan Hubicka <hubicka@ucw.cz>
120
121 * lto.c (compare_tree_sccs_1): Do not compare DECL_TLS_MODEL.
122
e257a17c
JH
1232014-06-10 Jan Hubicka <hubicka@ucw.cz>
124
125 * lto.c (read_cgraph_and_symbols): Remove unreachable symbols.
126 (do_whole_program_analysis): Use verify_symtab.
127
24d047a3
JH
1282014-06-07 Jan Hubicka <hubicka@ucw.cz>
129
130 * lto.c (mentions_vars_p_decl_with_vis, compare_tree_sccs_1,
131 lto_fixup_prevailing_decls): Skip section names.
132
9b2b7279
AM
1332014-06-02 Andrew MacLeod <amacleod@redhat.com>
134
135 * lto-symtab.c: Include builtins.h.
136
a9243bfc
RB
1372014-05-26 Richard Biener <rguenther@suse.de>
138
139 * lto.c (lto_parse_hex): Use int64_t.
140 (lto_resolution_read): Likewise.
141
fd1e9302
JH
1422014-05-23 Jan Hubicka <hubicka@ucw.cz>
143
144 * lto.c (read_cgraph_and_symbols): Grow ggc memory after streaming.
145
aede2c10
JH
1462014-05-23 Jan Hubicka <hubicka@ucw.cz>
147
148 * lto-symtab.c (lto_symtab_merge_symbols): Update code setting
149 symtab pointer.
150 * lto.c (compare_tree_sccs_1): Do not compare comdat groups.
151
f6a7cffc
TS
1522014-05-22 Thomas Schwinge <thomas@codesourcery.com>
153
154 * lto-lang.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
155 (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
156 (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
157
4000360e
BS
1582012-05-22 Bernd Schmidt <bernds@codesourcery.com>
159
160 * lto-object.c: Include "lto-section-names.h".
161 (LTO_SEGMENT_NAME): Don't define.
162 * lto.c: Include "lto-section-names.h".
163
b9559136
JH
1642014-05-17 Jan Hubicka <hubicka@ucw.cz>
165
166 PR lto/61012
167 * lto-symtab.c (lto_symtab_merge_decls_1): Do not ICE on undefined externals
168 mixed with variables.
169
766090c2
TS
1702014-05-17 Trevor Saunders <tsaunders@mozilla.com>
171
172 * lto-tree.h: Don't use variable_size gty attribute.
173 * lto.c (lto_read_in_decl_state): Adjust.
174 (create_subid_section_table): Likewise.
175 (lto_flatten_files): Likewise.
176 (read_cgraph_and_symbols): Likewise.
177
1d60af08
KZ
1782014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
179 Mike Stump <mikestump@comcast.net>
180 Richard Sandiford <rdsandiford@googlemail.com>
181
182 * lto.c (compare_tree_sccs_1): Use wide-int interfaces.
183 * lto-lang.c (get_nonnull_operand): Likewise.
184
22869a37
RB
1852014-04-28 Richard Biener <rguenther@suse.de>
186
187 PR middle-end/60092
188 * lto-lang.c: Define flag_isoc11.
189
7de90a6c
DM
1902014-04-23 David Malcolm <dmalcolm@redhat.com>
191
192 * lto-partition.c (add_references_to_partition): Update for
193 removal of implicit pointer from the is-a.h API.
194 (add_symbol_to_partition_1): Likewise.
195 (contained_in_symbol): Likewise.
196 (undo_partition): Likewise.
197 (lto_balanced_map): Likewise.
198 (promote_symbol): Likewise.
199 * lto-symtab.c (lto_symtab_merge_symbols_1): Likewise.
200 (lto_symtab_merge_symbols): Likewise.
201 * lto.c (lto_wpa_write_files): Likewise.
202
783dab6b
RB
2032014-04-15 Richard Biener <rguenther@suse.de>
204
205 * lto.c: Include params.h.
206 (do_whole_program_analysis): Switch on flag_lto_partition value,
207 add support for LTO_PARTITION_ONE.
208 * lto-partition.h (lto_balanced_map): Adjust.
209 * lto-partition.c (lto_balanced_map): Get number of desired
210 partitions as argument to support -flto-partition=one.
211
cb90235d
JH
2122014-04-14 Jan Hubicka <hubicka@ucw.cz>
213
214 * lto/lto-symtab.c (lto_cgraph_replace_node): Don't re-merge
215 tp_first_run.
216
bbe281da
JH
2172014-03-19 Jan Hubicka <hubicka@ucw.cz>
218
219 * lto.c: Include ipa-inline.h
220 (do_whole_program_analysis): Free inline summary after partitioning.
221
ce2f49b3
RB
2222014-03-19 Richard Biener <rguenther@suse.de>
223
224 PR middle-end/60553
225 * lto-tree.h (lang_tree_node): For types use TYPE_NEXT_VARIANT
226 instead of TREE_CHAIN as chain_next.
227
e41106fc
RB
2282014-03-19 Richard Biener <rguenther@suse.de>
229
230 * lto.c (lto_wpa_write_files): Move call to
231 lto_promote_cross_file_statics ...
232 (do_whole_program_analysis): ... here, into the partitioning
233 block. Do not ggc_collect after lto_wpa_write_files but
234 for a last time before it.
235
15df2655
JJ
2362014-03-19 Jakub Jelinek <jakub@redhat.com>
237
238 PR lto/60571
239 * lto.c (wait_for_child): Define WCONTINUED if not defined to 0.
240 Fix formatting.
241
415e2e6b
JJ
2422014-03-18 Jakub Jelinek <jakub@redhat.com>
243
244 PR sanitizer/60535
245 * lto-lang.c (lto_init): Add NAME_TYPE for int128_integer_type_node
246 and complex_{float,{,long_}double}_type_node.
247
f42c637e
PM
2482014-03-08 Paulo Matos <paulo@matos-sorge.com>
249
415e2e6b
JJ
250 * lto-lang.c (lto_init): Pass flag_short_double to
251 build_common_tree_nodes.
f42c637e 252
6dab804d
JH
2532014-02-14 Jan Hubicka <hubicka@ucw.cz>
254
255 PR lto/60295
256 * lto.c (stream_out): Avoid parallel streaming with
257 -flto=jobserver until we are able to throttle it down
258 resonably.
259
39434bce
JH
2602014-02-14 Jan Hubicka <hubicka@ucw.cz>
261
262 * lto-partition.c (add_symbol_to_partition_1,
263 undo_partition, lto_balanced_map): Aliases have no
264 defined size.
265 (lto_balanced_map): Do not follow refering variables
266 if they can be optimized out.
267
1966fd99
RB
2682014-02-14 Richard Biener <rguenther@suse.de>
269
270 PR lto/60179
271 * lto.c (compare_tree_sccs_1): Do not compare
272 DECL_FUNCTION_SPECIFIC_TARGET.
273 (lto_read_decls): Re-build DECL_FUNCTION_SPECIFIC_TARGET.
274
283416b3
RB
2752014-02-12 Richard Biener <rguenther@suse.de>
276
277 PR lto/60060
278 * lto-lang.c (lto_write_globals): Do not call
279 wrapup_global_declarations or emit_debug_global_declarations
280 but emit debug info for non-function scope variables
281 directly.
282
b7e85694
JH
2832014-02-06 Jan Hubicka <hubicka@ucw.cz>
284
285 * lto.c (unify_scc): Free CONSTRUCTOR_ELTS.
286
96451279
JH
2872014-02-06 Jan Hubicka <hubicka@ucw.cz>
288
289 PR ipa/59469
290 * lto-partition.c (symbol_class): Move to cgraph.h
291 (get_symbol_class): Move to symtab.c
292 (add_references_to_partition, add_symbol_to_partition_1,
293 lto_max_map, lto_1_to_1_map, lto_balanced_map,
294 lto_promote_cross_file_statics): Update.
295
f300e7b8
JH
2962014-02-05 Jan Hubicka <hubicka@ucw.cz>
297
298 * lto.c (lto_parallelism): New static var.
299 (do_stream_out, wait_for_child, stream_out): New static functions.
300 (lto_wpa_write_files): Add support for parallel streaming.
301 (do_whole_program_analysis): Set parallelism.
302 * lang.opt (fwpa): Add parameter.
303 * lto-lang.c (lto_handle_option): Handle flag_wpa.
304 (lto_init): Update use of flag_wpa.
305 * lto-streamer.h (asm_nodes_output): Declare.
306
f0f91770
RB
3072014-02-05 Richard Biener <rguenther@suse.de>
308
309 * lto.h (lto_global_var_decls): Remove.
310 * lto-lang.c (lto_init): Do not allocate lto_global_var_decls.
311 (lto_write_globals): Do nothing in WPA stage, gather globals from
312 the varpool here ...
313 * lto.c (lto_main): ... not here.
314 (materialize_cgraph): Do not call rest_of_decl_compilation
315 on the empty lto_global_var_decls vector.
316 (lto_global_var_decls): Remove.
317
d665f8dd
JH
3182014-02-04 Jan Hubicka <hubicka@ucw.cz>
319
320 * lto-partition.c (get_symbol_class): Only unforced DECL_ONE_ONLY
321 needs duplicating, not generic COMDAT.
322
c39276b8
RB
3232014-02-04 Richard Biener <rguenther@suse.de>
324
325 PR lto/59723
326 * lto.c (mentions_vars_p): Handle NAMELIST_DECL.
327 (lto_fixup_prevailing_decls): Handle fixing up CONSTRUCTOR values.
328
5f876ae7
JH
3292014-02-04 Jan Hubicka <hubicka@ucw.cz>
330 Markus Trippelsdorf
331
332 PR ipa/59469
333 * lto-symtab.c (lto_cgraph_replace_node, lto_varpool_replace_node):
334 merge force_output and forced_by_abi flags.
335
b72271b9
BI
3362014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
337
338 * lto-lang.c (lto_init): Replaced flag_enable_cilkplus with
339 flag_cilkplus.
340
63124c48
RB
3412014-01-09 Richard Biener <rguenther@suse.de>
342
343 * lto.c (gimple_canonical_types_compatible_p): Fix comment.
344
d05b9920
RB
3452014-01-09 Richard Biener <rguenther@suse.de>
346
347 PR lto/45586
348 * lto.c (hash_canonical_type): Do not hash TREE_ADDRESSABLE,
349 TYPE_ALIGN, TYPE_RESTRICT or TYPE_REF_CAN_ALIAS_ALL.
350 (gimple_canonical_types_compatible_p): Do not compare them either.
351
23a5b65a
RS
3522014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
353
354 Update copyright years
355
2c8326a5
OE
3562013-12-06 Oleg Endo <olegendo@gcc.gnu.org>
357
358 * lto.c: Remove struct tags when referring to class varpool_node.
359 * lto-partition.c: Likewise.
360 * lto-symtab.c: Likewise.
361
e06f9964
JJ
3622013-11-29 Jakub Jelinek <jakub@redhat.com>
363 Richard Biener <rguenther@suse.de>
364
365 PR lto/59326
366 * lto.c (compare_tree_sccs_1): Handle OMP_CLAUSE.
367
c193f58b
JJ
3682013-11-29 Jakub Jelinek <jakub@redhat.com>
369
370 PR lto/59326
371 * lto.c (mentions_vars_p_omp_clause): New function.
372 (mentions_vars_p): Call it for OMP_CLAUSE. Remove break;
373 after return stmts.
374
2fb9a547
AM
3752013-11-22 Andrew MacLeod <amacleod@redhat.com>
376
377 * lto.c: Add required include files from gimple.h.
378 * lto-lang.c: Likewise
379 * lto-object.c: Likewise
380 * lto-partition.c: Likewise
381 * lto-symtab.c: Likewise
382
fec39fa6
TS
3832013-11-18 Trevor Saunders <tsaunders@mozilla.com>
384
385 * lto-partition.c lto-symtab.c lto.c Adjust.
386
d8a2d370
DN
3872013-11-14 Diego Novillo <dnovillo@google.com>
388
389 * lto-lang.c: Include stringpool.h.
390 Include stor-layout.h.
391 * lto-partition.c: Include gcc-symtab.h.
392 * lto.c: Include stor-layout.h.
393
5e20cdc9
DM
3942013-10-31 David Malcolm <dmalcolm@redhat.com>
395
396 Automated part of renaming of symtab_node_base to symtab_node.
397
398 Patch autogenerated by rename_symtab.py from
399 https://github.com/davidmalcolm/gcc-refactoring-scripts
400 revision 58bb219cc090b2f4516a9297d868c245495ee622
401
402 * lto-partition.c (add_symbol_to_partition): Rename
403 symtab_node_base to symtab_node.
404 (get_symbol_class): Likewise.
405 (symbol_partitioned_p): Likewise.
406 (add_references_to_partition): Likewise.
407 (add_symbol_to_partition_1): Likewise.
408 (contained_in_symbol): Likewise.
409 (add_symbol_to_partition): Likewise.
410 (lto_1_to_1_map): Likewise.
411 (lto_max_map): Likewise.
412 (lto_balanced_map): Likewise.
413 (privatize_symbol_name): Likewise.
414 (promote_symbol): Likewise.
415 (may_need_named_section_p): Likewise.
416 (rename_statics): Likewise.
417 (lto_promote_statics_nonwpa): Likewise.
418 * lto-symtab.c (lto_symtab_merge): Likewise.
419 (lto_symtab_resolve_replaceable_p): Likewise.
420 (lto_symtab_symbol_p): Likewise.
421 (lto_symtab_resolve_can_prevail_p): Likewise.
422 (lto_symtab_resolve_symbols): Likewise.
423 (lto_symtab_merge_decls_2): Likewise.
424 (lto_symtab_merge_decls_1): Likewise.
425 (lto_symtab_merge_decls): Likewise.
426 (lto_symtab_merge_symbols_1): Likewise.
427 (lto_symtab_merge_symbols): Likewise.
428 (lto_symtab_prevailing_decl): Likewise.
429 * lto.c (lto_wpa_write_files): Likewise.
430 (read_cgraph_and_symbols): Likewise.
431 (do_whole_program_analysis): Likewise.
432
378cd6b1
DM
4332013-10-30 David Malcolm <dmalcolm@redhat.com>
434
435 * lto-symtab.c (lto_symtab_merge_decls_2): Split symtab_node
436 declarations onto multiple lines to make things easier for
437 rename_symtab.py.
438 (lto_symtab_merge_decls_1): Likewise.
439 (lto_symtab_merge_symbols_1): Likewise.
440
939b37da
BI
4412013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com>
442
443 * Make-lang.in (lto/lto-lang.o): Added cilk.h in dependency list.
444 * lto-lang.c (lto_init): Added a call to cilk_init_builtins if Cilk
445 Plus is enabled.
446
67348ccc
DM
4472013-10-29 David Malcolm <dmalcolm@redhat.com>
448
449 Patch autogenerated by refactor_symtab.py from
450 https://github.com/davidmalcolm/gcc-refactoring-scripts
451 revision 58bb219cc090b2f4516a9297d868c245495ee622
452
453 * lto-partition.c (lto_promote_cross_file_statics): Update for
454 conversion of symtab types to a true class hierarchy.
455 (rename_statics): Likewise.
456 (promote_symbol): Likewise.
457 (privatize_symbol_name): Likewise.
458 (lto_balanced_map): Likewise.
459 (varpool_node_cmp): Likewise.
460 (node_cmp): Likewise.
461 (lto_1_to_1_map): Likewise.
462 (undo_partition): Likewise.
463 (add_symbol_to_partition): Likewise.
464 (contained_in_symbol): Likewise.
465 (add_symbol_to_partition_1): Likewise.
466 (add_references_to_partition): Likewise.
467 (symbol_partitioned_p): Likewise.
468 (get_symbol_class): Likewise.
469 (lto_max_map): Likewise.
470 * lto-symtab.c (lto_symtab_prevailing_decl): Likewise.
471 (lto_symtab_merge_symbols): Likewise.
472 (lto_symtab_merge_symbols_1): Likewise.
473 (lto_symtab_merge_decls): Likewise.
474 (lto_symtab_merge_decls_1): Likewise.
475 (lto_symtab_merge_decls_2): Likewise.
476 (lto_symtab_resolve_symbols): Likewise.
477 (lto_symtab_resolve_can_prevail_p): Likewise.
478 (lto_symtab_symbol_p): Likewise.
479 (lto_symtab_resolve_replaceable_p): Likewise.
480 (lto_symtab_merge): Likewise.
481 (lto_varpool_replace_node): Likewise.
482 (lto_cgraph_replace_node): Likewise.
483 * lto.c (lto_main): Likewise.
484 (do_whole_program_analysis): Likewise.
485 (materialize_cgraph): Likewise.
486 (read_cgraph_and_symbols): Likewise.
487 (cmp_partitions_order): Likewise.
488 (lto_materialize_function): Likewise.
489 (has_analyzed_clone_p): Likewise.
490
8e9055ae
AM
4912013-10-29 Andrew MacLeod <amacleod@redhat.com>
492
493 * lto/lto-object.c: Add gimple.h to include list.
494 * lto/lto-partition.c: Likewise.
495
377d9792
AM
4962013-10-18 Andrew MacLeod <amacleod@redhat.com>
497
498 * lto.c: Remove tree-flow.h from include list.
499
fffda8d7
RB
5002013-10-15 Richard Biener <rguenther@suse.de>
501
502 * lto.c (hash_canonical_type): Split out from ...
503 (iterative_hash_canonical_type): ... here. Register types
504 we recurse to.
505 (gimple_canonical_type_hash): Adjust.
506 (gimple_register_canonical_type_1): Split out from ...
507 (gimple_register_canonical_type): ... here. Cache computed
508 hash value.
509 (lto_register_canonical_types): Split into two modes,
510 clearing and computing TYPE_CANONICAL.
511 (lto_read_decls): Adjust.
512 (read_cgraph_and_symbols): Do two passes over global trees,
513 first clearing then computing TYPE_CANONICAL.
514
1394237e
RB
5152013-10-14 Richard Biener <rguenther@suse.de>
516
517 * lto.c (gimple_canonical_types): Move out-of GC space.
518 (canonical_type_hash_cache): Make a pointer-map.
519 (num_canonical_type_hash_entries, num_canonical_type_hash_queries):
520 New counters.
521 (iterative_hash_canonical_type): Adjust.
522 (read_cgraph_and_symbols): Likewise.
523 (print_lto_report_1): Likewise.
524
0a387eca
RB
5252013-10-14 Richard Biener <rguenther@suse.de>
526
527 * lto.c (gimple_types, type_hash_cache, struct type_pair_d,
528 type_pair_cache, lookup_type_pair, struct sccs, next_dfs_num,
529 gtc_next_dfs_num, compare_type_names_p, gtc_visit,
530 gimple_types_compatible_p_1, gimple_types_compatible_p,
531 visit, iterative_hash_name, struct type_hash_pair,
532 type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash,
533 gimple_type_eq, gimple_register_type, num_not_merged_types,
534 num_not_merged_types_in_same_scc, num_not_merged_types_trees,
535 num_not_merged_types_in_same_scc_trees): Remove old merging code
536 and statistics.
537 (lto_read_decls): Do not run old merging code in parallel.
538 (read_cgraph_and_symbols): Do not init/free old merging
539 data structures.
540 (print_lto_report_1): Do not report differences of old vs. new
541 merging code.
542
83fd5d11
RB
5432013-10-14 Richard Biener <rguenther@suse.de>
544
545 * lto-lang.c (lto_init): Do not re-init canonical types here.
546 (lto_register_canonical_types): Move to ...
547 * lto.c (lto_register_canonical_types): ... here.
548 (gimple_canonical_types, canonical_type_hash_cache,
549 iterative_hash_canonical_type, gimple_canonical_type_hash,
550 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
551 gimple_register_canonical_type): Add canonical type merging machinery
552 moved from gimple.c.
553 (read_cgraph_and_symbols): Init and free canonical type tables
554 here.
555 (print_lto_report_1): Report canonical type table stats here.
556
acf0174b
JJ
5572013-10-11 Jakub Jelinek <jakub@redhat.com>
558
559 * lto-lang.c (DEF_FUNCTION_TYPE_8): Define.
560
7c6fedd2
TT
5612013-09-25 Tom Tromey <tromey@redhat.com>
562
563 * Make-lang.in (LTO_H, LINKER_PLUGIN_API_H, LTO_TREE_H)
564 (lto/lto-lang.o, lto/lto.o, lto/lto-partition.o)
565 (lto/lto-object.o): Remove.
566
35f32ad4
RB
5672013-09-06 Richard Biener <rguenther@suse.de>
568
569 * lto-symtab.c: Move from gcc/
570 * lto.h: Include vec.h.
571 (lto_global_var_decls): Declare.
572 * lto.c (lto_global_var_decls): Move definition here.
573 * Make-lang.in (LTO_OBJS): Add lto-symtab.o.
574 (lto-symtab.o): Add.
575 * config-lang.in (gtfiles): Add lto.h.
576
49322b12
JH
5772013-08-31 Jan Hubicka <jh@suse.cz>
578
579 * lto.c (mentions_vars_p_field_decl, lto_fixup_prevailing_decls):
580 DECL_FIELD_OFFSET can contain an reference to variable.
581
31f1f73b
JH
5822013-08-31 Jan Hubicka <jh@suse.cz>
583
584 * lto.c (tree_with_vars): Turn into vector.
585 (MAYBE_REMEMBER_WITH_VARS): Change to...
586 (CHECK_VAR): ... this one.
587 (CHECK_NO_VAR): New macro.
588 (maybe_remember_with_vars_typed): Turn to ...
589 (mentions_vars_p_typed): ... this one.
590 (maybe_remember_with_vars_common): Turn to ...
591 (mentions_vars_p_comon): ... this one.
592 (maybe_remember_with_vars_decl_minimal): Turn to ...
593 (mentions_vars_p_decl_minmal): ... this one.
594 (maybe_remember_with_vars_decl_common): Turn to ...
595 (mentions_vars_p_decl_common): ... this one.
596 (maybe_remember_with_vars_decl_with_vis): Turn to ...
597 (mentions_vars_p_decl_with_vis): ... this one.
598 (maybe_remember_with_vars_decl_non_common): Turn to ...
599 (mentions_vars_p_decl_non_common): ... this one.
600 (maybe_remember_with_vars_function): Turn to ...
601 (mentions_vars_p_function): ... this one.
602 (maybe_remember_with_vars_field_decl): Turn to ...
603 (mentions_vars_p_field_decl): ... this one.
604 (maybe_remember_with_vars_type): Turn to ...
605 (mentions_vars_p_type): ... this one.
606 (maybe_remember_with_vars_binfo): Turn to ...
607 (mentions_vars_p_binfo): ... this one.
608 (maybe_remember_with_vars_constructor): Turn to ...
609 (mentions_vars_p_constructor): ... this one.
610 (maybe_remember_with_vars_expr): Turn to ...
611 (mentions_vars_p_expr): ... this one.
612 (maybe_remember_with_vars): Turn to ...
613 (mentions_vars_p): ... this one.
614 (lto_read_decls): Update.
615 (LTO_SET_PREVAIL): Do not call function for internal decls.
616 (lto_fixup_prevailing_decls): Update to match mentions_vars_p;
617 check that something was updated.
618 (lto_fixup_state): Do not care about internal decls.
619 (lto_fixup_decls): Update.
620 (read_cgraph_and_symbols): Update.
621
256eefa9
JH
6222013-08-29 Jan Hubicka <jh@suse.cz>
623
624 * lto.c (read_cgraph_and_symbols): Free decl states.
625
0170f33c
JH
6262013-08-29 Jan Hubicka <jh@suse.cz>
627
628 * lto.c (compare_tree_sccs_1): Compare DECL_FINAL_P,
629 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and
630 TYPE_FINAL_P.
631
c01c111b
JH
6322013-08-28 Jan Hubicka <jh@suse.cz>
633
634 * lto.c (compare_tree_sccs_1): Drop DECL_ERROR_ISSUED,
635 DECL_DEFER_OUTPUT and DECL_IN_TEXT_SECTION.
636 (unify_scc): Do checking assert.
637
6a49f3c9
JH
6382013-08-06 Jan Hubicka <jh@suse.cz>
639 Martin Liska <marxin.liska@gmail.com>
640
641 * lto-partition.c (lto_balanced_map): Always base order on
642 source file order.
643
a2e2a668
JH
6442013-08-06 Jan Hubicka <jh@suse.cz>
645
646 * lto.c (lto_materialize_function): Do not read body anymore.
647
815effe1
JH
6482013-08-02 Jan Hubicka <jh@suse.cz>
649
650 * lto.c (lto_materialize_function): Do not push struct function.
651 * lto-partition.c (get_symbol_class): Handle abstracts correctly.
652 (may_need_named_section_p): Even abstract origins may need
653 named section.
654
315f8c0e
DM
6552013-07-30 David Malcolm <dmalcolm@redhat.com>
656
657 * Make-lang.in (lto/lto.o:): Depend on CONTEXT_H and
658 PASS_MANAGER_H.
659
660 * lto.c (do_whole_program_analysis): Update for move of
661 all_regular_ipa_passes from a global to a field of class
662 pass_manager.
663
1aa95df7
OB
6642013-07-21 OndÅ\99ej Bílka <neleai@seznam.cz>
665
666 * lto-partition.c: Fix typos.
667
c525ba9a
JH
6682013-06-20 Jan Hubicka <jh@suse.cz>
669
670 * lto-partition.c (lto_balanced_map): Fix -fno-toplevel-reorder
671 partitioning of variables.
672
7a89ad00
JH
6732013-06-20 Jan Hubicka <jh@suse.cz>
674
675 * lto.c (read_cgraph_and_symbols): Set cgraph state.
676
6a6dac52
JH
6772013-06-19 Jan Hubicka <jh@suse.cz>
678
679 * lto-partition.c (add_references_to_partition): Use
680 ctor_for_folding.
681
ac0511f2
RB
6822013-06-18 Richard Biener <rguenther@suse.de>
683
684 * lto.c (lto_register_var_decl_in_symtab): Pass in cache index
685 and use it.
686 (lto_register_function_decl_in_symtab): Likewise.
687 (cmp_tree): New function.
688 (unify_scc): Instead of using the streamer cache map from entry
689 to cache index match up the two maps we have by sorting them.
690 Adjust calls to lto_register_var_decl_in_symtab and
691 lto_register_function_decl_in_symtab.
692
ee03e71d
RB
6932013-06-17 Richard Biener <rguenther@suse.de>
694
695 * Make-lang.in (lto.o): Add $(DATA_STREAMER_H) dependency.
696 * lto.c: Include data-streamer.h.
697 (lto_read_in_decl_state): Use streamer_tree_cache_get_tree.
698 (gimple_type_leader_entry_s, gimple_type_leader,
699 gimple_lookup_type_leader): Remove.
700 (gtc_visit): Simplify.
701 (gimple_types_compatible_p): Likewise.
702 (gimple_register_type_1): Likewise. Merge into ...
703 (gimple_register_type): ... this. Keep it as legacy for
704 statistics purposes for now.
705 (fixup_integer_cst): Remove.
706 (LTO_FIXUP_TREE, lto_fixup_types, lto_ft_*): Simplify and
707 rename to ...
708 (MAYBE_REMEMBER_WITH_VARS, maybe_remember_with_vars,
709 maybe_remember_with_vars_*): ... these.
710 (uniquify_nodes): Remove.
711 (lto_fixup_prevailing_type): New function.
712 (struct tree_scc, struct tree_scc_hasher): New type and hasher.
713 (tree_scc_hash, tree_scc_hash_obstack): New globals.
714 (num_merged_types, num_prevailing_types, num_not_merged_types,
715 num_not_merged_types_in_same_scc, total_scc_size, num_sccs_read,
716 total_scc_size_merged, num_sccs_merged, num_scc_compares,
717 num_scc_compare_collisions): New global counters.
718 (compare_tree_sccs_1): New function.
719 (compare_tree_sccs): Likewise.
720 (unify_scc): Likewise.
721 (lto_read_decls): Stream in tree SCCs and unify them on the
722 way in. Finalize prevailing SCC tree members.
723 (read_cgraph_and_symbols): Do not initialize or free gimple_type_leader.
724 Allocate and free tree_scc_hash_obstack and tree_scc_hash, do not bother
725 to ggc-collect during merging.
726 (print_lto_report_1): Adjust for new merging code.
727
ca0f62a8
JH
7282013-06-12 Jan Hubicka <jh@suse.cz>
729
730 * lto.c (read_cgraph_and_symbols): Set cgraph into streaming state.
731
bbf9ad07
JH
7322013-06-12 Jan Hubicka <jh@suse.cz>
733
734 * lto.c (register_resolution): Take lto_file_data argument.
735 (lto_register_var_decl_in_symtab,
736 lto_register_function_decl_in_symtab): Update.
737 (read_cgraph_and_symbols): Update resolution_map handling.
738
ecdbd01a 7392013-06-11 Jan Hubicka <jh@suse.cz>
08346abd
JH
740
741 * lto-partition.c (get_symbol_class): Simplify weakref handling.
742 (add_symbol_to_partition_1): Likewise.
743 (contained_in_symbol): Likewise.
744 (lto_balanced_map): Likewise.
745 (rename_statics): Drop weakref.
746
a367df53
RB
7472013-06-05 Richard Biener <rguenther@suse.de>
748
749 * lto.c (num_merged_types): New global variable.
750 (uniquify_nodes): Increase num_merged_types when merging a type.
751 (print_lto_report_1): Output the number of merged types.
752
40a7fe1e
JH
7532013-06-01 Jan Hubicka <jh@suse.cz>
754
755 * lto.c (read_cgraph_and_symbols): Simplify dumping; Replace
756 lto_symtab_merge_cgraph_nodes by lto_symtab_merge_symbols.
757 (do_whole_program_analysis): Update dumping.
758
e70670cf
JH
7592013-05-29 Jan Hubicka <jh@suse.cz>
760
761 * lto.c (has_analyzed_clone_p, lto_materialize_function): Update for new symtab
762 flags.
763 * lto-partition.c (get_symbol_class, lto_balanced_map): Likewise.
764
8ee05051
JH
7652013-05-15 Jan Hubicka <jh@suse.cz>
766
767 * lto-partition.c (privatize_symbol_name): Return true when
768 privatizing happened.
769 (rename_statics): Do not go into infinite loop when privatizing
770 is not needed.
771
427b248d
JM
7722013-05-16 Jason Merrill <jason@redhat.com>
773
774 * Make-lang.in ($(LTO_EXE)): Use link mutex.
775
9de04252
MJ
7762013-05-15 Martin Jambor <mjambor@suse.cz>
777
778 * lto-partition.c (lto_balanced_map): Print symbol order instead
779 of node uids.
780
2d6e4603
JH
7812013-05-15 Jan Hubicka <jh@suse.cz>
782
783 PR lto/57038
784 PR lto/47375
785 * lto-partition.c (get_symbol_class): Fix weakrefs.
786 (lto_balanced_map): Fix weakrefs.
787 (privatize_symbol_name): Remove unnecesary label.
788 (rename_statics): Handle weakrefs as statics.
789
64cfa6c0
JH
7902013-05-09 Jan Hubicka <jh@suse.cz>
791 Richard Biener <rguenther@suse.de>
792
793 * lto.c (lto_register_var_decl_in_symtab): Don't do renaming.
794 (lto_register_var_decl_in_symtab): Likewise.
795 (lto_main): Promote statics.
796 * lto-partition.c (privatize_symbol_name): New function.
797 (promote_symbol): Use it.
798 (may_need_named_section_p): New predicate.
799 (rename_statics): New functions.
800 (lto_promote_cross_file_statics): Simplify; do renaming.
801 (lto_promote_statics_nonwpa): New function.
802 * lto-partition.h (lto_promote_statics_nonwpa): New function.
803
e45cde98
RB
8042013-02-08 Richard Biener <rguenther@suse.de>
805
806 PR lto/56231
807 * lto-lang.c (lto_init): Do not enter a dummy file.
808
6edc3e32
UB
8092013-02-07 Uros Bizjak <ubizjak@gmail.com>
810
811 PR bootstrap/56227
812 * lto.c (lto_resolution_ready): Use %wx instead of
813 HOST_WIDE_INT_PRINT_HEX_PURE in the argument to internal_error.
814
ed73881e
RG
8152013-02-04 Richard Guenther <rguenther@suse.de>
816
817 PR lto/56168
818 * lto.c (read_cgraph_and_symbols): Do not call lto_symtab_merge_decls
819 or lto_fixup_decls at LTRANS time.
820
a19b1432
JH
8212013-01-09 Jan Hubicka <jh@suse.cz>
822
823 PR lto/45375
824 * lto.c (do_whole_program_analysis): Remove unreachable nodes after IPA.
825
49c01f87
L
8262012-12-10 H.J. Lu <hongjiu.lu@intel.com>
827
828 PR lto/55466
829 * lto.c (lto_register_var_decl_in_symtab): Don't record static
830 variables.
831 (lto_main): Record the global variables if WPA isn't enabled.
832
6e1aa848
DN
8332012-11-20 Diego Novillo <dnovillo@google.com>
834 Jakub Jelinek <jakub@redhat.com>
835
836 * lto.c: Replace all vec<T, A>() initializers with vNULL.
837
9771b263
DN
8382012-11-16 Diego Novillo <dnovillo@google.com>
839
840 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
841
842 * lto-lang.c: Use new vec API in vec.h.
843 * lto-partition.c: Likewise.
844 * lto-partition.h: Likewise.
845 * lto.c: Likewise.
846
24551b9c
LC
8472012-10-31 Lawrence Crowl <crowl@google.com>
848
849 * lto.c (lto_wpa_write_files): Change symtab checking to a checked
850 down-cast via dyn_cast.
851 * lto-partition.c (add_symbol_to_partition_1): Likewise.
852 (undo_partition): Likewise.
853 (lto_balanced_map): Likewise.
854 (get_symbol_class): Likewise and via is_a.
855 (lto_balanced_map): Change symtab checking to is_a.
856
aec06f6f
RB
8572012-10-12 Richard Biener <rguenther@suse.de>
858
859 PR lto/54898
860 * lto.c (gimple_types_compatible_p_1): Also compare
861 TYPE_MAIN_VARIANT.
862 (iterative_hash_gimple_type): Also hash TYPE_MAIN_VARIANT.
863
0b8c30f9
TB
8642012-10-09 Tobias Burnus <burnus@net-b.de>
865
866 * lto-lang.c (lto_register_builtin_type): Avoid useless
867 decl creation.
868 * lto-object.c (lto_obj_file_open, lto_obj_file_open): Free memory.
869
da3202a8
TB
8702012-10-08 Tobias Burnus <burnus@net-b.de>
871
872 * lto.c (lto_wpa_write_files, read_cgraph_and_symbols):
873 Free lto_file struct after closing the file.
874
2512a443
JH
8752012-10-08 Jan Hubicka <jh@suse.cz>
876
877 * lto/lto.c (remember_with_vars): Also fixup INTEGER_CST.
878 (fixup_integer_cst): New functoin.
879 (lto_ft_type): Fixup BASETYPE of methods and offsets.
880
e75f8f79
JH
8812012-10-07 Jan Hubicka <jh@suse.cz>
882
883 * lto.c (read_cgraph_and_symbols): Release type merging hash early;
884 release input encoders.
885 * lto-partition.c (new_partition): Update for new lto_symtab_encoder_new.
886
46591697
JH
8872012-10-06 Jan Hubicka <jh@suse.cz>
888
889 PR lto/54790
890 * lto.c (resolution_map): New static var.
891 (register_resolution): New function.
892 (lto_register_var_decl_in_symtab): Use it.
893 (read_cgraph_and_symbols): Copy resolutions into the symtab.
894
af16bc76
MJ
8952012-09-20 Martin Jambor <mjambor@suse.cz>
896
897 * lto.c (lto_materialize_function): Call push_struct_function and
898 pop_cfun.
899
5368224f
DC
9002012-09-19 Dehao Chen <dehao@google.com>
901
902 * lto/lto.c (lto_fixup_prevailing_decls): Remove tree.exp.block field.
903
b5493fb2
JH
9042012-09-19 Jan Hubicka <jh@suse.cz>
905
906 * lto.c (lto_materialize_function): Update confused comment.
907 (read_cgraph_and_symbols): Do not free symtab.
908
c3c445e1
JH
9092012-09-12 Jan Hubicka <jh@suse.cz>
910
911 * lto.c (do_whole_program_analysis): Care timevars, statistics and
912 AUX pointer cleaning. Add max partitioning.
913 * lto-partition.c (enum symbol_class): New.
914 (get_symbol_class): New function.
915 (symbol_partitioned_p): New function.
916 (add_references_to_partition): Remove.
917 (add_aliases_to_partition): Remove.
918 (add_cgraph_node_to_partition_1): Remove.
919 (add_cgraph_node_to_partition): Remove.
920 (add_symbol_to_partition): New function.
921 (add_symbol_to_partition_1): New function.
922 (contained_in_symbol): New function.
923 (partition_cgraph_node_p): Remove.
924 (partition_varpool_node_p): Remove.
925 (partition_symbol_p): Remove.
926 (lto_1_to_1_map): Cleanup.
927 (lto_max_map): New.
928 (lto_balanced_map): Update.
929 (lto_promote_cross_file_statics): Update.
930 * lto-partition.h (lto_max_map): Declare.
931 * timevar.def (TV_WHOPR_PARTITIONING): New timevar.
932
b5c7cdfb
JH
9332012-09-11 Jan Hubicka <jh@suse.cz>
934
935 PR lto/54312
936 * lto.c (uniquify_nodes): Remove quadratic loop checking if the
937 type is variant leader.
938
b29402f0
RG
9392012-09-11 Richard Guenther <rguenther@suse.de>
940
941 * lto.c (enum gtc_mode): Remove.
942 (struct type_pair_d): Adjust.
943 (lookup_type_pair): Likewise.
944 (gimple_type_leader): Do not mark as deletable.
945 (gimple_lookup_type_leader): Adjust.
946 (gtc_visit): Likewise.
947 (gimple_types_compatible_p_1): Likewise.
948 (gimple_types_compatible_p): Likewise.
949 (gimple_type_hash): Likewise.
950 (gimple_register_type): Likewise.
951 (read_cgraph_and_symbols): Manage lifetime of tables
952 here.
953
b8f4e58f
RG
9542012-09-11 Richard Guenther <rguenther@suse.de>
955
956 * lto.c (gimple_types, type_hash_cache, enum gtc_mode,
957 struct type_pair_d, lookup_type_pair, struct sccs,
958 next_dfs_num, gtc_next_dfs_num, struct gimple_type_leader_entry_s,
959 gimple_type_leader, gimple_lookup_type_leader, compare_type_names_p,
960 gtc_visit, gimple_types_compatible_p_1, gimple_types_compatible_p,
961 visit, iterative_hash_name, struct type_hash_pair,
962 type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash,
963 gimple_type_eq, gimple_register_type_1, gimple_register_type):
964 Move here from gimple.c
965 (read_cgraph_and_symbols): Free hash tables here.
966 (print_lto_report_1): New function wrapping print_lto_report.
967 (do_whole_program_analysis): Call it.
968 (lto_main): Likewise.
969
1cdbb3f9
JH
9702012-09-10 Jan Hubicka <jh@suse.cz>
971
972 * lto-partition.c (partition_symbol_p): Forward declare.
973 (add_references_to_partition): Reimplement using partition_symbol_p.
974 (add_aliases_to_partition): Break out from add_references_to_partition;
975 reimplement using partition_symbol_p.
976 (add_cgraph_node_to_partition_1): Handle callees using partition_symbol_p;
977 add sanity checks.
978 (add_varpool_node_to_partition): Use add_aliases_to_partition.
979 (partition_varpool_node_p): Do not special case aliases.
980
b4661bfe
JH
9812012-08-12 Jan Hubicka <jh@suse.cz>
982
983 * lto.c (lto_wpa_write_files): Do not delete partition encoder;
984 it is deleted after streaming.
985 * lto-partition.c (partition_symbol_p): New function.
986 (promote_var, promote_fn): Remove.
987 (promote_symbol): New function.
988 (lto_promote_cross_file_statics): First compute boundaries; rewrite
989 to lookup the actual boundaries instead of computing them ad-hoc.
990
7b99cca4
JH
9912012-08-12 Jan Hubicka <jh@suse.cz>
992
993 Replace cgraph_node_set and varpool_node_set by symtab_node_encoder
994 in partitioning.
995 * lto-partition.h (ltrans_partition_def): Replace cgraph_set and varpool_set
996 by encoder.
997 * lto-partition.c (new_partition): Update.
998 * lto.c (cmp_partitions_order): Update.
999 (lto_wpa_write_files): Update.
1000 (free_ltrans_partitions): Update.
1001 (add_references_to_partition): Update.
1002 (add_cgraph_node_to_partition_1): Update.
1003 (add_cgraph_node_to_partition): Update.
1004 (add_varpool_node_to_partition): Update.
1005 (undo_partition): Update.
1006 (lto_balanced_map): Update.
1007 (set_referenced_from_other_partition_p, set_reachable_from_other_partition_p,
1008 set_referenced_from_this_partition_p): Update.
1009 (lto_promote_cross_file_statics): Update.
1010
f27c1867
JH
10112012-08-12 Jan Hubicka <jh@suse.cz>
1012
1013 * lto-partition.c (set_referenced_from_other_partition_p,
1014 set_reachable_from_other_partition_p, set_referenced_from_this_partition_p):
1015 New functions.
1016 (lto_promote_cross_file_statics): Use them.
1017
ab96cc5b
JH
10182012-07-24 Jan Hubicka <jh@suse.cz>
1019
1020 * lto.c (read_cgraph_and_symbols): Use input_symtab.
1021
0229aee9
UB
10222012-07-24 Uros Bizjak <ubizjak@gmail.com>
1023
1024 * lto-tree.h (lang_decl): Add variable_size GTY option.
1025
7ee2468b
SB
10262012-07-16 Steven Bosscher <steven@gcc.gnu.org>
1027
1028 * lto.c: Do not include timevar.h.
1029 * Make-lang.in: Fix dependencies.
1030
a910399d
LC
10312012-06-18 Lawrence Crowl <crowl@google.com>
1032
1033 * lto.c (do_whole_program_analysis): Rename use of TV_PHASE_CGRAPH to
1034 TV_PHASE_OPT_GEN. Use new timevar TV_PHASE_STREAM_OUT around the call
1035 to lto_wpa_write_files.
1036 (lto_main): Rename use of TV_PHASE_CGRAPH to TV_PHASE_OPT_GEN. Move
1037 start of TV_PHASE_OPT_GEN to include call to materialize_cgraph. Use
1038 TV_PHASE_SETUP for the call to lto_init. Use new timevar
1039 TV_PHASE_STREAM_IN around the call to read_cgraph_and_symbols.
1040 Turn TV_PHASE_PARSING off then back on again, because LTO is pretending
1041 to be a front end, but is not one.
1042
877ab5e9
JH
10432012-05-18 Jan Hubicka <jh@suse.cz>
1044
1045 * lto.c (lto_materialize_constructors_and_inits): Remove.
1046 (read_cgraph_and_symbols): Remove handling of alias pairs.
1047
6649df51
JH
10482012-05-17 Jan Hubicka <jh@suse.cz>
1049
1050 * lto-partition.c (add_references_to_partition): Handle external vars.
1051 (partition_varpool_node_p): Likewise.
1052 (lto_promote_cross_file_statics): Do not promote externals.
1053
d1ede5f4
BS
10542012-05-14 Bernd Schmidt <bernds@codesourcery.com>
1055
1056 * lto-lang.c (handle_fnspec_attribute): New static function.
1057 (lto_attribute_table): Add "fn spec".
1058 (DEF_ATTR_STRING): Define and undefine along with the other macros.
1059
0d6bf48c
JH
10602012-05-04 Jan Hubicka <jh@suse.cz>
1061
1062 * lto.c (do_whole_program_analysis): Set timevars correctly.
1063 (lto_main): Likewise.
d1ede5f4 1064
1d67dde8
RB
10652012-05-04 Richard Guenther <rguenther@suse.de>
1066
1067 * lang.opt (fwpa): Do not mark as Optimization.
1068 (fltrans): Likewise.
1069
65d630d4
JH
10702012-04-30 Jan Hubicka <jh@suse.cz>
1071
1072 * lto.c (lto_main): Use compile ().
1d67dde8
RB
1073 * lto-partition.c (partition_cgraph_node_p): Use
1074 symtab_used_from_object_file_p.
65d630d4
JH
1075 (partition_varpool_node_p): Likewise.
1076
ead84f73
JH
10772012-04-20 Jan Hubicka <jh@suse.cz>
1078
1079 * lto-partition.c (partition_cgraph_node_p): Use force_output.
1080
5932a4d4
JH
10812012-04-18 Jan Hubicka <jh@suse.cz>
1082
1083 * lto-partition.c (add_references_to_partition, lto_balanced_map):
1084 Update for new ipa-ref API.
1085
65c70e6b
JH
10862012-04-16 Jan Hubicka <jh@suse.cz>
1087
1088 * lto.c (read_cgraph_and_symbols): Use FOR_EACH
1089 walkers to walk cgraph and varpool.
1090 (materialize_cgraph): Likewise.
1091 * lto-partition.c (lto_1_to_1_map): Likewise.
1092 (lto_balanced_map): Likewise.
1093 (lto_promote_cross_file_statics): Likewise.
1094
960bfb69
JH
10952012-04-14 Jan Hubicka <jh@suse.cz>
1096
1097 * lto.c: Update field referenced for new cgraph/varpool layout.
1098 * lto-partition.c: Likewise.
1099
a66dc285
JH
11002012-04-11 Jan Hubicka <jh@suse.cz>
1101
1102 * lto.c: Update copyright; remove params.h, ipa-inline.h
1103 and ipa-utils.h inlines; inline lto-partition.h
1104 (ltrans_partition_def, ltrans_partition, add_cgraph_node_to_partition,
1105 add_varpool_node_to_partition, new_partition, free_ltrans_partitions,
1106 add_references_to_partition, add_cgraph_node_to_partition_1,
1107 add_cgraph_node_to_partition, add_varpool_node_to_partition,
1108 undo_partition, partition_cgraph_node_p, partition_varpool_node_p,
1109 lto_1_to_1_map, node_cmp, varpool_node_cmp, lto_balanced_map,
1110 promote_var, promote_fn, lto_promote_cross_file_statics): move to...
1111 * lto-partition.c: ... here; new file.
1112 * lto-partition.h: New file.
1113 * Make-lang.in (lto.o): Update dependencies.
1114 (lto-partition.o): New.
1115
f3b249e5
RG
11162012-04-05 Richard Guenther <rguenther@suse.de>
1117
1118 * lto-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Remove
1119 definition.
1120
21fa2faf
RG
11212012-03-12 Richard Guenther <rguenther@suse.de>
1122
1123 * lto-lang.c (builtin_type_for_size): Use lto_type_for_size.
1124
6bb485a3
RG
11252012-03-06 Richard Guenther <rguenther@suse.de>
1126
1127 PR lto/52097
1128 * lto.c (uniquify_nodes): Merge TYPE_FIELDS of variant types.
1129
95510497
RG
11302012-02-28 Richard Guenther <rguenther@suse.de>
1131
1132 PR lto/52400
1133 * lto.c (lto_register_function_decl_in_symtab): Do not register
1134 a reverse renamed decl mapping.
1135
09228fef
JJ
11362012-01-06 Jakub Jelinek <jakub@redhat.com>
1137
1138 PR lto/51774
1139 * lto-lang.c (handle_returns_twice_attribute): New function.
1140 (lto_attribute_table): Add returns_twice attribute.
1141
b03eda0d
RG
11422011-12-21 Richard Guenther <rguenther@suse.de>
1143
1144 * lto.c (GIMPLE_REGISTER_TYPE): New define.
1145 (LTO_FIXUP_TREE): Use it.
1146 (uniquify_nodes): Mark new non-prevailing types and avoid
1147 calling gimple_register_type on others.
1148 (lto_read_decls): Add comment.
1149
4ad9a9de
EB
11502011-12-13 Eric Botcazou <ebotcazou@adacore.com>
1151
1152 * lto.h (lto_parse_hex): Delete.
1153 * lto.c (lto_read_decls): Use 'int' for offsets.
1154 (lto_parse_hex): Make static and return proper 64-bit host type.
1155 (lto_resolution_read): Use proper 64-bit host type.
1156
ea973bad
RG
11572011-12-13 Richard Guenther <rguenther@suse.de>
1158
1159 PR lto/48354
1160 * lto.c (lto_ft_decl_non_common): When we merged DECL_ORIGINAL_TYPE
1161 with the type of the TYPE_DECL clear DECL_ORIGINAL_TYPE.
1162
c8218030
UB
11632011-12-01 Uros Bizjak <ubizjak@gmail.com>
1164
1165 * lto-lang.c (lto_attribute_table): Handle *tm regparm.
1166 (ignore_attribute): New.
1167
57ac2606
AH
11682011-11-21 Aldy Hernandez <aldyh@redhat.com>
1169
1170 * lto-lang.c (lto_attribute_table): Handle transaction_pure.
1171 (handle_transaction_pure_attribute): New.
1172
52a35ef7
RG
11732011-11-03 Richard Guenther <rguenther@suse.de>
1174
1175 PR lto/44965
1176 * lto-lang.c (lto_post_options): Do not read file options.
1177 * lto.c (lto_read_all_file_options): Remove.
1178 (lto_init): Call lto_set_in_hooks here.
1179
51973b1e
JH
11802011-10-09 Jan Hubicka <jh@suse.cz>
1181
1182 * lto.c (node_cmp, varpool_node_cmp): New functions.
1183 (lto_balanced_map): Honnor -fno-toplevel-reorder of vars&functions.
1184 (cmp_partitions): Rename to ...
1185 (cmp_partitions_size): ... this one.
1186 (cmp_partitions_order): New function.
1187 (lto_wpa_write_files): Sort partitions by order when
1188 -fno-toplevel-reorder is used.
1189
5958009b
AK
11902011-10-09 Andi Kleen <ak@linux.intel.com>
1191
1192 * lto.c (lto_section_read): Call fatal_error on IO or mmap errors.
1193
e79983f4
MM
11942011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
1195
1196 * lto-lang.c (def_builtin_1): Delete old interface with two
1197 parallel arrays to hold standard builtin declarations, and replace
1198 it with a function based interface that can support creating
1199 builtins on the fly in the future. Change all uses, and poison
1200 the old names. Make sure 0 is not a legitimate builtin index.
1201
ecdbd01a 12022011-10-02 Andi Kleen <ak@linux.intel.com>
c17d253c
AK
1203
1204 * lto-object.c (lto_obj_add_section_data): Add list.
1205 (lto_obj_add_section): Fill in list.
1206 (ltoobj_build_section_table): Pass through list.
1207 * lto.c (file_data_list): Declare.
1208 (create_subid_section_table): Pass arguments directly.
1209 Fill in list of file_datas.
1210 (lwstate): Delete.
1211 (lto_create_files_from_ids): Pass in direct arguments.
1212 Don't maintain list.
1213 (lto_file_read): Use explicit section and file data lists.
1214 (lto_read_all_file_options): Pass in section_list.
1215 * lto.h (lto_obj_build_section_table): Add list.
1216 (lto_section_slot): Add next.
1217 (lto_section_list): Declare.
1218
ed0d2da0
JH
12192011-10-02 Jan Hubicka <jh@suse.cz>
1220
1221 PR lto/47247
1222 * common.c (lto_resolution_str): Add new resolution.
1223 * common.h (lto_resolution_str): Likewise.
1224
ad7715f3
L
12252011-09-30 H.J. Lu <hongjiu.lu@intel.com>
1226 Andi Kleen <ak@linux.intel.com>
1227
1228 PR lto/50568
1229 * lto.c (lto_splay_tree_delete_id): New.
1230 (lto_splay_tree_compare_ids): Likewise.
1231 (lto_splay_tree_lookup): Likewise.
1232 (lto_splay_tree_id_equal_p): Likewise.
1233 (lto_splay_tree_insert): Likewise.
1234 (lto_splay_tree_new): Likewise.
1235 (lto_resolution_read): Change id to unsigned HOST_WIDE_INT.
1236 Use lto_splay_tree_id_equal_p and lto_splay_tree_lookup.
1237 (create_subid_section_table): Use lto_splay_tree_lookup and
1238 lto_splay_tree_insert.
1239 (lto_file_read): Use lto_splay_tree_new.
1240
ecdbd01a 12412011-09-26 Andi Kleen <ak@linux.intel.com>
dde8b360
AK
1242
1243 * lto.c (lto_resolution_read): Remove id dumping.
1244 (lto_section_with_id): Turn id HOST_WIDE_ID.
1245 (create_subid_section_table): Dito.
1246
892a371f
DS
12472011-08-28 Dodji Seketeli <dodji@redhat.com>
1248
1249 * lto-lang.c (lto_init): Likewise. Also, avoid calling
1250 linemap_add twice.
1251
f82d1a94
MJ
12522011-08-11 Martin Jambor <mjambor@suse.cz>
1253
1254 * lto.c (uniquify_nodes): Use main variant's BINFO too.
1255
f0efc7aa
DN
12562011-08-08 Diego Novillo <dnovillo@google.com>
1257
1258 * Make-lang.in (lto/lto.o): Add TREE_STREAMER_H.
1259 * lto.c: Include tree-streamer.h.
1260
1a072294
RG
12612011-07-06 Richard Guenther <rguenther@suse.de>
1262
1263 * lto-lang.c (lto_init):
1264 Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
1265
7496868d
JH
12662011-06-11 Jan Hubicka <jh@suse.cz>
1267
10f13f22 1268 PR lto/48246
7496868d
JH
1269 * lto.c (lto_1_to_1_map): Don't create empty partitions.
1270 (lto_balanced_map): Likewise.
1271
39e2db00
JH
12722011-06-11 Jan Hubicka <jh@suse.cz>
1273
1274 * lto.c (add_cgraph_node_to_partition_1): Break out from ...
1275 (add_cgraph_node_to_partition) ... here; walk aliases.
1276 (lto_1_to_1_map): Remove same body alias code.
1277 (promote_fn): Likewise.
1278 (lto_promote_cross_file_statics): Update comment.
1279
1280
28628ea6
DN
12812011-06-07 Diego Novillo <dnovillo@google.com>
1282
1283 * lto.c (uniquify_nodes): Move code to register decls to
1284 the loop that computes canonical types.
1285
009db074
RG
12862011-06-07 Richard Guenther <rguenther@suse.de>
1287
1288 * lto-lang.c (lto_init): Do not set
1289 size_type_node or call set_sizetype.
1290
47c79d56
DN
12912011-06-04 Diego Novillo <dnovillo@google.com>
1292
1293 * lto.c (lto_init): New.
1294 (lto_main): Call it.
1295
d5828cc7
DN
12962011-06-03 Diego Novillo <dnovillo@google.com>
1297
1298 * lto.c (get_resolution): Move from lto-streamer-in.c.
1299 (lto_register_var_decl_in_symtab): Likewise.
1300 (lto_register_function_decl_in_symtab): Likewise.
1301 (uniquify_nodes): Call lto_register_var_decl and
1302 lto_register_function_decl_in_symtab after reading a new
1303 VAR_DECL or FUNCTION_DECL.
1304
6807da97
RG
13052011-06-01 Richard Guenther <rguenther@suse.de>
1306
1307 * lto-lang.c (lto_register_canonical_types): New function.
1308 (lto_init): Register common nodes with the canonical type machinery.
1309 Do not play tricks with char_type_node.
1310
d74be317
RG
13112011-05-26 Richard Guenther <rguenther@suse.de>
1312
1313 * lto.c (uniquify_nodes): Fix bug in one of the previous changes.
1314
d9f8303f
NF
13152011-05-25 Nathan Froyd <froydnj@codesourcery.com>
1316
1317 * lto.c (lto_ft_typed): New function.
1318 (lto_ft_common): Call it.
1319 (lto_ft_constructor): Likewise.
1320 (lto_ft_expr): Likewise.
1321 (lto_fixup_prevailing_decls): Check for TS_COMMON before accessing
1322 TREE_CHAIN.
1323
fb291a1e
RG
13242011-05-20 Richard Guenther <rguenther@suse.de>
1325
1326 * lto.c (lto_ft_common): Remove pointer-to chain teardown.
1327 (lto_ft_type): Move main-variant and pointer-to chain building ...
1328 (uniquify_nodes): ... here. Compute TYPE_CANONICAL also here,
1329 in a separate final loop.
1330
31b3ca64
RG
13312011-05-19 Richard Guenther <rguenther@suse.de>
1332
1333 * lto.c (uniquify_nodes): First register all types before
1334 fixing up the tree SCC.
1335
35d828c5
JH
13362011-05-11 Jan Hubicka <jh@suse.cz>
1337
1338 PR lto/48952
1339 * lto.c (do_whole_program_analysis): Do not register cgraph hooks.
1340
51545682
NF
13412011-05-11 Nathan Froyd <froydnj@codesourcery.com>
1342
1343 * lto.c (lto_ft_type): Use TYPE_MINVAL and TYPE_MAXVAL. Adjust
1344 location of binfo field.
1345 (lto_fixup_prevailing_decls): Likewise.
1346
8242dd04
NF
13472011-05-10 Nathan Froyd <froydnj@codesourcery.com>
1348
1349 * lto-lang.c (def_fn_type): Don't call build_function_type, call
1350 build_function_type_array or build_varargs_function_type_array
1351 instead.
1352
c99c0026
EB
13532011-05-07 Eric Botcazou <ebotcazou@adacore.com>
1354
1355 * lto-lang.c (global_bindings_p): Return bool.
1356
c47d0034
JH
13572011-05-07 Jan Hubicka <jh@suse.cz>
1358
a9bcb3f0
EB
1359 * lto.c (lto_materialize_function): Use
1360 cgraph_function_with_gimple_body_p.
1361 (add_cgraph_node_to_partition): Do not re-add items to partition;
1362 handle thunks.
c47d0034
JH
1363 (add_varpool_node_to_partition): Do not re-add items to partition.
1364
bb3398ca
JH
13652011-05-03 Jan Hubicka <jh@suse.cz>
1366
1367 * lto.c (free_ltrans_partitions): Fix accidental commit.
1368
1cb1a99f
JH
13692011-05-03 Jan Hubicka <jh@suse.cz>
1370
1371 * lto.c (ltrans_partition_def): Remove GTY annotations.
1372 (ltrans_partitions): Move to heap.
1373 (new_partition): Update.
1374 (free_ltrans_partitions): New function.
1375 (lto_wpa_write_files): Use it.
1376
af8bca3c
MJ
13772011-04-29 Martin Jambor <mjambor@suse.cz>
1378
1379 * lto.c: Include ipa-utils.h.
1380 (lto_balanced_map): Update call to ipa_reverse_postorder.
1381 * Make-lang.in (lto/lto.o): Add IPA_UTILS_H to dependencies.
1382
b823cdfe
MM
13832011-04-29 Michael Matz <matz@suse.de>
1384
1385 * lto.c (toplevel): Include tree-flow.h.
1386 (lto_read_in_decl_state): Don't merge types here.
1387 (tree_with_vars): New static hash table.
1388 (remember_with_vars): New static functions.
1389 (LTO_FIXUP_TYPE): New macro.
1390 (lto_ft_common, lto_ft_decl_minimal, lto_ft_decl_common,
1391 lto_ft_decl_with_vis, lto_ft_decl_non_common, lto_ft_function,
1392 lto_ft_field_decl, lto_ft_type, lto_ft_binfo, lto_ft_constructor,
1393 lto_ft_expr, lto_fixup_types, uniquify_nodes): New static functions.
1394 (lto_read_decls): Uniquify while reading in trees.
1395 (lto_fixup_data_t, LTO_FIXUP_SUBTREE,
1396 LTO_REGISTER_TYPE_AND_FIXUP_SUBTREE, no_fixup_p, lto_fixup_common,
1397 lto_fixup_decl_minimal, lto_fixup_decl_common, lto_fixup_decl_with_vis,
1398 lto_fixup_decl_non_common, lto_fixup_function, lto_fixup_field_decl,
1399 lto_fixup_type, lto_fixup_binfo, lto_fixup_constructor,
1400 lto_fixup_tree): Remove.
1401 (lto_fixup_state): Remove data argument. Use
1402 lto_symtab_prevailing_decl.
1403 (LTO_SET_PREVAIL, LTO_NO_PREVAIL): New macros.
1404 (lto_fixup_prevailing_decls): New function.
1405 (lto_fixup_state_aux): Argument aux is unused.
1406 (lto_fixup_decls): Don't allocate pointer sets, don't use
1407 lto_fixup_tree, use lto_fixup_prevailing_decls.
1408 (read_cgraph_and_symbols): Allocate and remove tree_with_vars.
1409 * Make-lang.in (lto/lto.o): Depend on $(TREE_FLOW_H).
1410
b9843260
EB
14112011-04-16 Eric Botcazou <ebotcazou@adacore.com>
1412
1413 * lto.c (lto_balanced_map): Fix typos in head comment.
1414 (lto_promote_cross_file_statics): Fix long lines and remove redundant
1415 test.
1416
e7f23018
JH
14172011-04-16 Jan Hubicka <jh@suse.cz>
1418
1419 * lto.c (lto_balanced_map): Update.
1420
10a5dd5d
JH
14212011-04-14 Jan Hubicka <jh@suse.cz>
1422
1423 * lto.c: Include ipa-inline.h
b9843260
EB
1424 (add_cgraph_node_to_partition, undo_partition): Use inline_summary
1425 accessor.
10a5dd5d
JH
1426 (ipa_node_duplication_hook): Fix declaration.
1427 * Make-lang.in (lto.o): Update dependencies.
1428
81f653d6
NF
14292011-04-12 Nathan Froyd <froydnj@codesourcery.com>
1430
1431 * lto-tree.h (union lang_tree_node): Check for TS_COMMON before
1432 calling TREE_CHAIN.
1433 * lto.c (lto_fixup_common): Likewise.
1434
dcf0c47e
NF
14352011-04-08 Nathan Froyd <froydnj@codesourcery.com>
1436
1437 * lto-lang.c (handle_sentinel_attribute): Don't use TYPE_ARG_TYPES.
1438 (handle_type_generic_attribute): Likewise.
1439
e89964e3
MM
14402011-04-03 Michael Matz <matz@suse.de>
1441
1442 * lto.c (lto_materialize_function): Don't read and then discard
1443 sections in WPA mode.
1444 (lto_read_in_decl_state): Adjust call to lto_streamer_cache_get.
1445
1446 * lto-lang.c (registered_builtin_fndecls): Remove.
1447 (lto_getdecls): Return NULL_TREE.
1448 (lto_builtin_function): Don't remember in registered_builtin_fndecls.
1449
d2b3fe18
RG
14502011-03-31 Richard Guenther <rguenther@suse.de>
1451
1452 PR lto/48246
1453 * lto.c (lto_wpa_write_files): Disable assert for non-empty
1454 partitions when checking is not enabled.
1455
ba78087b
KT
14562011-03-25 Kai Tietz <ktietz@redhat.com>
1457
1458 * lto.c (lto_resolution_read): Use filename_cmp instead
1459 of strcmp.
1460 (lto_read_section_data): Likewise.
1461
0edf1bb2
JL
14622011-03-25 Jeff Law <law@redhat.com>
1463
1464 * lto/lto-lang.c (def_fn_type): Add missing va_end.
1465
62d784f7
KT
14662011-03-21 Kai Tietz <ktietz@redhat.com>
1467
1468 PR target/12171
1469 * lto-lang.c (lto_attribute_table): Adjust table.
1470
62dd9571
JJ
14712011-02-18 Jakub Jelinek <jakub@redhat.com>
1472
1473 PR bootstrap/47807
1474 * Make-lang.in (lto/lto-lang.o): Depend on $(LTO_STREAMER_H) instead
1475 of lto-streamer.h.
1476
237d6259
RG
14772011-02-18 Richard Guenther <rguenther@suse.de>
1478
1479 PR lto/47798
1480 * lto-tree.h (lto_global_var_decls): Do not declare here.
1481 * lto-lang.c: Include lto-streamer.h.
1482 * Make-lang.in (lto-lang.o): Adjust dependencies.
1483
8ead2223
KT
14842011-02-10 Kai Tietz <kai.tietz@onevision.com>
1485
1486 PR lto/47241
1487 * lto.c (lto_read_section_data): Free
1488 fd_name in failure case.
1489 For mingw targets don't hash file-descriptor.
1490 (read_cgraph_and_symbols): Close current_lto_file
1491 in failure case.
1492
6e701822
JH
14932011-01-11 Jan Hubicka <jh@suse.cz>
1494
1495 PR lto/45721
1496 PR lto/45375
b9843260
EB
1497 * lto.c (partition_cgraph_node_p, partition_varpool_node_p): Weakrefs
1498 are not partitioned.
6e701822 1499
f4da8dce
NF
15002010-12-22 Nathan Froyd <froydnj@codesourcery.com>
1501
1502 * lto-lang.c (handle_nonnull_attribute, handle_sentinel_attribute):
1503 Use prototype_p.
1504
6b7fb143
RG
15052010-12-06 Richard Guenther <rguenther@suse.de>
1506
1507 PR lto/46796
1508 * lto-lang.c (lto_init): Give names to basic types.
1509
c59ffc41
JM
15102010-11-30 Joseph Myers <joseph@codesourcery.com>
1511
1512 * lto-object.c: Don't include toplev.h.
1513 * Make-lang.in (lto/lto-object.o): Don't depend on toplev.h.
1514
7c475d11
JM
15152010-11-30 Joseph Myers <joseph@codesourcery.com>
1516
1517 * Make-lang.in (lto/lto-object.o): Depend on toplev.h instead of
1518 $(TOPLEV_H).
1519
71f3e391
JM
15202010-11-29 Joseph Myers <joseph@codesourcery.com>
1521
1522 * lto-endian.h: Delete.
1523 * lto-object.c: Don't include "libiberty.h".
1524 (O_BINARY): Don't define.
1525 * lto.c: Don't include "libiberty.h" or <sys/mman.h>.
1526 (O_BINARY): Don't define.
1527
9f1718b0
RG
15282010-11-23 Richard Guenther <rguenther@suse.de>
1529
1530 * lto.c (read_cgraph_and_symbols): Remove newline from diagnostic.
1531
39c4e298
RG
15322010-11-23 Richard Guenther <rguenther@suse.de>
1533
1534 PR lto/46605
1535 * lto.c (read_cgraph_and_symbols): Bail out after errors.
1536
b37421c6
JM
15372010-11-17 Joseph Myers <joseph@codesourcery.com>
1538
1539 * lto.c (lto_main): Take no arguments.
1540 * lto.h (lto_main): Update prototype.
1541
d82f74d3
ILT
15422010-11-16 Ian Lance Taylor <iant@google.com>
1543
1544 * lto-object.c (lto_obj_file_open): Call
1545 simple_object_attributes_merge rather than
1546 simple_object_attributes_compare.
1547
a4d8c676
JM
15482010-11-12 Joseph Myers <joseph@codesourcery.com>
1549
1550 * Make-lang.in (lto/lto.o): Use $(OPTS_H).
1551 * lto-lang.c (lto_handle_option): Take location_t parameter.
1552
d8a07487
JM
15532010-11-10 Joseph Myers <joseph@codesourcery.com>
1554
1555 * lto.c (lto_resolution_read): Start diagnostics with lowercase
1556 letters and remove trailing '.'.
1557 (lto_file_finalize): Start diagnostic with a lowercase letter.
1558
6b3456d1
ILT
15592010-11-02 Ian Lance Taylor <iant@google.com>
1560
1561 * lto-object.c: New file.
1562 * lto-elf.c: Remove file.
1563 * lto-macho.c: Remove file.
1564 * lto-macho.h: Remove file.
1565 * lto-coff.c: Remove file.
1566 * lto-coff.h: Remove file.
1567 * Make-lang.in (LTO_OBJS): Change lto/$(LTO_BINARY_READER).o to
1568 lto/lto-object.o.
1569 ($(LTO_EXE)): Remove $(LTO_USE_LIBELF)
1570 (lto/lto-objfile.o): New target.
1571 (lto/lto-elf.o, lto/lto-coff.o, lto/lto-macho.o): Remove targets.
1572 (lto/lto.o): Remove $(LIBIBERTY_H).
1573
030cd86c
JH
15742010-10-22 Jan Hubicka <jh@suse.cz>
1575
1576 * lto.c (add_cgraph_node_to_partition,
1577 add_varpool_node_to_partition): Add debug info.
1578 (lto_1_to_1_map, lto_balanced_map): Do not re-add already
1579 partitioned nodes.
1580 (do_whole_program_analysis): Set function flags before dumping.
1581
4490cae6
RG
15822010-10-22 Richard Guenther <rguenther@suse.de>
1583
1584 * lto.c (lto_fixup_type): Fixup TYPE_CANONICAL again, via
1585 the new gimple_register_canonical_type.
1586
703cdce3
L
15872010-10-20 H.J. Lu <hongjiu.lu@intel.com>
1588
1589 PR bootstrap/45954
1590 * config-lang.in (boot_language): Set to $enable_lto.
1591
1915c739
JJ
15922010-10-18 Jakub Jelinek <jakub@redhat.com>
1593
1594 PR lto/45638
1595 * Make-lang.in (check-lto): New dummy target.
1596
82971de5
EB
15972010-10-14 Eric Botcazou <ebotcazou@adacore.com>
1598
1599 * lto-elf.c (SHN_XINDEX): Define if not already defined.
1600
a75bfaa6
JM
16012010-10-08 Joseph Myers <joseph@codesourcery.com>
1602
1603 * lto-lang.c (lto_init_options): Change to
1604 lto_init_options_struct. Update parameters.
1605 (LANG_HOOKS_INIT_OPTIONS): Don't define.
1606 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
1607
937f7f69
JH
16082010-10-06 Jan Hubicka <jh@suse.cz>
1609
1610 * lto.c (lto_balanced_map): Fix accounting of program size.
1611
2169830c
JH
16122010-10-06 Jan Hubicka <jh@suse.cz>
1613
1614 * lto.c (lto_balanced_map): Do not produce empty partitions.
1615
ecdbd01a 16162010-10-06 Andi Kleen <ak@linux.intel.com>
6e9bd0f8
AK
1617
1618 * lto.c (lto_process_name): Add.
1619 (lto_main): Call lto_process_name.
1620
06ed016f
JH
16212010-10-06 Jan Hubicka <jh@suse.cz>
1622
1623 * lto.c (partition_cgraph_node_p, partition_varpool_node_p): Handle
1624 COMDATs required by the linker.
1625
ae718d66
ILT
16262010-10-05 Ian Lance Taylor <iant@google.com>
1627
1628 * lto.c (lto_section_with_id): Make s a const pointer.
1629
852e4bd2
JH
16302010-10-05 Jan Hubicka <jh@suse.cz>
1631
1632 * lto.c: Include params.h.
1633 (add_cgraph_node_to_partition, add_varpool_node_to_partition): Do
1634 refcounting in aux field.
1635 (undo_partition, partition_cgraph_node_p, partition_varpool_node_p):
1636 New functions.
1637 (lto_1_to_1_map): Simplify.
1638 (lto_balanced_map): New function.
1639 (do_whole_program_analysis): Chose proper partitioning alg.
1640 * Make-lang.in (lto.o): Add dependency on params.h
1641
ecdbd01a 16422010-10-04 Andi Kleen <ak@linux.intel.com>
a90163e9
AK
1643
1644 * Make-lang.in (lto1): Add + to build rule.
1645
ecdbd01a 16462010-10-03 Andi Kleen <ak@linux.intel.com>
f1e92a43
AK
1647
1648 * lto.c (lto_file_finalize): Replace gcc_assert for missing section
1649 with fatal_error.
1650
0d6e14fd
JH
16512010-09-28 Jan Hubicka <jh@suse.cz>
1652
1653 * lto-lang.c (handle_leaf_attribute): New function.
1654 (lto_attribute_tables): Add leaf.
1655
fb462383
JZ
16562010-09-25 Jie Zhang <jie@codesourcery.com>
1657
1658 * lto.c (lto_read_all_file_options): Start a new line after
1659 printing out file names.
1660
051f8cc6
JH
16612010-09-24 Jan Hubicka <jh@suse.cz>
1662
1663 * lto.c (lto_promote_cross_file_statics): Use const_value_known_p.
1664
64e0f5ff
JH
16652010-09-20 Jan Hubicka <jh@suse.cz>
1666
1667 PR tree-optimize/45605
1668 * lto.c (lto_promote_cross_file_statics): Use const_value_known_p.
1669
a929ec3d
GP
16702010-09-18 Gerald Pfeifer <gerald@pfeifer.com>
1671
1672 * lto-elf.c (lto_obj_file_open): Also provide filename when
1673 elf_begin fails.
1674
4c588abf
JH
16752010-09-17 Jan Hubicka <jh@suse.cz>
1676
1677 * lto.c (lto_promote_cross_file_statics): Use const_value_known.
1678
c3224d6f
RG
16792010-09-17 Richard Guenther <rguenther@suse.de>
1680
1681 * lang.opt (flag_wpa): Also enable for the driver.
1682
52b3b3c7
JH
16832010-09-16 Jan Hubicka <jh@suse.cz>
1684
1685 * lto.c (lto_materialize_function): Do not tamper with STATIC and
1686 EXTERNAL flags.
1687
969c37b7
LB
16882010-09-15 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1689
1690 * lto-tree.h (struct lang_type): Add variable_size GTY option.
1691
098a4f50
JH
16922010-09-08 Jan Hubicka <jh@suse.cz>
1693
1694 * lto.c (real_file_count, real_file_decl_data): New static vars.
1695 (read_cgraph_and_symbols): Use it.
1696
0f443ad0
RG
16972010-09-08 Richard Guenther <rguenther@suse.de>
1698
1699 * lto.c (read_cgraph_and_symbols): Collect again after each
1700 file.
1701
ee187353
JH
17022010-09-07 Jan Hubicka <jh@suse.cz>
1703
1704 * lto.c (promote_var, promote_fn): Set DECL_VISIBILITY_SPECIFIED.
1705
b3ec52d0
RG
17062010-09-03 Richard Guenther <rguenther@suse.de>
1707
1708 * lto-elf.c (validate_file): Always error if validation fails.
1709
f1395d4a
JH
17102010-08-20 Jan Hubicka <jh@suse.cz>
1711
1712 * lto.c (lto_1_to_1_map): Be prepared for node to have no file data.
1713 (lto_wpa_write_files): Update comments.
1714
2429bce3
L
17152010-08-20 H.J. Lu <hongjiu.lu@intel.com>
1716
1717 PR bootstrap/45357
1718 * lto.c (lto_materialize_function): Replace has_analyzed_clone
1719 with has_analyzed_clone_p.
1720
e0f967db
JH
17212010-08-20 Jan Hubicka <jh@suse.cz>
1722
1723 * lto.c (has_analyzed_clone_p): New function
1724 (lto_materialize_function): Use callgraph to determine if
1725 body is needed.
1726 (materialize_cgraph): Remove DECL_IS_BUILTIN check.
1727
ac47786e
NF
17282010-08-20 Nathan Froyd <froydnj@codesourcery.com>
1729
1730 * lto.c: Use FOR_EACH_VEC_ELT.
1731
ecdbd01a 17322010-07-27 Andi Kleen <ak@linux.intel.com>
d720b869
AK
1733
1734 * Make-lang.in (lto.o): Add dependency to splay-tree.h
1735
5f20c657
JM
17362010-07-27 Joseph Myers <joseph@codesourcery.com>
1737
1738 * lto-lang.c (lto_handle_option): Update prototype and return
1739 value type. Remove duplicate assignment to result.
1740
7a9bf9a4
JM
17412010-07-27 Joseph Myers <joseph@codesourcery.com>
1742
1743 * lto-lang.c (lto_option_lang_mask, lto_complain_wrong_lang_p):
1744 New.
1745 (lto_init_options): Update prototype.
1746 (LANG_HOOKS_OPTION_LANG_MASK, LANG_HOOKS_COMPLAIN_WRONG_LANG_P):
1747 Define.
1748
ecdbd01a 17492010-07-10 Andi Kleen <ak@linux.intel.com>
73ce4d1e
AK
1750
1751 PR lto/44992
1752 * lto.c: Include splay-tree.h
1753 (lto_resolution_read): Change to walk file_ids tree and parse
1754 extra file_id in resolution file.
1755 (lto_section_with_id): Add.
1756 (create_subid_section_table): Add.
1757 (lwstate): Add.
1758 (lto_create_files_from_ids): Add.
1759 (lto_file_read): Change to handle sub file ids and create list
1760 of file_datas. Add output argument for count.
1761 (get_section_data): Pass file_data to lto_get_section_name.
1762 (lto_flatten_file): Add.
1763 (read_cgraph_and_symbols): Handle linked lists of file_datas.
1764
ecdbd01a 17652010-07-10 Andi Kleen <ak@linux.intel.com>
2994ee14
AK
1766
1767 * lto-coff.c (hash_name, eq_name): Move.
1768 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
1769 * lto-elf.c: (hash_name, eq_name): Move.
1770 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
1771 * lto-macho.c: (hash_name, eq_name): Move.
1772 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
1773 * lto.c: (hash_name, eq_name): Move from lto-*.c
1774 (lto_obj_create_section_hash_table): Add.
1775 (free_with_string): Add.
1776
718f9c0f
MLI
17772010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
1778
1779 * lto-coff.c: Include diagnostic-core.h in every file that
1780 includes toplev.h.
1781 * lto-elf.c: Likewise.
1782 * lto-lang.c: Likewise.
1783 * lto-macho.c: Likewise.
1784
1b137837
JJ
17852010-07-07 Jakub Jelinek <jakub@redhat.com>
1786
1787 * lto-elf.c (ELFOSABI_NONE, ELFOSABI_LINUX): Define if not defined.
1788 (validate_file): Allow merging of ELFOSABI_NONE with ELFOSABI_LINUX
1789 objects.
1790
92eb4438
JH
17912010-07-05 Jan Hubicka <jh@suse.cz>
1792
1793 * lto.c (add_cgraph_node_to_partition): Forward declare; walk also
1794 nodes from same comdat group as well as all comdat functions referenced
1795 here.
b9843260
EB
1796 (add_varpool_node_to_partition, add_references_to_partition): New
1797 function.
1798 (lto_1_1_map): Skip COMDAT fnctions/variables; use
1799 add_varpool_node_to_partition; clear aux flags when done.
1800 (lto_promote_cross_file_statics): Do not promote stuff that gets
1801 duplicated to each ltrans.
92eb4438 1802
a05541a9
JH
18032010-07-04 Jan Hubicka <jh@suse.cz>
1804
1805 * lto.c (read_cgraph_and_symbols): Dump cgraph before merging.
1806
4a2ac96f
RG
18072010-06-13 Richard Guenther <rguenther@suse.de>
1808
1809 * lto.c (lto_fixup_type): Do not register or fixup TYPE_CANONICAL.
1810
1d536046
KT
18112010-06-09 Kai Tietz <kai.tietz@onevision.com>
1812
1813 * lto.c (lto_resolution_read): Pre-initialize local variable r.
1814 * lto-coff.c (coff_write_object_file): Add braces to if.
1815
a9429e29
LB
18162010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1817
1818 * lto.c (lto_read_in_decl_state): Use typed GC allocation.
1819 (lto_file_read): Likewise.
1820 (new_partition): Likewise.
1821 (read_cgraph_and_symbols): Likewise.
1822
5498f011
JM
18232010-06-07 Joseph Myers <joseph@codesourcery.com>
1824
1825 * lto-lang.c (flag_no_builtin, flag_no_nonansi_builtin): Remove.
1826 (lto_handle_option): Don't set flag_signed_char here.
1827
d4c0c9f6
RG
18282010-06-04 Richard Guenther <rguenther@suse.de>
1829
1830 PR lto/41584
1831 * lto.c (lto_1_to_1_map): Use the proper file_data for
1832 varpool nodes.
1833
0a5fa5a1
JH
18342010-05-30 Jan Hubicka <jh@suse.cz>
1835
1836 * lto.c (promote_var, promote_fn, lto_wpa_write_files): Dump
1837 partitioning decisions.
1838
9eec9488
JH
18392010-05-29 Jan Hubicka <jh@suse.cz>
1840
1841 * lto.c (bitmap vector): Remove.
1842 (lto_cgraph_node_sets, lto_varpool_node_sets): Remove.
1843 (ltrans_partition_def): New structure.
1844 (ltrans_partition): New type and VECtor.
1845 (new_partition): New function.
1846 (add_cgraph_node_to_partition): New function.
1847 (lto_1_to_1_map): Reorganize for partitions.
1848 (lto_add_inline_clones): Remove.
1849 (lto_add_all_inlinees): Remove.
1850 (lto_promote_cross_file_statics): Use partitions.
1851 (cmp_partitions): New function.
1852 (lto_wpa_write_files): Do not call lto_add_all_inlinees;
1853 use partitions; output files sorted by size.
1854
3e097227
SB
18552010-05-29 Steven Bosscher <steven@gcc.gnu.org>
1856
1857 * Make-lang.in: Replace vec.h dependency with VEC_H.
1858
7ca92787
JM
18592010-05-28 Joseph Myers <joseph@codesourcery.com>
1860
1861 * lto-coff.c (coff_errmsg): Remove.
1862 (lto_coff_begin_section_with_type, lto_obj_append_data): Use %m in
1863 errors instead of coff_errmsg (-1).
1864 * lto-macho.c (mach_o_errmsg): Remove.
1865 (lto_obj_begin_section, lto_obj_append_data): Use %m in errors
1866 instead of mach_o_errmsg (-1).
1867 * lto.c (read_cgraph_and_symbols): Use %m in errors instead of
1868 xstrerror (errno).
1869
b5611987
RG
18702010-05-28 Richard Guenther <rguenther@suse.de>
1871
1872 * lto.c (prefix_name_with_star): Removed.
1873 (strip_extension): Likewise.
1874 (get_filename_for_set): Likewise.
1875 (lto_write_ltrans_list): Fold into ...
1876 (lto_wpa_write_files): ... this. Name LTRANS units
1877 by suffixing the ltrans output list filename.
1878 (do_whole_program_analysis): Adjust.
1879
1da2ed5f
JM
18802010-05-27 Joseph Myers <joseph@codesourcery.com>
1881
1882 * lto.c: Include diagnostic-core.h instead of diagnostic.h.
1883 (read_cgraph_and_symbols, lto_main): Use seen_error.
1884 * Make-lang.in (lto/lto.o): Update dependencies.
1885
7951d88a
EB
18862010-05-27 Eric Botcazou <ebotcazou@adacore.com>
1887
1888 PR lto/44230
1889 * lto.h (lto_eh_personality): New prototype.
1890 * lto.c: Include debug.h.
1891 (first_personality_decl): New static variable.
1892 (lto_materialize_function): Set it to DECL_FUNCTION_PERSONALITY of the
1893 first function for which it is non-null.
1894 (lto_eh_personality_decl): New static variable.
1895 (lto_eh_personality): New function.
1896 * lto-lang.c (LANG_HOOKS_EH_PERSONALITY): Redefine to above function.
1897 * Make-lang.in (lto/lto.o): Add dependency on debug.h.
1898
e12da9c2
SB
18992010-05-26 Steven Bosscher <steven@gcc.gnu.org>
1900
1901 * lto-lang.c: Do not include expr.h.
1902
468194f4
RG
19032010-05-24 Richard Guenther <rguenther@suse.de>
1904
1905 * lto-elf.c (lto_obj_build_section_table): Work around
1906 FreeBSD libelf issue.
1907
bd9eb5da
RG
19082010-05-22 Richard Guenther <rguenther@suse.de>
1909
1910 * lto.c (read_cgraph_and_symbols): Do not collect.
1911
66576e1b
JH
19122010-05-20 Jan Hubicka <jh@suse.cz>
1913
1914 * lto.c (promote_var, promote_fn): New functions.
1915 (lto_promote_cross_file_statics): Compute correctly boundary including
1916 static initializers of readonly vars.
1917
36576655
JH
19182010-05-18 Jan Hubicka <jh@suse.cz>
1919
66576e1b 1920 * lto.c (lto_1_to_1_map): Partition non-inline clones.
36576655
JH
1921 (lto_promote_cross_file_statics): Deal with non-inline clones.
1922
28632d63
JH
19232010-05-18 Jan Hubicka <jh@suse.cz>
1924
1925 * lto.c (lto_materialize_function): Announce function when
1926 reading body; allocate_struct_function only when reading body;
1927 do not finalize local statics; ggc_collect after reading;
1928 do not mark reachable node.
1929 (materialize_cgraph): Do not announce function.
1930
33e42d56
JH
19312010-05-11 Jan Hubicka <jh@suse.cz>
1932
1933 * lto.c (materialize_cgraph): Revert my previous patch.
1934
f6430ea5
KT
19352010-05-11 Kai Tietz <kai.tietz@onevision.com>
1936
1937 * lto-coff.c (IMAGE_FILE_MACHINE_ADM64): Rename to
1938 IMAGE_FILE_MACHINE_AMD64.
1939 * lto-coff.c (IMAGE_FILE_MACHINE_ADM64): Likewise.
1940
0a0b07b7
JH
19412010-05-11 Jan Hubicka <jh@suse.cz>
1942
1943 * lto.c (lto_fixup_decls): Remove global var decls freeing here.
1944 (materialize_cgraph): Add it here.
1945
9a809897
JH
19462010-05-11 Jan Hubicka <jh@suse.cz>
1947
1948 * lto.c (lto_fixup_decls): Free no longer needed lto_global_var_decls
1949 vector.
1950
19512010-05-11 Jan Hubicka <jh@suse.cz>
1952
1953 * lto.c (lto_1_to_1_map): Remove some no longer needed checks.
1954 (lto_promote_cross_file_statics): Never promote DECL_EXTERNAL;
1955 use reachable_from_other_partition_p and
1956 referenced_from_other_partition_p test.
1957
94f64249
KT
19582010-05-11 Kai Tietz <kai.tietz@onevision.com>
1959
1960 * lto-coff.c (validate_file): Add x64-coff support.
1961 * lto-coff.h (IMAGE_FILE_MACHINE_ADM64): New.
1962 (COFF_KNOWN_MACHINES): Add IMAGE_FILE_MACHINE_ADM64.
1963 * lto-lang.c (lto_build_c_type_nodes): Add check for
1964 'long long unsigned int' for x64-windows.
1965 (lto_init): Likewise.
1966
1967
c082f9f3
SB
19682010-05-07 Steven Bosscher <steven@gcc.gnu.org>
1969
1970 * lto.h (struct lto_file_struct): Document offset member.
1971 * lto-endian.h: New file.
1972 * lto-macho.h: New file.
1973 * lto-macho.c: New file.
1974 * Make-lang.in: Add rule for lto-macho.o.
1975
5cd0e96b
RG
19762010-05-07 Richard Guenther <rguenther@suse.de>
1977
1978 PR lto/43857
1979 PR lto/43371
1980 * lang.opt (fresolution): Change to ...
1981 (fresolution=): ... this.
1982 * lto-lang.c (lto_handle_option): Adjust.
1983
48cf395b
RB
19842010-05-07 Richard Guenther <rguenther@suse.de>
1985
1986 * lto.c (DUMPBASE_SUFFIX): Remove.
1987 (lto_execute_ltrans): Move functionality to lto-wrapper.c.
1988 Rename to ...
1989 (lto_write_ltrans_list): ... only output the list of ltrans files.
1990 (lto_maybe_unlink): Remove.
1991 (do_whole_program_analysis): Do not execute LTRANS phase
1992 from here.
1993
afa83c15
L
19942010-05-06 H.J. Lu <hongjiu.lu@intel.com>
1995
1996 * lto-lang.c (lto_handle_option): Add argument kind.
1997
369451ec
JH
19982010-05-05 Jan Hubicka <jh@suse.cz>
1999
48cf395b
RB
2000 * lto.c (lto_promote_cross_file_statics): Compute boundary based on
2001 refs.
369451ec 2002
2f41ecf5
JH
20032010-05-05 Jan Hubicka <jh@suse.cz>
2004
2005 * lto.c (lto_1_to_1_map): Partition only needed nodes.
2006
ace72c88
JH
20072010-04-30 Jan Hubicka <jh@suse.cz>
2008
b9843260
EB
2009 * lto.c (get_filename_for_set): Look for cgraph node and if none found,
2010 use default name.
ace72c88
JH
2011 (lto_wpa_write_files): Write any non-empty partition.
2012
05575e07
JH
20132010-04-30 Jan Hubicka <jh@suse.cz>
2014
2015 * lto.c: Do not attempt to make constant pool references global.
2016
49ba8180
JH
20172010-04-28 Jan Hubicka <jh@suse.cz>
2018
2019 * lto/lto.c (lto_read_in_decl_state): Use GGC.
2020 (lto_wpa_write_files): Announce what we are writting.
2021 (all_file_decl_data): New.
2022 (read_cgraph_and_symbols): Use GGC; correct timevars.
2023 (do_whole_program_analysis): Collect.
2024 * lto/Make-lang.in (lto.o): Fix dependency.
2025 * Makefile.in (GTFILES): Add lto-streamer.h.
2026 * varpool.c (varpool_analyze_pending_decls): Use TV_VARPOOL.
2027 (varpool_assemble_pending_decls): Use VAROUT.
2028 * lto-streamer.h (lto_tree_ref_table): Annotate.
2029 (lto_in_decl_state): Annotate.
2030 (lto_file_decl_data): Annotate.
2031
2942c502
JH
20322010-04-28 Jan Hubicka <jh@suse.cz>
2033
2034 * lto.c (lto_varpool_node_sets): New.
2035 (lto_1_to_1_map): Partition varpool too.
2036 (globalize_context_t, globalize_cross_file_statics,
2037 lto_scan_statics_in_ref_table, lto_scan_statics_in_cgraph_node,
2038 lto_scan_statics_in_remaining_global_vars): Remove.
2039 (lto_promote_cross_file_statics): Rewrite.
2040 (get_filename_for_set): Take vset argument.
2041 (lto_wpa_write_files): Pass around vsets.
2042
3bec79c5
DK
20432010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
2044
2045 PR lto/42776
2046 * Make-lang.in (LTO_OBJS): Use LTO_BINARY_READER instead of
2047 hardcoding 'lto-elf.o'.
2048 ($(LTO_EXE)): Use LTO_USE_LIBELF instead of hardcoding '-lelf'.
2049
2050 * lto-coff.h: New file.
2051 * lto-coff.c: Likewise.
2052
21aac880
RG
20532010-04-26 Richard Guenther <rguenther@suse.de>
2054
2055 * lto.c (lto_fixup_type): Deal with non-type TYPE_CONTEXT.
2056
2cee0101
DK
20572010-04-26 Dave Korn <dave.korn.cygwin@gmail.com>
2058
2059 * lto.h (lto_elf_file_open): Rename prototype from this ...
2060 (lto_obj_file_open): ... to this.
2061 (lto_elf_file_close): Likewise ...
2062 (lto_obj_file_close): ... and likewise.
2063 (lto_elf_build_section_table): Likewise ...
2064 (lto_obj_build_section_table): ... and likewise.
2065 (lto_elf_begin_section): Likewise ...
2066 (lto_obj_begin_section): ... and likewise.
2067 (lto_elf_append_data): Likewise ...
2068 (lto_obj_append_data): ... and likewise.
2069 (lto_elf_end_section): Likewise ...
2070 (lto_obj_end_section): ... and likewise.
2071 * lto.c (lto_file_read): Update references to the above.
2072 (lto_wpa_write_files): Likewise.
2073 (lto_read_all_file_options): Likewise.
2074 (read_cgraph_and_symbols): Likewise.
2075 * lto-lang.c (LANG_HOOKS_BEGIN_SECTION): Likewise.
2076 (LANG_HOOKS_APPEND_DATA): Likewise.
2077 (LANG_HOOKS_END_SECTION): Likewise.
2078 * lto-elf.c (lto_elf_file_open): Rename from this ...
2079 (lto_obj_file_open): ... to this, updating any references.
2080 (lto_elf_file_close): Likewise ...
2081 (lto_obj_file_close): ... and likewise.
2082 (lto_elf_build_section_table): Likewise ...
2083 (lto_obj_build_section_table): ... and likewise.
2084 (lto_elf_begin_section): Likewise ...
2085 (lto_obj_begin_section): ... and likewise.
2086 (lto_elf_append_data): Likewise ...
2087 (lto_obj_append_data): ... and likewise.
2088 (lto_elf_end_section): Likewise ...
2089 (lto_obj_end_section): ... and likewise.
2090
bc58d7e1
JH
20912010-04-21 Jan Hubicka <jh@suse.cz>
2092
2093 * lto.c (lto_fixup_tree): Do not call wpa fixup.
2094 (materialize_cgraph): Likewise.
2095
e792884f
JH
20962010-04-21 Jan Hubicka <jh@suse.cz>
2097
2098 * lto.c (lto_wpa_write_files): Update.
2099 (read_cgraph_and_symbols): Be more verbose.
2100 (materialize_cgraph): Likewise.
2101 (do_whole_program_analysis): Likewise.
2102
c9945504
JH
21032010-04-21 Jan Hubicka <jh@suse.cz>
2104
2105 * lto.c (globalize_cross_file_statics): When function has address taken,
2106 it needs to be public.
2107
a837268b
JH
21082010-04-20 Jan Hubicka <jh@suse.cz>
2109
2110 * lto.c (lto_add_inline_clones): Do not track inlined_decls.
2111 (lto_add_all_inlinees): Likewise.
2112 (lto_wpa_write_files): Likewise.
2113
3b9e5d95
EB
21142010-04-18 Eric Botcazou <ebotcazou@adacore.com>
2115
2116 * lto-lang.c (lto_init): Remove second argument in call to
2117 build_common_tree_nodes.
2118
8ccb78f2
RO
21192010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2120
2121 * lto-elf.c [!HAVE_ELF_GETSHDRSTRNDX] (elf_getshdrstrndx): New
2122 function.
2123
2f9b99e6
EB
21242010-03-09 Eric Botcazou <ebotcazou@adacore.com>
2125
2126 PR bootstrap/43276
2127 * lto-elf.c: Define EM_* constants if not already defined.
2128
bef7d288
EB
21292010-03-03 Eric Botcazou <ebotcazou@adacore.com>
2130
2131 * lto-elf.c (is_compatible_architecture): New static function.
2132 (DEFINE_VALIDATE_EHDR): Use it to validate the architecture.
2133
f68df07c
RG
21342010-02-11 Richard Guenther <rguenther@suse.de>
2135
2136 PR driver/43021
2137 * lto-elf.c (lto_elf_file_open): Handle file@offset case more
2138 appropriately.
2139
3cdea2b4
AH
21402010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
2141
2142 * lto.c (O_BINARY): Define.
2143 (lto_read_section_data): Open file in binary mode.
2144 * lto-elf.c (O_BINARY): Define.
2145 (lto_elf_file_open): Open file in binary mode.
2146
c59449fa
RG
21472010-01-08 Richard Guenther <rguenther@suse.de>
2148
2149 PR lto/42528
2150 * lto-lang.c (lto_handle_option): Handle -f[un]signed-char.
2151 (lto_init): Do not init char_type_node in a standard way
2152 but according to flag_signed_char.
2153
d7fb0a6d
L
21542010-01-03 H.J. Lu <hongjiu.lu@intel.com>
2155
2156 PR lto/41564
2157 * lto.c (DUMPBASE_SUFFIX): New.
2158 (lto_execute_ltrans): Append a sequence number to -dumpbase
2159 for LTRANS.
2160
78ce4053
L
21612010-01-02 H.J. Lu <hongjiu.lu@intel.com>
2162
2163 PR lto/42580
2164 * lto-elf.c (lto_elf_file_open): Stop if the command line
2165 option file is missing.
2166
2a71eb48
RG
21672009-12-15 Richard Guenther <rguenther@suse.de>
2168
2169 * lto.c (lto_fixup_field_decl): Fixup DECL_FIELD_OFFSET.
2170 (lto_post_options): Do not disable debuginfo.
2171
a818bca1
DG
21722009-12-14 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
2173
2174 * Make-lang.in ($(LTO_EXE)): Use $(LINKER).
2175
e7d00517
RG
21762009-12-11 Richard Guenther <rguenther@suse.de>
2177
2178 PR lto/42037
2179 * lto.c (lto_resolution_read): Properly grow the vector.
2180
1ab53893
RG
21812009-12-11 Richard Guenther <rguenther@suse.de>
2182
2183 PR lto/41915
2184 * lto-lang.c (lto_init_options): Initialize flag_complex_method
2185 to the C99 default. Do not set flag_unit_at_a_time.
2186
0f900dfa
JJ
21872009-11-28 Jakub Jelinek <jakub@redhat.com>
2188
2189 * lto-lang.c (handle_nonnull_attribute): Remove unused attr_arg_num
2190 variable.
2191
92fa7608
RAE
21922009-11-19 Rafael Avila de Espindola <espindola@google.com>
2193
2194 PR bootstrap/42096
2195 * lto-elf.c (lto_elf_file_open): Use lto_parse_hex.
2196 * lto.c (lto_parse_hex): New.
2197 (lto_resolution_read): Use lto_parse_hex.
2198 * lto.h (lto_parse_hex): New.
2199
9870fe4f
RAE
22002009-11-17 Rafael Avila de Espindola <espindola@google.com>
2201
2202 * lto-elf.c (lto_file_init): Add offset argument.
2203 (lto_elf_file_open): Record the offset.
2204 * lto.c (lto_resolution_read): Change file_name into a lto_file
2205 argument. Check offsets.
2206 (lto_file_read): Update call to lto_resolution_read.
2207 * lto.h (lto_file_struct): Add the offset field.
2208
1b70729f
RAE
22092009-11-16 Rafael Avila de Espindola <espindola@google.com>
2210
2211 * lto-elf.c (lto_elf_file_open): Use strtoll to parse the offset.
2212
0e3776db
JH
22132009-11-14 Jan Hubicka <jh@suse.cz>
2214
2215 * lto.c (read_cgraph_and_symbols): Set also ipa_transforms_to_apply.
2216
06bd7f56
RAE
22172009-11-12 Rafael Avila de Espindola <espindola@google.com>
2218
2219 * lang.opt (fresolution): Renamed from resolution.
2220 * lto-lang.c (lto_handle_option): Handle new option name.
2221 * lto.c (lto_resolution_read): Add more checks. Discard rest of line.
2222
7e9dc421
RG
22232009-11-04 Richard Guenther <rguenther@suse.de>
2224 Rafael Avila de Espindola <espindola@google.com>
2225
2226 * lto-elf.c (lto_elf_build_section_table): Add the base offset.
2227 (lto_elf_file_open): Handle offsets in arguments name@offest.
2228
b207f900
RG
22292009-10-30 Richard Guenther <rguenther@suse.de>
2230
2231 PR lto/41858
2232 * lto.c (lto_file_read): Do not set file_data->fd.
2233 (lto_read_section_data): Use a single-entry file-descriptor cache.
2234 Do not check the result of xmalloc.
2235 (free_section_data): Do not use file_data->fd.
2236 (lto_read_all_file_options): Likewise.
2237
2c928155
RG
22382009-10-22 Richard Guenther <rguenther@suse.de>
2239
2240 * lto.c (lto_fixup_jump_functions): Remove.
2241 (lto_fixup_decls): Do not fixup jump functions.
2242 (read_cgraph_and_symbols): Schedule cgraph merging after
2243 summary reading. Schedule type and decl fixup before
2244 summary reading.
2245
f9c91f8a
RB
22462009-10-22 Richard Guenther <rguenther@suse.de>
2247
2248 * lto.c (lto_fixup_data_t): Remove free_list member.
2249 (lto_fixup_tree): Do not insert into free_list.
2250 (free_decl): Remove.
2251 (lto_fixup_decls): Remove free-list handling.
2252
fb3f88cc
JH
22532009-10-22 Jan Hubicka <jh@suse.cz>
2254
2255 * lto.c (lto_fixup_jump_functions): New function.
2256 (lto_fixup_decls): Use it.
2257
35f1e9f4
RG
22582009-10-16 Richard Guenther <rguenther@suse.de>
2259
2260 PR lto/41715
2261 * lto.c (lto_fixup_tree): Revert last change.
2262
200c8750
RG
22632009-10-14 Richard Guenther <rguenther@suse.de>
2264
2265 * lto.c (lto_fixup_tree): In case the prevailing decl is not
2266 compatible with the one we replace wrap it around a
2267 VIEW_CONVERT_EXPR.
2268
b1b07c92
RG
22692009-10-09 Richard Guenther <rguenther@suse.de>
2270
2271 PR lto/41635
2272 PR lto/41636
2273 * lto.c (read_cgraph_and_symbols): Do not assert we can open
2274 a file.
2275 * lto-elf.c (init_shdr##BITS): Fix i18n problems.
2276 (init_ehdr##BITS): Likewise.
2277
3c2e7d45
JM
22782009-10-08 Joseph Myers <joseph@codesourcery.com>
2279
2280 * lto-elf.c (init_shdr##BITS, lto_elf_begin_section_with_type,
2281 init_ehdr##BITS, lto_elf_file_close): Remove trailing "." from
2282 diagnostics.
2283 * lto-lang.c (lto_post_options): Remove trailing "." from
2284 diagnostics.
2285
0d0bfe17
RG
22862009-10-08 Richard Guenther <rguenther@suse.de>
2287
2288 * lto.c (read_cgraph_and_symbols): Free the gimple type merging
2289 hash tables.
2290
4bedf19a
JM
22912009-10-07 Joseph Myers <joseph@codesourcery.com>
2292
2293 * lto.c: Only include <sys/mman.h> if HAVE_MMAP_FILE.
2294
b20996ff
JH
22952009-10-07 Jan Hubicka <jh@suse.cz>
2296
2297 * lto.c (read_cgraph_and_symbols): Mark functions neccesary only at
2298 ltrans stage; explain why this is needed and should not.
2299
1a735925
RG
23002009-10-05 Richard Guenther <rguenther@suse.de>
2301
2302 PR lto/41552
2303 PR lto/41487
2304 * lto.c (lto_read_decls): Do not register deferred decls.
2305 (read_cgraph_and_symbols): Delay symbol and cgraph merging
2306 until after reading the IPA summaries.
2307
d7f09764
DN
23082009-10-02 Rafael Avila de Espindola <espindola@google.com>
2309
2310 * Make-lang.in (lto/lto-lang.o): Don't depend on lto/common.h.
2311 (lto-lang.c): Don't include lto/common.h.
2312
23132009-10-02 Rafael Avila de Espindola <espindola@google.com>
2314
2315 * Make-lang.in (LTO_OBJS): Remove lto/common.o.
2316 (lto/common.o): Remove.
2317 * common.c: Remove.
2318 * common.h (lto_kind_str): Remove.
2319 (lto_visibility_str): Remove.
2320 (lto_resolution_str): Make it static.
2321
23222009-10-01 Diego Novillo <dnovillo@google.com>
2323
2324 * lto.c (lto_read_decls): Add comment.
2325 Call internal_error instead of gcc_assert.
2326 (lto_resolution_read): Likewise.
2327 (lto_add_all_inlinees): Tidy.
2328 * Make-lang.in: Fix copyright boilerplate.
2329 (lto.pdf): New.
2330 (lto.install-pdf): New.
2331 * lto-tree.h: Fix copyright boilerplate.
2332 * lang-specs.h: Likewise.
2333 Remove ".lto" entry from compilers fragment.
2334 * lto-elf.c: Move inclusion of gelf.h after config.h.
2335 Tidy formatting everywhere.
2336 * lto.h: Fix copyright boilerplate.
2337 Tidy formatting everywhere.
2338 * common.c: Likewise.
2339 * config-lang.in: Likewise.
2340 * common.h: Likewise.
2341 * lto-lang.c: Likewise.
2342
23432009-10-01 Richard Guenther <rguenther@suse.de>
2344
2345 * lto.c (lto_read_section_data): Use plain lseek/read.
2346
23472009-10-01 Richard Guenther <rguenther@suse.de>
2348
2349 * lto.c (LTO_MMAP_IO): Define if we can mmap files and
2350 use sysconf to query the system page size.
2351 (lto_file_read): Implement fallback using stdio.
2352 (free_section_data): Likewise.
2353
23542009-09-29 Diego Novillo <dnovillo@google.com>
2355
2356 * lto-lang.c (lto_init): Really fix call to
2357 build_common_builtin_nodes.
2358
23592009-09-29 Diego Novillo <dnovillo@google.com>
2360
2361 * lto-lang.c (lto_init): Fix call to
2362 build_common_builtin_nodes.
2363
23642009-09-29 Richard Guenther <rguenther@suse.de>
2365
2366 PR lto/40754
2367 * lto-elf.c (init_shdr##BITS): Properly specify alignment
2368 in bytes.
2369 (first_data_block): New static variable.
2370 (lto_elf_append_data): Align the first data block in each
2371 section.
2372
23732009-09-28 Diego Novillo <dnovillo@google.com>
2374
2375 * lto-lang.c: Tidy. Remove stale FIXME lto markers.
2376 * lto.c (strip_extension): New.
2377 (get_filename_for_set): Call it. Do not call make_cwd_temp_file.
2378 (lto_execute_ltrans): Tidy.
2379 Do not pass -fwpa nor -fltrans-* to LTRANS.
2380 * opts.c: Tidy formatting and remove stale FIXME lto markers.
2381 * tree.c (need_assembler_name_p): Call
2382 lang_hooks.decls.may_need_assembler_name_p if set.
2383 * varasm.c (default_binds_local_p_1): Remove check for
2384 flag_ltrans.
2385 * varpool.c (decide_is_variable_needed): Do not test for
2386 in_lto_p.
2387
23882009-09-22 Richard Guenther <rguenther@suse.de>
2389
2390 PR lto/39276
2391 * lto.c (lto_execute_ltrans): Perform ltrans phase manually.
2392 * Make-lang.in: Remove ltrans-driver stuff.
2393 * config-lang.in: Likewise.
2394 * lang.opt (fltrans-driver): Remove.
2395 * lto-lang.c (lto_init_options): Remove code initializing
2396 ltrans_driver.
2397 * ltrans-driver: Remove.
2398
23992009-09-21 Diego Novillo <dnovillo@google.com>
2400
2401 * lto-lang.c (lto_define_builtins): Remove superfluous
2402 calls to targetm.init_builtins and build_common_builtin_nodes.
2403 (lto_init): Add targetm.arm_eabi_unwinder as parameter to
2404 build_common_builtin_nodes.
2405 * lto.c (lto_materialize_function): Do nothing if NODE is a
2406 clone.
2407
24082009-09-03 Diego Novillo <dnovillo@google.com>
2409
2410 * lto-elf.c (validate_file): Replace call to
2411 elf_getshstrndx with call to elf_getshdrstrndx.
2412
24132009-08-19 Richard Guenther <rguenther@suse.de>
2414
2415 * lto-lang.c (lto_init): Merge char_type_node with the
2416 appropriately signed variant.
2417
24182009-08-19 Richard Guenther <rguenther@suse.de>
2419
2420 PR lto/41071
2421 * lto.c (lto_fixup_common): Re-build the pointer-to chain part one.
2422 (lto_fixup_type): Re-build the pointer-to chain part two.
2423
24242009-08-19 Richard Guenther <rguenther@suse.de>
2425
2426 PR lto/41071
2427 * lto.c (lto_fixup_type): Re-build the type variant chain.
2428
24292009-08-19 Richard Guenther <rguenther@suse.de>
2430
2431 PR lto/41071
2432 * lto.c (lto_fixup_constructor): New function.
2433 (lto_fixup_tree): Replace all types. Properly fixup
2434 constructors and constants.
2435
24362009-08-14 Richard Guenther <rguenther@suse.de>
2437
2438 * lto.c (read_cgraph_and_symbols): Exchange TREE_CHAIN use
2439 for DECL_LANG_SPECIFIC.
2440
24412009-08-13 Richard Guenther <rguenther@suse.de>
2442
2443 PR lto/41032
2444 * lto-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define to NULL.
2445
24462009-07-30 Richard Guenther <rguenther@suse.de>
2447
2448 PR lto/40903
2449 * lto.c (read_cgraph_and_symbols): After fixing up decls choose
2450 the largest decl for output and free TREE_CHAIN for further
2451 use.
2452
24532009-07-24 Diego Novillo <dnovillo@google.com>
2454
2455 * Make-lang.in: Add empty lto.install-plugin target.
2456
24572009-07-13 Diego Novillo <dnovillo@google.com>
2458
2459 * lto.c (lto_fixup_tree): Handle IMPORTED_DECL.
2460
24612009-07-11 Richard Guenther <rguenther@suse.de>
2462
2463 * lto-lang.c (lto_write_globals): Wrapup global decls.
2464
24652009-07-10 Richard Guenther <rguenther@suse.de>
2466
2467 * lto-lang.c (lto_init): Allocate one more location to make
2468 BUILTINS_LOCATION correct.
2469
24702009-07-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2471
2472 * lto.c (free_section_data): Cast computed_offset to caddr_t.
2473
24742009-07-06 Diego Novillo <dnovillo@google.com>
2475
2476 * lto.c (lto_fixup_type): Fixup TYPE_SIZE and
2477 TYPE_SIZE_UNIT.
2478
24792009-07-06 Diego Novillo <dnovillo@google.com>
2480
2481 * lto.c (preload_common_nodes): Remove.
2482 (lto_read_in_decl_state): Call lto_streamer_cache_get.
2483 (lto_read_decls): Call lto_data_in_create and
2484 lto_data_in_delete.
2485 (free_decl): Do not call ggc_free.
2486 (lto_main): Call lto_init_reader.
2487 * lto-lang.c (lto_type_for_size): Handle intTI_type_node.
2488 (lto_init): Initialize main_identifier_node if needed.
2489 Make ptrdiff_type_node be integer_type_node.
2490
24912009-06-19 Diego Novillo <dnovillo@google.com>
2492
2493 * lto.c: Remove code guarded by #ifdef LTO_STREAM_DEBUGGING.
2494 Remove code guarded by #ifdef GLOBAL_STREAMER_TRACE.
2495 Remove code guarded by #ifdef LOCAL_TRACE.
2496
24972009-06-18 Diego Novillo <dnovillo@google.com>
2498
2499 * lto.c: Update license to GPLv3.
2500 * lto-elf.c: Likewise.
2501 * common.c: Likewise.
2502 * lto-lang.c: Likewise.
2503 * lto.h: Remove superfluous include files. Update all
2504 users.
2505
25062009-06-17 Diego Novillo <dnovillo@google.com>
2507
2508 * lto.c (read_cgraph_and_symbols): Call input_cgraph.
2509
25102009-06-02 Diego Novillo <dnovillo@google.com>
2511
2512 * lto.c (lto_1_to_1_map): Ignore nodes that have not been
2513 read in.
2514 (materialize_cgraph): Only materialize nodes that have a
2515 representation on file.
2516
25172009-06-01 Diego Novillo <dnovillo@google.com>
2518
2519 * lto-lang.c (lto_handle_option): Hanlde OPT_Wabi.
2520
25212009-05-31 Diego Novillo <dnovillo@google.com>
2522
2523 * lto-lang.c (lto_type_for_mode): Handle all the modes
2524 handled in c_common_type_for_mode.
2525
25262009-05-21 Diego Novillo <dnovillo@google.com>
2527
2528 * lto-elf.c: Always include <gelf.h>.
2529 * config-lang.in (target_libs): Remove.
2530 (build_by_default): Set to no.
2531
25322009-05-15 Diego Novillo <dnovillo@google.com>
2533
2534 * lto.c (lto_materialize_function): Assert that DECL is
2535 not a builtin.
2536 (materialize_cgraph): Don't try to materialize builtin
2537 functions.
2538 * lto-section-out.c (write_symbol_vec): Do not write
2539 builtin functions.
2540
25412009-05-13 Diego Novillo <dnovillo@google.com>
2542
2543 * lto-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define.
2544
25452009-05-07 Diego Novillo <dnovillo@google.com>
2546
2547 * lto.c (lto_resolution_read): Add type casts for C++ warnings.
2548 (LTO_REGISTER_TYPE_AND_FIXUP_SUBTREE): Define.
2549 (lto_fixup_type): Call it for TYPE_POINTER_TO,
2550 TYPE_REFERENCE_TO, TYPE_CONTEXT and TYPE_CANONICAL.
2551 (lto_fixup_tree): Call gimple_register_type when *TP is a
2552 type.
2553 (lto_main): Call bitmap_obstack_initialize.
2554
25552009-04-22 Diego Novillo <dnovillo@google.com>
2556
2557 * lto.c (free_section_data): Tidy.
2558 (lto_1_to_1_map): Tidy.
2559 (lto_add_all_inlinees): Tidy.
2560 (prefix_name_with_star): New.
2561 (get_filename_for_set): New.
2562 (lto_wpa_write_files): Call cgraph_node_set_needs_ltrans_p
2563 to determine what cgraph node sets to write.
2564 Call get_filename_for_set to compute temporary file
2565 names.
2566 (lto_execute_ltrans): Do not execute LTRANS on files with
2567 names that start with '*'.
2568 Move logic to execute LTRANS together so that LTRANS is
2569 invoked only if there are any files to compile.
2570 (do_whole_program_analysis): Only remove output files
2571 that do not start with '*'.
2572
25732009-04-06 Diego Novillo <dnovillo@google.com>
2574
2575 * lto-lang.c (lto_post_options): Set flag_excess_precision_cmdline.
2576 * lto.c (read_cgraph_and_symbols): Set cgraph_function_flags_ready.
2577 (lto_add_all_inlinees): Tidy.
2578
25792009-03-26 Diego Novillo <dnovillo@google.com>
2580
2581 * lto.c: Include gimple.h.
2582 (lto_read_in_decl_state): Call gimple_register_type for
2583 every type in every stream.
2584 (lto_fixup_common): Call gimple_register_type if T has a
2585 type.
2586 (do_whole_program_analysis): Call print_lto_report.
2587 (lto_main): Call print_lto_report after cgraph_optimize.
2588 * Make-lang.in (lto.o): Add dependency on GIMPLE_H.
2589
25902009-03-24 Diego Novillo <dnovillo@google.com>
2591
2592 * Make-lang.in (lto-lang.o): Add dependency on TARGET_H and EXPR_H.
2593 (lto.o): Add dependency on GIMPLE_H.
2594
25952009-03-10 Simon Baldwin <simonb@google.com>
2596
2597 * lto.c (lto_read_all_file_options): Close any open file descriptor
2598 contained in file_data before freeing.
2599
26002009-02-24 Rafael Avila de Espindola <espindola@google.com>
2601
2602 * lto.c (lto_add_inline_clones): Don't add the master clone. Check
2603 for a decl in the original bitmap, not a node.
2604 (lto_add_all_inlinees): Remove original nodes that are not needed.
2605 (lto_scan_statics_in_cgraph_node): Don't care if the node is the master.
2606
26072009-02-24 Diego Novillo <dnovillo@google.com>
2608
2609 * lto.c (lto_materialize_function): Update
2610 lto_stats.num_function_bodies.
2611 (get_section_data): Initialize *LEN to 0.
2612 (lto_1_to_1_map): Update lto_stats.num_cgraph_partitions.
2613 (lto_wpa_write_files): Update lto_stats.num_cgraph_nodes.
2614 Update lto_stats.num_output_files.
2615 (read_cgraph_and_symbols): Update lto_stats.num_input_files.
2616 (materialize_cgraph): Update lto_stats.num_input_cgraph_nodes.
2617 (lto_main): Initialize lto_stats.
2618 If flag_lto_report is set, call print_lto_report.
2619
26202009-02-19 Diego Novillo <dnovillo@google.com>
2621
2622 Revert
2623
2624 2009-02-19 Rafael Avila de Espindola <espindola@google.com>
2625
2626 * lto.c (lto_add_inline_clones): Don't add the
2627 master clone. Check for a decl in the original
2628 bitmap, not a node.
2629 (lto_add_all_inlinees): Remove original nodes
2630 that are not needed.
2631 (lto_scan_statics_in_cgraph_node): Don't care if
2632 the node is the master.
2633 (lto_promote_cross_file_statics): Use a new
2634 context.seen_node_decls for each set
2635
26362009-02-19 Rafael Avila de Espindola <espindola@google.com>
2637
2638 * lto.c (lto_add_inline_clones): Don't add the master clone. Check
2639 for a decl in the original bitmap, not a node.
2640 (lto_add_all_inlinees): Remove original nodes that are not needed.
2641 (lto_scan_statics_in_cgraph_node): Don't care if the node is the master.
2642 (lto_promote_cross_file_statics): Use a new context.seen_node_decls
2643 for each set
2644
26452009-02-18 Diego Novillo <dnovillo@google.com>
2646
2647 * lto.c (lto_wpa_write_files): Use timers TV_WHOPR_WPA
2648 and TV_WHOPR_WPA_IO.
2649 (lto_execute_ltrans): Use timer TV_WHOPR_WPA_LTRANS_EXEC.
2650 (read_cgraph_and_symbols): Use timer TV_IPA_LTO_DECL_IO.
2651 (materialize_cgraph): Use timer TV_IPA_LTO_GIMPLE_IO.
2652 Use timer TV_WHOPR_WPA or TV_WHOPR_LTRANS or TV_LTO
2653 depending on command line flags.
2654 (do_whole_program_analysis): Use timer TV_WHOPR_WPA.
2655 (lto_main): Remove timer uses.
2656
26572009-02-18 Rafael Avila de Espindola <espindola@google.com>
2658
2659 * lto.c (lto_materialize_function): Don't set DECL_EXTERN to 0.
2660 (lto_wpa_write_files): Update calls to renamed functions.
2661
26622009-02-17 Diego Novillo <dnovillo@google.com>
2663
2664 PR 39203
2665 * lto-lang.c (lto_post_options): Disable -fwhole-program
2666 when running LTRANS.
2667
26682009-02-10 Diego Novillo <dnovillo@google.com>
2669
2670 * lto.c (read_cgraph_and_symbols): Fix comment.
2671
26722009-02-10 Diego Novillo <dnovillo@google.com>
2673
2674 * lto.c (read_cgraph_and_symbols): Read options from all
2675 IL files.
2676
26772009-02-10 Diego Novillo <dnovillo@google.com>
2678
2679 * lto.c (read_cgraph_and_symbols): Factor out of lto_main.
2680 (materialize_cgraph): Likewise.
2681 (do_whole_program_analysis): Likewise.
2682 (lto_main): Call read_cgraph_and_symbols,
2683 materialize_cgraph and do_whole_program_analysis.
2684
26852009-02-10 Simon Baldwin <simonb@google.com>
2686
2687 * lto.c: Include lto-opts.h.
2688 * (lto_main): Clear file options at loop start, read any saved
2689 options from the first file handled, and re-issue options.
2690 * Makefile.in (lto.o): Add dependency on lto-opts.h.
2691
26922009-02-02 Diego Novillo <dnovillo@google.com>
2693
2694 * lto.c (lto_main): Stop LTO_TIMER and use
2695 TV_WHOPR_WPA_LTRANS_EXEC when launching LTRANS.
2696
26972009-01-30 H.J. Lu <hongjiu.lu@intel.com>
2698
2699 PR lto/38995
2700 * lto-elf.c (init_shdr##BITS): Set the sh_addralign field
2701 to POINTER_SIZE.
2702
27032009-01-29 Ramana Radhakrishnan <ramana.r@gmail.com>
2704
2705 * Make-lang.in (LTO_EXE): Link with all
2706 BACKENDLIBS and not only GMPLIBS
2707
27082009-01-28 H.J. Lu <hongjiu.lu@intel.com>
2709
2710 PR bootstrap/38992
2711 * lto-elf.c: Include gelf.h instead of libelf.h.
2712 (lto_elf_file_close): Replace elfx_update_shstrndx with
2713 gelf_getehdr, elf_getscn, gelf_getshdr, gelf_update_shdr and
2714 gelf_update_ehdr.
2715
27162009-01-28 H.J. Lu <hongjiu.lu@intel.com>
2717
2718 PR middle-end/38996
2719 * lto-elf.c (DEFINE_INIT_EHDR): Initialize e_version.
2720
27212009-01-26 Diego Novillo <dnovillo@google.com>
2722
2723 * lto-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Update.
2724
27252009-01-26 Diego Novillo <dnovillo@google.com>
2726
2727 * lto-lang.c (lto_types_compatible_p): Move to gimple.c
2728 and rename into gimple_types_compatible_p.
2729
27302009-01-12 Rafael Avila de Espindola <espindola@google.com>
2731
2732 * lto-lang.c (lang_hooks): Remove the const qualifier.
2733
27342009-01-06 Diego Novillo <dnovillo@google.com>
2735
2736 * ltrans-driver: Mark 'all' target as phony.
2737
27382008-12-31 Diego Novillo <dnovillo@google.com>
2739
2740 * ltrans-driver: Execute a NOP action for target 'all'.
2741
27422008-12-19 Diego Novillo <dnovillo@google.com>
2743
2744 * lto.c (lto_1_to_1_map): Tidy.
2745
27462008-12-19 Diego Novillo <dnovillo@google.com>
2747
2748 * lto-elf.c (lto_elf_file_open): When FILENAME cannot
2749 be opened, show its name.
2750 * ltrans-driver: If $verbose is set, do not use parallelism.
2751
27522008-12-17 Rafael Avila de Espindola <espindola@google.com>
2753
2754 * lto.c (lto_fixup_function): New.
2755 (lto_fixup_tree): Call lto_fixup_function.
2756
27572008-12-14 Doug Kwan <dougkwan@google.com>
2758
2759 * lto.c (lto_1_to_1_map): Create a cgraph node set for any global
2760 variables if there is no function.
2761
27622008-12-10 Simon Baldwin <simonb@google.com>
2763
2764 * ltrans-driver: Always run make in silent mode, to avoid make's
2765 trace on stdout interfering with lto-wrapper output.
2766
27672008-12-10 Doug Kwan <dougkwan@google.com>
2768
2769 * lto.c (lto_add_inline_clones): Do not force master clones of
2770 inlined functions already in SET to be static inline.
2771
27722008-12-04 Doug Kwan <dougkwan@google.com>
2773
2774 * lto.c (globalize_context_t): New type to store states in
2775 globalization of cross-file statics.
2776 (globalize_cross_file_statics): New.
2777 (lto_scan_statics_in_ref_table): Walk tree to look for reachable
2778 static decls that need to be fixed up.
2779 (lto_scan_statics_in_cgraph_node): Change call interface to use
2780 a globalize_context_t CONTEXT for all states used.
2781 (lto_scan_statics_in_remaining_global_vars): New.
2782 (lto_promote_cross_file_statics): Use new call interface of
2783 LTO_SCAN_STATICS_IN_CGRAPH_NODE. Handle remaining externally
2784 visible vars in the last set.
2785
27862008-12-03 Diego Novillo <dnovillo@google.com>
2787
2788 * lto.c (lto_fixup_tree): Do not emit an error when
2789 PREVAILING throw but T doesn't.
2790
27912008-12-02 Doug Kwan <dougkwan@google.com>
2792
2793 * lto.c (lto_scan_statics_in_ref_table): New function factored out
2794 from code in ...
2795 (lto_scan_statics_in_cgraph_node): Handle both file-scope static
2796 variables and functions.
2797 (lto_promote_cross_file_statics): Rename bitmaps to SEEN_DECLS
2798 and GLOBAL_DECLS from SEEN_VARS and GLOBAL_VARS.
2799
28002008-11-29 Diego Novillo <dnovillo@google.com>
2801
2802 * lto.c: Include timevar.h.
2803 (lto_materialize_function): Tidy. Add comments.
2804 (lto_wpa_write_files): Tidy.
2805 (lto_execute_ltrans): Tidy.
2806 (lto_main): Add local variable LTO_TIMER. Initialize it
2807 to one of TV_WHOPR_WPA, TV_WHOPR_LTRANS or TV_LTO.
2808 Start and stop the timer.
2809 Tidy comments.
2810 * Make-lang.in (lto.o): Add dependency on timevar.h.
2811 * ltrans-driver: React to -v and -save-temps.
2812 Use simple heuristic to determine how much parallelism to
2813 use when executing make.
2814
28152008-11-12 Doug Kwan <dougkwan@google.com>
2816
2817 * lto.c (lto_bitmap_obstack): Remove var.
2818 (lto_materialize_function): Do nothing instead of marking function
2819 body in file if flag_wpa is true.
2820 (lto_add_all_inlinees): Use bitmap functions in lto-utils.c.
2821 (lto_scan_statics_in_cgraph_node): New function.
2822 (lto_promote_cross_file_statics): Same.
2823 (lto_wpa_write_files): Call lto_promote_cross_file_statics.
2824 Use bitmap functions in lto-utils.c. Remove unsued label OUT.
2825 * Make-lang.in (lto/lto.o): Add lto-utils.h to dependency list.
2826
28272008-11-09 Diego Novillo <dnovillo@google.com>
2828
2829 * lto/lto.c (lto_fixup_tree): Change error message locus
2830 information to include location of mismatching
2831 declaration.
2832 Use TREE_NO_WARNING to avoid repeated messages.
2833 (lto_main): If lto_fixup_decls emitted any errors, exit.
2834 * lto/lto-lang.c: Don't include libfuncs.h and except.h
2835 (lto_init_options): Don't enable exceptions by default.
2836 (lto_eh_runtime_type): Move to lto-function-in.c
2837 (lto_init_eh): Likewise.
2838 (lto_init): Don't call lto_init_eh.
2839 * lto/Make-lang.in (lto-lang.o): Remove dependency on
2840 libfuncs.h and except.h.
2841
28422008-10-30 Diego Novillo <dnovillo@google.com>
2843
2844 * lto.c (lto_read_decls): Declare debug_main only if
2845 LTO_STREAM_DEBUGGING is enabled.
2846
28472008-10-30 Simon Baldwin <simonb@google.com>
2848
2849 * lto.c (lto_wpa_write_files): Create intermediate files with
2850 make_cwd_temp_file().
2851 (lto_maybe_unlink): New. Delete intermediate WPA files unless
2852 WPA_SAVE_LTRANS is set.
2853 (lto_main): Call lto_maybe_unlink() for intermediate WPA files.
2854 * ltrans-driver: Do not strip directory from output files.
2855
28562008-10-29 Doug Kwan <dougkwan@google.com>
2857
2858 * lto.c (free_decl): Call lto_symtab_clear_resolution when freeing
2859 DECL.
2860 * Make-lang.in (LTO_OBJS): Remove lto/lto-symtab.o
2861 (lto/lto-symtab.o): Remove rule.
2862 * lto-tree.h (struct lang_identifier): Remove LTO specific fields.
2863 (struct lang_decl): Remove RESOLUTION and add DUMMY in struct.
2864 (LANG_IDENTIFIER_CAST, LTO_IDENTIFIER_DECL, LTO_DECL_RESOLUTION):
2865 Remove macros.
2866 lto-symtab.c (File): Move up one level.
2867 lto-lang.c (cgraph.h): Remove include.
2868 (input_overwrite_node, input_node, input_edge, input_cgraph_1,
2869 input_cgraph): Move to lto-cgraph.c in gcc directory above.
2870 (LANG_HOOKS_INPUT_CGRAPH): Remove use of macro.
2871
28722008-10-24 Rafael Espindola <espindola@google.com>
2873
2874 * lto-function-in.c (get_resolution): Return LDPR_PREEMPTED_IR for
2875 non prevailing weak symbols.
2876
28772008-10-24 Rafael Espindola <espindola@google.com>
2878
2879 * lto-lang.c (input_cgraph_1): Iterate over nodes, not cgraph_nodes.
2880
28812008-10-24 Rafael Espindola <espindola@google.com>
2882
2883 * lto-lang.c (input_node): Avoid casts from pointers to ints of
2884 different types.
2885
28862008-10-23 Simon Baldwin <simonb@google.com>
2887
2888 * lto-lang.c (input_node): Save the node reference, rather than the
2889 node pointer, in node->inlined_to.
2890 (input_cgraph_1): Convert node references into node pointers.
2891
28922008-10-22 Diego Novillo <dnovillo@google.com>
2893 Rafael Espindola <espindola@google.com>
2894
2895 * lto.c (lto_resolution_read): Tidy.
2896 * lto-symtab.c (lto_symtab_prevailing_decl): Do not
2897 abort if RET is NULL.
2898
28992008-10-22 Doug Kwan <dougkwan@google.com>
2900
2901 * lto.c (lto_fixup_tree): Check for NOTHROW conflict only if
2902 exceptions flag is given.
2903 * lto-lang.c: (lto_init_options) Set default exceptions flag.
2904 (lto_init_eh): Remove exceptions flag initialization.
2905 (lto_init): Only call lto_init_eh if exceptions flag is set.
2906
29072008-10-21 Diego Novillo <dnovillo@google.com>
2908
2909 * lto.c: Tidy some formatting.
2910 * lto.h: Likewise.
2911
29122008-10-21 Simon Baldwin <simonb@google.com>
2913
2914 * lto-symtab.c: (lto_same_type_p): Types cannot be equal if one of
2915 them is NULL (but not the other).
2916
29172008-10-17 Diego Novillo <dnovillo@google.com>
2918
2919 * ltrans-driver: Divert output from make to a temporary file.
2920 Show it if the call to make failed.
2921
29222008-10-15 Diego Novillo <dnovillo@google.com>
2923
2924 * lto.c (lto_wpa_write_files): Reformat do-while loop.
2925 Do not print TEMP_FILENAME
2926 * ltrans-driver: Call make with -s.
2927
29282008-10-15 Diego Novillo <dnovillo@google.com>
2929
2930 * lto-symtab.c (lto_symtab_merge_decl): Do not force
2931 TREE_STATIC on global symbols.
2932
29332008-10-14 Ollie Wild <aaw@google.com>
2934
2935 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): Remove.
2936 (LTRANS_DRIVER_EXE): Add.
2937 (lto.all.cross): Add LTRANS_DRIVER_EXE.
2938 (lto.all.encap): Add LTRANS_DRIVER_EXE.
2939 (lto.install.common): Remove ltrans-driver.
2940 (lto.mostlyclean): Add LTRANS_DRIVER_EXE.
2941 (LTRANS_DRIVER_EXE): New build rule.
2942 * config-lang.in (compilers): Add ltrans-driver.
2943
29442008-10-14 Diego Novillo <dnovillo@google.com>
2945
2946 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): Disable transformation
2947 of program name.
2948
29492008-10-13 Ollie Wild <aaw@google.com>
2950
2951 * lang-spec.h (@lto): Replace lto1_options with cc1_options.
2952 * lto.c (lto_execute_ltrans): Add "-fno-wpa -fltrans -xlto" to CFLAGS.
2953 * ltrans-driver (LTRANS_FLAGS): Remove.
2954
29552008-10-08 Doug Kwan <dougkwan@google.com>
2956
2957 * lto.c (lto_fixup_tree): Remove ATTRIBUTE_UNUSED from DATA.
2958 Handle new tree codes RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE
2959 and TREE_BINFO. Also move code handling FUNCTION_DECL and VAR_DECL
2960 from lto_fixup_state to here.
2961 (lto_fixup_state): Take an lto_fixup_data_t object DATA instead of
2962 just a free-list. Fix up types also. Move decl merging code to
2963 lto_fixup_tree.
2964 (lto_fixup_state_aux): Change AUX to point to an lto_fixup_data_t
2965 object.
2966 (lto_fixup_decls): Use another pointer set to avoid multiple
2967 walking of nodes except for DECLs to be replaced. Pass an
2968 lto_fixup_data_t object to tree-walker.
2969
29702008-10-08 Rafael Espindola <espindola@google.com>
2971
2972 * lto-symtab.c (lto_symtab_set_resolution): New.
2973 (lto_symtab_merge_decl): Use lto_symtab_set_resolution and
2974 lto_symtab_get_resolution.
2975 (lto_symtab_prevailing_decl): Return decl for non public decls.
2976 (lto_symtab_get_resolution): New.
2977 * lto.c (lto_fixup_tree, lto_fixup_state): Remove unecessary checks.
2978
29792008-10-06 Rafael Espindola <espindola@google.com>
2980
2981 * lto-lang.c: Include cgraph.h.
2982 (input_overwrite_node, input_node, input_edge, input_cgraph_1,
2983 input_cgraph): Moved from lto-cgraph.c.
2984 (LANG_HOOKS_INPUT_CGRAPH): New.
2985
29862008-10-03 Rafael Espindola <espindola@google.com>
2987
2988 * lto.c (lto_fixup_tree, lto_fixup_state): Fix the FIXME.
2989
29902008-10-03 Rafael Espindola <espindola@google.com>
2991
2992 * lto-symtab.c (lto_symtab_overwrite_decl): Remove. Remove all calls.
2993 (lto_symtab_merge_decl): Update LTO_IDENTIFIER_DECL the reflect the
2994 prevailing definition. Don't mark TREE_NOTHROW differences.
2995 * lto.c (lto_fixup_tree): New.
2996 (lto_fixup_state): New.
2997 (lto_fixup_state_aux): New.
2998 (free_decl): New.
2999 (lto_fixup_decls): New.
3000 (lto_main): Call lto_fixup_decls.
3001
30022008-10-02 Ollie Wild <aaw@google.com>
3003
3004 * lang.opt (fltrans): Moved from common.opt. Remove RejectNegative
3005 and Init.
3006 (fwpa): Moved from common.opt. Remove RejectNegative and Init.
3007 * lto-lang.c (lto_post_options): Add validation and fixups for
3008 -fltrans and -fwpa.
3009
30102008-10-02 Rafael Espindola <espindola@google.com>
3011
3012 * lto-symtab.c (lto_symtab_merge_var, lto_symtab_merge_fn,
3013 lto_symtab_merge_decl): Return void.
3014 (lto_symtab_prevailing_decl): New.
3015
30162008-09-30 Rafael Espindola <espindola@google.com>
3017
3018 * lto-symtab.c (lto_symtab_compatible): Remove the check for already
3019 defined symbols.
3020 (lto_symtab_overwrite_decl): Copy LTO_DECL_RESOLUTION.
3021 (lto_symtab_merge_decl): Store symbol resolution in LTO_DECL_RESOLUTION.
3022 Check for already defined symbols.
3023 * lto-tree.h (lang_decl): Remove dummy and add resolution fields.
3024 (LTO_IDENTIFIER_RESOLUTION): Remove.
3025 (LTO_DECL_RESOLUTION): New.
3026
30272008-09-30 Rafael Espindola <espindola@google.com>
3028
3029 * lto.c (lto_read_decls): Use new input_tree signature.
3030
30312008-09-26 Doug Kwan <dougkwan@google.com>
3032
3033 * lto.c (lto_main): Call lto_fixup_nothrow_decls to fix up function
3034 bodies affected by exception attribute merging of DECLs.
3035 * lto-symtab.c (lto_symtab_merge_decl): Handle exception attribute
3036 merging.
3037
30382008-09-25 Rafael Espindola <espindola@google.com>
3039
3040 * Make-lang.in (PLUGIN_API_H, LTO_TREE_H): New.
3041 (lto/lto-lang.o, lto/lto.o, lto/lto-symtab.o) Use LTO_TREE_H.
3042 * lto-symtab.c (lto_symtab_compatible): New.
3043 (lto_symtab_overwrite_decl): New.
3044 (lto_symtab_merge_decl): Refactor to use the above functions
3045 and the resolution from lang_identifier.
3046 * lto-tree.h: Include plugin-api.h.
3047 (lang_identifier): Add resolution.
3048 (LTO_IDENTIFIER_RESOLUTION): New.
3049
30502008-09-25 Ollie Wild <aaw@google.com>
3051
3052 * lang.opt (fltrans-output-list=): New option.
3053 * lto.c (lto_execute_ltrans): Output file names to ltrans_output_list.
3054
30552008-09-25 Rafael Espindola <espindola@google.com>
3056
3057 * lto.c (lto_resolution_read): Initialize ret;
3058
30592008-09-24 Ollie Wild <aaw@google.com>
3060
3061 * lto.c (sys/mman.h): Move include.
3062 (lto_wpa_write_files): Return a list of written files.
3063 (lto_execute_ltrans): New function.
3064 (lto_main): Call lto_execute_ltrans.
3065 (ltrans-driver): New file.
3066 * lto-lang.c (DEFAULT_LTRANS_DRIVER): New macro.
3067 (DEAULT_LTRANS_DRIVER_LEN): New macro.
3068 (lto_init_options): Initialize ltrans_driver.
3069 (lto_handle_option): Fix incorrect default output value.
3070 * lang.opt (fltrans-driver=): New option.
3071 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): New variable.
3072 (lto.install-common): Add lto/ltrans-driver.
3073
30742008-09-24 Rafael Espindola <espindola@google.com>
3075
3076 * Make-lang.in (LTO_OBJS): Add lto/common.o.
3077 (lto/lto.o): Depend on lto/common.h.
3078 (lto/common.o): New.
3079 * lang.opt (resolution): New.
3080 * lto-lang.c (resolution_file_name): New.
3081 (lto_handle_option): Handle OPT_resolution.
3082 * lto-symtab.c (lto_symtab_merge_decl): Add a resolution argument.
3083 (lto_symtab_merge_var,lto_symtab_merge_fn): Add a resolution argument.
3084 pass it to lto_symtab_merge_decl.
3085 * lto.c: Include common.h.
3086 (lto_read_decls): Add resolutions and resolutions_size arguments.
3087 Initialize data_in.globals_resolution and
3088 data_in.globals_resolution_size.
3089 (index_and_symbol_resolution): New.
3090 (lto_resolution_read): New.
3091 (lto_file_read): Add argument resolution_file.
3092 Read resolution.
3093 * lto.h (resolution_file_name): New.
3094
30952008-09-23 Rafael Espindola <espindola@google.com>
3096
3097 * common.c: Update description.
3098 * common.h: Update description.
3099
31002008-09-23 Rafael Espindola <espindola@google.com>
3101
3102 * common.c: Moved from lto-plugin.
3103 * common.h: Moved from lto-plugin.
3104
31052008-09-22 Doug Kwan <dougkwan@google.com>
3106
3107 * lto.c (VEC(bitmap,heap)): Declare.
3108 (lto_materialize_function): Handle WAP mode specially.
3109 (lto_add_inline_clones): New.
3110 (lto_add_all_inlinees): Changle algorithm and to use bitmaps. Also
3111 return a bitmap of inlined decls.
3112 (lto_wpa_write_files): Handle all DECLs brought in by inlining.
3113 (lto_main): Call reset_inline_failed to reset inlining states.
3114 Check call-graph after WPA inlining.
3115 * lto-lang.c (lto_init): Do not clear flag_generate_lto
3116 unconditionally.
3117
31182008-09-19 Doug Kwan <dougkwan@google.com>
3119
3120 lto.c (lto_main): Remove unsued wrapper code.
3121 lang-specs.h (@lto): Use lto1_options instead of cc1_options.
3122
31232008-09-19 Rafael Espindola <espindola@google.com>
3124
3125 * lto-symtab.c: Include lto-tree-in.h.
3126 * lto-tree.h (lto_symtab_merge_var, lto_symtab_merge_fn): Remove.
3127 * lto.h (lto_symtab_merge_var, lto_symtab_merge_fn): Remove
3128 * Make-lang.in (lto/lto-symtab.o): Add lto-tree-in.h.
3129
31302008-09-17 Paolo Bonzini <bonzini@gnu.org>
3131 Rafael Avila de Espindola <espindola@google.com>
3132
3133 * lto-lang.c (COMPOUND_LITERAL_EXPR_DECL_STMT,
3134 COMPOUND_LITERAL_EXPR_DECL): Remove.
3135 (emit_local_var): Remove.
3136 (lto_expand_expr): Remove.
3137 (lto_staticp): Remove.
3138 (LANG_HOOKS_EXPAND_EXPR): Remove.
3139 (LANG_HOOKS_STATICP): Remove.
3140
31412008-09-11 Diego Novillo <dnovillo@google.com>
3142
3143 * lto-lang.c: Include except.h and libfuncs.h.
3144 (lto_init_eh): New.
3145 (lto_init): Call it.
3146 Set flag_generate_lto to 0.
3147 * Make-lang.in (lto-lang.o): Add dependency on except.h
3148 and libfuncs.h.
3149
31502008-09-09 Bill Maddox <maddox@google.com>
3151
3152 * lto-lang.c: Include header file expr.h.
3153 (COMPOUND_LITERAL_EXPR_DECL_STMT,
3154 COMPOUND_LITERAL_EXPR_DECL): Copied from c-common.h.
3155 (emit_local_var): Copied from c-semantics.c.
3156 (lto_expand_expr, lto_staticp): Copied from c_expand_expr
3157 and c_staticp in c-common.c.
3158 (LANG_HOOKS_EXPAND_EXPR,LANG_HOOKS_STATICP): Redefined.
3159
31602008-09-08 Diego Novillo <dnovillo@google.com>
3161
3162 * lto-lang.c (lto_global_bindings_p): Return 1 during
3163 IPA passes.
3164
31652008-09-07 Diego Novillo <dnovillo@google.com>
3166
3167 * lto.c: Tidy formatting.
3168
31692008-08-04 Bill Maddox <maddox@google.com>
3170
3171 * lto-symtab.c (lto_symtab_merge_decl): Add comment.
3172
31732008-09-03 Doug Kwan <dougkwan@google.com>
3174
3175 lto.c (lto_add_all_inlinees): Reset FAILED_REASON of edges to
3176 CIF_OK instead of NULL.
3177
31782008-09-02 Diego Novillo <dnovillo@google.com>
3179 Simon Baldwin <simonb@google.com>
3180
3181 * lto-lang.c (lto_type_for_size): Rewrite. Adapt from
3182 c_common_type_for_size.
3183 (lto_type_for_mode): Remove ATTRIBUTE_UNUSED markers.
3184 (lto_init): Call linemap_add.
3185 (signed_and_unsigned_types): Remove.
3186
31872008-08-29 Diego Novillo <dnovillo@google.com>
3188
3189 * lto-lang.c (handle_noreturn_attribute): New local function.
3190 (handle_const_attribute): New local function.
3191 (handle_malloc_attribute): New local function.
3192 (handle_pure_attribute): New local function.
3193 (handle_novops_attribute): New local function.
3194 (handle_nonnull_attribute): New local function.
3195 (handle_nothrow_attribute): New local function.
3196 (handle_sentinel_attribute): New local function.
3197 (handle_type_generic_attribute): New local function.
3198 (handle_format_attribute): New local function.
3199 (handle_format_arg_attribute): New local function.
3200 (lto_attribute_table): Declare.
3201 (lto_format_attribute_table): Declare.
3202 (lto_init_attributes): New local function.
3203 (lto_define_builtins): Call it.
3204 Call targetm.init_builtins and build_common_builtin_nodes.
3205 (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Define.
3206 (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Define.
3207
32082008-08-28 Diego Novillo <dnovillo@google.com>
3209
3210 * Make-lang.in (lto-lang.o): Replace tree-gimple.h with
3211 $(GIMPLE_H).
3212 (lto-symtab.o): Add dependency on $(GIMPLE_H).
3213 * lto-lang.c: Include gimple.h instead of tree-gimple.h.
3214 * lto-symtab.c: Include gimple.h.
3215 * lto-tree.h (chain_next): Replace GENERIC_NEXT with
3216 TREE_CHAIN.
3217
32182008-08-27 Doug Kwan <dougkwan@google.com>
3219
3220 * lto.c (vec.h, bitmap.h, pointer-set.h, ipa-prop.h, ggc.h,
3221 gt-lto-lto.h): New includes.
3222 (lto_materialize_function): Do not read in function body in WPA mode.
3223 Format a line to fit in 80 columns.
3224 (lto_cgraph_node_sets): New garbage collected variable.
3225 (lto_1_to_1_map, lto_add_all_inlinees, lto_wpa_write_files):
3226 New functions.
3227 (lto_main): Initialize bitmap obstack. Add code to handle WPA mode.
3228 * Make-lang.in (LTO_H): Replace filename lto-section-in.h with
3229 variable LTO_SECTION_IN_H.
3230 (lto/lto.o): Include gt-lto-lto-c.h ggc.h ,VEC_H, BITMAP_H,
3231 pointer-set.h and IPA_PROP_H. Also replace filename lto-section-in.h
3232 with variable LTO_SECTION_IN_H.
3233 * config-lang.in (gtfiles): Add lto/lto.c.
3234 * lto-symtab.c (lto_symtab_merge_decl): Set DECL_CONTEXT of
3235 merged DECL_RESULT correctly.
3236
32372008-08-26 Bill Maddox <maddox@google.com>
3238
3239 * lto-lang.c Include tree-gimple.h.
3240 (lto_mark_addressable): Call mark_addressable rather than
3241 asserting.
3242 (lto_post_options): Suppress debug info generation.
3243 * Make-lang.in: Add dependency of lto-lang.o on tree-gimple.h.
3244
32452008-08-25 Bill Maddox <maddox@google.com>
3246
3247 * lto-symtab.c (lto_symtab_merge_decl): Remove a suspect
3248 assertion and leave an explanatory comment in its place.
3249
32502008-08-21 Doug Kwan <dougkwan@google.com>
3251
3252 * lto.c (preload_common_nodes): Call lto_get_common_nodes to get a list
3253 of common nodes instead of computing locallly.
3254 (lto_read_in_decl_state): New.
3255 (lto_read_decls): Change code for udpate in struct lto_decl_header.
3256 Read global and per-function in-decl states.
3257 * Make-lang.in (LTO_H): Update dependency.
3258 (lto/lto.o): Same.
3259 (lto-symtab.c): Merge (revision 139039)
3260 * lto-symtab.c (lto_symtab_merge_decl): Merge DECL_RESULT.
3261
32622008-08-21 Rafael Espindola <espindola@google.com>
3263
3264 * config-lang.in (target_libs): New.
3265
32662008-08-20 Bill Maddox <maddox@google.com>
3267
3268 * lto.c (current_lto_file): Remove GTY marker from static
3269 variable. Remove include of file gt-lto-lto.h.
3270 * Make-lang.in: Remove dependency of lto/lto.o on
3271 gt-lto-lto.h.
3272 * lto-elf.c (lto_file_close): Removed.
3273 (lto_elf_file_open): Use XCNEW instead of GGC_CNEW to
3274 allocate lto_elf_file object.
3275 (lto_elf_file_close): Free lto_elf_file object after close.
3276 * lto.h (struct lto_file_struct): Remove GTY marker.
3277 * config-lang.in: Remove lto/lto.h and lto/lto.c from
3278 gtfiles.
3279
32802008-08-20 Bill Maddox <maddox@google.com>
3281
3282 * lto.c (lto_read_decls): Provide dummy argument to input_tree
3283 to conform to its new signature.
3284 * lto-symtab.c (lto_symtab_merge_decl): Do not invoke ggc_free
3285 on discarded node here, now called in global_vector_fixup.
3286
32872008-08-09 Bill Maddox <maddox@google.com>
3288
3289 * lto.c (preload_common_nodes): Verify that fileptr_type_node
3290 has not been set to a front-end-specific value.
3291
32922008-08-05 Doug Kwan <dougkwan@google.com>
3293
3294 * Make-lang.in (lto-symtab.o): Add missing dependencies to fix
3295 build breakage.
3296
32972008-07-30 Bill Maddox <maddox@google.com>
3298
3299 * lto.c (lto_materialize_function): Call lto_original_decl_name.
3300 Remove obsolete comments.
3301 (lto_read_decls): Remove initialization of deleted field data_in.global.
3302 Tidy up comments.
3303 (lto_main): Remove redundant initialization of section_hash_table.
3304 * lto-elf.c: Removed obsolete comments.
3305 * lto.h: Tidy up comments.
3306 * lto-symtab.c (lto_least_common_multiple): New function.
3307 (lto_symtab_merge_decl): Merge variable alignments in some cases.
3308 Tidy up comments.
3309
33102008-07-25 Diego Novillo <dnovillo@google.com>
3311 Bill Maddox <maddox@google.com>
3312
3313 * lto.c: Re-order include files.
3314 Include lto-section-out.h.
3315 (preload_common_nodes): Add debugging output.
3316 Add new local INDEX_TABLE.
3317 Call preload_common_node.
3318 * Make-lang.in (lto.o): Add dependency on lto-section-out.h
3319
33202008-07-13 Bill Maddox <maddox@google.com>
3321
3322 * lto.c (lto_read_decls): Cast pointer to const char * to avoid
3323 unwanted scaling during pointer addition.
3324
33252008-07-11 Bill Maddox <maddox@google.com>
3326 Diego Novillo <dnovillo@google.com>
3327
3328 * lto.c (lto_read_decls): Fix C++ compatibility warnings.
3329 Make code const-correct.
3330 (lto_file_read): Fix C++ compatibility warnings.
3331 (lto_read_section_data): Fix C++ compatibility warnings.
3332 (lto_get_section_data): Use CONST_CAST to avoid warning when
3333 const pointer passed to free.
3334 * lto-elf.c (lto_elf_build_section_table): Fix C++
3335 compatibility warnings.
3336 (lto_elf_append_data): Fix C++ compatibility warnings. Use CONST_CAST
3337 to avoid warning assigning const pointer to d_buf field of Elf_Data.
3338 (lto_get_current_out_file): Fix C++ compatibility warnings.
3339
33402008-07-11 Diego Novillo <dnovillo@google.com>
3341
3342 * Make-lang.in (lto-warn): Define.
3343
33442008-07-03 Simon Baldwin <simonb@google.com>
3345
3346 * lto.c (lto_read_decls): Wrapped debug-only data items within #ifdef
3347 LTO_STREAM_DEBUGGING.
3348
33492008-06-27 Ollie Wild <aaw@google.com>
3350
3351 * lto-elf.c (lto-section-out.h): New include.
3352 (struct lto_elf_file): Remove bits member. Add scn, shstrtab_stream,
3353 and data members.
3354 (cached_file_attrs): New static variable.
3355 (lto_elf_get_shdr, lto_elf_free_shdr): Remove elf_file parameter.
3356 Use cached_file_attrs for checking bits.
3357 (lto_elf_build_section_table): Remove elf_file argument from
3358 lto_elf_get_shdr and lto_elf_free_shdr calls.
3359 (DEFINE_INIT_SHDR): New macro.
3360 (init_shdr32, init_shdr64): New functions defined via the
3361 DEFINE_INIT_SHDR macro.
3362 (lto_elf_begin_section_with_type): New function.
3363 (lto_elf_begin_section): New function.
3364 (lto_elf_append_data): New function.
3365 (lto_elf_end_section): New function.
3366 (DEFINE_VALIDATE_EHDR): New macro.
3367 (validate_ehdr32, validate_ehdr64): New functions defined via the
3368 DEFINE_VALIDATE_EHDR macro.
3369 (validate_file): New function.
3370 (DEFINE_INIT_EHDR): New macro.
3371 (init_ehdr32, init_ehdr64): New functions defined via the
3372 DEFINE_INIT_EHDR macro.
3373 (init_ehdr): New function.
3374 (lto_elf_file_open): Add support for writable files. Move some
3375 validation logic to validate_file.
3376 (lto_elf_file_close): Add support for writable files. Write file data
3377 and free data blocks.
3378 (current_out_file): New static variable.
3379 (lto_set_current_out_file): New function.
3380 (lto_get_current_out_file): New function.
3381 * lto.c (lto_main): Add writable argument to lto_elf_file_open calls.
3382 Add temporary initialization for testing ELF serialization.
3383 * lto.h (lto-section-out.h): New include.
3384 (struct lto_file_struct): Slight modification to comment.
3385 (lto_elf_file_open): Add writable parameter.
3386 (lto_elf_begin_section): New function declaration.
3387 (lto_elf_append_data): New function declaration.
3388 (lto_elf_end_section): New function declaration.
3389 (lto_set_current_out_file, lto_get_current_out_file): New function
3390 declarations.
3391 * lto-lang.c (LANG_HOOKS_BEGIN_SECTION): Set as lto_elf_begin_section.
3392 (LANG_HOOKS_APPEND_DATA): Set as lto_elf_append_data.
3393 (LANG_HOOKS_END_SECTION): Set as lto_elf_end_section.
3394 * Make-lang.in (LTO_H): Add lto-section-out.h.
3395
33962008-06-12 Ollie Wild <aaw@google.com>
3397
3398 * lto.h (struct lto_file_vtable_struct): Remove.
3399 (struct lto_file_struct): Remove vtable member.
3400 * lto-elf.c (lto_file_init): Remove vtable argument.
3401 (lto_elf_map_optional_lto_section): Remove.
3402 (lto_elf_unmap_section): Remove.
3403 (lto_elf_file_vtable): Remove.
3404 (lto_elf_file_open): Remove lto_elf_file_vtable argument from
3405 lto_file_init call.
3406 (lto_elf_find_section_data): Remove.
3407
34082008-06-11 Ollie Wild <aaw@google.com>
3409
3410 * lto.c (lto_file_read): Add const qualifier to data variable.
3411
34122008-06-11 Diego Novillo <dnovillo@google.com>
3413
3414 Merge from lto-streamber sub-branch.
3415
3416 2008-06-04 Ollie Wild <aaw@google.com>
3417
3418 * lto.c: Remove inclusion of dwarf2.h and dwarf2out.h.
3419 * Make-lang.in (lto.o): Remove dependency on dwarf2.h.
3420
3421 2008-05-28 Bill Maddox <maddox@google.com>
3422
3423 Replace the DWARF reader in the LTO front-end.
3424
3425 * lto.c: Include lto-tree-in.h, lto-tags.h.
3426 (enum DWARF2_class, DW_cl_constant, struct
3427 DWARF2_form_data, struct lto_context,
3428 lto_fd_init, lto_info_fd_init,
3429 lto_abbrev_fd_init, lto_info_fd_close,
3430 lto_file_init, lto_file_close,
3431 lto_file_corrupt_error, lto_abi_mismatch_error,
3432 LTO_CHECK_INT_VAL, LTO_READ_TYPE,
3433 lto_read_uleb128, lto_read_sleb128,
3434 lto_read_initial_length, lto_abbrev_read_attrs,
3435 lto_abbrev_read, lto_abbrev_read_lookup,
3436 lto_read_section_offset,
3437 lto_read_comp_unit_header, find_cu_for_offset,
3438 lto_get_file_name,
3439 lto_resolve_reference,lto_read_form,
3440 attribute_value_as_int,
3441 make_signed_host_wide_int,
3442 attribute_value_as_constant, lto_cache_hash,
3443 lto_cache_eq, lto_cache_store_DIE,
3444 lto_cache_lookup_DIE, lto_find_integral_type,
3445 lto_find_integral_type_1,
3446 LTO_BEGIN_READ_ATTRS_UNCHECKED,
3447 LTO_BEGIN_READ_ATTRS, LTO_END_READ_ATTRS,
3448 lto_unsupported_attr_error, lto_get_identifier,
3449 lto_read_referenced_type_DIE,
3450 lto_read_compile_unit_DIE,
3451 lto_read_array_type_DIE,
3452 lto_read_structure_union_class_type_DIE,
3453 lto_read_enumerator_DIE,
3454 lto_read_enumeration_type_DIE,
3455 lto_read_only_for_child_DIEs,
3456 lto_read_only_for_child_DIEs,
3457 lto_read_member_DIE, lto_read_abbrev,
3458 lto_read_variable_formal_parameter_constant_DIE,
3459 lto_get_body): Removed.
3460 (preload_common_nodes): New function.
3461 (lto_read_decls): Convert for new global streamer.
3462 (lto_materialze_file_data,
3463 lto_read_subroutine_type_subprogram_die,
3464 lto_read_unspecified_parameters_DIE,
3465 lto_read_typedef_DIE,
3466 lto_read_pointer_reference_type_DIE,
3467 lto_read_subrange_type_DIE,
3468 lto_read_base_type_DIE,
3469 lto_read_const_volatile_restrict_type_DIE,
3470 lto_read_namespace_DIE,
3471 lto_read_unspecified_type_DIE, lto_read_DIE,
3472 lto_read_child_DIEs, lto_collect_child_DIEs):
3473 Removed.
3474 (lto_info_read, lto_set_cu_context): Removed.
3475 (lto_file_read): Convert for new global streamer.
3476 (lto_resolve_type_ref, lto_read_DIE_at_ptr,
3477 lto_resolve_var_ref, lto_resolve_fn_ref,
3478 lto_resolve_field_ref, lto_resolve_typedecl_ref,
3479 lto_resolve_namespacedecl_ref): Removed.
3480 (lto_file_init, lto_file_close): Moved to lto-elf.c.
3481 * lto-tree.h (lto_symtab_merge_var,
3482 lto_symtab_mergee_fun): Declare here.
3483 * lto-elf.c (lto_file_init, lto_file_close): Moved from lto.c.
3484 (lto_elf_file_open): Removed code to read DWARF debug sections.
3485 * lto.h (lto_context, DWARF2_attr, DWARF2_abbrev,
3486 DWARF2_CompUnit, lto_die_ptr,
3487 lto_die_cache_entry, lto_fd, lto_info_fd,
3488 lto_abbrev_fd): Removed.
3489 (lto_file): Removed debug_info and debug_abbrev fields.
3490 (lto_ref): Removed.
3491 (lto_file_init, lto_file_close,
3492 lto_resolve_type_ref, lto_resolve_var_ref,
3493 lto_resolve_fn_ref, lto_resolve_field_ref,
3494 lto_resolve_typedecl_ref,
3495 lto_resolve_namespacedecl_ref,
3496 lto_get_file_name): Removed declarations.
3497 (lto_symtab_merge_var, lto_symtab_merge_fn):
3498 Declarations moved to lto-tree.h.
3499 * lto-symtab.c (lto_compatible_attributes_p):
3500 Lobotomize this, as it barfs on "Hello, world!".
3501 * lto-section-out.c: Include lto-tree-out.h.
3502 (lto_hash_global_slot_node,
3503 lto_eq_global_slot_node, preload_common_nodes,
3504 write_global_stream, write_global_references):
3505 New functions.
3506 (produce_asm_for_decls): Convert for new global streamer.
3507 * lto-section-out.h (lto_hash_global_slot_node,
3508 lto_eq_global_slot_node): Declare.
3509
35102008-06-07 Kenneth Zadeck <zadeck@naturalbridge.com>
3511 Jan Hubicka <jh@suse.cz>
3512
3513 * lto.c (sys/mman.h, tree-pass.h): New includes.
3514 (lto_materialize_constructors_and_inits,
3515 lto_materialize_function): Keeps length of section.
3516 (lto_materialize_cgraph): Removed.
3517 (lto_read_decls): Initialize fd field.
3518 (lto_file_read): Different return type and removed much code to
3519 lto_main.
3520 (page_mask): New variable.
3521 (lto_read_section_data, get_section_data, free_section_data): New
3522 functions.
3523 (lto_main): Now calls pass manager, sets the hooks so that the ipa
3524 passes can get the section data.
3525
35262008-05-27 Kenneth Zadeck <zadeck@naturalbridge.com>
3527
3528 * lto.h (lto_read_decls): Made local.
3529 (lto_input_function_body, lto_input_constructors_and_inits,
3530 lto_input_cgraph): Declarations moved to lto-section-in.h.
3531 * lto-section-in.c: Moved to .. .
3532 * lto-cgraph-in.c: Ditto.
3533 * lto-section-in.h: Ditto.
3534 * lto-function-in.c: Ditto.
3535 * lto-lang.c (lto_handle_option): Added ATTRIBUTE_UNUSED to parms.
3536 (lto_insert_block): Removed.
3537 (LANG_HOOKS_INSERT_BLOCK): Removed.
3538 * Make-lang.in (lto-cgraph-in.o, lto-function-in.o,
3539 lto-section-in.o): Rules moved to lto/Makefile.in.
3540
3541
35422008-05-16 Ollie Wild <aaw@google.com>
3543
3544 * lto-lang.c (tree-inline.h): Include.
3545 (lto_post_options): New function.
3546 (LANG_HOOKS_POST_OPTIONS): Define.
3547 * lto-cgraph-in.c (overwrite_node): Set node->global.insns.
3548 * lto-function-in.c (input_bb): Set TREE_BLOCK (stmt).
3549
35502008-05-13 Diego Novillo <dnovillo@google.com>
3551
3552 * lto-function-in.c (input_ssa_names): Call
3553 make_ssa_name_fn instead of make_ssa_name.
3554
35552008-05-12 Diego Novillo <dnovillo@google.com>
3556
3557 * lto-cgraph-in.c (overwrite_node): Update references to
3558 inline summary fields.
3559 * lto-function-in.c (input_expr_operand): Do not handle
3560 STRUCT_FIELD_TAG.
3561
35622008-05-09 Ollie Wild <aaw@google.com>
3563
3564 * lang.opt: New file.
3565 * lto-lang.c (lto_init_options): New function.
3566 (lto_handle_option): New function.
3567 (lto_init): Move initialization of flag_unit_at_a_time to
3568 lto_init_options.
3569 (LANG_HOOKS_INIT_OPTIONS): Define.
3570 (LANG_HOOKS_HANDLE_OPTION): Define.
3571
35722008-04-29 Ollie Wild <aaw@google.com>
3573
3574 * lto.c (lto_read_namespace_DIE): New function.
3575 (lto_read_DIE): Add lto_read_namespace_DIE callback. Cache
3576 NAMESPACE_DECL DIE's.
3577 (lto_resolve_namespacedecl_ref): New function.
3578 * lto.h (lto_resolve_namespacedecl_ref): New function.
3579 * lto-section-in.c (lto_read_decls): Read namespace declarations.
3580 * lto-section-in.h (struct lto_file_decl_data): Add namespace_decls
3581 and num_namespace_decls.
3582 * lto-function-in.c (input_expr_operand): Add NAMESPACE_DECL case.
3583 * lto-lang.c (lto_init_ts): New function.
3584 (LANG_HOOKS_INIT_TS): Set as lto_init_ts.
3585
35862008-04-16 Ollie Wild <aaw@google.com>
3587
3588 * lto-function-in.c (input_type_ref): Updated function description.
3589
35902008-04-16 Ollie Wild <aaw@google.com>
3591
3592 * lto-function-in.c (input_type_ref_1): New function.
3593 (input_type_ref): Split into two functions.
3594 (input_function): Add support for type contexts.
3595
35962008-04-16 Ollie Wild <aaw@google.com>
3597
3598 * lto.c (lto_materialize_function): Use DECL_ASSEMBLER_NAME to compute
3599 section name
3600
36012008-04-16 Ollie Wild <aaw@google.com>
3602
3603 * lto.c (lto_read_compile_unit_DIE): Add DW_LANG_C_plus_plus to the
3604 list of supported languages.
3605
36062008-03-25 Kenneth Zadeck <zadeck@naturalbridge.com>
3607
3608 Merge with mainline @133491.
3609
36102008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
3611 Jan Hubicka <jh@suse.cz>
3612
3613 * lto.c (lto_info_fd_init, lto_info_fd_close): Get rid of
3614 fd->unmaterialized_fndecls.
3615 (lto_get_file_name, lto_materialize_cgraph): New function.
3616 (lto_materialize_constructors_and_inits,
3617 lto_materialize_function): Read info directly from elf file.
3618 (lto_file_read): Made local and initialize dictionary so that
3619 other lto sections can be read without reprocessing the elf file.
3620 (lto_main): Read all functions after all files have been processed
3621 for their types, globals and cgraph.
3622 * Make-lang.in (lto.o, lto-cgraph-in.c, lto-section-in): Changed
3623 dependencies.
3624 * lto-elf.c (lto_elf_file): Removed strtab, symtab fields.
3625 (hash_name, eq_name, lto_elf_build_section_table): New functions.
3626 (lto_elf_read_symtab): Removed function.
3627 (lto_elf_file_open): Removed call to lto_elf_read_symtab.
3628 * lto.h (lto_info_fd_struct): Removed unmaterialized_fndecls.
3629 (lto_file_read): Made local.
3630 (lto_get_file_name, lto_elf_build_section_table,
3631 lto_input_cgraph):
3632 New function.
3633 * lto-section-in.c (lto_read_section_data, lto_get_section_data):
3634 New functions.
3635 (lto_read_decls): Get the file name.
3636 * lto-cgraph-in.c: New file.
3637 * lto-function-in.c (tag_to_expr): Stops at LTO_tree_last_tag.
3638 (input_expr_operand, lto_read_body): Set lto_debug_context.tag_names.
3639 (input_labels): Fixed latent sizeof issue.
3640 (input_function): Build stmt array to set call sites into cgraph
3641 edges.
3642 (lto_read_body): Reset cfun->curr_properties.
3643 * lto_section_in.h (lto_section_slot): New structure.
3644 (section_hash_table.lto_file_decl_data): New field.
3645
3646
36472008-02-09 Kenneth Zadeck <zadeck@naturalbridge.com>
3648
3649 * lto.c (lto_read_variable_formal_parameter_const): Remove code to
3650 reconstruct static initializers.
3651 (lto_get_body, lto_materialize_function): Add lto_section_type as
3652 a parameter.
3653 (lto_materialize_constructors_and_inits,
3654 lto_materialize_file_data): New function.
3655 (lto_materialize_function,
3656 lto_read_subroutine_type_subprogram_DIE): Renamed unmap_fn_body to
3657 unmap_section and map_fn_body to map_section.
3658 (lto_set_cu_context): Process functions and static inits
3659 differently.
3660 * Make-lang.in (LTO_H, lto/lto-function-in.o,
3661 lto/lto-section-in.o): Update dependencies.
3662 * lto/lto-elf.c (lto_elf_map_optional_lto_section): Add
3663 lto_section_type parameter.
3664 (lto_elf_unmap_fn_body): Renamed to lto_elf_unmap_section.
3665 * lto.h (lto_file_vtable_struct): Removed two of the fields and
3666 renamed the other two so that there is only one map function and
3667 one unmap function and each takes a section type parameter.
3668 (lto_read_function_body): Renamed to lto_input_function_body and
3669 added file_data parameter.
3670 (lto_read_var_init): Removed.
3671 (lto_input_constructors_and_inits): New function.
3672 * lto-section-in.c (lto_read_decls): New function.
3673 * lto-function-in.c (data_in): Moved fields field_decls, fn_decls,
3674 var_decls, type_decls, types to lto_file_decl_data.
3675 (input_type_ref, input_expr_operand, lto_read_body): Get
3676 field_decls, fn_decls, var_decls, type_decls, types from different
3677 structure.
3678 (input_globals, input_constructor, lto_read_var_init): Removed.
3679 (input_constructors_or_inits): New function.
3680 (lto_read_function_body, lto_input_constructors_and_inits):
3681 Renamed to lto_input_function_body and takes file_data parameter.
3682 * lto-section-in.h (lto_file_decl_data): New structure.
3683
36842008-01-28 Kenneth Zadeck <zadeck@naturalbridge.com>
3685
3686 * lto-function-in.c (input_globals.c): Changed input type to
3687 lto_function_header.
3688 (input_bb): Removed code to deserialize the stmt number.
3689 (input_function): Renumber all stmts after they are input.
3690 (lto_read_body, lto_read_function_body, lto_read_var_init):
3691 Changed to used new header format and enum section_type.
3692 *lto-lang.c (success): Removed.
3693
36942008-01-28 Nathan Froyd <froydnj@codesourcery.com>
3695
3696 * lto-elf.c (lto_elf_lookup_sym): Remove unused function.
3697 (lto_elf_free_sym): Likewise.
3698
3699 * lto-elf.c (lto_elf_read_var_init): Remove unused function.
3700 (lto_elf_build_init): Likewise.
3701
37022008-01-14 Kenneth Zadeck <zadeck@naturalbridge.com>
3703
3704 * lto-read.c: Renamed to lto-function-in.c.
3705 (input_1_unsigned): Moved to lto-section-in.c and renamed
3706 lto_input_1_unsigned.
3707 (input_uleb128): Moved to lto-section-in.c and renamed
3708 lto_input_uleb128.
3709 (input_widest_uint_uleb128): Moved to lto-section-in.c and renamed
3710 lto_input_widest_uint_uleb128.
3711 (input_sleb128): Moved to lto-section-in.c and renamed
3712 lto_input_sleb128.
3713 (input_integer): Moved to lto-section-in.c and renamed
3714 lto_input_integer.
3715 (debug_in_fun): Moved to lto-section-in.c and renamed
3716 lto_debug_in_fun.
3717 (input_block): Moved to lto-section-in.h and renamed
3718 lto_input_block.
3719 (input_expr_operand): Fixed to allow lists with more than one
3720 element.
3721 * lto-section-in.h: New file.
3722 * lto-section-in.c: New file with changes from above.
3723 * Make-lang.in (lto-read.o): Renamed lto-function-in.c.
3724 (lto-section-in.o): New rule.
3725
37262007-12-29 Nathan Froyd <froydnj@codesourcery.com>
3727
3728 * lto-read.c (input_expr_operand): Mark static and external
3729 VAR_DECLs as needed.
3730
37312007-12-29 Nathan Froyd <froydnj@codesourcery.com>
3732
3733 * lto-read.c (input_integer): Use the correct shift amount.
3734
37352007-12-29 Nathan Froyd <froydnj@codesourcery.com>
3736
3737 * lto-lang.c (lto_pushdecl): Do nothing instead of aborting.
3738 (LANG_HOOKS_NAME): Define.
3739
37402007-12-27 Nathan Froyd <froydnj@codesourcery.com>
3741
3742 * lto.c (lto_find_integral_type): Define as a macro. Rename the
3743 original function to...
3744 (lto_find_integral_type_1): ...this. Consult UNSIGNEDP if we
3745 don't have a base type.
3746 (lto_read_enumeration_type_DIE): Examine the values of the
3747 enumeration to determine whether we can use an unsigned type for
3748 the base type of the enumeration.
3749
37502007-12-24 Nathan Froyd <froydnj@codesourcery.com>
3751
3752 * lto.c (lto_read_structure_union_class_type_DIE): Set TYPE_MODE
3753 and TYPE_ALIGN on UNION_TYPEs as soon as possible.
3754
37552007-12-22 Nathan Froyd <froydnj@codesourcery.com>
3756
3757 * lto-lang.c (lto_types_compatible_p): New function.
3758 (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3759
37602007-12-22 Nathan Froyd <froydnj@codesourcery.com>
3761 Kenneth Zadeck <zadeck@naturalbridge.com>
3762
3763 * lto-read.c (input_expr_operand): Fixed uninitialize var warning.
3764 (input_local_vars): Read in DECL_INITIAL and context for local
3765 statics that need to be put in unexpanded_vars_list.
3766
37672007-12-21 Nathan Froyd <froydnj@codesourcery.com>
3768
3769 * lto-read.c (input_real): Use a separate null-terminated buffer
3770 for calling real_from_string.
3771 (input_expr_operand): If we take the address of a FUNCTION_DECL,
3772 tell cgraph that it's needed.
3773
37742007-12-19 Doug Kwan <dougkwan@google.com>
3775
3776 * lto.c (lto_read_base_type_DIE): Handle complex integer types.
3777
37782007-12-18 Nathan Froyd <froydnj@codesourcery.com>
3779
3780 * lto.c (lto_read_DIE): Call lto_read_only_for_child_DIEs instead.
3781 (lto_file_read): Reset the members of 'context' every time we read
3782 a toplevel DIE, with special attention to last_param_type.
3783
37842007-12-18 Nathan Froyd <froydnj@codesourcery.com>
3785
3786 * lto.c (lto_read_subroutine_type_subprogram_DIE): Initialize
3787 'declaration'. Set the assembler name for non-public functions.
3788
37892007-12-17 Kenneth Zadeck <zadeck@naturalbridge.com>
3790
3791 * lto_read.c (data_in.unexpanded_indexes): New array.
3792 (input_local_var): Added code to read in unexpanded_var_list
3793 indexes for variables. Only read in DECL_CHAIN field for
3794 parameters.
3795 (input_local_vars): Added code to rebuild unexpanded_var_list in
3796 order using unexpanded_indexes.
3797 (input_function): Added code to set DECL_CONTEXT for functions.
3798
37992007-12-13 Doug Kwan <dougkwan@google.com>
3800
3801 * lto.c (lto_read_pointer_reference_type_DIE): Handle optional name
3802 in pointer and reference types.
3803
38042007-12-13 Nathan Froyd <froydnj@codesourcery.com>
3805
3806 * lto-read.c (input_expr_operand): Use DECL_RESULT when reading a
3807 RESULT_DECL.
3808
38092007-12-13 Nathan Froyd <froydnj@codesourcery.com>
3810
3811 * lto.c (lto_read_array_type_DIE): Return the cached DIE if we've
3812 already read the DIE.
3813 (lto_get_body): New function, split out from...
3814 (lto_materialize_function): ...here. Call it.
3815 (lto_read_subroutine_type_subprogram_DIE): Call lto_get_body to
3816 determine DECL_EXTERNAL.
3817 * lto-symtab.c (lto_symtab_merge_decl): Merge the DECL_RESULTs of
3818 FUNCTION_DECLs when necessary. Use the type of the actual
3819 function definition if we are unable to easily merge types. Ignore
3820 spurious DECL_MODE mismatches on VAR_DECLs. Merge DECL_MODEs when
3821 necessary.
3822
38232007-12-13 Nathan Froyd <froydnj@codesourcery.com>
3824
3825 * lto-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
3826
38272007-12-12 Bill Maddox <maddox@google.com>
3828
3829 Revert
3830 2007-12-07 Bill Maddox <maddox@google.com>
3831
3832 * lto.c (lto_str_fd_init): New function.
3833 (lto_str_fd_close): New function.
3834 (lto_file_init): Call lto_str_fd_init.
3835 (lto_file_close): Call lto_str_fd_close.
3836 (lto_str_read): New function. Read debug string table.
3837 (lto_str_lookup): New function. Get string for debug
3838 string table offset.
3839 (lto_read_form): Recognize DW_FORM_strp.
3840 (lto_file_read): Invoke lto_str_read.
3841
3842 * lto-elf.c (lto_elf_file_open): Read raw section data
3843 for the .debug_str section, if present.
3844
3845 * lto.h (struct lto_str_fd_struct): New struct.
3846 (struct lto_file_struct): Added new field DEBUG_STR
3847 to hold the file descriptor for the debug string table.
3848
38492007-12-07 Bill Maddox <maddox@google.com>
3850
3851 * lto.c (lto_str_fd_init): New function.
3852 (lto_str_fd_close): New function.
3853 (lto_file_init): Call lto_str_fd_init.
3854 (lto_file_close): Call lto_str_fd_close.
3855 (lto_str_read): New function. Read debug string table.
3856 (lto_str_lookup): New function. Get string for debug
3857 string table offset.
3858 (lto_read_form): Recognize DW_FORM_strp.
3859 (lto_file_read): Invoke lto_str_read.
3860
3861 * lto-elf.c (lto_elf_file_open): Read raw section data
3862 for the .debug_str section, if present.
3863
3864 * lto.h (struct lto_str_fd_struct): New struct.
3865 (struct lto_file_struct): Added new field DEBUG_STR
3866 to hold the file descriptor for the debug string table.
3867
38682007-12-07 Nathan Froyd <froydnj@codesourcery.com>
3869
3870 * lto-read.c (input_cfg): Call init_empty_tree_cfg_for_function.
3871 Grow the basic_block_info and label_to_block_map vectors if
3872 necessary. Read in the block chain.
3873
38742007-12-06 Nathan Froyd <froydnj@codesourcery.com>
3875
3876 * lto.c (lto_read_DIE): Set TYPE_ALIAS_SET where necessary.
3877
38782007-12-06 Nathan Froyd <froydnj@codesourcery.com>
3879
3880 * lto.c (lto_read_form): Add DW_cl_address for DW_AT_const_value.
3881
38822007-12-06 Nathan Froyd <froydnj@codesourcery.com>
3883
3884 * lto-read.c (input_expr_operand): Don't check for MTAGs.
3885 (lto_read_body): Don't declare PROP_alias.
3886
38872007-12-06 Nathan Froyd <froydnj@codesourcery.com>
3888
3889 * lto-symtab.c (lto_symtab_merge_decl): Handle FUNCTION_DECLs without
3890 argument type information.
3891
38922007-12-03 Nathan Froyd <froydnj@codesourcery.com>
3893
3894 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Set
3895 TREE_THIS_VOLATILE if the associated type is a volatile type.
3896 (lto_materialize_function): Remove call to init_ssa_operands.
3897 * lto-read.c (input_expr_operand): Add SSA_NAME_VAR as a referenced
3898 variable when reading an SSA_NAME. Do the same when reading a
3899 RESULT_DECL, a RETURN_EXPR, or an MTAG.
3900 (input_cfg): Call init_ssa_operands.
3901 (input_ssa_names): Set the default def of an SSA_NAME if necessary.
3902 Move call to init_tree_ssa...
3903 (lto_read_body): ...here. Use push_cfun and pop_cfun. Call
3904 add_referenced_var on any variables referenced from the body of the
3905 function. Inform the rest of the compiler we are in SSA form and
3906 inform later passes about the current properties.
3907
39082007-11-30 Nathan Froyd <froydnj@codesourcery.com>
3909
3910 * lto.c (lto_materialize_function): Add FIXME.
3911
39122007-11-29 Nathan Froyd <froydnj@codesourcery.com>
3913
3914 * lto-lang.c (enum built_in_attribute): New enum.
3915 (flag_no_builtin, flag_no_nonansi_builtin, flag_isoc94, flag_isoc99,
3916 built_in_attributes): New variables.
3917 (def_builtin_1): New function.
3918 (lto_define_builtins): #define DEF_BUILTIN and include builtins.def.
3919
39202007-11-28 Nathan Froyd <froydnj@codesourcery.com>
3921
3922 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Set
3923 DECL_SOURCE_LOCATION for debugging purposes.
3924 (lto_read_member_DIE): Set DECL_SOURCE_LOCATION. If we have read a
3925 bitfield, use the type specified by the DIE for TREE_TYPE and defer
3926 laying out the decl until later.
3927 (lto_read_subroutine_type_subprogram_DIE): Compare the function's
3928 name with DECL_ASSEMBLER_NAME. Set DECL_SOURCE_LOCATION and
3929 TREE_ADDRESSABLE.
3930 * lto-read.c (input_expr_operand): Set TREE_ADDRESSABLE on the
3931 operand of an ADDR_EXPR.
3932 * lto-lang.c (enum lto_builtin_type): New enum.
3933 (builtin_type): New typedef.
3934 (builtin_types, string_type_node, const_string_type_node,
3935 wint_type_node, intmax_type_node, uintmax_type_node,
3936 signed_size_type_node): New variables.
3937 (def_fn_type, builtin_type_for_size, lto_define_builtins,
3938 lto_build_c_type_nodes): New functions.
3939 (lto_init): Initialize builtin types.
3940 (lto_set_decl_assembler_name): Let the target machine mangle the
3941 name if the decl is TREE_PUBLIC, otherwise uniquify it.
3942
39432007-11-21 Nathan Froyd <froydnj@codesourcery.com>
3944
3945 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Don't
3946 set TREE_ADDRESSABLE. Do set DECL_COMDAT. Set TREE_READONLY if
3947 the type is a constant type. Set the assembler name and inform
3948 the rest of the compiler about the new decl if the decl is not
3949 public.
3950 (lto_read_subroutine_type_subprogram_DIE): Don't check for equivalency
3951 of DECL_ASSEMBLER_NAME when determining if we have a builtin. Don't
3952 try to read in function bodies for functions that already have bodies.
3953 * lto-symtab.c (lto_same_type_p): Check for unbounded array
3954 equivalency.
3955 (lto_symtab_merge_decl): Don't merge decls that aren't TREE_PUBLIC.
3956 Check for whether we matched a builtin function type before calling
3957 lto_same_type_p on the generated type. Permit cases where the
3958 declaration of an array is unbounded, but the definition is bounded.
3959 Don't combine TREE_PUBLIC flags. Copy over DECL_SIZE and
3960 DECL_SIZE_UNIT if necessary.
3961
39622007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
3963
3964 * lto-read.c (input_expr_operand): Get types right
3965 for COMPLEX_CST.
3966
39672007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
3968
3969 * lto-read.c (make_new_block, input_cfg): Properly set
3970 n_basic_blocks.
3971
39722007-11-16 Nathan Froyd <froydnj@codesourcery.com>
3973
3974 * lto.c (lto_read_array_type_DIE): Handle DIEs with DW_AT_GNU_vector
3975 set properly by building a VECTOR_TYPE instead of an ARRAY_TYPE.
3976
39772007-11-16 Nathan Froyd <froydnj@codesourcery.com>
3978
3979 * lto.c (lto_read_base_type_DIE): Use make_bitfield_integer_type to
3980 construct the integer type for bitfields.
3981
39822007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
3983
3984 * lto-read.c (data_in.current_node_has_loc): Removed.
3985 (input_line_info): Returns true if node needs line set.
3986 (set_line_info): Always sets line if called.
3987 (clear_line_info): Removed reference to current_node_needs_loc.
3988 (input_expr_operand): Keeps track locally if current node needs a loc.
3989 (input_local_var): Added code to handle DECL_INITIAL for
3990 static local vars. Only set loc if necessary.
3991
39922007-11-15 Nathan Froyd <froydnj@codesourcery.com>
3993
3994 * lto.c (lto_read_subroutine_type_subprogram_DIE): Fix thinko'd
3995 DECL_CONTEXT.
3996
39972007-11-15 Nathan Froyd <froydnj@codesourcery.com>
3998
3999 * lto.c: Include langhooks.h.
4000 (lto_find_integral_type): Rework logic to handle the case where
4001 got_byte_size is true, but the bitsize requested and that of the
4002 base_type doesn't match.
4003 (lto_read_variable_formal_parameter_constant_DIE): Only check for
4004 asm_name if we are creating a VAR_DECL.
4005 (lto_materialize_function): Set DECL_EXTERNAL if we can't find a
4006 definition.
4007 (lto_read_subroutine_type_subprogram_DIE): Check for a builtin
4008 function reference and use the builtin's decl if so. Set the
4009 DECL_CONTEXT of the RESULT_DECL for the function.
4010 * lto-lang.c (registered_builtin_fndecls): New variable.
4011 (lto_getdecls): Return it.
4012 (lto_builtin_function): Chain the new decl onto
4013 registered_builtin_fndecls.
4014
40152007-11-15 Kenneth Zadeck <zadeck@naturalbridge.com>
4016
4017 * lto-read.c (process_tree_flags, lto_static_init_local):
4018 Renamed to ADD_CLASS_EXPR_FLAG. ADD_CLASS_DECL_FLAG New Macro.
4019 (input_line_info, clear_line_info): Fixed new line number code.
4020 (input_expr_operand): Added type to SWITCH_EXPR.
4021 (lto_read_body): Properly initialized data_in.
4022 Clear line info when leaving.
4023
40242007-11-13 Diego Novillo <dnovillo@google.com>
4025
4026 * lto.c (lto_read_variable_formal_parameter_constant_DIE):
4027 Initialize ARTIFICIAL.
4028 (lto_read_subroutine_type_subprogram_DIE): Initialize
4029 SAVED_SCOPE.
4030 * lto-read.c (set_line_info): Remove ; from calls to
4031 LINEMAP_POSITION_FOR_COLUMN.
4032
40332007-11-13 Kenneth Zadeck <zadeck@naturalbridge.com>
4034
4035 * lto-read.c (input_type_ref): Renamed from get_type_ref.
4036 (input_expr_operand, input_local_var): Renamed get_type_ref to
4037 input_type_ref.
4038 (input_expr_operand): Get the types correct for
4039 vector-cst. Get SSA_NAME_DEF_STMT correct for return_exprs.
4040
40412007-11-13 Doug Kwan <dougkwan@google.com>
4042
4043 * lto-read.c (input_widest_uint_uleb128): New function.
4044 (input_tree_flags, process_tree_flags, input_line_info,
4045 input_expr_operand, input_local_var, input_phi, input_ssa_names):
4046 Change to use lto_flags_type and BITS_PER_LTO_FLAGS_TYPES instead of
4047 unsigned HOST_WIDE_INT and HOST_BITS_PER_WIDE_INT.
4048 (lto_static_init_local): Add code to assert that lto_flags_type is
4049 wide enough.
4050
40512007-11-13 Nathan Froyd <froydnj@codesourcery.com>
4052
4053 * lto.c (lto_read_array_type_DIE): Handle DW_AT_GNU_vector.
4054 (lto_read_subroutine_type_subprogram_DIE): Handle
4055 DW_AT_static_link and DW_AT_specification. Return the
4056 specification if present.
4057 (lto_read_base_type_DIE): Handle DW_ATE_complex_float.
4058
40592007-11-13 Nathan Froyd <froydnj@codesourcery.com>
4060
4061 * lto-lang.c: Include target.h.
4062 (registered_builtin_types): New variable.
4063 (lto_type_for_mode): Increase number of modes handled.
4064 (lto_builtin_function): Fix argument list and return the decl.
4065 (lto_register_builtin_type): New function.
4066 (lto_init): Initialize target builtins and language-independent
4067 nodes.
4068 (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define.
4069
40702007-11-13 Kenneth Zadeck <zadeck@naturalbridge.com>
4071
4072 * lto-read.c (input_expr_operand): Added code to properly handle
4073 index filed. Added new RANGE_EXPR case.
4074
40752007-11-11 Kenneth Zadeck <zadeck@naturalbridge.com>
4076
4077 * lto-read.c (ADD_FUNC_FLAG): Deleted macro.
4078 (data_in): Added current_node_has_loc field.
4079 (input_line_info, set_line_info, clear_line_info): Added a support
4080 for USE_MAPPED_LOCATION and not adding line numbers to nodes that
4081 did not have on on the source side.
4082 (input_expr_operand): Make sure that GIMPLE_MODIFY_STMTS get line
4083 numbers too.
4084
40852007-11-09 Doug Kwan <dougkwan@google.com>
4086
4087 * lto-read.c (input_expr_operand): Change type of operand 2 of
4088 BIT_FIELD_REF expression to be bitsizetype instead of sizetype.
4089
40902007-11-09 Nathan Froyd <froydnj@codesourcery.com>
4091
4092 * lto.c: Include lto-tree.h. Effect small spaces->tabs cleanup.
4093 (lto_read_variable_formal_parameter_constant_DIE): Transfer bits
4094 from a DW_AT_specification or DW_AT_abstract_origin attribute to
4095 the new decl we are creating. Move informing the middle end about
4096 the new decl to...
4097 (lto_main): ...here. Inform the middle end about global variables
4098 after we have read in all the input files.
4099 * lto-symtab.c (lto_symtab_merge_decl): We really do need to merge
4100 variables with internal linkage, so delete the check for internal
4101 linkage. Combine TREE_PUBLIC flags.
4102
41032007-11-08 Nathan Froyd <froydnj@codesourcery.com>
4104
4105 * lto.c (lto_read_subroutine_type_subprogram_DIE): Handle
4106 DW_AT_decl_line.
4107 * lto-symtab.c (lto_symtab_merge_decl): Handle redefinition of a
4108 builtin specially. Move check for attribute compatibility
4109 earlier.
4110
41112007-11-07 Nathan Froyd <froydnj@codesourcery.com>
4112
4113 * Make-lang.in (lto/lto.o): Depend on gt-lto-lto.h.
4114 * config-lang.in (gtfiles): Add lto.h and lto.c.
4115 * lto-elf.c: Include ggc.h.
4116 (lto_elf_file_open): Allocate elf_file from GC memory.
4117 * lto.c: Include tree-ssa-operands.h and gt-lto-lto.h
4118 (lto_info_fd_init): Allocate the die_cache and unmaterialized_fndecls
4119 in GC memory.
4120 (lto_info_fd_close): Free unmaterialized_fndecls from GC memory.
4121 (lto_file_close): Free file from GC memory.
4122 (lto_cache_store_DIE): Allocate the new entry in GC memory.
4123 (lto_read_member_DIE): Fix declaration.
4124 (lto_read_subroutine_type_subprogram_DIE): unmaterialized_fndecls lives
4125 in GC memory.
4126 (current_lto_file): New variable.
4127 (lto_main): Use it.
4128 (DWARF2_attr, DWARF2_abbrev, lto_die_ptr, DWARF2_CompUnit,
4129 lto_die_cache_entry): Move to...
4130 * lto.h: ...here and add GTY markers as appropriate. Delete forward
4131 declarations accordingly.
4132 (struct lto_file_struct): Declare.
4133 (lto_file_vtable): Use it instead of lto_file.
4134
41352007-11-06 Alon Dayan <alond@il.ibm.com>
4136 Kenneth Zadeck <zadeck@naturalbridge.com>
4137
4138 * lto-read.c (process_flags, lto_static_init_local):
4139 read flags of VAR_DECL and FUNCTION_DECL of size>1.
4140 change global array num_flags_for_code to flags_length_for_code.
4141 (set_line_info): Make decls work in USE_MAPPED_LOCATION mode.
4142
41432007-11-05 Nathan Froyd <froydnj@codesourcery.com>
4144
4145 * lto.c (lto_read_structure_union_class_type_DIE): Use proper record
4146 layout functions to compute information about the newly constructed
4147 type.
4148
41492007-11-02 Nathan Froyd <froydnj@codesourcery.com>
4150
4151 * lto-read.c (input_expr_operand): Change the LTO_return_expr1
4152 case to use DECL_RESULT if necessary.
4153
41542007-11-01 Kenneth Zadeck <zadeck@naturalbridge.com>
4155
4156 * lto-read.c (input_tree_list): Removed.
4157 (input_tree_flags): Added parameter to force flags no matter what
4158 tree code.
4159 (input_expr_operand): Added parameter to input_tree_flags.
4160 Added case for IDENTIFIER_NODE and TREE_LIST. Changed ASM to call
4161 input_expr_operand rather than input_tree_lists.
4162 (input_local_var): Use input_expr_operand to read attributes
4163 rather then input_tree_list.
4164 (input_phi, input_ssa_names): Added parameter to input_tree_flags.
4165
41662007-10-31 Nathan Froyd <froydnj@codesourcery.com>
4167
4168 * lto.c (lto_read_typedef_DIE): Fix comment typo.
4169 (lto_resolve_typedecl_ref): Fetch the referred-to type and build a fake
4170 TYPE_DECL for it.
4171 * lto-read.c (lto_read_body): Use correct sizes for calculating
4172 type_decls_offset and types_offset.
4173
41742007-10-30 Nathan Froyd <froydnj@codesourcery.com>
4175
4176 * lto-tree.h (union lang_tree_node): Change GTY description to chain
4177 with GENERIC_NEXT.
4178 * config-lang.in (gtfiles): Add lto-lang.c.
4179 * lto-lang.c: Include gt-lto-lto-lang.h.
4180 * Make-lang.in (lto/lto-lang.o): Add dependency on gt-lto-lto-lang.h
4181 (lto/lto-symtab.o): Depend on LTO_H instead of TREE_H.
4182 (lto/lto-read.o): Likewise.
4183
41842007-10-29 Kenneth Zadeck <zadeck@naturalbridge.com>
4185
4186 * lto-read.c (data_in): Added type_decls and current_col fields.
4187 (string_slot): New type to hold canonized file name.
4188 (hash_string_slot_node, eq_string_slot_node, canon_file_name,
4189 input_line_info, set_line_info, clear_line_info): New functions.
4190 (file_name_hash_table): New hash table.
4191 (input_local_var, input_labels, input_local_vars_index,
4192 input_local_var, input_local_vars, input_ssa_names): Reorganized parameters.
4193 (input_uleb128): Changed type of byte var.
4194 (input_expr_operand): Large number of changes to get line numbers
4195 correct. Added TYPE_DECL case.
4196 (input_globals): Added code to get TYPE_DECLs processed.
4197 (input_local_var): Added code to process line numbers and
4198 TREE_CHAIN and DECL_CONTEXT.
4199 (input_function, input_constructor): Added call to
4200 clear_line_number.
4201 (lto_static_init_local): Added code to get line numbers correct.
4202 (lto_read_body): Added code to get TYPE_DECLS read and to change
4203 parameters to the calls above that had their parms reorganized.
4204
4205
42062007-10-29 Nathan Froyd <froydnj@codesourcery.com>
4207
4208 * lto.h (lto_resolve_typedecl_ref): Declare.
4209 * lto.c (lto_resolve_typedecl_ref): New function.
4210
42112007-10-29 Mark Mitchell <mark@codesourcery.com>
4212 Nathan Froyd <froydnj@codesourcery.com>
4213
4214 * lto.c (lto_read_subroutine_type_subprogram_DIE): Read the child
4215 DIEs even if we find an abstract origin for this DIE.
4216
42172007-10-29 Nathan Froyd <froydnj@codesourcery.com>
4218
4219 * lto.c (lto_read_subroutine_type_subprogram_DIE): Build the
4220 RESULT_DECL slightly earlier. Only remember the decl for later
4221 if we successfully merge declarations.
4222
42232007-10-24 Kenneth Zadeck <zadeck@naturalbridge.com>
4224
4225 * lto-read.c (input_expr_operand): Give label_values the proper
4226 context and provide switch statements with a default type.
4227
42282007-10-23 Nathan Froyd <froydnj@codesourcery.com>
4229
4230 * lto-read.c (lto_read_body): Move call to init_ssa_operands...
4231 * lto.c (lto_materialize_function): ...to here.
4232
42332007-10-22 Nathan Froyd <froydnj@codesourcery.com>
4234
4235 * lto.h (struct lto_info_fd): Add field unmaterialized_fndecls.
4236 * lto.c (lto_info_fd_init): Initialize it.
4237 (lto_info_fd_close): Free it.
4238 (lto_materialize_function): New function.
4239 (lto_read_subroutine_type_subprogram_DIE): Save the result decl on
4240 unmaterialized_fndecls.
4241 (lto_file_read): Read in all the function bodies after we have read
4242 all of the DWARF info.
4243 * lto-read.c (lto_read_body): Call init_ssa_operands if we are
4244 reading a function body.
4245
42462007-10-20 Kenneth Zadeck <zadeck@naturalbridge.com>
4247
4248 * lto-read.c (input_tree_flags): Renamed from input_flags to be
4249 semetric with output_tree_flags. Added call to log flags.
4250 (process_tree_flags): Renamed from process_flags. Fixed a lot of
4251 type issues to make everything consistent with flags being
4252 unsigned HOST_WIDE_INTS.
4253 (input_expr_operand): Added call to
4254 recompute_tree_invariant_for_addr_expr.
4255 (input_local_var): Added debugging for tree_chains. Now calls
4256 input_tree_flags.
4257 (input_phi): Made flags unsigned HOST_WIDE_INT.
4258 (input_ssa_names): Now calls input_tree_flags.
4259 (lto_read_body): Now sets cfun.
4260 (lto_read_function_body): Now sets current_function_pointer.
4261
42622007-10-19 Nathan Froyd <froydnj@codesourcery.com>
4263
4264 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Check
4265 definitively whether SPECIFICATION or ABSTRACT_ORIGIN exist before
4266 inspecting fields within.
4267 (lto_read_DIE_at_ptr): Delete check for null result; let callers
4268 handle this appropriately.
4269
42702007-10-19 Nathan Froyd <froydnj@codesourcery.com>
4271
4272 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Handle
4273 DW_AT_abstract_origin properly. Ensure that we're not dealing with
4274 both DW_AT_abstract_origin and DW_AT_specification.
4275 (lto_read_subroutine_type_subprogram_DIE): Handle
4276 DW_AT_abstract_origin.
4277 (lto_read_DIE): Use lto_read_only_for_child_DIEs for labels.
4278 (lto_read_DIE_at_ptr): Define as static to match declaration.
4279 Lookup the PTR in the cache before reading it from the file.
4280 (lto_resolve_var_ref): Adjust accordingly.
4281 (lto_resolve_fn_ref): Adjust accordingly. Tweak comment.
4282 (lto_resolve_field_ref): Adjust accordingly. Tweak comment.
4283
42842007-10-19 Nathan Froyd <froydnj@codesourcery.com>
4285
4286 * lto.c (lto_read_DIE_at_ptr): New function.
4287 (lto_resolve_var_ref): Use it.
4288 (lto_resolve_fn_ref): Use it.
4289 (lto_resolve_field_ref): Use it.
4290 (lto_read_variable_formal_parameter_constant_DIE): Follow
4291 DW_AT_specification and return the associated decl when appropriate.
4292
42932007-10-18 Nathan Froyd <froydnj@codesourcery.com>
4294
4295 * lto-lang.c (lto_type_for_mode): Move after lto_type_for_size.
4296 Implement for scalar integer modes.
4297 (lto_init): Initialize size_type_node.
4298
42992007-10-18 Kenneth Zadeck <zadeck@naturalbridge.com>
4300
4301 * lto-read.c (input_expr_operand): Remove ssa name asserts.
4302 (input_local_var): Add chaining for params.
4303 (input_ssa_names): Add cfun parameter.
4304 (input_function): Remove unnecessary else.
4305
43062007-10-17 Nathan Froyd <froydnj@codesourcery.com>
4307
4308 * lto.c (lto_read_only_for_child_DIEs): Mark die parameter as unused.
4309 (lto_resolve_var_ref): Use proper types.
4310 (lto_resolve_fn_ref): Likewise.
4311 (lto_resolve_field_ref): Likewise.
4312
43132007-10-17 Nathan Froyd <froydnj@codesourcery.com>
4314
4315 * lto-read.c (input_expr_operand): Remove case.
4316
43172007-10-17 Nathan Froyd <froydnj@codesourcery.com>
4318
4319 * lto.c (lto_read_only_for_child_DIEs): New function.
4320 (lto_read_DIE): Use it for lexical_block and inlined_subroutine DIEs.
4321 * lto-elf.c (lto_elf_map_lto_section): Remove.
4322 (lto_elf_file_vtable): Use lto_elf_map_optional_lto_section instead.
4323 * lto-read.c (input_expr_operand): Assert that we never read a NULL
4324 SSA_NAME. Add missing case for mechanical codes.
4325 (input_cfg): Use basic_block_info_for_function instead of
4326 basic_block_info.
4327
43282007-10-16 Kenneth Zadeck <zadeck@naturalbridge.com>
4329
4330 * lto-read.c (input_sleb128, input_integer): Use proper casts.
4331 (input_list): Renamed input_tree_list and modified to follow same
4332 protocol as lto-function-out.c:output_tree_list.
4333 (input_expr_operand): Make asm operands use input_tree_list.
4334 (input_local_var): Now uses input_tree_list.
4335 (lto_read_body): Change placement for setting context of debug_labels.
4336
4337
43382007-10-16 Kenneth Zadeck <zadeck@naturalbridge.com>
4339
4340 * lto-read.c (input_real): Output debugging in proper order.
4341 (input_integer): Compute bit lengths properly.
4342 (input_list): Clean up declaration.
4343 (input_expr_operand): Change calls to input_real to match fix.
4344 Make reading of LTO_bit_field_ref1 match output.
4345 (input_local_var): Make reading of attributes match what is being
4346 written.
4347 (dump_debug_stream): Also print char in hex.
4348 (debug_out_fun): Fix signed unsigned mismatch.
4349
43502007-10-10 Nathan Froyd <froydnj@codesourcery.com>
4351
4352 * lto.c (lto_read_form): Handle DW_AT_MIPS_linkage_name and
4353 DW_AT_GNU_vector specially, as they are not contiguous with the
4354 specified set of attribute names. Use class_mask to check for
4355 errors at the end of the function
4356 (lto_resolve_var_ref): Read the DIE if it is not cached.
4357 (lto_resolve_fn_ref): Likewise.
4358 (lto_resolve_field_ref): Likewise.
4359
43602007-10-05 Nathan Froyd <froydnj@codesourcery.com>
4361
4362 * lto.c: Include dwarf2out.h.
4363 (lto_cache_store_DIE): Assert that we never change the value.
4364 (LTO_BEGIN_READ_ATTRS): Print an informative error message.
4365 (lto_read_compile_unit_DIE): Handle DW_AT_entry_pc.
4366 (lto_read_array_type_DIE): Don't error on ndims == 0; build a
4367 sensible type instead.
4368 (lto_read_structure_union_class_type_DIE): Store the newly
4369 created type prior to reading the members of the structure to
4370 avoid infinite recursion. Avoid computing types and alignments
4371 for structures whose sizes are unknown.
4372 (lto_read_variable_formal_parameter_const): Handle DW_AT_artificial
4373 and set DECL_ARTIFICIAL accordingly. Ignore DW_AT_abstract_origin,
4374 DW_AT_const_value, and DW_AT_specification.
4375 (lto_read_subroutine_type_subprogram_DIE): Handle DW_AT_declaration.
4376 Return early if we have already constructed the function type.
4377 (lto_read_typedef_DIE): Check to see if the type has been cached
4378 already. Cache the type before reading any children.
4379 (lto_read_const_volatile_restrict_type_DIE): Handle DW_AT_name.
4380 (lto_read_DIE): Unset context->skip_non_parameters around reading
4381 the DIE.
4382 (lto_resolve_fn_ref): Delete trailing whitespace.
4383
43842007-09-11 Kenneth Zadeck <zadeck@naturalbridge.com>
4385
4386 * lto-read.c (input_expr_operand): Added type for STRING_CST.
4387
43882007-09-10 Nathan Froyd <froydnj@codesourcery.com>
4389
4390 * lto-read.c (lto_read): Set the type of the newly created CALL_EXPR.
4391
43922007-09-07 Nathan Froyd <froydnj@codesourcery.com>
4393
4394 * lto-lang.c (signed_and_unsigned_types): New variable.
4395 (lto_type_for_size): Consult signed_and_unsigned_types to find
4396 an approprite type, creating it if necessary.
4397 (lto_set_decl_assembler_name): Add actual method body.
4398
43992007-09-06 Jim Blandy <jimb@codesourcery.com>
4400
4401 * lto.c (lto_read_variable_formal_parameter_constant_DIE): If we
4402 can't find a var init for this variable, leave its DECL_INITIAL.
4403 * lto-elf.c (lto_elf_map_optional_lto_section): Renamed from
4404 lto_elf_map_fn_body.
4405 (lto_map_lto_section): New function.
4406 (lto_elf_file_vtable): Use lto_elf_map_lto_section for function
4407 bodies, and lto_elf_map_optional_lto_section for variable
4408 initializers.
4409 (lto_elf_find_section_data): Quietly return NULL if the section is
4410 missing.
4411 (lto_elf_file_open): Check for a NULL from lto_elf_find_section_data.
4412
4413 * lto-elf.c (lto_elf_find_section_data): Remove dead code.
4414
4415 * lto-read.c (lto_read_body): Doc fix.
4416
44172007-08-29 Kenneth Zadeck <zadeck@naturalbridge.com>
4418
4419 * lto-read.c (fun_in): Renamed to data_in.
4420 (input_expr_operand, input_local_var, input_string_internal,
4421 input_string, input_real, input_list, get_label_decl,
4422 get_type_ref, input_expr_operand, input_globals, input_labels,
4423 input_local_vars_index, input_local_var, input_local_vars,
4424 input_cfg, input_phi, input_ssa_names, input_bb, ): Renamed fun_in to data_in.
4425 (input_constructor): New function.
4426 (lto_read_function_body): Renamed to lto_read_body and generalized
4427 to handle both functions and constructors.
4428 (lto_read_function_body, lto_read_var_init): New function.
4429
4430
44312007-08-28 Kenneth Zadeck <zadeck@naturalbridge.com>
4432
4433 * lto-read.c (input_expr_operand): Assert that there really is a
4434 FUNCTION_DECL.
4435 (input_globals): Removed checks on 0 section.
4436
44372007-08-28 Kenneth Zadeck <zadeck@naturalbridge.com>
4438
4439 * lto-read.c (fun_in): Added local_decls_index and
4440 local_decls_index_d.
4441 (input_expr_operand): Changed inputting of PARM_DECLs and VAR_DECLs.
4442 (input_globals): Enabled code to handle FIELD_DECLs.
4443 (input_local_vars_index, input_local_vars): New function.
4444 (input_local_var): Changed to allow locals to be input randomly.
4445 (lto_read_function_body): Added code to input the
4446 local_decls_index and to free various structures.
4447
44482007-08-17 Jim Blandy <jimb@codesourcery.com>
4449
4450 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Remove
4451 ATTRIBUTE_UNUSED from 'die' formal.
4452
4453 Use enum LTO_tags where appropriate, instead of 'unsigned int'.
4454 * lto-read.c (input_record_start): Fix return type, type of 'tag'.
4455 (input_list): Fix type of 'tag'.
4456 (input_expr_operand): Fix type of 'tag' argument. Update
4457 declaration. Fix type of 'ctag'. Add default case to switch,
4458 since the type of the switched value is now an enum.
4459 (input_local_vars): Fix type of 'tag'.
4460 (input_bb): Fix type of 'tag' argument.
4461 (input_function): Fix type of 'tag' argument.
4462
44632007-08-16 Jim Blandy <jimb@codesourcery.com>
4464
4465 * lto.c (lto_read_member_DIE): Record the tree we create in
4466 fd->die_cache. (Our 'die' argument is no longer unused.)
4467 (lto_resolve_field_ref): New function.
4468 * lto.h (lto_resolve_field_ref): New declaration.
4469
44702007-08-15 Jim Blandy <jimb@codesourcery.com>
4471
4472 * lto-read.c (lto_read_var_init): Mark arguments as unused.
4473
44742007-08-07 Jim Blandy <jimb@codesourcery.com>
4475
4476 * lto.c (lto_read_form): Complete attr_classes table.
4477 (DWARF2_form_data): Doc fix.
4478
44792007-08-05 Mark Mitchell <mark@codesourcery.com>
4480
4481 * lto.h (lto_file_vtable): Remove read_var_init. Add map_var_init
4482 and unmap_var_init.
4483 (lto_read_var_init): Declare.
4484 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Use new
4485 interface for reading variable initializers.
4486 * lto-elf.c (lto_elf_read_var_init): Remove.
4487 (lto_elf_file_vtable): Update initializer.
4488 (lto_elf_read_var_init): Add comment about unused-ness.
4489 * lto-read.c (lto_read_var_init): New.
4490
4491 * lto.c (lto_read_form): Add entry for DW_AT_inline.
4492
44932007-08-02 Kenneth Zadeck <zadeck@naturalbridge.com>
4494
4495 * lto-read.c (lto_read_function_body): Moved declaration of fn
4496 outside of ifdef.
4497
44982007-08-01 Kenneth Zadeck <zadeck@naturalbridge.com>
4499
4500 * lto-read.c (input_uleb128, input_string_internal, input_real,
4501 input_integer, input_record_start, input_list, get_type_ref,
4502 input_flags, input_expr_operand, input_expr_operand,
4503 input_expr_operand, input_local_vars, input_cfg, input_phi,
4504 input_ssa_names, input_bb, input_function): Added semicolons.
4505
4506
45072007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
4508
4509 * lto-read.c (input_globals): Remove debugging.
4510 (input_function): Set DECL_ARGUMENTS.
4511
4512
45132007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
4514
4515 * lto-read.c (input_expr_operand): Fixed code for COND_EXEC,
4516 RETURN_EXPR, MODIFY_EXPR and processing of flags.
4517 (input_phi): Made work with operands other than SSA_NAMES and
4518 fixed processing of flags.
4519 (input_ssa_names): Initialize SSA_NAME_DEF_STMT to empty stmt.
4520 (input_flags): New function.
4521 * lto-lang.c (lto_init): Changed state of in_lto_p.
4522
4523
45242007-07-24 Mark Mitchell <mark@codesourcery.com>
4525
4526 * lto-tree.h (lto_varargs_cookie): Remove.
4527 * lto.c (lto_context): Add last_parm_type, varargs_p, skip_all,
4528 skip_non_parameters, skip_parameters.
4529 (lto_varargs_cookie): Remove.
4530 (lto_read_variable_formal_parameter_constant_DIE): Keep track of
4531 parameter types.
4532 (lto_read_abbrev): New function.
4533 (lto_read_subroutine_type_subprogram_DIE): Make two passes over
4534 child DIEs.
4535 (lto_read_unspecified_parameters_DIE): Set context->varargs_p.
4536 (lto_read_DIE): Use lto_read_abbrev. Honor skip_* flags.
4537 (lto_file_read): Initialize new context fields.
4538 * lto-lang.c (lto_type_for_mode): Return NULL_TREE.
4539 (lto_unsigned_type): Remove.
4540 (lto_signed_type): Likewise.
4541 (lto_signed_or_unsigned_type): Likewise.
4542 (lto_init): Do not create lto_varargs_cookie.
4543 (LANG_HOOKS_UNSIGNED_TYPE): Do not define.
4544 (LANG_HOOKS_SIGNED_TYPE): Likewise.
4545 (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Likewise.
4546
45472007-07-19 Jan Hubicka <jh@suse.cz>
4548
4549 * lto-read.c (lto_read_function_body): Produce empty scope block
4550 to avoid crash.
4551
45522007-07-18 Mark Mitchell <mark@codesourcery.com>
4553
4554 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Do not
4555 process local variables.
4556 (lto_read_subroutine_type_subprogram_DIE): Read child DIEs.
4557
45582007-07-13 Kenneth Zadeck <zadeck@naturalbridge.com>
4559
4560 * lto-read.c (input_list, input_expr_operand): Added struct
4561 function parameter.
4562 (init_cfg, finalize_cfg): Removed function.
4563 (input_expr_operand): Added SSA_NAME and GIMPLE_MODIFY_STMT cases.
4564 (input_labels, input_local_vars): Now takes input_block parameter rather than
4565 synthsyzing it.
4566 (input_cfg, input_phi, input_ssa_names): New functions.
4567 (input_bb): Now passes in input_blocks. Does not construct cfg
4568 and processes the list of phi functions.
4569 (input_function): Now builds both the cfg and ssa_names table.
4570 (lto_read_function_body): Processes new header fields to construct
4571 streams for the ssa_names and cfg and their debugging.
4572 * lto/lto-lang.c (lto_init): Set in_lto_p.
4573
4574
45752007-06-28 Mark Mitchell <mark@codesourcery.com>
4576
4577 * lto.h (lto_file_vtable): Add read_var_init.
4578 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Read
4579 initializers.
4580 (lto_main): Remove bogus asserts.
4581 * lto-elf.c (tm.h): Include it.
4582 (libiberty.y): Likewise.
4583 (lto_elf_file): Add strtab and symtab. Rename
4584 string_table_section_index to sec_strtab.
4585 (lto_elf_file_vtable): Add lto_elf_read_var_init.
4586 (lto_elf_get_shdr): New function.
4587 (lto_elf_free_shdr): Likewise.
4588 (lto_elf_find_section_data): Use them.
4589 (lto_elf_read_symtab): New function.
4590 (lto_elf_lookup_sym): Likewise.
4591 (lto_elf_free_sym): Likewise.
4592 (lto_elf_file_open): Tidy. Call lto_elf_read_symtab.
4593 (lto_elf_built_init): New function.
4594 (lto_elf_read_var_init): Likewise.
4595 * Make-lang.in (lto/lto-elf.o): Depend on $(TM_H).
4596
45972007-06-26 Kenneth Zadeck <zadeck@naturalbridge.com>
4598
4599 * lto-read (make_new_block): Initialize the stmt_list.
4600 (lto_static_init_local): Add debugging for missing codes.
4601
46022007-06-26 Mark Mitchell <mark@codesourcery.com>
4603
4604 * lto.c (lto_read_subroutine_type_subprogram_DIE): Handle
4605 unprototyped functions.
4606
46072007-06-23 Mark Mitchell <mark@codesourcery.com>
4608
4609 * lto.c (lto_read_variable_formal_parameter_constant_DIE):
4610 Handle DW_AT_MIPS_linkage_name.
4611 (lto_read_subroutine_type_subprogram): Likewise. Correct
4612 compilation errors.
4613 (lto_main): Remove incorrect assertions.
4614 * lto-symbtab.c: Build function types out of TREE_LISTs.
4615
4616 * lto-elf.c (<libelf>): Check for HAVE_LIBELF_H.
4617
4618 * Make-lang.in (LTO_OBJS): Depend on attribs.o.
4619
46202007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com>
4621
4622 * lto/lto-tree.h (lang_decl, lang_type, language_function): Added
4623 dummy since ggc does not like empty structs.
4624 * lto/lto-elf.c (libelf.h): Changed to libelf/libelf.h.
4625 * lto/lto-read.c (ADD_CLASS_FLAG, ADD_EXPR_FLAG): Changed
4626 expr->common to expr->base.
4627 (make_new_block): Moved stmt_list to proper place.
4628
4629
46302007-03-14 Robert Kennedy <jimbob@google.com>
4631
4632 Eliminate use of lang_hooks.set_decl_assembler_name from LTO
4633 * lto.c (lto_read_subroutine_type_subprogram_DIE) Get DECL
4634 assembler name from DWARF.
4635 * lto-lang.c (lto_set_decl_assembler_name) New function.
4636
46372006-09-10 Mark Mitchell <mark@codesourcery.com>
4638
4639 * lto.h (lto_file_vtable): New structure.
4640 (lto_file): Add vtable pointer.
4641 (lto_file_init): Add vtable paramter.
4642 (lto_read_function_body): New function.
4643 (lto_symtab_merge_fn): New function.
4644 * lto.c (lto_file_init): Add vtable parameter.
4645 (lto_read_form): Fill in entries for DW_AT_prototyped,
4646 DW_AT_frame_base.
4647 (lto_read_subroutine_type_subprogram_DIE): New function.
4648 (lto_read_DIE): Fill in entries for DW_TAG_subroutine_type and
4649 DW_TAG_subprogram.
4650 * lto-elf.c (lto_elf_vile_vtable): New variable.
4651 (lto_elf_file_open): Pass it to lto_file_init.
4652 (lto_elf_map_fn_body): New function.
4653 (lto_elf_unmap_fn_body): Likewise.
4654 * lto-read.c: New file.
4655 * lto-symtab.c (lto_symtab_merge_fn): New function.
4656 * lto-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define to
4657 tree_rest_of_compilation.
4658 * Make-lang.in (LTO_OBJS): Add lto-read.o
4659 (lto-read.o): New target.
4660
46612006-09-03 Mark Mitchell <mark@codesourcery.com>
4662
4663 * lto.c (<inttypes.h>): Don't include it.
4664 (lto_context): Don't typedef it.
4665 (lto_resolve_reference): New function.
4666 (lto_read_form): Use it.
4667 (lto_resolve_type_ref): New function.
4668 (lto_resolve_var_ref): Likewise.
4669 (lto_resolve_fn_ref): Likewise.
4670 * lto.h (<inttypes.h>): Include it.
4671 (lto_context): New type.
4672 (lto_ref): New structure.
4673 (lto_resolve_type_ref): Declare.
4674 (lto_resolve_var_ref): Likewise.
4675 (lto_resolve_fn_ref): Likewise.
4676
46772006-08-18 Mark Mitchell <mark@codesourcery.com>
4678
4679 * lang-specs.h: New file.
4680
46812006-08-14 Mark Mitchell <mark@codesourcery.com>
4682
4683 * lto.c (lto_info_fd_init): Allocate the DIE cache.
4684 (lto_info_fd_close): Deallocate it.
4685 (lto_die_cache_entry): New structure.
4686 (lto_cache_hash): New function.
4687 (lto_cache_eq): Likewise.
4688 (lto_cache_store_DIE): Likewise.
4689 (lto_cache_lookup_DIE): Likewise.
4690 (lto_read_referenced_type_DIE): Use the cache.
4691 (lto_read_pointer_type_DIE): Robustify.
4692 (lto_read_DIE): Use the cache.
4693 * lto.h (hashtab.h): Include.
4694 (lto_info_fd): Add DIE cache.
4695 * Make-lang.in (LTO_H): New variable.
4696 (lto/lto-lang.o): Use LTO_H.
4697 (lto/lto-elf.o): Likewise.
4698 (lto/lto-symtab.o): Likewise.
4699
47002006-07-09 Mark Mitchell <mark@codesourcery.com>
4701
4702 * lto.c (lto_abi_mismatch_error): New function.
4703 (lto_abbrev_read): Initialize num_abbrevs.
4704 (lto_read_form): Specify allowed form classes for
4705 DW_AT_declaration. Adjust for change to lto_set_cu_context.
4706 (lto_read_variable_formal_parameter_constant_DIE): Handle
4707 DW_AT_declaration. Call lto_symtab_merge_var.
4708 (lto_read_pointer_type_DIE): New function.
4709 (lto_read_base_type_DIE): Use build_nonstandard_integer_type. Do
4710 not creat TYPE_DECLs for types that already have them.
4711 (lto_read_DIE): Add lto_read_pointer_type_DIE.
4712 (lto_set_cu_context): Make cu_start point to the header, not the
4713 first DIE.
4714 (lto_file_read): Adjust for change to lto_set_cu_context.
4715 * Make-lang.in (LTO_OBJS): Add lto-symtab.o.
4716 (lto/lto-symtab.o): New rule.
4717 * lto-tree.h (lang_identifier): Add decl field.
4718 (LANG_IDENTIFIER_CAST): New macro.
4719 (LTO_IDENTIFIER_DECL): Likewise.
4720 (lto_symtab_merge_var): Declare.
4721 * lto-symtab.c: New file.
4722
47232006-07-02 Daniel Berlin <dberlin@dberlin.org>
4724
4725 * lto.c (lto_context): Add current_cu and info_fd members.
4726 (DWARF2_CompUnit): New structure.
4727 (lto_read_DIE): Take lto_info_fd *.
4728 (lto_read_child_DIEs): Ditto.
4729 (lto_file_corrupt_error): Constify argument.
4730 (lto_set_cu_context): New function
4731 (lto_info_fd_init): Ditto.
4732 (lto_info_fd_close): Ditto.
4733 (lto_file_init): Use lto_info_fd_init.
4734 (lto_file_close): Use lto_info_fd_close.
4735 (lto_read_initial_length): Pass in pointer to header size.
4736 (lto_read_comp_unit_header): Correct cu_length to
4737 real length from beginning of header. Take lto_info_fd * as
4738 argument.
4739 (find_cu_for_offset): New function.
4740 (lto_read_form): Change first argument to lto_info_fd *.
4741 Add FORM_CONTEXT argument.
4742 Handle DW_FORM_ref_addr.
4743 (lto_read_tag_DIE): Change first argument to lto_info_fd *.
4744 (LTO_BEGIN_READ_ATTRS_UNCHECKED): Save old context.
4745 Swap contexts if necessary for form.
4746 (LTO_BEGIN_READ_ATTRS): Cast fd to right type for
4747 lto_file_corrupt_error.
4748 (LTO_END_READ_ATTRS): Swap contexts back if it had changed.
4749 (lto_read_referenced_type_DIE): Change first argument to
4750 lto_info_fd *. Access lto_fd fields through base pointer.
4751 (lto_read_compile_unit_DIE): Change first argument to an
4752 lto_info_fd *.
4753 (lto_read_variable_formal_parameter_constant_DIE): Ditto.
4754 (lto_read_base_type_DIE): Ditto.
4755 (lto_read_child_DIEs): Ditto.
4756 (lto_read_DIE): Ditto. Change type of function pointer.
4757 (lto_info_read): New function.
4758 (lto_set_cu_context): Ditto.
4759 (lto_file_read): Use lto_info_read, walk resulting CU's
4760 (lto_main): Update for lto_info_fd change.
4761 * lto-elf.c (lto_elf_file_open): Cast lto_info_fd to lto_fd where
4762 necessary.
4763 * lto.h (DWARF2_CompUnit): New structure.
4764 (lto_info_fd): Ditto.
4765 (lto_file): Change debug_info to be an lto_info_fd.
4766
47672006-06-25 Mark Mitchell <mark@codesourcery.com>
4768
4769 * lto.c (toplev.h): Include it.
4770 (dwarf2.h): Likewise.
4771 (tree.h): Likewise.
4772 (tm.h): Likewise.
4773 (cgraph.h): Likewise.
4774 (ggc.h): Likewise.
4775 (inttypes.h): Likewise.
4776 (DWARF2_attr): New type.
4777 (DWARF2_abbrev): Likewise.
4778 (DWARF2_class): Likewise.
4779 (DWARF2_form_data): Likewise.
4780 (lto_context): Likewise.
4781 (lto_fd_init): New function.
4782 (lto_abbrev_fd_init): Likewise.
4783 (lto_abbrev_fd_close): Likewise.
4784 (lto_file_init): Use them.
4785 (lto_file_close): New function.
4786 (lto_file_corrupt_error): Likewise.
4787 (LTO_CHECK_INT_VAL): New macro.
4788 (lto_check_size_t_val): New function.
4789 (lto_check_int_val): Likewise.
4790 (LTO_READ_TYPE): New macro.
4791 (lto_read_ubyte): New function.
4792 (lto_read_uhalf): Likewise.
4793 (lto_read_uword): Likewise.
4794 (lto_read_uleb128): Likewise.
4795 (lto_read_initial_length): Likewise.
4796 (lto_abbrev_read_attrs): Likewise.
4797 (lto_abbrev_read): Likewise.
4798 (lto_abbrev_lookup): Likewise.
4799 (lto_read_section_offset): Likewise.
4800 (lto_read_comp_unit_header): Likewise.
4801 (lto_read_form): Likewise.
4802 (LTO_BEGIN_READ_ATTRS_UNCHECKED): New macro.
4803 (LTO_BEGIN_READ_ATTRS): Likewise.
4804 (LTO_END_READ_ATTRS): Likewise.
4805 (lto_unsupported_attr_error): New function.
4806 (lto_get_identifier): Likewise.
4807 (lto_read_referenced_type_DIE): Likewise.
4808 (lto_read_compile_unit_DIE): Likewise.
4809 (lto_read_variable_formal_parameter_constant_DIE): Likewise.
4810 (lto_read_base_type_DIE): Likewise.
4811 (lto_read_DIE): Likewise.
4812 (lto_read_child_DIEs): Likewise.
4813 (lto_file_read): Read DIEs.
4814 (lto_main): Ask middle end to emit entities.
4815 * lto-tree.h (lang_identifier): Inherit from tree_identifier.
4816 * lto-elf.c (lto_elf_file_open): Adjust for interface changes.
4817 (lto_elf_file_close): Likewise.
4818 * lto.h (lto_file): Declare.
4819 (DWARF2_abbrev): Likewise.
4820 (lto_fd): New type.
4821 (lto_abbrev_fd): Likewise.
4822 (lto_file): Use new types.
4823 (lto_file_close): Declare.
4824 * lto-lang.c (lto_init): Always use unit-at-a-time mode.
4825
48262006-06-18 Mark Mitchell <mark@codesourcery.com>
4827
4828 * lto.h: New file.
4829 * lto.c: New file.
4830 * lto-elf.c: New file.
4831 * lto-lang.c (flags.h): Include it.
4832 (lto.h): Likewise.
4833 (lto_init): New function.
4834 (lto_write_globals): Remove.
4835 (LANG_HOOKS_WRITE_GLOBALS): Define to lhd_do_nothing.
4836 (LANG_HOOKS_INIT): Define.
4837 (LANG_HOOKS_PARSE_FILE): Likewise.
4838 * Make-lang.in (LTO_OBJS): Add lto.o and lto-elf.o.
4839 (LTO_EXE): Link with libelf.
4840 (lto/lto-lang.o): Update dependencies.
4841 (lto/lto.o): New target.
4842 (lto/lto-elf.o): Likewise.
4843
48442006-06-12 Mark Mitchell <mark@codesourcery.com>
4845
4846 * config-lang.in: New file.
4847 * Make-lang.in: Likewise.
4848 * lto-tree.h: Likewise.
4849 * lto-lang.c: Likewise.
4850
This page took 2.755087 seconds and 5 git commands to generate.