]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/lto/ChangeLog
alpha.md (vecmodesuffix): New mode attribute.
[thirdparty/gcc.git] / gcc / lto / ChangeLog
CommitLineData
0b8c30f9
TB
12012-10-09 Tobias Burnus <burnus@net-b.de>
2
3 * lto-lang.c (lto_register_builtin_type): Avoid useless
4 decl creation.
5 * lto-object.c (lto_obj_file_open, lto_obj_file_open): Free memory.
6
da3202a8
TB
72012-10-08 Tobias Burnus <burnus@net-b.de>
8
9 * lto.c (lto_wpa_write_files, read_cgraph_and_symbols):
10 Free lto_file struct after closing the file.
11
2512a443
JH
122012-10-08 Jan Hubicka <jh@suse.cz>
13
14 * lto/lto.c (remember_with_vars): Also fixup INTEGER_CST.
15 (fixup_integer_cst): New functoin.
16 (lto_ft_type): Fixup BASETYPE of methods and offsets.
17
e75f8f79
JH
182012-10-07 Jan Hubicka <jh@suse.cz>
19
20 * lto.c (read_cgraph_and_symbols): Release type merging hash early;
21 release input encoders.
22 * lto-partition.c (new_partition): Update for new lto_symtab_encoder_new.
23
46591697
JH
242012-10-06 Jan Hubicka <jh@suse.cz>
25
26 PR lto/54790
27 * lto.c (resolution_map): New static var.
28 (register_resolution): New function.
29 (lto_register_var_decl_in_symtab): Use it.
30 (read_cgraph_and_symbols): Copy resolutions into the symtab.
31
af16bc76
MJ
322012-09-20 Martin Jambor <mjambor@suse.cz>
33
34 * lto.c (lto_materialize_function): Call push_struct_function and
35 pop_cfun.
36
5368224f
DC
372012-09-19 Dehao Chen <dehao@google.com>
38
39 * lto/lto.c (lto_fixup_prevailing_decls): Remove tree.exp.block field.
40
b5493fb2
JH
412012-09-19 Jan Hubicka <jh@suse.cz>
42
43 * lto.c (lto_materialize_function): Update confused comment.
44 (read_cgraph_and_symbols): Do not free symtab.
45
c3c445e1
JH
462012-09-12 Jan Hubicka <jh@suse.cz>
47
48 * lto.c (do_whole_program_analysis): Care timevars, statistics and
49 AUX pointer cleaning. Add max partitioning.
50 * lto-partition.c (enum symbol_class): New.
51 (get_symbol_class): New function.
52 (symbol_partitioned_p): New function.
53 (add_references_to_partition): Remove.
54 (add_aliases_to_partition): Remove.
55 (add_cgraph_node_to_partition_1): Remove.
56 (add_cgraph_node_to_partition): Remove.
57 (add_symbol_to_partition): New function.
58 (add_symbol_to_partition_1): New function.
59 (contained_in_symbol): New function.
60 (partition_cgraph_node_p): Remove.
61 (partition_varpool_node_p): Remove.
62 (partition_symbol_p): Remove.
63 (lto_1_to_1_map): Cleanup.
64 (lto_max_map): New.
65 (lto_balanced_map): Update.
66 (lto_promote_cross_file_statics): Update.
67 * lto-partition.h (lto_max_map): Declare.
68 * timevar.def (TV_WHOPR_PARTITIONING): New timevar.
69
b5c7cdfb
JH
702012-09-11 Jan Hubicka <jh@suse.cz>
71
72 PR lto/54312
73 * lto.c (uniquify_nodes): Remove quadratic loop checking if the
74 type is variant leader.
75
b29402f0
RG
762012-09-11 Richard Guenther <rguenther@suse.de>
77
78 * lto.c (enum gtc_mode): Remove.
79 (struct type_pair_d): Adjust.
80 (lookup_type_pair): Likewise.
81 (gimple_type_leader): Do not mark as deletable.
82 (gimple_lookup_type_leader): Adjust.
83 (gtc_visit): Likewise.
84 (gimple_types_compatible_p_1): Likewise.
85 (gimple_types_compatible_p): Likewise.
86 (gimple_type_hash): Likewise.
87 (gimple_register_type): Likewise.
88 (read_cgraph_and_symbols): Manage lifetime of tables
89 here.
90
b8f4e58f
RG
912012-09-11 Richard Guenther <rguenther@suse.de>
92
93 * lto.c (gimple_types, type_hash_cache, enum gtc_mode,
94 struct type_pair_d, lookup_type_pair, struct sccs,
95 next_dfs_num, gtc_next_dfs_num, struct gimple_type_leader_entry_s,
96 gimple_type_leader, gimple_lookup_type_leader, compare_type_names_p,
97 gtc_visit, gimple_types_compatible_p_1, gimple_types_compatible_p,
98 visit, iterative_hash_name, struct type_hash_pair,
99 type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash,
100 gimple_type_eq, gimple_register_type_1, gimple_register_type):
101 Move here from gimple.c
102 (read_cgraph_and_symbols): Free hash tables here.
103 (print_lto_report_1): New function wrapping print_lto_report.
104 (do_whole_program_analysis): Call it.
105 (lto_main): Likewise.
106
1cdbb3f9
JH
1072012-09-10 Jan Hubicka <jh@suse.cz>
108
109 * lto-partition.c (partition_symbol_p): Forward declare.
110 (add_references_to_partition): Reimplement using partition_symbol_p.
111 (add_aliases_to_partition): Break out from add_references_to_partition;
112 reimplement using partition_symbol_p.
113 (add_cgraph_node_to_partition_1): Handle callees using partition_symbol_p;
114 add sanity checks.
115 (add_varpool_node_to_partition): Use add_aliases_to_partition.
116 (partition_varpool_node_p): Do not special case aliases.
117
b4661bfe
JH
1182012-08-12 Jan Hubicka <jh@suse.cz>
119
120 * lto.c (lto_wpa_write_files): Do not delete partition encoder;
121 it is deleted after streaming.
122 * lto-partition.c (partition_symbol_p): New function.
123 (promote_var, promote_fn): Remove.
124 (promote_symbol): New function.
125 (lto_promote_cross_file_statics): First compute boundaries; rewrite
126 to lookup the actual boundaries instead of computing them ad-hoc.
127
7b99cca4
JH
1282012-08-12 Jan Hubicka <jh@suse.cz>
129
130 Replace cgraph_node_set and varpool_node_set by symtab_node_encoder
131 in partitioning.
132 * lto-partition.h (ltrans_partition_def): Replace cgraph_set and varpool_set
133 by encoder.
134 * lto-partition.c (new_partition): Update.
135 * lto.c (cmp_partitions_order): Update.
136 (lto_wpa_write_files): Update.
137 (free_ltrans_partitions): Update.
138 (add_references_to_partition): Update.
139 (add_cgraph_node_to_partition_1): Update.
140 (add_cgraph_node_to_partition): Update.
141 (add_varpool_node_to_partition): Update.
142 (undo_partition): Update.
143 (lto_balanced_map): Update.
144 (set_referenced_from_other_partition_p, set_reachable_from_other_partition_p,
145 set_referenced_from_this_partition_p): Update.
146 (lto_promote_cross_file_statics): Update.
147
f27c1867
JH
1482012-08-12 Jan Hubicka <jh@suse.cz>
149
150 * lto-partition.c (set_referenced_from_other_partition_p,
151 set_reachable_from_other_partition_p, set_referenced_from_this_partition_p):
152 New functions.
153 (lto_promote_cross_file_statics): Use them.
154
ab96cc5b
JH
1552012-07-24 Jan Hubicka <jh@suse.cz>
156
157 * lto.c (read_cgraph_and_symbols): Use input_symtab.
158
0229aee9
UB
1592012-07-24 Uros Bizjak <ubizjak@gmail.com>
160
161 * lto-tree.h (lang_decl): Add variable_size GTY option.
162
7ee2468b
SB
1632012-07-16 Steven Bosscher <steven@gcc.gnu.org>
164
165 * lto.c: Do not include timevar.h.
166 * Make-lang.in: Fix dependencies.
167
a910399d
LC
1682012-06-18 Lawrence Crowl <crowl@google.com>
169
170 * lto.c (do_whole_program_analysis): Rename use of TV_PHASE_CGRAPH to
171 TV_PHASE_OPT_GEN. Use new timevar TV_PHASE_STREAM_OUT around the call
172 to lto_wpa_write_files.
173 (lto_main): Rename use of TV_PHASE_CGRAPH to TV_PHASE_OPT_GEN. Move
174 start of TV_PHASE_OPT_GEN to include call to materialize_cgraph. Use
175 TV_PHASE_SETUP for the call to lto_init. Use new timevar
176 TV_PHASE_STREAM_IN around the call to read_cgraph_and_symbols.
177 Turn TV_PHASE_PARSING off then back on again, because LTO is pretending
178 to be a front end, but is not one.
179
877ab5e9
JH
1802012-05-18 Jan Hubicka <jh@suse.cz>
181
182 * lto.c (lto_materialize_constructors_and_inits): Remove.
183 (read_cgraph_and_symbols): Remove handling of alias pairs.
184
6649df51
JH
1852012-05-17 Jan Hubicka <jh@suse.cz>
186
187 * lto-partition.c (add_references_to_partition): Handle external vars.
188 (partition_varpool_node_p): Likewise.
189 (lto_promote_cross_file_statics): Do not promote externals.
190
d1ede5f4
BS
1912012-05-14 Bernd Schmidt <bernds@codesourcery.com>
192
193 * lto-lang.c (handle_fnspec_attribute): New static function.
194 (lto_attribute_table): Add "fn spec".
195 (DEF_ATTR_STRING): Define and undefine along with the other macros.
196
0d6bf48c
JH
1972012-05-04 Jan Hubicka <jh@suse.cz>
198
199 * lto.c (do_whole_program_analysis): Set timevars correctly.
200 (lto_main): Likewise.
d1ede5f4 201
1d67dde8
RB
2022012-05-04 Richard Guenther <rguenther@suse.de>
203
204 * lang.opt (fwpa): Do not mark as Optimization.
205 (fltrans): Likewise.
206
65d630d4
JH
2072012-04-30 Jan Hubicka <jh@suse.cz>
208
209 * lto.c (lto_main): Use compile ().
1d67dde8
RB
210 * lto-partition.c (partition_cgraph_node_p): Use
211 symtab_used_from_object_file_p.
65d630d4
JH
212 (partition_varpool_node_p): Likewise.
213
ead84f73
JH
2142012-04-20 Jan Hubicka <jh@suse.cz>
215
216 * lto-partition.c (partition_cgraph_node_p): Use force_output.
217
5932a4d4
JH
2182012-04-18 Jan Hubicka <jh@suse.cz>
219
220 * lto-partition.c (add_references_to_partition, lto_balanced_map):
221 Update for new ipa-ref API.
222
65c70e6b
JH
2232012-04-16 Jan Hubicka <jh@suse.cz>
224
225 * lto.c (read_cgraph_and_symbols): Use FOR_EACH
226 walkers to walk cgraph and varpool.
227 (materialize_cgraph): Likewise.
228 * lto-partition.c (lto_1_to_1_map): Likewise.
229 (lto_balanced_map): Likewise.
230 (lto_promote_cross_file_statics): Likewise.
231
960bfb69
JH
2322012-04-14 Jan Hubicka <jh@suse.cz>
233
234 * lto.c: Update field referenced for new cgraph/varpool layout.
235 * lto-partition.c: Likewise.
236
a66dc285
JH
2372012-04-11 Jan Hubicka <jh@suse.cz>
238
239 * lto.c: Update copyright; remove params.h, ipa-inline.h
240 and ipa-utils.h inlines; inline lto-partition.h
241 (ltrans_partition_def, ltrans_partition, add_cgraph_node_to_partition,
242 add_varpool_node_to_partition, new_partition, free_ltrans_partitions,
243 add_references_to_partition, add_cgraph_node_to_partition_1,
244 add_cgraph_node_to_partition, add_varpool_node_to_partition,
245 undo_partition, partition_cgraph_node_p, partition_varpool_node_p,
246 lto_1_to_1_map, node_cmp, varpool_node_cmp, lto_balanced_map,
247 promote_var, promote_fn, lto_promote_cross_file_statics): move to...
248 * lto-partition.c: ... here; new file.
249 * lto-partition.h: New file.
250 * Make-lang.in (lto.o): Update dependencies.
251 (lto-partition.o): New.
252
f3b249e5
RG
2532012-04-05 Richard Guenther <rguenther@suse.de>
254
255 * lto-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Remove
256 definition.
257
21fa2faf
RG
2582012-03-12 Richard Guenther <rguenther@suse.de>
259
260 * lto-lang.c (builtin_type_for_size): Use lto_type_for_size.
261
6bb485a3
RG
2622012-03-06 Richard Guenther <rguenther@suse.de>
263
264 PR lto/52097
265 * lto.c (uniquify_nodes): Merge TYPE_FIELDS of variant types.
266
95510497
RG
2672012-02-28 Richard Guenther <rguenther@suse.de>
268
269 PR lto/52400
270 * lto.c (lto_register_function_decl_in_symtab): Do not register
271 a reverse renamed decl mapping.
272
09228fef
JJ
2732012-01-06 Jakub Jelinek <jakub@redhat.com>
274
275 PR lto/51774
276 * lto-lang.c (handle_returns_twice_attribute): New function.
277 (lto_attribute_table): Add returns_twice attribute.
278
b03eda0d
RG
2792011-12-21 Richard Guenther <rguenther@suse.de>
280
281 * lto.c (GIMPLE_REGISTER_TYPE): New define.
282 (LTO_FIXUP_TREE): Use it.
283 (uniquify_nodes): Mark new non-prevailing types and avoid
284 calling gimple_register_type on others.
285 (lto_read_decls): Add comment.
286
4ad9a9de
EB
2872011-12-13 Eric Botcazou <ebotcazou@adacore.com>
288
289 * lto.h (lto_parse_hex): Delete.
290 * lto.c (lto_read_decls): Use 'int' for offsets.
291 (lto_parse_hex): Make static and return proper 64-bit host type.
292 (lto_resolution_read): Use proper 64-bit host type.
293
ea973bad
RG
2942011-12-13 Richard Guenther <rguenther@suse.de>
295
296 PR lto/48354
297 * lto.c (lto_ft_decl_non_common): When we merged DECL_ORIGINAL_TYPE
298 with the type of the TYPE_DECL clear DECL_ORIGINAL_TYPE.
299
c8218030
UB
3002011-12-01 Uros Bizjak <ubizjak@gmail.com>
301
302 * lto-lang.c (lto_attribute_table): Handle *tm regparm.
303 (ignore_attribute): New.
304
57ac2606
AH
3052011-11-21 Aldy Hernandez <aldyh@redhat.com>
306
307 * lto-lang.c (lto_attribute_table): Handle transaction_pure.
308 (handle_transaction_pure_attribute): New.
309
52a35ef7
RG
3102011-11-03 Richard Guenther <rguenther@suse.de>
311
312 PR lto/44965
313 * lto-lang.c (lto_post_options): Do not read file options.
314 * lto.c (lto_read_all_file_options): Remove.
315 (lto_init): Call lto_set_in_hooks here.
316
51973b1e
JH
3172011-10-09 Jan Hubicka <jh@suse.cz>
318
319 * lto.c (node_cmp, varpool_node_cmp): New functions.
320 (lto_balanced_map): Honnor -fno-toplevel-reorder of vars&functions.
321 (cmp_partitions): Rename to ...
322 (cmp_partitions_size): ... this one.
323 (cmp_partitions_order): New function.
324 (lto_wpa_write_files): Sort partitions by order when
325 -fno-toplevel-reorder is used.
326
5958009b
AK
3272011-10-09 Andi Kleen <ak@linux.intel.com>
328
329 * lto.c (lto_section_read): Call fatal_error on IO or mmap errors.
330
e79983f4
MM
3312011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
332
333 * lto-lang.c (def_builtin_1): Delete old interface with two
334 parallel arrays to hold standard builtin declarations, and replace
335 it with a function based interface that can support creating
336 builtins on the fly in the future. Change all uses, and poison
337 the old names. Make sure 0 is not a legitimate builtin index.
338
c17d253c
AK
3392011-10-02 Andi Kleen <ak@linux.intel.com>
340
341 * lto-object.c (lto_obj_add_section_data): Add list.
342 (lto_obj_add_section): Fill in list.
343 (ltoobj_build_section_table): Pass through list.
344 * lto.c (file_data_list): Declare.
345 (create_subid_section_table): Pass arguments directly.
346 Fill in list of file_datas.
347 (lwstate): Delete.
348 (lto_create_files_from_ids): Pass in direct arguments.
349 Don't maintain list.
350 (lto_file_read): Use explicit section and file data lists.
351 (lto_read_all_file_options): Pass in section_list.
352 * lto.h (lto_obj_build_section_table): Add list.
353 (lto_section_slot): Add next.
354 (lto_section_list): Declare.
355
ed0d2da0
JH
3562011-10-02 Jan Hubicka <jh@suse.cz>
357
358 PR lto/47247
359 * common.c (lto_resolution_str): Add new resolution.
360 * common.h (lto_resolution_str): Likewise.
361
ad7715f3
L
3622011-09-30 H.J. Lu <hongjiu.lu@intel.com>
363 Andi Kleen <ak@linux.intel.com>
364
365 PR lto/50568
366 * lto.c (lto_splay_tree_delete_id): New.
367 (lto_splay_tree_compare_ids): Likewise.
368 (lto_splay_tree_lookup): Likewise.
369 (lto_splay_tree_id_equal_p): Likewise.
370 (lto_splay_tree_insert): Likewise.
371 (lto_splay_tree_new): Likewise.
372 (lto_resolution_read): Change id to unsigned HOST_WIDE_INT.
373 Use lto_splay_tree_id_equal_p and lto_splay_tree_lookup.
374 (create_subid_section_table): Use lto_splay_tree_lookup and
375 lto_splay_tree_insert.
376 (lto_file_read): Use lto_splay_tree_new.
377
dde8b360
AK
3782011-09-26 Andi Kleen <ak@linux.intel.com>
379
380 * lto.c (lto_resolution_read): Remove id dumping.
381 (lto_section_with_id): Turn id HOST_WIDE_ID.
382 (create_subid_section_table): Dito.
383
892a371f
DS
3842011-08-28 Dodji Seketeli <dodji@redhat.com>
385
386 * lto-lang.c (lto_init): Likewise. Also, avoid calling
387 linemap_add twice.
388
f82d1a94
MJ
3892011-08-11 Martin Jambor <mjambor@suse.cz>
390
391 * lto.c (uniquify_nodes): Use main variant's BINFO too.
392
f0efc7aa
DN
3932011-08-08 Diego Novillo <dnovillo@google.com>
394
395 * Make-lang.in (lto/lto.o): Add TREE_STREAMER_H.
396 * lto.c: Include tree-streamer.h.
397
1a072294
RG
3982011-07-06 Richard Guenther <rguenther@suse.de>
399
400 * lto-lang.c (lto_init):
401 Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
402
7496868d
JH
4032011-06-11 Jan Hubicka <jh@suse.cz>
404
10f13f22 405 PR lto/48246
7496868d
JH
406 * lto.c (lto_1_to_1_map): Don't create empty partitions.
407 (lto_balanced_map): Likewise.
408
39e2db00
JH
4092011-06-11 Jan Hubicka <jh@suse.cz>
410
411 * lto.c (add_cgraph_node_to_partition_1): Break out from ...
412 (add_cgraph_node_to_partition) ... here; walk aliases.
413 (lto_1_to_1_map): Remove same body alias code.
414 (promote_fn): Likewise.
415 (lto_promote_cross_file_statics): Update comment.
416
417
28628ea6
DN
4182011-06-07 Diego Novillo <dnovillo@google.com>
419
420 * lto.c (uniquify_nodes): Move code to register decls to
421 the loop that computes canonical types.
422
009db074
RG
4232011-06-07 Richard Guenther <rguenther@suse.de>
424
425 * lto-lang.c (lto_init): Do not set
426 size_type_node or call set_sizetype.
427
47c79d56
DN
4282011-06-04 Diego Novillo <dnovillo@google.com>
429
430 * lto.c (lto_init): New.
431 (lto_main): Call it.
432
d5828cc7
DN
4332011-06-03 Diego Novillo <dnovillo@google.com>
434
435 * lto.c (get_resolution): Move from lto-streamer-in.c.
436 (lto_register_var_decl_in_symtab): Likewise.
437 (lto_register_function_decl_in_symtab): Likewise.
438 (uniquify_nodes): Call lto_register_var_decl and
439 lto_register_function_decl_in_symtab after reading a new
440 VAR_DECL or FUNCTION_DECL.
441
6807da97
RG
4422011-06-01 Richard Guenther <rguenther@suse.de>
443
444 * lto-lang.c (lto_register_canonical_types): New function.
445 (lto_init): Register common nodes with the canonical type machinery.
446 Do not play tricks with char_type_node.
447
d74be317
RG
4482011-05-26 Richard Guenther <rguenther@suse.de>
449
450 * lto.c (uniquify_nodes): Fix bug in one of the previous changes.
451
d9f8303f
NF
4522011-05-25 Nathan Froyd <froydnj@codesourcery.com>
453
454 * lto.c (lto_ft_typed): New function.
455 (lto_ft_common): Call it.
456 (lto_ft_constructor): Likewise.
457 (lto_ft_expr): Likewise.
458 (lto_fixup_prevailing_decls): Check for TS_COMMON before accessing
459 TREE_CHAIN.
460
fb291a1e
RG
4612011-05-20 Richard Guenther <rguenther@suse.de>
462
463 * lto.c (lto_ft_common): Remove pointer-to chain teardown.
464 (lto_ft_type): Move main-variant and pointer-to chain building ...
465 (uniquify_nodes): ... here. Compute TYPE_CANONICAL also here,
466 in a separate final loop.
467
31b3ca64
RG
4682011-05-19 Richard Guenther <rguenther@suse.de>
469
470 * lto.c (uniquify_nodes): First register all types before
471 fixing up the tree SCC.
472
35d828c5
JH
4732011-05-11 Jan Hubicka <jh@suse.cz>
474
475 PR lto/48952
476 * lto.c (do_whole_program_analysis): Do not register cgraph hooks.
477
51545682
NF
4782011-05-11 Nathan Froyd <froydnj@codesourcery.com>
479
480 * lto.c (lto_ft_type): Use TYPE_MINVAL and TYPE_MAXVAL. Adjust
481 location of binfo field.
482 (lto_fixup_prevailing_decls): Likewise.
483
8242dd04
NF
4842011-05-10 Nathan Froyd <froydnj@codesourcery.com>
485
486 * lto-lang.c (def_fn_type): Don't call build_function_type, call
487 build_function_type_array or build_varargs_function_type_array
488 instead.
489
c99c0026
EB
4902011-05-07 Eric Botcazou <ebotcazou@adacore.com>
491
492 * lto-lang.c (global_bindings_p): Return bool.
493
c47d0034
JH
4942011-05-07 Jan Hubicka <jh@suse.cz>
495
a9bcb3f0
EB
496 * lto.c (lto_materialize_function): Use
497 cgraph_function_with_gimple_body_p.
498 (add_cgraph_node_to_partition): Do not re-add items to partition;
499 handle thunks.
c47d0034
JH
500 (add_varpool_node_to_partition): Do not re-add items to partition.
501
bb3398ca
JH
5022011-05-03 Jan Hubicka <jh@suse.cz>
503
504 * lto.c (free_ltrans_partitions): Fix accidental commit.
505
1cb1a99f
JH
5062011-05-03 Jan Hubicka <jh@suse.cz>
507
508 * lto.c (ltrans_partition_def): Remove GTY annotations.
509 (ltrans_partitions): Move to heap.
510 (new_partition): Update.
511 (free_ltrans_partitions): New function.
512 (lto_wpa_write_files): Use it.
513
af8bca3c
MJ
5142011-04-29 Martin Jambor <mjambor@suse.cz>
515
516 * lto.c: Include ipa-utils.h.
517 (lto_balanced_map): Update call to ipa_reverse_postorder.
518 * Make-lang.in (lto/lto.o): Add IPA_UTILS_H to dependencies.
519
b823cdfe
MM
5202011-04-29 Michael Matz <matz@suse.de>
521
522 * lto.c (toplevel): Include tree-flow.h.
523 (lto_read_in_decl_state): Don't merge types here.
524 (tree_with_vars): New static hash table.
525 (remember_with_vars): New static functions.
526 (LTO_FIXUP_TYPE): New macro.
527 (lto_ft_common, lto_ft_decl_minimal, lto_ft_decl_common,
528 lto_ft_decl_with_vis, lto_ft_decl_non_common, lto_ft_function,
529 lto_ft_field_decl, lto_ft_type, lto_ft_binfo, lto_ft_constructor,
530 lto_ft_expr, lto_fixup_types, uniquify_nodes): New static functions.
531 (lto_read_decls): Uniquify while reading in trees.
532 (lto_fixup_data_t, LTO_FIXUP_SUBTREE,
533 LTO_REGISTER_TYPE_AND_FIXUP_SUBTREE, no_fixup_p, lto_fixup_common,
534 lto_fixup_decl_minimal, lto_fixup_decl_common, lto_fixup_decl_with_vis,
535 lto_fixup_decl_non_common, lto_fixup_function, lto_fixup_field_decl,
536 lto_fixup_type, lto_fixup_binfo, lto_fixup_constructor,
537 lto_fixup_tree): Remove.
538 (lto_fixup_state): Remove data argument. Use
539 lto_symtab_prevailing_decl.
540 (LTO_SET_PREVAIL, LTO_NO_PREVAIL): New macros.
541 (lto_fixup_prevailing_decls): New function.
542 (lto_fixup_state_aux): Argument aux is unused.
543 (lto_fixup_decls): Don't allocate pointer sets, don't use
544 lto_fixup_tree, use lto_fixup_prevailing_decls.
545 (read_cgraph_and_symbols): Allocate and remove tree_with_vars.
546 * Make-lang.in (lto/lto.o): Depend on $(TREE_FLOW_H).
547
b9843260
EB
5482011-04-16 Eric Botcazou <ebotcazou@adacore.com>
549
550 * lto.c (lto_balanced_map): Fix typos in head comment.
551 (lto_promote_cross_file_statics): Fix long lines and remove redundant
552 test.
553
e7f23018
JH
5542011-04-16 Jan Hubicka <jh@suse.cz>
555
556 * lto.c (lto_balanced_map): Update.
557
10a5dd5d
JH
5582011-04-14 Jan Hubicka <jh@suse.cz>
559
560 * lto.c: Include ipa-inline.h
b9843260
EB
561 (add_cgraph_node_to_partition, undo_partition): Use inline_summary
562 accessor.
10a5dd5d
JH
563 (ipa_node_duplication_hook): Fix declaration.
564 * Make-lang.in (lto.o): Update dependencies.
565
81f653d6
NF
5662011-04-12 Nathan Froyd <froydnj@codesourcery.com>
567
568 * lto-tree.h (union lang_tree_node): Check for TS_COMMON before
569 calling TREE_CHAIN.
570 * lto.c (lto_fixup_common): Likewise.
571
dcf0c47e
NF
5722011-04-08 Nathan Froyd <froydnj@codesourcery.com>
573
574 * lto-lang.c (handle_sentinel_attribute): Don't use TYPE_ARG_TYPES.
575 (handle_type_generic_attribute): Likewise.
576
e89964e3
MM
5772011-04-03 Michael Matz <matz@suse.de>
578
579 * lto.c (lto_materialize_function): Don't read and then discard
580 sections in WPA mode.
581 (lto_read_in_decl_state): Adjust call to lto_streamer_cache_get.
582
583 * lto-lang.c (registered_builtin_fndecls): Remove.
584 (lto_getdecls): Return NULL_TREE.
585 (lto_builtin_function): Don't remember in registered_builtin_fndecls.
586
d2b3fe18
RG
5872011-03-31 Richard Guenther <rguenther@suse.de>
588
589 PR lto/48246
590 * lto.c (lto_wpa_write_files): Disable assert for non-empty
591 partitions when checking is not enabled.
592
ba78087b
KT
5932011-03-25 Kai Tietz <ktietz@redhat.com>
594
595 * lto.c (lto_resolution_read): Use filename_cmp instead
596 of strcmp.
597 (lto_read_section_data): Likewise.
598
0edf1bb2
JL
5992011-03-25 Jeff Law <law@redhat.com>
600
601 * lto/lto-lang.c (def_fn_type): Add missing va_end.
602
62d784f7
KT
6032011-03-21 Kai Tietz <ktietz@redhat.com>
604
605 PR target/12171
606 * lto-lang.c (lto_attribute_table): Adjust table.
607
62dd9571
JJ
6082011-02-18 Jakub Jelinek <jakub@redhat.com>
609
610 PR bootstrap/47807
611 * Make-lang.in (lto/lto-lang.o): Depend on $(LTO_STREAMER_H) instead
612 of lto-streamer.h.
613
237d6259
RG
6142011-02-18 Richard Guenther <rguenther@suse.de>
615
616 PR lto/47798
617 * lto-tree.h (lto_global_var_decls): Do not declare here.
618 * lto-lang.c: Include lto-streamer.h.
619 * Make-lang.in (lto-lang.o): Adjust dependencies.
620
8ead2223
KT
6212011-02-10 Kai Tietz <kai.tietz@onevision.com>
622
623 PR lto/47241
624 * lto.c (lto_read_section_data): Free
625 fd_name in failure case.
626 For mingw targets don't hash file-descriptor.
627 (read_cgraph_and_symbols): Close current_lto_file
628 in failure case.
629
6e701822
JH
6302011-01-11 Jan Hubicka <jh@suse.cz>
631
632 PR lto/45721
633 PR lto/45375
b9843260
EB
634 * lto.c (partition_cgraph_node_p, partition_varpool_node_p): Weakrefs
635 are not partitioned.
6e701822 636
f4da8dce
NF
6372010-12-22 Nathan Froyd <froydnj@codesourcery.com>
638
639 * lto-lang.c (handle_nonnull_attribute, handle_sentinel_attribute):
640 Use prototype_p.
641
6b7fb143
RG
6422010-12-06 Richard Guenther <rguenther@suse.de>
643
644 PR lto/46796
645 * lto-lang.c (lto_init): Give names to basic types.
646
c59ffc41
JM
6472010-11-30 Joseph Myers <joseph@codesourcery.com>
648
649 * lto-object.c: Don't include toplev.h.
650 * Make-lang.in (lto/lto-object.o): Don't depend on toplev.h.
651
7c475d11
JM
6522010-11-30 Joseph Myers <joseph@codesourcery.com>
653
654 * Make-lang.in (lto/lto-object.o): Depend on toplev.h instead of
655 $(TOPLEV_H).
656
71f3e391
JM
6572010-11-29 Joseph Myers <joseph@codesourcery.com>
658
659 * lto-endian.h: Delete.
660 * lto-object.c: Don't include "libiberty.h".
661 (O_BINARY): Don't define.
662 * lto.c: Don't include "libiberty.h" or <sys/mman.h>.
663 (O_BINARY): Don't define.
664
9f1718b0
RG
6652010-11-23 Richard Guenther <rguenther@suse.de>
666
667 * lto.c (read_cgraph_and_symbols): Remove newline from diagnostic.
668
39c4e298
RG
6692010-11-23 Richard Guenther <rguenther@suse.de>
670
671 PR lto/46605
672 * lto.c (read_cgraph_and_symbols): Bail out after errors.
673
b37421c6
JM
6742010-11-17 Joseph Myers <joseph@codesourcery.com>
675
676 * lto.c (lto_main): Take no arguments.
677 * lto.h (lto_main): Update prototype.
678
d82f74d3
ILT
6792010-11-16 Ian Lance Taylor <iant@google.com>
680
681 * lto-object.c (lto_obj_file_open): Call
682 simple_object_attributes_merge rather than
683 simple_object_attributes_compare.
684
a4d8c676
JM
6852010-11-12 Joseph Myers <joseph@codesourcery.com>
686
687 * Make-lang.in (lto/lto.o): Use $(OPTS_H).
688 * lto-lang.c (lto_handle_option): Take location_t parameter.
689
d8a07487
JM
6902010-11-10 Joseph Myers <joseph@codesourcery.com>
691
692 * lto.c (lto_resolution_read): Start diagnostics with lowercase
693 letters and remove trailing '.'.
694 (lto_file_finalize): Start diagnostic with a lowercase letter.
695
6b3456d1
ILT
6962010-11-02 Ian Lance Taylor <iant@google.com>
697
698 * lto-object.c: New file.
699 * lto-elf.c: Remove file.
700 * lto-macho.c: Remove file.
701 * lto-macho.h: Remove file.
702 * lto-coff.c: Remove file.
703 * lto-coff.h: Remove file.
704 * Make-lang.in (LTO_OBJS): Change lto/$(LTO_BINARY_READER).o to
705 lto/lto-object.o.
706 ($(LTO_EXE)): Remove $(LTO_USE_LIBELF)
707 (lto/lto-objfile.o): New target.
708 (lto/lto-elf.o, lto/lto-coff.o, lto/lto-macho.o): Remove targets.
709 (lto/lto.o): Remove $(LIBIBERTY_H).
710
030cd86c
JH
7112010-10-22 Jan Hubicka <jh@suse.cz>
712
713 * lto.c (add_cgraph_node_to_partition,
714 add_varpool_node_to_partition): Add debug info.
715 (lto_1_to_1_map, lto_balanced_map): Do not re-add already
716 partitioned nodes.
717 (do_whole_program_analysis): Set function flags before dumping.
718
4490cae6
RG
7192010-10-22 Richard Guenther <rguenther@suse.de>
720
721 * lto.c (lto_fixup_type): Fixup TYPE_CANONICAL again, via
722 the new gimple_register_canonical_type.
723
703cdce3
L
7242010-10-20 H.J. Lu <hongjiu.lu@intel.com>
725
726 PR bootstrap/45954
727 * config-lang.in (boot_language): Set to $enable_lto.
728
1915c739
JJ
7292010-10-18 Jakub Jelinek <jakub@redhat.com>
730
731 PR lto/45638
732 * Make-lang.in (check-lto): New dummy target.
733
82971de5
EB
7342010-10-14 Eric Botcazou <ebotcazou@adacore.com>
735
736 * lto-elf.c (SHN_XINDEX): Define if not already defined.
737
a75bfaa6
JM
7382010-10-08 Joseph Myers <joseph@codesourcery.com>
739
740 * lto-lang.c (lto_init_options): Change to
741 lto_init_options_struct. Update parameters.
742 (LANG_HOOKS_INIT_OPTIONS): Don't define.
743 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
744
937f7f69
JH
7452010-10-06 Jan Hubicka <jh@suse.cz>
746
747 * lto.c (lto_balanced_map): Fix accounting of program size.
748
2169830c
JH
7492010-10-06 Jan Hubicka <jh@suse.cz>
750
751 * lto.c (lto_balanced_map): Do not produce empty partitions.
752
6e9bd0f8
AK
7532010-10-06 Andi Kleen <ak@linux.intel.com>
754
755 * lto.c (lto_process_name): Add.
756 (lto_main): Call lto_process_name.
757
06ed016f
JH
7582010-10-06 Jan Hubicka <jh@suse.cz>
759
760 * lto.c (partition_cgraph_node_p, partition_varpool_node_p): Handle
761 COMDATs required by the linker.
762
ae718d66
ILT
7632010-10-05 Ian Lance Taylor <iant@google.com>
764
765 * lto.c (lto_section_with_id): Make s a const pointer.
766
852e4bd2
JH
7672010-10-05 Jan Hubicka <jh@suse.cz>
768
769 * lto.c: Include params.h.
770 (add_cgraph_node_to_partition, add_varpool_node_to_partition): Do
771 refcounting in aux field.
772 (undo_partition, partition_cgraph_node_p, partition_varpool_node_p):
773 New functions.
774 (lto_1_to_1_map): Simplify.
775 (lto_balanced_map): New function.
776 (do_whole_program_analysis): Chose proper partitioning alg.
777 * Make-lang.in (lto.o): Add dependency on params.h
778
a90163e9
AK
7792010-10-04 Andi Kleen <ak@linux.intel.com>
780
781 * Make-lang.in (lto1): Add + to build rule.
782
f1e92a43
AK
7832010-10-03 Andi Kleen <ak@linux.intel.com>
784
785 * lto.c (lto_file_finalize): Replace gcc_assert for missing section
786 with fatal_error.
787
0d6e14fd
JH
7882010-09-28 Jan Hubicka <jh@suse.cz>
789
790 * lto-lang.c (handle_leaf_attribute): New function.
791 (lto_attribute_tables): Add leaf.
792
fb462383
JZ
7932010-09-25 Jie Zhang <jie@codesourcery.com>
794
795 * lto.c (lto_read_all_file_options): Start a new line after
796 printing out file names.
797
051f8cc6
JH
7982010-09-24 Jan Hubicka <jh@suse.cz>
799
800 * lto.c (lto_promote_cross_file_statics): Use const_value_known_p.
801
64e0f5ff
JH
8022010-09-20 Jan Hubicka <jh@suse.cz>
803
804 PR tree-optimize/45605
805 * lto.c (lto_promote_cross_file_statics): Use const_value_known_p.
806
a929ec3d
GP
8072010-09-18 Gerald Pfeifer <gerald@pfeifer.com>
808
809 * lto-elf.c (lto_obj_file_open): Also provide filename when
810 elf_begin fails.
811
4c588abf
JH
8122010-09-17 Jan Hubicka <jh@suse.cz>
813
814 * lto.c (lto_promote_cross_file_statics): Use const_value_known.
815
c3224d6f
RG
8162010-09-17 Richard Guenther <rguenther@suse.de>
817
818 * lang.opt (flag_wpa): Also enable for the driver.
819
52b3b3c7
JH
8202010-09-16 Jan Hubicka <jh@suse.cz>
821
822 * lto.c (lto_materialize_function): Do not tamper with STATIC and
823 EXTERNAL flags.
824
969c37b7
LB
8252010-09-15 Laurynas Biveinis <laurynas.biveinis@gmail.com>
826
827 * lto-tree.h (struct lang_type): Add variable_size GTY option.
828
098a4f50
JH
8292010-09-08 Jan Hubicka <jh@suse.cz>
830
831 * lto.c (real_file_count, real_file_decl_data): New static vars.
832 (read_cgraph_and_symbols): Use it.
833
0f443ad0
RG
8342010-09-08 Richard Guenther <rguenther@suse.de>
835
836 * lto.c (read_cgraph_and_symbols): Collect again after each
837 file.
838
ee187353
JH
8392010-09-07 Jan Hubicka <jh@suse.cz>
840
841 * lto.c (promote_var, promote_fn): Set DECL_VISIBILITY_SPECIFIED.
842
b3ec52d0
RG
8432010-09-03 Richard Guenther <rguenther@suse.de>
844
845 * lto-elf.c (validate_file): Always error if validation fails.
846
f1395d4a
JH
8472010-08-20 Jan Hubicka <jh@suse.cz>
848
849 * lto.c (lto_1_to_1_map): Be prepared for node to have no file data.
850 (lto_wpa_write_files): Update comments.
851
2429bce3
L
8522010-08-20 H.J. Lu <hongjiu.lu@intel.com>
853
854 PR bootstrap/45357
855 * lto.c (lto_materialize_function): Replace has_analyzed_clone
856 with has_analyzed_clone_p.
857
e0f967db
JH
8582010-08-20 Jan Hubicka <jh@suse.cz>
859
860 * lto.c (has_analyzed_clone_p): New function
861 (lto_materialize_function): Use callgraph to determine if
862 body is needed.
863 (materialize_cgraph): Remove DECL_IS_BUILTIN check.
864
ac47786e
NF
8652010-08-20 Nathan Froyd <froydnj@codesourcery.com>
866
867 * lto.c: Use FOR_EACH_VEC_ELT.
868
d720b869
AK
8692010-07-27 Andi Kleen <ak@linux.intel.com>
870
871 * Make-lang.in (lto.o): Add dependency to splay-tree.h
872
5f20c657
JM
8732010-07-27 Joseph Myers <joseph@codesourcery.com>
874
875 * lto-lang.c (lto_handle_option): Update prototype and return
876 value type. Remove duplicate assignment to result.
877
7a9bf9a4
JM
8782010-07-27 Joseph Myers <joseph@codesourcery.com>
879
880 * lto-lang.c (lto_option_lang_mask, lto_complain_wrong_lang_p):
881 New.
882 (lto_init_options): Update prototype.
883 (LANG_HOOKS_OPTION_LANG_MASK, LANG_HOOKS_COMPLAIN_WRONG_LANG_P):
884 Define.
885
73ce4d1e
AK
8862010-07-10 Andi Kleen <ak@linux.intel.com>
887
888 PR lto/44992
889 * lto.c: Include splay-tree.h
890 (lto_resolution_read): Change to walk file_ids tree and parse
891 extra file_id in resolution file.
892 (lto_section_with_id): Add.
893 (create_subid_section_table): Add.
894 (lwstate): Add.
895 (lto_create_files_from_ids): Add.
896 (lto_file_read): Change to handle sub file ids and create list
897 of file_datas. Add output argument for count.
898 (get_section_data): Pass file_data to lto_get_section_name.
899 (lto_flatten_file): Add.
900 (read_cgraph_and_symbols): Handle linked lists of file_datas.
901
2994ee14
AK
9022010-07-10 Andi Kleen <ak@linux.intel.com>
903
904 * lto-coff.c (hash_name, eq_name): Move.
905 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
906 * lto-elf.c: (hash_name, eq_name): Move.
907 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
908 * lto-macho.c: (hash_name, eq_name): Move.
909 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
910 * lto.c: (hash_name, eq_name): Move from lto-*.c
911 (lto_obj_create_section_hash_table): Add.
912 (free_with_string): Add.
913
718f9c0f
MLI
9142010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
915
916 * lto-coff.c: Include diagnostic-core.h in every file that
917 includes toplev.h.
918 * lto-elf.c: Likewise.
919 * lto-lang.c: Likewise.
920 * lto-macho.c: Likewise.
921
1b137837
JJ
9222010-07-07 Jakub Jelinek <jakub@redhat.com>
923
924 * lto-elf.c (ELFOSABI_NONE, ELFOSABI_LINUX): Define if not defined.
925 (validate_file): Allow merging of ELFOSABI_NONE with ELFOSABI_LINUX
926 objects.
927
92eb4438
JH
9282010-07-05 Jan Hubicka <jh@suse.cz>
929
930 * lto.c (add_cgraph_node_to_partition): Forward declare; walk also
931 nodes from same comdat group as well as all comdat functions referenced
932 here.
b9843260
EB
933 (add_varpool_node_to_partition, add_references_to_partition): New
934 function.
935 (lto_1_1_map): Skip COMDAT fnctions/variables; use
936 add_varpool_node_to_partition; clear aux flags when done.
937 (lto_promote_cross_file_statics): Do not promote stuff that gets
938 duplicated to each ltrans.
92eb4438 939
a05541a9
JH
9402010-07-04 Jan Hubicka <jh@suse.cz>
941
942 * lto.c (read_cgraph_and_symbols): Dump cgraph before merging.
943
4a2ac96f
RG
9442010-06-13 Richard Guenther <rguenther@suse.de>
945
946 * lto.c (lto_fixup_type): Do not register or fixup TYPE_CANONICAL.
947
1d536046
KT
9482010-06-09 Kai Tietz <kai.tietz@onevision.com>
949
950 * lto.c (lto_resolution_read): Pre-initialize local variable r.
951 * lto-coff.c (coff_write_object_file): Add braces to if.
952
a9429e29
LB
9532010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
954
955 * lto.c (lto_read_in_decl_state): Use typed GC allocation.
956 (lto_file_read): Likewise.
957 (new_partition): Likewise.
958 (read_cgraph_and_symbols): Likewise.
959
5498f011
JM
9602010-06-07 Joseph Myers <joseph@codesourcery.com>
961
962 * lto-lang.c (flag_no_builtin, flag_no_nonansi_builtin): Remove.
963 (lto_handle_option): Don't set flag_signed_char here.
964
d4c0c9f6
RG
9652010-06-04 Richard Guenther <rguenther@suse.de>
966
967 PR lto/41584
968 * lto.c (lto_1_to_1_map): Use the proper file_data for
969 varpool nodes.
970
0a5fa5a1
JH
9712010-05-30 Jan Hubicka <jh@suse.cz>
972
973 * lto.c (promote_var, promote_fn, lto_wpa_write_files): Dump
974 partitioning decisions.
975
9eec9488
JH
9762010-05-29 Jan Hubicka <jh@suse.cz>
977
978 * lto.c (bitmap vector): Remove.
979 (lto_cgraph_node_sets, lto_varpool_node_sets): Remove.
980 (ltrans_partition_def): New structure.
981 (ltrans_partition): New type and VECtor.
982 (new_partition): New function.
983 (add_cgraph_node_to_partition): New function.
984 (lto_1_to_1_map): Reorganize for partitions.
985 (lto_add_inline_clones): Remove.
986 (lto_add_all_inlinees): Remove.
987 (lto_promote_cross_file_statics): Use partitions.
988 (cmp_partitions): New function.
989 (lto_wpa_write_files): Do not call lto_add_all_inlinees;
990 use partitions; output files sorted by size.
991
3e097227
SB
9922010-05-29 Steven Bosscher <steven@gcc.gnu.org>
993
994 * Make-lang.in: Replace vec.h dependency with VEC_H.
995
7ca92787
JM
9962010-05-28 Joseph Myers <joseph@codesourcery.com>
997
998 * lto-coff.c (coff_errmsg): Remove.
999 (lto_coff_begin_section_with_type, lto_obj_append_data): Use %m in
1000 errors instead of coff_errmsg (-1).
1001 * lto-macho.c (mach_o_errmsg): Remove.
1002 (lto_obj_begin_section, lto_obj_append_data): Use %m in errors
1003 instead of mach_o_errmsg (-1).
1004 * lto.c (read_cgraph_and_symbols): Use %m in errors instead of
1005 xstrerror (errno).
1006
b5611987
RG
10072010-05-28 Richard Guenther <rguenther@suse.de>
1008
1009 * lto.c (prefix_name_with_star): Removed.
1010 (strip_extension): Likewise.
1011 (get_filename_for_set): Likewise.
1012 (lto_write_ltrans_list): Fold into ...
1013 (lto_wpa_write_files): ... this. Name LTRANS units
1014 by suffixing the ltrans output list filename.
1015 (do_whole_program_analysis): Adjust.
1016
1da2ed5f
JM
10172010-05-27 Joseph Myers <joseph@codesourcery.com>
1018
1019 * lto.c: Include diagnostic-core.h instead of diagnostic.h.
1020 (read_cgraph_and_symbols, lto_main): Use seen_error.
1021 * Make-lang.in (lto/lto.o): Update dependencies.
1022
7951d88a
EB
10232010-05-27 Eric Botcazou <ebotcazou@adacore.com>
1024
1025 PR lto/44230
1026 * lto.h (lto_eh_personality): New prototype.
1027 * lto.c: Include debug.h.
1028 (first_personality_decl): New static variable.
1029 (lto_materialize_function): Set it to DECL_FUNCTION_PERSONALITY of the
1030 first function for which it is non-null.
1031 (lto_eh_personality_decl): New static variable.
1032 (lto_eh_personality): New function.
1033 * lto-lang.c (LANG_HOOKS_EH_PERSONALITY): Redefine to above function.
1034 * Make-lang.in (lto/lto.o): Add dependency on debug.h.
1035
e12da9c2
SB
10362010-05-26 Steven Bosscher <steven@gcc.gnu.org>
1037
1038 * lto-lang.c: Do not include expr.h.
1039
468194f4
RG
10402010-05-24 Richard Guenther <rguenther@suse.de>
1041
1042 * lto-elf.c (lto_obj_build_section_table): Work around
1043 FreeBSD libelf issue.
1044
bd9eb5da
RG
10452010-05-22 Richard Guenther <rguenther@suse.de>
1046
1047 * lto.c (read_cgraph_and_symbols): Do not collect.
1048
66576e1b
JH
10492010-05-20 Jan Hubicka <jh@suse.cz>
1050
1051 * lto.c (promote_var, promote_fn): New functions.
1052 (lto_promote_cross_file_statics): Compute correctly boundary including
1053 static initializers of readonly vars.
1054
36576655
JH
10552010-05-18 Jan Hubicka <jh@suse.cz>
1056
66576e1b 1057 * lto.c (lto_1_to_1_map): Partition non-inline clones.
36576655
JH
1058 (lto_promote_cross_file_statics): Deal with non-inline clones.
1059
28632d63
JH
10602010-05-18 Jan Hubicka <jh@suse.cz>
1061
1062 * lto.c (lto_materialize_function): Announce function when
1063 reading body; allocate_struct_function only when reading body;
1064 do not finalize local statics; ggc_collect after reading;
1065 do not mark reachable node.
1066 (materialize_cgraph): Do not announce function.
1067
33e42d56
JH
10682010-05-11 Jan Hubicka <jh@suse.cz>
1069
1070 * lto.c (materialize_cgraph): Revert my previous patch.
1071
f6430ea5
KT
10722010-05-11 Kai Tietz <kai.tietz@onevision.com>
1073
1074 * lto-coff.c (IMAGE_FILE_MACHINE_ADM64): Rename to
1075 IMAGE_FILE_MACHINE_AMD64.
1076 * lto-coff.c (IMAGE_FILE_MACHINE_ADM64): Likewise.
1077
0a0b07b7
JH
10782010-05-11 Jan Hubicka <jh@suse.cz>
1079
1080 * lto.c (lto_fixup_decls): Remove global var decls freeing here.
1081 (materialize_cgraph): Add it here.
1082
9a809897
JH
10832010-05-11 Jan Hubicka <jh@suse.cz>
1084
1085 * lto.c (lto_fixup_decls): Free no longer needed lto_global_var_decls
1086 vector.
1087
10882010-05-11 Jan Hubicka <jh@suse.cz>
1089
1090 * lto.c (lto_1_to_1_map): Remove some no longer needed checks.
1091 (lto_promote_cross_file_statics): Never promote DECL_EXTERNAL;
1092 use reachable_from_other_partition_p and
1093 referenced_from_other_partition_p test.
1094
94f64249
KT
10952010-05-11 Kai Tietz <kai.tietz@onevision.com>
1096
1097 * lto-coff.c (validate_file): Add x64-coff support.
1098 * lto-coff.h (IMAGE_FILE_MACHINE_ADM64): New.
1099 (COFF_KNOWN_MACHINES): Add IMAGE_FILE_MACHINE_ADM64.
1100 * lto-lang.c (lto_build_c_type_nodes): Add check for
1101 'long long unsigned int' for x64-windows.
1102 (lto_init): Likewise.
1103
1104
c082f9f3
SB
11052010-05-07 Steven Bosscher <steven@gcc.gnu.org>
1106
1107 * lto.h (struct lto_file_struct): Document offset member.
1108 * lto-endian.h: New file.
1109 * lto-macho.h: New file.
1110 * lto-macho.c: New file.
1111 * Make-lang.in: Add rule for lto-macho.o.
1112
5cd0e96b
RG
11132010-05-07 Richard Guenther <rguenther@suse.de>
1114
1115 PR lto/43857
1116 PR lto/43371
1117 * lang.opt (fresolution): Change to ...
1118 (fresolution=): ... this.
1119 * lto-lang.c (lto_handle_option): Adjust.
1120
48cf395b
RB
11212010-05-07 Richard Guenther <rguenther@suse.de>
1122
1123 * lto.c (DUMPBASE_SUFFIX): Remove.
1124 (lto_execute_ltrans): Move functionality to lto-wrapper.c.
1125 Rename to ...
1126 (lto_write_ltrans_list): ... only output the list of ltrans files.
1127 (lto_maybe_unlink): Remove.
1128 (do_whole_program_analysis): Do not execute LTRANS phase
1129 from here.
1130
afa83c15
L
11312010-05-06 H.J. Lu <hongjiu.lu@intel.com>
1132
1133 * lto-lang.c (lto_handle_option): Add argument kind.
1134
369451ec
JH
11352010-05-05 Jan Hubicka <jh@suse.cz>
1136
48cf395b
RB
1137 * lto.c (lto_promote_cross_file_statics): Compute boundary based on
1138 refs.
369451ec 1139
2f41ecf5
JH
11402010-05-05 Jan Hubicka <jh@suse.cz>
1141
1142 * lto.c (lto_1_to_1_map): Partition only needed nodes.
1143
ace72c88
JH
11442010-04-30 Jan Hubicka <jh@suse.cz>
1145
b9843260
EB
1146 * lto.c (get_filename_for_set): Look for cgraph node and if none found,
1147 use default name.
ace72c88
JH
1148 (lto_wpa_write_files): Write any non-empty partition.
1149
05575e07
JH
11502010-04-30 Jan Hubicka <jh@suse.cz>
1151
1152 * lto.c: Do not attempt to make constant pool references global.
1153
49ba8180
JH
11542010-04-28 Jan Hubicka <jh@suse.cz>
1155
1156 * lto/lto.c (lto_read_in_decl_state): Use GGC.
1157 (lto_wpa_write_files): Announce what we are writting.
1158 (all_file_decl_data): New.
1159 (read_cgraph_and_symbols): Use GGC; correct timevars.
1160 (do_whole_program_analysis): Collect.
1161 * lto/Make-lang.in (lto.o): Fix dependency.
1162 * Makefile.in (GTFILES): Add lto-streamer.h.
1163 * varpool.c (varpool_analyze_pending_decls): Use TV_VARPOOL.
1164 (varpool_assemble_pending_decls): Use VAROUT.
1165 * lto-streamer.h (lto_tree_ref_table): Annotate.
1166 (lto_in_decl_state): Annotate.
1167 (lto_file_decl_data): Annotate.
1168
2942c502
JH
11692010-04-28 Jan Hubicka <jh@suse.cz>
1170
1171 * lto.c (lto_varpool_node_sets): New.
1172 (lto_1_to_1_map): Partition varpool too.
1173 (globalize_context_t, globalize_cross_file_statics,
1174 lto_scan_statics_in_ref_table, lto_scan_statics_in_cgraph_node,
1175 lto_scan_statics_in_remaining_global_vars): Remove.
1176 (lto_promote_cross_file_statics): Rewrite.
1177 (get_filename_for_set): Take vset argument.
1178 (lto_wpa_write_files): Pass around vsets.
1179
3bec79c5
DK
11802010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
1181
1182 PR lto/42776
1183 * Make-lang.in (LTO_OBJS): Use LTO_BINARY_READER instead of
1184 hardcoding 'lto-elf.o'.
1185 ($(LTO_EXE)): Use LTO_USE_LIBELF instead of hardcoding '-lelf'.
1186
1187 * lto-coff.h: New file.
1188 * lto-coff.c: Likewise.
1189
21aac880
RG
11902010-04-26 Richard Guenther <rguenther@suse.de>
1191
1192 * lto.c (lto_fixup_type): Deal with non-type TYPE_CONTEXT.
1193
2cee0101
DK
11942010-04-26 Dave Korn <dave.korn.cygwin@gmail.com>
1195
1196 * lto.h (lto_elf_file_open): Rename prototype from this ...
1197 (lto_obj_file_open): ... to this.
1198 (lto_elf_file_close): Likewise ...
1199 (lto_obj_file_close): ... and likewise.
1200 (lto_elf_build_section_table): Likewise ...
1201 (lto_obj_build_section_table): ... and likewise.
1202 (lto_elf_begin_section): Likewise ...
1203 (lto_obj_begin_section): ... and likewise.
1204 (lto_elf_append_data): Likewise ...
1205 (lto_obj_append_data): ... and likewise.
1206 (lto_elf_end_section): Likewise ...
1207 (lto_obj_end_section): ... and likewise.
1208 * lto.c (lto_file_read): Update references to the above.
1209 (lto_wpa_write_files): Likewise.
1210 (lto_read_all_file_options): Likewise.
1211 (read_cgraph_and_symbols): Likewise.
1212 * lto-lang.c (LANG_HOOKS_BEGIN_SECTION): Likewise.
1213 (LANG_HOOKS_APPEND_DATA): Likewise.
1214 (LANG_HOOKS_END_SECTION): Likewise.
1215 * lto-elf.c (lto_elf_file_open): Rename from this ...
1216 (lto_obj_file_open): ... to this, updating any references.
1217 (lto_elf_file_close): Likewise ...
1218 (lto_obj_file_close): ... and likewise.
1219 (lto_elf_build_section_table): Likewise ...
1220 (lto_obj_build_section_table): ... and likewise.
1221 (lto_elf_begin_section): Likewise ...
1222 (lto_obj_begin_section): ... and likewise.
1223 (lto_elf_append_data): Likewise ...
1224 (lto_obj_append_data): ... and likewise.
1225 (lto_elf_end_section): Likewise ...
1226 (lto_obj_end_section): ... and likewise.
1227
bc58d7e1
JH
12282010-04-21 Jan Hubicka <jh@suse.cz>
1229
1230 * lto.c (lto_fixup_tree): Do not call wpa fixup.
1231 (materialize_cgraph): Likewise.
1232
e792884f
JH
12332010-04-21 Jan Hubicka <jh@suse.cz>
1234
1235 * lto.c (lto_wpa_write_files): Update.
1236 (read_cgraph_and_symbols): Be more verbose.
1237 (materialize_cgraph): Likewise.
1238 (do_whole_program_analysis): Likewise.
1239
c9945504
JH
12402010-04-21 Jan Hubicka <jh@suse.cz>
1241
1242 * lto.c (globalize_cross_file_statics): When function has address taken,
1243 it needs to be public.
1244
a837268b
JH
12452010-04-20 Jan Hubicka <jh@suse.cz>
1246
1247 * lto.c (lto_add_inline_clones): Do not track inlined_decls.
1248 (lto_add_all_inlinees): Likewise.
1249 (lto_wpa_write_files): Likewise.
1250
3b9e5d95
EB
12512010-04-18 Eric Botcazou <ebotcazou@adacore.com>
1252
1253 * lto-lang.c (lto_init): Remove second argument in call to
1254 build_common_tree_nodes.
1255
8ccb78f2
RO
12562010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1257
1258 * lto-elf.c [!HAVE_ELF_GETSHDRSTRNDX] (elf_getshdrstrndx): New
1259 function.
1260
2f9b99e6
EB
12612010-03-09 Eric Botcazou <ebotcazou@adacore.com>
1262
1263 PR bootstrap/43276
1264 * lto-elf.c: Define EM_* constants if not already defined.
1265
bef7d288
EB
12662010-03-03 Eric Botcazou <ebotcazou@adacore.com>
1267
1268 * lto-elf.c (is_compatible_architecture): New static function.
1269 (DEFINE_VALIDATE_EHDR): Use it to validate the architecture.
1270
f68df07c
RG
12712010-02-11 Richard Guenther <rguenther@suse.de>
1272
1273 PR driver/43021
1274 * lto-elf.c (lto_elf_file_open): Handle file@offset case more
1275 appropriately.
1276
3cdea2b4
AH
12772010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
1278
1279 * lto.c (O_BINARY): Define.
1280 (lto_read_section_data): Open file in binary mode.
1281 * lto-elf.c (O_BINARY): Define.
1282 (lto_elf_file_open): Open file in binary mode.
1283
c59449fa
RG
12842010-01-08 Richard Guenther <rguenther@suse.de>
1285
1286 PR lto/42528
1287 * lto-lang.c (lto_handle_option): Handle -f[un]signed-char.
1288 (lto_init): Do not init char_type_node in a standard way
1289 but according to flag_signed_char.
1290
d7fb0a6d
L
12912010-01-03 H.J. Lu <hongjiu.lu@intel.com>
1292
1293 PR lto/41564
1294 * lto.c (DUMPBASE_SUFFIX): New.
1295 (lto_execute_ltrans): Append a sequence number to -dumpbase
1296 for LTRANS.
1297
78ce4053
L
12982010-01-02 H.J. Lu <hongjiu.lu@intel.com>
1299
1300 PR lto/42580
1301 * lto-elf.c (lto_elf_file_open): Stop if the command line
1302 option file is missing.
1303
2a71eb48
RG
13042009-12-15 Richard Guenther <rguenther@suse.de>
1305
1306 * lto.c (lto_fixup_field_decl): Fixup DECL_FIELD_OFFSET.
1307 (lto_post_options): Do not disable debuginfo.
1308
a818bca1
DG
13092009-12-14 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
1310
1311 * Make-lang.in ($(LTO_EXE)): Use $(LINKER).
1312
e7d00517
RG
13132009-12-11 Richard Guenther <rguenther@suse.de>
1314
1315 PR lto/42037
1316 * lto.c (lto_resolution_read): Properly grow the vector.
1317
1ab53893
RG
13182009-12-11 Richard Guenther <rguenther@suse.de>
1319
1320 PR lto/41915
1321 * lto-lang.c (lto_init_options): Initialize flag_complex_method
1322 to the C99 default. Do not set flag_unit_at_a_time.
1323
0f900dfa
JJ
13242009-11-28 Jakub Jelinek <jakub@redhat.com>
1325
1326 * lto-lang.c (handle_nonnull_attribute): Remove unused attr_arg_num
1327 variable.
1328
92fa7608
RAE
13292009-11-19 Rafael Avila de Espindola <espindola@google.com>
1330
1331 PR bootstrap/42096
1332 * lto-elf.c (lto_elf_file_open): Use lto_parse_hex.
1333 * lto.c (lto_parse_hex): New.
1334 (lto_resolution_read): Use lto_parse_hex.
1335 * lto.h (lto_parse_hex): New.
1336
9870fe4f
RAE
13372009-11-17 Rafael Avila de Espindola <espindola@google.com>
1338
1339 * lto-elf.c (lto_file_init): Add offset argument.
1340 (lto_elf_file_open): Record the offset.
1341 * lto.c (lto_resolution_read): Change file_name into a lto_file
1342 argument. Check offsets.
1343 (lto_file_read): Update call to lto_resolution_read.
1344 * lto.h (lto_file_struct): Add the offset field.
1345
1b70729f
RAE
13462009-11-16 Rafael Avila de Espindola <espindola@google.com>
1347
1348 * lto-elf.c (lto_elf_file_open): Use strtoll to parse the offset.
1349
0e3776db
JH
13502009-11-14 Jan Hubicka <jh@suse.cz>
1351
1352 * lto.c (read_cgraph_and_symbols): Set also ipa_transforms_to_apply.
1353
06bd7f56
RAE
13542009-11-12 Rafael Avila de Espindola <espindola@google.com>
1355
1356 * lang.opt (fresolution): Renamed from resolution.
1357 * lto-lang.c (lto_handle_option): Handle new option name.
1358 * lto.c (lto_resolution_read): Add more checks. Discard rest of line.
1359
7e9dc421
RG
13602009-11-04 Richard Guenther <rguenther@suse.de>
1361 Rafael Avila de Espindola <espindola@google.com>
1362
1363 * lto-elf.c (lto_elf_build_section_table): Add the base offset.
1364 (lto_elf_file_open): Handle offsets in arguments name@offest.
1365
b207f900
RG
13662009-10-30 Richard Guenther <rguenther@suse.de>
1367
1368 PR lto/41858
1369 * lto.c (lto_file_read): Do not set file_data->fd.
1370 (lto_read_section_data): Use a single-entry file-descriptor cache.
1371 Do not check the result of xmalloc.
1372 (free_section_data): Do not use file_data->fd.
1373 (lto_read_all_file_options): Likewise.
1374
2c928155
RG
13752009-10-22 Richard Guenther <rguenther@suse.de>
1376
1377 * lto.c (lto_fixup_jump_functions): Remove.
1378 (lto_fixup_decls): Do not fixup jump functions.
1379 (read_cgraph_and_symbols): Schedule cgraph merging after
1380 summary reading. Schedule type and decl fixup before
1381 summary reading.
1382
f9c91f8a
RB
13832009-10-22 Richard Guenther <rguenther@suse.de>
1384
1385 * lto.c (lto_fixup_data_t): Remove free_list member.
1386 (lto_fixup_tree): Do not insert into free_list.
1387 (free_decl): Remove.
1388 (lto_fixup_decls): Remove free-list handling.
1389
fb3f88cc
JH
13902009-10-22 Jan Hubicka <jh@suse.cz>
1391
1392 * lto.c (lto_fixup_jump_functions): New function.
1393 (lto_fixup_decls): Use it.
1394
35f1e9f4
RG
13952009-10-16 Richard Guenther <rguenther@suse.de>
1396
1397 PR lto/41715
1398 * lto.c (lto_fixup_tree): Revert last change.
1399
200c8750
RG
14002009-10-14 Richard Guenther <rguenther@suse.de>
1401
1402 * lto.c (lto_fixup_tree): In case the prevailing decl is not
1403 compatible with the one we replace wrap it around a
1404 VIEW_CONVERT_EXPR.
1405
b1b07c92
RG
14062009-10-09 Richard Guenther <rguenther@suse.de>
1407
1408 PR lto/41635
1409 PR lto/41636
1410 * lto.c (read_cgraph_and_symbols): Do not assert we can open
1411 a file.
1412 * lto-elf.c (init_shdr##BITS): Fix i18n problems.
1413 (init_ehdr##BITS): Likewise.
1414
3c2e7d45
JM
14152009-10-08 Joseph Myers <joseph@codesourcery.com>
1416
1417 * lto-elf.c (init_shdr##BITS, lto_elf_begin_section_with_type,
1418 init_ehdr##BITS, lto_elf_file_close): Remove trailing "." from
1419 diagnostics.
1420 * lto-lang.c (lto_post_options): Remove trailing "." from
1421 diagnostics.
1422
0d0bfe17
RG
14232009-10-08 Richard Guenther <rguenther@suse.de>
1424
1425 * lto.c (read_cgraph_and_symbols): Free the gimple type merging
1426 hash tables.
1427
4bedf19a
JM
14282009-10-07 Joseph Myers <joseph@codesourcery.com>
1429
1430 * lto.c: Only include <sys/mman.h> if HAVE_MMAP_FILE.
1431
b20996ff
JH
14322009-10-07 Jan Hubicka <jh@suse.cz>
1433
1434 * lto.c (read_cgraph_and_symbols): Mark functions neccesary only at
1435 ltrans stage; explain why this is needed and should not.
1436
1a735925
RG
14372009-10-05 Richard Guenther <rguenther@suse.de>
1438
1439 PR lto/41552
1440 PR lto/41487
1441 * lto.c (lto_read_decls): Do not register deferred decls.
1442 (read_cgraph_and_symbols): Delay symbol and cgraph merging
1443 until after reading the IPA summaries.
1444
d7f09764
DN
14452009-10-02 Rafael Avila de Espindola <espindola@google.com>
1446
1447 * Make-lang.in (lto/lto-lang.o): Don't depend on lto/common.h.
1448 (lto-lang.c): Don't include lto/common.h.
1449
14502009-10-02 Rafael Avila de Espindola <espindola@google.com>
1451
1452 * Make-lang.in (LTO_OBJS): Remove lto/common.o.
1453 (lto/common.o): Remove.
1454 * common.c: Remove.
1455 * common.h (lto_kind_str): Remove.
1456 (lto_visibility_str): Remove.
1457 (lto_resolution_str): Make it static.
1458
14592009-10-01 Diego Novillo <dnovillo@google.com>
1460
1461 * lto.c (lto_read_decls): Add comment.
1462 Call internal_error instead of gcc_assert.
1463 (lto_resolution_read): Likewise.
1464 (lto_add_all_inlinees): Tidy.
1465 * Make-lang.in: Fix copyright boilerplate.
1466 (lto.pdf): New.
1467 (lto.install-pdf): New.
1468 * lto-tree.h: Fix copyright boilerplate.
1469 * lang-specs.h: Likewise.
1470 Remove ".lto" entry from compilers fragment.
1471 * lto-elf.c: Move inclusion of gelf.h after config.h.
1472 Tidy formatting everywhere.
1473 * lto.h: Fix copyright boilerplate.
1474 Tidy formatting everywhere.
1475 * common.c: Likewise.
1476 * config-lang.in: Likewise.
1477 * common.h: Likewise.
1478 * lto-lang.c: Likewise.
1479
14802009-10-01 Richard Guenther <rguenther@suse.de>
1481
1482 * lto.c (lto_read_section_data): Use plain lseek/read.
1483
14842009-10-01 Richard Guenther <rguenther@suse.de>
1485
1486 * lto.c (LTO_MMAP_IO): Define if we can mmap files and
1487 use sysconf to query the system page size.
1488 (lto_file_read): Implement fallback using stdio.
1489 (free_section_data): Likewise.
1490
14912009-09-29 Diego Novillo <dnovillo@google.com>
1492
1493 * lto-lang.c (lto_init): Really fix call to
1494 build_common_builtin_nodes.
1495
14962009-09-29 Diego Novillo <dnovillo@google.com>
1497
1498 * lto-lang.c (lto_init): Fix call to
1499 build_common_builtin_nodes.
1500
15012009-09-29 Richard Guenther <rguenther@suse.de>
1502
1503 PR lto/40754
1504 * lto-elf.c (init_shdr##BITS): Properly specify alignment
1505 in bytes.
1506 (first_data_block): New static variable.
1507 (lto_elf_append_data): Align the first data block in each
1508 section.
1509
15102009-09-28 Diego Novillo <dnovillo@google.com>
1511
1512 * lto-lang.c: Tidy. Remove stale FIXME lto markers.
1513 * lto.c (strip_extension): New.
1514 (get_filename_for_set): Call it. Do not call make_cwd_temp_file.
1515 (lto_execute_ltrans): Tidy.
1516 Do not pass -fwpa nor -fltrans-* to LTRANS.
1517 * opts.c: Tidy formatting and remove stale FIXME lto markers.
1518 * tree.c (need_assembler_name_p): Call
1519 lang_hooks.decls.may_need_assembler_name_p if set.
1520 * varasm.c (default_binds_local_p_1): Remove check for
1521 flag_ltrans.
1522 * varpool.c (decide_is_variable_needed): Do not test for
1523 in_lto_p.
1524
15252009-09-22 Richard Guenther <rguenther@suse.de>
1526
1527 PR lto/39276
1528 * lto.c (lto_execute_ltrans): Perform ltrans phase manually.
1529 * Make-lang.in: Remove ltrans-driver stuff.
1530 * config-lang.in: Likewise.
1531 * lang.opt (fltrans-driver): Remove.
1532 * lto-lang.c (lto_init_options): Remove code initializing
1533 ltrans_driver.
1534 * ltrans-driver: Remove.
1535
15362009-09-21 Diego Novillo <dnovillo@google.com>
1537
1538 * lto-lang.c (lto_define_builtins): Remove superfluous
1539 calls to targetm.init_builtins and build_common_builtin_nodes.
1540 (lto_init): Add targetm.arm_eabi_unwinder as parameter to
1541 build_common_builtin_nodes.
1542 * lto.c (lto_materialize_function): Do nothing if NODE is a
1543 clone.
1544
15452009-09-03 Diego Novillo <dnovillo@google.com>
1546
1547 * lto-elf.c (validate_file): Replace call to
1548 elf_getshstrndx with call to elf_getshdrstrndx.
1549
15502009-08-19 Richard Guenther <rguenther@suse.de>
1551
1552 * lto-lang.c (lto_init): Merge char_type_node with the
1553 appropriately signed variant.
1554
15552009-08-19 Richard Guenther <rguenther@suse.de>
1556
1557 PR lto/41071
1558 * lto.c (lto_fixup_common): Re-build the pointer-to chain part one.
1559 (lto_fixup_type): Re-build the pointer-to chain part two.
1560
15612009-08-19 Richard Guenther <rguenther@suse.de>
1562
1563 PR lto/41071
1564 * lto.c (lto_fixup_type): Re-build the type variant chain.
1565
15662009-08-19 Richard Guenther <rguenther@suse.de>
1567
1568 PR lto/41071
1569 * lto.c (lto_fixup_constructor): New function.
1570 (lto_fixup_tree): Replace all types. Properly fixup
1571 constructors and constants.
1572
15732009-08-14 Richard Guenther <rguenther@suse.de>
1574
1575 * lto.c (read_cgraph_and_symbols): Exchange TREE_CHAIN use
1576 for DECL_LANG_SPECIFIC.
1577
15782009-08-13 Richard Guenther <rguenther@suse.de>
1579
1580 PR lto/41032
1581 * lto-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define to NULL.
1582
15832009-07-30 Richard Guenther <rguenther@suse.de>
1584
1585 PR lto/40903
1586 * lto.c (read_cgraph_and_symbols): After fixing up decls choose
1587 the largest decl for output and free TREE_CHAIN for further
1588 use.
1589
15902009-07-24 Diego Novillo <dnovillo@google.com>
1591
1592 * Make-lang.in: Add empty lto.install-plugin target.
1593
15942009-07-13 Diego Novillo <dnovillo@google.com>
1595
1596 * lto.c (lto_fixup_tree): Handle IMPORTED_DECL.
1597
15982009-07-11 Richard Guenther <rguenther@suse.de>
1599
1600 * lto-lang.c (lto_write_globals): Wrapup global decls.
1601
16022009-07-10 Richard Guenther <rguenther@suse.de>
1603
1604 * lto-lang.c (lto_init): Allocate one more location to make
1605 BUILTINS_LOCATION correct.
1606
16072009-07-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1608
1609 * lto.c (free_section_data): Cast computed_offset to caddr_t.
1610
16112009-07-06 Diego Novillo <dnovillo@google.com>
1612
1613 * lto.c (lto_fixup_type): Fixup TYPE_SIZE and
1614 TYPE_SIZE_UNIT.
1615
16162009-07-06 Diego Novillo <dnovillo@google.com>
1617
1618 * lto.c (preload_common_nodes): Remove.
1619 (lto_read_in_decl_state): Call lto_streamer_cache_get.
1620 (lto_read_decls): Call lto_data_in_create and
1621 lto_data_in_delete.
1622 (free_decl): Do not call ggc_free.
1623 (lto_main): Call lto_init_reader.
1624 * lto-lang.c (lto_type_for_size): Handle intTI_type_node.
1625 (lto_init): Initialize main_identifier_node if needed.
1626 Make ptrdiff_type_node be integer_type_node.
1627
16282009-06-19 Diego Novillo <dnovillo@google.com>
1629
1630 * lto.c: Remove code guarded by #ifdef LTO_STREAM_DEBUGGING.
1631 Remove code guarded by #ifdef GLOBAL_STREAMER_TRACE.
1632 Remove code guarded by #ifdef LOCAL_TRACE.
1633
16342009-06-18 Diego Novillo <dnovillo@google.com>
1635
1636 * lto.c: Update license to GPLv3.
1637 * lto-elf.c: Likewise.
1638 * common.c: Likewise.
1639 * lto-lang.c: Likewise.
1640 * lto.h: Remove superfluous include files. Update all
1641 users.
1642
16432009-06-17 Diego Novillo <dnovillo@google.com>
1644
1645 * lto.c (read_cgraph_and_symbols): Call input_cgraph.
1646
16472009-06-02 Diego Novillo <dnovillo@google.com>
1648
1649 * lto.c (lto_1_to_1_map): Ignore nodes that have not been
1650 read in.
1651 (materialize_cgraph): Only materialize nodes that have a
1652 representation on file.
1653
16542009-06-01 Diego Novillo <dnovillo@google.com>
1655
1656 * lto-lang.c (lto_handle_option): Hanlde OPT_Wabi.
1657
16582009-05-31 Diego Novillo <dnovillo@google.com>
1659
1660 * lto-lang.c (lto_type_for_mode): Handle all the modes
1661 handled in c_common_type_for_mode.
1662
16632009-05-21 Diego Novillo <dnovillo@google.com>
1664
1665 * lto-elf.c: Always include <gelf.h>.
1666 * config-lang.in (target_libs): Remove.
1667 (build_by_default): Set to no.
1668
16692009-05-15 Diego Novillo <dnovillo@google.com>
1670
1671 * lto.c (lto_materialize_function): Assert that DECL is
1672 not a builtin.
1673 (materialize_cgraph): Don't try to materialize builtin
1674 functions.
1675 * lto-section-out.c (write_symbol_vec): Do not write
1676 builtin functions.
1677
16782009-05-13 Diego Novillo <dnovillo@google.com>
1679
1680 * lto-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define.
1681
16822009-05-07 Diego Novillo <dnovillo@google.com>
1683
1684 * lto.c (lto_resolution_read): Add type casts for C++ warnings.
1685 (LTO_REGISTER_TYPE_AND_FIXUP_SUBTREE): Define.
1686 (lto_fixup_type): Call it for TYPE_POINTER_TO,
1687 TYPE_REFERENCE_TO, TYPE_CONTEXT and TYPE_CANONICAL.
1688 (lto_fixup_tree): Call gimple_register_type when *TP is a
1689 type.
1690 (lto_main): Call bitmap_obstack_initialize.
1691
16922009-04-22 Diego Novillo <dnovillo@google.com>
1693
1694 * lto.c (free_section_data): Tidy.
1695 (lto_1_to_1_map): Tidy.
1696 (lto_add_all_inlinees): Tidy.
1697 (prefix_name_with_star): New.
1698 (get_filename_for_set): New.
1699 (lto_wpa_write_files): Call cgraph_node_set_needs_ltrans_p
1700 to determine what cgraph node sets to write.
1701 Call get_filename_for_set to compute temporary file
1702 names.
1703 (lto_execute_ltrans): Do not execute LTRANS on files with
1704 names that start with '*'.
1705 Move logic to execute LTRANS together so that LTRANS is
1706 invoked only if there are any files to compile.
1707 (do_whole_program_analysis): Only remove output files
1708 that do not start with '*'.
1709
17102009-04-06 Diego Novillo <dnovillo@google.com>
1711
1712 * lto-lang.c (lto_post_options): Set flag_excess_precision_cmdline.
1713 * lto.c (read_cgraph_and_symbols): Set cgraph_function_flags_ready.
1714 (lto_add_all_inlinees): Tidy.
1715
17162009-03-26 Diego Novillo <dnovillo@google.com>
1717
1718 * lto.c: Include gimple.h.
1719 (lto_read_in_decl_state): Call gimple_register_type for
1720 every type in every stream.
1721 (lto_fixup_common): Call gimple_register_type if T has a
1722 type.
1723 (do_whole_program_analysis): Call print_lto_report.
1724 (lto_main): Call print_lto_report after cgraph_optimize.
1725 * Make-lang.in (lto.o): Add dependency on GIMPLE_H.
1726
17272009-03-24 Diego Novillo <dnovillo@google.com>
1728
1729 * Make-lang.in (lto-lang.o): Add dependency on TARGET_H and EXPR_H.
1730 (lto.o): Add dependency on GIMPLE_H.
1731
17322009-03-10 Simon Baldwin <simonb@google.com>
1733
1734 * lto.c (lto_read_all_file_options): Close any open file descriptor
1735 contained in file_data before freeing.
1736
17372009-02-24 Rafael Avila de Espindola <espindola@google.com>
1738
1739 * lto.c (lto_add_inline_clones): Don't add the master clone. Check
1740 for a decl in the original bitmap, not a node.
1741 (lto_add_all_inlinees): Remove original nodes that are not needed.
1742 (lto_scan_statics_in_cgraph_node): Don't care if the node is the master.
1743
17442009-02-24 Diego Novillo <dnovillo@google.com>
1745
1746 * lto.c (lto_materialize_function): Update
1747 lto_stats.num_function_bodies.
1748 (get_section_data): Initialize *LEN to 0.
1749 (lto_1_to_1_map): Update lto_stats.num_cgraph_partitions.
1750 (lto_wpa_write_files): Update lto_stats.num_cgraph_nodes.
1751 Update lto_stats.num_output_files.
1752 (read_cgraph_and_symbols): Update lto_stats.num_input_files.
1753 (materialize_cgraph): Update lto_stats.num_input_cgraph_nodes.
1754 (lto_main): Initialize lto_stats.
1755 If flag_lto_report is set, call print_lto_report.
1756
17572009-02-19 Diego Novillo <dnovillo@google.com>
1758
1759 Revert
1760
1761 2009-02-19 Rafael Avila de Espindola <espindola@google.com>
1762
1763 * lto.c (lto_add_inline_clones): Don't add the
1764 master clone. Check for a decl in the original
1765 bitmap, not a node.
1766 (lto_add_all_inlinees): Remove original nodes
1767 that are not needed.
1768 (lto_scan_statics_in_cgraph_node): Don't care if
1769 the node is the master.
1770 (lto_promote_cross_file_statics): Use a new
1771 context.seen_node_decls for each set
1772
17732009-02-19 Rafael Avila de Espindola <espindola@google.com>
1774
1775 * lto.c (lto_add_inline_clones): Don't add the master clone. Check
1776 for a decl in the original bitmap, not a node.
1777 (lto_add_all_inlinees): Remove original nodes that are not needed.
1778 (lto_scan_statics_in_cgraph_node): Don't care if the node is the master.
1779 (lto_promote_cross_file_statics): Use a new context.seen_node_decls
1780 for each set
1781
17822009-02-18 Diego Novillo <dnovillo@google.com>
1783
1784 * lto.c (lto_wpa_write_files): Use timers TV_WHOPR_WPA
1785 and TV_WHOPR_WPA_IO.
1786 (lto_execute_ltrans): Use timer TV_WHOPR_WPA_LTRANS_EXEC.
1787 (read_cgraph_and_symbols): Use timer TV_IPA_LTO_DECL_IO.
1788 (materialize_cgraph): Use timer TV_IPA_LTO_GIMPLE_IO.
1789 Use timer TV_WHOPR_WPA or TV_WHOPR_LTRANS or TV_LTO
1790 depending on command line flags.
1791 (do_whole_program_analysis): Use timer TV_WHOPR_WPA.
1792 (lto_main): Remove timer uses.
1793
17942009-02-18 Rafael Avila de Espindola <espindola@google.com>
1795
1796 * lto.c (lto_materialize_function): Don't set DECL_EXTERN to 0.
1797 (lto_wpa_write_files): Update calls to renamed functions.
1798
17992009-02-17 Diego Novillo <dnovillo@google.com>
1800
1801 PR 39203
1802 * lto-lang.c (lto_post_options): Disable -fwhole-program
1803 when running LTRANS.
1804
18052009-02-10 Diego Novillo <dnovillo@google.com>
1806
1807 * lto.c (read_cgraph_and_symbols): Fix comment.
1808
18092009-02-10 Diego Novillo <dnovillo@google.com>
1810
1811 * lto.c (read_cgraph_and_symbols): Read options from all
1812 IL files.
1813
18142009-02-10 Diego Novillo <dnovillo@google.com>
1815
1816 * lto.c (read_cgraph_and_symbols): Factor out of lto_main.
1817 (materialize_cgraph): Likewise.
1818 (do_whole_program_analysis): Likewise.
1819 (lto_main): Call read_cgraph_and_symbols,
1820 materialize_cgraph and do_whole_program_analysis.
1821
18222009-02-10 Simon Baldwin <simonb@google.com>
1823
1824 * lto.c: Include lto-opts.h.
1825 * (lto_main): Clear file options at loop start, read any saved
1826 options from the first file handled, and re-issue options.
1827 * Makefile.in (lto.o): Add dependency on lto-opts.h.
1828
18292009-02-02 Diego Novillo <dnovillo@google.com>
1830
1831 * lto.c (lto_main): Stop LTO_TIMER and use
1832 TV_WHOPR_WPA_LTRANS_EXEC when launching LTRANS.
1833
18342009-01-30 H.J. Lu <hongjiu.lu@intel.com>
1835
1836 PR lto/38995
1837 * lto-elf.c (init_shdr##BITS): Set the sh_addralign field
1838 to POINTER_SIZE.
1839
18402009-01-29 Ramana Radhakrishnan <ramana.r@gmail.com>
1841
1842 * Make-lang.in (LTO_EXE): Link with all
1843 BACKENDLIBS and not only GMPLIBS
1844
18452009-01-28 H.J. Lu <hongjiu.lu@intel.com>
1846
1847 PR bootstrap/38992
1848 * lto-elf.c: Include gelf.h instead of libelf.h.
1849 (lto_elf_file_close): Replace elfx_update_shstrndx with
1850 gelf_getehdr, elf_getscn, gelf_getshdr, gelf_update_shdr and
1851 gelf_update_ehdr.
1852
18532009-01-28 H.J. Lu <hongjiu.lu@intel.com>
1854
1855 PR middle-end/38996
1856 * lto-elf.c (DEFINE_INIT_EHDR): Initialize e_version.
1857
18582009-01-26 Diego Novillo <dnovillo@google.com>
1859
1860 * lto-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Update.
1861
18622009-01-26 Diego Novillo <dnovillo@google.com>
1863
1864 * lto-lang.c (lto_types_compatible_p): Move to gimple.c
1865 and rename into gimple_types_compatible_p.
1866
18672009-01-12 Rafael Avila de Espindola <espindola@google.com>
1868
1869 * lto-lang.c (lang_hooks): Remove the const qualifier.
1870
18712009-01-06 Diego Novillo <dnovillo@google.com>
1872
1873 * ltrans-driver: Mark 'all' target as phony.
1874
18752008-12-31 Diego Novillo <dnovillo@google.com>
1876
1877 * ltrans-driver: Execute a NOP action for target 'all'.
1878
18792008-12-19 Diego Novillo <dnovillo@google.com>
1880
1881 * lto.c (lto_1_to_1_map): Tidy.
1882
18832008-12-19 Diego Novillo <dnovillo@google.com>
1884
1885 * lto-elf.c (lto_elf_file_open): When FILENAME cannot
1886 be opened, show its name.
1887 * ltrans-driver: If $verbose is set, do not use parallelism.
1888
18892008-12-17 Rafael Avila de Espindola <espindola@google.com>
1890
1891 * lto.c (lto_fixup_function): New.
1892 (lto_fixup_tree): Call lto_fixup_function.
1893
18942008-12-14 Doug Kwan <dougkwan@google.com>
1895
1896 * lto.c (lto_1_to_1_map): Create a cgraph node set for any global
1897 variables if there is no function.
1898
18992008-12-10 Simon Baldwin <simonb@google.com>
1900
1901 * ltrans-driver: Always run make in silent mode, to avoid make's
1902 trace on stdout interfering with lto-wrapper output.
1903
19042008-12-10 Doug Kwan <dougkwan@google.com>
1905
1906 * lto.c (lto_add_inline_clones): Do not force master clones of
1907 inlined functions already in SET to be static inline.
1908
19092008-12-04 Doug Kwan <dougkwan@google.com>
1910
1911 * lto.c (globalize_context_t): New type to store states in
1912 globalization of cross-file statics.
1913 (globalize_cross_file_statics): New.
1914 (lto_scan_statics_in_ref_table): Walk tree to look for reachable
1915 static decls that need to be fixed up.
1916 (lto_scan_statics_in_cgraph_node): Change call interface to use
1917 a globalize_context_t CONTEXT for all states used.
1918 (lto_scan_statics_in_remaining_global_vars): New.
1919 (lto_promote_cross_file_statics): Use new call interface of
1920 LTO_SCAN_STATICS_IN_CGRAPH_NODE. Handle remaining externally
1921 visible vars in the last set.
1922
19232008-12-03 Diego Novillo <dnovillo@google.com>
1924
1925 * lto.c (lto_fixup_tree): Do not emit an error when
1926 PREVAILING throw but T doesn't.
1927
19282008-12-02 Doug Kwan <dougkwan@google.com>
1929
1930 * lto.c (lto_scan_statics_in_ref_table): New function factored out
1931 from code in ...
1932 (lto_scan_statics_in_cgraph_node): Handle both file-scope static
1933 variables and functions.
1934 (lto_promote_cross_file_statics): Rename bitmaps to SEEN_DECLS
1935 and GLOBAL_DECLS from SEEN_VARS and GLOBAL_VARS.
1936
19372008-11-29 Diego Novillo <dnovillo@google.com>
1938
1939 * lto.c: Include timevar.h.
1940 (lto_materialize_function): Tidy. Add comments.
1941 (lto_wpa_write_files): Tidy.
1942 (lto_execute_ltrans): Tidy.
1943 (lto_main): Add local variable LTO_TIMER. Initialize it
1944 to one of TV_WHOPR_WPA, TV_WHOPR_LTRANS or TV_LTO.
1945 Start and stop the timer.
1946 Tidy comments.
1947 * Make-lang.in (lto.o): Add dependency on timevar.h.
1948 * ltrans-driver: React to -v and -save-temps.
1949 Use simple heuristic to determine how much parallelism to
1950 use when executing make.
1951
19522008-11-12 Doug Kwan <dougkwan@google.com>
1953
1954 * lto.c (lto_bitmap_obstack): Remove var.
1955 (lto_materialize_function): Do nothing instead of marking function
1956 body in file if flag_wpa is true.
1957 (lto_add_all_inlinees): Use bitmap functions in lto-utils.c.
1958 (lto_scan_statics_in_cgraph_node): New function.
1959 (lto_promote_cross_file_statics): Same.
1960 (lto_wpa_write_files): Call lto_promote_cross_file_statics.
1961 Use bitmap functions in lto-utils.c. Remove unsued label OUT.
1962 * Make-lang.in (lto/lto.o): Add lto-utils.h to dependency list.
1963
19642008-11-09 Diego Novillo <dnovillo@google.com>
1965
1966 * lto/lto.c (lto_fixup_tree): Change error message locus
1967 information to include location of mismatching
1968 declaration.
1969 Use TREE_NO_WARNING to avoid repeated messages.
1970 (lto_main): If lto_fixup_decls emitted any errors, exit.
1971 * lto/lto-lang.c: Don't include libfuncs.h and except.h
1972 (lto_init_options): Don't enable exceptions by default.
1973 (lto_eh_runtime_type): Move to lto-function-in.c
1974 (lto_init_eh): Likewise.
1975 (lto_init): Don't call lto_init_eh.
1976 * lto/Make-lang.in (lto-lang.o): Remove dependency on
1977 libfuncs.h and except.h.
1978
19792008-10-30 Diego Novillo <dnovillo@google.com>
1980
1981 * lto.c (lto_read_decls): Declare debug_main only if
1982 LTO_STREAM_DEBUGGING is enabled.
1983
19842008-10-30 Simon Baldwin <simonb@google.com>
1985
1986 * lto.c (lto_wpa_write_files): Create intermediate files with
1987 make_cwd_temp_file().
1988 (lto_maybe_unlink): New. Delete intermediate WPA files unless
1989 WPA_SAVE_LTRANS is set.
1990 (lto_main): Call lto_maybe_unlink() for intermediate WPA files.
1991 * ltrans-driver: Do not strip directory from output files.
1992
19932008-10-29 Doug Kwan <dougkwan@google.com>
1994
1995 * lto.c (free_decl): Call lto_symtab_clear_resolution when freeing
1996 DECL.
1997 * Make-lang.in (LTO_OBJS): Remove lto/lto-symtab.o
1998 (lto/lto-symtab.o): Remove rule.
1999 * lto-tree.h (struct lang_identifier): Remove LTO specific fields.
2000 (struct lang_decl): Remove RESOLUTION and add DUMMY in struct.
2001 (LANG_IDENTIFIER_CAST, LTO_IDENTIFIER_DECL, LTO_DECL_RESOLUTION):
2002 Remove macros.
2003 lto-symtab.c (File): Move up one level.
2004 lto-lang.c (cgraph.h): Remove include.
2005 (input_overwrite_node, input_node, input_edge, input_cgraph_1,
2006 input_cgraph): Move to lto-cgraph.c in gcc directory above.
2007 (LANG_HOOKS_INPUT_CGRAPH): Remove use of macro.
2008
20092008-10-24 Rafael Espindola <espindola@google.com>
2010
2011 * lto-function-in.c (get_resolution): Return LDPR_PREEMPTED_IR for
2012 non prevailing weak symbols.
2013
20142008-10-24 Rafael Espindola <espindola@google.com>
2015
2016 * lto-lang.c (input_cgraph_1): Iterate over nodes, not cgraph_nodes.
2017
20182008-10-24 Rafael Espindola <espindola@google.com>
2019
2020 * lto-lang.c (input_node): Avoid casts from pointers to ints of
2021 different types.
2022
20232008-10-23 Simon Baldwin <simonb@google.com>
2024
2025 * lto-lang.c (input_node): Save the node reference, rather than the
2026 node pointer, in node->inlined_to.
2027 (input_cgraph_1): Convert node references into node pointers.
2028
20292008-10-22 Diego Novillo <dnovillo@google.com>
2030 Rafael Espindola <espindola@google.com>
2031
2032 * lto.c (lto_resolution_read): Tidy.
2033 * lto-symtab.c (lto_symtab_prevailing_decl): Do not
2034 abort if RET is NULL.
2035
20362008-10-22 Doug Kwan <dougkwan@google.com>
2037
2038 * lto.c (lto_fixup_tree): Check for NOTHROW conflict only if
2039 exceptions flag is given.
2040 * lto-lang.c: (lto_init_options) Set default exceptions flag.
2041 (lto_init_eh): Remove exceptions flag initialization.
2042 (lto_init): Only call lto_init_eh if exceptions flag is set.
2043
20442008-10-21 Diego Novillo <dnovillo@google.com>
2045
2046 * lto.c: Tidy some formatting.
2047 * lto.h: Likewise.
2048
20492008-10-21 Simon Baldwin <simonb@google.com>
2050
2051 * lto-symtab.c: (lto_same_type_p): Types cannot be equal if one of
2052 them is NULL (but not the other).
2053
20542008-10-17 Diego Novillo <dnovillo@google.com>
2055
2056 * ltrans-driver: Divert output from make to a temporary file.
2057 Show it if the call to make failed.
2058
20592008-10-15 Diego Novillo <dnovillo@google.com>
2060
2061 * lto.c (lto_wpa_write_files): Reformat do-while loop.
2062 Do not print TEMP_FILENAME
2063 * ltrans-driver: Call make with -s.
2064
20652008-10-15 Diego Novillo <dnovillo@google.com>
2066
2067 * lto-symtab.c (lto_symtab_merge_decl): Do not force
2068 TREE_STATIC on global symbols.
2069
20702008-10-14 Ollie Wild <aaw@google.com>
2071
2072 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): Remove.
2073 (LTRANS_DRIVER_EXE): Add.
2074 (lto.all.cross): Add LTRANS_DRIVER_EXE.
2075 (lto.all.encap): Add LTRANS_DRIVER_EXE.
2076 (lto.install.common): Remove ltrans-driver.
2077 (lto.mostlyclean): Add LTRANS_DRIVER_EXE.
2078 (LTRANS_DRIVER_EXE): New build rule.
2079 * config-lang.in (compilers): Add ltrans-driver.
2080
20812008-10-14 Diego Novillo <dnovillo@google.com>
2082
2083 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): Disable transformation
2084 of program name.
2085
20862008-10-13 Ollie Wild <aaw@google.com>
2087
2088 * lang-spec.h (@lto): Replace lto1_options with cc1_options.
2089 * lto.c (lto_execute_ltrans): Add "-fno-wpa -fltrans -xlto" to CFLAGS.
2090 * ltrans-driver (LTRANS_FLAGS): Remove.
2091
20922008-10-08 Doug Kwan <dougkwan@google.com>
2093
2094 * lto.c (lto_fixup_tree): Remove ATTRIBUTE_UNUSED from DATA.
2095 Handle new tree codes RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE
2096 and TREE_BINFO. Also move code handling FUNCTION_DECL and VAR_DECL
2097 from lto_fixup_state to here.
2098 (lto_fixup_state): Take an lto_fixup_data_t object DATA instead of
2099 just a free-list. Fix up types also. Move decl merging code to
2100 lto_fixup_tree.
2101 (lto_fixup_state_aux): Change AUX to point to an lto_fixup_data_t
2102 object.
2103 (lto_fixup_decls): Use another pointer set to avoid multiple
2104 walking of nodes except for DECLs to be replaced. Pass an
2105 lto_fixup_data_t object to tree-walker.
2106
21072008-10-08 Rafael Espindola <espindola@google.com>
2108
2109 * lto-symtab.c (lto_symtab_set_resolution): New.
2110 (lto_symtab_merge_decl): Use lto_symtab_set_resolution and
2111 lto_symtab_get_resolution.
2112 (lto_symtab_prevailing_decl): Return decl for non public decls.
2113 (lto_symtab_get_resolution): New.
2114 * lto.c (lto_fixup_tree, lto_fixup_state): Remove unecessary checks.
2115
21162008-10-06 Rafael Espindola <espindola@google.com>
2117
2118 * lto-lang.c: Include cgraph.h.
2119 (input_overwrite_node, input_node, input_edge, input_cgraph_1,
2120 input_cgraph): Moved from lto-cgraph.c.
2121 (LANG_HOOKS_INPUT_CGRAPH): New.
2122
21232008-10-03 Rafael Espindola <espindola@google.com>
2124
2125 * lto.c (lto_fixup_tree, lto_fixup_state): Fix the FIXME.
2126
21272008-10-03 Rafael Espindola <espindola@google.com>
2128
2129 * lto-symtab.c (lto_symtab_overwrite_decl): Remove. Remove all calls.
2130 (lto_symtab_merge_decl): Update LTO_IDENTIFIER_DECL the reflect the
2131 prevailing definition. Don't mark TREE_NOTHROW differences.
2132 * lto.c (lto_fixup_tree): New.
2133 (lto_fixup_state): New.
2134 (lto_fixup_state_aux): New.
2135 (free_decl): New.
2136 (lto_fixup_decls): New.
2137 (lto_main): Call lto_fixup_decls.
2138
21392008-10-02 Ollie Wild <aaw@google.com>
2140
2141 * lang.opt (fltrans): Moved from common.opt. Remove RejectNegative
2142 and Init.
2143 (fwpa): Moved from common.opt. Remove RejectNegative and Init.
2144 * lto-lang.c (lto_post_options): Add validation and fixups for
2145 -fltrans and -fwpa.
2146
21472008-10-02 Rafael Espindola <espindola@google.com>
2148
2149 * lto-symtab.c (lto_symtab_merge_var, lto_symtab_merge_fn,
2150 lto_symtab_merge_decl): Return void.
2151 (lto_symtab_prevailing_decl): New.
2152
21532008-09-30 Rafael Espindola <espindola@google.com>
2154
2155 * lto-symtab.c (lto_symtab_compatible): Remove the check for already
2156 defined symbols.
2157 (lto_symtab_overwrite_decl): Copy LTO_DECL_RESOLUTION.
2158 (lto_symtab_merge_decl): Store symbol resolution in LTO_DECL_RESOLUTION.
2159 Check for already defined symbols.
2160 * lto-tree.h (lang_decl): Remove dummy and add resolution fields.
2161 (LTO_IDENTIFIER_RESOLUTION): Remove.
2162 (LTO_DECL_RESOLUTION): New.
2163
21642008-09-30 Rafael Espindola <espindola@google.com>
2165
2166 * lto.c (lto_read_decls): Use new input_tree signature.
2167
21682008-09-26 Doug Kwan <dougkwan@google.com>
2169
2170 * lto.c (lto_main): Call lto_fixup_nothrow_decls to fix up function
2171 bodies affected by exception attribute merging of DECLs.
2172 * lto-symtab.c (lto_symtab_merge_decl): Handle exception attribute
2173 merging.
2174
21752008-09-25 Rafael Espindola <espindola@google.com>
2176
2177 * Make-lang.in (PLUGIN_API_H, LTO_TREE_H): New.
2178 (lto/lto-lang.o, lto/lto.o, lto/lto-symtab.o) Use LTO_TREE_H.
2179 * lto-symtab.c (lto_symtab_compatible): New.
2180 (lto_symtab_overwrite_decl): New.
2181 (lto_symtab_merge_decl): Refactor to use the above functions
2182 and the resolution from lang_identifier.
2183 * lto-tree.h: Include plugin-api.h.
2184 (lang_identifier): Add resolution.
2185 (LTO_IDENTIFIER_RESOLUTION): New.
2186
21872008-09-25 Ollie Wild <aaw@google.com>
2188
2189 * lang.opt (fltrans-output-list=): New option.
2190 * lto.c (lto_execute_ltrans): Output file names to ltrans_output_list.
2191
21922008-09-25 Rafael Espindola <espindola@google.com>
2193
2194 * lto.c (lto_resolution_read): Initialize ret;
2195
21962008-09-24 Ollie Wild <aaw@google.com>
2197
2198 * lto.c (sys/mman.h): Move include.
2199 (lto_wpa_write_files): Return a list of written files.
2200 (lto_execute_ltrans): New function.
2201 (lto_main): Call lto_execute_ltrans.
2202 (ltrans-driver): New file.
2203 * lto-lang.c (DEFAULT_LTRANS_DRIVER): New macro.
2204 (DEAULT_LTRANS_DRIVER_LEN): New macro.
2205 (lto_init_options): Initialize ltrans_driver.
2206 (lto_handle_option): Fix incorrect default output value.
2207 * lang.opt (fltrans-driver=): New option.
2208 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): New variable.
2209 (lto.install-common): Add lto/ltrans-driver.
2210
22112008-09-24 Rafael Espindola <espindola@google.com>
2212
2213 * Make-lang.in (LTO_OBJS): Add lto/common.o.
2214 (lto/lto.o): Depend on lto/common.h.
2215 (lto/common.o): New.
2216 * lang.opt (resolution): New.
2217 * lto-lang.c (resolution_file_name): New.
2218 (lto_handle_option): Handle OPT_resolution.
2219 * lto-symtab.c (lto_symtab_merge_decl): Add a resolution argument.
2220 (lto_symtab_merge_var,lto_symtab_merge_fn): Add a resolution argument.
2221 pass it to lto_symtab_merge_decl.
2222 * lto.c: Include common.h.
2223 (lto_read_decls): Add resolutions and resolutions_size arguments.
2224 Initialize data_in.globals_resolution and
2225 data_in.globals_resolution_size.
2226 (index_and_symbol_resolution): New.
2227 (lto_resolution_read): New.
2228 (lto_file_read): Add argument resolution_file.
2229 Read resolution.
2230 * lto.h (resolution_file_name): New.
2231
22322008-09-23 Rafael Espindola <espindola@google.com>
2233
2234 * common.c: Update description.
2235 * common.h: Update description.
2236
22372008-09-23 Rafael Espindola <espindola@google.com>
2238
2239 * common.c: Moved from lto-plugin.
2240 * common.h: Moved from lto-plugin.
2241
22422008-09-22 Doug Kwan <dougkwan@google.com>
2243
2244 * lto.c (VEC(bitmap,heap)): Declare.
2245 (lto_materialize_function): Handle WAP mode specially.
2246 (lto_add_inline_clones): New.
2247 (lto_add_all_inlinees): Changle algorithm and to use bitmaps. Also
2248 return a bitmap of inlined decls.
2249 (lto_wpa_write_files): Handle all DECLs brought in by inlining.
2250 (lto_main): Call reset_inline_failed to reset inlining states.
2251 Check call-graph after WPA inlining.
2252 * lto-lang.c (lto_init): Do not clear flag_generate_lto
2253 unconditionally.
2254
22552008-09-19 Doug Kwan <dougkwan@google.com>
2256
2257 lto.c (lto_main): Remove unsued wrapper code.
2258 lang-specs.h (@lto): Use lto1_options instead of cc1_options.
2259
22602008-09-19 Rafael Espindola <espindola@google.com>
2261
2262 * lto-symtab.c: Include lto-tree-in.h.
2263 * lto-tree.h (lto_symtab_merge_var, lto_symtab_merge_fn): Remove.
2264 * lto.h (lto_symtab_merge_var, lto_symtab_merge_fn): Remove
2265 * Make-lang.in (lto/lto-symtab.o): Add lto-tree-in.h.
2266
22672008-09-17 Paolo Bonzini <bonzini@gnu.org>
2268 Rafael Avila de Espindola <espindola@google.com>
2269
2270 * lto-lang.c (COMPOUND_LITERAL_EXPR_DECL_STMT,
2271 COMPOUND_LITERAL_EXPR_DECL): Remove.
2272 (emit_local_var): Remove.
2273 (lto_expand_expr): Remove.
2274 (lto_staticp): Remove.
2275 (LANG_HOOKS_EXPAND_EXPR): Remove.
2276 (LANG_HOOKS_STATICP): Remove.
2277
22782008-09-11 Diego Novillo <dnovillo@google.com>
2279
2280 * lto-lang.c: Include except.h and libfuncs.h.
2281 (lto_init_eh): New.
2282 (lto_init): Call it.
2283 Set flag_generate_lto to 0.
2284 * Make-lang.in (lto-lang.o): Add dependency on except.h
2285 and libfuncs.h.
2286
22872008-09-09 Bill Maddox <maddox@google.com>
2288
2289 * lto-lang.c: Include header file expr.h.
2290 (COMPOUND_LITERAL_EXPR_DECL_STMT,
2291 COMPOUND_LITERAL_EXPR_DECL): Copied from c-common.h.
2292 (emit_local_var): Copied from c-semantics.c.
2293 (lto_expand_expr, lto_staticp): Copied from c_expand_expr
2294 and c_staticp in c-common.c.
2295 (LANG_HOOKS_EXPAND_EXPR,LANG_HOOKS_STATICP): Redefined.
2296
22972008-09-08 Diego Novillo <dnovillo@google.com>
2298
2299 * lto-lang.c (lto_global_bindings_p): Return 1 during
2300 IPA passes.
2301
23022008-09-07 Diego Novillo <dnovillo@google.com>
2303
2304 * lto.c: Tidy formatting.
2305
23062008-08-04 Bill Maddox <maddox@google.com>
2307
2308 * lto-symtab.c (lto_symtab_merge_decl): Add comment.
2309
23102008-09-03 Doug Kwan <dougkwan@google.com>
2311
2312 lto.c (lto_add_all_inlinees): Reset FAILED_REASON of edges to
2313 CIF_OK instead of NULL.
2314
23152008-09-02 Diego Novillo <dnovillo@google.com>
2316 Simon Baldwin <simonb@google.com>
2317
2318 * lto-lang.c (lto_type_for_size): Rewrite. Adapt from
2319 c_common_type_for_size.
2320 (lto_type_for_mode): Remove ATTRIBUTE_UNUSED markers.
2321 (lto_init): Call linemap_add.
2322 (signed_and_unsigned_types): Remove.
2323
23242008-08-29 Diego Novillo <dnovillo@google.com>
2325
2326 * lto-lang.c (handle_noreturn_attribute): New local function.
2327 (handle_const_attribute): New local function.
2328 (handle_malloc_attribute): New local function.
2329 (handle_pure_attribute): New local function.
2330 (handle_novops_attribute): New local function.
2331 (handle_nonnull_attribute): New local function.
2332 (handle_nothrow_attribute): New local function.
2333 (handle_sentinel_attribute): New local function.
2334 (handle_type_generic_attribute): New local function.
2335 (handle_format_attribute): New local function.
2336 (handle_format_arg_attribute): New local function.
2337 (lto_attribute_table): Declare.
2338 (lto_format_attribute_table): Declare.
2339 (lto_init_attributes): New local function.
2340 (lto_define_builtins): Call it.
2341 Call targetm.init_builtins and build_common_builtin_nodes.
2342 (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Define.
2343 (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Define.
2344
23452008-08-28 Diego Novillo <dnovillo@google.com>
2346
2347 * Make-lang.in (lto-lang.o): Replace tree-gimple.h with
2348 $(GIMPLE_H).
2349 (lto-symtab.o): Add dependency on $(GIMPLE_H).
2350 * lto-lang.c: Include gimple.h instead of tree-gimple.h.
2351 * lto-symtab.c: Include gimple.h.
2352 * lto-tree.h (chain_next): Replace GENERIC_NEXT with
2353 TREE_CHAIN.
2354
23552008-08-27 Doug Kwan <dougkwan@google.com>
2356
2357 * lto.c (vec.h, bitmap.h, pointer-set.h, ipa-prop.h, ggc.h,
2358 gt-lto-lto.h): New includes.
2359 (lto_materialize_function): Do not read in function body in WPA mode.
2360 Format a line to fit in 80 columns.
2361 (lto_cgraph_node_sets): New garbage collected variable.
2362 (lto_1_to_1_map, lto_add_all_inlinees, lto_wpa_write_files):
2363 New functions.
2364 (lto_main): Initialize bitmap obstack. Add code to handle WPA mode.
2365 * Make-lang.in (LTO_H): Replace filename lto-section-in.h with
2366 variable LTO_SECTION_IN_H.
2367 (lto/lto.o): Include gt-lto-lto-c.h ggc.h ,VEC_H, BITMAP_H,
2368 pointer-set.h and IPA_PROP_H. Also replace filename lto-section-in.h
2369 with variable LTO_SECTION_IN_H.
2370 * config-lang.in (gtfiles): Add lto/lto.c.
2371 * lto-symtab.c (lto_symtab_merge_decl): Set DECL_CONTEXT of
2372 merged DECL_RESULT correctly.
2373
23742008-08-26 Bill Maddox <maddox@google.com>
2375
2376 * lto-lang.c Include tree-gimple.h.
2377 (lto_mark_addressable): Call mark_addressable rather than
2378 asserting.
2379 (lto_post_options): Suppress debug info generation.
2380 * Make-lang.in: Add dependency of lto-lang.o on tree-gimple.h.
2381
23822008-08-25 Bill Maddox <maddox@google.com>
2383
2384 * lto-symtab.c (lto_symtab_merge_decl): Remove a suspect
2385 assertion and leave an explanatory comment in its place.
2386
23872008-08-21 Doug Kwan <dougkwan@google.com>
2388
2389 * lto.c (preload_common_nodes): Call lto_get_common_nodes to get a list
2390 of common nodes instead of computing locallly.
2391 (lto_read_in_decl_state): New.
2392 (lto_read_decls): Change code for udpate in struct lto_decl_header.
2393 Read global and per-function in-decl states.
2394 * Make-lang.in (LTO_H): Update dependency.
2395 (lto/lto.o): Same.
2396 (lto-symtab.c): Merge (revision 139039)
2397 * lto-symtab.c (lto_symtab_merge_decl): Merge DECL_RESULT.
2398
23992008-08-21 Rafael Espindola <espindola@google.com>
2400
2401 * config-lang.in (target_libs): New.
2402
24032008-08-20 Bill Maddox <maddox@google.com>
2404
2405 * lto.c (current_lto_file): Remove GTY marker from static
2406 variable. Remove include of file gt-lto-lto.h.
2407 * Make-lang.in: Remove dependency of lto/lto.o on
2408 gt-lto-lto.h.
2409 * lto-elf.c (lto_file_close): Removed.
2410 (lto_elf_file_open): Use XCNEW instead of GGC_CNEW to
2411 allocate lto_elf_file object.
2412 (lto_elf_file_close): Free lto_elf_file object after close.
2413 * lto.h (struct lto_file_struct): Remove GTY marker.
2414 * config-lang.in: Remove lto/lto.h and lto/lto.c from
2415 gtfiles.
2416
24172008-08-20 Bill Maddox <maddox@google.com>
2418
2419 * lto.c (lto_read_decls): Provide dummy argument to input_tree
2420 to conform to its new signature.
2421 * lto-symtab.c (lto_symtab_merge_decl): Do not invoke ggc_free
2422 on discarded node here, now called in global_vector_fixup.
2423
24242008-08-09 Bill Maddox <maddox@google.com>
2425
2426 * lto.c (preload_common_nodes): Verify that fileptr_type_node
2427 has not been set to a front-end-specific value.
2428
24292008-08-05 Doug Kwan <dougkwan@google.com>
2430
2431 * Make-lang.in (lto-symtab.o): Add missing dependencies to fix
2432 build breakage.
2433
24342008-07-30 Bill Maddox <maddox@google.com>
2435
2436 * lto.c (lto_materialize_function): Call lto_original_decl_name.
2437 Remove obsolete comments.
2438 (lto_read_decls): Remove initialization of deleted field data_in.global.
2439 Tidy up comments.
2440 (lto_main): Remove redundant initialization of section_hash_table.
2441 * lto-elf.c: Removed obsolete comments.
2442 * lto.h: Tidy up comments.
2443 * lto-symtab.c (lto_least_common_multiple): New function.
2444 (lto_symtab_merge_decl): Merge variable alignments in some cases.
2445 Tidy up comments.
2446
24472008-07-25 Diego Novillo <dnovillo@google.com>
2448 Bill Maddox <maddox@google.com>
2449
2450 * lto.c: Re-order include files.
2451 Include lto-section-out.h.
2452 (preload_common_nodes): Add debugging output.
2453 Add new local INDEX_TABLE.
2454 Call preload_common_node.
2455 * Make-lang.in (lto.o): Add dependency on lto-section-out.h
2456
24572008-07-13 Bill Maddox <maddox@google.com>
2458
2459 * lto.c (lto_read_decls): Cast pointer to const char * to avoid
2460 unwanted scaling during pointer addition.
2461
24622008-07-11 Bill Maddox <maddox@google.com>
2463 Diego Novillo <dnovillo@google.com>
2464
2465 * lto.c (lto_read_decls): Fix C++ compatibility warnings.
2466 Make code const-correct.
2467 (lto_file_read): Fix C++ compatibility warnings.
2468 (lto_read_section_data): Fix C++ compatibility warnings.
2469 (lto_get_section_data): Use CONST_CAST to avoid warning when
2470 const pointer passed to free.
2471 * lto-elf.c (lto_elf_build_section_table): Fix C++
2472 compatibility warnings.
2473 (lto_elf_append_data): Fix C++ compatibility warnings. Use CONST_CAST
2474 to avoid warning assigning const pointer to d_buf field of Elf_Data.
2475 (lto_get_current_out_file): Fix C++ compatibility warnings.
2476
24772008-07-11 Diego Novillo <dnovillo@google.com>
2478
2479 * Make-lang.in (lto-warn): Define.
2480
24812008-07-03 Simon Baldwin <simonb@google.com>
2482
2483 * lto.c (lto_read_decls): Wrapped debug-only data items within #ifdef
2484 LTO_STREAM_DEBUGGING.
2485
24862008-06-27 Ollie Wild <aaw@google.com>
2487
2488 * lto-elf.c (lto-section-out.h): New include.
2489 (struct lto_elf_file): Remove bits member. Add scn, shstrtab_stream,
2490 and data members.
2491 (cached_file_attrs): New static variable.
2492 (lto_elf_get_shdr, lto_elf_free_shdr): Remove elf_file parameter.
2493 Use cached_file_attrs for checking bits.
2494 (lto_elf_build_section_table): Remove elf_file argument from
2495 lto_elf_get_shdr and lto_elf_free_shdr calls.
2496 (DEFINE_INIT_SHDR): New macro.
2497 (init_shdr32, init_shdr64): New functions defined via the
2498 DEFINE_INIT_SHDR macro.
2499 (lto_elf_begin_section_with_type): New function.
2500 (lto_elf_begin_section): New function.
2501 (lto_elf_append_data): New function.
2502 (lto_elf_end_section): New function.
2503 (DEFINE_VALIDATE_EHDR): New macro.
2504 (validate_ehdr32, validate_ehdr64): New functions defined via the
2505 DEFINE_VALIDATE_EHDR macro.
2506 (validate_file): New function.
2507 (DEFINE_INIT_EHDR): New macro.
2508 (init_ehdr32, init_ehdr64): New functions defined via the
2509 DEFINE_INIT_EHDR macro.
2510 (init_ehdr): New function.
2511 (lto_elf_file_open): Add support for writable files. Move some
2512 validation logic to validate_file.
2513 (lto_elf_file_close): Add support for writable files. Write file data
2514 and free data blocks.
2515 (current_out_file): New static variable.
2516 (lto_set_current_out_file): New function.
2517 (lto_get_current_out_file): New function.
2518 * lto.c (lto_main): Add writable argument to lto_elf_file_open calls.
2519 Add temporary initialization for testing ELF serialization.
2520 * lto.h (lto-section-out.h): New include.
2521 (struct lto_file_struct): Slight modification to comment.
2522 (lto_elf_file_open): Add writable parameter.
2523 (lto_elf_begin_section): New function declaration.
2524 (lto_elf_append_data): New function declaration.
2525 (lto_elf_end_section): New function declaration.
2526 (lto_set_current_out_file, lto_get_current_out_file): New function
2527 declarations.
2528 * lto-lang.c (LANG_HOOKS_BEGIN_SECTION): Set as lto_elf_begin_section.
2529 (LANG_HOOKS_APPEND_DATA): Set as lto_elf_append_data.
2530 (LANG_HOOKS_END_SECTION): Set as lto_elf_end_section.
2531 * Make-lang.in (LTO_H): Add lto-section-out.h.
2532
25332008-06-12 Ollie Wild <aaw@google.com>
2534
2535 * lto.h (struct lto_file_vtable_struct): Remove.
2536 (struct lto_file_struct): Remove vtable member.
2537 * lto-elf.c (lto_file_init): Remove vtable argument.
2538 (lto_elf_map_optional_lto_section): Remove.
2539 (lto_elf_unmap_section): Remove.
2540 (lto_elf_file_vtable): Remove.
2541 (lto_elf_file_open): Remove lto_elf_file_vtable argument from
2542 lto_file_init call.
2543 (lto_elf_find_section_data): Remove.
2544
25452008-06-11 Ollie Wild <aaw@google.com>
2546
2547 * lto.c (lto_file_read): Add const qualifier to data variable.
2548
25492008-06-11 Diego Novillo <dnovillo@google.com>
2550
2551 Merge from lto-streamber sub-branch.
2552
2553 2008-06-04 Ollie Wild <aaw@google.com>
2554
2555 * lto.c: Remove inclusion of dwarf2.h and dwarf2out.h.
2556 * Make-lang.in (lto.o): Remove dependency on dwarf2.h.
2557
2558 2008-05-28 Bill Maddox <maddox@google.com>
2559
2560 Replace the DWARF reader in the LTO front-end.
2561
2562 * lto.c: Include lto-tree-in.h, lto-tags.h.
2563 (enum DWARF2_class, DW_cl_constant, struct
2564 DWARF2_form_data, struct lto_context,
2565 lto_fd_init, lto_info_fd_init,
2566 lto_abbrev_fd_init, lto_info_fd_close,
2567 lto_file_init, lto_file_close,
2568 lto_file_corrupt_error, lto_abi_mismatch_error,
2569 LTO_CHECK_INT_VAL, LTO_READ_TYPE,
2570 lto_read_uleb128, lto_read_sleb128,
2571 lto_read_initial_length, lto_abbrev_read_attrs,
2572 lto_abbrev_read, lto_abbrev_read_lookup,
2573 lto_read_section_offset,
2574 lto_read_comp_unit_header, find_cu_for_offset,
2575 lto_get_file_name,
2576 lto_resolve_reference,lto_read_form,
2577 attribute_value_as_int,
2578 make_signed_host_wide_int,
2579 attribute_value_as_constant, lto_cache_hash,
2580 lto_cache_eq, lto_cache_store_DIE,
2581 lto_cache_lookup_DIE, lto_find_integral_type,
2582 lto_find_integral_type_1,
2583 LTO_BEGIN_READ_ATTRS_UNCHECKED,
2584 LTO_BEGIN_READ_ATTRS, LTO_END_READ_ATTRS,
2585 lto_unsupported_attr_error, lto_get_identifier,
2586 lto_read_referenced_type_DIE,
2587 lto_read_compile_unit_DIE,
2588 lto_read_array_type_DIE,
2589 lto_read_structure_union_class_type_DIE,
2590 lto_read_enumerator_DIE,
2591 lto_read_enumeration_type_DIE,
2592 lto_read_only_for_child_DIEs,
2593 lto_read_only_for_child_DIEs,
2594 lto_read_member_DIE, lto_read_abbrev,
2595 lto_read_variable_formal_parameter_constant_DIE,
2596 lto_get_body): Removed.
2597 (preload_common_nodes): New function.
2598 (lto_read_decls): Convert for new global streamer.
2599 (lto_materialze_file_data,
2600 lto_read_subroutine_type_subprogram_die,
2601 lto_read_unspecified_parameters_DIE,
2602 lto_read_typedef_DIE,
2603 lto_read_pointer_reference_type_DIE,
2604 lto_read_subrange_type_DIE,
2605 lto_read_base_type_DIE,
2606 lto_read_const_volatile_restrict_type_DIE,
2607 lto_read_namespace_DIE,
2608 lto_read_unspecified_type_DIE, lto_read_DIE,
2609 lto_read_child_DIEs, lto_collect_child_DIEs):
2610 Removed.
2611 (lto_info_read, lto_set_cu_context): Removed.
2612 (lto_file_read): Convert for new global streamer.
2613 (lto_resolve_type_ref, lto_read_DIE_at_ptr,
2614 lto_resolve_var_ref, lto_resolve_fn_ref,
2615 lto_resolve_field_ref, lto_resolve_typedecl_ref,
2616 lto_resolve_namespacedecl_ref): Removed.
2617 (lto_file_init, lto_file_close): Moved to lto-elf.c.
2618 * lto-tree.h (lto_symtab_merge_var,
2619 lto_symtab_mergee_fun): Declare here.
2620 * lto-elf.c (lto_file_init, lto_file_close): Moved from lto.c.
2621 (lto_elf_file_open): Removed code to read DWARF debug sections.
2622 * lto.h (lto_context, DWARF2_attr, DWARF2_abbrev,
2623 DWARF2_CompUnit, lto_die_ptr,
2624 lto_die_cache_entry, lto_fd, lto_info_fd,
2625 lto_abbrev_fd): Removed.
2626 (lto_file): Removed debug_info and debug_abbrev fields.
2627 (lto_ref): Removed.
2628 (lto_file_init, lto_file_close,
2629 lto_resolve_type_ref, lto_resolve_var_ref,
2630 lto_resolve_fn_ref, lto_resolve_field_ref,
2631 lto_resolve_typedecl_ref,
2632 lto_resolve_namespacedecl_ref,
2633 lto_get_file_name): Removed declarations.
2634 (lto_symtab_merge_var, lto_symtab_merge_fn):
2635 Declarations moved to lto-tree.h.
2636 * lto-symtab.c (lto_compatible_attributes_p):
2637 Lobotomize this, as it barfs on "Hello, world!".
2638 * lto-section-out.c: Include lto-tree-out.h.
2639 (lto_hash_global_slot_node,
2640 lto_eq_global_slot_node, preload_common_nodes,
2641 write_global_stream, write_global_references):
2642 New functions.
2643 (produce_asm_for_decls): Convert for new global streamer.
2644 * lto-section-out.h (lto_hash_global_slot_node,
2645 lto_eq_global_slot_node): Declare.
2646
26472008-06-07 Kenneth Zadeck <zadeck@naturalbridge.com>
2648 Jan Hubicka <jh@suse.cz>
2649
2650 * lto.c (sys/mman.h, tree-pass.h): New includes.
2651 (lto_materialize_constructors_and_inits,
2652 lto_materialize_function): Keeps length of section.
2653 (lto_materialize_cgraph): Removed.
2654 (lto_read_decls): Initialize fd field.
2655 (lto_file_read): Different return type and removed much code to
2656 lto_main.
2657 (page_mask): New variable.
2658 (lto_read_section_data, get_section_data, free_section_data): New
2659 functions.
2660 (lto_main): Now calls pass manager, sets the hooks so that the ipa
2661 passes can get the section data.
2662
26632008-05-27 Kenneth Zadeck <zadeck@naturalbridge.com>
2664
2665 * lto.h (lto_read_decls): Made local.
2666 (lto_input_function_body, lto_input_constructors_and_inits,
2667 lto_input_cgraph): Declarations moved to lto-section-in.h.
2668 * lto-section-in.c: Moved to .. .
2669 * lto-cgraph-in.c: Ditto.
2670 * lto-section-in.h: Ditto.
2671 * lto-function-in.c: Ditto.
2672 * lto-lang.c (lto_handle_option): Added ATTRIBUTE_UNUSED to parms.
2673 (lto_insert_block): Removed.
2674 (LANG_HOOKS_INSERT_BLOCK): Removed.
2675 * Make-lang.in (lto-cgraph-in.o, lto-function-in.o,
2676 lto-section-in.o): Rules moved to lto/Makefile.in.
2677
2678
26792008-05-16 Ollie Wild <aaw@google.com>
2680
2681 * lto-lang.c (tree-inline.h): Include.
2682 (lto_post_options): New function.
2683 (LANG_HOOKS_POST_OPTIONS): Define.
2684 * lto-cgraph-in.c (overwrite_node): Set node->global.insns.
2685 * lto-function-in.c (input_bb): Set TREE_BLOCK (stmt).
2686
26872008-05-13 Diego Novillo <dnovillo@google.com>
2688
2689 * lto-function-in.c (input_ssa_names): Call
2690 make_ssa_name_fn instead of make_ssa_name.
2691
26922008-05-12 Diego Novillo <dnovillo@google.com>
2693
2694 * lto-cgraph-in.c (overwrite_node): Update references to
2695 inline summary fields.
2696 * lto-function-in.c (input_expr_operand): Do not handle
2697 STRUCT_FIELD_TAG.
2698
26992008-05-09 Ollie Wild <aaw@google.com>
2700
2701 * lang.opt: New file.
2702 * lto-lang.c (lto_init_options): New function.
2703 (lto_handle_option): New function.
2704 (lto_init): Move initialization of flag_unit_at_a_time to
2705 lto_init_options.
2706 (LANG_HOOKS_INIT_OPTIONS): Define.
2707 (LANG_HOOKS_HANDLE_OPTION): Define.
2708
27092008-04-29 Ollie Wild <aaw@google.com>
2710
2711 * lto.c (lto_read_namespace_DIE): New function.
2712 (lto_read_DIE): Add lto_read_namespace_DIE callback. Cache
2713 NAMESPACE_DECL DIE's.
2714 (lto_resolve_namespacedecl_ref): New function.
2715 * lto.h (lto_resolve_namespacedecl_ref): New function.
2716 * lto-section-in.c (lto_read_decls): Read namespace declarations.
2717 * lto-section-in.h (struct lto_file_decl_data): Add namespace_decls
2718 and num_namespace_decls.
2719 * lto-function-in.c (input_expr_operand): Add NAMESPACE_DECL case.
2720 * lto-lang.c (lto_init_ts): New function.
2721 (LANG_HOOKS_INIT_TS): Set as lto_init_ts.
2722
27232008-04-16 Ollie Wild <aaw@google.com>
2724
2725 * lto-function-in.c (input_type_ref): Updated function description.
2726
27272008-04-16 Ollie Wild <aaw@google.com>
2728
2729 * lto-function-in.c (input_type_ref_1): New function.
2730 (input_type_ref): Split into two functions.
2731 (input_function): Add support for type contexts.
2732
27332008-04-16 Ollie Wild <aaw@google.com>
2734
2735 * lto.c (lto_materialize_function): Use DECL_ASSEMBLER_NAME to compute
2736 section name
2737
27382008-04-16 Ollie Wild <aaw@google.com>
2739
2740 * lto.c (lto_read_compile_unit_DIE): Add DW_LANG_C_plus_plus to the
2741 list of supported languages.
2742
27432008-03-25 Kenneth Zadeck <zadeck@naturalbridge.com>
2744
2745 Merge with mainline @133491.
2746
27472008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
2748 Jan Hubicka <jh@suse.cz>
2749
2750 * lto.c (lto_info_fd_init, lto_info_fd_close): Get rid of
2751 fd->unmaterialized_fndecls.
2752 (lto_get_file_name, lto_materialize_cgraph): New function.
2753 (lto_materialize_constructors_and_inits,
2754 lto_materialize_function): Read info directly from elf file.
2755 (lto_file_read): Made local and initialize dictionary so that
2756 other lto sections can be read without reprocessing the elf file.
2757 (lto_main): Read all functions after all files have been processed
2758 for their types, globals and cgraph.
2759 * Make-lang.in (lto.o, lto-cgraph-in.c, lto-section-in): Changed
2760 dependencies.
2761 * lto-elf.c (lto_elf_file): Removed strtab, symtab fields.
2762 (hash_name, eq_name, lto_elf_build_section_table): New functions.
2763 (lto_elf_read_symtab): Removed function.
2764 (lto_elf_file_open): Removed call to lto_elf_read_symtab.
2765 * lto.h (lto_info_fd_struct): Removed unmaterialized_fndecls.
2766 (lto_file_read): Made local.
2767 (lto_get_file_name, lto_elf_build_section_table,
2768 lto_input_cgraph):
2769 New function.
2770 * lto-section-in.c (lto_read_section_data, lto_get_section_data):
2771 New functions.
2772 (lto_read_decls): Get the file name.
2773 * lto-cgraph-in.c: New file.
2774 * lto-function-in.c (tag_to_expr): Stops at LTO_tree_last_tag.
2775 (input_expr_operand, lto_read_body): Set lto_debug_context.tag_names.
2776 (input_labels): Fixed latent sizeof issue.
2777 (input_function): Build stmt array to set call sites into cgraph
2778 edges.
2779 (lto_read_body): Reset cfun->curr_properties.
2780 * lto_section_in.h (lto_section_slot): New structure.
2781 (section_hash_table.lto_file_decl_data): New field.
2782
2783
27842008-02-09 Kenneth Zadeck <zadeck@naturalbridge.com>
2785
2786 * lto.c (lto_read_variable_formal_parameter_const): Remove code to
2787 reconstruct static initializers.
2788 (lto_get_body, lto_materialize_function): Add lto_section_type as
2789 a parameter.
2790 (lto_materialize_constructors_and_inits,
2791 lto_materialize_file_data): New function.
2792 (lto_materialize_function,
2793 lto_read_subroutine_type_subprogram_DIE): Renamed unmap_fn_body to
2794 unmap_section and map_fn_body to map_section.
2795 (lto_set_cu_context): Process functions and static inits
2796 differently.
2797 * Make-lang.in (LTO_H, lto/lto-function-in.o,
2798 lto/lto-section-in.o): Update dependencies.
2799 * lto/lto-elf.c (lto_elf_map_optional_lto_section): Add
2800 lto_section_type parameter.
2801 (lto_elf_unmap_fn_body): Renamed to lto_elf_unmap_section.
2802 * lto.h (lto_file_vtable_struct): Removed two of the fields and
2803 renamed the other two so that there is only one map function and
2804 one unmap function and each takes a section type parameter.
2805 (lto_read_function_body): Renamed to lto_input_function_body and
2806 added file_data parameter.
2807 (lto_read_var_init): Removed.
2808 (lto_input_constructors_and_inits): New function.
2809 * lto-section-in.c (lto_read_decls): New function.
2810 * lto-function-in.c (data_in): Moved fields field_decls, fn_decls,
2811 var_decls, type_decls, types to lto_file_decl_data.
2812 (input_type_ref, input_expr_operand, lto_read_body): Get
2813 field_decls, fn_decls, var_decls, type_decls, types from different
2814 structure.
2815 (input_globals, input_constructor, lto_read_var_init): Removed.
2816 (input_constructors_or_inits): New function.
2817 (lto_read_function_body, lto_input_constructors_and_inits):
2818 Renamed to lto_input_function_body and takes file_data parameter.
2819 * lto-section-in.h (lto_file_decl_data): New structure.
2820
28212008-01-28 Kenneth Zadeck <zadeck@naturalbridge.com>
2822
2823 * lto-function-in.c (input_globals.c): Changed input type to
2824 lto_function_header.
2825 (input_bb): Removed code to deserialize the stmt number.
2826 (input_function): Renumber all stmts after they are input.
2827 (lto_read_body, lto_read_function_body, lto_read_var_init):
2828 Changed to used new header format and enum section_type.
2829 *lto-lang.c (success): Removed.
2830
28312008-01-28 Nathan Froyd <froydnj@codesourcery.com>
2832
2833 * lto-elf.c (lto_elf_lookup_sym): Remove unused function.
2834 (lto_elf_free_sym): Likewise.
2835
2836 * lto-elf.c (lto_elf_read_var_init): Remove unused function.
2837 (lto_elf_build_init): Likewise.
2838
28392008-01-14 Kenneth Zadeck <zadeck@naturalbridge.com>
2840
2841 * lto-read.c: Renamed to lto-function-in.c.
2842 (input_1_unsigned): Moved to lto-section-in.c and renamed
2843 lto_input_1_unsigned.
2844 (input_uleb128): Moved to lto-section-in.c and renamed
2845 lto_input_uleb128.
2846 (input_widest_uint_uleb128): Moved to lto-section-in.c and renamed
2847 lto_input_widest_uint_uleb128.
2848 (input_sleb128): Moved to lto-section-in.c and renamed
2849 lto_input_sleb128.
2850 (input_integer): Moved to lto-section-in.c and renamed
2851 lto_input_integer.
2852 (debug_in_fun): Moved to lto-section-in.c and renamed
2853 lto_debug_in_fun.
2854 (input_block): Moved to lto-section-in.h and renamed
2855 lto_input_block.
2856 (input_expr_operand): Fixed to allow lists with more than one
2857 element.
2858 * lto-section-in.h: New file.
2859 * lto-section-in.c: New file with changes from above.
2860 * Make-lang.in (lto-read.o): Renamed lto-function-in.c.
2861 (lto-section-in.o): New rule.
2862
28632007-12-29 Nathan Froyd <froydnj@codesourcery.com>
2864
2865 * lto-read.c (input_expr_operand): Mark static and external
2866 VAR_DECLs as needed.
2867
28682007-12-29 Nathan Froyd <froydnj@codesourcery.com>
2869
2870 * lto-read.c (input_integer): Use the correct shift amount.
2871
28722007-12-29 Nathan Froyd <froydnj@codesourcery.com>
2873
2874 * lto-lang.c (lto_pushdecl): Do nothing instead of aborting.
2875 (LANG_HOOKS_NAME): Define.
2876
28772007-12-27 Nathan Froyd <froydnj@codesourcery.com>
2878
2879 * lto.c (lto_find_integral_type): Define as a macro. Rename the
2880 original function to...
2881 (lto_find_integral_type_1): ...this. Consult UNSIGNEDP if we
2882 don't have a base type.
2883 (lto_read_enumeration_type_DIE): Examine the values of the
2884 enumeration to determine whether we can use an unsigned type for
2885 the base type of the enumeration.
2886
28872007-12-24 Nathan Froyd <froydnj@codesourcery.com>
2888
2889 * lto.c (lto_read_structure_union_class_type_DIE): Set TYPE_MODE
2890 and TYPE_ALIGN on UNION_TYPEs as soon as possible.
2891
28922007-12-22 Nathan Froyd <froydnj@codesourcery.com>
2893
2894 * lto-lang.c (lto_types_compatible_p): New function.
2895 (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
2896
28972007-12-22 Nathan Froyd <froydnj@codesourcery.com>
2898 Kenneth Zadeck <zadeck@naturalbridge.com>
2899
2900 * lto-read.c (input_expr_operand): Fixed uninitialize var warning.
2901 (input_local_vars): Read in DECL_INITIAL and context for local
2902 statics that need to be put in unexpanded_vars_list.
2903
29042007-12-21 Nathan Froyd <froydnj@codesourcery.com>
2905
2906 * lto-read.c (input_real): Use a separate null-terminated buffer
2907 for calling real_from_string.
2908 (input_expr_operand): If we take the address of a FUNCTION_DECL,
2909 tell cgraph that it's needed.
2910
29112007-12-19 Doug Kwan <dougkwan@google.com>
2912
2913 * lto.c (lto_read_base_type_DIE): Handle complex integer types.
2914
29152007-12-18 Nathan Froyd <froydnj@codesourcery.com>
2916
2917 * lto.c (lto_read_DIE): Call lto_read_only_for_child_DIEs instead.
2918 (lto_file_read): Reset the members of 'context' every time we read
2919 a toplevel DIE, with special attention to last_param_type.
2920
29212007-12-18 Nathan Froyd <froydnj@codesourcery.com>
2922
2923 * lto.c (lto_read_subroutine_type_subprogram_DIE): Initialize
2924 'declaration'. Set the assembler name for non-public functions.
2925
29262007-12-17 Kenneth Zadeck <zadeck@naturalbridge.com>
2927
2928 * lto_read.c (data_in.unexpanded_indexes): New array.
2929 (input_local_var): Added code to read in unexpanded_var_list
2930 indexes for variables. Only read in DECL_CHAIN field for
2931 parameters.
2932 (input_local_vars): Added code to rebuild unexpanded_var_list in
2933 order using unexpanded_indexes.
2934 (input_function): Added code to set DECL_CONTEXT for functions.
2935
29362007-12-13 Doug Kwan <dougkwan@google.com>
2937
2938 * lto.c (lto_read_pointer_reference_type_DIE): Handle optional name
2939 in pointer and reference types.
2940
29412007-12-13 Nathan Froyd <froydnj@codesourcery.com>
2942
2943 * lto-read.c (input_expr_operand): Use DECL_RESULT when reading a
2944 RESULT_DECL.
2945
29462007-12-13 Nathan Froyd <froydnj@codesourcery.com>
2947
2948 * lto.c (lto_read_array_type_DIE): Return the cached DIE if we've
2949 already read the DIE.
2950 (lto_get_body): New function, split out from...
2951 (lto_materialize_function): ...here. Call it.
2952 (lto_read_subroutine_type_subprogram_DIE): Call lto_get_body to
2953 determine DECL_EXTERNAL.
2954 * lto-symtab.c (lto_symtab_merge_decl): Merge the DECL_RESULTs of
2955 FUNCTION_DECLs when necessary. Use the type of the actual
2956 function definition if we are unable to easily merge types. Ignore
2957 spurious DECL_MODE mismatches on VAR_DECLs. Merge DECL_MODEs when
2958 necessary.
2959
29602007-12-13 Nathan Froyd <froydnj@codesourcery.com>
2961
2962 * lto-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
2963
29642007-12-12 Bill Maddox <maddox@google.com>
2965
2966 Revert
2967 2007-12-07 Bill Maddox <maddox@google.com>
2968
2969 * lto.c (lto_str_fd_init): New function.
2970 (lto_str_fd_close): New function.
2971 (lto_file_init): Call lto_str_fd_init.
2972 (lto_file_close): Call lto_str_fd_close.
2973 (lto_str_read): New function. Read debug string table.
2974 (lto_str_lookup): New function. Get string for debug
2975 string table offset.
2976 (lto_read_form): Recognize DW_FORM_strp.
2977 (lto_file_read): Invoke lto_str_read.
2978
2979 * lto-elf.c (lto_elf_file_open): Read raw section data
2980 for the .debug_str section, if present.
2981
2982 * lto.h (struct lto_str_fd_struct): New struct.
2983 (struct lto_file_struct): Added new field DEBUG_STR
2984 to hold the file descriptor for the debug string table.
2985
29862007-12-07 Bill Maddox <maddox@google.com>
2987
2988 * lto.c (lto_str_fd_init): New function.
2989 (lto_str_fd_close): New function.
2990 (lto_file_init): Call lto_str_fd_init.
2991 (lto_file_close): Call lto_str_fd_close.
2992 (lto_str_read): New function. Read debug string table.
2993 (lto_str_lookup): New function. Get string for debug
2994 string table offset.
2995 (lto_read_form): Recognize DW_FORM_strp.
2996 (lto_file_read): Invoke lto_str_read.
2997
2998 * lto-elf.c (lto_elf_file_open): Read raw section data
2999 for the .debug_str section, if present.
3000
3001 * lto.h (struct lto_str_fd_struct): New struct.
3002 (struct lto_file_struct): Added new field DEBUG_STR
3003 to hold the file descriptor for the debug string table.
3004
30052007-12-07 Nathan Froyd <froydnj@codesourcery.com>
3006
3007 * lto-read.c (input_cfg): Call init_empty_tree_cfg_for_function.
3008 Grow the basic_block_info and label_to_block_map vectors if
3009 necessary. Read in the block chain.
3010
30112007-12-06 Nathan Froyd <froydnj@codesourcery.com>
3012
3013 * lto.c (lto_read_DIE): Set TYPE_ALIAS_SET where necessary.
3014
30152007-12-06 Nathan Froyd <froydnj@codesourcery.com>
3016
3017 * lto.c (lto_read_form): Add DW_cl_address for DW_AT_const_value.
3018
30192007-12-06 Nathan Froyd <froydnj@codesourcery.com>
3020
3021 * lto-read.c (input_expr_operand): Don't check for MTAGs.
3022 (lto_read_body): Don't declare PROP_alias.
3023
30242007-12-06 Nathan Froyd <froydnj@codesourcery.com>
3025
3026 * lto-symtab.c (lto_symtab_merge_decl): Handle FUNCTION_DECLs without
3027 argument type information.
3028
30292007-12-03 Nathan Froyd <froydnj@codesourcery.com>
3030
3031 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Set
3032 TREE_THIS_VOLATILE if the associated type is a volatile type.
3033 (lto_materialize_function): Remove call to init_ssa_operands.
3034 * lto-read.c (input_expr_operand): Add SSA_NAME_VAR as a referenced
3035 variable when reading an SSA_NAME. Do the same when reading a
3036 RESULT_DECL, a RETURN_EXPR, or an MTAG.
3037 (input_cfg): Call init_ssa_operands.
3038 (input_ssa_names): Set the default def of an SSA_NAME if necessary.
3039 Move call to init_tree_ssa...
3040 (lto_read_body): ...here. Use push_cfun and pop_cfun. Call
3041 add_referenced_var on any variables referenced from the body of the
3042 function. Inform the rest of the compiler we are in SSA form and
3043 inform later passes about the current properties.
3044
30452007-11-30 Nathan Froyd <froydnj@codesourcery.com>
3046
3047 * lto.c (lto_materialize_function): Add FIXME.
3048
30492007-11-29 Nathan Froyd <froydnj@codesourcery.com>
3050
3051 * lto-lang.c (enum built_in_attribute): New enum.
3052 (flag_no_builtin, flag_no_nonansi_builtin, flag_isoc94, flag_isoc99,
3053 built_in_attributes): New variables.
3054 (def_builtin_1): New function.
3055 (lto_define_builtins): #define DEF_BUILTIN and include builtins.def.
3056
30572007-11-28 Nathan Froyd <froydnj@codesourcery.com>
3058
3059 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Set
3060 DECL_SOURCE_LOCATION for debugging purposes.
3061 (lto_read_member_DIE): Set DECL_SOURCE_LOCATION. If we have read a
3062 bitfield, use the type specified by the DIE for TREE_TYPE and defer
3063 laying out the decl until later.
3064 (lto_read_subroutine_type_subprogram_DIE): Compare the function's
3065 name with DECL_ASSEMBLER_NAME. Set DECL_SOURCE_LOCATION and
3066 TREE_ADDRESSABLE.
3067 * lto-read.c (input_expr_operand): Set TREE_ADDRESSABLE on the
3068 operand of an ADDR_EXPR.
3069 * lto-lang.c (enum lto_builtin_type): New enum.
3070 (builtin_type): New typedef.
3071 (builtin_types, string_type_node, const_string_type_node,
3072 wint_type_node, intmax_type_node, uintmax_type_node,
3073 signed_size_type_node): New variables.
3074 (def_fn_type, builtin_type_for_size, lto_define_builtins,
3075 lto_build_c_type_nodes): New functions.
3076 (lto_init): Initialize builtin types.
3077 (lto_set_decl_assembler_name): Let the target machine mangle the
3078 name if the decl is TREE_PUBLIC, otherwise uniquify it.
3079
30802007-11-21 Nathan Froyd <froydnj@codesourcery.com>
3081
3082 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Don't
3083 set TREE_ADDRESSABLE. Do set DECL_COMDAT. Set TREE_READONLY if
3084 the type is a constant type. Set the assembler name and inform
3085 the rest of the compiler about the new decl if the decl is not
3086 public.
3087 (lto_read_subroutine_type_subprogram_DIE): Don't check for equivalency
3088 of DECL_ASSEMBLER_NAME when determining if we have a builtin. Don't
3089 try to read in function bodies for functions that already have bodies.
3090 * lto-symtab.c (lto_same_type_p): Check for unbounded array
3091 equivalency.
3092 (lto_symtab_merge_decl): Don't merge decls that aren't TREE_PUBLIC.
3093 Check for whether we matched a builtin function type before calling
3094 lto_same_type_p on the generated type. Permit cases where the
3095 declaration of an array is unbounded, but the definition is bounded.
3096 Don't combine TREE_PUBLIC flags. Copy over DECL_SIZE and
3097 DECL_SIZE_UNIT if necessary.
3098
30992007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
3100
3101 * lto-read.c (input_expr_operand): Get types right
3102 for COMPLEX_CST.
3103
31042007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
3105
3106 * lto-read.c (make_new_block, input_cfg): Properly set
3107 n_basic_blocks.
3108
31092007-11-16 Nathan Froyd <froydnj@codesourcery.com>
3110
3111 * lto.c (lto_read_array_type_DIE): Handle DIEs with DW_AT_GNU_vector
3112 set properly by building a VECTOR_TYPE instead of an ARRAY_TYPE.
3113
31142007-11-16 Nathan Froyd <froydnj@codesourcery.com>
3115
3116 * lto.c (lto_read_base_type_DIE): Use make_bitfield_integer_type to
3117 construct the integer type for bitfields.
3118
31192007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
3120
3121 * lto-read.c (data_in.current_node_has_loc): Removed.
3122 (input_line_info): Returns true if node needs line set.
3123 (set_line_info): Always sets line if called.
3124 (clear_line_info): Removed reference to current_node_needs_loc.
3125 (input_expr_operand): Keeps track locally if current node needs a loc.
3126 (input_local_var): Added code to handle DECL_INITIAL for
3127 static local vars. Only set loc if necessary.
3128
31292007-11-15 Nathan Froyd <froydnj@codesourcery.com>
3130
3131 * lto.c (lto_read_subroutine_type_subprogram_DIE): Fix thinko'd
3132 DECL_CONTEXT.
3133
31342007-11-15 Nathan Froyd <froydnj@codesourcery.com>
3135
3136 * lto.c: Include langhooks.h.
3137 (lto_find_integral_type): Rework logic to handle the case where
3138 got_byte_size is true, but the bitsize requested and that of the
3139 base_type doesn't match.
3140 (lto_read_variable_formal_parameter_constant_DIE): Only check for
3141 asm_name if we are creating a VAR_DECL.
3142 (lto_materialize_function): Set DECL_EXTERNAL if we can't find a
3143 definition.
3144 (lto_read_subroutine_type_subprogram_DIE): Check for a builtin
3145 function reference and use the builtin's decl if so. Set the
3146 DECL_CONTEXT of the RESULT_DECL for the function.
3147 * lto-lang.c (registered_builtin_fndecls): New variable.
3148 (lto_getdecls): Return it.
3149 (lto_builtin_function): Chain the new decl onto
3150 registered_builtin_fndecls.
3151
31522007-11-15 Kenneth Zadeck <zadeck@naturalbridge.com>
3153
3154 * lto-read.c (process_tree_flags, lto_static_init_local):
3155 Renamed to ADD_CLASS_EXPR_FLAG. ADD_CLASS_DECL_FLAG New Macro.
3156 (input_line_info, clear_line_info): Fixed new line number code.
3157 (input_expr_operand): Added type to SWITCH_EXPR.
3158 (lto_read_body): Properly initialized data_in.
3159 Clear line info when leaving.
3160
31612007-11-13 Diego Novillo <dnovillo@google.com>
3162
3163 * lto.c (lto_read_variable_formal_parameter_constant_DIE):
3164 Initialize ARTIFICIAL.
3165 (lto_read_subroutine_type_subprogram_DIE): Initialize
3166 SAVED_SCOPE.
3167 * lto-read.c (set_line_info): Remove ; from calls to
3168 LINEMAP_POSITION_FOR_COLUMN.
3169
31702007-11-13 Kenneth Zadeck <zadeck@naturalbridge.com>
3171
3172 * lto-read.c (input_type_ref): Renamed from get_type_ref.
3173 (input_expr_operand, input_local_var): Renamed get_type_ref to
3174 input_type_ref.
3175 (input_expr_operand): Get the types correct for
3176 vector-cst. Get SSA_NAME_DEF_STMT correct for return_exprs.
3177
31782007-11-13 Doug Kwan <dougkwan@google.com>
3179
3180 * lto-read.c (input_widest_uint_uleb128): New function.
3181 (input_tree_flags, process_tree_flags, input_line_info,
3182 input_expr_operand, input_local_var, input_phi, input_ssa_names):
3183 Change to use lto_flags_type and BITS_PER_LTO_FLAGS_TYPES instead of
3184 unsigned HOST_WIDE_INT and HOST_BITS_PER_WIDE_INT.
3185 (lto_static_init_local): Add code to assert that lto_flags_type is
3186 wide enough.
3187
31882007-11-13 Nathan Froyd <froydnj@codesourcery.com>
3189
3190 * lto.c (lto_read_array_type_DIE): Handle DW_AT_GNU_vector.
3191 (lto_read_subroutine_type_subprogram_DIE): Handle
3192 DW_AT_static_link and DW_AT_specification. Return the
3193 specification if present.
3194 (lto_read_base_type_DIE): Handle DW_ATE_complex_float.
3195
31962007-11-13 Nathan Froyd <froydnj@codesourcery.com>
3197
3198 * lto-lang.c: Include target.h.
3199 (registered_builtin_types): New variable.
3200 (lto_type_for_mode): Increase number of modes handled.
3201 (lto_builtin_function): Fix argument list and return the decl.
3202 (lto_register_builtin_type): New function.
3203 (lto_init): Initialize target builtins and language-independent
3204 nodes.
3205 (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define.
3206
32072007-11-13 Kenneth Zadeck <zadeck@naturalbridge.com>
3208
3209 * lto-read.c (input_expr_operand): Added code to properly handle
3210 index filed. Added new RANGE_EXPR case.
3211
32122007-11-11 Kenneth Zadeck <zadeck@naturalbridge.com>
3213
3214 * lto-read.c (ADD_FUNC_FLAG): Deleted macro.
3215 (data_in): Added current_node_has_loc field.
3216 (input_line_info, set_line_info, clear_line_info): Added a support
3217 for USE_MAPPED_LOCATION and not adding line numbers to nodes that
3218 did not have on on the source side.
3219 (input_expr_operand): Make sure that GIMPLE_MODIFY_STMTS get line
3220 numbers too.
3221
32222007-11-09 Doug Kwan <dougkwan@google.com>
3223
3224 * lto-read.c (input_expr_operand): Change type of operand 2 of
3225 BIT_FIELD_REF expression to be bitsizetype instead of sizetype.
3226
32272007-11-09 Nathan Froyd <froydnj@codesourcery.com>
3228
3229 * lto.c: Include lto-tree.h. Effect small spaces->tabs cleanup.
3230 (lto_read_variable_formal_parameter_constant_DIE): Transfer bits
3231 from a DW_AT_specification or DW_AT_abstract_origin attribute to
3232 the new decl we are creating. Move informing the middle end about
3233 the new decl to...
3234 (lto_main): ...here. Inform the middle end about global variables
3235 after we have read in all the input files.
3236 * lto-symtab.c (lto_symtab_merge_decl): We really do need to merge
3237 variables with internal linkage, so delete the check for internal
3238 linkage. Combine TREE_PUBLIC flags.
3239
32402007-11-08 Nathan Froyd <froydnj@codesourcery.com>
3241
3242 * lto.c (lto_read_subroutine_type_subprogram_DIE): Handle
3243 DW_AT_decl_line.
3244 * lto-symtab.c (lto_symtab_merge_decl): Handle redefinition of a
3245 builtin specially. Move check for attribute compatibility
3246 earlier.
3247
32482007-11-07 Nathan Froyd <froydnj@codesourcery.com>
3249
3250 * Make-lang.in (lto/lto.o): Depend on gt-lto-lto.h.
3251 * config-lang.in (gtfiles): Add lto.h and lto.c.
3252 * lto-elf.c: Include ggc.h.
3253 (lto_elf_file_open): Allocate elf_file from GC memory.
3254 * lto.c: Include tree-ssa-operands.h and gt-lto-lto.h
3255 (lto_info_fd_init): Allocate the die_cache and unmaterialized_fndecls
3256 in GC memory.
3257 (lto_info_fd_close): Free unmaterialized_fndecls from GC memory.
3258 (lto_file_close): Free file from GC memory.
3259 (lto_cache_store_DIE): Allocate the new entry in GC memory.
3260 (lto_read_member_DIE): Fix declaration.
3261 (lto_read_subroutine_type_subprogram_DIE): unmaterialized_fndecls lives
3262 in GC memory.
3263 (current_lto_file): New variable.
3264 (lto_main): Use it.
3265 (DWARF2_attr, DWARF2_abbrev, lto_die_ptr, DWARF2_CompUnit,
3266 lto_die_cache_entry): Move to...
3267 * lto.h: ...here and add GTY markers as appropriate. Delete forward
3268 declarations accordingly.
3269 (struct lto_file_struct): Declare.
3270 (lto_file_vtable): Use it instead of lto_file.
3271
32722007-11-06 Alon Dayan <alond@il.ibm.com>
3273 Kenneth Zadeck <zadeck@naturalbridge.com>
3274
3275 * lto-read.c (process_flags, lto_static_init_local):
3276 read flags of VAR_DECL and FUNCTION_DECL of size>1.
3277 change global array num_flags_for_code to flags_length_for_code.
3278 (set_line_info): Make decls work in USE_MAPPED_LOCATION mode.
3279
32802007-11-05 Nathan Froyd <froydnj@codesourcery.com>
3281
3282 * lto.c (lto_read_structure_union_class_type_DIE): Use proper record
3283 layout functions to compute information about the newly constructed
3284 type.
3285
32862007-11-02 Nathan Froyd <froydnj@codesourcery.com>
3287
3288 * lto-read.c (input_expr_operand): Change the LTO_return_expr1
3289 case to use DECL_RESULT if necessary.
3290
32912007-11-01 Kenneth Zadeck <zadeck@naturalbridge.com>
3292
3293 * lto-read.c (input_tree_list): Removed.
3294 (input_tree_flags): Added parameter to force flags no matter what
3295 tree code.
3296 (input_expr_operand): Added parameter to input_tree_flags.
3297 Added case for IDENTIFIER_NODE and TREE_LIST. Changed ASM to call
3298 input_expr_operand rather than input_tree_lists.
3299 (input_local_var): Use input_expr_operand to read attributes
3300 rather then input_tree_list.
3301 (input_phi, input_ssa_names): Added parameter to input_tree_flags.
3302
33032007-10-31 Nathan Froyd <froydnj@codesourcery.com>
3304
3305 * lto.c (lto_read_typedef_DIE): Fix comment typo.
3306 (lto_resolve_typedecl_ref): Fetch the referred-to type and build a fake
3307 TYPE_DECL for it.
3308 * lto-read.c (lto_read_body): Use correct sizes for calculating
3309 type_decls_offset and types_offset.
3310
33112007-10-30 Nathan Froyd <froydnj@codesourcery.com>
3312
3313 * lto-tree.h (union lang_tree_node): Change GTY description to chain
3314 with GENERIC_NEXT.
3315 * config-lang.in (gtfiles): Add lto-lang.c.
3316 * lto-lang.c: Include gt-lto-lto-lang.h.
3317 * Make-lang.in (lto/lto-lang.o): Add dependency on gt-lto-lto-lang.h
3318 (lto/lto-symtab.o): Depend on LTO_H instead of TREE_H.
3319 (lto/lto-read.o): Likewise.
3320
33212007-10-29 Kenneth Zadeck <zadeck@naturalbridge.com>
3322
3323 * lto-read.c (data_in): Added type_decls and current_col fields.
3324 (string_slot): New type to hold canonized file name.
3325 (hash_string_slot_node, eq_string_slot_node, canon_file_name,
3326 input_line_info, set_line_info, clear_line_info): New functions.
3327 (file_name_hash_table): New hash table.
3328 (input_local_var, input_labels, input_local_vars_index,
3329 input_local_var, input_local_vars, input_ssa_names): Reorganized parameters.
3330 (input_uleb128): Changed type of byte var.
3331 (input_expr_operand): Large number of changes to get line numbers
3332 correct. Added TYPE_DECL case.
3333 (input_globals): Added code to get TYPE_DECLs processed.
3334 (input_local_var): Added code to process line numbers and
3335 TREE_CHAIN and DECL_CONTEXT.
3336 (input_function, input_constructor): Added call to
3337 clear_line_number.
3338 (lto_static_init_local): Added code to get line numbers correct.
3339 (lto_read_body): Added code to get TYPE_DECLS read and to change
3340 parameters to the calls above that had their parms reorganized.
3341
3342
33432007-10-29 Nathan Froyd <froydnj@codesourcery.com>
3344
3345 * lto.h (lto_resolve_typedecl_ref): Declare.
3346 * lto.c (lto_resolve_typedecl_ref): New function.
3347
33482007-10-29 Mark Mitchell <mark@codesourcery.com>
3349 Nathan Froyd <froydnj@codesourcery.com>
3350
3351 * lto.c (lto_read_subroutine_type_subprogram_DIE): Read the child
3352 DIEs even if we find an abstract origin for this DIE.
3353
33542007-10-29 Nathan Froyd <froydnj@codesourcery.com>
3355
3356 * lto.c (lto_read_subroutine_type_subprogram_DIE): Build the
3357 RESULT_DECL slightly earlier. Only remember the decl for later
3358 if we successfully merge declarations.
3359
33602007-10-24 Kenneth Zadeck <zadeck@naturalbridge.com>
3361
3362 * lto-read.c (input_expr_operand): Give label_values the proper
3363 context and provide switch statements with a default type.
3364
33652007-10-23 Nathan Froyd <froydnj@codesourcery.com>
3366
3367 * lto-read.c (lto_read_body): Move call to init_ssa_operands...
3368 * lto.c (lto_materialize_function): ...to here.
3369
33702007-10-22 Nathan Froyd <froydnj@codesourcery.com>
3371
3372 * lto.h (struct lto_info_fd): Add field unmaterialized_fndecls.
3373 * lto.c (lto_info_fd_init): Initialize it.
3374 (lto_info_fd_close): Free it.
3375 (lto_materialize_function): New function.
3376 (lto_read_subroutine_type_subprogram_DIE): Save the result decl on
3377 unmaterialized_fndecls.
3378 (lto_file_read): Read in all the function bodies after we have read
3379 all of the DWARF info.
3380 * lto-read.c (lto_read_body): Call init_ssa_operands if we are
3381 reading a function body.
3382
33832007-10-20 Kenneth Zadeck <zadeck@naturalbridge.com>
3384
3385 * lto-read.c (input_tree_flags): Renamed from input_flags to be
3386 semetric with output_tree_flags. Added call to log flags.
3387 (process_tree_flags): Renamed from process_flags. Fixed a lot of
3388 type issues to make everything consistent with flags being
3389 unsigned HOST_WIDE_INTS.
3390 (input_expr_operand): Added call to
3391 recompute_tree_invariant_for_addr_expr.
3392 (input_local_var): Added debugging for tree_chains. Now calls
3393 input_tree_flags.
3394 (input_phi): Made flags unsigned HOST_WIDE_INT.
3395 (input_ssa_names): Now calls input_tree_flags.
3396 (lto_read_body): Now sets cfun.
3397 (lto_read_function_body): Now sets current_function_pointer.
3398
33992007-10-19 Nathan Froyd <froydnj@codesourcery.com>
3400
3401 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Check
3402 definitively whether SPECIFICATION or ABSTRACT_ORIGIN exist before
3403 inspecting fields within.
3404 (lto_read_DIE_at_ptr): Delete check for null result; let callers
3405 handle this appropriately.
3406
34072007-10-19 Nathan Froyd <froydnj@codesourcery.com>
3408
3409 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Handle
3410 DW_AT_abstract_origin properly. Ensure that we're not dealing with
3411 both DW_AT_abstract_origin and DW_AT_specification.
3412 (lto_read_subroutine_type_subprogram_DIE): Handle
3413 DW_AT_abstract_origin.
3414 (lto_read_DIE): Use lto_read_only_for_child_DIEs for labels.
3415 (lto_read_DIE_at_ptr): Define as static to match declaration.
3416 Lookup the PTR in the cache before reading it from the file.
3417 (lto_resolve_var_ref): Adjust accordingly.
3418 (lto_resolve_fn_ref): Adjust accordingly. Tweak comment.
3419 (lto_resolve_field_ref): Adjust accordingly. Tweak comment.
3420
34212007-10-19 Nathan Froyd <froydnj@codesourcery.com>
3422
3423 * lto.c (lto_read_DIE_at_ptr): New function.
3424 (lto_resolve_var_ref): Use it.
3425 (lto_resolve_fn_ref): Use it.
3426 (lto_resolve_field_ref): Use it.
3427 (lto_read_variable_formal_parameter_constant_DIE): Follow
3428 DW_AT_specification and return the associated decl when appropriate.
3429
34302007-10-18 Nathan Froyd <froydnj@codesourcery.com>
3431
3432 * lto-lang.c (lto_type_for_mode): Move after lto_type_for_size.
3433 Implement for scalar integer modes.
3434 (lto_init): Initialize size_type_node.
3435
34362007-10-18 Kenneth Zadeck <zadeck@naturalbridge.com>
3437
3438 * lto-read.c (input_expr_operand): Remove ssa name asserts.
3439 (input_local_var): Add chaining for params.
3440 (input_ssa_names): Add cfun parameter.
3441 (input_function): Remove unnecessary else.
3442
34432007-10-17 Nathan Froyd <froydnj@codesourcery.com>
3444
3445 * lto.c (lto_read_only_for_child_DIEs): Mark die parameter as unused.
3446 (lto_resolve_var_ref): Use proper types.
3447 (lto_resolve_fn_ref): Likewise.
3448 (lto_resolve_field_ref): Likewise.
3449
34502007-10-17 Nathan Froyd <froydnj@codesourcery.com>
3451
3452 * lto-read.c (input_expr_operand): Remove case.
3453
34542007-10-17 Nathan Froyd <froydnj@codesourcery.com>
3455
3456 * lto.c (lto_read_only_for_child_DIEs): New function.
3457 (lto_read_DIE): Use it for lexical_block and inlined_subroutine DIEs.
3458 * lto-elf.c (lto_elf_map_lto_section): Remove.
3459 (lto_elf_file_vtable): Use lto_elf_map_optional_lto_section instead.
3460 * lto-read.c (input_expr_operand): Assert that we never read a NULL
3461 SSA_NAME. Add missing case for mechanical codes.
3462 (input_cfg): Use basic_block_info_for_function instead of
3463 basic_block_info.
3464
34652007-10-16 Kenneth Zadeck <zadeck@naturalbridge.com>
3466
3467 * lto-read.c (input_sleb128, input_integer): Use proper casts.
3468 (input_list): Renamed input_tree_list and modified to follow same
3469 protocol as lto-function-out.c:output_tree_list.
3470 (input_expr_operand): Make asm operands use input_tree_list.
3471 (input_local_var): Now uses input_tree_list.
3472 (lto_read_body): Change placement for setting context of debug_labels.
3473
3474
34752007-10-16 Kenneth Zadeck <zadeck@naturalbridge.com>
3476
3477 * lto-read.c (input_real): Output debugging in proper order.
3478 (input_integer): Compute bit lengths properly.
3479 (input_list): Clean up declaration.
3480 (input_expr_operand): Change calls to input_real to match fix.
3481 Make reading of LTO_bit_field_ref1 match output.
3482 (input_local_var): Make reading of attributes match what is being
3483 written.
3484 (dump_debug_stream): Also print char in hex.
3485 (debug_out_fun): Fix signed unsigned mismatch.
3486
34872007-10-10 Nathan Froyd <froydnj@codesourcery.com>
3488
3489 * lto.c (lto_read_form): Handle DW_AT_MIPS_linkage_name and
3490 DW_AT_GNU_vector specially, as they are not contiguous with the
3491 specified set of attribute names. Use class_mask to check for
3492 errors at the end of the function
3493 (lto_resolve_var_ref): Read the DIE if it is not cached.
3494 (lto_resolve_fn_ref): Likewise.
3495 (lto_resolve_field_ref): Likewise.
3496
34972007-10-05 Nathan Froyd <froydnj@codesourcery.com>
3498
3499 * lto.c: Include dwarf2out.h.
3500 (lto_cache_store_DIE): Assert that we never change the value.
3501 (LTO_BEGIN_READ_ATTRS): Print an informative error message.
3502 (lto_read_compile_unit_DIE): Handle DW_AT_entry_pc.
3503 (lto_read_array_type_DIE): Don't error on ndims == 0; build a
3504 sensible type instead.
3505 (lto_read_structure_union_class_type_DIE): Store the newly
3506 created type prior to reading the members of the structure to
3507 avoid infinite recursion. Avoid computing types and alignments
3508 for structures whose sizes are unknown.
3509 (lto_read_variable_formal_parameter_const): Handle DW_AT_artificial
3510 and set DECL_ARTIFICIAL accordingly. Ignore DW_AT_abstract_origin,
3511 DW_AT_const_value, and DW_AT_specification.
3512 (lto_read_subroutine_type_subprogram_DIE): Handle DW_AT_declaration.
3513 Return early if we have already constructed the function type.
3514 (lto_read_typedef_DIE): Check to see if the type has been cached
3515 already. Cache the type before reading any children.
3516 (lto_read_const_volatile_restrict_type_DIE): Handle DW_AT_name.
3517 (lto_read_DIE): Unset context->skip_non_parameters around reading
3518 the DIE.
3519 (lto_resolve_fn_ref): Delete trailing whitespace.
3520
35212007-09-11 Kenneth Zadeck <zadeck@naturalbridge.com>
3522
3523 * lto-read.c (input_expr_operand): Added type for STRING_CST.
3524
35252007-09-10 Nathan Froyd <froydnj@codesourcery.com>
3526
3527 * lto-read.c (lto_read): Set the type of the newly created CALL_EXPR.
3528
35292007-09-07 Nathan Froyd <froydnj@codesourcery.com>
3530
3531 * lto-lang.c (signed_and_unsigned_types): New variable.
3532 (lto_type_for_size): Consult signed_and_unsigned_types to find
3533 an approprite type, creating it if necessary.
3534 (lto_set_decl_assembler_name): Add actual method body.
3535
35362007-09-06 Jim Blandy <jimb@codesourcery.com>
3537
3538 * lto.c (lto_read_variable_formal_parameter_constant_DIE): If we
3539 can't find a var init for this variable, leave its DECL_INITIAL.
3540 * lto-elf.c (lto_elf_map_optional_lto_section): Renamed from
3541 lto_elf_map_fn_body.
3542 (lto_map_lto_section): New function.
3543 (lto_elf_file_vtable): Use lto_elf_map_lto_section for function
3544 bodies, and lto_elf_map_optional_lto_section for variable
3545 initializers.
3546 (lto_elf_find_section_data): Quietly return NULL if the section is
3547 missing.
3548 (lto_elf_file_open): Check for a NULL from lto_elf_find_section_data.
3549
3550 * lto-elf.c (lto_elf_find_section_data): Remove dead code.
3551
3552 * lto-read.c (lto_read_body): Doc fix.
3553
35542007-08-29 Kenneth Zadeck <zadeck@naturalbridge.com>
3555
3556 * lto-read.c (fun_in): Renamed to data_in.
3557 (input_expr_operand, input_local_var, input_string_internal,
3558 input_string, input_real, input_list, get_label_decl,
3559 get_type_ref, input_expr_operand, input_globals, input_labels,
3560 input_local_vars_index, input_local_var, input_local_vars,
3561 input_cfg, input_phi, input_ssa_names, input_bb, ): Renamed fun_in to data_in.
3562 (input_constructor): New function.
3563 (lto_read_function_body): Renamed to lto_read_body and generalized
3564 to handle both functions and constructors.
3565 (lto_read_function_body, lto_read_var_init): New function.
3566
3567
35682007-08-28 Kenneth Zadeck <zadeck@naturalbridge.com>
3569
3570 * lto-read.c (input_expr_operand): Assert that there really is a
3571 FUNCTION_DECL.
3572 (input_globals): Removed checks on 0 section.
3573
35742007-08-28 Kenneth Zadeck <zadeck@naturalbridge.com>
3575
3576 * lto-read.c (fun_in): Added local_decls_index and
3577 local_decls_index_d.
3578 (input_expr_operand): Changed inputting of PARM_DECLs and VAR_DECLs.
3579 (input_globals): Enabled code to handle FIELD_DECLs.
3580 (input_local_vars_index, input_local_vars): New function.
3581 (input_local_var): Changed to allow locals to be input randomly.
3582 (lto_read_function_body): Added code to input the
3583 local_decls_index and to free various structures.
3584
35852007-08-17 Jim Blandy <jimb@codesourcery.com>
3586
3587 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Remove
3588 ATTRIBUTE_UNUSED from 'die' formal.
3589
3590 Use enum LTO_tags where appropriate, instead of 'unsigned int'.
3591 * lto-read.c (input_record_start): Fix return type, type of 'tag'.
3592 (input_list): Fix type of 'tag'.
3593 (input_expr_operand): Fix type of 'tag' argument. Update
3594 declaration. Fix type of 'ctag'. Add default case to switch,
3595 since the type of the switched value is now an enum.
3596 (input_local_vars): Fix type of 'tag'.
3597 (input_bb): Fix type of 'tag' argument.
3598 (input_function): Fix type of 'tag' argument.
3599
36002007-08-16 Jim Blandy <jimb@codesourcery.com>
3601
3602 * lto.c (lto_read_member_DIE): Record the tree we create in
3603 fd->die_cache. (Our 'die' argument is no longer unused.)
3604 (lto_resolve_field_ref): New function.
3605 * lto.h (lto_resolve_field_ref): New declaration.
3606
36072007-08-15 Jim Blandy <jimb@codesourcery.com>
3608
3609 * lto-read.c (lto_read_var_init): Mark arguments as unused.
3610
36112007-08-07 Jim Blandy <jimb@codesourcery.com>
3612
3613 * lto.c (lto_read_form): Complete attr_classes table.
3614 (DWARF2_form_data): Doc fix.
3615
36162007-08-05 Mark Mitchell <mark@codesourcery.com>
3617
3618 * lto.h (lto_file_vtable): Remove read_var_init. Add map_var_init
3619 and unmap_var_init.
3620 (lto_read_var_init): Declare.
3621 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Use new
3622 interface for reading variable initializers.
3623 * lto-elf.c (lto_elf_read_var_init): Remove.
3624 (lto_elf_file_vtable): Update initializer.
3625 (lto_elf_read_var_init): Add comment about unused-ness.
3626 * lto-read.c (lto_read_var_init): New.
3627
3628 * lto.c (lto_read_form): Add entry for DW_AT_inline.
3629
36302007-08-02 Kenneth Zadeck <zadeck@naturalbridge.com>
3631
3632 * lto-read.c (lto_read_function_body): Moved declaration of fn
3633 outside of ifdef.
3634
36352007-08-01 Kenneth Zadeck <zadeck@naturalbridge.com>
3636
3637 * lto-read.c (input_uleb128, input_string_internal, input_real,
3638 input_integer, input_record_start, input_list, get_type_ref,
3639 input_flags, input_expr_operand, input_expr_operand,
3640 input_expr_operand, input_local_vars, input_cfg, input_phi,
3641 input_ssa_names, input_bb, input_function): Added semicolons.
3642
3643
36442007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
3645
3646 * lto-read.c (input_globals): Remove debugging.
3647 (input_function): Set DECL_ARGUMENTS.
3648
3649
36502007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
3651
3652 * lto-read.c (input_expr_operand): Fixed code for COND_EXEC,
3653 RETURN_EXPR, MODIFY_EXPR and processing of flags.
3654 (input_phi): Made work with operands other than SSA_NAMES and
3655 fixed processing of flags.
3656 (input_ssa_names): Initialize SSA_NAME_DEF_STMT to empty stmt.
3657 (input_flags): New function.
3658 * lto-lang.c (lto_init): Changed state of in_lto_p.
3659
3660
36612007-07-24 Mark Mitchell <mark@codesourcery.com>
3662
3663 * lto-tree.h (lto_varargs_cookie): Remove.
3664 * lto.c (lto_context): Add last_parm_type, varargs_p, skip_all,
3665 skip_non_parameters, skip_parameters.
3666 (lto_varargs_cookie): Remove.
3667 (lto_read_variable_formal_parameter_constant_DIE): Keep track of
3668 parameter types.
3669 (lto_read_abbrev): New function.
3670 (lto_read_subroutine_type_subprogram_DIE): Make two passes over
3671 child DIEs.
3672 (lto_read_unspecified_parameters_DIE): Set context->varargs_p.
3673 (lto_read_DIE): Use lto_read_abbrev. Honor skip_* flags.
3674 (lto_file_read): Initialize new context fields.
3675 * lto-lang.c (lto_type_for_mode): Return NULL_TREE.
3676 (lto_unsigned_type): Remove.
3677 (lto_signed_type): Likewise.
3678 (lto_signed_or_unsigned_type): Likewise.
3679 (lto_init): Do not create lto_varargs_cookie.
3680 (LANG_HOOKS_UNSIGNED_TYPE): Do not define.
3681 (LANG_HOOKS_SIGNED_TYPE): Likewise.
3682 (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Likewise.
3683
36842007-07-19 Jan Hubicka <jh@suse.cz>
3685
3686 * lto-read.c (lto_read_function_body): Produce empty scope block
3687 to avoid crash.
3688
36892007-07-18 Mark Mitchell <mark@codesourcery.com>
3690
3691 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Do not
3692 process local variables.
3693 (lto_read_subroutine_type_subprogram_DIE): Read child DIEs.
3694
36952007-07-13 Kenneth Zadeck <zadeck@naturalbridge.com>
3696
3697 * lto-read.c (input_list, input_expr_operand): Added struct
3698 function parameter.
3699 (init_cfg, finalize_cfg): Removed function.
3700 (input_expr_operand): Added SSA_NAME and GIMPLE_MODIFY_STMT cases.
3701 (input_labels, input_local_vars): Now takes input_block parameter rather than
3702 synthsyzing it.
3703 (input_cfg, input_phi, input_ssa_names): New functions.
3704 (input_bb): Now passes in input_blocks. Does not construct cfg
3705 and processes the list of phi functions.
3706 (input_function): Now builds both the cfg and ssa_names table.
3707 (lto_read_function_body): Processes new header fields to construct
3708 streams for the ssa_names and cfg and their debugging.
3709 * lto/lto-lang.c (lto_init): Set in_lto_p.
3710
3711
37122007-06-28 Mark Mitchell <mark@codesourcery.com>
3713
3714 * lto.h (lto_file_vtable): Add read_var_init.
3715 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Read
3716 initializers.
3717 (lto_main): Remove bogus asserts.
3718 * lto-elf.c (tm.h): Include it.
3719 (libiberty.y): Likewise.
3720 (lto_elf_file): Add strtab and symtab. Rename
3721 string_table_section_index to sec_strtab.
3722 (lto_elf_file_vtable): Add lto_elf_read_var_init.
3723 (lto_elf_get_shdr): New function.
3724 (lto_elf_free_shdr): Likewise.
3725 (lto_elf_find_section_data): Use them.
3726 (lto_elf_read_symtab): New function.
3727 (lto_elf_lookup_sym): Likewise.
3728 (lto_elf_free_sym): Likewise.
3729 (lto_elf_file_open): Tidy. Call lto_elf_read_symtab.
3730 (lto_elf_built_init): New function.
3731 (lto_elf_read_var_init): Likewise.
3732 * Make-lang.in (lto/lto-elf.o): Depend on $(TM_H).
3733
37342007-06-26 Kenneth Zadeck <zadeck@naturalbridge.com>
3735
3736 * lto-read (make_new_block): Initialize the stmt_list.
3737 (lto_static_init_local): Add debugging for missing codes.
3738
37392007-06-26 Mark Mitchell <mark@codesourcery.com>
3740
3741 * lto.c (lto_read_subroutine_type_subprogram_DIE): Handle
3742 unprototyped functions.
3743
37442007-06-23 Mark Mitchell <mark@codesourcery.com>
3745
3746 * lto.c (lto_read_variable_formal_parameter_constant_DIE):
3747 Handle DW_AT_MIPS_linkage_name.
3748 (lto_read_subroutine_type_subprogram): Likewise. Correct
3749 compilation errors.
3750 (lto_main): Remove incorrect assertions.
3751 * lto-symbtab.c: Build function types out of TREE_LISTs.
3752
3753 * lto-elf.c (<libelf>): Check for HAVE_LIBELF_H.
3754
3755 * Make-lang.in (LTO_OBJS): Depend on attribs.o.
3756
37572007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com>
3758
3759 * lto/lto-tree.h (lang_decl, lang_type, language_function): Added
3760 dummy since ggc does not like empty structs.
3761 * lto/lto-elf.c (libelf.h): Changed to libelf/libelf.h.
3762 * lto/lto-read.c (ADD_CLASS_FLAG, ADD_EXPR_FLAG): Changed
3763 expr->common to expr->base.
3764 (make_new_block): Moved stmt_list to proper place.
3765
3766
37672007-03-14 Robert Kennedy <jimbob@google.com>
3768
3769 Eliminate use of lang_hooks.set_decl_assembler_name from LTO
3770 * lto.c (lto_read_subroutine_type_subprogram_DIE) Get DECL
3771 assembler name from DWARF.
3772 * lto-lang.c (lto_set_decl_assembler_name) New function.
3773
37742006-09-10 Mark Mitchell <mark@codesourcery.com>
3775
3776 * lto.h (lto_file_vtable): New structure.
3777 (lto_file): Add vtable pointer.
3778 (lto_file_init): Add vtable paramter.
3779 (lto_read_function_body): New function.
3780 (lto_symtab_merge_fn): New function.
3781 * lto.c (lto_file_init): Add vtable parameter.
3782 (lto_read_form): Fill in entries for DW_AT_prototyped,
3783 DW_AT_frame_base.
3784 (lto_read_subroutine_type_subprogram_DIE): New function.
3785 (lto_read_DIE): Fill in entries for DW_TAG_subroutine_type and
3786 DW_TAG_subprogram.
3787 * lto-elf.c (lto_elf_vile_vtable): New variable.
3788 (lto_elf_file_open): Pass it to lto_file_init.
3789 (lto_elf_map_fn_body): New function.
3790 (lto_elf_unmap_fn_body): Likewise.
3791 * lto-read.c: New file.
3792 * lto-symtab.c (lto_symtab_merge_fn): New function.
3793 * lto-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define to
3794 tree_rest_of_compilation.
3795 * Make-lang.in (LTO_OBJS): Add lto-read.o
3796 (lto-read.o): New target.
3797
37982006-09-03 Mark Mitchell <mark@codesourcery.com>
3799
3800 * lto.c (<inttypes.h>): Don't include it.
3801 (lto_context): Don't typedef it.
3802 (lto_resolve_reference): New function.
3803 (lto_read_form): Use it.
3804 (lto_resolve_type_ref): New function.
3805 (lto_resolve_var_ref): Likewise.
3806 (lto_resolve_fn_ref): Likewise.
3807 * lto.h (<inttypes.h>): Include it.
3808 (lto_context): New type.
3809 (lto_ref): New structure.
3810 (lto_resolve_type_ref): Declare.
3811 (lto_resolve_var_ref): Likewise.
3812 (lto_resolve_fn_ref): Likewise.
3813
38142006-08-18 Mark Mitchell <mark@codesourcery.com>
3815
3816 * lang-specs.h: New file.
3817
38182006-08-14 Mark Mitchell <mark@codesourcery.com>
3819
3820 * lto.c (lto_info_fd_init): Allocate the DIE cache.
3821 (lto_info_fd_close): Deallocate it.
3822 (lto_die_cache_entry): New structure.
3823 (lto_cache_hash): New function.
3824 (lto_cache_eq): Likewise.
3825 (lto_cache_store_DIE): Likewise.
3826 (lto_cache_lookup_DIE): Likewise.
3827 (lto_read_referenced_type_DIE): Use the cache.
3828 (lto_read_pointer_type_DIE): Robustify.
3829 (lto_read_DIE): Use the cache.
3830 * lto.h (hashtab.h): Include.
3831 (lto_info_fd): Add DIE cache.
3832 * Make-lang.in (LTO_H): New variable.
3833 (lto/lto-lang.o): Use LTO_H.
3834 (lto/lto-elf.o): Likewise.
3835 (lto/lto-symtab.o): Likewise.
3836
38372006-07-09 Mark Mitchell <mark@codesourcery.com>
3838
3839 * lto.c (lto_abi_mismatch_error): New function.
3840 (lto_abbrev_read): Initialize num_abbrevs.
3841 (lto_read_form): Specify allowed form classes for
3842 DW_AT_declaration. Adjust for change to lto_set_cu_context.
3843 (lto_read_variable_formal_parameter_constant_DIE): Handle
3844 DW_AT_declaration. Call lto_symtab_merge_var.
3845 (lto_read_pointer_type_DIE): New function.
3846 (lto_read_base_type_DIE): Use build_nonstandard_integer_type. Do
3847 not creat TYPE_DECLs for types that already have them.
3848 (lto_read_DIE): Add lto_read_pointer_type_DIE.
3849 (lto_set_cu_context): Make cu_start point to the header, not the
3850 first DIE.
3851 (lto_file_read): Adjust for change to lto_set_cu_context.
3852 * Make-lang.in (LTO_OBJS): Add lto-symtab.o.
3853 (lto/lto-symtab.o): New rule.
3854 * lto-tree.h (lang_identifier): Add decl field.
3855 (LANG_IDENTIFIER_CAST): New macro.
3856 (LTO_IDENTIFIER_DECL): Likewise.
3857 (lto_symtab_merge_var): Declare.
3858 * lto-symtab.c: New file.
3859
38602006-07-02 Daniel Berlin <dberlin@dberlin.org>
3861
3862 * lto.c (lto_context): Add current_cu and info_fd members.
3863 (DWARF2_CompUnit): New structure.
3864 (lto_read_DIE): Take lto_info_fd *.
3865 (lto_read_child_DIEs): Ditto.
3866 (lto_file_corrupt_error): Constify argument.
3867 (lto_set_cu_context): New function
3868 (lto_info_fd_init): Ditto.
3869 (lto_info_fd_close): Ditto.
3870 (lto_file_init): Use lto_info_fd_init.
3871 (lto_file_close): Use lto_info_fd_close.
3872 (lto_read_initial_length): Pass in pointer to header size.
3873 (lto_read_comp_unit_header): Correct cu_length to
3874 real length from beginning of header. Take lto_info_fd * as
3875 argument.
3876 (find_cu_for_offset): New function.
3877 (lto_read_form): Change first argument to lto_info_fd *.
3878 Add FORM_CONTEXT argument.
3879 Handle DW_FORM_ref_addr.
3880 (lto_read_tag_DIE): Change first argument to lto_info_fd *.
3881 (LTO_BEGIN_READ_ATTRS_UNCHECKED): Save old context.
3882 Swap contexts if necessary for form.
3883 (LTO_BEGIN_READ_ATTRS): Cast fd to right type for
3884 lto_file_corrupt_error.
3885 (LTO_END_READ_ATTRS): Swap contexts back if it had changed.
3886 (lto_read_referenced_type_DIE): Change first argument to
3887 lto_info_fd *. Access lto_fd fields through base pointer.
3888 (lto_read_compile_unit_DIE): Change first argument to an
3889 lto_info_fd *.
3890 (lto_read_variable_formal_parameter_constant_DIE): Ditto.
3891 (lto_read_base_type_DIE): Ditto.
3892 (lto_read_child_DIEs): Ditto.
3893 (lto_read_DIE): Ditto. Change type of function pointer.
3894 (lto_info_read): New function.
3895 (lto_set_cu_context): Ditto.
3896 (lto_file_read): Use lto_info_read, walk resulting CU's
3897 (lto_main): Update for lto_info_fd change.
3898 * lto-elf.c (lto_elf_file_open): Cast lto_info_fd to lto_fd where
3899 necessary.
3900 * lto.h (DWARF2_CompUnit): New structure.
3901 (lto_info_fd): Ditto.
3902 (lto_file): Change debug_info to be an lto_info_fd.
3903
39042006-06-25 Mark Mitchell <mark@codesourcery.com>
3905
3906 * lto.c (toplev.h): Include it.
3907 (dwarf2.h): Likewise.
3908 (tree.h): Likewise.
3909 (tm.h): Likewise.
3910 (cgraph.h): Likewise.
3911 (ggc.h): Likewise.
3912 (inttypes.h): Likewise.
3913 (DWARF2_attr): New type.
3914 (DWARF2_abbrev): Likewise.
3915 (DWARF2_class): Likewise.
3916 (DWARF2_form_data): Likewise.
3917 (lto_context): Likewise.
3918 (lto_fd_init): New function.
3919 (lto_abbrev_fd_init): Likewise.
3920 (lto_abbrev_fd_close): Likewise.
3921 (lto_file_init): Use them.
3922 (lto_file_close): New function.
3923 (lto_file_corrupt_error): Likewise.
3924 (LTO_CHECK_INT_VAL): New macro.
3925 (lto_check_size_t_val): New function.
3926 (lto_check_int_val): Likewise.
3927 (LTO_READ_TYPE): New macro.
3928 (lto_read_ubyte): New function.
3929 (lto_read_uhalf): Likewise.
3930 (lto_read_uword): Likewise.
3931 (lto_read_uleb128): Likewise.
3932 (lto_read_initial_length): Likewise.
3933 (lto_abbrev_read_attrs): Likewise.
3934 (lto_abbrev_read): Likewise.
3935 (lto_abbrev_lookup): Likewise.
3936 (lto_read_section_offset): Likewise.
3937 (lto_read_comp_unit_header): Likewise.
3938 (lto_read_form): Likewise.
3939 (LTO_BEGIN_READ_ATTRS_UNCHECKED): New macro.
3940 (LTO_BEGIN_READ_ATTRS): Likewise.
3941 (LTO_END_READ_ATTRS): Likewise.
3942 (lto_unsupported_attr_error): New function.
3943 (lto_get_identifier): Likewise.
3944 (lto_read_referenced_type_DIE): Likewise.
3945 (lto_read_compile_unit_DIE): Likewise.
3946 (lto_read_variable_formal_parameter_constant_DIE): Likewise.
3947 (lto_read_base_type_DIE): Likewise.
3948 (lto_read_DIE): Likewise.
3949 (lto_read_child_DIEs): Likewise.
3950 (lto_file_read): Read DIEs.
3951 (lto_main): Ask middle end to emit entities.
3952 * lto-tree.h (lang_identifier): Inherit from tree_identifier.
3953 * lto-elf.c (lto_elf_file_open): Adjust for interface changes.
3954 (lto_elf_file_close): Likewise.
3955 * lto.h (lto_file): Declare.
3956 (DWARF2_abbrev): Likewise.
3957 (lto_fd): New type.
3958 (lto_abbrev_fd): Likewise.
3959 (lto_file): Use new types.
3960 (lto_file_close): Declare.
3961 * lto-lang.c (lto_init): Always use unit-at-a-time mode.
3962
39632006-06-18 Mark Mitchell <mark@codesourcery.com>
3964
3965 * lto.h: New file.
3966 * lto.c: New file.
3967 * lto-elf.c: New file.
3968 * lto-lang.c (flags.h): Include it.
3969 (lto.h): Likewise.
3970 (lto_init): New function.
3971 (lto_write_globals): Remove.
3972 (LANG_HOOKS_WRITE_GLOBALS): Define to lhd_do_nothing.
3973 (LANG_HOOKS_INIT): Define.
3974 (LANG_HOOKS_PARSE_FILE): Likewise.
3975 * Make-lang.in (LTO_OBJS): Add lto.o and lto-elf.o.
3976 (LTO_EXE): Link with libelf.
3977 (lto/lto-lang.o): Update dependencies.
3978 (lto/lto.o): New target.
3979 (lto/lto-elf.o): Likewise.
3980
39812006-06-12 Mark Mitchell <mark@codesourcery.com>
3982
3983 * config-lang.in: New file.
3984 * Make-lang.in: Likewise.
3985 * lto-tree.h: Likewise.
3986 * lto-lang.c: Likewise.
3987