]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/lto/ChangeLog
re PR tree-optimization/84228 (Bogus -Wstringop-truncation warning with -g)
[thirdparty/gcc.git] / gcc / lto / ChangeLog
CommitLineData
ee034d31
EB
12018-02-02 Eric Botcazou <ebotcazou@adacore.com>
2
3 PR lto/83954
4 * lto-symtab.c (warn_type_compatibility_p): Do not recurse into the
5 component type of array types with non-aliased component.
6
44c945e6
JH
72018-01-30 Jan Hubicka <hubicka@ucw.cz>
8
9 PR lto/83954
10 * lto-symtab.c (warn_type_compatibility_p): Silence false positive
11 for type match warning on arrays of pointers.
12
cde9b2f8
ML
132018-01-23 Martin Liska <mliska@suse.cz>
14
15 PR lto/81440
16 * lto-symtab.c (lto_symtab_merge): Handle and do not warn about
17 trailing arrays at the end of a struct.
18
5c0caeb3
RS
192018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
20 Alan Hayward <alan.hayward@arm.com>
21 David Sherwood <david.sherwood@arm.com>
22
23 * lto-lang.c (lto_type_for_mode): Handle MODE_VECTOR_BOOL.
24
928686b1
RS
252018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
26 Alan Hayward <alan.hayward@arm.com>
27 David Sherwood <david.sherwood@arm.com>
28
29 * lto-lang.c (lto_type_for_mode): Check valid_vector_subparts_p.
30 * lto.c (hash_canonical_type): Handle polynomial TYPE_VECTOR_SUBPARTS.
31
85ec4feb
JJ
322018-01-03 Jakub Jelinek <jakub@redhat.com>
33
34 Update copyright years.
35
4849deb1
JJ
362017-12-15 Jakub Jelinek <jakub@redhat.com>
37
38 * lto-lang.c (lto_attribute_table, lto_format_attribute_table): Swap
39 affects_type_identity and handler fields, adjust comments.
40
734914b6
RS
412017-12-07 Richard Sandiford <richard.sandiford@arm.com>
42
43 * lto.c (compare_tree_sccs_1): Compare the new VECTOR_CST flags.
44
5d9ae53d
MS
452017-12-07 Martin Sebor <msebor@redhat.com>
46
47 PR c/81544
48 * lto-lang.c (lto_attribute_table): Initialize new member of struct
49 attribute_spec.
50
5de73c05
JJ
512017-11-30 Jakub Jelinek <jakub@redhat.com>
52
53 * lto.c (create_subid_section_table): Use ; instead of ;;.
54
974aedcc
MP
552017-11-22 Marek Polacek <polacek@redhat.com>
56
57 PR c++/60336
58 PR middle-end/67239
59 PR target/68355
60 * lto.c (compare_tree_sccs_1): Compare TYPE_EMPTY_P and DECL_PADDING_P.
61
1bad9c18
JH
622017-11-10 Jan Hubicka <hubicka@ucw.cz>
63
64 * lto-partition.c (lto_balanced_map): Use frequency accessor.
65
65991ea3
JH
662017-10-13 Jan Hubicka <hubicka@ucw.cz>
67
68 * lto-lang.c (lto_post_options): Clean shlib flag when not doing PIC.
69
4e7d0260
NS
702017-10-11 Nathan Sidwell <nathan@acm.org>
71
72 * lto.c (mentions_vars_p_decl_with_vis): Use
73 DECL_ASSEMBLER_NAME_RAW.
74 (lto_fixup_prevailing_decls): Likewise.
75
8e6cdc90
RS
762017-10-10 Richard Sandiford <richard.sandiford@linaro.org>
77
78 * lto.c (compare_tree_sccs_1): Use wi::to_wide when
79 operating on trees as wide_ints.
80
357b7604
RS
812017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
82 Alan Hayward <alan.hayward@arm.com>
83 David Sherwood <david.sherwood@arm.com>
84
85 * lto-lang.c (lto_type_for_mode): Use as_a <scalar_int_mode>.
86
1ea85365
RB
872017-08-21 Richard Biener <rguenther@suse.de>
88
89 * lto.c (unify_scc): Truncate DIE reference queue for dropped SCCs.
90 (lto_read_decls): Process TRANSLATION_UNIT_DECLs. Remove
91 TYPE_DECL debug processing, register DIE references from
92 prevailing SCCs with the debug machinery.
93 (lto_section_with_id): Handle LTO debug sections.
94
8e093270
NS
952017-08-16 Nathan Sidwell <nathan@acm.org>
96
97 * lto.c (mentions_vars_p_type): Use TYPE_LANG_SLOT_1.
98 (compare_tree_sccs_1): No need to compare TYPE_BINFO directly.
99 (lto_fixup_prevailing_decls): Use TYPE_LANG_SLOT_1.
100
eac3ab4a
TV
1012017-08-08 Tom de Vries <tom@codesourcery.com>
102
103 * lto.c: Include attribs.h.
104
314e6352
ML
1052017-08-08 Martin Liska <mliska@suse.cz>
106
107 * lto-lang.c: Include header files.
108 * lto-symtab.c: Likewise.
109
63e434ca
RB
1102017-08-03 Richard Biener <rguenther@suse.de>
111
112 * lto-symtab.h (lto_symtab_prevail_decl): Do not use
113 DECL_ABSTRACT_ORIGIN as flag we can end up using that. Instead
114 use DECL_LANG_FLAG_0.
115 (lto_symtab_prevail_decl): Likewise.
116
417ca011
TD
1172017-07-07 Torsten Duwe <duwe@suse.de>
118
119 * lto-lang.c (lto_attribute_table): Add entry for
120 "patchable_function_entry".
121
20deef65
NS
1222017-07-19 Nathan Sidwell <nathan@acm.org>
123
124 * lto.c (mentions_vars_p_type): Use TYPE_{MIN,MAX}_VALUE_RAW.
125 (compare_tree_sccs_1, lto_fixup_prevailing_decls): Likewise.
126
0eaf0bfe
JH
1272017-07-06 Jan Hubicka <hubicka@ucw.cz>
128
129 * lto-partition.c (lto_balanced_map): Do not check
130 flag_toplevel_reorder.
2db9b7cd 131
0eaf0bfe 1322017-06-23 Marc Glisse <marc.glisse@inria.fr>
2db9b7cd
MG
133 * lto-lang.c (lto_init): Use builtin_structptr_types.
134
d1eed638
JH
1352017-06-15 Jan Hubicka <hubicka@ucw.cz>
136 Thomas Preud'homme <thomas.preudhomme@arm.com>
137
138 PR lto/69866
139 * lto-symtab.c (lto_symtab_merge_symbols): Drop useless definitions
140 that resolved externally.
141
d2db2e6b
JH
1422017-05-23 Jan Hubicka <hubicka@ucw.cz>
143
144 * lto.c (do_whole_program_analysis): Replace inline_free_summary
145 by ipa_free_fn_summary.
146
464d0118
ML
1472017-05-23 Martin Liska <mliska@suse.cz>
148
149 * lto-symtab.c (lto_cgraph_replace_node): Use
150 symtab_node::dump_{asm_,}name functions.
151 * lto.c (read_cgraph_and_symbols): Likewise.
152 (do_whole_program_analysis): Likewise.
153
6c52831d
ML
1542017-05-23 Martin Liska <mliska@suse.cz>
155
156 * lto.c (read_cgraph_and_symbols): Use the renamed function.
157 (do_whole_program_analysis): Use the renamed function.
158
27d020cf
JH
1592017-05-22 Jan Hubicka <hubicka@ucw.cz>
160
161 * lto.c: Replace ipa-inline.h by ipa-fnsummary.h
162 * lto-partition.c: Replace ipa-inline.h by ipa-fnsummary.h
163
815d9cc6
XR
1642017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
165
166 PR c++/80038
167 * lto-lang.c (lto_init): Set in_lto_p earlier.
168
350792ff
RB
1692017-04-12 Richard Biener <rguenther@suse.de>
170 Bernd Edlinger <bernd.edlinger@hotmail.de>
171
172 PR middle-end/79671
173 * lto.c (compare_tree_sccs_1): Compare TYPE_TYPELESS_STORAGE.
174
4a44a5f3
ML
1752017-02-14 Martin Liska <mliska@suse.cz>
176
177 * lto.c (do_stream_out): Free LTO file filename string.
178
8a3a6ab4
DM
1792017-01-19 David Malcolm <dmalcolm@redhat.com>
180
181 * lto-lang.c (builtin_type_for_size): Convert call to
182 lto_type_for_size to one through the langhook.
183 (lto_type_for_size): Move to langhooks.c and rename to
184 lhd_type_for_size.
185 (LANG_HOOKS_TYPE_FOR_SIZE): Don't redefine.
186
4c4b4703
JJ
1872017-01-11 Jakub Jelinek <jakub@redhat.com>
188
189 PR middle-end/50199
190 * lto-lang.c (lto_post_options): Force flag_merge_constants = 1
191 if it was 0.
192
bd2c6270
JJ
1932017-01-09 Jakub Jelinek <jakub@redhat.com>
194
195 PR translation/79019
196 PR translation/79020
197 * lto-symtab.c (lto_symtab_merge_symbols): Fix comment typo.
198
24d3f325
NS
1992017-01-06 Nathan Sidwell <nathan@acm.org>
200
5406184c
NS
201 * lto-partition.c (promote_symbol): Write to dump file sooner,
202 include alias promoting too.
203
24d3f325
NS
204 * lto-partition.c (lto_balanced_map): Reformat/respell comment.
205 (may_need_named_section_p): Likewise.
206 (rename_statics): Likewise.
207 (lto_promote_cross_file_statics): Likewise.
208
cbe34bb5
JJ
2092017-01-01 Jakub Jelinek <jakub@redhat.com>
210
211 Update copyright years.
212
6c8bf066
GJL
2132016-11-30 Georg-Johann Lay <avr@gjlay.de>
214
215 PR lto/78562
216 * lto-symtab.c (lto_symtab_merge_decls_2): Don't diagnose type
217 mismatch if the two types are built-in.
218
7fa6a965
PK
2192016-11-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
220
221 * lto-lang.c (lto_init): Remove initialization of ptrdiff_type_node.
222
efb71232
RB
2232016-11-23 Richard Biener <rguenther@suse.de>
224
225 PR lto/78472
226 * lto.c (hash_canonical_type): Ignore zero-sized fields.
227
48330c93
BE
2282016-11-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
229
230 PR c++/71973
231 * lto-lang.c (lto_init): Assert const_tm_ptr_type_node is sane.
232
899ca90e 2332016-11-18 Richard Sandiford <richard.sandiford@arm.com>
48330c93
BE
234 Alan Hayward <alan.hayward@arm.com>
235 David Sherwood <david.sherwood@arm.com>
899ca90e
RS
236
237 * lto.c (offload_handle_link_vars): Use SET_DECL_MODE.
238
65179585
RB
2392016-10-31 Richard Biener <rguenther@suse.de>
240
241 PR lto/78129
242 * lto.c (do_whole_program_analysis): Bail out after errors
243 from WPA analysis.
244
8bc5448f
KV
2452016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
246
247 * lto-partition.c: Include tree-vrp.h.
248 * lto.c: Likewise.
249
68317985
RB
2502016-09-20 Richard Biener <rguenther@suse.de>
251
252 * lto.c (lto_main): Call early_finish with "<artificial>" as
253 filename.
254
321e76fb
RB
2552016-09-19 Richard Biener <rguenther@suse.de>
256
257 * lto.c (lto_main): Invoke early_finish debug hook.
258
ea6e17d5
RB
2592016-07-25 Richard Biener <rguenther@suse.de>
260
261 * lto.c (compare_tree_sccs_1): Remove streamer_handle_as_builtin_p uses.
262 (unify_scc): Likewise.
263 (lto_read_decls): Likewise.
264
e9ac1f86
JJ
2652016-06-28 Jakub Jelinek <jakub@redhat.com>
266
267 * Make-lang.in: Don't cat ../stage_current if it does not exist.
268
277d7ee0
AK
2692016-06-23 Andi Kleen <ak@linux.intel.com>
270
271 * Make-lang.in: Add support for autofdo (disabled for now)
272
4d926e34
MS
2732016-06-10 Martin Sebor <msebor@redhat.com>
274
275 PR c/71392
276 * gcc/lto/lto-lang.c (handle_nonnull_attribute): Accept the nonnull
277 attribute in type-generic builtins.
278
479f99c9
JH
2792016-05-16 Jan Hubicka <hubicka@ucw.cz>
280
281 * lto-partition.c (add_symbol_to_partition_1): Likewise.
282
1a0bf5e1
JH
2832016-05-03 Jan Hubicka <hubicka@ucw.cz>
284
285 * lto-symtab.c (lto_cgraph_replace_node): Initialize inline_failed.
286
a2e76867
PK
2872016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
288
289 * lto-partition.h (lto_balanced_map): New parameter.
290 * lto-partition.c (lto_balanced_map): New parameter
291 max_partition_size.
292 Check if partition size is greater than max_partition_size.
293 * lto.c (do_whole_program_analysis): Adjust calls to
294 lto_balanced_map() to pass 2nd argument.
295
ea913779
L
2962016-03-17 H.J. Lu <hongjiu.lu@intel.com>
297
298 PR lto/70258
299 * lto-lang.c (lto_post_options): Set flag_pic to flag_pie for
300 PIE.
301
56aae4b7
JJ
3022016-03-08 Jakub Jelinek <jakub@redhat.com>
303
304 * lto-symtab.h (lto_symtab_prevail_decl): Fix spelling
305 - becuase -> because.
306
ed5d948d
TV
3072016-02-15 Tom de Vries <tom@codesourcery.com>
308
309 PR lto/69655
310 * lto.c (read_cgraph_and_symbols): Call input_offload_tables with
311 argument.
312
4ecbadc7
ML
3132016-01-27 Martin Liska <mliska@suse.cz>
314
315 * lto-partition.c (add_symbol_to_partition_1): Remove usage
316 of hsa_summaries.
317
e49d321f
JH
3182016-01-19 Jan Hubicka <hubicka@ucw.cz>
319
320 PR lto/69136
321 * lto-symtab.c (lto_symtab_prevailing_virtual_decl): Abstract
322 decls have no assemblernames.
323
b2b40051
MJ
3242016-01-19 Martin Liska <mliska@suse.cz>
325 Martin Jambor <mjambor@suse.cz>
326
327 * lto-partition.c: Include "hsa.h"
328 (add_symbol_to_partition_1): Put hsa implementations into the
329 same partition as host implementations.
330
5803bd01
JH
3312016-01-12 Jan Hubicka <hubicka@ucw.cz>
332
333 PR lto/69003
334 * lto-partition.c (rename_statics): Fix pasto.
335
13092f61
RB
3362016-01-18 Richard Biener <rguenther@suse.de>
337
338 PR lto/69337
339 * lto-symtab.c (lto_symtab_merge): Return early for mismatched
340 function vs. variable.
341
3c4e91c9
RB
3422016-01-12 Richard Biener <rguenther@suse.de>
343
344 PR lto/69077
345 * lto-symtab.c (lto_symtab_prevailing_virtual_decl): Properly
346 merge TREE_ADDRESSABLE and DECL_POSSIBLY_INLINED flags.
347
818ab71a
JJ
3482016-01-04 Jakub Jelinek <jakub@redhat.com>
349
350 Update copyright years.
351
3fddb2ef
JH
3522015-12-10 Jan Hubicka <hubicka@ucw.cz>
353
354 PR lto/68878
355 * lto-symtab.c (lto_symtab_prevailing_virtual_decl): New function.
356 * lto-symtab.h (lto_symtab_prevailing_virtual_decl): Declare.
357 (lto_symtab_prevailing_decl): Use it.
358
4a38b02b
IV
3592015-12-15 Ilya Verbin <ilya.verbin@intel.com>
360
361 * lto.c: Include stringpool.h and fold-const.h.
362 (offload_handle_link_vars): New static function.
363 (lto_main): Call offload_handle_link_vars.
364
ca834876
JH
3652015-12-10 Jan Hubicka <hubicka@ucw.cz>
366
367 * lto.c (lto_read_in_decl_state): Unpickle compressed bit.
368
958a627f
JH
3692015-12-11 Jan Hubicka <hubicka@ucw.cz>
370
371 PR ipa/61886
372 * lto-symtab.c (lto_symtab_merge_p): Avoid merging across different
373 values of error and warning attributes.
374
da20571a
JH
3752015-12-08 Jan Hubicka <hubicka@ucw.cz>
376
377 PR lto/68811
378 * lto.c (lto_fixup_prevailing_decls): Do not check TREE_CHAIN of
379 DECL.
380 (LTO_NO_PREVAIL): Use gcc_checking_assert.
381
378004b9
JH
3822015-12-08 Jan Hubicka <hubicka@ucw.cz>
383
384 PR lto/68811
385 * lto-symtab.c (lto_symtab_merge_decls_2): Decl can never be prevailed
386 by itself.
387
6b9ac179
JH
3882015-12-08 Jan Hubicka <hubicka@ucw.cz>
389
390 PR ipa/61886
391 * lto-symtab.c: Include lto-symtab.h.
392 (lto_cgraph_replace_node): Do not merge profiles here.
393 (lto_symtab_merge_p): New function.
394 (lto_symtab_merge_decls_2): Honor lto_symtab_merge_p.
395 (lto_symtab_merge_symbols_1): Turn unmerged decls into transparent
396 aliases.
397 (lto_symtab_merge_symbols): Do not clear node->aux; we no longer use it.
398 (lto_symtab_prevailing_decl): Move to lto-symtab.h; rewrite.
399 * lto.c: Include lto-symtab.h
400 * lto-symtab.h: New.
401
41c60c6c
JH
4022015-12-08 Jan Hubicka <hubicka@ucw.cz>
403
404 PR ipa/61886
405 * lto-partition.c (add_symbol_to_partition_1): Transparent aliases
406 are not part of the definition.
407 (contained_in_symbol): Likewise.
408 (promote_symbol): When promoting a symbol also promote all transparent
409 aliases.
410 (rename_statics): Weakref needs unique name, too.
411
71e54687
JH
4122015-12-07 Jan Hubicka <hubicka@ucw.cz>
413
414 PR ipa/61886
415 * lto-partition.c (add_symbol_to_partition_1, contained_in_symbol,
416 rename_statics, rename_statics): Handle transparent aliases.
417
88636b62
JH
4182015-12-04 Jan Hubicka <hubicka@ucw.cz>
419
420 * lto-symtab.c (lto_cgraph_replace_node): Update code computing
421 merged_comdat.
422
8c86248e
JH
4232015-12-01 Jan Hubicka <hubicka@ucw.cz>
424
425 * lto.c (compare_tree_sccs_1): Do not compare TYPE_ALIAS_SET.
426
1ff9ed6f
JH
4272015-11-25 Jan Hubicka <jh@suse.cz>
428
429 * lto-lang.c (lto_post_options): Process flag_lto_linker_output.
430 * lang.opt (lto_linker_output): New enum.
431 (flinker_output): New flag.
432
22bea0be
JH
4332015-11-24 Jan Hubicka <hubicka@ucw.cz>
434
435 * lto-symtab.c: Include alias.h
436 (warn_type_compatibility_p): Replace types_compatible_p checks by
437 TBAA and size checks; set bit 2 if locations are TBAA incompatible.
438 (lto_symtab_merge): Compare DECL sizes.
439 (lto_symtab_merge_decls_2): Warn about TBAA in compatibility.
440
aea50b45
JH
4412015-11-24 Jan Hubicka <hubicka@ucw.cz>
442
443 * lto.c (iterative_hash_canonical_type): Recruse for all types
444 which pass !canonical_type_used_p.
445 (gimple_register_canonical_type_1): Sanity check we do not compute
446 canonical type of anything with !canonical_type_used_p.
447 (gimple_register_canonical_type): Skip all types that are
448 !canonical_type_used_p
449
deb3dae6
JH
4502015-11-24 Jan Hubicka <hubicka@ucw.cz>
451
452 * lto.c (unify_scc): Use free_node.
453
f85d2487
JH
4542015-11-21 Jan Hubicka <hubicka@ucw.cz>
455
456 * lto.c (iterative_hash_canonical_type): Always recurse for pointers.
457 (gimple_register_canonical_type_1): Check that pointers do not get
458 canonical types.
459 (gimple_register_canonical_type): Do not register pointers.
460
4612015-11-21 Jan Hubicka <hubicka@ucw.cz>
feb391fc
JH
462
463 * lto-symtab.c (warn_type_compatibility_p): Do not set ODR mismatch
464 flag for types that are not ODR; fix loop walking parameters.
465
69f293c9
AM
4662015-11-11 Andrew MacLeod <amacleod@redhat.com>
467
468 * lto-lang.c: Remove unused header files.
469 * lto-object.c: Likewise.
470 * lto-partition.c: Likewise.
471 * lto-symtab.c: Likewise.
472 * lto.c: Likewise.
473
ee45a32d
EB
4742015-11-08 Eric Botcazou <ebotcazou@adacore.com>
475
476 * lto.c (compare_tree_sccs_1): Deal with TYPE_REVERSE_STORAGE_ORDER.
477
0aad0198
RS
4782015-11-07 Richard Sandiford <richard.sandiford@arm.com>
479
480 * lto-lang.c: Don't undef DEF_BUILTIN.
481
2adfab87
AM
4822015-10-29 Andrew MacLeod <amacleod@redhat.com>
483
484 * lto-lang.c: Reorder #include's and remove duplicates.
485 * lto-object.c: Likewise.
486 * lto-partition.c: Likewise.
487 * lto-symtab.c: Likewise.
488 * lto.c: Likewise.
489
b2b29377
MM
4902015-10-27 Mikhail Maltsev <maltsevm@gmail.com>
491
492 * lto.c (unify_scc): Use flag_checking and remove ENABLE_CHECKING
493 conditionals.
494 (lto_fixup_state): Likewise.
495 (do_whole_program_analysis): Use
496 symtab_node::checking_verify_symtab_nodes and remove ENABLE_CHECKING
497 conditionals.
498
d9a6bd32
JJ
4992015-10-13 Jakub Jelinek <jakub@redhat.com>
500
501 * lto-lang.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
502 DEF_FUNCTION_TYPE_11): Define.
503
9c4eeafc
JH
5042015-10-10 Jan Hubicka <hubicka@ucw.cz>
505
506 * lto.c (hash_canonical_type): Honor
507 type_with_interoperable_signedness.
508
3e32ee19
NS
5092015-09-28 Nathan Sidwell <nathan@codesourcery.com>
510
511 * lto-lang.c (DEF_FUNCTION_TYPE_VAR_6): New.
512 (DEF_FUNCTION_TYPE_VAR_11): Delete.
513
f196d062
RB
5142015-08-31 Richard Biener <rguenther@suse.de>
515
516 * lto.c (compare_tree_sccs_1): Compare DECL_ABSTRACT_ORIGIN.
517 * lto-symtab.c (lto_symtab_merge): Merge DECL_POSSIBLY_INLINED flag.
518 (lto_symtab_prevailing_decl): Do not replace a decl that didn't
519 participate in merging with something else.
520
45aee888
RB
5212015-08-31 Richard Biener <rguenther@suse.de>
522
523 * lto-symtab.c (lto_symtab_prevailing_decl): Remove redundant
524 test, do not replace a non-builtin with a builtin.
525 * lto.c (compare_tree_sccs_1): Do not merge things we stream
526 as builtins vs. non-builtins.
527
a79683d5
TS
5282015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org>
529
530 * lto.h: Remove useless typedefs.
531
48d859bb
AM
5322015-07-15 Andrew MacLeod <amacleod@redhat.com>
533
534 * lto.c: Remove redundant includes.
535
026c3cfd
AH
5362015-07-12 Aldy Hernandez <aldyh@redhat.com>
537
538 * lto-lang.c: Fix double word typos.
539
9fdcd34e
AM
5402015-07-10 Andrew MacLeod <amacleod@redhat.com>
541
542 * lto.c: Include cfghooks.h rather than predict.h.
543
f51ade33
AM
5442015-07-09 Andrew MacLeod <amacleod@redhat.com>
545
546 * lto-lang.c: Adjust includes of target.h, alloc-pool.h and
547 lto-streamer.h.
548 * lto-object.c: Likewise.
549 * lto-partition.c: Likewise.
550 * lto-symtab.c: Likewise.
551
1916bcb5
AM
5522015-07-09 Andrew MacLeod <amacleod@redhat.com>
553
554 * lto-lang.c: Adjust includes for flags.h changes.
555
c7131fb2
AM
5562015-07-07 Andrew MacLeod <amacleod@redhat.com>
557
558 * lto-lang.c: Adjust includes.
559 * lto-object.c: Likewise.
560 * lto-partition.c: Likewise.
561 * lto-symtab.c: Likewise.
562 * lto.c: Likewise.
563
f0889939
AM
5642015-06-25 Andrew MacLeod <amacleod@redhat.com>
565
566 * lto-lang.c: Remove ipa-ref.h and plugin-api.h from include list.
567 * lto-object.c: Likewise.
568 * lto-partition.c: Likewise.
569 * lto-symtab.c: Likewise.
570 * lto-tree.h: Likewise.
571 * lto.c: Likewise.
572
8d67ee55
RS
5732015-06-25 Richard Sandiford <richard.sandiford@arm.com>
574
575 * lto.c (tree_scc_hasher): Inherit from nofree_ptr_hash rather
576 than typed_noop_remove. Remove redudant typedefs.
577
abb226c9
AM
5782015-06-17 Andrew MacLeod <amacleod@redhat.com>
579
580 * lto-lang.c: Do not include input.h, line-map.h or is-a.h.
581 * lto-object.c: Likewise.
582 * lto-partition.c: Likewise.
583 * lto-symtab.c: Likewise.
584 * lto.c: Likewise.
585
351d90f4
JH
5862015-06-14 Jan Hubicka <hubicka@ucw.cz>
587
588 PR ipa/66181
589 * lto.c (compare_tree_sccs_1): Do not compare TYPE_NO_FORCE_BLK.
590
44c42705
DD
5912015-06-12 DJ Delorie <dj@redhat.com>
592
593 * lto-lang.c (lto_type_for_size): Include intN types.
594 (lto_type_for_mode): Likewise.
595
64578d98
JH
5962015-06-08 Jan Hubicka <hubicka@ucw.cz>
597
598 * lto.c (hash_canonical_type): Drop hashing of TYPE_STRING_FLAG.
599
13fdf2e2
AM
6002015-06-08 Andrew MacLeod <amacleod@redhat.com>
601
602 * lto-lang.c : Adjust include files.
603 * lto-object.c : Likewise.
604 * lto-partition.c : Likewise.
605 * lto-partition.h : Likewise.
606 * lto-symtab.c : Likewise.
607 * lto.c : Likewise.
608 * lto.h : Likewise.
609
ccb5ad37
JH
6102015-06-06 Jan Hubicka <hubicka@ucw.cz>
611
6542950e
JH
612 PR lto/65378
613 * lto-symtab.c (warn_type_compatibility_p): Fix call of
614 odr_or_derived_type_p.
615 (lto_symtab_merge_decls_2): Update call of warn_types_mismatch.
616
6172015-06-08 Jan Hubicka <hubicka@ucw.cz>
618
619
ccb5ad37
JH
620 * lto.c (hash_canonical_type): Do not hash TREE_CODE of TREE_TYPE of
621 pointers.
622
d7438551
AH
6232015-06-05 Aldy Hernandez <aldyh@redhat.com>
624
625 * lto-lang.c (lto_write_globals): Remove.
626 (LANG_HOOKS_WRITE_GLOBALS): Same.
627
ecb9f223
AM
6282015-06-04 Andrew MacLeod <amacleod@redhat.com>
629
630 * lto-lang.c: Adjust includes for restructured coretypes.h.
631 * lto-object.c: Likewise.
632 * lto-partition.c: Likewise.
633 * lto-symtab.c: Likewise.
634 * lto.c: Likewise.
635
9cb9b937
JH
6362015-06-04 Jan Hubicka <hubicka@ucw.cz>
637
638 * lto.c (hash_canonical_type): Use tree_code_for_canonical_type_merging.
639
93e2aa6d
JH
6402015-06-03 Jan Hubicka <hubicka@ucw.cz>
641
642 * lto.c (iterative_hash_canonical_type,
643 gimple_register_canonical_type): only hash main variants of types
644
faae53f8
ML
6452015-05-27 Martin Liska <mliska@suse.cz>
646
647 * lto-partition.c (new_partition): Reset number of symbols.
648 (add_symbol_to_partition_1): Increment number of symbols.
649 (undo_partition): Decrement number of symbols.
650 (lto_balanced_map): Dump number of symbols and insns that
651 belong to a partition.
652 * lto-partition.h (struct ltrans_partition_def): Add symbol counter.
653
b727ba74
JH
6542015-05-22 Jan Hubicka <hubicka@ucw.cz>
655
656 * lto.c (hash_canonical_type): Be sure we hash only types that
657 need alias set.
658 (gimple_register_canonical_type_1): Do not produce canonical
659 types for types that do not need alias sets.
660
1d1218fb
JH
6612015-05-22 Jan Hubicka <hubicka@ucw.cz>
662
663 * lto.c (hash_canonical_type): Drop hashing of METHOD_BASETYPE.
664
872d5034
JH
6652015-05-19 Jan Hubicka <hubicka@ucw.cz>
666
667 * lto.c (gimple_canonical_types_compatible_p): Move to tree.c
668
259d29e3
JH
6692015-05-17 Jan Hubicka <hubicka@ucw.cz>
670
671 * lto-symtab.c (warn_type_compatibility_p): Break out from ...;
672 compare ODR types (if available) and function types.
673 (lto_symtab_merge): ... here; output ODR violation warnings
674 and call warn_types_mismatch.
675
b0845a1e
JH
6762015-04-29 Jan Hubicka <hubicka@ucw.cz>
677
678 * lto.c (lto_fixup_state): Call verify_type.
679
67f58944
TS
6802015-04-18 Trevor Saunders <tsaunders@mozilla.com>
681
b0845a1e 682 * lto.c: Adjust for hash_table changes.
67f58944 683
36ceb0e3
JH
6842015-03-27 Jan Hubicka <hubicka@ucw.cz>
685
686 * lto.c (lto_read_decls): Move code registering odr types out
687 of TYPE_CANONICAL conditional and also register polymorphic types.
688
afd1e7c6
JH
6892015-03-26 Jan Hubicka <hubicka@ucw.cz>
690
691 * lto-symtab.c (lto_symtab_merge_decls_2): Silence warning on
692 DECL_ARTIFICAL symbols.
693
eaeec5ec
JH
6942015-03-26 Jan Hubicka <hubicka@ucw.cz>
695
696 PR lto/65536
697 * lto.c (unify_scc): Revert location cache when unification
698 suceeded.
699 (lto_read_decls): Accept location cache after sucess;
700 apply location cache before calling debug hooks.
701
1c4db829
JH
7022015-03-10 Jan Hubicka <hubicka@ucw.cz>
703
704 * lto.c (read_cgraph_and_symbols): Do not do merging
705 at ltrans stage.
706
db847fa8
JJ
7072015-02-26 Jakub Jelinek <jakub@redhat.com>
708
709 * lto.c (lto_mode_identity_table): New variable.
710 (lto_read_decls): Add mode_table argument to the lto_input_block
711 constructor.
712 (lto_file_finalize): Initialize mode_table.
713 (lto_init): Initialize lto_mode_identity_table.
714
56a9f6bc
TS
7152015-02-24 Thomas Schwinge <thomas@codesourcery.com>
716
717 PR libgomp/64625
718 * lto-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
719 Remove macros.
720 (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
721
ebc8f0bb
JH
7222015-02-03 Jan Hubicka <hubicka@ucw.cz>
723
724 * lto-symtab.c (lto_cgraph_replace_node): Maintain merged flag.
725
40fecdd6
JM
7262015-01-30 Joseph Myers <joseph@codesourcery.com>
727
728 * lto-object.c, lto-symtab.c, lto.c: All callers of fatal_error
729 changed to pass input_location as first argument.
730
040968a8
JH
7312014-12-11 Jan Hubicka <hubicka@ucw.cz>
732
733 * lto-symtab.c (lto_varpool_replace_node): Merge TLS models.
734
69fe4502
JH
7352014-12-11 Jan Hubicka <hubicka@ucw.cz>
736
737 * lto.c (compare_tree_sccs_1): Add comparsion of
738 DECL_FUNCTION_SPECIFIC_TARGET
739
41dbbb37
TS
7402015-01-15 Thomas Schwinge <thomas@codesourcery.com>
741 James Norris <jnorris@codesourcery.com>
742
743 * lto-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
744 New macros.
745 * lto.c: Include "gomp-constants.h".
746
837bac8c
IV
7472015-01-14 Ilya Verbin <ilya.verbin@intel.com>
748
749 * lto-partition.c (lto_promote_cross_file_statics): Remove argument
750 from select_what_to_stream.
751
1b34e6e2
BS
7522015-01-09 Bernd Schmidt <bernds@codesourcery.com>
753 Jakub Jelinek <jakub@redhat.com>
754
755 PR middle-end/64412
756 * lto.c (read_cgraph_and_symbols): Set lto_stream_offload_p
757 if ACCEL_COMPILER.
758
adfac8df
JJ
7592015-01-09 Michael Collison <michael.collison@linaro.org>
760
761 * lto.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
762 input.h, alias.h, symtab.h, options, fold-const.h,
763 wide-int.h, and inchash.h due to flattening of tree.h.
764 * lto-lang.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
765 input.h, alias.h, symtab.h, fold-const.h,
766 wide-int.h, and inchash.h due to flattening of tree.h.
767 * lto-object.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
768 input.h, alias.h, symtab.h, options, fold-const.h,
769 wide-int.h, and inchash.h due to flattening of tree.h.
770 * lto-partition.c: Ditto.
771 * lto-symtab.c: Ditto.
772
5624e564
JJ
7732015-01-05 Jakub Jelinek <jakub@redhat.com>
774
775 Update copyright years.
776
9a1e784a
ML
7772014-12-22 Martin Liska <mliska@suse.cz>
778
779 * lto-partition.c (add_symbol_to_partition_1): New inline_summaries
780 is used.
781 (undo_partition): Likewise.
782 (lto_balanced_map): Likewise.
783
dd912cb8
ML
7842014-12-22 Martin Liska <mliska@suse.cz>
785
786 * lto-partition.c: Include of symbol-summary.h is added.
787 * lto-symtab.c: Likewise.
788 * lto.c: Likewise.
789
17e0fc92
JH
7902014-12-11 Jan Hubicka <hubicka@ucw.cz>
791
792 PR ipa/61324
793 * lto.c (read_cgraph_and_symbols): Update call of
794 remove_unreachable_nodes.
795 (do_whole_program_analysis): Remove call of
796 symtab->remove_unreachable_nodes
797
58dddbd2
TS
7982014-12-08 Trevor Saunders <tsaunders@mozilla.com>
799
800 * lto.c (read_cgraph_and_symbols): allocate gimple_canonical_types
801 htab with malloc instead of ggc.
802
907dadbd
TS
8032014-11-20 Trevor Saunders <tsaunders@mozilla.com>
804
805 * lto.c: Replace htab with hash_table.
806
9c71e9df
TS
8072014-11-20 Trevor Saunders <tsaunders@mozilla.com>
808
809 * lto.c (lto_read_in_decl_state): Adjust.
810 (lto_fixup_state): Likewise.
811
72a4a8b0
JH
8122014-11-17 Jan Hubicka <hubicka@ucw.cz>
813
814 * lto.c (lto_read_decls): Do not rebuild DECL_FUNCTION_SPECIFIC_TARGET.
815
54e774c0
JH
8162014-11-14 Jan Hubicka <hubicka@ucw.cz>
817
818 * lto.c (compare_tree_sccs_1): Compare cl_target_option_eq.
819
1f6be682
IV
8202014-11-13 Ilya Verbin <ilya.verbin@intel.com>
821 Bernd Schmidt <bernds@codesourcery.com>
822 Andrey Turetskiy <andrey.turetskiy@intel.com>
823 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
824
ec6fe917
IV
825 * lto/lto.c (read_cgraph_and_symbols): Call input_offload_tables.
826
8272014-11-13 Ilya Verbin <ilya.verbin@intel.com>
828 Ilya Tocar <ilya.tocar@intel.com>
829 Andrey Turetskiy <andrey.turetskiy@intel.com>
830 Bernd Schmidt <bernds@codesourcery.com>
831
1f6be682
IV
832 * lto-object.c (lto_obj_add_section): Use section_name_prefix instead of
833 LTO_SECTION_NAME_PREFIX.
834 * lto-partition.c (lto_promote_cross_file_statics): Call
835 select_what_to_stream.
836 * lto.c (lto_section_with_id): Use section_name_prefix instead of
837 LTO_SECTION_NAME_PREFIX.
838 (read_cgraph_and_symbols): Read OFFLOAD_SECTION_NAME_PREFIX sections, if
839 being built as an offload compiler.
840
ef4bddc2
RS
8412014-10-29 Richard Sandiford <richard.sandiford@arm.com>
842
843 * lto-lang.c: Remove redundant enum from machine_mode.
844
c582198b
AM
8452014-10-28 Andrew MacLeod <amacleod@redhat.com>
846
847 * lto.c: Adjust include files.
848 * lto-lang.c: Ditto.
849 * lto-object.c: Ditto.
850 * lto-partition.c: Ditto.
851 * lto-symtab.c: Ditto.
852
60393bbc
AM
8532014-10-27 Andrew MacLeod <amacleod@redhat.com>
854
855 * lto-lang.c: Adjust include files.
856 * lto-object.c: Ditto.
857 * lto-partition.c: Ditto.
858 * lto-symtab.c: Ditto.
859 * lto.c: Ditto.
860
957f47e6
DD
8612014-10-16 DJ Delorie <dj@redhat.com>
862
863 * lto-object.c (lto_obj_begin_section): In the event that pointer
864 sizes aren't powers of two, choose a more suitable alignment
865 than (unsigned)(-1).
866
78a7c317
DD
8672014-10-14 DJ Delorie <dj@redhat.com>
868
869 * lto-lang.c (lto_build_c_type_nodes): Check intN types for
870 size-type as well.
871 (lto_init): Initialize all intN types, not just int128.
872
70261a4f
ML
8732014-10-06 Martin Liska <mliska@suse.cz>
874
875 * lto.c (stream_out): ARG_UNUSED added for last argument.
876
00de328a
AH
8772014-09-24 Aldy Hernandez <aldyh@redhat.com>
878
879 * lto-symtab.c, lto.c: Rename all instances of DECL_ABSTRACT to
880 DECL_ABSTRACT_P.
881
7861b648
AK
8822014-09-23 Andi Kleen <ak@linux.intel.com>
883
884 * lto-partition.c (node_cmp): Update comment.
885 (varpool_node_cmp): Use symtab_node for comparison.
886 (add_sorted_nodes): New function.
887 (lto_balanced_map): Change to keep ordered queue
888 of ordered node. Handle no_reorder attribute.
889
1ee85ee1
JH
8902014-09-11 Jan Hubicka <hubicka@ucw.cz>
891
892 * lto.c (lto_read_decls): Register ODR types.
893
8605403e
JH
8942014-08-20 Jan Hubicka <hubicka@ucw.cz>
895
896 * lto.c (read_cgraph_and_symbols): Fix symtab_remove_unreachable_nodes
897 call.
898 (do_whole_program_analysis): Only sanity check that IPA passes cleans up.
899
56b1f114
JH
9002014-08-14 Jan Hubicka <hubicka@ucw.cz>
901
902 * lto-symtab.c (lto_varpool_replace_node): Call compare_virtual_tables.
903
833f94c0
RB
9042014-08-14 Richard Biener <rguenther@suse.de>
905
906 PR lto/62067
907 * lto-lang.c (def_fn_type): Fix error handling wrt va_end.
908
207c68cd
RB
9092014-08-08 Richard Biener <rguenther@suse.de>
910
911 * lto.c (lto_read_decls): Adjust for lto_input_block changes.
912
7c581d61
BC
9132014-08-08 Bin Cheng <bin.cheng@arm.com>
914
915 PR lto/62032
916 * lto-lang.c (lto_init): Switch mis-matched arguments.
917
39c8aaa4
TS
9182014-08-07 Trevor Saunders <tsaunders@mozilla.com>
919
920 * lto-partition.c, lto.c: Use hash_map instead of pointer_map.
921
6e2830c3
TS
9222014-08-02 Trevor Saunders <tsaunders@mozilla.com>
923
924 * lto-partition.c, lto-partition.h: Use hash_set instead of
925 pointer_set.
926
50de5793
AK
9272014-07-31 Andi Kleen <ak@linux.intel.com>
928
929 * lto.c (hash_canonical_type): Use inchash::hash
930 and use inchash::add_expr.
931 (iterative_hash_canonical_type): Dito.
932
f6bcdb5e
RB
9332014-07-30 Richard Biener <rguenther@suse.de>
934
935 * lto-streamer.h (lto_write_data): New function.
936 * langhooks.c (lhd_append_data): Do not free block.
937 * lto-section-out.c (lto_write_data): New function writing
938 raw data to the current section.
939 (lto_write_stream): Adjust for langhook semantic change.
940 (lto_destroy_simple_output_block): Write header directly.
941 * lto-opts.c (lto_write_options): Write options directly.
942 * lto-streamer-out.c (produce_asm): Write heaeder directly.
943 (lto_output_toplevel_asms): Likewise.
944 (copy_function_or_variable): Copy data directly.
945 (write_global_references): Output index table directly.
946 (lto_output_decl_state_refs): Likewise.
947 (write_symbol): Write data directly.
948 (produce_symtab): Adjust.
949 (produce_asm_for_decls): Output header and refs directly.
950
56fdfd3e
AK
9512014-07-25 Andi Kleen <ak@linux.intel.com>
952
953 * lto.c (hash_canonical_type): Call iterative_hstate_expr.
954
0bd8bb04
AK
9552014-07-25 Andi Kleen <ak@linux.intel.com>
956
957 * lto.c (hash_canonical_type): Convert to inchash.
958 (iterative_hash_canonical_type): Dito.
959
6d8eb96b
AK
9602014-07-25 Andi Kleen <ak@linux.intel.com>
961
962 * lto.c: Include inchash.h
963
ad115a3c
JH
9642014-07-14 Jan Hubicka <hubicka@ucw.cz>
965
966 * lto.c (mentions_vars_p_decl_non_common): Skip
967 DECL_ARGUMENT_FLD.
968 mentions_vars_p_function): Do DECL_ARGUMENTS.
969 (lto_fixup_prevailing_decls): Update.
970
917dd9bf
JH
9712014-07-12 Jan Hubicka <hubicka@ucw.cz>
972
973 * lto.c (read_cgraph_and_symbols): Do not push DECL_INIT_IO
974 timevar
975 (materialize_cgraph): Do not push GIMPLE_IN timevar.
976
0b83e688
JH
9772014-07-11 Jan Hubicka <hubicka@ucw.cz>
978
979 * lto-partition.c (add_references_to_partition): Use
980 varpool_ctor_useable_for_folding_p.
981 * lto.c (lto_read_in_decl_state): Update sanity check.
982
e55637b7
ML
9832014-07-01 Martin Liska <mliska@suse.cz>
984
985 IPA REF alias refactoring
986 * lto-partition.c (add_symbol_to_partition_1): Usage of
987 FOR_EACH_ALIAS added.
988
010f4e27
JH
9892014-06-28 Jan Hubicka <hubicka@ucw.cz>
990
991 Revert:
992 * lto.c (lto_copy_fields_not_streamed): New function.
993 (compare_tree_sccs_1): Do not compare fields shared in between type
994 and variant.
995 (lto_read_decls): Fixup types first before inserting into hash.
996
b82fe354
AP
9972014-06-28 Andrew Pinski <apinski@cavium.com>
998
999 * lto.c (lto_read_decls): Fix comment in comment.
1000
288eeff7
JH
10012014-06-28 Jan Hubicka <hubicka@ucw.cz>
1002
1003 * lto.c (lto_copy_fields_not_streamed): New function.
1004 (compare_tree_sccs_1): Do not compare fields shared in between type
1005 and variant.
1006 (lto_read_decls): Fixup types first before inserting into hash.
1007
e01fa630
ML
10082014-06-25 Martin Liska <mliska@suse.cz>
1009
1010 * lto/lto-partition.c (add_references_to_partition): New IPA REF function
1011 used.
1012 (add_symbol_to_partition_1): Likewise.
1013 (lto_balanced_map): Likewise.
1014 * lto/lto-symtab.c (lto_cgraph_replace_node): Likewise.
1015
aaf8a23e
JH
10162014-06-24 Jan Hubicka <hubicka@ucw.cz>
1017
1018 * lto.c (mentions_vars_p_decl_non_common): Move DECL_VINDEX check to ..
1019 (mentions_vars_p_function): ... here.
1020 (compare_tree_sccs_1): Update VINDEX checks.
1021 (lto_fixup_prevailing_decls): Likewise.
1022
1eb68d2d
TS
10232014-06-24 Trevor Saunders <tsaunders@mozilla.com>
1024
1025 * lto.c (canonical_type_hash_cache): Use hash_map instead of
1026 pointer_map.
1027
c203e8a7
TS
10282014-06-24 Trevor Saunders <tsaunders@mozilla.com>
1029
1030 * lto.c: Adjust.
1031
714c800f
JH
10322014-06-20 Jan Hubicka <hubicka@ucw.cz>
1033
1034 * lto-symtab.c (lto_varpool_replace_node): Report TLS model conflicts.
1035
569b1784
JH
10362014-06-20 Jan Hubicka <hubicka@ucw.cz>
1037
1038 * lto.c (compare_tree_sccs_1): Do not compare priorities.
1039
56363ffd
JH
10402014-06-15 Jan Hubicka <hubicka@ucw.cz>
1041
1042 * lto.c (compare_tree_sccs_1): Do not compare DECL_TLS_MODEL.
1043
e257a17c
JH
10442014-06-10 Jan Hubicka <hubicka@ucw.cz>
1045
1046 * lto.c (read_cgraph_and_symbols): Remove unreachable symbols.
1047 (do_whole_program_analysis): Use verify_symtab.
1048
24d047a3
JH
10492014-06-07 Jan Hubicka <hubicka@ucw.cz>
1050
1051 * lto.c (mentions_vars_p_decl_with_vis, compare_tree_sccs_1,
1052 lto_fixup_prevailing_decls): Skip section names.
1053
9b2b7279
AM
10542014-06-02 Andrew MacLeod <amacleod@redhat.com>
1055
1056 * lto-symtab.c: Include builtins.h.
1057
a9243bfc
RB
10582014-05-26 Richard Biener <rguenther@suse.de>
1059
1060 * lto.c (lto_parse_hex): Use int64_t.
1061 (lto_resolution_read): Likewise.
1062
fd1e9302
JH
10632014-05-23 Jan Hubicka <hubicka@ucw.cz>
1064
1065 * lto.c (read_cgraph_and_symbols): Grow ggc memory after streaming.
1066
aede2c10
JH
10672014-05-23 Jan Hubicka <hubicka@ucw.cz>
1068
1069 * lto-symtab.c (lto_symtab_merge_symbols): Update code setting
1070 symtab pointer.
1071 * lto.c (compare_tree_sccs_1): Do not compare comdat groups.
1072
f6a7cffc
TS
10732014-05-22 Thomas Schwinge <thomas@codesourcery.com>
1074
1075 * lto-lang.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
1076 (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
1077 (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
1078
4000360e
BS
10792012-05-22 Bernd Schmidt <bernds@codesourcery.com>
1080
1081 * lto-object.c: Include "lto-section-names.h".
1082 (LTO_SEGMENT_NAME): Don't define.
1083 * lto.c: Include "lto-section-names.h".
1084
b9559136
JH
10852014-05-17 Jan Hubicka <hubicka@ucw.cz>
1086
1087 PR lto/61012
1088 * lto-symtab.c (lto_symtab_merge_decls_1): Do not ICE on undefined externals
1089 mixed with variables.
1090
766090c2
TS
10912014-05-17 Trevor Saunders <tsaunders@mozilla.com>
1092
1093 * lto-tree.h: Don't use variable_size gty attribute.
1094 * lto.c (lto_read_in_decl_state): Adjust.
1095 (create_subid_section_table): Likewise.
1096 (lto_flatten_files): Likewise.
1097 (read_cgraph_and_symbols): Likewise.
1098
1d60af08
KZ
10992014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
1100 Mike Stump <mikestump@comcast.net>
1101 Richard Sandiford <rdsandiford@googlemail.com>
1102
1103 * lto.c (compare_tree_sccs_1): Use wide-int interfaces.
1104 * lto-lang.c (get_nonnull_operand): Likewise.
1105
22869a37
RB
11062014-04-28 Richard Biener <rguenther@suse.de>
1107
1108 PR middle-end/60092
1109 * lto-lang.c: Define flag_isoc11.
1110
7de90a6c
DM
11112014-04-23 David Malcolm <dmalcolm@redhat.com>
1112
1113 * lto-partition.c (add_references_to_partition): Update for
1114 removal of implicit pointer from the is-a.h API.
1115 (add_symbol_to_partition_1): Likewise.
1116 (contained_in_symbol): Likewise.
1117 (undo_partition): Likewise.
1118 (lto_balanced_map): Likewise.
1119 (promote_symbol): Likewise.
1120 * lto-symtab.c (lto_symtab_merge_symbols_1): Likewise.
1121 (lto_symtab_merge_symbols): Likewise.
1122 * lto.c (lto_wpa_write_files): Likewise.
1123
783dab6b
RB
11242014-04-15 Richard Biener <rguenther@suse.de>
1125
1126 * lto.c: Include params.h.
1127 (do_whole_program_analysis): Switch on flag_lto_partition value,
1128 add support for LTO_PARTITION_ONE.
1129 * lto-partition.h (lto_balanced_map): Adjust.
1130 * lto-partition.c (lto_balanced_map): Get number of desired
1131 partitions as argument to support -flto-partition=one.
1132
cb90235d
JH
11332014-04-14 Jan Hubicka <hubicka@ucw.cz>
1134
1135 * lto/lto-symtab.c (lto_cgraph_replace_node): Don't re-merge
1136 tp_first_run.
1137
bbe281da
JH
11382014-03-19 Jan Hubicka <hubicka@ucw.cz>
1139
1140 * lto.c: Include ipa-inline.h
1141 (do_whole_program_analysis): Free inline summary after partitioning.
1142
ce2f49b3
RB
11432014-03-19 Richard Biener <rguenther@suse.de>
1144
1145 PR middle-end/60553
1146 * lto-tree.h (lang_tree_node): For types use TYPE_NEXT_VARIANT
1147 instead of TREE_CHAIN as chain_next.
1148
e41106fc
RB
11492014-03-19 Richard Biener <rguenther@suse.de>
1150
1151 * lto.c (lto_wpa_write_files): Move call to
1152 lto_promote_cross_file_statics ...
1153 (do_whole_program_analysis): ... here, into the partitioning
1154 block. Do not ggc_collect after lto_wpa_write_files but
1155 for a last time before it.
1156
15df2655
JJ
11572014-03-19 Jakub Jelinek <jakub@redhat.com>
1158
1159 PR lto/60571
1160 * lto.c (wait_for_child): Define WCONTINUED if not defined to 0.
1161 Fix formatting.
1162
415e2e6b
JJ
11632014-03-18 Jakub Jelinek <jakub@redhat.com>
1164
1165 PR sanitizer/60535
1166 * lto-lang.c (lto_init): Add NAME_TYPE for int128_integer_type_node
1167 and complex_{float,{,long_}double}_type_node.
1168
f42c637e
PM
11692014-03-08 Paulo Matos <paulo@matos-sorge.com>
1170
415e2e6b
JJ
1171 * lto-lang.c (lto_init): Pass flag_short_double to
1172 build_common_tree_nodes.
f42c637e 1173
6dab804d
JH
11742014-02-14 Jan Hubicka <hubicka@ucw.cz>
1175
1176 PR lto/60295
1177 * lto.c (stream_out): Avoid parallel streaming with
1178 -flto=jobserver until we are able to throttle it down
1179 resonably.
1180
39434bce
JH
11812014-02-14 Jan Hubicka <hubicka@ucw.cz>
1182
1183 * lto-partition.c (add_symbol_to_partition_1,
1184 undo_partition, lto_balanced_map): Aliases have no
1185 defined size.
1186 (lto_balanced_map): Do not follow refering variables
1187 if they can be optimized out.
1188
1966fd99
RB
11892014-02-14 Richard Biener <rguenther@suse.de>
1190
1191 PR lto/60179
1192 * lto.c (compare_tree_sccs_1): Do not compare
1193 DECL_FUNCTION_SPECIFIC_TARGET.
1194 (lto_read_decls): Re-build DECL_FUNCTION_SPECIFIC_TARGET.
1195
283416b3
RB
11962014-02-12 Richard Biener <rguenther@suse.de>
1197
1198 PR lto/60060
1199 * lto-lang.c (lto_write_globals): Do not call
1200 wrapup_global_declarations or emit_debug_global_declarations
1201 but emit debug info for non-function scope variables
1202 directly.
1203
b7e85694
JH
12042014-02-06 Jan Hubicka <hubicka@ucw.cz>
1205
1206 * lto.c (unify_scc): Free CONSTRUCTOR_ELTS.
1207
96451279
JH
12082014-02-06 Jan Hubicka <hubicka@ucw.cz>
1209
1210 PR ipa/59469
1211 * lto-partition.c (symbol_class): Move to cgraph.h
1212 (get_symbol_class): Move to symtab.c
1213 (add_references_to_partition, add_symbol_to_partition_1,
1214 lto_max_map, lto_1_to_1_map, lto_balanced_map,
1215 lto_promote_cross_file_statics): Update.
1216
f300e7b8
JH
12172014-02-05 Jan Hubicka <hubicka@ucw.cz>
1218
1219 * lto.c (lto_parallelism): New static var.
1220 (do_stream_out, wait_for_child, stream_out): New static functions.
1221 (lto_wpa_write_files): Add support for parallel streaming.
1222 (do_whole_program_analysis): Set parallelism.
1223 * lang.opt (fwpa): Add parameter.
1224 * lto-lang.c (lto_handle_option): Handle flag_wpa.
1225 (lto_init): Update use of flag_wpa.
1226 * lto-streamer.h (asm_nodes_output): Declare.
1227
f0f91770
RB
12282014-02-05 Richard Biener <rguenther@suse.de>
1229
1230 * lto.h (lto_global_var_decls): Remove.
1231 * lto-lang.c (lto_init): Do not allocate lto_global_var_decls.
1232 (lto_write_globals): Do nothing in WPA stage, gather globals from
1233 the varpool here ...
1234 * lto.c (lto_main): ... not here.
1235 (materialize_cgraph): Do not call rest_of_decl_compilation
1236 on the empty lto_global_var_decls vector.
1237 (lto_global_var_decls): Remove.
1238
d665f8dd
JH
12392014-02-04 Jan Hubicka <hubicka@ucw.cz>
1240
1241 * lto-partition.c (get_symbol_class): Only unforced DECL_ONE_ONLY
1242 needs duplicating, not generic COMDAT.
1243
c39276b8
RB
12442014-02-04 Richard Biener <rguenther@suse.de>
1245
1246 PR lto/59723
1247 * lto.c (mentions_vars_p): Handle NAMELIST_DECL.
1248 (lto_fixup_prevailing_decls): Handle fixing up CONSTRUCTOR values.
1249
5f876ae7
JH
12502014-02-04 Jan Hubicka <hubicka@ucw.cz>
1251 Markus Trippelsdorf
1252
1253 PR ipa/59469
1254 * lto-symtab.c (lto_cgraph_replace_node, lto_varpool_replace_node):
1255 merge force_output and forced_by_abi flags.
1256
b72271b9
BI
12572014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
1258
1259 * lto-lang.c (lto_init): Replaced flag_enable_cilkplus with
1260 flag_cilkplus.
1261
63124c48
RB
12622014-01-09 Richard Biener <rguenther@suse.de>
1263
1264 * lto.c (gimple_canonical_types_compatible_p): Fix comment.
1265
d05b9920
RB
12662014-01-09 Richard Biener <rguenther@suse.de>
1267
1268 PR lto/45586
1269 * lto.c (hash_canonical_type): Do not hash TREE_ADDRESSABLE,
1270 TYPE_ALIGN, TYPE_RESTRICT or TYPE_REF_CAN_ALIAS_ALL.
1271 (gimple_canonical_types_compatible_p): Do not compare them either.
1272
23a5b65a
RS
12732014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
1274
1275 Update copyright years
1276
2c8326a5
OE
12772013-12-06 Oleg Endo <olegendo@gcc.gnu.org>
1278
1279 * lto.c: Remove struct tags when referring to class varpool_node.
1280 * lto-partition.c: Likewise.
1281 * lto-symtab.c: Likewise.
1282
e06f9964
JJ
12832013-11-29 Jakub Jelinek <jakub@redhat.com>
1284 Richard Biener <rguenther@suse.de>
1285
1286 PR lto/59326
1287 * lto.c (compare_tree_sccs_1): Handle OMP_CLAUSE.
1288
c193f58b
JJ
12892013-11-29 Jakub Jelinek <jakub@redhat.com>
1290
1291 PR lto/59326
1292 * lto.c (mentions_vars_p_omp_clause): New function.
1293 (mentions_vars_p): Call it for OMP_CLAUSE. Remove break;
1294 after return stmts.
1295
2fb9a547
AM
12962013-11-22 Andrew MacLeod <amacleod@redhat.com>
1297
1298 * lto.c: Add required include files from gimple.h.
1299 * lto-lang.c: Likewise
1300 * lto-object.c: Likewise
1301 * lto-partition.c: Likewise
1302 * lto-symtab.c: Likewise
1303
fec39fa6
TS
13042013-11-18 Trevor Saunders <tsaunders@mozilla.com>
1305
1306 * lto-partition.c lto-symtab.c lto.c Adjust.
1307
d8a2d370
DN
13082013-11-14 Diego Novillo <dnovillo@google.com>
1309
1310 * lto-lang.c: Include stringpool.h.
1311 Include stor-layout.h.
1312 * lto-partition.c: Include gcc-symtab.h.
1313 * lto.c: Include stor-layout.h.
1314
5e20cdc9
DM
13152013-10-31 David Malcolm <dmalcolm@redhat.com>
1316
1317 Automated part of renaming of symtab_node_base to symtab_node.
1318
1319 Patch autogenerated by rename_symtab.py from
1320 https://github.com/davidmalcolm/gcc-refactoring-scripts
1321 revision 58bb219cc090b2f4516a9297d868c245495ee622
1322
1323 * lto-partition.c (add_symbol_to_partition): Rename
1324 symtab_node_base to symtab_node.
1325 (get_symbol_class): Likewise.
1326 (symbol_partitioned_p): Likewise.
1327 (add_references_to_partition): Likewise.
1328 (add_symbol_to_partition_1): Likewise.
1329 (contained_in_symbol): Likewise.
1330 (add_symbol_to_partition): Likewise.
1331 (lto_1_to_1_map): Likewise.
1332 (lto_max_map): Likewise.
1333 (lto_balanced_map): Likewise.
1334 (privatize_symbol_name): Likewise.
1335 (promote_symbol): Likewise.
1336 (may_need_named_section_p): Likewise.
1337 (rename_statics): Likewise.
1338 (lto_promote_statics_nonwpa): Likewise.
1339 * lto-symtab.c (lto_symtab_merge): Likewise.
1340 (lto_symtab_resolve_replaceable_p): Likewise.
1341 (lto_symtab_symbol_p): Likewise.
1342 (lto_symtab_resolve_can_prevail_p): Likewise.
1343 (lto_symtab_resolve_symbols): Likewise.
1344 (lto_symtab_merge_decls_2): Likewise.
1345 (lto_symtab_merge_decls_1): Likewise.
1346 (lto_symtab_merge_decls): Likewise.
1347 (lto_symtab_merge_symbols_1): Likewise.
1348 (lto_symtab_merge_symbols): Likewise.
1349 (lto_symtab_prevailing_decl): Likewise.
1350 * lto.c (lto_wpa_write_files): Likewise.
1351 (read_cgraph_and_symbols): Likewise.
1352 (do_whole_program_analysis): Likewise.
1353
378cd6b1
DM
13542013-10-30 David Malcolm <dmalcolm@redhat.com>
1355
1356 * lto-symtab.c (lto_symtab_merge_decls_2): Split symtab_node
1357 declarations onto multiple lines to make things easier for
1358 rename_symtab.py.
1359 (lto_symtab_merge_decls_1): Likewise.
1360 (lto_symtab_merge_symbols_1): Likewise.
1361
939b37da
BI
13622013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com>
1363
1364 * Make-lang.in (lto/lto-lang.o): Added cilk.h in dependency list.
1365 * lto-lang.c (lto_init): Added a call to cilk_init_builtins if Cilk
1366 Plus is enabled.
1367
67348ccc
DM
13682013-10-29 David Malcolm <dmalcolm@redhat.com>
1369
1370 Patch autogenerated by refactor_symtab.py from
1371 https://github.com/davidmalcolm/gcc-refactoring-scripts
1372 revision 58bb219cc090b2f4516a9297d868c245495ee622
1373
1374 * lto-partition.c (lto_promote_cross_file_statics): Update for
1375 conversion of symtab types to a true class hierarchy.
1376 (rename_statics): Likewise.
1377 (promote_symbol): Likewise.
1378 (privatize_symbol_name): Likewise.
1379 (lto_balanced_map): Likewise.
1380 (varpool_node_cmp): Likewise.
1381 (node_cmp): Likewise.
1382 (lto_1_to_1_map): Likewise.
1383 (undo_partition): Likewise.
1384 (add_symbol_to_partition): Likewise.
1385 (contained_in_symbol): Likewise.
1386 (add_symbol_to_partition_1): Likewise.
1387 (add_references_to_partition): Likewise.
1388 (symbol_partitioned_p): Likewise.
1389 (get_symbol_class): Likewise.
1390 (lto_max_map): Likewise.
1391 * lto-symtab.c (lto_symtab_prevailing_decl): Likewise.
1392 (lto_symtab_merge_symbols): Likewise.
1393 (lto_symtab_merge_symbols_1): Likewise.
1394 (lto_symtab_merge_decls): Likewise.
1395 (lto_symtab_merge_decls_1): Likewise.
1396 (lto_symtab_merge_decls_2): Likewise.
1397 (lto_symtab_resolve_symbols): Likewise.
1398 (lto_symtab_resolve_can_prevail_p): Likewise.
1399 (lto_symtab_symbol_p): Likewise.
1400 (lto_symtab_resolve_replaceable_p): Likewise.
1401 (lto_symtab_merge): Likewise.
1402 (lto_varpool_replace_node): Likewise.
1403 (lto_cgraph_replace_node): Likewise.
1404 * lto.c (lto_main): Likewise.
1405 (do_whole_program_analysis): Likewise.
1406 (materialize_cgraph): Likewise.
1407 (read_cgraph_and_symbols): Likewise.
1408 (cmp_partitions_order): Likewise.
1409 (lto_materialize_function): Likewise.
1410 (has_analyzed_clone_p): Likewise.
1411
8e9055ae
AM
14122013-10-29 Andrew MacLeod <amacleod@redhat.com>
1413
1414 * lto/lto-object.c: Add gimple.h to include list.
1415 * lto/lto-partition.c: Likewise.
1416
377d9792
AM
14172013-10-18 Andrew MacLeod <amacleod@redhat.com>
1418
1419 * lto.c: Remove tree-flow.h from include list.
1420
fffda8d7
RB
14212013-10-15 Richard Biener <rguenther@suse.de>
1422
1423 * lto.c (hash_canonical_type): Split out from ...
1424 (iterative_hash_canonical_type): ... here. Register types
1425 we recurse to.
1426 (gimple_canonical_type_hash): Adjust.
1427 (gimple_register_canonical_type_1): Split out from ...
1428 (gimple_register_canonical_type): ... here. Cache computed
1429 hash value.
1430 (lto_register_canonical_types): Split into two modes,
1431 clearing and computing TYPE_CANONICAL.
1432 (lto_read_decls): Adjust.
1433 (read_cgraph_and_symbols): Do two passes over global trees,
1434 first clearing then computing TYPE_CANONICAL.
1435
1394237e
RB
14362013-10-14 Richard Biener <rguenther@suse.de>
1437
1438 * lto.c (gimple_canonical_types): Move out-of GC space.
1439 (canonical_type_hash_cache): Make a pointer-map.
1440 (num_canonical_type_hash_entries, num_canonical_type_hash_queries):
1441 New counters.
1442 (iterative_hash_canonical_type): Adjust.
1443 (read_cgraph_and_symbols): Likewise.
1444 (print_lto_report_1): Likewise.
1445
0a387eca
RB
14462013-10-14 Richard Biener <rguenther@suse.de>
1447
1448 * lto.c (gimple_types, type_hash_cache, struct type_pair_d,
1449 type_pair_cache, lookup_type_pair, struct sccs, next_dfs_num,
1450 gtc_next_dfs_num, compare_type_names_p, gtc_visit,
1451 gimple_types_compatible_p_1, gimple_types_compatible_p,
1452 visit, iterative_hash_name, struct type_hash_pair,
1453 type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash,
1454 gimple_type_eq, gimple_register_type, num_not_merged_types,
1455 num_not_merged_types_in_same_scc, num_not_merged_types_trees,
1456 num_not_merged_types_in_same_scc_trees): Remove old merging code
1457 and statistics.
1458 (lto_read_decls): Do not run old merging code in parallel.
1459 (read_cgraph_and_symbols): Do not init/free old merging
1460 data structures.
1461 (print_lto_report_1): Do not report differences of old vs. new
1462 merging code.
1463
83fd5d11
RB
14642013-10-14 Richard Biener <rguenther@suse.de>
1465
1466 * lto-lang.c (lto_init): Do not re-init canonical types here.
1467 (lto_register_canonical_types): Move to ...
1468 * lto.c (lto_register_canonical_types): ... here.
1469 (gimple_canonical_types, canonical_type_hash_cache,
1470 iterative_hash_canonical_type, gimple_canonical_type_hash,
1471 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
1472 gimple_register_canonical_type): Add canonical type merging machinery
1473 moved from gimple.c.
1474 (read_cgraph_and_symbols): Init and free canonical type tables
1475 here.
1476 (print_lto_report_1): Report canonical type table stats here.
1477
acf0174b
JJ
14782013-10-11 Jakub Jelinek <jakub@redhat.com>
1479
1480 * lto-lang.c (DEF_FUNCTION_TYPE_8): Define.
1481
7c6fedd2
TT
14822013-09-25 Tom Tromey <tromey@redhat.com>
1483
1484 * Make-lang.in (LTO_H, LINKER_PLUGIN_API_H, LTO_TREE_H)
1485 (lto/lto-lang.o, lto/lto.o, lto/lto-partition.o)
1486 (lto/lto-object.o): Remove.
1487
35f32ad4
RB
14882013-09-06 Richard Biener <rguenther@suse.de>
1489
1490 * lto-symtab.c: Move from gcc/
1491 * lto.h: Include vec.h.
1492 (lto_global_var_decls): Declare.
1493 * lto.c (lto_global_var_decls): Move definition here.
1494 * Make-lang.in (LTO_OBJS): Add lto-symtab.o.
1495 (lto-symtab.o): Add.
1496 * config-lang.in (gtfiles): Add lto.h.
1497
49322b12
JH
14982013-08-31 Jan Hubicka <jh@suse.cz>
1499
1500 * lto.c (mentions_vars_p_field_decl, lto_fixup_prevailing_decls):
1501 DECL_FIELD_OFFSET can contain an reference to variable.
1502
31f1f73b
JH
15032013-08-31 Jan Hubicka <jh@suse.cz>
1504
1505 * lto.c (tree_with_vars): Turn into vector.
1506 (MAYBE_REMEMBER_WITH_VARS): Change to...
1507 (CHECK_VAR): ... this one.
1508 (CHECK_NO_VAR): New macro.
1509 (maybe_remember_with_vars_typed): Turn to ...
1510 (mentions_vars_p_typed): ... this one.
1511 (maybe_remember_with_vars_common): Turn to ...
1512 (mentions_vars_p_comon): ... this one.
1513 (maybe_remember_with_vars_decl_minimal): Turn to ...
1514 (mentions_vars_p_decl_minmal): ... this one.
1515 (maybe_remember_with_vars_decl_common): Turn to ...
1516 (mentions_vars_p_decl_common): ... this one.
1517 (maybe_remember_with_vars_decl_with_vis): Turn to ...
1518 (mentions_vars_p_decl_with_vis): ... this one.
1519 (maybe_remember_with_vars_decl_non_common): Turn to ...
1520 (mentions_vars_p_decl_non_common): ... this one.
1521 (maybe_remember_with_vars_function): Turn to ...
1522 (mentions_vars_p_function): ... this one.
1523 (maybe_remember_with_vars_field_decl): Turn to ...
1524 (mentions_vars_p_field_decl): ... this one.
1525 (maybe_remember_with_vars_type): Turn to ...
1526 (mentions_vars_p_type): ... this one.
1527 (maybe_remember_with_vars_binfo): Turn to ...
1528 (mentions_vars_p_binfo): ... this one.
1529 (maybe_remember_with_vars_constructor): Turn to ...
1530 (mentions_vars_p_constructor): ... this one.
1531 (maybe_remember_with_vars_expr): Turn to ...
1532 (mentions_vars_p_expr): ... this one.
1533 (maybe_remember_with_vars): Turn to ...
1534 (mentions_vars_p): ... this one.
1535 (lto_read_decls): Update.
1536 (LTO_SET_PREVAIL): Do not call function for internal decls.
1537 (lto_fixup_prevailing_decls): Update to match mentions_vars_p;
1538 check that something was updated.
1539 (lto_fixup_state): Do not care about internal decls.
1540 (lto_fixup_decls): Update.
1541 (read_cgraph_and_symbols): Update.
1542
256eefa9
JH
15432013-08-29 Jan Hubicka <jh@suse.cz>
1544
1545 * lto.c (read_cgraph_and_symbols): Free decl states.
1546
0170f33c
JH
15472013-08-29 Jan Hubicka <jh@suse.cz>
1548
1549 * lto.c (compare_tree_sccs_1): Compare DECL_FINAL_P,
1550 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and
1551 TYPE_FINAL_P.
1552
c01c111b
JH
15532013-08-28 Jan Hubicka <jh@suse.cz>
1554
1555 * lto.c (compare_tree_sccs_1): Drop DECL_ERROR_ISSUED,
1556 DECL_DEFER_OUTPUT and DECL_IN_TEXT_SECTION.
1557 (unify_scc): Do checking assert.
1558
6a49f3c9
JH
15592013-08-06 Jan Hubicka <jh@suse.cz>
1560 Martin Liska <marxin.liska@gmail.com>
1561
1562 * lto-partition.c (lto_balanced_map): Always base order on
1563 source file order.
1564
a2e2a668
JH
15652013-08-06 Jan Hubicka <jh@suse.cz>
1566
1567 * lto.c (lto_materialize_function): Do not read body anymore.
1568
815effe1
JH
15692013-08-02 Jan Hubicka <jh@suse.cz>
1570
1571 * lto.c (lto_materialize_function): Do not push struct function.
1572 * lto-partition.c (get_symbol_class): Handle abstracts correctly.
1573 (may_need_named_section_p): Even abstract origins may need
1574 named section.
1575
315f8c0e
DM
15762013-07-30 David Malcolm <dmalcolm@redhat.com>
1577
1578 * Make-lang.in (lto/lto.o:): Depend on CONTEXT_H and
1579 PASS_MANAGER_H.
1580
1581 * lto.c (do_whole_program_analysis): Update for move of
1582 all_regular_ipa_passes from a global to a field of class
1583 pass_manager.
1584
1aa95df7
OB
15852013-07-21 OndÅ\99ej Bílka <neleai@seznam.cz>
1586
1587 * lto-partition.c: Fix typos.
1588
c525ba9a
JH
15892013-06-20 Jan Hubicka <jh@suse.cz>
1590
1591 * lto-partition.c (lto_balanced_map): Fix -fno-toplevel-reorder
1592 partitioning of variables.
1593
7a89ad00
JH
15942013-06-20 Jan Hubicka <jh@suse.cz>
1595
1596 * lto.c (read_cgraph_and_symbols): Set cgraph state.
1597
6a6dac52
JH
15982013-06-19 Jan Hubicka <jh@suse.cz>
1599
1600 * lto-partition.c (add_references_to_partition): Use
1601 ctor_for_folding.
1602
ac0511f2
RB
16032013-06-18 Richard Biener <rguenther@suse.de>
1604
1605 * lto.c (lto_register_var_decl_in_symtab): Pass in cache index
1606 and use it.
1607 (lto_register_function_decl_in_symtab): Likewise.
1608 (cmp_tree): New function.
1609 (unify_scc): Instead of using the streamer cache map from entry
1610 to cache index match up the two maps we have by sorting them.
1611 Adjust calls to lto_register_var_decl_in_symtab and
1612 lto_register_function_decl_in_symtab.
1613
ee03e71d
RB
16142013-06-17 Richard Biener <rguenther@suse.de>
1615
1616 * Make-lang.in (lto.o): Add $(DATA_STREAMER_H) dependency.
1617 * lto.c: Include data-streamer.h.
1618 (lto_read_in_decl_state): Use streamer_tree_cache_get_tree.
1619 (gimple_type_leader_entry_s, gimple_type_leader,
1620 gimple_lookup_type_leader): Remove.
1621 (gtc_visit): Simplify.
1622 (gimple_types_compatible_p): Likewise.
1623 (gimple_register_type_1): Likewise. Merge into ...
1624 (gimple_register_type): ... this. Keep it as legacy for
1625 statistics purposes for now.
1626 (fixup_integer_cst): Remove.
1627 (LTO_FIXUP_TREE, lto_fixup_types, lto_ft_*): Simplify and
1628 rename to ...
1629 (MAYBE_REMEMBER_WITH_VARS, maybe_remember_with_vars,
1630 maybe_remember_with_vars_*): ... these.
1631 (uniquify_nodes): Remove.
1632 (lto_fixup_prevailing_type): New function.
1633 (struct tree_scc, struct tree_scc_hasher): New type and hasher.
1634 (tree_scc_hash, tree_scc_hash_obstack): New globals.
1635 (num_merged_types, num_prevailing_types, num_not_merged_types,
1636 num_not_merged_types_in_same_scc, total_scc_size, num_sccs_read,
1637 total_scc_size_merged, num_sccs_merged, num_scc_compares,
1638 num_scc_compare_collisions): New global counters.
1639 (compare_tree_sccs_1): New function.
1640 (compare_tree_sccs): Likewise.
1641 (unify_scc): Likewise.
1642 (lto_read_decls): Stream in tree SCCs and unify them on the
1643 way in. Finalize prevailing SCC tree members.
1644 (read_cgraph_and_symbols): Do not initialize or free gimple_type_leader.
1645 Allocate and free tree_scc_hash_obstack and tree_scc_hash, do not bother
1646 to ggc-collect during merging.
1647 (print_lto_report_1): Adjust for new merging code.
1648
ca0f62a8
JH
16492013-06-12 Jan Hubicka <jh@suse.cz>
1650
1651 * lto.c (read_cgraph_and_symbols): Set cgraph into streaming state.
1652
bbf9ad07
JH
16532013-06-12 Jan Hubicka <jh@suse.cz>
1654
1655 * lto.c (register_resolution): Take lto_file_data argument.
1656 (lto_register_var_decl_in_symtab,
1657 lto_register_function_decl_in_symtab): Update.
1658 (read_cgraph_and_symbols): Update resolution_map handling.
1659
ecdbd01a 16602013-06-11 Jan Hubicka <jh@suse.cz>
08346abd
JH
1661
1662 * lto-partition.c (get_symbol_class): Simplify weakref handling.
1663 (add_symbol_to_partition_1): Likewise.
1664 (contained_in_symbol): Likewise.
1665 (lto_balanced_map): Likewise.
1666 (rename_statics): Drop weakref.
1667
a367df53
RB
16682013-06-05 Richard Biener <rguenther@suse.de>
1669
1670 * lto.c (num_merged_types): New global variable.
1671 (uniquify_nodes): Increase num_merged_types when merging a type.
1672 (print_lto_report_1): Output the number of merged types.
1673
40a7fe1e
JH
16742013-06-01 Jan Hubicka <jh@suse.cz>
1675
1676 * lto.c (read_cgraph_and_symbols): Simplify dumping; Replace
1677 lto_symtab_merge_cgraph_nodes by lto_symtab_merge_symbols.
1678 (do_whole_program_analysis): Update dumping.
1679
e70670cf
JH
16802013-05-29 Jan Hubicka <jh@suse.cz>
1681
1682 * lto.c (has_analyzed_clone_p, lto_materialize_function): Update for new symtab
1683 flags.
1684 * lto-partition.c (get_symbol_class, lto_balanced_map): Likewise.
1685
8ee05051
JH
16862013-05-15 Jan Hubicka <jh@suse.cz>
1687
1688 * lto-partition.c (privatize_symbol_name): Return true when
1689 privatizing happened.
1690 (rename_statics): Do not go into infinite loop when privatizing
1691 is not needed.
1692
427b248d
JM
16932013-05-16 Jason Merrill <jason@redhat.com>
1694
1695 * Make-lang.in ($(LTO_EXE)): Use link mutex.
1696
9de04252
MJ
16972013-05-15 Martin Jambor <mjambor@suse.cz>
1698
1699 * lto-partition.c (lto_balanced_map): Print symbol order instead
1700 of node uids.
1701
2d6e4603
JH
17022013-05-15 Jan Hubicka <jh@suse.cz>
1703
1704 PR lto/57038
1705 PR lto/47375
1706 * lto-partition.c (get_symbol_class): Fix weakrefs.
1707 (lto_balanced_map): Fix weakrefs.
1708 (privatize_symbol_name): Remove unnecesary label.
1709 (rename_statics): Handle weakrefs as statics.
1710
64cfa6c0
JH
17112013-05-09 Jan Hubicka <jh@suse.cz>
1712 Richard Biener <rguenther@suse.de>
1713
1714 * lto.c (lto_register_var_decl_in_symtab): Don't do renaming.
1715 (lto_register_var_decl_in_symtab): Likewise.
1716 (lto_main): Promote statics.
1717 * lto-partition.c (privatize_symbol_name): New function.
1718 (promote_symbol): Use it.
1719 (may_need_named_section_p): New predicate.
1720 (rename_statics): New functions.
1721 (lto_promote_cross_file_statics): Simplify; do renaming.
1722 (lto_promote_statics_nonwpa): New function.
1723 * lto-partition.h (lto_promote_statics_nonwpa): New function.
1724
e45cde98
RB
17252013-02-08 Richard Biener <rguenther@suse.de>
1726
1727 PR lto/56231
1728 * lto-lang.c (lto_init): Do not enter a dummy file.
1729
6edc3e32
UB
17302013-02-07 Uros Bizjak <ubizjak@gmail.com>
1731
1732 PR bootstrap/56227
1733 * lto.c (lto_resolution_ready): Use %wx instead of
1734 HOST_WIDE_INT_PRINT_HEX_PURE in the argument to internal_error.
1735
ed73881e
RG
17362013-02-04 Richard Guenther <rguenther@suse.de>
1737
1738 PR lto/56168
1739 * lto.c (read_cgraph_and_symbols): Do not call lto_symtab_merge_decls
1740 or lto_fixup_decls at LTRANS time.
1741
a19b1432
JH
17422013-01-09 Jan Hubicka <jh@suse.cz>
1743
1744 PR lto/45375
1745 * lto.c (do_whole_program_analysis): Remove unreachable nodes after IPA.
1746
49c01f87
L
17472012-12-10 H.J. Lu <hongjiu.lu@intel.com>
1748
1749 PR lto/55466
1750 * lto.c (lto_register_var_decl_in_symtab): Don't record static
1751 variables.
1752 (lto_main): Record the global variables if WPA isn't enabled.
1753
6e1aa848
DN
17542012-11-20 Diego Novillo <dnovillo@google.com>
1755 Jakub Jelinek <jakub@redhat.com>
1756
1757 * lto.c: Replace all vec<T, A>() initializers with vNULL.
1758
9771b263
DN
17592012-11-16 Diego Novillo <dnovillo@google.com>
1760
1761 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
1762
1763 * lto-lang.c: Use new vec API in vec.h.
1764 * lto-partition.c: Likewise.
1765 * lto-partition.h: Likewise.
1766 * lto.c: Likewise.
1767
24551b9c
LC
17682012-10-31 Lawrence Crowl <crowl@google.com>
1769
1770 * lto.c (lto_wpa_write_files): Change symtab checking to a checked
1771 down-cast via dyn_cast.
1772 * lto-partition.c (add_symbol_to_partition_1): Likewise.
1773 (undo_partition): Likewise.
1774 (lto_balanced_map): Likewise.
1775 (get_symbol_class): Likewise and via is_a.
1776 (lto_balanced_map): Change symtab checking to is_a.
1777
aec06f6f
RB
17782012-10-12 Richard Biener <rguenther@suse.de>
1779
1780 PR lto/54898
1781 * lto.c (gimple_types_compatible_p_1): Also compare
1782 TYPE_MAIN_VARIANT.
1783 (iterative_hash_gimple_type): Also hash TYPE_MAIN_VARIANT.
1784
0b8c30f9
TB
17852012-10-09 Tobias Burnus <burnus@net-b.de>
1786
1787 * lto-lang.c (lto_register_builtin_type): Avoid useless
1788 decl creation.
1789 * lto-object.c (lto_obj_file_open, lto_obj_file_open): Free memory.
1790
da3202a8
TB
17912012-10-08 Tobias Burnus <burnus@net-b.de>
1792
1793 * lto.c (lto_wpa_write_files, read_cgraph_and_symbols):
1794 Free lto_file struct after closing the file.
1795
2512a443
JH
17962012-10-08 Jan Hubicka <jh@suse.cz>
1797
1798 * lto/lto.c (remember_with_vars): Also fixup INTEGER_CST.
1799 (fixup_integer_cst): New functoin.
1800 (lto_ft_type): Fixup BASETYPE of methods and offsets.
1801
e75f8f79
JH
18022012-10-07 Jan Hubicka <jh@suse.cz>
1803
1804 * lto.c (read_cgraph_and_symbols): Release type merging hash early;
1805 release input encoders.
1806 * lto-partition.c (new_partition): Update for new lto_symtab_encoder_new.
1807
46591697
JH
18082012-10-06 Jan Hubicka <jh@suse.cz>
1809
1810 PR lto/54790
1811 * lto.c (resolution_map): New static var.
1812 (register_resolution): New function.
1813 (lto_register_var_decl_in_symtab): Use it.
1814 (read_cgraph_and_symbols): Copy resolutions into the symtab.
1815
af16bc76
MJ
18162012-09-20 Martin Jambor <mjambor@suse.cz>
1817
1818 * lto.c (lto_materialize_function): Call push_struct_function and
1819 pop_cfun.
1820
5368224f
DC
18212012-09-19 Dehao Chen <dehao@google.com>
1822
1823 * lto/lto.c (lto_fixup_prevailing_decls): Remove tree.exp.block field.
1824
b5493fb2
JH
18252012-09-19 Jan Hubicka <jh@suse.cz>
1826
1827 * lto.c (lto_materialize_function): Update confused comment.
1828 (read_cgraph_and_symbols): Do not free symtab.
1829
c3c445e1
JH
18302012-09-12 Jan Hubicka <jh@suse.cz>
1831
1832 * lto.c (do_whole_program_analysis): Care timevars, statistics and
1833 AUX pointer cleaning. Add max partitioning.
1834 * lto-partition.c (enum symbol_class): New.
1835 (get_symbol_class): New function.
1836 (symbol_partitioned_p): New function.
1837 (add_references_to_partition): Remove.
1838 (add_aliases_to_partition): Remove.
1839 (add_cgraph_node_to_partition_1): Remove.
1840 (add_cgraph_node_to_partition): Remove.
1841 (add_symbol_to_partition): New function.
1842 (add_symbol_to_partition_1): New function.
1843 (contained_in_symbol): New function.
1844 (partition_cgraph_node_p): Remove.
1845 (partition_varpool_node_p): Remove.
1846 (partition_symbol_p): Remove.
1847 (lto_1_to_1_map): Cleanup.
1848 (lto_max_map): New.
1849 (lto_balanced_map): Update.
1850 (lto_promote_cross_file_statics): Update.
1851 * lto-partition.h (lto_max_map): Declare.
1852 * timevar.def (TV_WHOPR_PARTITIONING): New timevar.
1853
b5c7cdfb
JH
18542012-09-11 Jan Hubicka <jh@suse.cz>
1855
1856 PR lto/54312
1857 * lto.c (uniquify_nodes): Remove quadratic loop checking if the
1858 type is variant leader.
1859
b29402f0
RG
18602012-09-11 Richard Guenther <rguenther@suse.de>
1861
1862 * lto.c (enum gtc_mode): Remove.
1863 (struct type_pair_d): Adjust.
1864 (lookup_type_pair): Likewise.
1865 (gimple_type_leader): Do not mark as deletable.
1866 (gimple_lookup_type_leader): Adjust.
1867 (gtc_visit): Likewise.
1868 (gimple_types_compatible_p_1): Likewise.
1869 (gimple_types_compatible_p): Likewise.
1870 (gimple_type_hash): Likewise.
1871 (gimple_register_type): Likewise.
1872 (read_cgraph_and_symbols): Manage lifetime of tables
1873 here.
1874
b8f4e58f
RG
18752012-09-11 Richard Guenther <rguenther@suse.de>
1876
1877 * lto.c (gimple_types, type_hash_cache, enum gtc_mode,
1878 struct type_pair_d, lookup_type_pair, struct sccs,
1879 next_dfs_num, gtc_next_dfs_num, struct gimple_type_leader_entry_s,
1880 gimple_type_leader, gimple_lookup_type_leader, compare_type_names_p,
1881 gtc_visit, gimple_types_compatible_p_1, gimple_types_compatible_p,
1882 visit, iterative_hash_name, struct type_hash_pair,
1883 type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash,
1884 gimple_type_eq, gimple_register_type_1, gimple_register_type):
1885 Move here from gimple.c
1886 (read_cgraph_and_symbols): Free hash tables here.
1887 (print_lto_report_1): New function wrapping print_lto_report.
1888 (do_whole_program_analysis): Call it.
1889 (lto_main): Likewise.
1890
1cdbb3f9
JH
18912012-09-10 Jan Hubicka <jh@suse.cz>
1892
1893 * lto-partition.c (partition_symbol_p): Forward declare.
1894 (add_references_to_partition): Reimplement using partition_symbol_p.
1895 (add_aliases_to_partition): Break out from add_references_to_partition;
1896 reimplement using partition_symbol_p.
1897 (add_cgraph_node_to_partition_1): Handle callees using partition_symbol_p;
1898 add sanity checks.
1899 (add_varpool_node_to_partition): Use add_aliases_to_partition.
1900 (partition_varpool_node_p): Do not special case aliases.
1901
b4661bfe
JH
19022012-08-12 Jan Hubicka <jh@suse.cz>
1903
1904 * lto.c (lto_wpa_write_files): Do not delete partition encoder;
1905 it is deleted after streaming.
1906 * lto-partition.c (partition_symbol_p): New function.
1907 (promote_var, promote_fn): Remove.
1908 (promote_symbol): New function.
1909 (lto_promote_cross_file_statics): First compute boundaries; rewrite
1910 to lookup the actual boundaries instead of computing them ad-hoc.
1911
7b99cca4
JH
19122012-08-12 Jan Hubicka <jh@suse.cz>
1913
1914 Replace cgraph_node_set and varpool_node_set by symtab_node_encoder
1915 in partitioning.
1916 * lto-partition.h (ltrans_partition_def): Replace cgraph_set and varpool_set
1917 by encoder.
1918 * lto-partition.c (new_partition): Update.
1919 * lto.c (cmp_partitions_order): Update.
1920 (lto_wpa_write_files): Update.
1921 (free_ltrans_partitions): Update.
1922 (add_references_to_partition): Update.
1923 (add_cgraph_node_to_partition_1): Update.
1924 (add_cgraph_node_to_partition): Update.
1925 (add_varpool_node_to_partition): Update.
1926 (undo_partition): Update.
1927 (lto_balanced_map): Update.
1928 (set_referenced_from_other_partition_p, set_reachable_from_other_partition_p,
1929 set_referenced_from_this_partition_p): Update.
1930 (lto_promote_cross_file_statics): Update.
1931
f27c1867
JH
19322012-08-12 Jan Hubicka <jh@suse.cz>
1933
1934 * lto-partition.c (set_referenced_from_other_partition_p,
1935 set_reachable_from_other_partition_p, set_referenced_from_this_partition_p):
1936 New functions.
1937 (lto_promote_cross_file_statics): Use them.
1938
ab96cc5b
JH
19392012-07-24 Jan Hubicka <jh@suse.cz>
1940
1941 * lto.c (read_cgraph_and_symbols): Use input_symtab.
1942
0229aee9
UB
19432012-07-24 Uros Bizjak <ubizjak@gmail.com>
1944
1945 * lto-tree.h (lang_decl): Add variable_size GTY option.
1946
7ee2468b
SB
19472012-07-16 Steven Bosscher <steven@gcc.gnu.org>
1948
1949 * lto.c: Do not include timevar.h.
1950 * Make-lang.in: Fix dependencies.
1951
a910399d
LC
19522012-06-18 Lawrence Crowl <crowl@google.com>
1953
1954 * lto.c (do_whole_program_analysis): Rename use of TV_PHASE_CGRAPH to
1955 TV_PHASE_OPT_GEN. Use new timevar TV_PHASE_STREAM_OUT around the call
1956 to lto_wpa_write_files.
1957 (lto_main): Rename use of TV_PHASE_CGRAPH to TV_PHASE_OPT_GEN. Move
1958 start of TV_PHASE_OPT_GEN to include call to materialize_cgraph. Use
1959 TV_PHASE_SETUP for the call to lto_init. Use new timevar
1960 TV_PHASE_STREAM_IN around the call to read_cgraph_and_symbols.
1961 Turn TV_PHASE_PARSING off then back on again, because LTO is pretending
1962 to be a front end, but is not one.
1963
877ab5e9
JH
19642012-05-18 Jan Hubicka <jh@suse.cz>
1965
1966 * lto.c (lto_materialize_constructors_and_inits): Remove.
1967 (read_cgraph_and_symbols): Remove handling of alias pairs.
1968
6649df51
JH
19692012-05-17 Jan Hubicka <jh@suse.cz>
1970
1971 * lto-partition.c (add_references_to_partition): Handle external vars.
1972 (partition_varpool_node_p): Likewise.
1973 (lto_promote_cross_file_statics): Do not promote externals.
1974
d1ede5f4
BS
19752012-05-14 Bernd Schmidt <bernds@codesourcery.com>
1976
1977 * lto-lang.c (handle_fnspec_attribute): New static function.
1978 (lto_attribute_table): Add "fn spec".
1979 (DEF_ATTR_STRING): Define and undefine along with the other macros.
1980
0d6bf48c
JH
19812012-05-04 Jan Hubicka <jh@suse.cz>
1982
1983 * lto.c (do_whole_program_analysis): Set timevars correctly.
1984 (lto_main): Likewise.
d1ede5f4 1985
1d67dde8
RB
19862012-05-04 Richard Guenther <rguenther@suse.de>
1987
1988 * lang.opt (fwpa): Do not mark as Optimization.
1989 (fltrans): Likewise.
1990
65d630d4
JH
19912012-04-30 Jan Hubicka <jh@suse.cz>
1992
1993 * lto.c (lto_main): Use compile ().
1d67dde8
RB
1994 * lto-partition.c (partition_cgraph_node_p): Use
1995 symtab_used_from_object_file_p.
65d630d4
JH
1996 (partition_varpool_node_p): Likewise.
1997
ead84f73
JH
19982012-04-20 Jan Hubicka <jh@suse.cz>
1999
2000 * lto-partition.c (partition_cgraph_node_p): Use force_output.
2001
5932a4d4
JH
20022012-04-18 Jan Hubicka <jh@suse.cz>
2003
2004 * lto-partition.c (add_references_to_partition, lto_balanced_map):
2005 Update for new ipa-ref API.
2006
65c70e6b
JH
20072012-04-16 Jan Hubicka <jh@suse.cz>
2008
2009 * lto.c (read_cgraph_and_symbols): Use FOR_EACH
2010 walkers to walk cgraph and varpool.
2011 (materialize_cgraph): Likewise.
2012 * lto-partition.c (lto_1_to_1_map): Likewise.
2013 (lto_balanced_map): Likewise.
2014 (lto_promote_cross_file_statics): Likewise.
2015
960bfb69
JH
20162012-04-14 Jan Hubicka <jh@suse.cz>
2017
2018 * lto.c: Update field referenced for new cgraph/varpool layout.
2019 * lto-partition.c: Likewise.
2020
a66dc285
JH
20212012-04-11 Jan Hubicka <jh@suse.cz>
2022
2023 * lto.c: Update copyright; remove params.h, ipa-inline.h
2024 and ipa-utils.h inlines; inline lto-partition.h
2025 (ltrans_partition_def, ltrans_partition, add_cgraph_node_to_partition,
2026 add_varpool_node_to_partition, new_partition, free_ltrans_partitions,
2027 add_references_to_partition, add_cgraph_node_to_partition_1,
2028 add_cgraph_node_to_partition, add_varpool_node_to_partition,
2029 undo_partition, partition_cgraph_node_p, partition_varpool_node_p,
2030 lto_1_to_1_map, node_cmp, varpool_node_cmp, lto_balanced_map,
2031 promote_var, promote_fn, lto_promote_cross_file_statics): move to...
2032 * lto-partition.c: ... here; new file.
2033 * lto-partition.h: New file.
2034 * Make-lang.in (lto.o): Update dependencies.
2035 (lto-partition.o): New.
2036
f3b249e5
RG
20372012-04-05 Richard Guenther <rguenther@suse.de>
2038
2039 * lto-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Remove
2040 definition.
2041
21fa2faf
RG
20422012-03-12 Richard Guenther <rguenther@suse.de>
2043
2044 * lto-lang.c (builtin_type_for_size): Use lto_type_for_size.
2045
6bb485a3
RG
20462012-03-06 Richard Guenther <rguenther@suse.de>
2047
2048 PR lto/52097
2049 * lto.c (uniquify_nodes): Merge TYPE_FIELDS of variant types.
2050
95510497
RG
20512012-02-28 Richard Guenther <rguenther@suse.de>
2052
2053 PR lto/52400
2054 * lto.c (lto_register_function_decl_in_symtab): Do not register
2055 a reverse renamed decl mapping.
2056
09228fef
JJ
20572012-01-06 Jakub Jelinek <jakub@redhat.com>
2058
2059 PR lto/51774
2060 * lto-lang.c (handle_returns_twice_attribute): New function.
2061 (lto_attribute_table): Add returns_twice attribute.
2062
b03eda0d
RG
20632011-12-21 Richard Guenther <rguenther@suse.de>
2064
2065 * lto.c (GIMPLE_REGISTER_TYPE): New define.
2066 (LTO_FIXUP_TREE): Use it.
2067 (uniquify_nodes): Mark new non-prevailing types and avoid
2068 calling gimple_register_type on others.
2069 (lto_read_decls): Add comment.
2070
4ad9a9de
EB
20712011-12-13 Eric Botcazou <ebotcazou@adacore.com>
2072
2073 * lto.h (lto_parse_hex): Delete.
2074 * lto.c (lto_read_decls): Use 'int' for offsets.
2075 (lto_parse_hex): Make static and return proper 64-bit host type.
2076 (lto_resolution_read): Use proper 64-bit host type.
2077
ea973bad
RG
20782011-12-13 Richard Guenther <rguenther@suse.de>
2079
2080 PR lto/48354
2081 * lto.c (lto_ft_decl_non_common): When we merged DECL_ORIGINAL_TYPE
2082 with the type of the TYPE_DECL clear DECL_ORIGINAL_TYPE.
2083
c8218030
UB
20842011-12-01 Uros Bizjak <ubizjak@gmail.com>
2085
2086 * lto-lang.c (lto_attribute_table): Handle *tm regparm.
2087 (ignore_attribute): New.
2088
57ac2606
AH
20892011-11-21 Aldy Hernandez <aldyh@redhat.com>
2090
2091 * lto-lang.c (lto_attribute_table): Handle transaction_pure.
2092 (handle_transaction_pure_attribute): New.
2093
52a35ef7
RG
20942011-11-03 Richard Guenther <rguenther@suse.de>
2095
2096 PR lto/44965
2097 * lto-lang.c (lto_post_options): Do not read file options.
2098 * lto.c (lto_read_all_file_options): Remove.
2099 (lto_init): Call lto_set_in_hooks here.
2100
51973b1e
JH
21012011-10-09 Jan Hubicka <jh@suse.cz>
2102
2103 * lto.c (node_cmp, varpool_node_cmp): New functions.
2104 (lto_balanced_map): Honnor -fno-toplevel-reorder of vars&functions.
2105 (cmp_partitions): Rename to ...
2106 (cmp_partitions_size): ... this one.
2107 (cmp_partitions_order): New function.
2108 (lto_wpa_write_files): Sort partitions by order when
2109 -fno-toplevel-reorder is used.
2110
5958009b
AK
21112011-10-09 Andi Kleen <ak@linux.intel.com>
2112
2113 * lto.c (lto_section_read): Call fatal_error on IO or mmap errors.
2114
e79983f4
MM
21152011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
2116
2117 * lto-lang.c (def_builtin_1): Delete old interface with two
2118 parallel arrays to hold standard builtin declarations, and replace
2119 it with a function based interface that can support creating
2120 builtins on the fly in the future. Change all uses, and poison
2121 the old names. Make sure 0 is not a legitimate builtin index.
2122
ecdbd01a 21232011-10-02 Andi Kleen <ak@linux.intel.com>
c17d253c
AK
2124
2125 * lto-object.c (lto_obj_add_section_data): Add list.
2126 (lto_obj_add_section): Fill in list.
2127 (ltoobj_build_section_table): Pass through list.
2128 * lto.c (file_data_list): Declare.
2129 (create_subid_section_table): Pass arguments directly.
2130 Fill in list of file_datas.
2131 (lwstate): Delete.
2132 (lto_create_files_from_ids): Pass in direct arguments.
2133 Don't maintain list.
2134 (lto_file_read): Use explicit section and file data lists.
2135 (lto_read_all_file_options): Pass in section_list.
2136 * lto.h (lto_obj_build_section_table): Add list.
2137 (lto_section_slot): Add next.
2138 (lto_section_list): Declare.
2139
ed0d2da0
JH
21402011-10-02 Jan Hubicka <jh@suse.cz>
2141
2142 PR lto/47247
2143 * common.c (lto_resolution_str): Add new resolution.
2144 * common.h (lto_resolution_str): Likewise.
2145
ad7715f3
L
21462011-09-30 H.J. Lu <hongjiu.lu@intel.com>
2147 Andi Kleen <ak@linux.intel.com>
2148
2149 PR lto/50568
2150 * lto.c (lto_splay_tree_delete_id): New.
2151 (lto_splay_tree_compare_ids): Likewise.
2152 (lto_splay_tree_lookup): Likewise.
2153 (lto_splay_tree_id_equal_p): Likewise.
2154 (lto_splay_tree_insert): Likewise.
2155 (lto_splay_tree_new): Likewise.
2156 (lto_resolution_read): Change id to unsigned HOST_WIDE_INT.
2157 Use lto_splay_tree_id_equal_p and lto_splay_tree_lookup.
2158 (create_subid_section_table): Use lto_splay_tree_lookup and
2159 lto_splay_tree_insert.
2160 (lto_file_read): Use lto_splay_tree_new.
2161
ecdbd01a 21622011-09-26 Andi Kleen <ak@linux.intel.com>
dde8b360
AK
2163
2164 * lto.c (lto_resolution_read): Remove id dumping.
2165 (lto_section_with_id): Turn id HOST_WIDE_ID.
2166 (create_subid_section_table): Dito.
2167
892a371f
DS
21682011-08-28 Dodji Seketeli <dodji@redhat.com>
2169
2170 * lto-lang.c (lto_init): Likewise. Also, avoid calling
2171 linemap_add twice.
2172
f82d1a94
MJ
21732011-08-11 Martin Jambor <mjambor@suse.cz>
2174
2175 * lto.c (uniquify_nodes): Use main variant's BINFO too.
2176
f0efc7aa
DN
21772011-08-08 Diego Novillo <dnovillo@google.com>
2178
2179 * Make-lang.in (lto/lto.o): Add TREE_STREAMER_H.
2180 * lto.c: Include tree-streamer.h.
2181
1a072294
RG
21822011-07-06 Richard Guenther <rguenther@suse.de>
2183
2184 * lto-lang.c (lto_init):
2185 Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
2186
7496868d
JH
21872011-06-11 Jan Hubicka <jh@suse.cz>
2188
10f13f22 2189 PR lto/48246
7496868d
JH
2190 * lto.c (lto_1_to_1_map): Don't create empty partitions.
2191 (lto_balanced_map): Likewise.
2192
39e2db00
JH
21932011-06-11 Jan Hubicka <jh@suse.cz>
2194
2195 * lto.c (add_cgraph_node_to_partition_1): Break out from ...
2196 (add_cgraph_node_to_partition) ... here; walk aliases.
2197 (lto_1_to_1_map): Remove same body alias code.
2198 (promote_fn): Likewise.
2199 (lto_promote_cross_file_statics): Update comment.
2200
2201
28628ea6
DN
22022011-06-07 Diego Novillo <dnovillo@google.com>
2203
2204 * lto.c (uniquify_nodes): Move code to register decls to
2205 the loop that computes canonical types.
2206
009db074
RG
22072011-06-07 Richard Guenther <rguenther@suse.de>
2208
2209 * lto-lang.c (lto_init): Do not set
2210 size_type_node or call set_sizetype.
2211
47c79d56
DN
22122011-06-04 Diego Novillo <dnovillo@google.com>
2213
2214 * lto.c (lto_init): New.
2215 (lto_main): Call it.
2216
d5828cc7
DN
22172011-06-03 Diego Novillo <dnovillo@google.com>
2218
2219 * lto.c (get_resolution): Move from lto-streamer-in.c.
2220 (lto_register_var_decl_in_symtab): Likewise.
2221 (lto_register_function_decl_in_symtab): Likewise.
2222 (uniquify_nodes): Call lto_register_var_decl and
2223 lto_register_function_decl_in_symtab after reading a new
2224 VAR_DECL or FUNCTION_DECL.
2225
6807da97
RG
22262011-06-01 Richard Guenther <rguenther@suse.de>
2227
2228 * lto-lang.c (lto_register_canonical_types): New function.
2229 (lto_init): Register common nodes with the canonical type machinery.
2230 Do not play tricks with char_type_node.
2231
d74be317
RG
22322011-05-26 Richard Guenther <rguenther@suse.de>
2233
2234 * lto.c (uniquify_nodes): Fix bug in one of the previous changes.
2235
d9f8303f
NF
22362011-05-25 Nathan Froyd <froydnj@codesourcery.com>
2237
2238 * lto.c (lto_ft_typed): New function.
2239 (lto_ft_common): Call it.
2240 (lto_ft_constructor): Likewise.
2241 (lto_ft_expr): Likewise.
2242 (lto_fixup_prevailing_decls): Check for TS_COMMON before accessing
2243 TREE_CHAIN.
2244
fb291a1e
RG
22452011-05-20 Richard Guenther <rguenther@suse.de>
2246
2247 * lto.c (lto_ft_common): Remove pointer-to chain teardown.
2248 (lto_ft_type): Move main-variant and pointer-to chain building ...
2249 (uniquify_nodes): ... here. Compute TYPE_CANONICAL also here,
2250 in a separate final loop.
2251
31b3ca64
RG
22522011-05-19 Richard Guenther <rguenther@suse.de>
2253
2254 * lto.c (uniquify_nodes): First register all types before
2255 fixing up the tree SCC.
2256
35d828c5
JH
22572011-05-11 Jan Hubicka <jh@suse.cz>
2258
2259 PR lto/48952
2260 * lto.c (do_whole_program_analysis): Do not register cgraph hooks.
2261
51545682
NF
22622011-05-11 Nathan Froyd <froydnj@codesourcery.com>
2263
2264 * lto.c (lto_ft_type): Use TYPE_MINVAL and TYPE_MAXVAL. Adjust
2265 location of binfo field.
2266 (lto_fixup_prevailing_decls): Likewise.
2267
8242dd04
NF
22682011-05-10 Nathan Froyd <froydnj@codesourcery.com>
2269
2270 * lto-lang.c (def_fn_type): Don't call build_function_type, call
2271 build_function_type_array or build_varargs_function_type_array
2272 instead.
2273
c99c0026
EB
22742011-05-07 Eric Botcazou <ebotcazou@adacore.com>
2275
2276 * lto-lang.c (global_bindings_p): Return bool.
2277
c47d0034
JH
22782011-05-07 Jan Hubicka <jh@suse.cz>
2279
a9bcb3f0
EB
2280 * lto.c (lto_materialize_function): Use
2281 cgraph_function_with_gimple_body_p.
2282 (add_cgraph_node_to_partition): Do not re-add items to partition;
2283 handle thunks.
c47d0034
JH
2284 (add_varpool_node_to_partition): Do not re-add items to partition.
2285
bb3398ca
JH
22862011-05-03 Jan Hubicka <jh@suse.cz>
2287
2288 * lto.c (free_ltrans_partitions): Fix accidental commit.
2289
1cb1a99f
JH
22902011-05-03 Jan Hubicka <jh@suse.cz>
2291
2292 * lto.c (ltrans_partition_def): Remove GTY annotations.
2293 (ltrans_partitions): Move to heap.
2294 (new_partition): Update.
2295 (free_ltrans_partitions): New function.
2296 (lto_wpa_write_files): Use it.
2297
af8bca3c
MJ
22982011-04-29 Martin Jambor <mjambor@suse.cz>
2299
2300 * lto.c: Include ipa-utils.h.
2301 (lto_balanced_map): Update call to ipa_reverse_postorder.
2302 * Make-lang.in (lto/lto.o): Add IPA_UTILS_H to dependencies.
2303
b823cdfe
MM
23042011-04-29 Michael Matz <matz@suse.de>
2305
2306 * lto.c (toplevel): Include tree-flow.h.
2307 (lto_read_in_decl_state): Don't merge types here.
2308 (tree_with_vars): New static hash table.
2309 (remember_with_vars): New static functions.
2310 (LTO_FIXUP_TYPE): New macro.
2311 (lto_ft_common, lto_ft_decl_minimal, lto_ft_decl_common,
2312 lto_ft_decl_with_vis, lto_ft_decl_non_common, lto_ft_function,
2313 lto_ft_field_decl, lto_ft_type, lto_ft_binfo, lto_ft_constructor,
2314 lto_ft_expr, lto_fixup_types, uniquify_nodes): New static functions.
2315 (lto_read_decls): Uniquify while reading in trees.
2316 (lto_fixup_data_t, LTO_FIXUP_SUBTREE,
2317 LTO_REGISTER_TYPE_AND_FIXUP_SUBTREE, no_fixup_p, lto_fixup_common,
2318 lto_fixup_decl_minimal, lto_fixup_decl_common, lto_fixup_decl_with_vis,
2319 lto_fixup_decl_non_common, lto_fixup_function, lto_fixup_field_decl,
2320 lto_fixup_type, lto_fixup_binfo, lto_fixup_constructor,
2321 lto_fixup_tree): Remove.
2322 (lto_fixup_state): Remove data argument. Use
2323 lto_symtab_prevailing_decl.
2324 (LTO_SET_PREVAIL, LTO_NO_PREVAIL): New macros.
2325 (lto_fixup_prevailing_decls): New function.
2326 (lto_fixup_state_aux): Argument aux is unused.
2327 (lto_fixup_decls): Don't allocate pointer sets, don't use
2328 lto_fixup_tree, use lto_fixup_prevailing_decls.
2329 (read_cgraph_and_symbols): Allocate and remove tree_with_vars.
2330 * Make-lang.in (lto/lto.o): Depend on $(TREE_FLOW_H).
2331
b9843260
EB
23322011-04-16 Eric Botcazou <ebotcazou@adacore.com>
2333
2334 * lto.c (lto_balanced_map): Fix typos in head comment.
2335 (lto_promote_cross_file_statics): Fix long lines and remove redundant
2336 test.
2337
e7f23018
JH
23382011-04-16 Jan Hubicka <jh@suse.cz>
2339
2340 * lto.c (lto_balanced_map): Update.
2341
10a5dd5d
JH
23422011-04-14 Jan Hubicka <jh@suse.cz>
2343
2344 * lto.c: Include ipa-inline.h
b9843260
EB
2345 (add_cgraph_node_to_partition, undo_partition): Use inline_summary
2346 accessor.
10a5dd5d
JH
2347 (ipa_node_duplication_hook): Fix declaration.
2348 * Make-lang.in (lto.o): Update dependencies.
2349
81f653d6
NF
23502011-04-12 Nathan Froyd <froydnj@codesourcery.com>
2351
2352 * lto-tree.h (union lang_tree_node): Check for TS_COMMON before
2353 calling TREE_CHAIN.
2354 * lto.c (lto_fixup_common): Likewise.
2355
dcf0c47e
NF
23562011-04-08 Nathan Froyd <froydnj@codesourcery.com>
2357
2358 * lto-lang.c (handle_sentinel_attribute): Don't use TYPE_ARG_TYPES.
2359 (handle_type_generic_attribute): Likewise.
2360
e89964e3
MM
23612011-04-03 Michael Matz <matz@suse.de>
2362
2363 * lto.c (lto_materialize_function): Don't read and then discard
2364 sections in WPA mode.
2365 (lto_read_in_decl_state): Adjust call to lto_streamer_cache_get.
2366
2367 * lto-lang.c (registered_builtin_fndecls): Remove.
2368 (lto_getdecls): Return NULL_TREE.
2369 (lto_builtin_function): Don't remember in registered_builtin_fndecls.
2370
d2b3fe18
RG
23712011-03-31 Richard Guenther <rguenther@suse.de>
2372
2373 PR lto/48246
2374 * lto.c (lto_wpa_write_files): Disable assert for non-empty
2375 partitions when checking is not enabled.
2376
ba78087b
KT
23772011-03-25 Kai Tietz <ktietz@redhat.com>
2378
2379 * lto.c (lto_resolution_read): Use filename_cmp instead
2380 of strcmp.
2381 (lto_read_section_data): Likewise.
2382
0edf1bb2
JL
23832011-03-25 Jeff Law <law@redhat.com>
2384
2385 * lto/lto-lang.c (def_fn_type): Add missing va_end.
2386
62d784f7
KT
23872011-03-21 Kai Tietz <ktietz@redhat.com>
2388
2389 PR target/12171
2390 * lto-lang.c (lto_attribute_table): Adjust table.
2391
62dd9571
JJ
23922011-02-18 Jakub Jelinek <jakub@redhat.com>
2393
2394 PR bootstrap/47807
2395 * Make-lang.in (lto/lto-lang.o): Depend on $(LTO_STREAMER_H) instead
2396 of lto-streamer.h.
2397
237d6259
RG
23982011-02-18 Richard Guenther <rguenther@suse.de>
2399
2400 PR lto/47798
2401 * lto-tree.h (lto_global_var_decls): Do not declare here.
2402 * lto-lang.c: Include lto-streamer.h.
2403 * Make-lang.in (lto-lang.o): Adjust dependencies.
2404
8ead2223
KT
24052011-02-10 Kai Tietz <kai.tietz@onevision.com>
2406
2407 PR lto/47241
2408 * lto.c (lto_read_section_data): Free
2409 fd_name in failure case.
2410 For mingw targets don't hash file-descriptor.
2411 (read_cgraph_and_symbols): Close current_lto_file
2412 in failure case.
2413
6e701822
JH
24142011-01-11 Jan Hubicka <jh@suse.cz>
2415
2416 PR lto/45721
2417 PR lto/45375
b9843260
EB
2418 * lto.c (partition_cgraph_node_p, partition_varpool_node_p): Weakrefs
2419 are not partitioned.
6e701822 2420
f4da8dce
NF
24212010-12-22 Nathan Froyd <froydnj@codesourcery.com>
2422
2423 * lto-lang.c (handle_nonnull_attribute, handle_sentinel_attribute):
2424 Use prototype_p.
2425
6b7fb143
RG
24262010-12-06 Richard Guenther <rguenther@suse.de>
2427
2428 PR lto/46796
2429 * lto-lang.c (lto_init): Give names to basic types.
2430
c59ffc41
JM
24312010-11-30 Joseph Myers <joseph@codesourcery.com>
2432
2433 * lto-object.c: Don't include toplev.h.
2434 * Make-lang.in (lto/lto-object.o): Don't depend on toplev.h.
2435
7c475d11
JM
24362010-11-30 Joseph Myers <joseph@codesourcery.com>
2437
2438 * Make-lang.in (lto/lto-object.o): Depend on toplev.h instead of
2439 $(TOPLEV_H).
2440
71f3e391
JM
24412010-11-29 Joseph Myers <joseph@codesourcery.com>
2442
2443 * lto-endian.h: Delete.
2444 * lto-object.c: Don't include "libiberty.h".
2445 (O_BINARY): Don't define.
2446 * lto.c: Don't include "libiberty.h" or <sys/mman.h>.
2447 (O_BINARY): Don't define.
2448
9f1718b0
RG
24492010-11-23 Richard Guenther <rguenther@suse.de>
2450
2451 * lto.c (read_cgraph_and_symbols): Remove newline from diagnostic.
2452
39c4e298
RG
24532010-11-23 Richard Guenther <rguenther@suse.de>
2454
2455 PR lto/46605
2456 * lto.c (read_cgraph_and_symbols): Bail out after errors.
2457
b37421c6
JM
24582010-11-17 Joseph Myers <joseph@codesourcery.com>
2459
2460 * lto.c (lto_main): Take no arguments.
2461 * lto.h (lto_main): Update prototype.
2462
d82f74d3
ILT
24632010-11-16 Ian Lance Taylor <iant@google.com>
2464
2465 * lto-object.c (lto_obj_file_open): Call
2466 simple_object_attributes_merge rather than
2467 simple_object_attributes_compare.
2468
a4d8c676
JM
24692010-11-12 Joseph Myers <joseph@codesourcery.com>
2470
2471 * Make-lang.in (lto/lto.o): Use $(OPTS_H).
2472 * lto-lang.c (lto_handle_option): Take location_t parameter.
2473
d8a07487
JM
24742010-11-10 Joseph Myers <joseph@codesourcery.com>
2475
2476 * lto.c (lto_resolution_read): Start diagnostics with lowercase
2477 letters and remove trailing '.'.
2478 (lto_file_finalize): Start diagnostic with a lowercase letter.
2479
6b3456d1
ILT
24802010-11-02 Ian Lance Taylor <iant@google.com>
2481
2482 * lto-object.c: New file.
2483 * lto-elf.c: Remove file.
2484 * lto-macho.c: Remove file.
2485 * lto-macho.h: Remove file.
2486 * lto-coff.c: Remove file.
2487 * lto-coff.h: Remove file.
2488 * Make-lang.in (LTO_OBJS): Change lto/$(LTO_BINARY_READER).o to
2489 lto/lto-object.o.
2490 ($(LTO_EXE)): Remove $(LTO_USE_LIBELF)
2491 (lto/lto-objfile.o): New target.
2492 (lto/lto-elf.o, lto/lto-coff.o, lto/lto-macho.o): Remove targets.
2493 (lto/lto.o): Remove $(LIBIBERTY_H).
2494
030cd86c
JH
24952010-10-22 Jan Hubicka <jh@suse.cz>
2496
2497 * lto.c (add_cgraph_node_to_partition,
2498 add_varpool_node_to_partition): Add debug info.
2499 (lto_1_to_1_map, lto_balanced_map): Do not re-add already
2500 partitioned nodes.
2501 (do_whole_program_analysis): Set function flags before dumping.
2502
4490cae6
RG
25032010-10-22 Richard Guenther <rguenther@suse.de>
2504
2505 * lto.c (lto_fixup_type): Fixup TYPE_CANONICAL again, via
2506 the new gimple_register_canonical_type.
2507
703cdce3
L
25082010-10-20 H.J. Lu <hongjiu.lu@intel.com>
2509
2510 PR bootstrap/45954
2511 * config-lang.in (boot_language): Set to $enable_lto.
2512
1915c739
JJ
25132010-10-18 Jakub Jelinek <jakub@redhat.com>
2514
2515 PR lto/45638
2516 * Make-lang.in (check-lto): New dummy target.
2517
82971de5
EB
25182010-10-14 Eric Botcazou <ebotcazou@adacore.com>
2519
2520 * lto-elf.c (SHN_XINDEX): Define if not already defined.
2521
a75bfaa6
JM
25222010-10-08 Joseph Myers <joseph@codesourcery.com>
2523
2524 * lto-lang.c (lto_init_options): Change to
2525 lto_init_options_struct. Update parameters.
2526 (LANG_HOOKS_INIT_OPTIONS): Don't define.
2527 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
2528
937f7f69
JH
25292010-10-06 Jan Hubicka <jh@suse.cz>
2530
2531 * lto.c (lto_balanced_map): Fix accounting of program size.
2532
2169830c
JH
25332010-10-06 Jan Hubicka <jh@suse.cz>
2534
2535 * lto.c (lto_balanced_map): Do not produce empty partitions.
2536
ecdbd01a 25372010-10-06 Andi Kleen <ak@linux.intel.com>
6e9bd0f8
AK
2538
2539 * lto.c (lto_process_name): Add.
2540 (lto_main): Call lto_process_name.
2541
06ed016f
JH
25422010-10-06 Jan Hubicka <jh@suse.cz>
2543
2544 * lto.c (partition_cgraph_node_p, partition_varpool_node_p): Handle
2545 COMDATs required by the linker.
2546
ae718d66
ILT
25472010-10-05 Ian Lance Taylor <iant@google.com>
2548
2549 * lto.c (lto_section_with_id): Make s a const pointer.
2550
852e4bd2
JH
25512010-10-05 Jan Hubicka <jh@suse.cz>
2552
2553 * lto.c: Include params.h.
2554 (add_cgraph_node_to_partition, add_varpool_node_to_partition): Do
2555 refcounting in aux field.
2556 (undo_partition, partition_cgraph_node_p, partition_varpool_node_p):
2557 New functions.
2558 (lto_1_to_1_map): Simplify.
2559 (lto_balanced_map): New function.
2560 (do_whole_program_analysis): Chose proper partitioning alg.
2561 * Make-lang.in (lto.o): Add dependency on params.h
2562
ecdbd01a 25632010-10-04 Andi Kleen <ak@linux.intel.com>
a90163e9
AK
2564
2565 * Make-lang.in (lto1): Add + to build rule.
2566
ecdbd01a 25672010-10-03 Andi Kleen <ak@linux.intel.com>
f1e92a43
AK
2568
2569 * lto.c (lto_file_finalize): Replace gcc_assert for missing section
2570 with fatal_error.
2571
0d6e14fd
JH
25722010-09-28 Jan Hubicka <jh@suse.cz>
2573
2574 * lto-lang.c (handle_leaf_attribute): New function.
2575 (lto_attribute_tables): Add leaf.
2576
fb462383
JZ
25772010-09-25 Jie Zhang <jie@codesourcery.com>
2578
2579 * lto.c (lto_read_all_file_options): Start a new line after
2580 printing out file names.
2581
051f8cc6
JH
25822010-09-24 Jan Hubicka <jh@suse.cz>
2583
2584 * lto.c (lto_promote_cross_file_statics): Use const_value_known_p.
2585
64e0f5ff
JH
25862010-09-20 Jan Hubicka <jh@suse.cz>
2587
2588 PR tree-optimize/45605
2589 * lto.c (lto_promote_cross_file_statics): Use const_value_known_p.
2590
a929ec3d
GP
25912010-09-18 Gerald Pfeifer <gerald@pfeifer.com>
2592
2593 * lto-elf.c (lto_obj_file_open): Also provide filename when
2594 elf_begin fails.
2595
4c588abf
JH
25962010-09-17 Jan Hubicka <jh@suse.cz>
2597
2598 * lto.c (lto_promote_cross_file_statics): Use const_value_known.
2599
c3224d6f
RG
26002010-09-17 Richard Guenther <rguenther@suse.de>
2601
2602 * lang.opt (flag_wpa): Also enable for the driver.
2603
52b3b3c7
JH
26042010-09-16 Jan Hubicka <jh@suse.cz>
2605
2606 * lto.c (lto_materialize_function): Do not tamper with STATIC and
2607 EXTERNAL flags.
2608
969c37b7
LB
26092010-09-15 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2610
2611 * lto-tree.h (struct lang_type): Add variable_size GTY option.
2612
098a4f50
JH
26132010-09-08 Jan Hubicka <jh@suse.cz>
2614
2615 * lto.c (real_file_count, real_file_decl_data): New static vars.
2616 (read_cgraph_and_symbols): Use it.
2617
0f443ad0
RG
26182010-09-08 Richard Guenther <rguenther@suse.de>
2619
2620 * lto.c (read_cgraph_and_symbols): Collect again after each
2621 file.
2622
ee187353
JH
26232010-09-07 Jan Hubicka <jh@suse.cz>
2624
2625 * lto.c (promote_var, promote_fn): Set DECL_VISIBILITY_SPECIFIED.
2626
b3ec52d0
RG
26272010-09-03 Richard Guenther <rguenther@suse.de>
2628
2629 * lto-elf.c (validate_file): Always error if validation fails.
2630
f1395d4a
JH
26312010-08-20 Jan Hubicka <jh@suse.cz>
2632
2633 * lto.c (lto_1_to_1_map): Be prepared for node to have no file data.
2634 (lto_wpa_write_files): Update comments.
2635
2429bce3
L
26362010-08-20 H.J. Lu <hongjiu.lu@intel.com>
2637
2638 PR bootstrap/45357
2639 * lto.c (lto_materialize_function): Replace has_analyzed_clone
2640 with has_analyzed_clone_p.
2641
e0f967db
JH
26422010-08-20 Jan Hubicka <jh@suse.cz>
2643
2644 * lto.c (has_analyzed_clone_p): New function
2645 (lto_materialize_function): Use callgraph to determine if
2646 body is needed.
2647 (materialize_cgraph): Remove DECL_IS_BUILTIN check.
2648
ac47786e
NF
26492010-08-20 Nathan Froyd <froydnj@codesourcery.com>
2650
2651 * lto.c: Use FOR_EACH_VEC_ELT.
2652
ecdbd01a 26532010-07-27 Andi Kleen <ak@linux.intel.com>
d720b869
AK
2654
2655 * Make-lang.in (lto.o): Add dependency to splay-tree.h
2656
5f20c657
JM
26572010-07-27 Joseph Myers <joseph@codesourcery.com>
2658
2659 * lto-lang.c (lto_handle_option): Update prototype and return
2660 value type. Remove duplicate assignment to result.
2661
7a9bf9a4
JM
26622010-07-27 Joseph Myers <joseph@codesourcery.com>
2663
2664 * lto-lang.c (lto_option_lang_mask, lto_complain_wrong_lang_p):
2665 New.
2666 (lto_init_options): Update prototype.
2667 (LANG_HOOKS_OPTION_LANG_MASK, LANG_HOOKS_COMPLAIN_WRONG_LANG_P):
2668 Define.
2669
ecdbd01a 26702010-07-10 Andi Kleen <ak@linux.intel.com>
73ce4d1e
AK
2671
2672 PR lto/44992
2673 * lto.c: Include splay-tree.h
2674 (lto_resolution_read): Change to walk file_ids tree and parse
2675 extra file_id in resolution file.
2676 (lto_section_with_id): Add.
2677 (create_subid_section_table): Add.
2678 (lwstate): Add.
2679 (lto_create_files_from_ids): Add.
2680 (lto_file_read): Change to handle sub file ids and create list
2681 of file_datas. Add output argument for count.
2682 (get_section_data): Pass file_data to lto_get_section_name.
2683 (lto_flatten_file): Add.
2684 (read_cgraph_and_symbols): Handle linked lists of file_datas.
2685
ecdbd01a 26862010-07-10 Andi Kleen <ak@linux.intel.com>
2994ee14
AK
2687
2688 * lto-coff.c (hash_name, eq_name): Move.
2689 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
2690 * lto-elf.c: (hash_name, eq_name): Move.
2691 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
2692 * lto-macho.c: (hash_name, eq_name): Move.
2693 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
2694 * lto.c: (hash_name, eq_name): Move from lto-*.c
2695 (lto_obj_create_section_hash_table): Add.
2696 (free_with_string): Add.
2697
718f9c0f
MLI
26982010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
2699
2700 * lto-coff.c: Include diagnostic-core.h in every file that
2701 includes toplev.h.
2702 * lto-elf.c: Likewise.
2703 * lto-lang.c: Likewise.
2704 * lto-macho.c: Likewise.
2705
1b137837
JJ
27062010-07-07 Jakub Jelinek <jakub@redhat.com>
2707
2708 * lto-elf.c (ELFOSABI_NONE, ELFOSABI_LINUX): Define if not defined.
2709 (validate_file): Allow merging of ELFOSABI_NONE with ELFOSABI_LINUX
2710 objects.
2711
92eb4438
JH
27122010-07-05 Jan Hubicka <jh@suse.cz>
2713
2714 * lto.c (add_cgraph_node_to_partition): Forward declare; walk also
2715 nodes from same comdat group as well as all comdat functions referenced
2716 here.
b9843260
EB
2717 (add_varpool_node_to_partition, add_references_to_partition): New
2718 function.
2719 (lto_1_1_map): Skip COMDAT fnctions/variables; use
2720 add_varpool_node_to_partition; clear aux flags when done.
2721 (lto_promote_cross_file_statics): Do not promote stuff that gets
2722 duplicated to each ltrans.
92eb4438 2723
a05541a9
JH
27242010-07-04 Jan Hubicka <jh@suse.cz>
2725
2726 * lto.c (read_cgraph_and_symbols): Dump cgraph before merging.
2727
4a2ac96f
RG
27282010-06-13 Richard Guenther <rguenther@suse.de>
2729
2730 * lto.c (lto_fixup_type): Do not register or fixup TYPE_CANONICAL.
2731
1d536046
KT
27322010-06-09 Kai Tietz <kai.tietz@onevision.com>
2733
2734 * lto.c (lto_resolution_read): Pre-initialize local variable r.
2735 * lto-coff.c (coff_write_object_file): Add braces to if.
2736
a9429e29
LB
27372010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2738
2739 * lto.c (lto_read_in_decl_state): Use typed GC allocation.
2740 (lto_file_read): Likewise.
2741 (new_partition): Likewise.
2742 (read_cgraph_and_symbols): Likewise.
2743
5498f011
JM
27442010-06-07 Joseph Myers <joseph@codesourcery.com>
2745
2746 * lto-lang.c (flag_no_builtin, flag_no_nonansi_builtin): Remove.
2747 (lto_handle_option): Don't set flag_signed_char here.
2748
d4c0c9f6
RG
27492010-06-04 Richard Guenther <rguenther@suse.de>
2750
2751 PR lto/41584
2752 * lto.c (lto_1_to_1_map): Use the proper file_data for
2753 varpool nodes.
2754
0a5fa5a1
JH
27552010-05-30 Jan Hubicka <jh@suse.cz>
2756
2757 * lto.c (promote_var, promote_fn, lto_wpa_write_files): Dump
2758 partitioning decisions.
2759
9eec9488
JH
27602010-05-29 Jan Hubicka <jh@suse.cz>
2761
2762 * lto.c (bitmap vector): Remove.
2763 (lto_cgraph_node_sets, lto_varpool_node_sets): Remove.
2764 (ltrans_partition_def): New structure.
2765 (ltrans_partition): New type and VECtor.
2766 (new_partition): New function.
2767 (add_cgraph_node_to_partition): New function.
2768 (lto_1_to_1_map): Reorganize for partitions.
2769 (lto_add_inline_clones): Remove.
2770 (lto_add_all_inlinees): Remove.
2771 (lto_promote_cross_file_statics): Use partitions.
2772 (cmp_partitions): New function.
2773 (lto_wpa_write_files): Do not call lto_add_all_inlinees;
2774 use partitions; output files sorted by size.
2775
3e097227
SB
27762010-05-29 Steven Bosscher <steven@gcc.gnu.org>
2777
2778 * Make-lang.in: Replace vec.h dependency with VEC_H.
2779
7ca92787
JM
27802010-05-28 Joseph Myers <joseph@codesourcery.com>
2781
2782 * lto-coff.c (coff_errmsg): Remove.
2783 (lto_coff_begin_section_with_type, lto_obj_append_data): Use %m in
2784 errors instead of coff_errmsg (-1).
2785 * lto-macho.c (mach_o_errmsg): Remove.
2786 (lto_obj_begin_section, lto_obj_append_data): Use %m in errors
2787 instead of mach_o_errmsg (-1).
2788 * lto.c (read_cgraph_and_symbols): Use %m in errors instead of
2789 xstrerror (errno).
2790
b5611987
RG
27912010-05-28 Richard Guenther <rguenther@suse.de>
2792
2793 * lto.c (prefix_name_with_star): Removed.
2794 (strip_extension): Likewise.
2795 (get_filename_for_set): Likewise.
2796 (lto_write_ltrans_list): Fold into ...
2797 (lto_wpa_write_files): ... this. Name LTRANS units
2798 by suffixing the ltrans output list filename.
2799 (do_whole_program_analysis): Adjust.
2800
1da2ed5f
JM
28012010-05-27 Joseph Myers <joseph@codesourcery.com>
2802
2803 * lto.c: Include diagnostic-core.h instead of diagnostic.h.
2804 (read_cgraph_and_symbols, lto_main): Use seen_error.
2805 * Make-lang.in (lto/lto.o): Update dependencies.
2806
7951d88a
EB
28072010-05-27 Eric Botcazou <ebotcazou@adacore.com>
2808
2809 PR lto/44230
2810 * lto.h (lto_eh_personality): New prototype.
2811 * lto.c: Include debug.h.
2812 (first_personality_decl): New static variable.
2813 (lto_materialize_function): Set it to DECL_FUNCTION_PERSONALITY of the
2814 first function for which it is non-null.
2815 (lto_eh_personality_decl): New static variable.
2816 (lto_eh_personality): New function.
2817 * lto-lang.c (LANG_HOOKS_EH_PERSONALITY): Redefine to above function.
2818 * Make-lang.in (lto/lto.o): Add dependency on debug.h.
2819
e12da9c2
SB
28202010-05-26 Steven Bosscher <steven@gcc.gnu.org>
2821
2822 * lto-lang.c: Do not include expr.h.
2823
468194f4
RG
28242010-05-24 Richard Guenther <rguenther@suse.de>
2825
2826 * lto-elf.c (lto_obj_build_section_table): Work around
2827 FreeBSD libelf issue.
2828
bd9eb5da
RG
28292010-05-22 Richard Guenther <rguenther@suse.de>
2830
2831 * lto.c (read_cgraph_and_symbols): Do not collect.
2832
66576e1b
JH
28332010-05-20 Jan Hubicka <jh@suse.cz>
2834
2835 * lto.c (promote_var, promote_fn): New functions.
2836 (lto_promote_cross_file_statics): Compute correctly boundary including
2837 static initializers of readonly vars.
2838
36576655
JH
28392010-05-18 Jan Hubicka <jh@suse.cz>
2840
66576e1b 2841 * lto.c (lto_1_to_1_map): Partition non-inline clones.
36576655
JH
2842 (lto_promote_cross_file_statics): Deal with non-inline clones.
2843
28632d63
JH
28442010-05-18 Jan Hubicka <jh@suse.cz>
2845
2846 * lto.c (lto_materialize_function): Announce function when
2847 reading body; allocate_struct_function only when reading body;
2848 do not finalize local statics; ggc_collect after reading;
2849 do not mark reachable node.
2850 (materialize_cgraph): Do not announce function.
2851
33e42d56
JH
28522010-05-11 Jan Hubicka <jh@suse.cz>
2853
2854 * lto.c (materialize_cgraph): Revert my previous patch.
2855
f6430ea5
KT
28562010-05-11 Kai Tietz <kai.tietz@onevision.com>
2857
2858 * lto-coff.c (IMAGE_FILE_MACHINE_ADM64): Rename to
2859 IMAGE_FILE_MACHINE_AMD64.
2860 * lto-coff.c (IMAGE_FILE_MACHINE_ADM64): Likewise.
2861
0a0b07b7
JH
28622010-05-11 Jan Hubicka <jh@suse.cz>
2863
2864 * lto.c (lto_fixup_decls): Remove global var decls freeing here.
2865 (materialize_cgraph): Add it here.
2866
9a809897
JH
28672010-05-11 Jan Hubicka <jh@suse.cz>
2868
2869 * lto.c (lto_fixup_decls): Free no longer needed lto_global_var_decls
2870 vector.
2871
28722010-05-11 Jan Hubicka <jh@suse.cz>
2873
2874 * lto.c (lto_1_to_1_map): Remove some no longer needed checks.
2875 (lto_promote_cross_file_statics): Never promote DECL_EXTERNAL;
2876 use reachable_from_other_partition_p and
2877 referenced_from_other_partition_p test.
2878
94f64249
KT
28792010-05-11 Kai Tietz <kai.tietz@onevision.com>
2880
2881 * lto-coff.c (validate_file): Add x64-coff support.
2882 * lto-coff.h (IMAGE_FILE_MACHINE_ADM64): New.
2883 (COFF_KNOWN_MACHINES): Add IMAGE_FILE_MACHINE_ADM64.
2884 * lto-lang.c (lto_build_c_type_nodes): Add check for
2885 'long long unsigned int' for x64-windows.
2886 (lto_init): Likewise.
2887
2888
c082f9f3
SB
28892010-05-07 Steven Bosscher <steven@gcc.gnu.org>
2890
2891 * lto.h (struct lto_file_struct): Document offset member.
2892 * lto-endian.h: New file.
2893 * lto-macho.h: New file.
2894 * lto-macho.c: New file.
2895 * Make-lang.in: Add rule for lto-macho.o.
2896
3f8257db 28972010-05-07 Richard Guenther <rguenther@suse.de>
5cd0e96b
RG
2898
2899 PR lto/43857
2900 PR lto/43371
2901 * lang.opt (fresolution): Change to ...
2902 (fresolution=): ... this.
2903 * lto-lang.c (lto_handle_option): Adjust.
2904
48cf395b
RB
29052010-05-07 Richard Guenther <rguenther@suse.de>
2906
2907 * lto.c (DUMPBASE_SUFFIX): Remove.
2908 (lto_execute_ltrans): Move functionality to lto-wrapper.c.
2909 Rename to ...
2910 (lto_write_ltrans_list): ... only output the list of ltrans files.
2911 (lto_maybe_unlink): Remove.
2912 (do_whole_program_analysis): Do not execute LTRANS phase
2913 from here.
2914
afa83c15
L
29152010-05-06 H.J. Lu <hongjiu.lu@intel.com>
2916
2917 * lto-lang.c (lto_handle_option): Add argument kind.
2918
369451ec
JH
29192010-05-05 Jan Hubicka <jh@suse.cz>
2920
48cf395b
RB
2921 * lto.c (lto_promote_cross_file_statics): Compute boundary based on
2922 refs.
369451ec 2923
2f41ecf5
JH
29242010-05-05 Jan Hubicka <jh@suse.cz>
2925
2926 * lto.c (lto_1_to_1_map): Partition only needed nodes.
2927
ace72c88
JH
29282010-04-30 Jan Hubicka <jh@suse.cz>
2929
b9843260
EB
2930 * lto.c (get_filename_for_set): Look for cgraph node and if none found,
2931 use default name.
ace72c88
JH
2932 (lto_wpa_write_files): Write any non-empty partition.
2933
05575e07
JH
29342010-04-30 Jan Hubicka <jh@suse.cz>
2935
2936 * lto.c: Do not attempt to make constant pool references global.
2937
49ba8180
JH
29382010-04-28 Jan Hubicka <jh@suse.cz>
2939
2940 * lto/lto.c (lto_read_in_decl_state): Use GGC.
2941 (lto_wpa_write_files): Announce what we are writting.
2942 (all_file_decl_data): New.
2943 (read_cgraph_and_symbols): Use GGC; correct timevars.
2944 (do_whole_program_analysis): Collect.
2945 * lto/Make-lang.in (lto.o): Fix dependency.
2946 * Makefile.in (GTFILES): Add lto-streamer.h.
2947 * varpool.c (varpool_analyze_pending_decls): Use TV_VARPOOL.
2948 (varpool_assemble_pending_decls): Use VAROUT.
2949 * lto-streamer.h (lto_tree_ref_table): Annotate.
2950 (lto_in_decl_state): Annotate.
2951 (lto_file_decl_data): Annotate.
2952
2942c502
JH
29532010-04-28 Jan Hubicka <jh@suse.cz>
2954
2955 * lto.c (lto_varpool_node_sets): New.
2956 (lto_1_to_1_map): Partition varpool too.
2957 (globalize_context_t, globalize_cross_file_statics,
2958 lto_scan_statics_in_ref_table, lto_scan_statics_in_cgraph_node,
2959 lto_scan_statics_in_remaining_global_vars): Remove.
2960 (lto_promote_cross_file_statics): Rewrite.
2961 (get_filename_for_set): Take vset argument.
2962 (lto_wpa_write_files): Pass around vsets.
2963
3bec79c5
DK
29642010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
2965
2966 PR lto/42776
2967 * Make-lang.in (LTO_OBJS): Use LTO_BINARY_READER instead of
2968 hardcoding 'lto-elf.o'.
2969 ($(LTO_EXE)): Use LTO_USE_LIBELF instead of hardcoding '-lelf'.
2970
2971 * lto-coff.h: New file.
2972 * lto-coff.c: Likewise.
2973
21aac880
RG
29742010-04-26 Richard Guenther <rguenther@suse.de>
2975
2976 * lto.c (lto_fixup_type): Deal with non-type TYPE_CONTEXT.
2977
2cee0101
DK
29782010-04-26 Dave Korn <dave.korn.cygwin@gmail.com>
2979
2980 * lto.h (lto_elf_file_open): Rename prototype from this ...
2981 (lto_obj_file_open): ... to this.
2982 (lto_elf_file_close): Likewise ...
2983 (lto_obj_file_close): ... and likewise.
2984 (lto_elf_build_section_table): Likewise ...
2985 (lto_obj_build_section_table): ... and likewise.
2986 (lto_elf_begin_section): Likewise ...
2987 (lto_obj_begin_section): ... and likewise.
2988 (lto_elf_append_data): Likewise ...
2989 (lto_obj_append_data): ... and likewise.
2990 (lto_elf_end_section): Likewise ...
2991 (lto_obj_end_section): ... and likewise.
2992 * lto.c (lto_file_read): Update references to the above.
2993 (lto_wpa_write_files): Likewise.
2994 (lto_read_all_file_options): Likewise.
2995 (read_cgraph_and_symbols): Likewise.
2996 * lto-lang.c (LANG_HOOKS_BEGIN_SECTION): Likewise.
2997 (LANG_HOOKS_APPEND_DATA): Likewise.
2998 (LANG_HOOKS_END_SECTION): Likewise.
2999 * lto-elf.c (lto_elf_file_open): Rename from this ...
3000 (lto_obj_file_open): ... to this, updating any references.
3001 (lto_elf_file_close): Likewise ...
3002 (lto_obj_file_close): ... and likewise.
3003 (lto_elf_build_section_table): Likewise ...
3004 (lto_obj_build_section_table): ... and likewise.
3005 (lto_elf_begin_section): Likewise ...
3006 (lto_obj_begin_section): ... and likewise.
3007 (lto_elf_append_data): Likewise ...
3008 (lto_obj_append_data): ... and likewise.
3009 (lto_elf_end_section): Likewise ...
3010 (lto_obj_end_section): ... and likewise.
3011
bc58d7e1
JH
30122010-04-21 Jan Hubicka <jh@suse.cz>
3013
3014 * lto.c (lto_fixup_tree): Do not call wpa fixup.
3015 (materialize_cgraph): Likewise.
3016
e792884f
JH
30172010-04-21 Jan Hubicka <jh@suse.cz>
3018
3019 * lto.c (lto_wpa_write_files): Update.
3020 (read_cgraph_and_symbols): Be more verbose.
3021 (materialize_cgraph): Likewise.
3022 (do_whole_program_analysis): Likewise.
3023
c9945504
JH
30242010-04-21 Jan Hubicka <jh@suse.cz>
3025
3026 * lto.c (globalize_cross_file_statics): When function has address taken,
3027 it needs to be public.
3028
a837268b
JH
30292010-04-20 Jan Hubicka <jh@suse.cz>
3030
3031 * lto.c (lto_add_inline_clones): Do not track inlined_decls.
3032 (lto_add_all_inlinees): Likewise.
3033 (lto_wpa_write_files): Likewise.
3034
3b9e5d95
EB
30352010-04-18 Eric Botcazou <ebotcazou@adacore.com>
3036
3037 * lto-lang.c (lto_init): Remove second argument in call to
3038 build_common_tree_nodes.
3039
8ccb78f2
RO
30402010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3041
3042 * lto-elf.c [!HAVE_ELF_GETSHDRSTRNDX] (elf_getshdrstrndx): New
3043 function.
3044
2f9b99e6
EB
30452010-03-09 Eric Botcazou <ebotcazou@adacore.com>
3046
3047 PR bootstrap/43276
3048 * lto-elf.c: Define EM_* constants if not already defined.
3049
bef7d288
EB
30502010-03-03 Eric Botcazou <ebotcazou@adacore.com>
3051
3052 * lto-elf.c (is_compatible_architecture): New static function.
3053 (DEFINE_VALIDATE_EHDR): Use it to validate the architecture.
3054
f68df07c
RG
30552010-02-11 Richard Guenther <rguenther@suse.de>
3056
3057 PR driver/43021
3058 * lto-elf.c (lto_elf_file_open): Handle file@offset case more
3059 appropriately.
3060
3cdea2b4
AH
30612010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
3062
3063 * lto.c (O_BINARY): Define.
3064 (lto_read_section_data): Open file in binary mode.
3065 * lto-elf.c (O_BINARY): Define.
3066 (lto_elf_file_open): Open file in binary mode.
3067
c59449fa
RG
30682010-01-08 Richard Guenther <rguenther@suse.de>
3069
3070 PR lto/42528
3071 * lto-lang.c (lto_handle_option): Handle -f[un]signed-char.
3072 (lto_init): Do not init char_type_node in a standard way
3073 but according to flag_signed_char.
3074
d7fb0a6d
L
30752010-01-03 H.J. Lu <hongjiu.lu@intel.com>
3076
3077 PR lto/41564
3078 * lto.c (DUMPBASE_SUFFIX): New.
3079 (lto_execute_ltrans): Append a sequence number to -dumpbase
3080 for LTRANS.
3081
78ce4053
L
30822010-01-02 H.J. Lu <hongjiu.lu@intel.com>
3083
3084 PR lto/42580
3085 * lto-elf.c (lto_elf_file_open): Stop if the command line
3086 option file is missing.
3087
2a71eb48
RG
30882009-12-15 Richard Guenther <rguenther@suse.de>
3089
3090 * lto.c (lto_fixup_field_decl): Fixup DECL_FIELD_OFFSET.
3091 (lto_post_options): Do not disable debuginfo.
3092
a818bca1
DG
30932009-12-14 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
3094
3095 * Make-lang.in ($(LTO_EXE)): Use $(LINKER).
3096
e7d00517
RG
30972009-12-11 Richard Guenther <rguenther@suse.de>
3098
3099 PR lto/42037
3100 * lto.c (lto_resolution_read): Properly grow the vector.
3101
1ab53893
RG
31022009-12-11 Richard Guenther <rguenther@suse.de>
3103
3104 PR lto/41915
3105 * lto-lang.c (lto_init_options): Initialize flag_complex_method
3106 to the C99 default. Do not set flag_unit_at_a_time.
3107
0f900dfa
JJ
31082009-11-28 Jakub Jelinek <jakub@redhat.com>
3109
3110 * lto-lang.c (handle_nonnull_attribute): Remove unused attr_arg_num
3111 variable.
3112
92fa7608
RAE
31132009-11-19 Rafael Avila de Espindola <espindola@google.com>
3114
3115 PR bootstrap/42096
3116 * lto-elf.c (lto_elf_file_open): Use lto_parse_hex.
3117 * lto.c (lto_parse_hex): New.
3118 (lto_resolution_read): Use lto_parse_hex.
3119 * lto.h (lto_parse_hex): New.
3120
9870fe4f
RAE
31212009-11-17 Rafael Avila de Espindola <espindola@google.com>
3122
3123 * lto-elf.c (lto_file_init): Add offset argument.
3124 (lto_elf_file_open): Record the offset.
3125 * lto.c (lto_resolution_read): Change file_name into a lto_file
3126 argument. Check offsets.
3127 (lto_file_read): Update call to lto_resolution_read.
3128 * lto.h (lto_file_struct): Add the offset field.
3129
1b70729f
RAE
31302009-11-16 Rafael Avila de Espindola <espindola@google.com>
3131
3132 * lto-elf.c (lto_elf_file_open): Use strtoll to parse the offset.
3133
0e3776db
JH
31342009-11-14 Jan Hubicka <jh@suse.cz>
3135
3136 * lto.c (read_cgraph_and_symbols): Set also ipa_transforms_to_apply.
3137
06bd7f56
RAE
31382009-11-12 Rafael Avila de Espindola <espindola@google.com>
3139
3140 * lang.opt (fresolution): Renamed from resolution.
3141 * lto-lang.c (lto_handle_option): Handle new option name.
3142 * lto.c (lto_resolution_read): Add more checks. Discard rest of line.
3143
7e9dc421
RG
31442009-11-04 Richard Guenther <rguenther@suse.de>
3145 Rafael Avila de Espindola <espindola@google.com>
3146
3147 * lto-elf.c (lto_elf_build_section_table): Add the base offset.
3148 (lto_elf_file_open): Handle offsets in arguments name@offest.
3149
b207f900
RG
31502009-10-30 Richard Guenther <rguenther@suse.de>
3151
3152 PR lto/41858
3153 * lto.c (lto_file_read): Do not set file_data->fd.
3154 (lto_read_section_data): Use a single-entry file-descriptor cache.
3155 Do not check the result of xmalloc.
3156 (free_section_data): Do not use file_data->fd.
3157 (lto_read_all_file_options): Likewise.
3158
2c928155
RG
31592009-10-22 Richard Guenther <rguenther@suse.de>
3160
3161 * lto.c (lto_fixup_jump_functions): Remove.
3162 (lto_fixup_decls): Do not fixup jump functions.
3163 (read_cgraph_and_symbols): Schedule cgraph merging after
3164 summary reading. Schedule type and decl fixup before
3165 summary reading.
3166
f9c91f8a
RB
31672009-10-22 Richard Guenther <rguenther@suse.de>
3168
3169 * lto.c (lto_fixup_data_t): Remove free_list member.
3170 (lto_fixup_tree): Do not insert into free_list.
3171 (free_decl): Remove.
3172 (lto_fixup_decls): Remove free-list handling.
3173
fb3f88cc
JH
31742009-10-22 Jan Hubicka <jh@suse.cz>
3175
3176 * lto.c (lto_fixup_jump_functions): New function.
3177 (lto_fixup_decls): Use it.
3178
35f1e9f4
RG
31792009-10-16 Richard Guenther <rguenther@suse.de>
3180
3181 PR lto/41715
3182 * lto.c (lto_fixup_tree): Revert last change.
3183
200c8750
RG
31842009-10-14 Richard Guenther <rguenther@suse.de>
3185
3186 * lto.c (lto_fixup_tree): In case the prevailing decl is not
3187 compatible with the one we replace wrap it around a
3188 VIEW_CONVERT_EXPR.
3189
b1b07c92
RG
31902009-10-09 Richard Guenther <rguenther@suse.de>
3191
3192 PR lto/41635
3193 PR lto/41636
3194 * lto.c (read_cgraph_and_symbols): Do not assert we can open
3195 a file.
3196 * lto-elf.c (init_shdr##BITS): Fix i18n problems.
3197 (init_ehdr##BITS): Likewise.
3198
3c2e7d45
JM
31992009-10-08 Joseph Myers <joseph@codesourcery.com>
3200
3201 * lto-elf.c (init_shdr##BITS, lto_elf_begin_section_with_type,
3202 init_ehdr##BITS, lto_elf_file_close): Remove trailing "." from
3203 diagnostics.
3204 * lto-lang.c (lto_post_options): Remove trailing "." from
3205 diagnostics.
3206
0d0bfe17
RG
32072009-10-08 Richard Guenther <rguenther@suse.de>
3208
3209 * lto.c (read_cgraph_and_symbols): Free the gimple type merging
3210 hash tables.
3211
4bedf19a
JM
32122009-10-07 Joseph Myers <joseph@codesourcery.com>
3213
3214 * lto.c: Only include <sys/mman.h> if HAVE_MMAP_FILE.
3215
b20996ff
JH
32162009-10-07 Jan Hubicka <jh@suse.cz>
3217
3218 * lto.c (read_cgraph_and_symbols): Mark functions neccesary only at
3219 ltrans stage; explain why this is needed and should not.
3220
1a735925
RG
32212009-10-05 Richard Guenther <rguenther@suse.de>
3222
3223 PR lto/41552
3224 PR lto/41487
3225 * lto.c (lto_read_decls): Do not register deferred decls.
3226 (read_cgraph_and_symbols): Delay symbol and cgraph merging
3227 until after reading the IPA summaries.
3228
d7f09764
DN
32292009-10-02 Rafael Avila de Espindola <espindola@google.com>
3230
3231 * Make-lang.in (lto/lto-lang.o): Don't depend on lto/common.h.
3232 (lto-lang.c): Don't include lto/common.h.
3233
32342009-10-02 Rafael Avila de Espindola <espindola@google.com>
3235
3236 * Make-lang.in (LTO_OBJS): Remove lto/common.o.
3237 (lto/common.o): Remove.
3238 * common.c: Remove.
3239 * common.h (lto_kind_str): Remove.
3240 (lto_visibility_str): Remove.
3241 (lto_resolution_str): Make it static.
3242
32432009-10-01 Diego Novillo <dnovillo@google.com>
3244
3245 * lto.c (lto_read_decls): Add comment.
3246 Call internal_error instead of gcc_assert.
3247 (lto_resolution_read): Likewise.
3248 (lto_add_all_inlinees): Tidy.
3249 * Make-lang.in: Fix copyright boilerplate.
3250 (lto.pdf): New.
3251 (lto.install-pdf): New.
3252 * lto-tree.h: Fix copyright boilerplate.
3253 * lang-specs.h: Likewise.
3254 Remove ".lto" entry from compilers fragment.
3255 * lto-elf.c: Move inclusion of gelf.h after config.h.
3256 Tidy formatting everywhere.
3257 * lto.h: Fix copyright boilerplate.
3258 Tidy formatting everywhere.
3259 * common.c: Likewise.
3260 * config-lang.in: Likewise.
3261 * common.h: Likewise.
3262 * lto-lang.c: Likewise.
3263
32642009-10-01 Richard Guenther <rguenther@suse.de>
3265
3266 * lto.c (lto_read_section_data): Use plain lseek/read.
3267
32682009-10-01 Richard Guenther <rguenther@suse.de>
3269
3270 * lto.c (LTO_MMAP_IO): Define if we can mmap files and
3271 use sysconf to query the system page size.
3272 (lto_file_read): Implement fallback using stdio.
3273 (free_section_data): Likewise.
3274
32752009-09-29 Diego Novillo <dnovillo@google.com>
3276
3277 * lto-lang.c (lto_init): Really fix call to
3278 build_common_builtin_nodes.
3279
32802009-09-29 Diego Novillo <dnovillo@google.com>
3281
3282 * lto-lang.c (lto_init): Fix call to
3283 build_common_builtin_nodes.
3284
32852009-09-29 Richard Guenther <rguenther@suse.de>
3286
3287 PR lto/40754
3288 * lto-elf.c (init_shdr##BITS): Properly specify alignment
3289 in bytes.
3290 (first_data_block): New static variable.
3291 (lto_elf_append_data): Align the first data block in each
3292 section.
3293
32942009-09-28 Diego Novillo <dnovillo@google.com>
3295
3296 * lto-lang.c: Tidy. Remove stale FIXME lto markers.
3297 * lto.c (strip_extension): New.
3298 (get_filename_for_set): Call it. Do not call make_cwd_temp_file.
3299 (lto_execute_ltrans): Tidy.
3300 Do not pass -fwpa nor -fltrans-* to LTRANS.
3301 * opts.c: Tidy formatting and remove stale FIXME lto markers.
3302 * tree.c (need_assembler_name_p): Call
3303 lang_hooks.decls.may_need_assembler_name_p if set.
3304 * varasm.c (default_binds_local_p_1): Remove check for
3305 flag_ltrans.
3306 * varpool.c (decide_is_variable_needed): Do not test for
3307 in_lto_p.
3308
33092009-09-22 Richard Guenther <rguenther@suse.de>
3310
3311 PR lto/39276
3312 * lto.c (lto_execute_ltrans): Perform ltrans phase manually.
3313 * Make-lang.in: Remove ltrans-driver stuff.
3314 * config-lang.in: Likewise.
3315 * lang.opt (fltrans-driver): Remove.
3316 * lto-lang.c (lto_init_options): Remove code initializing
3317 ltrans_driver.
3318 * ltrans-driver: Remove.
3319
33202009-09-21 Diego Novillo <dnovillo@google.com>
3321
3322 * lto-lang.c (lto_define_builtins): Remove superfluous
3323 calls to targetm.init_builtins and build_common_builtin_nodes.
3324 (lto_init): Add targetm.arm_eabi_unwinder as parameter to
3325 build_common_builtin_nodes.
3326 * lto.c (lto_materialize_function): Do nothing if NODE is a
3327 clone.
3328
33292009-09-03 Diego Novillo <dnovillo@google.com>
3330
3331 * lto-elf.c (validate_file): Replace call to
3332 elf_getshstrndx with call to elf_getshdrstrndx.
3333
33342009-08-19 Richard Guenther <rguenther@suse.de>
3335
3336 * lto-lang.c (lto_init): Merge char_type_node with the
3337 appropriately signed variant.
3338
33392009-08-19 Richard Guenther <rguenther@suse.de>
3340
3341 PR lto/41071
3342 * lto.c (lto_fixup_common): Re-build the pointer-to chain part one.
3343 (lto_fixup_type): Re-build the pointer-to chain part two.
3344
33452009-08-19 Richard Guenther <rguenther@suse.de>
3346
3347 PR lto/41071
3348 * lto.c (lto_fixup_type): Re-build the type variant chain.
3349
33502009-08-19 Richard Guenther <rguenther@suse.de>
3351
3352 PR lto/41071
3353 * lto.c (lto_fixup_constructor): New function.
3354 (lto_fixup_tree): Replace all types. Properly fixup
3355 constructors and constants.
3356
33572009-08-14 Richard Guenther <rguenther@suse.de>
3358
3359 * lto.c (read_cgraph_and_symbols): Exchange TREE_CHAIN use
3360 for DECL_LANG_SPECIFIC.
3361
33622009-08-13 Richard Guenther <rguenther@suse.de>
3363
3364 PR lto/41032
3365 * lto-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define to NULL.
3366
33672009-07-30 Richard Guenther <rguenther@suse.de>
3368
3369 PR lto/40903
3370 * lto.c (read_cgraph_and_symbols): After fixing up decls choose
3371 the largest decl for output and free TREE_CHAIN for further
3372 use.
3373
33742009-07-24 Diego Novillo <dnovillo@google.com>
3375
3376 * Make-lang.in: Add empty lto.install-plugin target.
3377
33782009-07-13 Diego Novillo <dnovillo@google.com>
3379
3380 * lto.c (lto_fixup_tree): Handle IMPORTED_DECL.
3381
33822009-07-11 Richard Guenther <rguenther@suse.de>
3383
3384 * lto-lang.c (lto_write_globals): Wrapup global decls.
3385
33862009-07-10 Richard Guenther <rguenther@suse.de>
3387
3388 * lto-lang.c (lto_init): Allocate one more location to make
3389 BUILTINS_LOCATION correct.
3390
33912009-07-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3392
3393 * lto.c (free_section_data): Cast computed_offset to caddr_t.
3394
33952009-07-06 Diego Novillo <dnovillo@google.com>
3396
3397 * lto.c (lto_fixup_type): Fixup TYPE_SIZE and
3398 TYPE_SIZE_UNIT.
3399
34002009-07-06 Diego Novillo <dnovillo@google.com>
3401
3402 * lto.c (preload_common_nodes): Remove.
3403 (lto_read_in_decl_state): Call lto_streamer_cache_get.
3404 (lto_read_decls): Call lto_data_in_create and
3405 lto_data_in_delete.
3406 (free_decl): Do not call ggc_free.
3407 (lto_main): Call lto_init_reader.
3408 * lto-lang.c (lto_type_for_size): Handle intTI_type_node.
3409 (lto_init): Initialize main_identifier_node if needed.
3410 Make ptrdiff_type_node be integer_type_node.
3411
34122009-06-19 Diego Novillo <dnovillo@google.com>
3413
3414 * lto.c: Remove code guarded by #ifdef LTO_STREAM_DEBUGGING.
3415 Remove code guarded by #ifdef GLOBAL_STREAMER_TRACE.
3416 Remove code guarded by #ifdef LOCAL_TRACE.
3417
34182009-06-18 Diego Novillo <dnovillo@google.com>
3419
3420 * lto.c: Update license to GPLv3.
3421 * lto-elf.c: Likewise.
3422 * common.c: Likewise.
3423 * lto-lang.c: Likewise.
3424 * lto.h: Remove superfluous include files. Update all
3425 users.
3426
34272009-06-17 Diego Novillo <dnovillo@google.com>
3428
3429 * lto.c (read_cgraph_and_symbols): Call input_cgraph.
3430
34312009-06-02 Diego Novillo <dnovillo@google.com>
3432
3433 * lto.c (lto_1_to_1_map): Ignore nodes that have not been
3434 read in.
3435 (materialize_cgraph): Only materialize nodes that have a
3436 representation on file.
3437
34382009-06-01 Diego Novillo <dnovillo@google.com>
3439
3440 * lto-lang.c (lto_handle_option): Hanlde OPT_Wabi.
3441
34422009-05-31 Diego Novillo <dnovillo@google.com>
3443
3444 * lto-lang.c (lto_type_for_mode): Handle all the modes
3445 handled in c_common_type_for_mode.
3446
34472009-05-21 Diego Novillo <dnovillo@google.com>
3448
3449 * lto-elf.c: Always include <gelf.h>.
3450 * config-lang.in (target_libs): Remove.
3451 (build_by_default): Set to no.
3452
34532009-05-15 Diego Novillo <dnovillo@google.com>
3454
3455 * lto.c (lto_materialize_function): Assert that DECL is
3456 not a builtin.
3457 (materialize_cgraph): Don't try to materialize builtin
3458 functions.
3459 * lto-section-out.c (write_symbol_vec): Do not write
3460 builtin functions.
3461
34622009-05-13 Diego Novillo <dnovillo@google.com>
3463
3464 * lto-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define.
3465
34662009-05-07 Diego Novillo <dnovillo@google.com>
3467
3468 * lto.c (lto_resolution_read): Add type casts for C++ warnings.
3469 (LTO_REGISTER_TYPE_AND_FIXUP_SUBTREE): Define.
3470 (lto_fixup_type): Call it for TYPE_POINTER_TO,
3471 TYPE_REFERENCE_TO, TYPE_CONTEXT and TYPE_CANONICAL.
3472 (lto_fixup_tree): Call gimple_register_type when *TP is a
3473 type.
3474 (lto_main): Call bitmap_obstack_initialize.
3475
34762009-04-22 Diego Novillo <dnovillo@google.com>
3477
3478 * lto.c (free_section_data): Tidy.
3479 (lto_1_to_1_map): Tidy.
3480 (lto_add_all_inlinees): Tidy.
3481 (prefix_name_with_star): New.
3482 (get_filename_for_set): New.
3483 (lto_wpa_write_files): Call cgraph_node_set_needs_ltrans_p
3484 to determine what cgraph node sets to write.
3485 Call get_filename_for_set to compute temporary file
3486 names.
3487 (lto_execute_ltrans): Do not execute LTRANS on files with
3488 names that start with '*'.
3489 Move logic to execute LTRANS together so that LTRANS is
3490 invoked only if there are any files to compile.
3491 (do_whole_program_analysis): Only remove output files
3492 that do not start with '*'.
3493
34942009-04-06 Diego Novillo <dnovillo@google.com>
3495
3496 * lto-lang.c (lto_post_options): Set flag_excess_precision_cmdline.
3497 * lto.c (read_cgraph_and_symbols): Set cgraph_function_flags_ready.
3498 (lto_add_all_inlinees): Tidy.
3499
35002009-03-26 Diego Novillo <dnovillo@google.com>
3501
3502 * lto.c: Include gimple.h.
3503 (lto_read_in_decl_state): Call gimple_register_type for
3504 every type in every stream.
3505 (lto_fixup_common): Call gimple_register_type if T has a
3506 type.
3507 (do_whole_program_analysis): Call print_lto_report.
3508 (lto_main): Call print_lto_report after cgraph_optimize.
3509 * Make-lang.in (lto.o): Add dependency on GIMPLE_H.
3510
35112009-03-24 Diego Novillo <dnovillo@google.com>
3512
3513 * Make-lang.in (lto-lang.o): Add dependency on TARGET_H and EXPR_H.
3514 (lto.o): Add dependency on GIMPLE_H.
3515
35162009-03-10 Simon Baldwin <simonb@google.com>
3517
3518 * lto.c (lto_read_all_file_options): Close any open file descriptor
3519 contained in file_data before freeing.
3520
35212009-02-24 Rafael Avila de Espindola <espindola@google.com>
3522
3523 * lto.c (lto_add_inline_clones): Don't add the master clone. Check
3524 for a decl in the original bitmap, not a node.
3525 (lto_add_all_inlinees): Remove original nodes that are not needed.
3526 (lto_scan_statics_in_cgraph_node): Don't care if the node is the master.
3527
35282009-02-24 Diego Novillo <dnovillo@google.com>
3529
3530 * lto.c (lto_materialize_function): Update
3531 lto_stats.num_function_bodies.
3532 (get_section_data): Initialize *LEN to 0.
3533 (lto_1_to_1_map): Update lto_stats.num_cgraph_partitions.
3534 (lto_wpa_write_files): Update lto_stats.num_cgraph_nodes.
3535 Update lto_stats.num_output_files.
3536 (read_cgraph_and_symbols): Update lto_stats.num_input_files.
3537 (materialize_cgraph): Update lto_stats.num_input_cgraph_nodes.
3538 (lto_main): Initialize lto_stats.
3539 If flag_lto_report is set, call print_lto_report.
3540
35412009-02-19 Diego Novillo <dnovillo@google.com>
3542
3543 Revert
3544
3545 2009-02-19 Rafael Avila de Espindola <espindola@google.com>
3546
3547 * lto.c (lto_add_inline_clones): Don't add the
3548 master clone. Check for a decl in the original
3549 bitmap, not a node.
3550 (lto_add_all_inlinees): Remove original nodes
3551 that are not needed.
3552 (lto_scan_statics_in_cgraph_node): Don't care if
3553 the node is the master.
3554 (lto_promote_cross_file_statics): Use a new
3555 context.seen_node_decls for each set
3556
35572009-02-19 Rafael Avila de Espindola <espindola@google.com>
3558
3559 * lto.c (lto_add_inline_clones): Don't add the master clone. Check
3560 for a decl in the original bitmap, not a node.
3561 (lto_add_all_inlinees): Remove original nodes that are not needed.
3562 (lto_scan_statics_in_cgraph_node): Don't care if the node is the master.
3563 (lto_promote_cross_file_statics): Use a new context.seen_node_decls
3564 for each set
3565
35662009-02-18 Diego Novillo <dnovillo@google.com>
3567
3568 * lto.c (lto_wpa_write_files): Use timers TV_WHOPR_WPA
3569 and TV_WHOPR_WPA_IO.
3570 (lto_execute_ltrans): Use timer TV_WHOPR_WPA_LTRANS_EXEC.
3571 (read_cgraph_and_symbols): Use timer TV_IPA_LTO_DECL_IO.
3572 (materialize_cgraph): Use timer TV_IPA_LTO_GIMPLE_IO.
3573 Use timer TV_WHOPR_WPA or TV_WHOPR_LTRANS or TV_LTO
3574 depending on command line flags.
3575 (do_whole_program_analysis): Use timer TV_WHOPR_WPA.
3576 (lto_main): Remove timer uses.
3577
35782009-02-18 Rafael Avila de Espindola <espindola@google.com>
3579
3580 * lto.c (lto_materialize_function): Don't set DECL_EXTERN to 0.
3581 (lto_wpa_write_files): Update calls to renamed functions.
3582
35832009-02-17 Diego Novillo <dnovillo@google.com>
3584
3585 PR 39203
3586 * lto-lang.c (lto_post_options): Disable -fwhole-program
3587 when running LTRANS.
3588
35892009-02-10 Diego Novillo <dnovillo@google.com>
3590
3591 * lto.c (read_cgraph_and_symbols): Fix comment.
3592
35932009-02-10 Diego Novillo <dnovillo@google.com>
3594
3595 * lto.c (read_cgraph_and_symbols): Read options from all
3596 IL files.
3597
35982009-02-10 Diego Novillo <dnovillo@google.com>
3599
3600 * lto.c (read_cgraph_and_symbols): Factor out of lto_main.
3601 (materialize_cgraph): Likewise.
3602 (do_whole_program_analysis): Likewise.
3603 (lto_main): Call read_cgraph_and_symbols,
3604 materialize_cgraph and do_whole_program_analysis.
3605
36062009-02-10 Simon Baldwin <simonb@google.com>
3607
3608 * lto.c: Include lto-opts.h.
3609 * (lto_main): Clear file options at loop start, read any saved
3610 options from the first file handled, and re-issue options.
3611 * Makefile.in (lto.o): Add dependency on lto-opts.h.
3612
36132009-02-02 Diego Novillo <dnovillo@google.com>
3614
3615 * lto.c (lto_main): Stop LTO_TIMER and use
3616 TV_WHOPR_WPA_LTRANS_EXEC when launching LTRANS.
3617
36182009-01-30 H.J. Lu <hongjiu.lu@intel.com>
3619
3620 PR lto/38995
3621 * lto-elf.c (init_shdr##BITS): Set the sh_addralign field
3622 to POINTER_SIZE.
3623
36242009-01-29 Ramana Radhakrishnan <ramana.r@gmail.com>
3625
3626 * Make-lang.in (LTO_EXE): Link with all
3627 BACKENDLIBS and not only GMPLIBS
3628
36292009-01-28 H.J. Lu <hongjiu.lu@intel.com>
3630
3631 PR bootstrap/38992
3632 * lto-elf.c: Include gelf.h instead of libelf.h.
3633 (lto_elf_file_close): Replace elfx_update_shstrndx with
3634 gelf_getehdr, elf_getscn, gelf_getshdr, gelf_update_shdr and
3635 gelf_update_ehdr.
3636
36372009-01-28 H.J. Lu <hongjiu.lu@intel.com>
3638
3639 PR middle-end/38996
3640 * lto-elf.c (DEFINE_INIT_EHDR): Initialize e_version.
3641
36422009-01-26 Diego Novillo <dnovillo@google.com>
3643
3644 * lto-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Update.
3645
36462009-01-26 Diego Novillo <dnovillo@google.com>
3647
3648 * lto-lang.c (lto_types_compatible_p): Move to gimple.c
3649 and rename into gimple_types_compatible_p.
3650
36512009-01-12 Rafael Avila de Espindola <espindola@google.com>
3652
3653 * lto-lang.c (lang_hooks): Remove the const qualifier.
3654
36552009-01-06 Diego Novillo <dnovillo@google.com>
3656
3657 * ltrans-driver: Mark 'all' target as phony.
3658
36592008-12-31 Diego Novillo <dnovillo@google.com>
3660
3661 * ltrans-driver: Execute a NOP action for target 'all'.
3662
36632008-12-19 Diego Novillo <dnovillo@google.com>
3664
3665 * lto.c (lto_1_to_1_map): Tidy.
3666
36672008-12-19 Diego Novillo <dnovillo@google.com>
3668
3669 * lto-elf.c (lto_elf_file_open): When FILENAME cannot
3670 be opened, show its name.
3671 * ltrans-driver: If $verbose is set, do not use parallelism.
3672
36732008-12-17 Rafael Avila de Espindola <espindola@google.com>
3674
3675 * lto.c (lto_fixup_function): New.
3676 (lto_fixup_tree): Call lto_fixup_function.
3677
36782008-12-14 Doug Kwan <dougkwan@google.com>
3679
3680 * lto.c (lto_1_to_1_map): Create a cgraph node set for any global
3681 variables if there is no function.
3682
36832008-12-10 Simon Baldwin <simonb@google.com>
3684
3685 * ltrans-driver: Always run make in silent mode, to avoid make's
3686 trace on stdout interfering with lto-wrapper output.
3687
36882008-12-10 Doug Kwan <dougkwan@google.com>
3689
3690 * lto.c (lto_add_inline_clones): Do not force master clones of
3691 inlined functions already in SET to be static inline.
3692
36932008-12-04 Doug Kwan <dougkwan@google.com>
3694
3695 * lto.c (globalize_context_t): New type to store states in
3696 globalization of cross-file statics.
3697 (globalize_cross_file_statics): New.
3698 (lto_scan_statics_in_ref_table): Walk tree to look for reachable
3699 static decls that need to be fixed up.
3700 (lto_scan_statics_in_cgraph_node): Change call interface to use
3701 a globalize_context_t CONTEXT for all states used.
3702 (lto_scan_statics_in_remaining_global_vars): New.
3703 (lto_promote_cross_file_statics): Use new call interface of
3704 LTO_SCAN_STATICS_IN_CGRAPH_NODE. Handle remaining externally
3705 visible vars in the last set.
3706
37072008-12-03 Diego Novillo <dnovillo@google.com>
3708
3709 * lto.c (lto_fixup_tree): Do not emit an error when
3710 PREVAILING throw but T doesn't.
3711
37122008-12-02 Doug Kwan <dougkwan@google.com>
3713
3714 * lto.c (lto_scan_statics_in_ref_table): New function factored out
3715 from code in ...
3716 (lto_scan_statics_in_cgraph_node): Handle both file-scope static
3717 variables and functions.
3718 (lto_promote_cross_file_statics): Rename bitmaps to SEEN_DECLS
3719 and GLOBAL_DECLS from SEEN_VARS and GLOBAL_VARS.
3720
37212008-11-29 Diego Novillo <dnovillo@google.com>
3722
3723 * lto.c: Include timevar.h.
3724 (lto_materialize_function): Tidy. Add comments.
3725 (lto_wpa_write_files): Tidy.
3726 (lto_execute_ltrans): Tidy.
3727 (lto_main): Add local variable LTO_TIMER. Initialize it
3728 to one of TV_WHOPR_WPA, TV_WHOPR_LTRANS or TV_LTO.
3729 Start and stop the timer.
3730 Tidy comments.
3731 * Make-lang.in (lto.o): Add dependency on timevar.h.
3732 * ltrans-driver: React to -v and -save-temps.
3733 Use simple heuristic to determine how much parallelism to
3734 use when executing make.
3735
37362008-11-12 Doug Kwan <dougkwan@google.com>
3737
3738 * lto.c (lto_bitmap_obstack): Remove var.
3739 (lto_materialize_function): Do nothing instead of marking function
3740 body in file if flag_wpa is true.
3741 (lto_add_all_inlinees): Use bitmap functions in lto-utils.c.
3742 (lto_scan_statics_in_cgraph_node): New function.
3743 (lto_promote_cross_file_statics): Same.
3744 (lto_wpa_write_files): Call lto_promote_cross_file_statics.
3745 Use bitmap functions in lto-utils.c. Remove unsued label OUT.
3746 * Make-lang.in (lto/lto.o): Add lto-utils.h to dependency list.
3747
37482008-11-09 Diego Novillo <dnovillo@google.com>
3749
3750 * lto/lto.c (lto_fixup_tree): Change error message locus
3751 information to include location of mismatching
3752 declaration.
3753 Use TREE_NO_WARNING to avoid repeated messages.
3754 (lto_main): If lto_fixup_decls emitted any errors, exit.
3755 * lto/lto-lang.c: Don't include libfuncs.h and except.h
3756 (lto_init_options): Don't enable exceptions by default.
3757 (lto_eh_runtime_type): Move to lto-function-in.c
3758 (lto_init_eh): Likewise.
3759 (lto_init): Don't call lto_init_eh.
3760 * lto/Make-lang.in (lto-lang.o): Remove dependency on
3761 libfuncs.h and except.h.
3762
37632008-10-30 Diego Novillo <dnovillo@google.com>
3764
3765 * lto.c (lto_read_decls): Declare debug_main only if
3766 LTO_STREAM_DEBUGGING is enabled.
3767
37682008-10-30 Simon Baldwin <simonb@google.com>
3769
3770 * lto.c (lto_wpa_write_files): Create intermediate files with
3771 make_cwd_temp_file().
3772 (lto_maybe_unlink): New. Delete intermediate WPA files unless
3773 WPA_SAVE_LTRANS is set.
3774 (lto_main): Call lto_maybe_unlink() for intermediate WPA files.
3775 * ltrans-driver: Do not strip directory from output files.
3776
37772008-10-29 Doug Kwan <dougkwan@google.com>
3778
3779 * lto.c (free_decl): Call lto_symtab_clear_resolution when freeing
3780 DECL.
3781 * Make-lang.in (LTO_OBJS): Remove lto/lto-symtab.o
3782 (lto/lto-symtab.o): Remove rule.
3783 * lto-tree.h (struct lang_identifier): Remove LTO specific fields.
3784 (struct lang_decl): Remove RESOLUTION and add DUMMY in struct.
3785 (LANG_IDENTIFIER_CAST, LTO_IDENTIFIER_DECL, LTO_DECL_RESOLUTION):
3786 Remove macros.
3787 lto-symtab.c (File): Move up one level.
3788 lto-lang.c (cgraph.h): Remove include.
3789 (input_overwrite_node, input_node, input_edge, input_cgraph_1,
3790 input_cgraph): Move to lto-cgraph.c in gcc directory above.
3791 (LANG_HOOKS_INPUT_CGRAPH): Remove use of macro.
3792
37932008-10-24 Rafael Espindola <espindola@google.com>
3794
3795 * lto-function-in.c (get_resolution): Return LDPR_PREEMPTED_IR for
3796 non prevailing weak symbols.
3797
37982008-10-24 Rafael Espindola <espindola@google.com>
3799
3800 * lto-lang.c (input_cgraph_1): Iterate over nodes, not cgraph_nodes.
3801
38022008-10-24 Rafael Espindola <espindola@google.com>
3803
3804 * lto-lang.c (input_node): Avoid casts from pointers to ints of
3805 different types.
3806
38072008-10-23 Simon Baldwin <simonb@google.com>
3808
3809 * lto-lang.c (input_node): Save the node reference, rather than the
3810 node pointer, in node->inlined_to.
3811 (input_cgraph_1): Convert node references into node pointers.
3812
38132008-10-22 Diego Novillo <dnovillo@google.com>
3814 Rafael Espindola <espindola@google.com>
3815
3816 * lto.c (lto_resolution_read): Tidy.
3817 * lto-symtab.c (lto_symtab_prevailing_decl): Do not
3818 abort if RET is NULL.
3819
38202008-10-22 Doug Kwan <dougkwan@google.com>
3821
3822 * lto.c (lto_fixup_tree): Check for NOTHROW conflict only if
3823 exceptions flag is given.
3824 * lto-lang.c: (lto_init_options) Set default exceptions flag.
3825 (lto_init_eh): Remove exceptions flag initialization.
3826 (lto_init): Only call lto_init_eh if exceptions flag is set.
3827
38282008-10-21 Diego Novillo <dnovillo@google.com>
3829
3830 * lto.c: Tidy some formatting.
3831 * lto.h: Likewise.
3832
38332008-10-21 Simon Baldwin <simonb@google.com>
3834
3835 * lto-symtab.c: (lto_same_type_p): Types cannot be equal if one of
3836 them is NULL (but not the other).
3837
38382008-10-17 Diego Novillo <dnovillo@google.com>
3839
3840 * ltrans-driver: Divert output from make to a temporary file.
3841 Show it if the call to make failed.
3842
38432008-10-15 Diego Novillo <dnovillo@google.com>
3844
3845 * lto.c (lto_wpa_write_files): Reformat do-while loop.
3846 Do not print TEMP_FILENAME
3847 * ltrans-driver: Call make with -s.
3848
38492008-10-15 Diego Novillo <dnovillo@google.com>
3850
3851 * lto-symtab.c (lto_symtab_merge_decl): Do not force
3852 TREE_STATIC on global symbols.
3853
38542008-10-14 Ollie Wild <aaw@google.com>
3855
3856 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): Remove.
3857 (LTRANS_DRIVER_EXE): Add.
3858 (lto.all.cross): Add LTRANS_DRIVER_EXE.
3859 (lto.all.encap): Add LTRANS_DRIVER_EXE.
3860 (lto.install.common): Remove ltrans-driver.
3861 (lto.mostlyclean): Add LTRANS_DRIVER_EXE.
3862 (LTRANS_DRIVER_EXE): New build rule.
3863 * config-lang.in (compilers): Add ltrans-driver.
3864
38652008-10-14 Diego Novillo <dnovillo@google.com>
3866
3867 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): Disable transformation
3868 of program name.
3869
38702008-10-13 Ollie Wild <aaw@google.com>
3871
3872 * lang-spec.h (@lto): Replace lto1_options with cc1_options.
3873 * lto.c (lto_execute_ltrans): Add "-fno-wpa -fltrans -xlto" to CFLAGS.
3874 * ltrans-driver (LTRANS_FLAGS): Remove.
3875
38762008-10-08 Doug Kwan <dougkwan@google.com>
3877
3878 * lto.c (lto_fixup_tree): Remove ATTRIBUTE_UNUSED from DATA.
3879 Handle new tree codes RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE
3880 and TREE_BINFO. Also move code handling FUNCTION_DECL and VAR_DECL
3881 from lto_fixup_state to here.
3882 (lto_fixup_state): Take an lto_fixup_data_t object DATA instead of
3883 just a free-list. Fix up types also. Move decl merging code to
3884 lto_fixup_tree.
3885 (lto_fixup_state_aux): Change AUX to point to an lto_fixup_data_t
3886 object.
3887 (lto_fixup_decls): Use another pointer set to avoid multiple
3888 walking of nodes except for DECLs to be replaced. Pass an
3889 lto_fixup_data_t object to tree-walker.
3890
38912008-10-08 Rafael Espindola <espindola@google.com>
3892
3893 * lto-symtab.c (lto_symtab_set_resolution): New.
3894 (lto_symtab_merge_decl): Use lto_symtab_set_resolution and
3895 lto_symtab_get_resolution.
3896 (lto_symtab_prevailing_decl): Return decl for non public decls.
3897 (lto_symtab_get_resolution): New.
3898 * lto.c (lto_fixup_tree, lto_fixup_state): Remove unecessary checks.
3899
39002008-10-06 Rafael Espindola <espindola@google.com>
3901
3902 * lto-lang.c: Include cgraph.h.
3903 (input_overwrite_node, input_node, input_edge, input_cgraph_1,
3904 input_cgraph): Moved from lto-cgraph.c.
3905 (LANG_HOOKS_INPUT_CGRAPH): New.
3906
39072008-10-03 Rafael Espindola <espindola@google.com>
3908
3909 * lto.c (lto_fixup_tree, lto_fixup_state): Fix the FIXME.
3910
39112008-10-03 Rafael Espindola <espindola@google.com>
3912
3913 * lto-symtab.c (lto_symtab_overwrite_decl): Remove. Remove all calls.
3914 (lto_symtab_merge_decl): Update LTO_IDENTIFIER_DECL the reflect the
3915 prevailing definition. Don't mark TREE_NOTHROW differences.
3916 * lto.c (lto_fixup_tree): New.
3917 (lto_fixup_state): New.
3918 (lto_fixup_state_aux): New.
3919 (free_decl): New.
3920 (lto_fixup_decls): New.
3921 (lto_main): Call lto_fixup_decls.
3922
39232008-10-02 Ollie Wild <aaw@google.com>
3924
3925 * lang.opt (fltrans): Moved from common.opt. Remove RejectNegative
3926 and Init.
3927 (fwpa): Moved from common.opt. Remove RejectNegative and Init.
3928 * lto-lang.c (lto_post_options): Add validation and fixups for
3929 -fltrans and -fwpa.
3930
39312008-10-02 Rafael Espindola <espindola@google.com>
3932
3933 * lto-symtab.c (lto_symtab_merge_var, lto_symtab_merge_fn,
3934 lto_symtab_merge_decl): Return void.
3935 (lto_symtab_prevailing_decl): New.
3936
39372008-09-30 Rafael Espindola <espindola@google.com>
3938
3939 * lto-symtab.c (lto_symtab_compatible): Remove the check for already
3940 defined symbols.
3941 (lto_symtab_overwrite_decl): Copy LTO_DECL_RESOLUTION.
3942 (lto_symtab_merge_decl): Store symbol resolution in LTO_DECL_RESOLUTION.
3943 Check for already defined symbols.
3944 * lto-tree.h (lang_decl): Remove dummy and add resolution fields.
3945 (LTO_IDENTIFIER_RESOLUTION): Remove.
3946 (LTO_DECL_RESOLUTION): New.
3947
39482008-09-30 Rafael Espindola <espindola@google.com>
3949
3950 * lto.c (lto_read_decls): Use new input_tree signature.
3951
39522008-09-26 Doug Kwan <dougkwan@google.com>
3953
3954 * lto.c (lto_main): Call lto_fixup_nothrow_decls to fix up function
3955 bodies affected by exception attribute merging of DECLs.
3956 * lto-symtab.c (lto_symtab_merge_decl): Handle exception attribute
3957 merging.
3958
39592008-09-25 Rafael Espindola <espindola@google.com>
3960
3961 * Make-lang.in (PLUGIN_API_H, LTO_TREE_H): New.
3962 (lto/lto-lang.o, lto/lto.o, lto/lto-symtab.o) Use LTO_TREE_H.
3963 * lto-symtab.c (lto_symtab_compatible): New.
3964 (lto_symtab_overwrite_decl): New.
3965 (lto_symtab_merge_decl): Refactor to use the above functions
3966 and the resolution from lang_identifier.
3967 * lto-tree.h: Include plugin-api.h.
3968 (lang_identifier): Add resolution.
3969 (LTO_IDENTIFIER_RESOLUTION): New.
3970
39712008-09-25 Ollie Wild <aaw@google.com>
3972
3973 * lang.opt (fltrans-output-list=): New option.
3974 * lto.c (lto_execute_ltrans): Output file names to ltrans_output_list.
3975
39762008-09-25 Rafael Espindola <espindola@google.com>
3977
3978 * lto.c (lto_resolution_read): Initialize ret;
3979
39802008-09-24 Ollie Wild <aaw@google.com>
3981
3982 * lto.c (sys/mman.h): Move include.
3983 (lto_wpa_write_files): Return a list of written files.
3984 (lto_execute_ltrans): New function.
3985 (lto_main): Call lto_execute_ltrans.
3986 (ltrans-driver): New file.
3987 * lto-lang.c (DEFAULT_LTRANS_DRIVER): New macro.
3988 (DEAULT_LTRANS_DRIVER_LEN): New macro.
3989 (lto_init_options): Initialize ltrans_driver.
3990 (lto_handle_option): Fix incorrect default output value.
3991 * lang.opt (fltrans-driver=): New option.
3992 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): New variable.
3993 (lto.install-common): Add lto/ltrans-driver.
3994
39952008-09-24 Rafael Espindola <espindola@google.com>
3996
3997 * Make-lang.in (LTO_OBJS): Add lto/common.o.
3998 (lto/lto.o): Depend on lto/common.h.
3999 (lto/common.o): New.
4000 * lang.opt (resolution): New.
4001 * lto-lang.c (resolution_file_name): New.
4002 (lto_handle_option): Handle OPT_resolution.
4003 * lto-symtab.c (lto_symtab_merge_decl): Add a resolution argument.
4004 (lto_symtab_merge_var,lto_symtab_merge_fn): Add a resolution argument.
4005 pass it to lto_symtab_merge_decl.
4006 * lto.c: Include common.h.
4007 (lto_read_decls): Add resolutions and resolutions_size arguments.
4008 Initialize data_in.globals_resolution and
4009 data_in.globals_resolution_size.
4010 (index_and_symbol_resolution): New.
4011 (lto_resolution_read): New.
4012 (lto_file_read): Add argument resolution_file.
4013 Read resolution.
4014 * lto.h (resolution_file_name): New.
4015
40162008-09-23 Rafael Espindola <espindola@google.com>
4017
4018 * common.c: Update description.
4019 * common.h: Update description.
4020
40212008-09-23 Rafael Espindola <espindola@google.com>
4022
4023 * common.c: Moved from lto-plugin.
4024 * common.h: Moved from lto-plugin.
4025
40262008-09-22 Doug Kwan <dougkwan@google.com>
4027
4028 * lto.c (VEC(bitmap,heap)): Declare.
4029 (lto_materialize_function): Handle WAP mode specially.
4030 (lto_add_inline_clones): New.
4031 (lto_add_all_inlinees): Changle algorithm and to use bitmaps. Also
4032 return a bitmap of inlined decls.
4033 (lto_wpa_write_files): Handle all DECLs brought in by inlining.
4034 (lto_main): Call reset_inline_failed to reset inlining states.
4035 Check call-graph after WPA inlining.
4036 * lto-lang.c (lto_init): Do not clear flag_generate_lto
4037 unconditionally.
4038
40392008-09-19 Doug Kwan <dougkwan@google.com>
4040
4041 lto.c (lto_main): Remove unsued wrapper code.
4042 lang-specs.h (@lto): Use lto1_options instead of cc1_options.
4043
40442008-09-19 Rafael Espindola <espindola@google.com>
4045
4046 * lto-symtab.c: Include lto-tree-in.h.
4047 * lto-tree.h (lto_symtab_merge_var, lto_symtab_merge_fn): Remove.
4048 * lto.h (lto_symtab_merge_var, lto_symtab_merge_fn): Remove
4049 * Make-lang.in (lto/lto-symtab.o): Add lto-tree-in.h.
4050
40512008-09-17 Paolo Bonzini <bonzini@gnu.org>
4052 Rafael Avila de Espindola <espindola@google.com>
4053
4054 * lto-lang.c (COMPOUND_LITERAL_EXPR_DECL_STMT,
4055 COMPOUND_LITERAL_EXPR_DECL): Remove.
4056 (emit_local_var): Remove.
4057 (lto_expand_expr): Remove.
4058 (lto_staticp): Remove.
4059 (LANG_HOOKS_EXPAND_EXPR): Remove.
4060 (LANG_HOOKS_STATICP): Remove.
4061
40622008-09-11 Diego Novillo <dnovillo@google.com>
4063
4064 * lto-lang.c: Include except.h and libfuncs.h.
4065 (lto_init_eh): New.
4066 (lto_init): Call it.
4067 Set flag_generate_lto to 0.
4068 * Make-lang.in (lto-lang.o): Add dependency on except.h
4069 and libfuncs.h.
4070
40712008-09-09 Bill Maddox <maddox@google.com>
4072
4073 * lto-lang.c: Include header file expr.h.
4074 (COMPOUND_LITERAL_EXPR_DECL_STMT,
4075 COMPOUND_LITERAL_EXPR_DECL): Copied from c-common.h.
4076 (emit_local_var): Copied from c-semantics.c.
4077 (lto_expand_expr, lto_staticp): Copied from c_expand_expr
4078 and c_staticp in c-common.c.
4079 (LANG_HOOKS_EXPAND_EXPR,LANG_HOOKS_STATICP): Redefined.
4080
40812008-09-08 Diego Novillo <dnovillo@google.com>
4082
4083 * lto-lang.c (lto_global_bindings_p): Return 1 during
4084 IPA passes.
4085
40862008-09-07 Diego Novillo <dnovillo@google.com>
4087
4088 * lto.c: Tidy formatting.
4089
40902008-08-04 Bill Maddox <maddox@google.com>
4091
4092 * lto-symtab.c (lto_symtab_merge_decl): Add comment.
4093
40942008-09-03 Doug Kwan <dougkwan@google.com>
4095
4096 lto.c (lto_add_all_inlinees): Reset FAILED_REASON of edges to
4097 CIF_OK instead of NULL.
4098
40992008-09-02 Diego Novillo <dnovillo@google.com>
4100 Simon Baldwin <simonb@google.com>
4101
4102 * lto-lang.c (lto_type_for_size): Rewrite. Adapt from
4103 c_common_type_for_size.
4104 (lto_type_for_mode): Remove ATTRIBUTE_UNUSED markers.
4105 (lto_init): Call linemap_add.
4106 (signed_and_unsigned_types): Remove.
4107
41082008-08-29 Diego Novillo <dnovillo@google.com>
4109
4110 * lto-lang.c (handle_noreturn_attribute): New local function.
4111 (handle_const_attribute): New local function.
4112 (handle_malloc_attribute): New local function.
4113 (handle_pure_attribute): New local function.
4114 (handle_novops_attribute): New local function.
4115 (handle_nonnull_attribute): New local function.
4116 (handle_nothrow_attribute): New local function.
4117 (handle_sentinel_attribute): New local function.
4118 (handle_type_generic_attribute): New local function.
4119 (handle_format_attribute): New local function.
4120 (handle_format_arg_attribute): New local function.
4121 (lto_attribute_table): Declare.
4122 (lto_format_attribute_table): Declare.
4123 (lto_init_attributes): New local function.
4124 (lto_define_builtins): Call it.
4125 Call targetm.init_builtins and build_common_builtin_nodes.
4126 (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Define.
4127 (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Define.
4128
41292008-08-28 Diego Novillo <dnovillo@google.com>
4130
4131 * Make-lang.in (lto-lang.o): Replace tree-gimple.h with
4132 $(GIMPLE_H).
4133 (lto-symtab.o): Add dependency on $(GIMPLE_H).
4134 * lto-lang.c: Include gimple.h instead of tree-gimple.h.
4135 * lto-symtab.c: Include gimple.h.
4136 * lto-tree.h (chain_next): Replace GENERIC_NEXT with
4137 TREE_CHAIN.
4138
41392008-08-27 Doug Kwan <dougkwan@google.com>
4140
4141 * lto.c (vec.h, bitmap.h, pointer-set.h, ipa-prop.h, ggc.h,
4142 gt-lto-lto.h): New includes.
4143 (lto_materialize_function): Do not read in function body in WPA mode.
4144 Format a line to fit in 80 columns.
4145 (lto_cgraph_node_sets): New garbage collected variable.
4146 (lto_1_to_1_map, lto_add_all_inlinees, lto_wpa_write_files):
4147 New functions.
4148 (lto_main): Initialize bitmap obstack. Add code to handle WPA mode.
4149 * Make-lang.in (LTO_H): Replace filename lto-section-in.h with
4150 variable LTO_SECTION_IN_H.
4151 (lto/lto.o): Include gt-lto-lto-c.h ggc.h ,VEC_H, BITMAP_H,
4152 pointer-set.h and IPA_PROP_H. Also replace filename lto-section-in.h
4153 with variable LTO_SECTION_IN_H.
4154 * config-lang.in (gtfiles): Add lto/lto.c.
4155 * lto-symtab.c (lto_symtab_merge_decl): Set DECL_CONTEXT of
4156 merged DECL_RESULT correctly.
4157
41582008-08-26 Bill Maddox <maddox@google.com>
4159
4160 * lto-lang.c Include tree-gimple.h.
4161 (lto_mark_addressable): Call mark_addressable rather than
4162 asserting.
4163 (lto_post_options): Suppress debug info generation.
4164 * Make-lang.in: Add dependency of lto-lang.o on tree-gimple.h.
4165
3f8257db 41662008-08-25 Bill Maddox <maddox@google.com>
d7f09764
DN
4167
4168 * lto-symtab.c (lto_symtab_merge_decl): Remove a suspect
4169 assertion and leave an explanatory comment in its place.
4170
41712008-08-21 Doug Kwan <dougkwan@google.com>
4172
4173 * lto.c (preload_common_nodes): Call lto_get_common_nodes to get a list
4174 of common nodes instead of computing locallly.
4175 (lto_read_in_decl_state): New.
4176 (lto_read_decls): Change code for udpate in struct lto_decl_header.
4177 Read global and per-function in-decl states.
4178 * Make-lang.in (LTO_H): Update dependency.
4179 (lto/lto.o): Same.
4180 (lto-symtab.c): Merge (revision 139039)
4181 * lto-symtab.c (lto_symtab_merge_decl): Merge DECL_RESULT.
4182
41832008-08-21 Rafael Espindola <espindola@google.com>
4184
4185 * config-lang.in (target_libs): New.
4186
41872008-08-20 Bill Maddox <maddox@google.com>
4188
4189 * lto.c (current_lto_file): Remove GTY marker from static
4190 variable. Remove include of file gt-lto-lto.h.
4191 * Make-lang.in: Remove dependency of lto/lto.o on
4192 gt-lto-lto.h.
4193 * lto-elf.c (lto_file_close): Removed.
4194 (lto_elf_file_open): Use XCNEW instead of GGC_CNEW to
4195 allocate lto_elf_file object.
4196 (lto_elf_file_close): Free lto_elf_file object after close.
4197 * lto.h (struct lto_file_struct): Remove GTY marker.
4198 * config-lang.in: Remove lto/lto.h and lto/lto.c from
4199 gtfiles.
4200
42012008-08-20 Bill Maddox <maddox@google.com>
4202
4203 * lto.c (lto_read_decls): Provide dummy argument to input_tree
4204 to conform to its new signature.
4205 * lto-symtab.c (lto_symtab_merge_decl): Do not invoke ggc_free
4206 on discarded node here, now called in global_vector_fixup.
4207
42082008-08-09 Bill Maddox <maddox@google.com>
4209
4210 * lto.c (preload_common_nodes): Verify that fileptr_type_node
4211 has not been set to a front-end-specific value.
4212
42132008-08-05 Doug Kwan <dougkwan@google.com>
4214
4215 * Make-lang.in (lto-symtab.o): Add missing dependencies to fix
4216 build breakage.
4217
42182008-07-30 Bill Maddox <maddox@google.com>
4219
4220 * lto.c (lto_materialize_function): Call lto_original_decl_name.
4221 Remove obsolete comments.
4222 (lto_read_decls): Remove initialization of deleted field data_in.global.
4223 Tidy up comments.
4224 (lto_main): Remove redundant initialization of section_hash_table.
4225 * lto-elf.c: Removed obsolete comments.
4226 * lto.h: Tidy up comments.
4227 * lto-symtab.c (lto_least_common_multiple): New function.
4228 (lto_symtab_merge_decl): Merge variable alignments in some cases.
4229 Tidy up comments.
4230
42312008-07-25 Diego Novillo <dnovillo@google.com>
4232 Bill Maddox <maddox@google.com>
4233
4234 * lto.c: Re-order include files.
4235 Include lto-section-out.h.
4236 (preload_common_nodes): Add debugging output.
4237 Add new local INDEX_TABLE.
4238 Call preload_common_node.
4239 * Make-lang.in (lto.o): Add dependency on lto-section-out.h
4240
42412008-07-13 Bill Maddox <maddox@google.com>
4242
4243 * lto.c (lto_read_decls): Cast pointer to const char * to avoid
4244 unwanted scaling during pointer addition.
4245
42462008-07-11 Bill Maddox <maddox@google.com>
4247 Diego Novillo <dnovillo@google.com>
4248
4249 * lto.c (lto_read_decls): Fix C++ compatibility warnings.
4250 Make code const-correct.
4251 (lto_file_read): Fix C++ compatibility warnings.
4252 (lto_read_section_data): Fix C++ compatibility warnings.
4253 (lto_get_section_data): Use CONST_CAST to avoid warning when
4254 const pointer passed to free.
4255 * lto-elf.c (lto_elf_build_section_table): Fix C++
4256 compatibility warnings.
4257 (lto_elf_append_data): Fix C++ compatibility warnings. Use CONST_CAST
4258 to avoid warning assigning const pointer to d_buf field of Elf_Data.
4259 (lto_get_current_out_file): Fix C++ compatibility warnings.
4260
42612008-07-11 Diego Novillo <dnovillo@google.com>
4262
4263 * Make-lang.in (lto-warn): Define.
4264
42652008-07-03 Simon Baldwin <simonb@google.com>
4266
4267 * lto.c (lto_read_decls): Wrapped debug-only data items within #ifdef
4268 LTO_STREAM_DEBUGGING.
4269
42702008-06-27 Ollie Wild <aaw@google.com>
4271
4272 * lto-elf.c (lto-section-out.h): New include.
4273 (struct lto_elf_file): Remove bits member. Add scn, shstrtab_stream,
4274 and data members.
4275 (cached_file_attrs): New static variable.
4276 (lto_elf_get_shdr, lto_elf_free_shdr): Remove elf_file parameter.
4277 Use cached_file_attrs for checking bits.
4278 (lto_elf_build_section_table): Remove elf_file argument from
4279 lto_elf_get_shdr and lto_elf_free_shdr calls.
4280 (DEFINE_INIT_SHDR): New macro.
4281 (init_shdr32, init_shdr64): New functions defined via the
4282 DEFINE_INIT_SHDR macro.
4283 (lto_elf_begin_section_with_type): New function.
4284 (lto_elf_begin_section): New function.
4285 (lto_elf_append_data): New function.
4286 (lto_elf_end_section): New function.
4287 (DEFINE_VALIDATE_EHDR): New macro.
4288 (validate_ehdr32, validate_ehdr64): New functions defined via the
4289 DEFINE_VALIDATE_EHDR macro.
4290 (validate_file): New function.
4291 (DEFINE_INIT_EHDR): New macro.
4292 (init_ehdr32, init_ehdr64): New functions defined via the
4293 DEFINE_INIT_EHDR macro.
4294 (init_ehdr): New function.
4295 (lto_elf_file_open): Add support for writable files. Move some
4296 validation logic to validate_file.
4297 (lto_elf_file_close): Add support for writable files. Write file data
4298 and free data blocks.
4299 (current_out_file): New static variable.
4300 (lto_set_current_out_file): New function.
4301 (lto_get_current_out_file): New function.
4302 * lto.c (lto_main): Add writable argument to lto_elf_file_open calls.
4303 Add temporary initialization for testing ELF serialization.
4304 * lto.h (lto-section-out.h): New include.
4305 (struct lto_file_struct): Slight modification to comment.
4306 (lto_elf_file_open): Add writable parameter.
4307 (lto_elf_begin_section): New function declaration.
4308 (lto_elf_append_data): New function declaration.
4309 (lto_elf_end_section): New function declaration.
4310 (lto_set_current_out_file, lto_get_current_out_file): New function
4311 declarations.
4312 * lto-lang.c (LANG_HOOKS_BEGIN_SECTION): Set as lto_elf_begin_section.
4313 (LANG_HOOKS_APPEND_DATA): Set as lto_elf_append_data.
4314 (LANG_HOOKS_END_SECTION): Set as lto_elf_end_section.
4315 * Make-lang.in (LTO_H): Add lto-section-out.h.
4316
43172008-06-12 Ollie Wild <aaw@google.com>
4318
4319 * lto.h (struct lto_file_vtable_struct): Remove.
4320 (struct lto_file_struct): Remove vtable member.
4321 * lto-elf.c (lto_file_init): Remove vtable argument.
4322 (lto_elf_map_optional_lto_section): Remove.
4323 (lto_elf_unmap_section): Remove.
4324 (lto_elf_file_vtable): Remove.
4325 (lto_elf_file_open): Remove lto_elf_file_vtable argument from
4326 lto_file_init call.
4327 (lto_elf_find_section_data): Remove.
4328
43292008-06-11 Ollie Wild <aaw@google.com>
4330
4331 * lto.c (lto_file_read): Add const qualifier to data variable.
4332
43332008-06-11 Diego Novillo <dnovillo@google.com>
4334
4335 Merge from lto-streamber sub-branch.
4336
4337 2008-06-04 Ollie Wild <aaw@google.com>
4338
4339 * lto.c: Remove inclusion of dwarf2.h and dwarf2out.h.
4340 * Make-lang.in (lto.o): Remove dependency on dwarf2.h.
4341
4342 2008-05-28 Bill Maddox <maddox@google.com>
4343
4344 Replace the DWARF reader in the LTO front-end.
4345
4346 * lto.c: Include lto-tree-in.h, lto-tags.h.
4347 (enum DWARF2_class, DW_cl_constant, struct
4348 DWARF2_form_data, struct lto_context,
4349 lto_fd_init, lto_info_fd_init,
4350 lto_abbrev_fd_init, lto_info_fd_close,
4351 lto_file_init, lto_file_close,
4352 lto_file_corrupt_error, lto_abi_mismatch_error,
4353 LTO_CHECK_INT_VAL, LTO_READ_TYPE,
4354 lto_read_uleb128, lto_read_sleb128,
4355 lto_read_initial_length, lto_abbrev_read_attrs,
4356 lto_abbrev_read, lto_abbrev_read_lookup,
4357 lto_read_section_offset,
4358 lto_read_comp_unit_header, find_cu_for_offset,
4359 lto_get_file_name,
4360 lto_resolve_reference,lto_read_form,
4361 attribute_value_as_int,
4362 make_signed_host_wide_int,
4363 attribute_value_as_constant, lto_cache_hash,
4364 lto_cache_eq, lto_cache_store_DIE,
4365 lto_cache_lookup_DIE, lto_find_integral_type,
4366 lto_find_integral_type_1,
4367 LTO_BEGIN_READ_ATTRS_UNCHECKED,
4368 LTO_BEGIN_READ_ATTRS, LTO_END_READ_ATTRS,
4369 lto_unsupported_attr_error, lto_get_identifier,
4370 lto_read_referenced_type_DIE,
4371 lto_read_compile_unit_DIE,
4372 lto_read_array_type_DIE,
4373 lto_read_structure_union_class_type_DIE,
4374 lto_read_enumerator_DIE,
4375 lto_read_enumeration_type_DIE,
4376 lto_read_only_for_child_DIEs,
4377 lto_read_only_for_child_DIEs,
4378 lto_read_member_DIE, lto_read_abbrev,
4379 lto_read_variable_formal_parameter_constant_DIE,
4380 lto_get_body): Removed.
4381 (preload_common_nodes): New function.
4382 (lto_read_decls): Convert for new global streamer.
4383 (lto_materialze_file_data,
4384 lto_read_subroutine_type_subprogram_die,
4385 lto_read_unspecified_parameters_DIE,
4386 lto_read_typedef_DIE,
4387 lto_read_pointer_reference_type_DIE,
4388 lto_read_subrange_type_DIE,
4389 lto_read_base_type_DIE,
4390 lto_read_const_volatile_restrict_type_DIE,
4391 lto_read_namespace_DIE,
4392 lto_read_unspecified_type_DIE, lto_read_DIE,
4393 lto_read_child_DIEs, lto_collect_child_DIEs):
4394 Removed.
4395 (lto_info_read, lto_set_cu_context): Removed.
4396 (lto_file_read): Convert for new global streamer.
4397 (lto_resolve_type_ref, lto_read_DIE_at_ptr,
4398 lto_resolve_var_ref, lto_resolve_fn_ref,
4399 lto_resolve_field_ref, lto_resolve_typedecl_ref,
4400 lto_resolve_namespacedecl_ref): Removed.
4401 (lto_file_init, lto_file_close): Moved to lto-elf.c.
4402 * lto-tree.h (lto_symtab_merge_var,
4403 lto_symtab_mergee_fun): Declare here.
4404 * lto-elf.c (lto_file_init, lto_file_close): Moved from lto.c.
4405 (lto_elf_file_open): Removed code to read DWARF debug sections.
4406 * lto.h (lto_context, DWARF2_attr, DWARF2_abbrev,
4407 DWARF2_CompUnit, lto_die_ptr,
4408 lto_die_cache_entry, lto_fd, lto_info_fd,
4409 lto_abbrev_fd): Removed.
4410 (lto_file): Removed debug_info and debug_abbrev fields.
4411 (lto_ref): Removed.
4412 (lto_file_init, lto_file_close,
4413 lto_resolve_type_ref, lto_resolve_var_ref,
4414 lto_resolve_fn_ref, lto_resolve_field_ref,
4415 lto_resolve_typedecl_ref,
4416 lto_resolve_namespacedecl_ref,
4417 lto_get_file_name): Removed declarations.
4418 (lto_symtab_merge_var, lto_symtab_merge_fn):
4419 Declarations moved to lto-tree.h.
4420 * lto-symtab.c (lto_compatible_attributes_p):
4421 Lobotomize this, as it barfs on "Hello, world!".
4422 * lto-section-out.c: Include lto-tree-out.h.
4423 (lto_hash_global_slot_node,
4424 lto_eq_global_slot_node, preload_common_nodes,
4425 write_global_stream, write_global_references):
4426 New functions.
4427 (produce_asm_for_decls): Convert for new global streamer.
4428 * lto-section-out.h (lto_hash_global_slot_node,
4429 lto_eq_global_slot_node): Declare.
4430
3f8257db 44312008-06-07 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
4432 Jan Hubicka <jh@suse.cz>
4433
4434 * lto.c (sys/mman.h, tree-pass.h): New includes.
4435 (lto_materialize_constructors_and_inits,
4436 lto_materialize_function): Keeps length of section.
4437 (lto_materialize_cgraph): Removed.
4438 (lto_read_decls): Initialize fd field.
4439 (lto_file_read): Different return type and removed much code to
4440 lto_main.
4441 (page_mask): New variable.
4442 (lto_read_section_data, get_section_data, free_section_data): New
4443 functions.
4444 (lto_main): Now calls pass manager, sets the hooks so that the ipa
4445 passes can get the section data.
4446
3f8257db 44472008-05-27 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
4448
4449 * lto.h (lto_read_decls): Made local.
4450 (lto_input_function_body, lto_input_constructors_and_inits,
4451 lto_input_cgraph): Declarations moved to lto-section-in.h.
4452 * lto-section-in.c: Moved to .. .
4453 * lto-cgraph-in.c: Ditto.
4454 * lto-section-in.h: Ditto.
4455 * lto-function-in.c: Ditto.
4456 * lto-lang.c (lto_handle_option): Added ATTRIBUTE_UNUSED to parms.
4457 (lto_insert_block): Removed.
4458 (LANG_HOOKS_INSERT_BLOCK): Removed.
4459 * Make-lang.in (lto-cgraph-in.o, lto-function-in.o,
4460 lto-section-in.o): Rules moved to lto/Makefile.in.
4461
4462
44632008-05-16 Ollie Wild <aaw@google.com>
4464
4465 * lto-lang.c (tree-inline.h): Include.
4466 (lto_post_options): New function.
4467 (LANG_HOOKS_POST_OPTIONS): Define.
4468 * lto-cgraph-in.c (overwrite_node): Set node->global.insns.
4469 * lto-function-in.c (input_bb): Set TREE_BLOCK (stmt).
4470
44712008-05-13 Diego Novillo <dnovillo@google.com>
4472
4473 * lto-function-in.c (input_ssa_names): Call
4474 make_ssa_name_fn instead of make_ssa_name.
4475
44762008-05-12 Diego Novillo <dnovillo@google.com>
4477
4478 * lto-cgraph-in.c (overwrite_node): Update references to
4479 inline summary fields.
4480 * lto-function-in.c (input_expr_operand): Do not handle
4481 STRUCT_FIELD_TAG.
4482
44832008-05-09 Ollie Wild <aaw@google.com>
4484
4485 * lang.opt: New file.
4486 * lto-lang.c (lto_init_options): New function.
4487 (lto_handle_option): New function.
4488 (lto_init): Move initialization of flag_unit_at_a_time to
4489 lto_init_options.
4490 (LANG_HOOKS_INIT_OPTIONS): Define.
4491 (LANG_HOOKS_HANDLE_OPTION): Define.
4492
44932008-04-29 Ollie Wild <aaw@google.com>
4494
4495 * lto.c (lto_read_namespace_DIE): New function.
4496 (lto_read_DIE): Add lto_read_namespace_DIE callback. Cache
4497 NAMESPACE_DECL DIE's.
4498 (lto_resolve_namespacedecl_ref): New function.
4499 * lto.h (lto_resolve_namespacedecl_ref): New function.
4500 * lto-section-in.c (lto_read_decls): Read namespace declarations.
4501 * lto-section-in.h (struct lto_file_decl_data): Add namespace_decls
4502 and num_namespace_decls.
4503 * lto-function-in.c (input_expr_operand): Add NAMESPACE_DECL case.
4504 * lto-lang.c (lto_init_ts): New function.
4505 (LANG_HOOKS_INIT_TS): Set as lto_init_ts.
4506
45072008-04-16 Ollie Wild <aaw@google.com>
4508
4509 * lto-function-in.c (input_type_ref): Updated function description.
4510
45112008-04-16 Ollie Wild <aaw@google.com>
4512
4513 * lto-function-in.c (input_type_ref_1): New function.
4514 (input_type_ref): Split into two functions.
4515 (input_function): Add support for type contexts.
4516
45172008-04-16 Ollie Wild <aaw@google.com>
4518
4519 * lto.c (lto_materialize_function): Use DECL_ASSEMBLER_NAME to compute
4520 section name
4521
45222008-04-16 Ollie Wild <aaw@google.com>
4523
4524 * lto.c (lto_read_compile_unit_DIE): Add DW_LANG_C_plus_plus to the
4525 list of supported languages.
4526
3f8257db 45272008-03-25 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
4528
4529 Merge with mainline @133491.
4530
3f8257db 45312008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
4532 Jan Hubicka <jh@suse.cz>
4533
4534 * lto.c (lto_info_fd_init, lto_info_fd_close): Get rid of
4535 fd->unmaterialized_fndecls.
4536 (lto_get_file_name, lto_materialize_cgraph): New function.
4537 (lto_materialize_constructors_and_inits,
4538 lto_materialize_function): Read info directly from elf file.
4539 (lto_file_read): Made local and initialize dictionary so that
4540 other lto sections can be read without reprocessing the elf file.
4541 (lto_main): Read all functions after all files have been processed
4542 for their types, globals and cgraph.
4543 * Make-lang.in (lto.o, lto-cgraph-in.c, lto-section-in): Changed
4544 dependencies.
4545 * lto-elf.c (lto_elf_file): Removed strtab, symtab fields.
4546 (hash_name, eq_name, lto_elf_build_section_table): New functions.
4547 (lto_elf_read_symtab): Removed function.
4548 (lto_elf_file_open): Removed call to lto_elf_read_symtab.
4549 * lto.h (lto_info_fd_struct): Removed unmaterialized_fndecls.
4550 (lto_file_read): Made local.
4551 (lto_get_file_name, lto_elf_build_section_table,
4552 lto_input_cgraph):
4553 New function.
4554 * lto-section-in.c (lto_read_section_data, lto_get_section_data):
4555 New functions.
4556 (lto_read_decls): Get the file name.
4557 * lto-cgraph-in.c: New file.
4558 * lto-function-in.c (tag_to_expr): Stops at LTO_tree_last_tag.
4559 (input_expr_operand, lto_read_body): Set lto_debug_context.tag_names.
4560 (input_labels): Fixed latent sizeof issue.
4561 (input_function): Build stmt array to set call sites into cgraph
4562 edges.
4563 (lto_read_body): Reset cfun->curr_properties.
4564 * lto_section_in.h (lto_section_slot): New structure.
4565 (section_hash_table.lto_file_decl_data): New field.
4566
4567
3f8257db 45682008-02-09 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
4569
4570 * lto.c (lto_read_variable_formal_parameter_const): Remove code to
4571 reconstruct static initializers.
4572 (lto_get_body, lto_materialize_function): Add lto_section_type as
4573 a parameter.
4574 (lto_materialize_constructors_and_inits,
4575 lto_materialize_file_data): New function.
4576 (lto_materialize_function,
4577 lto_read_subroutine_type_subprogram_DIE): Renamed unmap_fn_body to
4578 unmap_section and map_fn_body to map_section.
4579 (lto_set_cu_context): Process functions and static inits
4580 differently.
4581 * Make-lang.in (LTO_H, lto/lto-function-in.o,
4582 lto/lto-section-in.o): Update dependencies.
4583 * lto/lto-elf.c (lto_elf_map_optional_lto_section): Add
4584 lto_section_type parameter.
4585 (lto_elf_unmap_fn_body): Renamed to lto_elf_unmap_section.
4586 * lto.h (lto_file_vtable_struct): Removed two of the fields and
4587 renamed the other two so that there is only one map function and
4588 one unmap function and each takes a section type parameter.
4589 (lto_read_function_body): Renamed to lto_input_function_body and
4590 added file_data parameter.
4591 (lto_read_var_init): Removed.
4592 (lto_input_constructors_and_inits): New function.
4593 * lto-section-in.c (lto_read_decls): New function.
4594 * lto-function-in.c (data_in): Moved fields field_decls, fn_decls,
4595 var_decls, type_decls, types to lto_file_decl_data.
4596 (input_type_ref, input_expr_operand, lto_read_body): Get
4597 field_decls, fn_decls, var_decls, type_decls, types from different
4598 structure.
4599 (input_globals, input_constructor, lto_read_var_init): Removed.
4600 (input_constructors_or_inits): New function.
4601 (lto_read_function_body, lto_input_constructors_and_inits):
4602 Renamed to lto_input_function_body and takes file_data parameter.
4603 * lto-section-in.h (lto_file_decl_data): New structure.
4604
3f8257db 46052008-01-28 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
4606
4607 * lto-function-in.c (input_globals.c): Changed input type to
4608 lto_function_header.
4609 (input_bb): Removed code to deserialize the stmt number.
4610 (input_function): Renumber all stmts after they are input.
4611 (lto_read_body, lto_read_function_body, lto_read_var_init):
4612 Changed to used new header format and enum section_type.
4613 *lto-lang.c (success): Removed.
4614
46152008-01-28 Nathan Froyd <froydnj@codesourcery.com>
4616
4617 * lto-elf.c (lto_elf_lookup_sym): Remove unused function.
4618 (lto_elf_free_sym): Likewise.
4619
4620 * lto-elf.c (lto_elf_read_var_init): Remove unused function.
4621 (lto_elf_build_init): Likewise.
4622
3f8257db 46232008-01-14 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
4624
4625 * lto-read.c: Renamed to lto-function-in.c.
4626 (input_1_unsigned): Moved to lto-section-in.c and renamed
4627 lto_input_1_unsigned.
4628 (input_uleb128): Moved to lto-section-in.c and renamed
4629 lto_input_uleb128.
4630 (input_widest_uint_uleb128): Moved to lto-section-in.c and renamed
4631 lto_input_widest_uint_uleb128.
4632 (input_sleb128): Moved to lto-section-in.c and renamed
4633 lto_input_sleb128.
4634 (input_integer): Moved to lto-section-in.c and renamed
4635 lto_input_integer.
4636 (debug_in_fun): Moved to lto-section-in.c and renamed
4637 lto_debug_in_fun.
4638 (input_block): Moved to lto-section-in.h and renamed
4639 lto_input_block.
4640 (input_expr_operand): Fixed to allow lists with more than one
4641 element.
4642 * lto-section-in.h: New file.
4643 * lto-section-in.c: New file with changes from above.
4644 * Make-lang.in (lto-read.o): Renamed lto-function-in.c.
4645 (lto-section-in.o): New rule.
4646
46472007-12-29 Nathan Froyd <froydnj@codesourcery.com>
4648
4649 * lto-read.c (input_expr_operand): Mark static and external
4650 VAR_DECLs as needed.
4651
46522007-12-29 Nathan Froyd <froydnj@codesourcery.com>
4653
4654 * lto-read.c (input_integer): Use the correct shift amount.
4655
46562007-12-29 Nathan Froyd <froydnj@codesourcery.com>
4657
4658 * lto-lang.c (lto_pushdecl): Do nothing instead of aborting.
4659 (LANG_HOOKS_NAME): Define.
4660
46612007-12-27 Nathan Froyd <froydnj@codesourcery.com>
4662
4663 * lto.c (lto_find_integral_type): Define as a macro. Rename the
4664 original function to...
4665 (lto_find_integral_type_1): ...this. Consult UNSIGNEDP if we
4666 don't have a base type.
4667 (lto_read_enumeration_type_DIE): Examine the values of the
4668 enumeration to determine whether we can use an unsigned type for
4669 the base type of the enumeration.
4670
46712007-12-24 Nathan Froyd <froydnj@codesourcery.com>
4672
4673 * lto.c (lto_read_structure_union_class_type_DIE): Set TYPE_MODE
4674 and TYPE_ALIGN on UNION_TYPEs as soon as possible.
4675
46762007-12-22 Nathan Froyd <froydnj@codesourcery.com>
4677
4678 * lto-lang.c (lto_types_compatible_p): New function.
4679 (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
4680
46812007-12-22 Nathan Froyd <froydnj@codesourcery.com>
3f8257db 4682 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
4683
4684 * lto-read.c (input_expr_operand): Fixed uninitialize var warning.
4685 (input_local_vars): Read in DECL_INITIAL and context for local
4686 statics that need to be put in unexpanded_vars_list.
4687
46882007-12-21 Nathan Froyd <froydnj@codesourcery.com>
4689
4690 * lto-read.c (input_real): Use a separate null-terminated buffer
4691 for calling real_from_string.
4692 (input_expr_operand): If we take the address of a FUNCTION_DECL,
4693 tell cgraph that it's needed.
4694
46952007-12-19 Doug Kwan <dougkwan@google.com>
4696
4697 * lto.c (lto_read_base_type_DIE): Handle complex integer types.
4698
46992007-12-18 Nathan Froyd <froydnj@codesourcery.com>
4700
4701 * lto.c (lto_read_DIE): Call lto_read_only_for_child_DIEs instead.
4702 (lto_file_read): Reset the members of 'context' every time we read
4703 a toplevel DIE, with special attention to last_param_type.
4704
47052007-12-18 Nathan Froyd <froydnj@codesourcery.com>
4706
4707 * lto.c (lto_read_subroutine_type_subprogram_DIE): Initialize
4708 'declaration'. Set the assembler name for non-public functions.
4709
3f8257db 47102007-12-17 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
4711
4712 * lto_read.c (data_in.unexpanded_indexes): New array.
4713 (input_local_var): Added code to read in unexpanded_var_list
4714 indexes for variables. Only read in DECL_CHAIN field for
4715 parameters.
4716 (input_local_vars): Added code to rebuild unexpanded_var_list in
4717 order using unexpanded_indexes.
4718 (input_function): Added code to set DECL_CONTEXT for functions.
4719
47202007-12-13 Doug Kwan <dougkwan@google.com>
4721
4722 * lto.c (lto_read_pointer_reference_type_DIE): Handle optional name
4723 in pointer and reference types.
4724
47252007-12-13 Nathan Froyd <froydnj@codesourcery.com>
4726
4727 * lto-read.c (input_expr_operand): Use DECL_RESULT when reading a
4728 RESULT_DECL.
4729
47302007-12-13 Nathan Froyd <froydnj@codesourcery.com>
4731
4732 * lto.c (lto_read_array_type_DIE): Return the cached DIE if we've
4733 already read the DIE.
4734 (lto_get_body): New function, split out from...
4735 (lto_materialize_function): ...here. Call it.
4736 (lto_read_subroutine_type_subprogram_DIE): Call lto_get_body to
4737 determine DECL_EXTERNAL.
4738 * lto-symtab.c (lto_symtab_merge_decl): Merge the DECL_RESULTs of
4739 FUNCTION_DECLs when necessary. Use the type of the actual
4740 function definition if we are unable to easily merge types. Ignore
4741 spurious DECL_MODE mismatches on VAR_DECLs. Merge DECL_MODEs when
4742 necessary.
4743
47442007-12-13 Nathan Froyd <froydnj@codesourcery.com>
4745
4746 * lto-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
4747
47482007-12-12 Bill Maddox <maddox@google.com>
4749
4750 Revert
4751 2007-12-07 Bill Maddox <maddox@google.com>
4752
4753 * lto.c (lto_str_fd_init): New function.
4754 (lto_str_fd_close): New function.
4755 (lto_file_init): Call lto_str_fd_init.
4756 (lto_file_close): Call lto_str_fd_close.
4757 (lto_str_read): New function. Read debug string table.
4758 (lto_str_lookup): New function. Get string for debug
4759 string table offset.
4760 (lto_read_form): Recognize DW_FORM_strp.
4761 (lto_file_read): Invoke lto_str_read.
4762
4763 * lto-elf.c (lto_elf_file_open): Read raw section data
4764 for the .debug_str section, if present.
4765
4766 * lto.h (struct lto_str_fd_struct): New struct.
4767 (struct lto_file_struct): Added new field DEBUG_STR
4768 to hold the file descriptor for the debug string table.
4769
47702007-12-07 Bill Maddox <maddox@google.com>
4771
4772 * lto.c (lto_str_fd_init): New function.
4773 (lto_str_fd_close): New function.
4774 (lto_file_init): Call lto_str_fd_init.
4775 (lto_file_close): Call lto_str_fd_close.
4776 (lto_str_read): New function. Read debug string table.
4777 (lto_str_lookup): New function. Get string for debug
4778 string table offset.
4779 (lto_read_form): Recognize DW_FORM_strp.
4780 (lto_file_read): Invoke lto_str_read.
4781
4782 * lto-elf.c (lto_elf_file_open): Read raw section data
4783 for the .debug_str section, if present.
4784
4785 * lto.h (struct lto_str_fd_struct): New struct.
4786 (struct lto_file_struct): Added new field DEBUG_STR
4787 to hold the file descriptor for the debug string table.
4788
47892007-12-07 Nathan Froyd <froydnj@codesourcery.com>
4790
4791 * lto-read.c (input_cfg): Call init_empty_tree_cfg_for_function.
4792 Grow the basic_block_info and label_to_block_map vectors if
4793 necessary. Read in the block chain.
4794
47952007-12-06 Nathan Froyd <froydnj@codesourcery.com>
4796
4797 * lto.c (lto_read_DIE): Set TYPE_ALIAS_SET where necessary.
4798
47992007-12-06 Nathan Froyd <froydnj@codesourcery.com>
4800
4801 * lto.c (lto_read_form): Add DW_cl_address for DW_AT_const_value.
4802
48032007-12-06 Nathan Froyd <froydnj@codesourcery.com>
4804
4805 * lto-read.c (input_expr_operand): Don't check for MTAGs.
4806 (lto_read_body): Don't declare PROP_alias.
4807
48082007-12-06 Nathan Froyd <froydnj@codesourcery.com>
4809
4810 * lto-symtab.c (lto_symtab_merge_decl): Handle FUNCTION_DECLs without
4811 argument type information.
4812
48132007-12-03 Nathan Froyd <froydnj@codesourcery.com>
4814
4815 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Set
4816 TREE_THIS_VOLATILE if the associated type is a volatile type.
4817 (lto_materialize_function): Remove call to init_ssa_operands.
4818 * lto-read.c (input_expr_operand): Add SSA_NAME_VAR as a referenced
4819 variable when reading an SSA_NAME. Do the same when reading a
4820 RESULT_DECL, a RETURN_EXPR, or an MTAG.
4821 (input_cfg): Call init_ssa_operands.
4822 (input_ssa_names): Set the default def of an SSA_NAME if necessary.
4823 Move call to init_tree_ssa...
4824 (lto_read_body): ...here. Use push_cfun and pop_cfun. Call
4825 add_referenced_var on any variables referenced from the body of the
4826 function. Inform the rest of the compiler we are in SSA form and
4827 inform later passes about the current properties.
4828
48292007-11-30 Nathan Froyd <froydnj@codesourcery.com>
4830
4831 * lto.c (lto_materialize_function): Add FIXME.
4832
48332007-11-29 Nathan Froyd <froydnj@codesourcery.com>
4834
4835 * lto-lang.c (enum built_in_attribute): New enum.
4836 (flag_no_builtin, flag_no_nonansi_builtin, flag_isoc94, flag_isoc99,
4837 built_in_attributes): New variables.
4838 (def_builtin_1): New function.
4839 (lto_define_builtins): #define DEF_BUILTIN and include builtins.def.
4840
48412007-11-28 Nathan Froyd <froydnj@codesourcery.com>
4842
4843 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Set
4844 DECL_SOURCE_LOCATION for debugging purposes.
4845 (lto_read_member_DIE): Set DECL_SOURCE_LOCATION. If we have read a
4846 bitfield, use the type specified by the DIE for TREE_TYPE and defer
4847 laying out the decl until later.
4848 (lto_read_subroutine_type_subprogram_DIE): Compare the function's
4849 name with DECL_ASSEMBLER_NAME. Set DECL_SOURCE_LOCATION and
4850 TREE_ADDRESSABLE.
4851 * lto-read.c (input_expr_operand): Set TREE_ADDRESSABLE on the
4852 operand of an ADDR_EXPR.
4853 * lto-lang.c (enum lto_builtin_type): New enum.
4854 (builtin_type): New typedef.
4855 (builtin_types, string_type_node, const_string_type_node,
4856 wint_type_node, intmax_type_node, uintmax_type_node,
4857 signed_size_type_node): New variables.
4858 (def_fn_type, builtin_type_for_size, lto_define_builtins,
4859 lto_build_c_type_nodes): New functions.
4860 (lto_init): Initialize builtin types.
4861 (lto_set_decl_assembler_name): Let the target machine mangle the
4862 name if the decl is TREE_PUBLIC, otherwise uniquify it.
4863
48642007-11-21 Nathan Froyd <froydnj@codesourcery.com>
4865
4866 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Don't
4867 set TREE_ADDRESSABLE. Do set DECL_COMDAT. Set TREE_READONLY if
4868 the type is a constant type. Set the assembler name and inform
4869 the rest of the compiler about the new decl if the decl is not
4870 public.
4871 (lto_read_subroutine_type_subprogram_DIE): Don't check for equivalency
4872 of DECL_ASSEMBLER_NAME when determining if we have a builtin. Don't
4873 try to read in function bodies for functions that already have bodies.
4874 * lto-symtab.c (lto_same_type_p): Check for unbounded array
4875 equivalency.
4876 (lto_symtab_merge_decl): Don't merge decls that aren't TREE_PUBLIC.
4877 Check for whether we matched a builtin function type before calling
4878 lto_same_type_p on the generated type. Permit cases where the
4879 declaration of an array is unbounded, but the definition is bounded.
4880 Don't combine TREE_PUBLIC flags. Copy over DECL_SIZE and
4881 DECL_SIZE_UNIT if necessary.
4882
3f8257db 48832007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
4884
4885 * lto-read.c (input_expr_operand): Get types right
4886 for COMPLEX_CST.
4887
3f8257db 48882007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
4889
4890 * lto-read.c (make_new_block, input_cfg): Properly set
4891 n_basic_blocks.
4892
48932007-11-16 Nathan Froyd <froydnj@codesourcery.com>
4894
4895 * lto.c (lto_read_array_type_DIE): Handle DIEs with DW_AT_GNU_vector
4896 set properly by building a VECTOR_TYPE instead of an ARRAY_TYPE.
4897
48982007-11-16 Nathan Froyd <froydnj@codesourcery.com>
4899
4900 * lto.c (lto_read_base_type_DIE): Use make_bitfield_integer_type to
4901 construct the integer type for bitfields.
4902
3f8257db 49032007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
4904
4905 * lto-read.c (data_in.current_node_has_loc): Removed.
4906 (input_line_info): Returns true if node needs line set.
4907 (set_line_info): Always sets line if called.
4908 (clear_line_info): Removed reference to current_node_needs_loc.
4909 (input_expr_operand): Keeps track locally if current node needs a loc.
4910 (input_local_var): Added code to handle DECL_INITIAL for
4911 static local vars. Only set loc if necessary.
4912
49132007-11-15 Nathan Froyd <froydnj@codesourcery.com>
4914
4915 * lto.c (lto_read_subroutine_type_subprogram_DIE): Fix thinko'd
4916 DECL_CONTEXT.
4917
49182007-11-15 Nathan Froyd <froydnj@codesourcery.com>
4919
4920 * lto.c: Include langhooks.h.
4921 (lto_find_integral_type): Rework logic to handle the case where
4922 got_byte_size is true, but the bitsize requested and that of the
4923 base_type doesn't match.
4924 (lto_read_variable_formal_parameter_constant_DIE): Only check for
4925 asm_name if we are creating a VAR_DECL.
4926 (lto_materialize_function): Set DECL_EXTERNAL if we can't find a
4927 definition.
4928 (lto_read_subroutine_type_subprogram_DIE): Check for a builtin
4929 function reference and use the builtin's decl if so. Set the
4930 DECL_CONTEXT of the RESULT_DECL for the function.
4931 * lto-lang.c (registered_builtin_fndecls): New variable.
4932 (lto_getdecls): Return it.
4933 (lto_builtin_function): Chain the new decl onto
4934 registered_builtin_fndecls.
4935
3f8257db 49362007-11-15 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
4937
4938 * lto-read.c (process_tree_flags, lto_static_init_local):
4939 Renamed to ADD_CLASS_EXPR_FLAG. ADD_CLASS_DECL_FLAG New Macro.
4940 (input_line_info, clear_line_info): Fixed new line number code.
4941 (input_expr_operand): Added type to SWITCH_EXPR.
4942 (lto_read_body): Properly initialized data_in.
4943 Clear line info when leaving.
4944
49452007-11-13 Diego Novillo <dnovillo@google.com>
4946
4947 * lto.c (lto_read_variable_formal_parameter_constant_DIE):
4948 Initialize ARTIFICIAL.
4949 (lto_read_subroutine_type_subprogram_DIE): Initialize
4950 SAVED_SCOPE.
4951 * lto-read.c (set_line_info): Remove ; from calls to
4952 LINEMAP_POSITION_FOR_COLUMN.
4953
3f8257db 49542007-11-13 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
4955
4956 * lto-read.c (input_type_ref): Renamed from get_type_ref.
4957 (input_expr_operand, input_local_var): Renamed get_type_ref to
4958 input_type_ref.
4959 (input_expr_operand): Get the types correct for
4960 vector-cst. Get SSA_NAME_DEF_STMT correct for return_exprs.
4961
49622007-11-13 Doug Kwan <dougkwan@google.com>
4963
4964 * lto-read.c (input_widest_uint_uleb128): New function.
4965 (input_tree_flags, process_tree_flags, input_line_info,
4966 input_expr_operand, input_local_var, input_phi, input_ssa_names):
4967 Change to use lto_flags_type and BITS_PER_LTO_FLAGS_TYPES instead of
4968 unsigned HOST_WIDE_INT and HOST_BITS_PER_WIDE_INT.
4969 (lto_static_init_local): Add code to assert that lto_flags_type is
4970 wide enough.
4971
49722007-11-13 Nathan Froyd <froydnj@codesourcery.com>
4973
4974 * lto.c (lto_read_array_type_DIE): Handle DW_AT_GNU_vector.
4975 (lto_read_subroutine_type_subprogram_DIE): Handle
4976 DW_AT_static_link and DW_AT_specification. Return the
4977 specification if present.
4978 (lto_read_base_type_DIE): Handle DW_ATE_complex_float.
4979
49802007-11-13 Nathan Froyd <froydnj@codesourcery.com>
4981
4982 * lto-lang.c: Include target.h.
4983 (registered_builtin_types): New variable.
4984 (lto_type_for_mode): Increase number of modes handled.
4985 (lto_builtin_function): Fix argument list and return the decl.
4986 (lto_register_builtin_type): New function.
4987 (lto_init): Initialize target builtins and language-independent
4988 nodes.
4989 (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define.
4990
3f8257db 49912007-11-13 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
4992
4993 * lto-read.c (input_expr_operand): Added code to properly handle
4994 index filed. Added new RANGE_EXPR case.
4995
3f8257db 49962007-11-11 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
4997
4998 * lto-read.c (ADD_FUNC_FLAG): Deleted macro.
4999 (data_in): Added current_node_has_loc field.
5000 (input_line_info, set_line_info, clear_line_info): Added a support
5001 for USE_MAPPED_LOCATION and not adding line numbers to nodes that
5002 did not have on on the source side.
5003 (input_expr_operand): Make sure that GIMPLE_MODIFY_STMTS get line
5004 numbers too.
5005
50062007-11-09 Doug Kwan <dougkwan@google.com>
5007
5008 * lto-read.c (input_expr_operand): Change type of operand 2 of
5009 BIT_FIELD_REF expression to be bitsizetype instead of sizetype.
5010
50112007-11-09 Nathan Froyd <froydnj@codesourcery.com>
5012
5013 * lto.c: Include lto-tree.h. Effect small spaces->tabs cleanup.
5014 (lto_read_variable_formal_parameter_constant_DIE): Transfer bits
5015 from a DW_AT_specification or DW_AT_abstract_origin attribute to
5016 the new decl we are creating. Move informing the middle end about
5017 the new decl to...
5018 (lto_main): ...here. Inform the middle end about global variables
5019 after we have read in all the input files.
5020 * lto-symtab.c (lto_symtab_merge_decl): We really do need to merge
5021 variables with internal linkage, so delete the check for internal
5022 linkage. Combine TREE_PUBLIC flags.
5023
50242007-11-08 Nathan Froyd <froydnj@codesourcery.com>
5025
5026 * lto.c (lto_read_subroutine_type_subprogram_DIE): Handle
5027 DW_AT_decl_line.
5028 * lto-symtab.c (lto_symtab_merge_decl): Handle redefinition of a
5029 builtin specially. Move check for attribute compatibility
5030 earlier.
5031
50322007-11-07 Nathan Froyd <froydnj@codesourcery.com>
5033
5034 * Make-lang.in (lto/lto.o): Depend on gt-lto-lto.h.
5035 * config-lang.in (gtfiles): Add lto.h and lto.c.
5036 * lto-elf.c: Include ggc.h.
5037 (lto_elf_file_open): Allocate elf_file from GC memory.
5038 * lto.c: Include tree-ssa-operands.h and gt-lto-lto.h
5039 (lto_info_fd_init): Allocate the die_cache and unmaterialized_fndecls
5040 in GC memory.
5041 (lto_info_fd_close): Free unmaterialized_fndecls from GC memory.
5042 (lto_file_close): Free file from GC memory.
5043 (lto_cache_store_DIE): Allocate the new entry in GC memory.
5044 (lto_read_member_DIE): Fix declaration.
5045 (lto_read_subroutine_type_subprogram_DIE): unmaterialized_fndecls lives
5046 in GC memory.
5047 (current_lto_file): New variable.
5048 (lto_main): Use it.
5049 (DWARF2_attr, DWARF2_abbrev, lto_die_ptr, DWARF2_CompUnit,
5050 lto_die_cache_entry): Move to...
5051 * lto.h: ...here and add GTY markers as appropriate. Delete forward
5052 declarations accordingly.
5053 (struct lto_file_struct): Declare.
5054 (lto_file_vtable): Use it instead of lto_file.
5055
50562007-11-06 Alon Dayan <alond@il.ibm.com>
3f8257db 5057 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
5058
5059 * lto-read.c (process_flags, lto_static_init_local):
5060 read flags of VAR_DECL and FUNCTION_DECL of size>1.
5061 change global array num_flags_for_code to flags_length_for_code.
5062 (set_line_info): Make decls work in USE_MAPPED_LOCATION mode.
5063
50642007-11-05 Nathan Froyd <froydnj@codesourcery.com>
5065
5066 * lto.c (lto_read_structure_union_class_type_DIE): Use proper record
5067 layout functions to compute information about the newly constructed
5068 type.
5069
50702007-11-02 Nathan Froyd <froydnj@codesourcery.com>
5071
5072 * lto-read.c (input_expr_operand): Change the LTO_return_expr1
5073 case to use DECL_RESULT if necessary.
5074
3f8257db 50752007-11-01 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
5076
5077 * lto-read.c (input_tree_list): Removed.
5078 (input_tree_flags): Added parameter to force flags no matter what
5079 tree code.
5080 (input_expr_operand): Added parameter to input_tree_flags.
5081 Added case for IDENTIFIER_NODE and TREE_LIST. Changed ASM to call
5082 input_expr_operand rather than input_tree_lists.
5083 (input_local_var): Use input_expr_operand to read attributes
5084 rather then input_tree_list.
5085 (input_phi, input_ssa_names): Added parameter to input_tree_flags.
5086
50872007-10-31 Nathan Froyd <froydnj@codesourcery.com>
5088
5089 * lto.c (lto_read_typedef_DIE): Fix comment typo.
5090 (lto_resolve_typedecl_ref): Fetch the referred-to type and build a fake
5091 TYPE_DECL for it.
5092 * lto-read.c (lto_read_body): Use correct sizes for calculating
5093 type_decls_offset and types_offset.
5094
50952007-10-30 Nathan Froyd <froydnj@codesourcery.com>
5096
5097 * lto-tree.h (union lang_tree_node): Change GTY description to chain
5098 with GENERIC_NEXT.
5099 * config-lang.in (gtfiles): Add lto-lang.c.
5100 * lto-lang.c: Include gt-lto-lto-lang.h.
5101 * Make-lang.in (lto/lto-lang.o): Add dependency on gt-lto-lto-lang.h
5102 (lto/lto-symtab.o): Depend on LTO_H instead of TREE_H.
5103 (lto/lto-read.o): Likewise.
5104
3f8257db 51052007-10-29 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
5106
5107 * lto-read.c (data_in): Added type_decls and current_col fields.
5108 (string_slot): New type to hold canonized file name.
5109 (hash_string_slot_node, eq_string_slot_node, canon_file_name,
5110 input_line_info, set_line_info, clear_line_info): New functions.
5111 (file_name_hash_table): New hash table.
5112 (input_local_var, input_labels, input_local_vars_index,
5113 input_local_var, input_local_vars, input_ssa_names): Reorganized parameters.
5114 (input_uleb128): Changed type of byte var.
5115 (input_expr_operand): Large number of changes to get line numbers
5116 correct. Added TYPE_DECL case.
5117 (input_globals): Added code to get TYPE_DECLs processed.
5118 (input_local_var): Added code to process line numbers and
5119 TREE_CHAIN and DECL_CONTEXT.
5120 (input_function, input_constructor): Added call to
5121 clear_line_number.
5122 (lto_static_init_local): Added code to get line numbers correct.
5123 (lto_read_body): Added code to get TYPE_DECLS read and to change
5124 parameters to the calls above that had their parms reorganized.
5125
5126
51272007-10-29 Nathan Froyd <froydnj@codesourcery.com>
5128
5129 * lto.h (lto_resolve_typedecl_ref): Declare.
5130 * lto.c (lto_resolve_typedecl_ref): New function.
5131
51322007-10-29 Mark Mitchell <mark@codesourcery.com>
5133 Nathan Froyd <froydnj@codesourcery.com>
5134
5135 * lto.c (lto_read_subroutine_type_subprogram_DIE): Read the child
5136 DIEs even if we find an abstract origin for this DIE.
5137
51382007-10-29 Nathan Froyd <froydnj@codesourcery.com>
5139
5140 * lto.c (lto_read_subroutine_type_subprogram_DIE): Build the
5141 RESULT_DECL slightly earlier. Only remember the decl for later
5142 if we successfully merge declarations.
5143
3f8257db 51442007-10-24 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
5145
5146 * lto-read.c (input_expr_operand): Give label_values the proper
5147 context and provide switch statements with a default type.
5148
51492007-10-23 Nathan Froyd <froydnj@codesourcery.com>
5150
5151 * lto-read.c (lto_read_body): Move call to init_ssa_operands...
5152 * lto.c (lto_materialize_function): ...to here.
5153
51542007-10-22 Nathan Froyd <froydnj@codesourcery.com>
5155
5156 * lto.h (struct lto_info_fd): Add field unmaterialized_fndecls.
5157 * lto.c (lto_info_fd_init): Initialize it.
5158 (lto_info_fd_close): Free it.
5159 (lto_materialize_function): New function.
5160 (lto_read_subroutine_type_subprogram_DIE): Save the result decl on
5161 unmaterialized_fndecls.
5162 (lto_file_read): Read in all the function bodies after we have read
5163 all of the DWARF info.
5164 * lto-read.c (lto_read_body): Call init_ssa_operands if we are
5165 reading a function body.
5166
3f8257db 51672007-10-20 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
5168
5169 * lto-read.c (input_tree_flags): Renamed from input_flags to be
5170 semetric with output_tree_flags. Added call to log flags.
5171 (process_tree_flags): Renamed from process_flags. Fixed a lot of
5172 type issues to make everything consistent with flags being
5173 unsigned HOST_WIDE_INTS.
5174 (input_expr_operand): Added call to
5175 recompute_tree_invariant_for_addr_expr.
5176 (input_local_var): Added debugging for tree_chains. Now calls
5177 input_tree_flags.
5178 (input_phi): Made flags unsigned HOST_WIDE_INT.
5179 (input_ssa_names): Now calls input_tree_flags.
5180 (lto_read_body): Now sets cfun.
5181 (lto_read_function_body): Now sets current_function_pointer.
5182
51832007-10-19 Nathan Froyd <froydnj@codesourcery.com>
5184
5185 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Check
5186 definitively whether SPECIFICATION or ABSTRACT_ORIGIN exist before
5187 inspecting fields within.
5188 (lto_read_DIE_at_ptr): Delete check for null result; let callers
5189 handle this appropriately.
5190
51912007-10-19 Nathan Froyd <froydnj@codesourcery.com>
5192
5193 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Handle
5194 DW_AT_abstract_origin properly. Ensure that we're not dealing with
5195 both DW_AT_abstract_origin and DW_AT_specification.
5196 (lto_read_subroutine_type_subprogram_DIE): Handle
5197 DW_AT_abstract_origin.
5198 (lto_read_DIE): Use lto_read_only_for_child_DIEs for labels.
5199 (lto_read_DIE_at_ptr): Define as static to match declaration.
5200 Lookup the PTR in the cache before reading it from the file.
5201 (lto_resolve_var_ref): Adjust accordingly.
5202 (lto_resolve_fn_ref): Adjust accordingly. Tweak comment.
5203 (lto_resolve_field_ref): Adjust accordingly. Tweak comment.
5204
52052007-10-19 Nathan Froyd <froydnj@codesourcery.com>
5206
5207 * lto.c (lto_read_DIE_at_ptr): New function.
5208 (lto_resolve_var_ref): Use it.
5209 (lto_resolve_fn_ref): Use it.
5210 (lto_resolve_field_ref): Use it.
5211 (lto_read_variable_formal_parameter_constant_DIE): Follow
5212 DW_AT_specification and return the associated decl when appropriate.
5213
52142007-10-18 Nathan Froyd <froydnj@codesourcery.com>
5215
5216 * lto-lang.c (lto_type_for_mode): Move after lto_type_for_size.
5217 Implement for scalar integer modes.
5218 (lto_init): Initialize size_type_node.
5219
3f8257db 52202007-10-18 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
5221
5222 * lto-read.c (input_expr_operand): Remove ssa name asserts.
5223 (input_local_var): Add chaining for params.
5224 (input_ssa_names): Add cfun parameter.
5225 (input_function): Remove unnecessary else.
5226
52272007-10-17 Nathan Froyd <froydnj@codesourcery.com>
5228
5229 * lto.c (lto_read_only_for_child_DIEs): Mark die parameter as unused.
5230 (lto_resolve_var_ref): Use proper types.
5231 (lto_resolve_fn_ref): Likewise.
5232 (lto_resolve_field_ref): Likewise.
5233
52342007-10-17 Nathan Froyd <froydnj@codesourcery.com>
5235
5236 * lto-read.c (input_expr_operand): Remove case.
5237
52382007-10-17 Nathan Froyd <froydnj@codesourcery.com>
5239
5240 * lto.c (lto_read_only_for_child_DIEs): New function.
5241 (lto_read_DIE): Use it for lexical_block and inlined_subroutine DIEs.
5242 * lto-elf.c (lto_elf_map_lto_section): Remove.
5243 (lto_elf_file_vtable): Use lto_elf_map_optional_lto_section instead.
5244 * lto-read.c (input_expr_operand): Assert that we never read a NULL
5245 SSA_NAME. Add missing case for mechanical codes.
5246 (input_cfg): Use basic_block_info_for_function instead of
5247 basic_block_info.
5248
3f8257db 52492007-10-16 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
5250
5251 * lto-read.c (input_sleb128, input_integer): Use proper casts.
5252 (input_list): Renamed input_tree_list and modified to follow same
5253 protocol as lto-function-out.c:output_tree_list.
5254 (input_expr_operand): Make asm operands use input_tree_list.
5255 (input_local_var): Now uses input_tree_list.
5256 (lto_read_body): Change placement for setting context of debug_labels.
5257
5258
3f8257db 52592007-10-16 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
5260
5261 * lto-read.c (input_real): Output debugging in proper order.
5262 (input_integer): Compute bit lengths properly.
5263 (input_list): Clean up declaration.
5264 (input_expr_operand): Change calls to input_real to match fix.
5265 Make reading of LTO_bit_field_ref1 match output.
5266 (input_local_var): Make reading of attributes match what is being
5267 written.
5268 (dump_debug_stream): Also print char in hex.
5269 (debug_out_fun): Fix signed unsigned mismatch.
5270
52712007-10-10 Nathan Froyd <froydnj@codesourcery.com>
5272
5273 * lto.c (lto_read_form): Handle DW_AT_MIPS_linkage_name and
5274 DW_AT_GNU_vector specially, as they are not contiguous with the
5275 specified set of attribute names. Use class_mask to check for
5276 errors at the end of the function
5277 (lto_resolve_var_ref): Read the DIE if it is not cached.
5278 (lto_resolve_fn_ref): Likewise.
5279 (lto_resolve_field_ref): Likewise.
5280
52812007-10-05 Nathan Froyd <froydnj@codesourcery.com>
5282
5283 * lto.c: Include dwarf2out.h.
5284 (lto_cache_store_DIE): Assert that we never change the value.
5285 (LTO_BEGIN_READ_ATTRS): Print an informative error message.
5286 (lto_read_compile_unit_DIE): Handle DW_AT_entry_pc.
5287 (lto_read_array_type_DIE): Don't error on ndims == 0; build a
5288 sensible type instead.
5289 (lto_read_structure_union_class_type_DIE): Store the newly
5290 created type prior to reading the members of the structure to
5291 avoid infinite recursion. Avoid computing types and alignments
5292 for structures whose sizes are unknown.
5293 (lto_read_variable_formal_parameter_const): Handle DW_AT_artificial
5294 and set DECL_ARTIFICIAL accordingly. Ignore DW_AT_abstract_origin,
5295 DW_AT_const_value, and DW_AT_specification.
5296 (lto_read_subroutine_type_subprogram_DIE): Handle DW_AT_declaration.
5297 Return early if we have already constructed the function type.
5298 (lto_read_typedef_DIE): Check to see if the type has been cached
5299 already. Cache the type before reading any children.
5300 (lto_read_const_volatile_restrict_type_DIE): Handle DW_AT_name.
5301 (lto_read_DIE): Unset context->skip_non_parameters around reading
5302 the DIE.
5303 (lto_resolve_fn_ref): Delete trailing whitespace.
5304
3f8257db 53052007-09-11 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
5306
5307 * lto-read.c (input_expr_operand): Added type for STRING_CST.
5308
53092007-09-10 Nathan Froyd <froydnj@codesourcery.com>
5310
5311 * lto-read.c (lto_read): Set the type of the newly created CALL_EXPR.
5312
53132007-09-07 Nathan Froyd <froydnj@codesourcery.com>
5314
5315 * lto-lang.c (signed_and_unsigned_types): New variable.
5316 (lto_type_for_size): Consult signed_and_unsigned_types to find
5317 an approprite type, creating it if necessary.
5318 (lto_set_decl_assembler_name): Add actual method body.
5319
53202007-09-06 Jim Blandy <jimb@codesourcery.com>
5321
5322 * lto.c (lto_read_variable_formal_parameter_constant_DIE): If we
5323 can't find a var init for this variable, leave its DECL_INITIAL.
5324 * lto-elf.c (lto_elf_map_optional_lto_section): Renamed from
5325 lto_elf_map_fn_body.
5326 (lto_map_lto_section): New function.
5327 (lto_elf_file_vtable): Use lto_elf_map_lto_section for function
5328 bodies, and lto_elf_map_optional_lto_section for variable
5329 initializers.
5330 (lto_elf_find_section_data): Quietly return NULL if the section is
5331 missing.
5332 (lto_elf_file_open): Check for a NULL from lto_elf_find_section_data.
5333
5334 * lto-elf.c (lto_elf_find_section_data): Remove dead code.
5335
5336 * lto-read.c (lto_read_body): Doc fix.
5337
3f8257db 53382007-08-29 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
5339
5340 * lto-read.c (fun_in): Renamed to data_in.
5341 (input_expr_operand, input_local_var, input_string_internal,
5342 input_string, input_real, input_list, get_label_decl,
5343 get_type_ref, input_expr_operand, input_globals, input_labels,
5344 input_local_vars_index, input_local_var, input_local_vars,
5345 input_cfg, input_phi, input_ssa_names, input_bb, ): Renamed fun_in to data_in.
5346 (input_constructor): New function.
5347 (lto_read_function_body): Renamed to lto_read_body and generalized
5348 to handle both functions and constructors.
5349 (lto_read_function_body, lto_read_var_init): New function.
5350
5351
3f8257db 53522007-08-28 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
5353
5354 * lto-read.c (input_expr_operand): Assert that there really is a
5355 FUNCTION_DECL.
5356 (input_globals): Removed checks on 0 section.
5357
3f8257db 53582007-08-28 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
5359
5360 * lto-read.c (fun_in): Added local_decls_index and
5361 local_decls_index_d.
5362 (input_expr_operand): Changed inputting of PARM_DECLs and VAR_DECLs.
5363 (input_globals): Enabled code to handle FIELD_DECLs.
5364 (input_local_vars_index, input_local_vars): New function.
5365 (input_local_var): Changed to allow locals to be input randomly.
5366 (lto_read_function_body): Added code to input the
5367 local_decls_index and to free various structures.
5368
53692007-08-17 Jim Blandy <jimb@codesourcery.com>
5370
5371 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Remove
5372 ATTRIBUTE_UNUSED from 'die' formal.
5373
5374 Use enum LTO_tags where appropriate, instead of 'unsigned int'.
5375 * lto-read.c (input_record_start): Fix return type, type of 'tag'.
5376 (input_list): Fix type of 'tag'.
5377 (input_expr_operand): Fix type of 'tag' argument. Update
5378 declaration. Fix type of 'ctag'. Add default case to switch,
5379 since the type of the switched value is now an enum.
5380 (input_local_vars): Fix type of 'tag'.
5381 (input_bb): Fix type of 'tag' argument.
5382 (input_function): Fix type of 'tag' argument.
5383
53842007-08-16 Jim Blandy <jimb@codesourcery.com>
5385
5386 * lto.c (lto_read_member_DIE): Record the tree we create in
5387 fd->die_cache. (Our 'die' argument is no longer unused.)
5388 (lto_resolve_field_ref): New function.
5389 * lto.h (lto_resolve_field_ref): New declaration.
5390
53912007-08-15 Jim Blandy <jimb@codesourcery.com>
5392
5393 * lto-read.c (lto_read_var_init): Mark arguments as unused.
5394
53952007-08-07 Jim Blandy <jimb@codesourcery.com>
5396
5397 * lto.c (lto_read_form): Complete attr_classes table.
5398 (DWARF2_form_data): Doc fix.
5399
54002007-08-05 Mark Mitchell <mark@codesourcery.com>
5401
5402 * lto.h (lto_file_vtable): Remove read_var_init. Add map_var_init
5403 and unmap_var_init.
5404 (lto_read_var_init): Declare.
5405 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Use new
5406 interface for reading variable initializers.
5407 * lto-elf.c (lto_elf_read_var_init): Remove.
5408 (lto_elf_file_vtable): Update initializer.
5409 (lto_elf_read_var_init): Add comment about unused-ness.
5410 * lto-read.c (lto_read_var_init): New.
5411
5412 * lto.c (lto_read_form): Add entry for DW_AT_inline.
5413
3f8257db 54142007-08-02 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
5415
5416 * lto-read.c (lto_read_function_body): Moved declaration of fn
5417 outside of ifdef.
5418
3f8257db 54192007-08-01 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
5420
5421 * lto-read.c (input_uleb128, input_string_internal, input_real,
5422 input_integer, input_record_start, input_list, get_type_ref,
5423 input_flags, input_expr_operand, input_expr_operand,
5424 input_expr_operand, input_local_vars, input_cfg, input_phi,
5425 input_ssa_names, input_bb, input_function): Added semicolons.
5426
5427
3f8257db 54282007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
5429
5430 * lto-read.c (input_globals): Remove debugging.
5431 (input_function): Set DECL_ARGUMENTS.
5432
3f8257db 54332007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
5434
5435 * lto-read.c (input_expr_operand): Fixed code for COND_EXEC,
5436 RETURN_EXPR, MODIFY_EXPR and processing of flags.
5437 (input_phi): Made work with operands other than SSA_NAMES and
5438 fixed processing of flags.
5439 (input_ssa_names): Initialize SSA_NAME_DEF_STMT to empty stmt.
5440 (input_flags): New function.
5441 * lto-lang.c (lto_init): Changed state of in_lto_p.
5442
5443
54442007-07-24 Mark Mitchell <mark@codesourcery.com>
5445
5446 * lto-tree.h (lto_varargs_cookie): Remove.
5447 * lto.c (lto_context): Add last_parm_type, varargs_p, skip_all,
5448 skip_non_parameters, skip_parameters.
5449 (lto_varargs_cookie): Remove.
5450 (lto_read_variable_formal_parameter_constant_DIE): Keep track of
5451 parameter types.
5452 (lto_read_abbrev): New function.
5453 (lto_read_subroutine_type_subprogram_DIE): Make two passes over
5454 child DIEs.
5455 (lto_read_unspecified_parameters_DIE): Set context->varargs_p.
5456 (lto_read_DIE): Use lto_read_abbrev. Honor skip_* flags.
5457 (lto_file_read): Initialize new context fields.
5458 * lto-lang.c (lto_type_for_mode): Return NULL_TREE.
5459 (lto_unsigned_type): Remove.
5460 (lto_signed_type): Likewise.
5461 (lto_signed_or_unsigned_type): Likewise.
5462 (lto_init): Do not create lto_varargs_cookie.
5463 (LANG_HOOKS_UNSIGNED_TYPE): Do not define.
5464 (LANG_HOOKS_SIGNED_TYPE): Likewise.
5465 (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Likewise.
5466
54672007-07-19 Jan Hubicka <jh@suse.cz>
5468
5469 * lto-read.c (lto_read_function_body): Produce empty scope block
5470 to avoid crash.
5471
54722007-07-18 Mark Mitchell <mark@codesourcery.com>
5473
5474 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Do not
5475 process local variables.
5476 (lto_read_subroutine_type_subprogram_DIE): Read child DIEs.
5477
3f8257db 54782007-07-13 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
5479
5480 * lto-read.c (input_list, input_expr_operand): Added struct
5481 function parameter.
5482 (init_cfg, finalize_cfg): Removed function.
5483 (input_expr_operand): Added SSA_NAME and GIMPLE_MODIFY_STMT cases.
5484 (input_labels, input_local_vars): Now takes input_block parameter rather than
5485 synthsyzing it.
5486 (input_cfg, input_phi, input_ssa_names): New functions.
5487 (input_bb): Now passes in input_blocks. Does not construct cfg
5488 and processes the list of phi functions.
5489 (input_function): Now builds both the cfg and ssa_names table.
5490 (lto_read_function_body): Processes new header fields to construct
5491 streams for the ssa_names and cfg and their debugging.
5492 * lto/lto-lang.c (lto_init): Set in_lto_p.
5493
5494
54952007-06-28 Mark Mitchell <mark@codesourcery.com>
5496
5497 * lto.h (lto_file_vtable): Add read_var_init.
5498 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Read
5499 initializers.
5500 (lto_main): Remove bogus asserts.
5501 * lto-elf.c (tm.h): Include it.
5502 (libiberty.y): Likewise.
5503 (lto_elf_file): Add strtab and symtab. Rename
5504 string_table_section_index to sec_strtab.
5505 (lto_elf_file_vtable): Add lto_elf_read_var_init.
5506 (lto_elf_get_shdr): New function.
5507 (lto_elf_free_shdr): Likewise.
5508 (lto_elf_find_section_data): Use them.
5509 (lto_elf_read_symtab): New function.
5510 (lto_elf_lookup_sym): Likewise.
5511 (lto_elf_free_sym): Likewise.
5512 (lto_elf_file_open): Tidy. Call lto_elf_read_symtab.
5513 (lto_elf_built_init): New function.
5514 (lto_elf_read_var_init): Likewise.
5515 * Make-lang.in (lto/lto-elf.o): Depend on $(TM_H).
5516
3f8257db 55172007-06-26 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
5518
5519 * lto-read (make_new_block): Initialize the stmt_list.
5520 (lto_static_init_local): Add debugging for missing codes.
5521
55222007-06-26 Mark Mitchell <mark@codesourcery.com>
5523
5524 * lto.c (lto_read_subroutine_type_subprogram_DIE): Handle
5525 unprototyped functions.
5526
55272007-06-23 Mark Mitchell <mark@codesourcery.com>
5528
5529 * lto.c (lto_read_variable_formal_parameter_constant_DIE):
5530 Handle DW_AT_MIPS_linkage_name.
5531 (lto_read_subroutine_type_subprogram): Likewise. Correct
5532 compilation errors.
5533 (lto_main): Remove incorrect assertions.
5534 * lto-symbtab.c: Build function types out of TREE_LISTs.
5535
5536 * lto-elf.c (<libelf>): Check for HAVE_LIBELF_H.
5537
5538 * Make-lang.in (LTO_OBJS): Depend on attribs.o.
5539
3f8257db 55402007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com>
d7f09764
DN
5541
5542 * lto/lto-tree.h (lang_decl, lang_type, language_function): Added
5543 dummy since ggc does not like empty structs.
5544 * lto/lto-elf.c (libelf.h): Changed to libelf/libelf.h.
5545 * lto/lto-read.c (ADD_CLASS_FLAG, ADD_EXPR_FLAG): Changed
5546 expr->common to expr->base.
5547 (make_new_block): Moved stmt_list to proper place.
5548
5549
55502007-03-14 Robert Kennedy <jimbob@google.com>
5551
5552 Eliminate use of lang_hooks.set_decl_assembler_name from LTO
5553 * lto.c (lto_read_subroutine_type_subprogram_DIE) Get DECL
5554 assembler name from DWARF.
5555 * lto-lang.c (lto_set_decl_assembler_name) New function.
5556
55572006-09-10 Mark Mitchell <mark@codesourcery.com>
5558
5559 * lto.h (lto_file_vtable): New structure.
5560 (lto_file): Add vtable pointer.
5561 (lto_file_init): Add vtable paramter.
5562 (lto_read_function_body): New function.
5563 (lto_symtab_merge_fn): New function.
5564 * lto.c (lto_file_init): Add vtable parameter.
5565 (lto_read_form): Fill in entries for DW_AT_prototyped,
5566 DW_AT_frame_base.
5567 (lto_read_subroutine_type_subprogram_DIE): New function.
5568 (lto_read_DIE): Fill in entries for DW_TAG_subroutine_type and
5569 DW_TAG_subprogram.
5570 * lto-elf.c (lto_elf_vile_vtable): New variable.
5571 (lto_elf_file_open): Pass it to lto_file_init.
5572 (lto_elf_map_fn_body): New function.
5573 (lto_elf_unmap_fn_body): Likewise.
5574 * lto-read.c: New file.
5575 * lto-symtab.c (lto_symtab_merge_fn): New function.
5576 * lto-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define to
5577 tree_rest_of_compilation.
5578 * Make-lang.in (LTO_OBJS): Add lto-read.o
5579 (lto-read.o): New target.
5580
55812006-09-03 Mark Mitchell <mark@codesourcery.com>
5582
5583 * lto.c (<inttypes.h>): Don't include it.
5584 (lto_context): Don't typedef it.
5585 (lto_resolve_reference): New function.
5586 (lto_read_form): Use it.
5587 (lto_resolve_type_ref): New function.
5588 (lto_resolve_var_ref): Likewise.
5589 (lto_resolve_fn_ref): Likewise.
5590 * lto.h (<inttypes.h>): Include it.
5591 (lto_context): New type.
5592 (lto_ref): New structure.
5593 (lto_resolve_type_ref): Declare.
5594 (lto_resolve_var_ref): Likewise.
5595 (lto_resolve_fn_ref): Likewise.
5596
55972006-08-18 Mark Mitchell <mark@codesourcery.com>
5598
5599 * lang-specs.h: New file.
5600
56012006-08-14 Mark Mitchell <mark@codesourcery.com>
5602
5603 * lto.c (lto_info_fd_init): Allocate the DIE cache.
5604 (lto_info_fd_close): Deallocate it.
5605 (lto_die_cache_entry): New structure.
5606 (lto_cache_hash): New function.
5607 (lto_cache_eq): Likewise.
5608 (lto_cache_store_DIE): Likewise.
5609 (lto_cache_lookup_DIE): Likewise.
5610 (lto_read_referenced_type_DIE): Use the cache.
5611 (lto_read_pointer_type_DIE): Robustify.
5612 (lto_read_DIE): Use the cache.
5613 * lto.h (hashtab.h): Include.
5614 (lto_info_fd): Add DIE cache.
5615 * Make-lang.in (LTO_H): New variable.
5616 (lto/lto-lang.o): Use LTO_H.
5617 (lto/lto-elf.o): Likewise.
5618 (lto/lto-symtab.o): Likewise.
5619
56202006-07-09 Mark Mitchell <mark@codesourcery.com>
5621
5622 * lto.c (lto_abi_mismatch_error): New function.
5623 (lto_abbrev_read): Initialize num_abbrevs.
5624 (lto_read_form): Specify allowed form classes for
5625 DW_AT_declaration. Adjust for change to lto_set_cu_context.
5626 (lto_read_variable_formal_parameter_constant_DIE): Handle
5627 DW_AT_declaration. Call lto_symtab_merge_var.
5628 (lto_read_pointer_type_DIE): New function.
5629 (lto_read_base_type_DIE): Use build_nonstandard_integer_type. Do
5630 not creat TYPE_DECLs for types that already have them.
5631 (lto_read_DIE): Add lto_read_pointer_type_DIE.
5632 (lto_set_cu_context): Make cu_start point to the header, not the
5633 first DIE.
5634 (lto_file_read): Adjust for change to lto_set_cu_context.
5635 * Make-lang.in (LTO_OBJS): Add lto-symtab.o.
5636 (lto/lto-symtab.o): New rule.
5637 * lto-tree.h (lang_identifier): Add decl field.
5638 (LANG_IDENTIFIER_CAST): New macro.
5639 (LTO_IDENTIFIER_DECL): Likewise.
5640 (lto_symtab_merge_var): Declare.
5641 * lto-symtab.c: New file.
5642
56432006-07-02 Daniel Berlin <dberlin@dberlin.org>
5644
5645 * lto.c (lto_context): Add current_cu and info_fd members.
5646 (DWARF2_CompUnit): New structure.
5647 (lto_read_DIE): Take lto_info_fd *.
5648 (lto_read_child_DIEs): Ditto.
5649 (lto_file_corrupt_error): Constify argument.
5650 (lto_set_cu_context): New function
5651 (lto_info_fd_init): Ditto.
5652 (lto_info_fd_close): Ditto.
5653 (lto_file_init): Use lto_info_fd_init.
5654 (lto_file_close): Use lto_info_fd_close.
5655 (lto_read_initial_length): Pass in pointer to header size.
5656 (lto_read_comp_unit_header): Correct cu_length to
5657 real length from beginning of header. Take lto_info_fd * as
5658 argument.
5659 (find_cu_for_offset): New function.
5660 (lto_read_form): Change first argument to lto_info_fd *.
5661 Add FORM_CONTEXT argument.
5662 Handle DW_FORM_ref_addr.
5663 (lto_read_tag_DIE): Change first argument to lto_info_fd *.
5664 (LTO_BEGIN_READ_ATTRS_UNCHECKED): Save old context.
5665 Swap contexts if necessary for form.
5666 (LTO_BEGIN_READ_ATTRS): Cast fd to right type for
5667 lto_file_corrupt_error.
5668 (LTO_END_READ_ATTRS): Swap contexts back if it had changed.
5669 (lto_read_referenced_type_DIE): Change first argument to
5670 lto_info_fd *. Access lto_fd fields through base pointer.
5671 (lto_read_compile_unit_DIE): Change first argument to an
5672 lto_info_fd *.
5673 (lto_read_variable_formal_parameter_constant_DIE): Ditto.
5674 (lto_read_base_type_DIE): Ditto.
5675 (lto_read_child_DIEs): Ditto.
5676 (lto_read_DIE): Ditto. Change type of function pointer.
5677 (lto_info_read): New function.
5678 (lto_set_cu_context): Ditto.
5679 (lto_file_read): Use lto_info_read, walk resulting CU's
5680 (lto_main): Update for lto_info_fd change.
5681 * lto-elf.c (lto_elf_file_open): Cast lto_info_fd to lto_fd where
5682 necessary.
5683 * lto.h (DWARF2_CompUnit): New structure.
5684 (lto_info_fd): Ditto.
5685 (lto_file): Change debug_info to be an lto_info_fd.
5686
56872006-06-25 Mark Mitchell <mark@codesourcery.com>
5688
5689 * lto.c (toplev.h): Include it.
5690 (dwarf2.h): Likewise.
5691 (tree.h): Likewise.
5692 (tm.h): Likewise.
5693 (cgraph.h): Likewise.
5694 (ggc.h): Likewise.
5695 (inttypes.h): Likewise.
5696 (DWARF2_attr): New type.
5697 (DWARF2_abbrev): Likewise.
5698 (DWARF2_class): Likewise.
5699 (DWARF2_form_data): Likewise.
5700 (lto_context): Likewise.
5701 (lto_fd_init): New function.
5702 (lto_abbrev_fd_init): Likewise.
5703 (lto_abbrev_fd_close): Likewise.
5704 (lto_file_init): Use them.
5705 (lto_file_close): New function.
5706 (lto_file_corrupt_error): Likewise.
5707 (LTO_CHECK_INT_VAL): New macro.
5708 (lto_check_size_t_val): New function.
5709 (lto_check_int_val): Likewise.
5710 (LTO_READ_TYPE): New macro.
5711 (lto_read_ubyte): New function.
5712 (lto_read_uhalf): Likewise.
5713 (lto_read_uword): Likewise.
5714 (lto_read_uleb128): Likewise.
5715 (lto_read_initial_length): Likewise.
5716 (lto_abbrev_read_attrs): Likewise.
5717 (lto_abbrev_read): Likewise.
5718 (lto_abbrev_lookup): Likewise.
5719 (lto_read_section_offset): Likewise.
5720 (lto_read_comp_unit_header): Likewise.
5721 (lto_read_form): Likewise.
5722 (LTO_BEGIN_READ_ATTRS_UNCHECKED): New macro.
5723 (LTO_BEGIN_READ_ATTRS): Likewise.
5724 (LTO_END_READ_ATTRS): Likewise.
5725 (lto_unsupported_attr_error): New function.
5726 (lto_get_identifier): Likewise.
5727 (lto_read_referenced_type_DIE): Likewise.
5728 (lto_read_compile_unit_DIE): Likewise.
5729 (lto_read_variable_formal_parameter_constant_DIE): Likewise.
5730 (lto_read_base_type_DIE): Likewise.
5731 (lto_read_DIE): Likewise.
5732 (lto_read_child_DIEs): Likewise.
5733 (lto_file_read): Read DIEs.
5734 (lto_main): Ask middle end to emit entities.
5735 * lto-tree.h (lang_identifier): Inherit from tree_identifier.
5736 * lto-elf.c (lto_elf_file_open): Adjust for interface changes.
5737 (lto_elf_file_close): Likewise.
5738 * lto.h (lto_file): Declare.
5739 (DWARF2_abbrev): Likewise.
5740 (lto_fd): New type.
5741 (lto_abbrev_fd): Likewise.
5742 (lto_file): Use new types.
5743 (lto_file_close): Declare.
5744 * lto-lang.c (lto_init): Always use unit-at-a-time mode.
5745
57462006-06-18 Mark Mitchell <mark@codesourcery.com>
5747
5748 * lto.h: New file.
5749 * lto.c: New file.
5750 * lto-elf.c: New file.
5751 * lto-lang.c (flags.h): Include it.
5752 (lto.h): Likewise.
5753 (lto_init): New function.
5754 (lto_write_globals): Remove.
5755 (LANG_HOOKS_WRITE_GLOBALS): Define to lhd_do_nothing.
5756 (LANG_HOOKS_INIT): Define.
5757 (LANG_HOOKS_PARSE_FILE): Likewise.
5758 * Make-lang.in (LTO_OBJS): Add lto.o and lto-elf.o.
5759 (LTO_EXE): Link with libelf.
5760 (lto/lto-lang.o): Update dependencies.
5761 (lto/lto.o): New target.
5762 (lto/lto-elf.o): Likewise.
5763
57642006-06-12 Mark Mitchell <mark@codesourcery.com>
5765
5766 * config-lang.in: New file.
5767 * Make-lang.in: Likewise.
5768 * lto-tree.h: Likewise.
5769 * lto-lang.c: Likewise.
818ab71a 5770\f
85ec4feb 5771Copyright (C) 2006-2018 Free Software Foundation, Inc.
d7f09764 5772
818ab71a
JJ
5773Copying and distribution of this file, with or without modification,
5774are permitted in any medium without royalty provided the copyright
5775notice and this notice are preserved.