]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/lto/ChangeLog
Make a few helper functions static.
[thirdparty/gcc.git] / gcc / lto / ChangeLog
CommitLineData
ea0e88d1 12011-11-21 Aldy Hernandez <aldyh@redhat.com>
2
3 * lto-lang.c (lto_attribute_table): Handle transaction_pure.
4 (handle_transaction_pure_attribute): New.
5
954825c9 62011-11-03 Richard Guenther <rguenther@suse.de>
7
8 PR lto/44965
9 * lto-lang.c (lto_post_options): Do not read file options.
10 * lto.c (lto_read_all_file_options): Remove.
11 (lto_init): Call lto_set_in_hooks here.
12
bc2cc717 132011-10-09 Jan Hubicka <jh@suse.cz>
14
15 * lto.c (node_cmp, varpool_node_cmp): New functions.
16 (lto_balanced_map): Honnor -fno-toplevel-reorder of vars&functions.
17 (cmp_partitions): Rename to ...
18 (cmp_partitions_size): ... this one.
19 (cmp_partitions_order): New function.
20 (lto_wpa_write_files): Sort partitions by order when
21 -fno-toplevel-reorder is used.
22
a5f12044 232011-10-09 Andi Kleen <ak@linux.intel.com>
24
25 * lto.c (lto_section_read): Call fatal_error on IO or mmap errors.
26
b9a16870 272011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
28
29 * lto-lang.c (def_builtin_1): Delete old interface with two
30 parallel arrays to hold standard builtin declarations, and replace
31 it with a function based interface that can support creating
32 builtins on the fly in the future. Change all uses, and poison
33 the old names. Make sure 0 is not a legitimate builtin index.
34
805389b2 352011-10-02 Andi Kleen <ak@linux.intel.com>
36
37 * lto-object.c (lto_obj_add_section_data): Add list.
38 (lto_obj_add_section): Fill in list.
39 (ltoobj_build_section_table): Pass through list.
40 * lto.c (file_data_list): Declare.
41 (create_subid_section_table): Pass arguments directly.
42 Fill in list of file_datas.
43 (lwstate): Delete.
44 (lto_create_files_from_ids): Pass in direct arguments.
45 Don't maintain list.
46 (lto_file_read): Use explicit section and file data lists.
47 (lto_read_all_file_options): Pass in section_list.
48 * lto.h (lto_obj_build_section_table): Add list.
49 (lto_section_slot): Add next.
50 (lto_section_list): Declare.
51
da722561 522011-10-02 Jan Hubicka <jh@suse.cz>
53
54 PR lto/47247
55 * common.c (lto_resolution_str): Add new resolution.
56 * common.h (lto_resolution_str): Likewise.
57
15c58191 582011-09-30 H.J. Lu <hongjiu.lu@intel.com>
59 Andi Kleen <ak@linux.intel.com>
60
61 PR lto/50568
62 * lto.c (lto_splay_tree_delete_id): New.
63 (lto_splay_tree_compare_ids): Likewise.
64 (lto_splay_tree_lookup): Likewise.
65 (lto_splay_tree_id_equal_p): Likewise.
66 (lto_splay_tree_insert): Likewise.
67 (lto_splay_tree_new): Likewise.
68 (lto_resolution_read): Change id to unsigned HOST_WIDE_INT.
69 Use lto_splay_tree_id_equal_p and lto_splay_tree_lookup.
70 (create_subid_section_table): Use lto_splay_tree_lookup and
71 lto_splay_tree_insert.
72 (lto_file_read): Use lto_splay_tree_new.
73
badc6cfa 742011-09-26 Andi Kleen <ak@linux.intel.com>
75
76 * lto.c (lto_resolution_read): Remove id dumping.
77 (lto_section_with_id): Turn id HOST_WIDE_ID.
78 (create_subid_section_table): Dito.
79
1dc92c59 802011-08-28 Dodji Seketeli <dodji@redhat.com>
81
82 * lto-lang.c (lto_init): Likewise. Also, avoid calling
83 linemap_add twice.
84
b6c200c3 852011-08-11 Martin Jambor <mjambor@suse.cz>
86
87 * lto.c (uniquify_nodes): Use main variant's BINFO too.
88
2541503d 892011-08-08 Diego Novillo <dnovillo@google.com>
90
91 * Make-lang.in (lto/lto.o): Add TREE_STREAMER_H.
92 * lto.c: Include tree-streamer.h.
93
c38a75b7 942011-07-06 Richard Guenther <rguenther@suse.de>
95
96 * lto-lang.c (lto_init):
97 Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
98
e71f2f1c 992011-06-11 Jan Hubicka <jh@suse.cz>
100
ac11d294 101 PR lto/48246
e71f2f1c 102 * lto.c (lto_1_to_1_map): Don't create empty partitions.
103 (lto_balanced_map): Likewise.
104
c70f46b0 1052011-06-11 Jan Hubicka <jh@suse.cz>
106
107 * lto.c (add_cgraph_node_to_partition_1): Break out from ...
108 (add_cgraph_node_to_partition) ... here; walk aliases.
109 (lto_1_to_1_map): Remove same body alias code.
110 (promote_fn): Likewise.
111 (lto_promote_cross_file_statics): Update comment.
112
113
bbcef2a7 1142011-06-07 Diego Novillo <dnovillo@google.com>
115
116 * lto.c (uniquify_nodes): Move code to register decls to
117 the loop that computes canonical types.
118
1af0124d 1192011-06-07 Richard Guenther <rguenther@suse.de>
120
121 * lto-lang.c (lto_init): Do not set
122 size_type_node or call set_sizetype.
123
a0605d65 1242011-06-04 Diego Novillo <dnovillo@google.com>
125
126 * lto.c (lto_init): New.
127 (lto_main): Call it.
128
f05c9dfb 1292011-06-03 Diego Novillo <dnovillo@google.com>
130
131 * lto.c (get_resolution): Move from lto-streamer-in.c.
132 (lto_register_var_decl_in_symtab): Likewise.
133 (lto_register_function_decl_in_symtab): Likewise.
134 (uniquify_nodes): Call lto_register_var_decl and
135 lto_register_function_decl_in_symtab after reading a new
136 VAR_DECL or FUNCTION_DECL.
137
ed61b909 1382011-06-01 Richard Guenther <rguenther@suse.de>
139
140 * lto-lang.c (lto_register_canonical_types): New function.
141 (lto_init): Register common nodes with the canonical type machinery.
142 Do not play tricks with char_type_node.
143
8f2b914f 1442011-05-26 Richard Guenther <rguenther@suse.de>
145
146 * lto.c (uniquify_nodes): Fix bug in one of the previous changes.
147
1e184c62 1482011-05-25 Nathan Froyd <froydnj@codesourcery.com>
149
150 * lto.c (lto_ft_typed): New function.
151 (lto_ft_common): Call it.
152 (lto_ft_constructor): Likewise.
153 (lto_ft_expr): Likewise.
154 (lto_fixup_prevailing_decls): Check for TS_COMMON before accessing
155 TREE_CHAIN.
156
4d83607a 1572011-05-20 Richard Guenther <rguenther@suse.de>
158
159 * lto.c (lto_ft_common): Remove pointer-to chain teardown.
160 (lto_ft_type): Move main-variant and pointer-to chain building ...
161 (uniquify_nodes): ... here. Compute TYPE_CANONICAL also here,
162 in a separate final loop.
163
bddb3763 1642011-05-19 Richard Guenther <rguenther@suse.de>
165
166 * lto.c (uniquify_nodes): First register all types before
167 fixing up the tree SCC.
168
c6641d23 1692011-05-11 Jan Hubicka <jh@suse.cz>
170
171 PR lto/48952
172 * lto.c (do_whole_program_analysis): Do not register cgraph hooks.
173
8f2eb9e1 1742011-05-11 Nathan Froyd <froydnj@codesourcery.com>
175
176 * lto.c (lto_ft_type): Use TYPE_MINVAL and TYPE_MAXVAL. Adjust
177 location of binfo field.
178 (lto_fixup_prevailing_decls): Likewise.
179
3a939d12 1802011-05-10 Nathan Froyd <froydnj@codesourcery.com>
181
182 * lto-lang.c (def_fn_type): Don't call build_function_type, call
183 build_function_type_array or build_varargs_function_type_array
184 instead.
185
1d2bb655 1862011-05-07 Eric Botcazou <ebotcazou@adacore.com>
187
188 * lto-lang.c (global_bindings_p): Return bool.
189
91bf9d9a 1902011-05-07 Jan Hubicka <jh@suse.cz>
191
56bef313 192 * lto.c (lto_materialize_function): Use
193 cgraph_function_with_gimple_body_p.
194 (add_cgraph_node_to_partition): Do not re-add items to partition;
195 handle thunks.
91bf9d9a 196 (add_varpool_node_to_partition): Do not re-add items to partition.
197
423ba805 1982011-05-03 Jan Hubicka <jh@suse.cz>
199
200 * lto.c (free_ltrans_partitions): Fix accidental commit.
201
19ad01f7 2022011-05-03 Jan Hubicka <jh@suse.cz>
203
204 * lto.c (ltrans_partition_def): Remove GTY annotations.
205 (ltrans_partitions): Move to heap.
206 (new_partition): Update.
207 (free_ltrans_partitions): New function.
208 (lto_wpa_write_files): Use it.
209
7771d558 2102011-04-29 Martin Jambor <mjambor@suse.cz>
211
212 * lto.c: Include ipa-utils.h.
213 (lto_balanced_map): Update call to ipa_reverse_postorder.
214 * Make-lang.in (lto/lto.o): Add IPA_UTILS_H to dependencies.
215
d534cab0 2162011-04-29 Michael Matz <matz@suse.de>
217
218 * lto.c (toplevel): Include tree-flow.h.
219 (lto_read_in_decl_state): Don't merge types here.
220 (tree_with_vars): New static hash table.
221 (remember_with_vars): New static functions.
222 (LTO_FIXUP_TYPE): New macro.
223 (lto_ft_common, lto_ft_decl_minimal, lto_ft_decl_common,
224 lto_ft_decl_with_vis, lto_ft_decl_non_common, lto_ft_function,
225 lto_ft_field_decl, lto_ft_type, lto_ft_binfo, lto_ft_constructor,
226 lto_ft_expr, lto_fixup_types, uniquify_nodes): New static functions.
227 (lto_read_decls): Uniquify while reading in trees.
228 (lto_fixup_data_t, LTO_FIXUP_SUBTREE,
229 LTO_REGISTER_TYPE_AND_FIXUP_SUBTREE, no_fixup_p, lto_fixup_common,
230 lto_fixup_decl_minimal, lto_fixup_decl_common, lto_fixup_decl_with_vis,
231 lto_fixup_decl_non_common, lto_fixup_function, lto_fixup_field_decl,
232 lto_fixup_type, lto_fixup_binfo, lto_fixup_constructor,
233 lto_fixup_tree): Remove.
234 (lto_fixup_state): Remove data argument. Use
235 lto_symtab_prevailing_decl.
236 (LTO_SET_PREVAIL, LTO_NO_PREVAIL): New macros.
237 (lto_fixup_prevailing_decls): New function.
238 (lto_fixup_state_aux): Argument aux is unused.
239 (lto_fixup_decls): Don't allocate pointer sets, don't use
240 lto_fixup_tree, use lto_fixup_prevailing_decls.
241 (read_cgraph_and_symbols): Allocate and remove tree_with_vars.
242 * Make-lang.in (lto/lto.o): Depend on $(TREE_FLOW_H).
243
b630a10e 2442011-04-16 Eric Botcazou <ebotcazou@adacore.com>
245
246 * lto.c (lto_balanced_map): Fix typos in head comment.
247 (lto_promote_cross_file_statics): Fix long lines and remove redundant
248 test.
249
cbd7f5a0 2502011-04-16 Jan Hubicka <jh@suse.cz>
251
252 * lto.c (lto_balanced_map): Update.
253
c7b2cc59 2542011-04-14 Jan Hubicka <jh@suse.cz>
255
256 * lto.c: Include ipa-inline.h
b630a10e 257 (add_cgraph_node_to_partition, undo_partition): Use inline_summary
258 accessor.
c7b2cc59 259 (ipa_node_duplication_hook): Fix declaration.
260 * Make-lang.in (lto.o): Update dependencies.
261
9b88d08d 2622011-04-12 Nathan Froyd <froydnj@codesourcery.com>
263
264 * lto-tree.h (union lang_tree_node): Check for TS_COMMON before
265 calling TREE_CHAIN.
266 * lto.c (lto_fixup_common): Likewise.
267
c33080b9 2682011-04-08 Nathan Froyd <froydnj@codesourcery.com>
269
270 * lto-lang.c (handle_sentinel_attribute): Don't use TYPE_ARG_TYPES.
271 (handle_type_generic_attribute): Likewise.
272
5cd33168 2732011-04-03 Michael Matz <matz@suse.de>
274
275 * lto.c (lto_materialize_function): Don't read and then discard
276 sections in WPA mode.
277 (lto_read_in_decl_state): Adjust call to lto_streamer_cache_get.
278
279 * lto-lang.c (registered_builtin_fndecls): Remove.
280 (lto_getdecls): Return NULL_TREE.
281 (lto_builtin_function): Don't remember in registered_builtin_fndecls.
282
d45127a1 2832011-03-31 Richard Guenther <rguenther@suse.de>
284
285 PR lto/48246
286 * lto.c (lto_wpa_write_files): Disable assert for non-empty
287 partitions when checking is not enabled.
288
82715bcd 2892011-03-25 Kai Tietz <ktietz@redhat.com>
290
291 * lto.c (lto_resolution_read): Use filename_cmp instead
292 of strcmp.
293 (lto_read_section_data): Likewise.
294
451c8e2f 2952011-03-25 Jeff Law <law@redhat.com>
296
297 * lto/lto-lang.c (def_fn_type): Add missing va_end.
298
ac86af5d 2992011-03-21 Kai Tietz <ktietz@redhat.com>
300
301 PR target/12171
302 * lto-lang.c (lto_attribute_table): Adjust table.
303
5a8834a5 3042011-02-18 Jakub Jelinek <jakub@redhat.com>
305
306 PR bootstrap/47807
307 * Make-lang.in (lto/lto-lang.o): Depend on $(LTO_STREAMER_H) instead
308 of lto-streamer.h.
309
30865946 3102011-02-18 Richard Guenther <rguenther@suse.de>
311
312 PR lto/47798
313 * lto-tree.h (lto_global_var_decls): Do not declare here.
314 * lto-lang.c: Include lto-streamer.h.
315 * Make-lang.in (lto-lang.o): Adjust dependencies.
316
fad71d4f 3172011-02-10 Kai Tietz <kai.tietz@onevision.com>
318
319 PR lto/47241
320 * lto.c (lto_read_section_data): Free
321 fd_name in failure case.
322 For mingw targets don't hash file-descriptor.
323 (read_cgraph_and_symbols): Close current_lto_file
324 in failure case.
325
232c9ac7 3262011-01-11 Jan Hubicka <jh@suse.cz>
327
328 PR lto/45721
329 PR lto/45375
b630a10e 330 * lto.c (partition_cgraph_node_p, partition_varpool_node_p): Weakrefs
331 are not partitioned.
232c9ac7 332
a36cf284 3332010-12-22 Nathan Froyd <froydnj@codesourcery.com>
334
335 * lto-lang.c (handle_nonnull_attribute, handle_sentinel_attribute):
336 Use prototype_p.
337
6abc14d6 3382010-12-06 Richard Guenther <rguenther@suse.de>
339
340 PR lto/46796
341 * lto-lang.c (lto_init): Give names to basic types.
342
b96c136c 3432010-11-30 Joseph Myers <joseph@codesourcery.com>
344
345 * lto-object.c: Don't include toplev.h.
346 * Make-lang.in (lto/lto-object.o): Don't depend on toplev.h.
347
92468061 3482010-11-30 Joseph Myers <joseph@codesourcery.com>
349
350 * Make-lang.in (lto/lto-object.o): Depend on toplev.h instead of
351 $(TOPLEV_H).
352
967958e4 3532010-11-29 Joseph Myers <joseph@codesourcery.com>
354
355 * lto-endian.h: Delete.
356 * lto-object.c: Don't include "libiberty.h".
357 (O_BINARY): Don't define.
358 * lto.c: Don't include "libiberty.h" or <sys/mman.h>.
359 (O_BINARY): Don't define.
360
baa6eec4 3612010-11-23 Richard Guenther <rguenther@suse.de>
362
363 * lto.c (read_cgraph_and_symbols): Remove newline from diagnostic.
364
4f3aea0d 3652010-11-23 Richard Guenther <rguenther@suse.de>
366
367 PR lto/46605
368 * lto.c (read_cgraph_and_symbols): Bail out after errors.
369
b8ba44e7 3702010-11-17 Joseph Myers <joseph@codesourcery.com>
371
372 * lto.c (lto_main): Take no arguments.
373 * lto.h (lto_main): Update prototype.
374
2e521e13 3752010-11-16 Ian Lance Taylor <iant@google.com>
376
377 * lto-object.c (lto_obj_file_open): Call
378 simple_object_attributes_merge rather than
379 simple_object_attributes_compare.
380
3c6c0e40 3812010-11-12 Joseph Myers <joseph@codesourcery.com>
382
383 * Make-lang.in (lto/lto.o): Use $(OPTS_H).
384 * lto-lang.c (lto_handle_option): Take location_t parameter.
385
bf776685 3862010-11-10 Joseph Myers <joseph@codesourcery.com>
387
388 * lto.c (lto_resolution_read): Start diagnostics with lowercase
389 letters and remove trailing '.'.
390 (lto_file_finalize): Start diagnostic with a lowercase letter.
391
e09108e1 3922010-11-02 Ian Lance Taylor <iant@google.com>
393
394 * lto-object.c: New file.
395 * lto-elf.c: Remove file.
396 * lto-macho.c: Remove file.
397 * lto-macho.h: Remove file.
398 * lto-coff.c: Remove file.
399 * lto-coff.h: Remove file.
400 * Make-lang.in (LTO_OBJS): Change lto/$(LTO_BINARY_READER).o to
401 lto/lto-object.o.
402 ($(LTO_EXE)): Remove $(LTO_USE_LIBELF)
403 (lto/lto-objfile.o): New target.
404 (lto/lto-elf.o, lto/lto-coff.o, lto/lto-macho.o): Remove targets.
405 (lto/lto.o): Remove $(LIBIBERTY_H).
406
4037a4c1 4072010-10-22 Jan Hubicka <jh@suse.cz>
408
409 * lto.c (add_cgraph_node_to_partition,
410 add_varpool_node_to_partition): Add debug info.
411 (lto_1_to_1_map, lto_balanced_map): Do not re-add already
412 partitioned nodes.
413 (do_whole_program_analysis): Set function flags before dumping.
414
7a3ccc3b 4152010-10-22 Richard Guenther <rguenther@suse.de>
416
417 * lto.c (lto_fixup_type): Fixup TYPE_CANONICAL again, via
418 the new gimple_register_canonical_type.
419
55e9d7d7 4202010-10-20 H.J. Lu <hongjiu.lu@intel.com>
421
422 PR bootstrap/45954
423 * config-lang.in (boot_language): Set to $enable_lto.
424
d63880ad 4252010-10-18 Jakub Jelinek <jakub@redhat.com>
426
427 PR lto/45638
428 * Make-lang.in (check-lto): New dummy target.
429
8e8e1ee7 4302010-10-14 Eric Botcazou <ebotcazou@adacore.com>
431
432 * lto-elf.c (SHN_XINDEX): Define if not already defined.
433
f3f006ad 4342010-10-08 Joseph Myers <joseph@codesourcery.com>
435
436 * lto-lang.c (lto_init_options): Change to
437 lto_init_options_struct. Update parameters.
438 (LANG_HOOKS_INIT_OPTIONS): Don't define.
439 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
440
1e52cb3c 4412010-10-06 Jan Hubicka <jh@suse.cz>
442
443 * lto.c (lto_balanced_map): Fix accounting of program size.
444
11da9120 4452010-10-06 Jan Hubicka <jh@suse.cz>
446
447 * lto.c (lto_balanced_map): Do not produce empty partitions.
448
a3de1f55 4492010-10-06 Andi Kleen <ak@linux.intel.com>
450
451 * lto.c (lto_process_name): Add.
452 (lto_main): Call lto_process_name.
453
7ad28d2a 4542010-10-06 Jan Hubicka <jh@suse.cz>
455
456 * lto.c (partition_cgraph_node_p, partition_varpool_node_p): Handle
457 COMDATs required by the linker.
458
eaa13879 4592010-10-05 Ian Lance Taylor <iant@google.com>
460
461 * lto.c (lto_section_with_id): Make s a const pointer.
462
48e3ea52 4632010-10-05 Jan Hubicka <jh@suse.cz>
464
465 * lto.c: Include params.h.
466 (add_cgraph_node_to_partition, add_varpool_node_to_partition): Do
467 refcounting in aux field.
468 (undo_partition, partition_cgraph_node_p, partition_varpool_node_p):
469 New functions.
470 (lto_1_to_1_map): Simplify.
471 (lto_balanced_map): New function.
472 (do_whole_program_analysis): Chose proper partitioning alg.
473 * Make-lang.in (lto.o): Add dependency on params.h
474
70293f47 4752010-10-04 Andi Kleen <ak@linux.intel.com>
476
477 * Make-lang.in (lto1): Add + to build rule.
478
fd30d60a 4792010-10-03 Andi Kleen <ak@linux.intel.com>
480
481 * lto.c (lto_file_finalize): Replace gcc_assert for missing section
482 with fatal_error.
483
4a68fd3c 4842010-09-28 Jan Hubicka <jh@suse.cz>
485
486 * lto-lang.c (handle_leaf_attribute): New function.
487 (lto_attribute_tables): Add leaf.
488
2edfba82 4892010-09-25 Jie Zhang <jie@codesourcery.com>
490
491 * lto.c (lto_read_all_file_options): Start a new line after
492 printing out file names.
493
9ced88d0 4942010-09-24 Jan Hubicka <jh@suse.cz>
495
496 * lto.c (lto_promote_cross_file_statics): Use const_value_known_p.
497
7ae8b539 4982010-09-20 Jan Hubicka <jh@suse.cz>
499
500 PR tree-optimize/45605
501 * lto.c (lto_promote_cross_file_statics): Use const_value_known_p.
502
be1a554f 5032010-09-18 Gerald Pfeifer <gerald@pfeifer.com>
504
505 * lto-elf.c (lto_obj_file_open): Also provide filename when
506 elf_begin fails.
507
7de998de 5082010-09-17 Jan Hubicka <jh@suse.cz>
509
510 * lto.c (lto_promote_cross_file_statics): Use const_value_known.
511
78d063c8 5122010-09-17 Richard Guenther <rguenther@suse.de>
513
514 * lang.opt (flag_wpa): Also enable for the driver.
515
cdc58a66 5162010-09-16 Jan Hubicka <jh@suse.cz>
517
518 * lto.c (lto_materialize_function): Do not tamper with STATIC and
519 EXTERNAL flags.
520
7b80d28f 5212010-09-15 Laurynas Biveinis <laurynas.biveinis@gmail.com>
522
523 * lto-tree.h (struct lang_type): Add variable_size GTY option.
524
3210ebe5 5252010-09-08 Jan Hubicka <jh@suse.cz>
526
527 * lto.c (real_file_count, real_file_decl_data): New static vars.
528 (read_cgraph_and_symbols): Use it.
529
7a52b640 5302010-09-08 Richard Guenther <rguenther@suse.de>
531
532 * lto.c (read_cgraph_and_symbols): Collect again after each
533 file.
534
be147e7f 5352010-09-07 Jan Hubicka <jh@suse.cz>
536
537 * lto.c (promote_var, promote_fn): Set DECL_VISIBILITY_SPECIFIED.
538
56c34a25 5392010-09-03 Richard Guenther <rguenther@suse.de>
540
541 * lto-elf.c (validate_file): Always error if validation fails.
542
c5cc4842 5432010-08-20 Jan Hubicka <jh@suse.cz>
544
545 * lto.c (lto_1_to_1_map): Be prepared for node to have no file data.
546 (lto_wpa_write_files): Update comments.
547
9543655f 5482010-08-20 H.J. Lu <hongjiu.lu@intel.com>
549
550 PR bootstrap/45357
551 * lto.c (lto_materialize_function): Replace has_analyzed_clone
552 with has_analyzed_clone_p.
553
97b862d3 5542010-08-20 Jan Hubicka <jh@suse.cz>
555
556 * lto.c (has_analyzed_clone_p): New function
557 (lto_materialize_function): Use callgraph to determine if
558 body is needed.
559 (materialize_cgraph): Remove DECL_IS_BUILTIN check.
560
48148244 5612010-08-20 Nathan Froyd <froydnj@codesourcery.com>
562
563 * lto.c: Use FOR_EACH_VEC_ELT.
564
eb219e9c 5652010-07-27 Andi Kleen <ak@linux.intel.com>
566
567 * Make-lang.in (lto.o): Add dependency to splay-tree.h
568
b78351e5 5692010-07-27 Joseph Myers <joseph@codesourcery.com>
570
571 * lto-lang.c (lto_handle_option): Update prototype and return
572 value type. Remove duplicate assignment to result.
573
e88d34f6 5742010-07-27 Joseph Myers <joseph@codesourcery.com>
575
576 * lto-lang.c (lto_option_lang_mask, lto_complain_wrong_lang_p):
577 New.
578 (lto_init_options): Update prototype.
579 (LANG_HOOKS_OPTION_LANG_MASK, LANG_HOOKS_COMPLAIN_WRONG_LANG_P):
580 Define.
581
f18bad33 5822010-07-10 Andi Kleen <ak@linux.intel.com>
583
584 PR lto/44992
585 * lto.c: Include splay-tree.h
586 (lto_resolution_read): Change to walk file_ids tree and parse
587 extra file_id in resolution file.
588 (lto_section_with_id): Add.
589 (create_subid_section_table): Add.
590 (lwstate): Add.
591 (lto_create_files_from_ids): Add.
592 (lto_file_read): Change to handle sub file ids and create list
593 of file_datas. Add output argument for count.
594 (get_section_data): Pass file_data to lto_get_section_name.
595 (lto_flatten_file): Add.
596 (read_cgraph_and_symbols): Handle linked lists of file_datas.
597
58d9117a 5982010-07-10 Andi Kleen <ak@linux.intel.com>
599
600 * lto-coff.c (hash_name, eq_name): Move.
601 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
602 * lto-elf.c: (hash_name, eq_name): Move.
603 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
604 * lto-macho.c: (hash_name, eq_name): Move.
605 (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
606 * lto.c: (hash_name, eq_name): Move from lto-*.c
607 (lto_obj_create_section_hash_table): Add.
608 (free_with_string): Add.
609
0b205f4c 6102010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
611
612 * lto-coff.c: Include diagnostic-core.h in every file that
613 includes toplev.h.
614 * lto-elf.c: Likewise.
615 * lto-lang.c: Likewise.
616 * lto-macho.c: Likewise.
617
9dccd5de 6182010-07-07 Jakub Jelinek <jakub@redhat.com>
619
620 * lto-elf.c (ELFOSABI_NONE, ELFOSABI_LINUX): Define if not defined.
621 (validate_file): Allow merging of ELFOSABI_NONE with ELFOSABI_LINUX
622 objects.
623
7550e1d1 6242010-07-05 Jan Hubicka <jh@suse.cz>
625
626 * lto.c (add_cgraph_node_to_partition): Forward declare; walk also
627 nodes from same comdat group as well as all comdat functions referenced
628 here.
b630a10e 629 (add_varpool_node_to_partition, add_references_to_partition): New
630 function.
631 (lto_1_1_map): Skip COMDAT fnctions/variables; use
632 add_varpool_node_to_partition; clear aux flags when done.
633 (lto_promote_cross_file_statics): Do not promote stuff that gets
634 duplicated to each ltrans.
7550e1d1 635
01ec0a6c 6362010-07-04 Jan Hubicka <jh@suse.cz>
637
638 * lto.c (read_cgraph_and_symbols): Dump cgraph before merging.
639
09eb10ed 6402010-06-13 Richard Guenther <rguenther@suse.de>
641
642 * lto.c (lto_fixup_type): Do not register or fixup TYPE_CANONICAL.
643
6c8c5385 6442010-06-09 Kai Tietz <kai.tietz@onevision.com>
645
646 * lto.c (lto_resolution_read): Pre-initialize local variable r.
647 * lto-coff.c (coff_write_object_file): Add braces to if.
648
ba72912a 6492010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
650
651 * lto.c (lto_read_in_decl_state): Use typed GC allocation.
652 (lto_file_read): Likewise.
653 (new_partition): Likewise.
654 (read_cgraph_and_symbols): Likewise.
655
4aafe913 6562010-06-07 Joseph Myers <joseph@codesourcery.com>
657
658 * lto-lang.c (flag_no_builtin, flag_no_nonansi_builtin): Remove.
659 (lto_handle_option): Don't set flag_signed_char here.
660
fab8a209 6612010-06-04 Richard Guenther <rguenther@suse.de>
662
663 PR lto/41584
664 * lto.c (lto_1_to_1_map): Use the proper file_data for
665 varpool nodes.
666
ecb08119 6672010-05-30 Jan Hubicka <jh@suse.cz>
668
669 * lto.c (promote_var, promote_fn, lto_wpa_write_files): Dump
670 partitioning decisions.
671
68b8d829 6722010-05-29 Jan Hubicka <jh@suse.cz>
673
674 * lto.c (bitmap vector): Remove.
675 (lto_cgraph_node_sets, lto_varpool_node_sets): Remove.
676 (ltrans_partition_def): New structure.
677 (ltrans_partition): New type and VECtor.
678 (new_partition): New function.
679 (add_cgraph_node_to_partition): New function.
680 (lto_1_to_1_map): Reorganize for partitions.
681 (lto_add_inline_clones): Remove.
682 (lto_add_all_inlinees): Remove.
683 (lto_promote_cross_file_statics): Use partitions.
684 (cmp_partitions): New function.
685 (lto_wpa_write_files): Do not call lto_add_all_inlinees;
686 use partitions; output files sorted by size.
687
ea269688 6882010-05-29 Steven Bosscher <steven@gcc.gnu.org>
689
690 * Make-lang.in: Replace vec.h dependency with VEC_H.
691
8fb69344 6922010-05-28 Joseph Myers <joseph@codesourcery.com>
693
694 * lto-coff.c (coff_errmsg): Remove.
695 (lto_coff_begin_section_with_type, lto_obj_append_data): Use %m in
696 errors instead of coff_errmsg (-1).
697 * lto-macho.c (mach_o_errmsg): Remove.
698 (lto_obj_begin_section, lto_obj_append_data): Use %m in errors
699 instead of mach_o_errmsg (-1).
700 * lto.c (read_cgraph_and_symbols): Use %m in errors instead of
701 xstrerror (errno).
702
2024fa7d 7032010-05-28 Richard Guenther <rguenther@suse.de>
704
705 * lto.c (prefix_name_with_star): Removed.
706 (strip_extension): Likewise.
707 (get_filename_for_set): Likewise.
708 (lto_write_ltrans_list): Fold into ...
709 (lto_wpa_write_files): ... this. Name LTRANS units
710 by suffixing the ltrans output list filename.
711 (do_whole_program_analysis): Adjust.
712
852f689e 7132010-05-27 Joseph Myers <joseph@codesourcery.com>
714
715 * lto.c: Include diagnostic-core.h instead of diagnostic.h.
716 (read_cgraph_and_symbols, lto_main): Use seen_error.
717 * Make-lang.in (lto/lto.o): Update dependencies.
718
3c9e9cba 7192010-05-27 Eric Botcazou <ebotcazou@adacore.com>
720
721 PR lto/44230
722 * lto.h (lto_eh_personality): New prototype.
723 * lto.c: Include debug.h.
724 (first_personality_decl): New static variable.
725 (lto_materialize_function): Set it to DECL_FUNCTION_PERSONALITY of the
726 first function for which it is non-null.
727 (lto_eh_personality_decl): New static variable.
728 (lto_eh_personality): New function.
729 * lto-lang.c (LANG_HOOKS_EH_PERSONALITY): Redefine to above function.
730 * Make-lang.in (lto/lto.o): Add dependency on debug.h.
731
cdd0ea37 7322010-05-26 Steven Bosscher <steven@gcc.gnu.org>
733
734 * lto-lang.c: Do not include expr.h.
735
71eb351d 7362010-05-24 Richard Guenther <rguenther@suse.de>
737
738 * lto-elf.c (lto_obj_build_section_table): Work around
739 FreeBSD libelf issue.
740
ca3e35a1 7412010-05-22 Richard Guenther <rguenther@suse.de>
742
743 * lto.c (read_cgraph_and_symbols): Do not collect.
744
e5507c85 7452010-05-20 Jan Hubicka <jh@suse.cz>
746
747 * lto.c (promote_var, promote_fn): New functions.
748 (lto_promote_cross_file_statics): Compute correctly boundary including
749 static initializers of readonly vars.
750
a510bd8d 7512010-05-18 Jan Hubicka <jh@suse.cz>
752
e5507c85 753 * lto.c (lto_1_to_1_map): Partition non-inline clones.
a510bd8d 754 (lto_promote_cross_file_statics): Deal with non-inline clones.
755
1375c6f8 7562010-05-18 Jan Hubicka <jh@suse.cz>
757
758 * lto.c (lto_materialize_function): Announce function when
759 reading body; allocate_struct_function only when reading body;
760 do not finalize local statics; ggc_collect after reading;
761 do not mark reachable node.
762 (materialize_cgraph): Do not announce function.
763
757a3237 7642010-05-11 Jan Hubicka <jh@suse.cz>
765
766 * lto.c (materialize_cgraph): Revert my previous patch.
767
942dc465 7682010-05-11 Kai Tietz <kai.tietz@onevision.com>
769
770 * lto-coff.c (IMAGE_FILE_MACHINE_ADM64): Rename to
771 IMAGE_FILE_MACHINE_AMD64.
772 * lto-coff.c (IMAGE_FILE_MACHINE_ADM64): Likewise.
773
b4c8770a 7742010-05-11 Jan Hubicka <jh@suse.cz>
775
776 * lto.c (lto_fixup_decls): Remove global var decls freeing here.
777 (materialize_cgraph): Add it here.
778
25429dc2 7792010-05-11 Jan Hubicka <jh@suse.cz>
780
781 * lto.c (lto_fixup_decls): Free no longer needed lto_global_var_decls
782 vector.
783
7842010-05-11 Jan Hubicka <jh@suse.cz>
785
786 * lto.c (lto_1_to_1_map): Remove some no longer needed checks.
787 (lto_promote_cross_file_statics): Never promote DECL_EXTERNAL;
788 use reachable_from_other_partition_p and
789 referenced_from_other_partition_p test.
790
6dd40464 7912010-05-11 Kai Tietz <kai.tietz@onevision.com>
792
793 * lto-coff.c (validate_file): Add x64-coff support.
794 * lto-coff.h (IMAGE_FILE_MACHINE_ADM64): New.
795 (COFF_KNOWN_MACHINES): Add IMAGE_FILE_MACHINE_ADM64.
796 * lto-lang.c (lto_build_c_type_nodes): Add check for
797 'long long unsigned int' for x64-windows.
798 (lto_init): Likewise.
799
800
23433d72 8012010-05-07 Steven Bosscher <steven@gcc.gnu.org>
802
803 * lto.h (struct lto_file_struct): Document offset member.
804 * lto-endian.h: New file.
805 * lto-macho.h: New file.
806 * lto-macho.c: New file.
807 * Make-lang.in: Add rule for lto-macho.o.
808
eb4ef3d1 8092010-05-07 Richard Guenther <rguenther@suse.de>
810
811 PR lto/43857
812 PR lto/43371
813 * lang.opt (fresolution): Change to ...
814 (fresolution=): ... this.
815 * lto-lang.c (lto_handle_option): Adjust.
816
264cbb51 8172010-05-07 Richard Guenther <rguenther@suse.de>
818
819 * lto.c (DUMPBASE_SUFFIX): Remove.
820 (lto_execute_ltrans): Move functionality to lto-wrapper.c.
821 Rename to ...
822 (lto_write_ltrans_list): ... only output the list of ltrans files.
823 (lto_maybe_unlink): Remove.
824 (do_whole_program_analysis): Do not execute LTRANS phase
825 from here.
826
11dc3713 8272010-05-06 H.J. Lu <hongjiu.lu@intel.com>
828
829 * lto-lang.c (lto_handle_option): Add argument kind.
830
8d810329 8312010-05-05 Jan Hubicka <jh@suse.cz>
832
264cbb51 833 * lto.c (lto_promote_cross_file_statics): Compute boundary based on
834 refs.
8d810329 835
a238367f 8362010-05-05 Jan Hubicka <jh@suse.cz>
837
838 * lto.c (lto_1_to_1_map): Partition only needed nodes.
839
bf7d782b 8402010-04-30 Jan Hubicka <jh@suse.cz>
841
b630a10e 842 * lto.c (get_filename_for_set): Look for cgraph node and if none found,
843 use default name.
bf7d782b 844 (lto_wpa_write_files): Write any non-empty partition.
845
da67d826 8462010-04-30 Jan Hubicka <jh@suse.cz>
847
848 * lto.c: Do not attempt to make constant pool references global.
849
57305941 8502010-04-28 Jan Hubicka <jh@suse.cz>
851
852 * lto/lto.c (lto_read_in_decl_state): Use GGC.
853 (lto_wpa_write_files): Announce what we are writting.
854 (all_file_decl_data): New.
855 (read_cgraph_and_symbols): Use GGC; correct timevars.
856 (do_whole_program_analysis): Collect.
857 * lto/Make-lang.in (lto.o): Fix dependency.
858 * Makefile.in (GTFILES): Add lto-streamer.h.
859 * varpool.c (varpool_analyze_pending_decls): Use TV_VARPOOL.
860 (varpool_assemble_pending_decls): Use VAROUT.
861 * lto-streamer.h (lto_tree_ref_table): Annotate.
862 (lto_in_decl_state): Annotate.
863 (lto_file_decl_data): Annotate.
864
0cddb138 8652010-04-28 Jan Hubicka <jh@suse.cz>
866
867 * lto.c (lto_varpool_node_sets): New.
868 (lto_1_to_1_map): Partition varpool too.
869 (globalize_context_t, globalize_cross_file_statics,
870 lto_scan_statics_in_ref_table, lto_scan_statics_in_cgraph_node,
871 lto_scan_statics_in_remaining_global_vars): Remove.
872 (lto_promote_cross_file_statics): Rewrite.
873 (get_filename_for_set): Take vset argument.
874 (lto_wpa_write_files): Pass around vsets.
875
4d992eb6 8762010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
877
878 PR lto/42776
879 * Make-lang.in (LTO_OBJS): Use LTO_BINARY_READER instead of
880 hardcoding 'lto-elf.o'.
881 ($(LTO_EXE)): Use LTO_USE_LIBELF instead of hardcoding '-lelf'.
882
883 * lto-coff.h: New file.
884 * lto-coff.c: Likewise.
885
9c491711 8862010-04-26 Richard Guenther <rguenther@suse.de>
887
888 * lto.c (lto_fixup_type): Deal with non-type TYPE_CONTEXT.
889
3ba0ce47 8902010-04-26 Dave Korn <dave.korn.cygwin@gmail.com>
891
892 * lto.h (lto_elf_file_open): Rename prototype from this ...
893 (lto_obj_file_open): ... to this.
894 (lto_elf_file_close): Likewise ...
895 (lto_obj_file_close): ... and likewise.
896 (lto_elf_build_section_table): Likewise ...
897 (lto_obj_build_section_table): ... and likewise.
898 (lto_elf_begin_section): Likewise ...
899 (lto_obj_begin_section): ... and likewise.
900 (lto_elf_append_data): Likewise ...
901 (lto_obj_append_data): ... and likewise.
902 (lto_elf_end_section): Likewise ...
903 (lto_obj_end_section): ... and likewise.
904 * lto.c (lto_file_read): Update references to the above.
905 (lto_wpa_write_files): Likewise.
906 (lto_read_all_file_options): Likewise.
907 (read_cgraph_and_symbols): Likewise.
908 * lto-lang.c (LANG_HOOKS_BEGIN_SECTION): Likewise.
909 (LANG_HOOKS_APPEND_DATA): Likewise.
910 (LANG_HOOKS_END_SECTION): Likewise.
911 * lto-elf.c (lto_elf_file_open): Rename from this ...
912 (lto_obj_file_open): ... to this, updating any references.
913 (lto_elf_file_close): Likewise ...
914 (lto_obj_file_close): ... and likewise.
915 (lto_elf_build_section_table): Likewise ...
916 (lto_obj_build_section_table): ... and likewise.
917 (lto_elf_begin_section): Likewise ...
918 (lto_obj_begin_section): ... and likewise.
919 (lto_elf_append_data): Likewise ...
920 (lto_obj_append_data): ... and likewise.
921 (lto_elf_end_section): Likewise ...
922 (lto_obj_end_section): ... and likewise.
923
5a2aecd6 9242010-04-21 Jan Hubicka <jh@suse.cz>
925
926 * lto.c (lto_fixup_tree): Do not call wpa fixup.
927 (materialize_cgraph): Likewise.
928
ddc90d88 9292010-04-21 Jan Hubicka <jh@suse.cz>
930
931 * lto.c (lto_wpa_write_files): Update.
932 (read_cgraph_and_symbols): Be more verbose.
933 (materialize_cgraph): Likewise.
934 (do_whole_program_analysis): Likewise.
935
e288c7a9 9362010-04-21 Jan Hubicka <jh@suse.cz>
937
938 * lto.c (globalize_cross_file_statics): When function has address taken,
939 it needs to be public.
940
08843223 9412010-04-20 Jan Hubicka <jh@suse.cz>
942
943 * lto.c (lto_add_inline_clones): Do not track inlined_decls.
944 (lto_add_all_inlinees): Likewise.
945 (lto_wpa_write_files): Likewise.
946
ad086ed4 9472010-04-18 Eric Botcazou <ebotcazou@adacore.com>
948
949 * lto-lang.c (lto_init): Remove second argument in call to
950 build_common_tree_nodes.
951
d6845139 9522010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
953
954 * lto-elf.c [!HAVE_ELF_GETSHDRSTRNDX] (elf_getshdrstrndx): New
955 function.
956
a5813485 9572010-03-09 Eric Botcazou <ebotcazou@adacore.com>
958
959 PR bootstrap/43276
960 * lto-elf.c: Define EM_* constants if not already defined.
961
a219f6a5 9622010-03-03 Eric Botcazou <ebotcazou@adacore.com>
963
964 * lto-elf.c (is_compatible_architecture): New static function.
965 (DEFINE_VALIDATE_EHDR): Use it to validate the architecture.
966
2bd888dc 9672010-02-11 Richard Guenther <rguenther@suse.de>
968
969 PR driver/43021
970 * lto-elf.c (lto_elf_file_open): Handle file@offset case more
971 appropriately.
972
27721832 9732010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
974
975 * lto.c (O_BINARY): Define.
976 (lto_read_section_data): Open file in binary mode.
977 * lto-elf.c (O_BINARY): Define.
978 (lto_elf_file_open): Open file in binary mode.
979
3bfd70ae 9802010-01-08 Richard Guenther <rguenther@suse.de>
981
982 PR lto/42528
983 * lto-lang.c (lto_handle_option): Handle -f[un]signed-char.
984 (lto_init): Do not init char_type_node in a standard way
985 but according to flag_signed_char.
986
50ca7c37 9872010-01-03 H.J. Lu <hongjiu.lu@intel.com>
988
989 PR lto/41564
990 * lto.c (DUMPBASE_SUFFIX): New.
991 (lto_execute_ltrans): Append a sequence number to -dumpbase
992 for LTRANS.
993
d5e86d20 9942010-01-02 H.J. Lu <hongjiu.lu@intel.com>
995
996 PR lto/42580
997 * lto-elf.c (lto_elf_file_open): Stop if the command line
998 option file is missing.
999
08a7e80f 10002009-12-15 Richard Guenther <rguenther@suse.de>
1001
1002 * lto.c (lto_fixup_field_decl): Fixup DECL_FIELD_OFFSET.
1003 (lto_post_options): Do not disable debuginfo.
1004
4af4d09c 10052009-12-14 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
1006
1007 * Make-lang.in ($(LTO_EXE)): Use $(LINKER).
1008
50b2dbd9 10092009-12-11 Richard Guenther <rguenther@suse.de>
1010
1011 PR lto/42037
1012 * lto.c (lto_resolution_read): Properly grow the vector.
1013
97e90c2e 10142009-12-11 Richard Guenther <rguenther@suse.de>
1015
1016 PR lto/41915
1017 * lto-lang.c (lto_init_options): Initialize flag_complex_method
1018 to the C99 default. Do not set flag_unit_at_a_time.
1019
f018d957 10202009-11-28 Jakub Jelinek <jakub@redhat.com>
1021
1022 * lto-lang.c (handle_nonnull_attribute): Remove unused attr_arg_num
1023 variable.
1024
81897669 10252009-11-19 Rafael Avila de Espindola <espindola@google.com>
1026
1027 PR bootstrap/42096
1028 * lto-elf.c (lto_elf_file_open): Use lto_parse_hex.
1029 * lto.c (lto_parse_hex): New.
1030 (lto_resolution_read): Use lto_parse_hex.
1031 * lto.h (lto_parse_hex): New.
1032
b7fedf62 10332009-11-17 Rafael Avila de Espindola <espindola@google.com>
1034
1035 * lto-elf.c (lto_file_init): Add offset argument.
1036 (lto_elf_file_open): Record the offset.
1037 * lto.c (lto_resolution_read): Change file_name into a lto_file
1038 argument. Check offsets.
1039 (lto_file_read): Update call to lto_resolution_read.
1040 * lto.h (lto_file_struct): Add the offset field.
1041
6575099f 10422009-11-16 Rafael Avila de Espindola <espindola@google.com>
1043
1044 * lto-elf.c (lto_elf_file_open): Use strtoll to parse the offset.
1045
6d1cc52c 10462009-11-14 Jan Hubicka <jh@suse.cz>
1047
1048 * lto.c (read_cgraph_and_symbols): Set also ipa_transforms_to_apply.
1049
d405c5a4 10502009-11-12 Rafael Avila de Espindola <espindola@google.com>
1051
1052 * lang.opt (fresolution): Renamed from resolution.
1053 * lto-lang.c (lto_handle_option): Handle new option name.
1054 * lto.c (lto_resolution_read): Add more checks. Discard rest of line.
1055
06b9e52b 10562009-11-04 Richard Guenther <rguenther@suse.de>
1057 Rafael Avila de Espindola <espindola@google.com>
1058
1059 * lto-elf.c (lto_elf_build_section_table): Add the base offset.
1060 (lto_elf_file_open): Handle offsets in arguments name@offest.
1061
f5a023c5 10622009-10-30 Richard Guenther <rguenther@suse.de>
1063
1064 PR lto/41858
1065 * lto.c (lto_file_read): Do not set file_data->fd.
1066 (lto_read_section_data): Use a single-entry file-descriptor cache.
1067 Do not check the result of xmalloc.
1068 (free_section_data): Do not use file_data->fd.
1069 (lto_read_all_file_options): Likewise.
1070
21ce3cc7 10712009-10-22 Richard Guenther <rguenther@suse.de>
1072
1073 * lto.c (lto_fixup_jump_functions): Remove.
1074 (lto_fixup_decls): Do not fixup jump functions.
1075 (read_cgraph_and_symbols): Schedule cgraph merging after
1076 summary reading. Schedule type and decl fixup before
1077 summary reading.
1078
5575303a 10792009-10-22 Richard Guenther <rguenther@suse.de>
1080
1081 * lto.c (lto_fixup_data_t): Remove free_list member.
1082 (lto_fixup_tree): Do not insert into free_list.
1083 (free_decl): Remove.
1084 (lto_fixup_decls): Remove free-list handling.
1085
8867b500 10862009-10-22 Jan Hubicka <jh@suse.cz>
1087
1088 * lto.c (lto_fixup_jump_functions): New function.
1089 (lto_fixup_decls): Use it.
1090
b787522e 10912009-10-16 Richard Guenther <rguenther@suse.de>
1092
1093 PR lto/41715
1094 * lto.c (lto_fixup_tree): Revert last change.
1095
bc0ed27c 10962009-10-14 Richard Guenther <rguenther@suse.de>
1097
1098 * lto.c (lto_fixup_tree): In case the prevailing decl is not
1099 compatible with the one we replace wrap it around a
1100 VIEW_CONVERT_EXPR.
1101
c515f146 11022009-10-09 Richard Guenther <rguenther@suse.de>
1103
1104 PR lto/41635
1105 PR lto/41636
1106 * lto.c (read_cgraph_and_symbols): Do not assert we can open
1107 a file.
1108 * lto-elf.c (init_shdr##BITS): Fix i18n problems.
1109 (init_ehdr##BITS): Likewise.
1110
48cf7037 11112009-10-08 Joseph Myers <joseph@codesourcery.com>
1112
1113 * lto-elf.c (init_shdr##BITS, lto_elf_begin_section_with_type,
1114 init_ehdr##BITS, lto_elf_file_close): Remove trailing "." from
1115 diagnostics.
1116 * lto-lang.c (lto_post_options): Remove trailing "." from
1117 diagnostics.
1118
7366cbe7 11192009-10-08 Richard Guenther <rguenther@suse.de>
1120
1121 * lto.c (read_cgraph_and_symbols): Free the gimple type merging
1122 hash tables.
1123
7c3f71c3 11242009-10-07 Joseph Myers <joseph@codesourcery.com>
1125
1126 * lto.c: Only include <sys/mman.h> if HAVE_MMAP_FILE.
1127
59dd4830 11282009-10-07 Jan Hubicka <jh@suse.cz>
1129
1130 * lto.c (read_cgraph_and_symbols): Mark functions neccesary only at
1131 ltrans stage; explain why this is needed and should not.
1132
fd193bcd 11332009-10-05 Richard Guenther <rguenther@suse.de>
1134
1135 PR lto/41552
1136 PR lto/41487
1137 * lto.c (lto_read_decls): Do not register deferred decls.
1138 (read_cgraph_and_symbols): Delay symbol and cgraph merging
1139 until after reading the IPA summaries.
1140
7bfefa9d 11412009-10-02 Rafael Avila de Espindola <espindola@google.com>
1142
1143 * Make-lang.in (lto/lto-lang.o): Don't depend on lto/common.h.
1144 (lto-lang.c): Don't include lto/common.h.
1145
11462009-10-02 Rafael Avila de Espindola <espindola@google.com>
1147
1148 * Make-lang.in (LTO_OBJS): Remove lto/common.o.
1149 (lto/common.o): Remove.
1150 * common.c: Remove.
1151 * common.h (lto_kind_str): Remove.
1152 (lto_visibility_str): Remove.
1153 (lto_resolution_str): Make it static.
1154
11552009-10-01 Diego Novillo <dnovillo@google.com>
1156
1157 * lto.c (lto_read_decls): Add comment.
1158 Call internal_error instead of gcc_assert.
1159 (lto_resolution_read): Likewise.
1160 (lto_add_all_inlinees): Tidy.
1161 * Make-lang.in: Fix copyright boilerplate.
1162 (lto.pdf): New.
1163 (lto.install-pdf): New.
1164 * lto-tree.h: Fix copyright boilerplate.
1165 * lang-specs.h: Likewise.
1166 Remove ".lto" entry from compilers fragment.
1167 * lto-elf.c: Move inclusion of gelf.h after config.h.
1168 Tidy formatting everywhere.
1169 * lto.h: Fix copyright boilerplate.
1170 Tidy formatting everywhere.
1171 * common.c: Likewise.
1172 * config-lang.in: Likewise.
1173 * common.h: Likewise.
1174 * lto-lang.c: Likewise.
1175
11762009-10-01 Richard Guenther <rguenther@suse.de>
1177
1178 * lto.c (lto_read_section_data): Use plain lseek/read.
1179
11802009-10-01 Richard Guenther <rguenther@suse.de>
1181
1182 * lto.c (LTO_MMAP_IO): Define if we can mmap files and
1183 use sysconf to query the system page size.
1184 (lto_file_read): Implement fallback using stdio.
1185 (free_section_data): Likewise.
1186
11872009-09-29 Diego Novillo <dnovillo@google.com>
1188
1189 * lto-lang.c (lto_init): Really fix call to
1190 build_common_builtin_nodes.
1191
11922009-09-29 Diego Novillo <dnovillo@google.com>
1193
1194 * lto-lang.c (lto_init): Fix call to
1195 build_common_builtin_nodes.
1196
11972009-09-29 Richard Guenther <rguenther@suse.de>
1198
1199 PR lto/40754
1200 * lto-elf.c (init_shdr##BITS): Properly specify alignment
1201 in bytes.
1202 (first_data_block): New static variable.
1203 (lto_elf_append_data): Align the first data block in each
1204 section.
1205
12062009-09-28 Diego Novillo <dnovillo@google.com>
1207
1208 * lto-lang.c: Tidy. Remove stale FIXME lto markers.
1209 * lto.c (strip_extension): New.
1210 (get_filename_for_set): Call it. Do not call make_cwd_temp_file.
1211 (lto_execute_ltrans): Tidy.
1212 Do not pass -fwpa nor -fltrans-* to LTRANS.
1213 * opts.c: Tidy formatting and remove stale FIXME lto markers.
1214 * tree.c (need_assembler_name_p): Call
1215 lang_hooks.decls.may_need_assembler_name_p if set.
1216 * varasm.c (default_binds_local_p_1): Remove check for
1217 flag_ltrans.
1218 * varpool.c (decide_is_variable_needed): Do not test for
1219 in_lto_p.
1220
12212009-09-22 Richard Guenther <rguenther@suse.de>
1222
1223 PR lto/39276
1224 * lto.c (lto_execute_ltrans): Perform ltrans phase manually.
1225 * Make-lang.in: Remove ltrans-driver stuff.
1226 * config-lang.in: Likewise.
1227 * lang.opt (fltrans-driver): Remove.
1228 * lto-lang.c (lto_init_options): Remove code initializing
1229 ltrans_driver.
1230 * ltrans-driver: Remove.
1231
12322009-09-21 Diego Novillo <dnovillo@google.com>
1233
1234 * lto-lang.c (lto_define_builtins): Remove superfluous
1235 calls to targetm.init_builtins and build_common_builtin_nodes.
1236 (lto_init): Add targetm.arm_eabi_unwinder as parameter to
1237 build_common_builtin_nodes.
1238 * lto.c (lto_materialize_function): Do nothing if NODE is a
1239 clone.
1240
12412009-09-03 Diego Novillo <dnovillo@google.com>
1242
1243 * lto-elf.c (validate_file): Replace call to
1244 elf_getshstrndx with call to elf_getshdrstrndx.
1245
12462009-08-19 Richard Guenther <rguenther@suse.de>
1247
1248 * lto-lang.c (lto_init): Merge char_type_node with the
1249 appropriately signed variant.
1250
12512009-08-19 Richard Guenther <rguenther@suse.de>
1252
1253 PR lto/41071
1254 * lto.c (lto_fixup_common): Re-build the pointer-to chain part one.
1255 (lto_fixup_type): Re-build the pointer-to chain part two.
1256
12572009-08-19 Richard Guenther <rguenther@suse.de>
1258
1259 PR lto/41071
1260 * lto.c (lto_fixup_type): Re-build the type variant chain.
1261
12622009-08-19 Richard Guenther <rguenther@suse.de>
1263
1264 PR lto/41071
1265 * lto.c (lto_fixup_constructor): New function.
1266 (lto_fixup_tree): Replace all types. Properly fixup
1267 constructors and constants.
1268
12692009-08-14 Richard Guenther <rguenther@suse.de>
1270
1271 * lto.c (read_cgraph_and_symbols): Exchange TREE_CHAIN use
1272 for DECL_LANG_SPECIFIC.
1273
12742009-08-13 Richard Guenther <rguenther@suse.de>
1275
1276 PR lto/41032
1277 * lto-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define to NULL.
1278
12792009-07-30 Richard Guenther <rguenther@suse.de>
1280
1281 PR lto/40903
1282 * lto.c (read_cgraph_and_symbols): After fixing up decls choose
1283 the largest decl for output and free TREE_CHAIN for further
1284 use.
1285
12862009-07-24 Diego Novillo <dnovillo@google.com>
1287
1288 * Make-lang.in: Add empty lto.install-plugin target.
1289
12902009-07-13 Diego Novillo <dnovillo@google.com>
1291
1292 * lto.c (lto_fixup_tree): Handle IMPORTED_DECL.
1293
12942009-07-11 Richard Guenther <rguenther@suse.de>
1295
1296 * lto-lang.c (lto_write_globals): Wrapup global decls.
1297
12982009-07-10 Richard Guenther <rguenther@suse.de>
1299
1300 * lto-lang.c (lto_init): Allocate one more location to make
1301 BUILTINS_LOCATION correct.
1302
13032009-07-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1304
1305 * lto.c (free_section_data): Cast computed_offset to caddr_t.
1306
13072009-07-06 Diego Novillo <dnovillo@google.com>
1308
1309 * lto.c (lto_fixup_type): Fixup TYPE_SIZE and
1310 TYPE_SIZE_UNIT.
1311
13122009-07-06 Diego Novillo <dnovillo@google.com>
1313
1314 * lto.c (preload_common_nodes): Remove.
1315 (lto_read_in_decl_state): Call lto_streamer_cache_get.
1316 (lto_read_decls): Call lto_data_in_create and
1317 lto_data_in_delete.
1318 (free_decl): Do not call ggc_free.
1319 (lto_main): Call lto_init_reader.
1320 * lto-lang.c (lto_type_for_size): Handle intTI_type_node.
1321 (lto_init): Initialize main_identifier_node if needed.
1322 Make ptrdiff_type_node be integer_type_node.
1323
13242009-06-19 Diego Novillo <dnovillo@google.com>
1325
1326 * lto.c: Remove code guarded by #ifdef LTO_STREAM_DEBUGGING.
1327 Remove code guarded by #ifdef GLOBAL_STREAMER_TRACE.
1328 Remove code guarded by #ifdef LOCAL_TRACE.
1329
13302009-06-18 Diego Novillo <dnovillo@google.com>
1331
1332 * lto.c: Update license to GPLv3.
1333 * lto-elf.c: Likewise.
1334 * common.c: Likewise.
1335 * lto-lang.c: Likewise.
1336 * lto.h: Remove superfluous include files. Update all
1337 users.
1338
13392009-06-17 Diego Novillo <dnovillo@google.com>
1340
1341 * lto.c (read_cgraph_and_symbols): Call input_cgraph.
1342
13432009-06-02 Diego Novillo <dnovillo@google.com>
1344
1345 * lto.c (lto_1_to_1_map): Ignore nodes that have not been
1346 read in.
1347 (materialize_cgraph): Only materialize nodes that have a
1348 representation on file.
1349
13502009-06-01 Diego Novillo <dnovillo@google.com>
1351
1352 * lto-lang.c (lto_handle_option): Hanlde OPT_Wabi.
1353
13542009-05-31 Diego Novillo <dnovillo@google.com>
1355
1356 * lto-lang.c (lto_type_for_mode): Handle all the modes
1357 handled in c_common_type_for_mode.
1358
13592009-05-21 Diego Novillo <dnovillo@google.com>
1360
1361 * lto-elf.c: Always include <gelf.h>.
1362 * config-lang.in (target_libs): Remove.
1363 (build_by_default): Set to no.
1364
13652009-05-15 Diego Novillo <dnovillo@google.com>
1366
1367 * lto.c (lto_materialize_function): Assert that DECL is
1368 not a builtin.
1369 (materialize_cgraph): Don't try to materialize builtin
1370 functions.
1371 * lto-section-out.c (write_symbol_vec): Do not write
1372 builtin functions.
1373
13742009-05-13 Diego Novillo <dnovillo@google.com>
1375
1376 * lto-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define.
1377
13782009-05-07 Diego Novillo <dnovillo@google.com>
1379
1380 * lto.c (lto_resolution_read): Add type casts for C++ warnings.
1381 (LTO_REGISTER_TYPE_AND_FIXUP_SUBTREE): Define.
1382 (lto_fixup_type): Call it for TYPE_POINTER_TO,
1383 TYPE_REFERENCE_TO, TYPE_CONTEXT and TYPE_CANONICAL.
1384 (lto_fixup_tree): Call gimple_register_type when *TP is a
1385 type.
1386 (lto_main): Call bitmap_obstack_initialize.
1387
13882009-04-22 Diego Novillo <dnovillo@google.com>
1389
1390 * lto.c (free_section_data): Tidy.
1391 (lto_1_to_1_map): Tidy.
1392 (lto_add_all_inlinees): Tidy.
1393 (prefix_name_with_star): New.
1394 (get_filename_for_set): New.
1395 (lto_wpa_write_files): Call cgraph_node_set_needs_ltrans_p
1396 to determine what cgraph node sets to write.
1397 Call get_filename_for_set to compute temporary file
1398 names.
1399 (lto_execute_ltrans): Do not execute LTRANS on files with
1400 names that start with '*'.
1401 Move logic to execute LTRANS together so that LTRANS is
1402 invoked only if there are any files to compile.
1403 (do_whole_program_analysis): Only remove output files
1404 that do not start with '*'.
1405
14062009-04-06 Diego Novillo <dnovillo@google.com>
1407
1408 * lto-lang.c (lto_post_options): Set flag_excess_precision_cmdline.
1409 * lto.c (read_cgraph_and_symbols): Set cgraph_function_flags_ready.
1410 (lto_add_all_inlinees): Tidy.
1411
14122009-03-26 Diego Novillo <dnovillo@google.com>
1413
1414 * lto.c: Include gimple.h.
1415 (lto_read_in_decl_state): Call gimple_register_type for
1416 every type in every stream.
1417 (lto_fixup_common): Call gimple_register_type if T has a
1418 type.
1419 (do_whole_program_analysis): Call print_lto_report.
1420 (lto_main): Call print_lto_report after cgraph_optimize.
1421 * Make-lang.in (lto.o): Add dependency on GIMPLE_H.
1422
14232009-03-24 Diego Novillo <dnovillo@google.com>
1424
1425 * Make-lang.in (lto-lang.o): Add dependency on TARGET_H and EXPR_H.
1426 (lto.o): Add dependency on GIMPLE_H.
1427
14282009-03-10 Simon Baldwin <simonb@google.com>
1429
1430 * lto.c (lto_read_all_file_options): Close any open file descriptor
1431 contained in file_data before freeing.
1432
14332009-02-24 Rafael Avila de Espindola <espindola@google.com>
1434
1435 * lto.c (lto_add_inline_clones): Don't add the master clone. Check
1436 for a decl in the original bitmap, not a node.
1437 (lto_add_all_inlinees): Remove original nodes that are not needed.
1438 (lto_scan_statics_in_cgraph_node): Don't care if the node is the master.
1439
14402009-02-24 Diego Novillo <dnovillo@google.com>
1441
1442 * lto.c (lto_materialize_function): Update
1443 lto_stats.num_function_bodies.
1444 (get_section_data): Initialize *LEN to 0.
1445 (lto_1_to_1_map): Update lto_stats.num_cgraph_partitions.
1446 (lto_wpa_write_files): Update lto_stats.num_cgraph_nodes.
1447 Update lto_stats.num_output_files.
1448 (read_cgraph_and_symbols): Update lto_stats.num_input_files.
1449 (materialize_cgraph): Update lto_stats.num_input_cgraph_nodes.
1450 (lto_main): Initialize lto_stats.
1451 If flag_lto_report is set, call print_lto_report.
1452
14532009-02-19 Diego Novillo <dnovillo@google.com>
1454
1455 Revert
1456
1457 2009-02-19 Rafael Avila de Espindola <espindola@google.com>
1458
1459 * lto.c (lto_add_inline_clones): Don't add the
1460 master clone. Check for a decl in the original
1461 bitmap, not a node.
1462 (lto_add_all_inlinees): Remove original nodes
1463 that are not needed.
1464 (lto_scan_statics_in_cgraph_node): Don't care if
1465 the node is the master.
1466 (lto_promote_cross_file_statics): Use a new
1467 context.seen_node_decls for each set
1468
14692009-02-19 Rafael Avila de Espindola <espindola@google.com>
1470
1471 * lto.c (lto_add_inline_clones): Don't add the master clone. Check
1472 for a decl in the original bitmap, not a node.
1473 (lto_add_all_inlinees): Remove original nodes that are not needed.
1474 (lto_scan_statics_in_cgraph_node): Don't care if the node is the master.
1475 (lto_promote_cross_file_statics): Use a new context.seen_node_decls
1476 for each set
1477
14782009-02-18 Diego Novillo <dnovillo@google.com>
1479
1480 * lto.c (lto_wpa_write_files): Use timers TV_WHOPR_WPA
1481 and TV_WHOPR_WPA_IO.
1482 (lto_execute_ltrans): Use timer TV_WHOPR_WPA_LTRANS_EXEC.
1483 (read_cgraph_and_symbols): Use timer TV_IPA_LTO_DECL_IO.
1484 (materialize_cgraph): Use timer TV_IPA_LTO_GIMPLE_IO.
1485 Use timer TV_WHOPR_WPA or TV_WHOPR_LTRANS or TV_LTO
1486 depending on command line flags.
1487 (do_whole_program_analysis): Use timer TV_WHOPR_WPA.
1488 (lto_main): Remove timer uses.
1489
14902009-02-18 Rafael Avila de Espindola <espindola@google.com>
1491
1492 * lto.c (lto_materialize_function): Don't set DECL_EXTERN to 0.
1493 (lto_wpa_write_files): Update calls to renamed functions.
1494
14952009-02-17 Diego Novillo <dnovillo@google.com>
1496
1497 PR 39203
1498 * lto-lang.c (lto_post_options): Disable -fwhole-program
1499 when running LTRANS.
1500
15012009-02-10 Diego Novillo <dnovillo@google.com>
1502
1503 * lto.c (read_cgraph_and_symbols): Fix comment.
1504
15052009-02-10 Diego Novillo <dnovillo@google.com>
1506
1507 * lto.c (read_cgraph_and_symbols): Read options from all
1508 IL files.
1509
15102009-02-10 Diego Novillo <dnovillo@google.com>
1511
1512 * lto.c (read_cgraph_and_symbols): Factor out of lto_main.
1513 (materialize_cgraph): Likewise.
1514 (do_whole_program_analysis): Likewise.
1515 (lto_main): Call read_cgraph_and_symbols,
1516 materialize_cgraph and do_whole_program_analysis.
1517
15182009-02-10 Simon Baldwin <simonb@google.com>
1519
1520 * lto.c: Include lto-opts.h.
1521 * (lto_main): Clear file options at loop start, read any saved
1522 options from the first file handled, and re-issue options.
1523 * Makefile.in (lto.o): Add dependency on lto-opts.h.
1524
15252009-02-02 Diego Novillo <dnovillo@google.com>
1526
1527 * lto.c (lto_main): Stop LTO_TIMER and use
1528 TV_WHOPR_WPA_LTRANS_EXEC when launching LTRANS.
1529
15302009-01-30 H.J. Lu <hongjiu.lu@intel.com>
1531
1532 PR lto/38995
1533 * lto-elf.c (init_shdr##BITS): Set the sh_addralign field
1534 to POINTER_SIZE.
1535
15362009-01-29 Ramana Radhakrishnan <ramana.r@gmail.com>
1537
1538 * Make-lang.in (LTO_EXE): Link with all
1539 BACKENDLIBS and not only GMPLIBS
1540
15412009-01-28 H.J. Lu <hongjiu.lu@intel.com>
1542
1543 PR bootstrap/38992
1544 * lto-elf.c: Include gelf.h instead of libelf.h.
1545 (lto_elf_file_close): Replace elfx_update_shstrndx with
1546 gelf_getehdr, elf_getscn, gelf_getshdr, gelf_update_shdr and
1547 gelf_update_ehdr.
1548
15492009-01-28 H.J. Lu <hongjiu.lu@intel.com>
1550
1551 PR middle-end/38996
1552 * lto-elf.c (DEFINE_INIT_EHDR): Initialize e_version.
1553
15542009-01-26 Diego Novillo <dnovillo@google.com>
1555
1556 * lto-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Update.
1557
15582009-01-26 Diego Novillo <dnovillo@google.com>
1559
1560 * lto-lang.c (lto_types_compatible_p): Move to gimple.c
1561 and rename into gimple_types_compatible_p.
1562
15632009-01-12 Rafael Avila de Espindola <espindola@google.com>
1564
1565 * lto-lang.c (lang_hooks): Remove the const qualifier.
1566
15672009-01-06 Diego Novillo <dnovillo@google.com>
1568
1569 * ltrans-driver: Mark 'all' target as phony.
1570
15712008-12-31 Diego Novillo <dnovillo@google.com>
1572
1573 * ltrans-driver: Execute a NOP action for target 'all'.
1574
15752008-12-19 Diego Novillo <dnovillo@google.com>
1576
1577 * lto.c (lto_1_to_1_map): Tidy.
1578
15792008-12-19 Diego Novillo <dnovillo@google.com>
1580
1581 * lto-elf.c (lto_elf_file_open): When FILENAME cannot
1582 be opened, show its name.
1583 * ltrans-driver: If $verbose is set, do not use parallelism.
1584
15852008-12-17 Rafael Avila de Espindola <espindola@google.com>
1586
1587 * lto.c (lto_fixup_function): New.
1588 (lto_fixup_tree): Call lto_fixup_function.
1589
15902008-12-14 Doug Kwan <dougkwan@google.com>
1591
1592 * lto.c (lto_1_to_1_map): Create a cgraph node set for any global
1593 variables if there is no function.
1594
15952008-12-10 Simon Baldwin <simonb@google.com>
1596
1597 * ltrans-driver: Always run make in silent mode, to avoid make's
1598 trace on stdout interfering with lto-wrapper output.
1599
16002008-12-10 Doug Kwan <dougkwan@google.com>
1601
1602 * lto.c (lto_add_inline_clones): Do not force master clones of
1603 inlined functions already in SET to be static inline.
1604
16052008-12-04 Doug Kwan <dougkwan@google.com>
1606
1607 * lto.c (globalize_context_t): New type to store states in
1608 globalization of cross-file statics.
1609 (globalize_cross_file_statics): New.
1610 (lto_scan_statics_in_ref_table): Walk tree to look for reachable
1611 static decls that need to be fixed up.
1612 (lto_scan_statics_in_cgraph_node): Change call interface to use
1613 a globalize_context_t CONTEXT for all states used.
1614 (lto_scan_statics_in_remaining_global_vars): New.
1615 (lto_promote_cross_file_statics): Use new call interface of
1616 LTO_SCAN_STATICS_IN_CGRAPH_NODE. Handle remaining externally
1617 visible vars in the last set.
1618
16192008-12-03 Diego Novillo <dnovillo@google.com>
1620
1621 * lto.c (lto_fixup_tree): Do not emit an error when
1622 PREVAILING throw but T doesn't.
1623
16242008-12-02 Doug Kwan <dougkwan@google.com>
1625
1626 * lto.c (lto_scan_statics_in_ref_table): New function factored out
1627 from code in ...
1628 (lto_scan_statics_in_cgraph_node): Handle both file-scope static
1629 variables and functions.
1630 (lto_promote_cross_file_statics): Rename bitmaps to SEEN_DECLS
1631 and GLOBAL_DECLS from SEEN_VARS and GLOBAL_VARS.
1632
16332008-11-29 Diego Novillo <dnovillo@google.com>
1634
1635 * lto.c: Include timevar.h.
1636 (lto_materialize_function): Tidy. Add comments.
1637 (lto_wpa_write_files): Tidy.
1638 (lto_execute_ltrans): Tidy.
1639 (lto_main): Add local variable LTO_TIMER. Initialize it
1640 to one of TV_WHOPR_WPA, TV_WHOPR_LTRANS or TV_LTO.
1641 Start and stop the timer.
1642 Tidy comments.
1643 * Make-lang.in (lto.o): Add dependency on timevar.h.
1644 * ltrans-driver: React to -v and -save-temps.
1645 Use simple heuristic to determine how much parallelism to
1646 use when executing make.
1647
16482008-11-12 Doug Kwan <dougkwan@google.com>
1649
1650 * lto.c (lto_bitmap_obstack): Remove var.
1651 (lto_materialize_function): Do nothing instead of marking function
1652 body in file if flag_wpa is true.
1653 (lto_add_all_inlinees): Use bitmap functions in lto-utils.c.
1654 (lto_scan_statics_in_cgraph_node): New function.
1655 (lto_promote_cross_file_statics): Same.
1656 (lto_wpa_write_files): Call lto_promote_cross_file_statics.
1657 Use bitmap functions in lto-utils.c. Remove unsued label OUT.
1658 * Make-lang.in (lto/lto.o): Add lto-utils.h to dependency list.
1659
16602008-11-09 Diego Novillo <dnovillo@google.com>
1661
1662 * lto/lto.c (lto_fixup_tree): Change error message locus
1663 information to include location of mismatching
1664 declaration.
1665 Use TREE_NO_WARNING to avoid repeated messages.
1666 (lto_main): If lto_fixup_decls emitted any errors, exit.
1667 * lto/lto-lang.c: Don't include libfuncs.h and except.h
1668 (lto_init_options): Don't enable exceptions by default.
1669 (lto_eh_runtime_type): Move to lto-function-in.c
1670 (lto_init_eh): Likewise.
1671 (lto_init): Don't call lto_init_eh.
1672 * lto/Make-lang.in (lto-lang.o): Remove dependency on
1673 libfuncs.h and except.h.
1674
16752008-10-30 Diego Novillo <dnovillo@google.com>
1676
1677 * lto.c (lto_read_decls): Declare debug_main only if
1678 LTO_STREAM_DEBUGGING is enabled.
1679
16802008-10-30 Simon Baldwin <simonb@google.com>
1681
1682 * lto.c (lto_wpa_write_files): Create intermediate files with
1683 make_cwd_temp_file().
1684 (lto_maybe_unlink): New. Delete intermediate WPA files unless
1685 WPA_SAVE_LTRANS is set.
1686 (lto_main): Call lto_maybe_unlink() for intermediate WPA files.
1687 * ltrans-driver: Do not strip directory from output files.
1688
16892008-10-29 Doug Kwan <dougkwan@google.com>
1690
1691 * lto.c (free_decl): Call lto_symtab_clear_resolution when freeing
1692 DECL.
1693 * Make-lang.in (LTO_OBJS): Remove lto/lto-symtab.o
1694 (lto/lto-symtab.o): Remove rule.
1695 * lto-tree.h (struct lang_identifier): Remove LTO specific fields.
1696 (struct lang_decl): Remove RESOLUTION and add DUMMY in struct.
1697 (LANG_IDENTIFIER_CAST, LTO_IDENTIFIER_DECL, LTO_DECL_RESOLUTION):
1698 Remove macros.
1699 lto-symtab.c (File): Move up one level.
1700 lto-lang.c (cgraph.h): Remove include.
1701 (input_overwrite_node, input_node, input_edge, input_cgraph_1,
1702 input_cgraph): Move to lto-cgraph.c in gcc directory above.
1703 (LANG_HOOKS_INPUT_CGRAPH): Remove use of macro.
1704
17052008-10-24 Rafael Espindola <espindola@google.com>
1706
1707 * lto-function-in.c (get_resolution): Return LDPR_PREEMPTED_IR for
1708 non prevailing weak symbols.
1709
17102008-10-24 Rafael Espindola <espindola@google.com>
1711
1712 * lto-lang.c (input_cgraph_1): Iterate over nodes, not cgraph_nodes.
1713
17142008-10-24 Rafael Espindola <espindola@google.com>
1715
1716 * lto-lang.c (input_node): Avoid casts from pointers to ints of
1717 different types.
1718
17192008-10-23 Simon Baldwin <simonb@google.com>
1720
1721 * lto-lang.c (input_node): Save the node reference, rather than the
1722 node pointer, in node->inlined_to.
1723 (input_cgraph_1): Convert node references into node pointers.
1724
17252008-10-22 Diego Novillo <dnovillo@google.com>
1726 Rafael Espindola <espindola@google.com>
1727
1728 * lto.c (lto_resolution_read): Tidy.
1729 * lto-symtab.c (lto_symtab_prevailing_decl): Do not
1730 abort if RET is NULL.
1731
17322008-10-22 Doug Kwan <dougkwan@google.com>
1733
1734 * lto.c (lto_fixup_tree): Check for NOTHROW conflict only if
1735 exceptions flag is given.
1736 * lto-lang.c: (lto_init_options) Set default exceptions flag.
1737 (lto_init_eh): Remove exceptions flag initialization.
1738 (lto_init): Only call lto_init_eh if exceptions flag is set.
1739
17402008-10-21 Diego Novillo <dnovillo@google.com>
1741
1742 * lto.c: Tidy some formatting.
1743 * lto.h: Likewise.
1744
17452008-10-21 Simon Baldwin <simonb@google.com>
1746
1747 * lto-symtab.c: (lto_same_type_p): Types cannot be equal if one of
1748 them is NULL (but not the other).
1749
17502008-10-17 Diego Novillo <dnovillo@google.com>
1751
1752 * ltrans-driver: Divert output from make to a temporary file.
1753 Show it if the call to make failed.
1754
17552008-10-15 Diego Novillo <dnovillo@google.com>
1756
1757 * lto.c (lto_wpa_write_files): Reformat do-while loop.
1758 Do not print TEMP_FILENAME
1759 * ltrans-driver: Call make with -s.
1760
17612008-10-15 Diego Novillo <dnovillo@google.com>
1762
1763 * lto-symtab.c (lto_symtab_merge_decl): Do not force
1764 TREE_STATIC on global symbols.
1765
17662008-10-14 Ollie Wild <aaw@google.com>
1767
1768 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): Remove.
1769 (LTRANS_DRIVER_EXE): Add.
1770 (lto.all.cross): Add LTRANS_DRIVER_EXE.
1771 (lto.all.encap): Add LTRANS_DRIVER_EXE.
1772 (lto.install.common): Remove ltrans-driver.
1773 (lto.mostlyclean): Add LTRANS_DRIVER_EXE.
1774 (LTRANS_DRIVER_EXE): New build rule.
1775 * config-lang.in (compilers): Add ltrans-driver.
1776
17772008-10-14 Diego Novillo <dnovillo@google.com>
1778
1779 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): Disable transformation
1780 of program name.
1781
17822008-10-13 Ollie Wild <aaw@google.com>
1783
1784 * lang-spec.h (@lto): Replace lto1_options with cc1_options.
1785 * lto.c (lto_execute_ltrans): Add "-fno-wpa -fltrans -xlto" to CFLAGS.
1786 * ltrans-driver (LTRANS_FLAGS): Remove.
1787
17882008-10-08 Doug Kwan <dougkwan@google.com>
1789
1790 * lto.c (lto_fixup_tree): Remove ATTRIBUTE_UNUSED from DATA.
1791 Handle new tree codes RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE
1792 and TREE_BINFO. Also move code handling FUNCTION_DECL and VAR_DECL
1793 from lto_fixup_state to here.
1794 (lto_fixup_state): Take an lto_fixup_data_t object DATA instead of
1795 just a free-list. Fix up types also. Move decl merging code to
1796 lto_fixup_tree.
1797 (lto_fixup_state_aux): Change AUX to point to an lto_fixup_data_t
1798 object.
1799 (lto_fixup_decls): Use another pointer set to avoid multiple
1800 walking of nodes except for DECLs to be replaced. Pass an
1801 lto_fixup_data_t object to tree-walker.
1802
18032008-10-08 Rafael Espindola <espindola@google.com>
1804
1805 * lto-symtab.c (lto_symtab_set_resolution): New.
1806 (lto_symtab_merge_decl): Use lto_symtab_set_resolution and
1807 lto_symtab_get_resolution.
1808 (lto_symtab_prevailing_decl): Return decl for non public decls.
1809 (lto_symtab_get_resolution): New.
1810 * lto.c (lto_fixup_tree, lto_fixup_state): Remove unecessary checks.
1811
18122008-10-06 Rafael Espindola <espindola@google.com>
1813
1814 * lto-lang.c: Include cgraph.h.
1815 (input_overwrite_node, input_node, input_edge, input_cgraph_1,
1816 input_cgraph): Moved from lto-cgraph.c.
1817 (LANG_HOOKS_INPUT_CGRAPH): New.
1818
18192008-10-03 Rafael Espindola <espindola@google.com>
1820
1821 * lto.c (lto_fixup_tree, lto_fixup_state): Fix the FIXME.
1822
18232008-10-03 Rafael Espindola <espindola@google.com>
1824
1825 * lto-symtab.c (lto_symtab_overwrite_decl): Remove. Remove all calls.
1826 (lto_symtab_merge_decl): Update LTO_IDENTIFIER_DECL the reflect the
1827 prevailing definition. Don't mark TREE_NOTHROW differences.
1828 * lto.c (lto_fixup_tree): New.
1829 (lto_fixup_state): New.
1830 (lto_fixup_state_aux): New.
1831 (free_decl): New.
1832 (lto_fixup_decls): New.
1833 (lto_main): Call lto_fixup_decls.
1834
18352008-10-02 Ollie Wild <aaw@google.com>
1836
1837 * lang.opt (fltrans): Moved from common.opt. Remove RejectNegative
1838 and Init.
1839 (fwpa): Moved from common.opt. Remove RejectNegative and Init.
1840 * lto-lang.c (lto_post_options): Add validation and fixups for
1841 -fltrans and -fwpa.
1842
18432008-10-02 Rafael Espindola <espindola@google.com>
1844
1845 * lto-symtab.c (lto_symtab_merge_var, lto_symtab_merge_fn,
1846 lto_symtab_merge_decl): Return void.
1847 (lto_symtab_prevailing_decl): New.
1848
18492008-09-30 Rafael Espindola <espindola@google.com>
1850
1851 * lto-symtab.c (lto_symtab_compatible): Remove the check for already
1852 defined symbols.
1853 (lto_symtab_overwrite_decl): Copy LTO_DECL_RESOLUTION.
1854 (lto_symtab_merge_decl): Store symbol resolution in LTO_DECL_RESOLUTION.
1855 Check for already defined symbols.
1856 * lto-tree.h (lang_decl): Remove dummy and add resolution fields.
1857 (LTO_IDENTIFIER_RESOLUTION): Remove.
1858 (LTO_DECL_RESOLUTION): New.
1859
18602008-09-30 Rafael Espindola <espindola@google.com>
1861
1862 * lto.c (lto_read_decls): Use new input_tree signature.
1863
18642008-09-26 Doug Kwan <dougkwan@google.com>
1865
1866 * lto.c (lto_main): Call lto_fixup_nothrow_decls to fix up function
1867 bodies affected by exception attribute merging of DECLs.
1868 * lto-symtab.c (lto_symtab_merge_decl): Handle exception attribute
1869 merging.
1870
18712008-09-25 Rafael Espindola <espindola@google.com>
1872
1873 * Make-lang.in (PLUGIN_API_H, LTO_TREE_H): New.
1874 (lto/lto-lang.o, lto/lto.o, lto/lto-symtab.o) Use LTO_TREE_H.
1875 * lto-symtab.c (lto_symtab_compatible): New.
1876 (lto_symtab_overwrite_decl): New.
1877 (lto_symtab_merge_decl): Refactor to use the above functions
1878 and the resolution from lang_identifier.
1879 * lto-tree.h: Include plugin-api.h.
1880 (lang_identifier): Add resolution.
1881 (LTO_IDENTIFIER_RESOLUTION): New.
1882
18832008-09-25 Ollie Wild <aaw@google.com>
1884
1885 * lang.opt (fltrans-output-list=): New option.
1886 * lto.c (lto_execute_ltrans): Output file names to ltrans_output_list.
1887
18882008-09-25 Rafael Espindola <espindola@google.com>
1889
1890 * lto.c (lto_resolution_read): Initialize ret;
1891
18922008-09-24 Ollie Wild <aaw@google.com>
1893
1894 * lto.c (sys/mman.h): Move include.
1895 (lto_wpa_write_files): Return a list of written files.
1896 (lto_execute_ltrans): New function.
1897 (lto_main): Call lto_execute_ltrans.
1898 (ltrans-driver): New file.
1899 * lto-lang.c (DEFAULT_LTRANS_DRIVER): New macro.
1900 (DEAULT_LTRANS_DRIVER_LEN): New macro.
1901 (lto_init_options): Initialize ltrans_driver.
1902 (lto_handle_option): Fix incorrect default output value.
1903 * lang.opt (fltrans-driver=): New option.
1904 * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): New variable.
1905 (lto.install-common): Add lto/ltrans-driver.
1906
19072008-09-24 Rafael Espindola <espindola@google.com>
1908
1909 * Make-lang.in (LTO_OBJS): Add lto/common.o.
1910 (lto/lto.o): Depend on lto/common.h.
1911 (lto/common.o): New.
1912 * lang.opt (resolution): New.
1913 * lto-lang.c (resolution_file_name): New.
1914 (lto_handle_option): Handle OPT_resolution.
1915 * lto-symtab.c (lto_symtab_merge_decl): Add a resolution argument.
1916 (lto_symtab_merge_var,lto_symtab_merge_fn): Add a resolution argument.
1917 pass it to lto_symtab_merge_decl.
1918 * lto.c: Include common.h.
1919 (lto_read_decls): Add resolutions and resolutions_size arguments.
1920 Initialize data_in.globals_resolution and
1921 data_in.globals_resolution_size.
1922 (index_and_symbol_resolution): New.
1923 (lto_resolution_read): New.
1924 (lto_file_read): Add argument resolution_file.
1925 Read resolution.
1926 * lto.h (resolution_file_name): New.
1927
19282008-09-23 Rafael Espindola <espindola@google.com>
1929
1930 * common.c: Update description.
1931 * common.h: Update description.
1932
19332008-09-23 Rafael Espindola <espindola@google.com>
1934
1935 * common.c: Moved from lto-plugin.
1936 * common.h: Moved from lto-plugin.
1937
19382008-09-22 Doug Kwan <dougkwan@google.com>
1939
1940 * lto.c (VEC(bitmap,heap)): Declare.
1941 (lto_materialize_function): Handle WAP mode specially.
1942 (lto_add_inline_clones): New.
1943 (lto_add_all_inlinees): Changle algorithm and to use bitmaps. Also
1944 return a bitmap of inlined decls.
1945 (lto_wpa_write_files): Handle all DECLs brought in by inlining.
1946 (lto_main): Call reset_inline_failed to reset inlining states.
1947 Check call-graph after WPA inlining.
1948 * lto-lang.c (lto_init): Do not clear flag_generate_lto
1949 unconditionally.
1950
19512008-09-19 Doug Kwan <dougkwan@google.com>
1952
1953 lto.c (lto_main): Remove unsued wrapper code.
1954 lang-specs.h (@lto): Use lto1_options instead of cc1_options.
1955
19562008-09-19 Rafael Espindola <espindola@google.com>
1957
1958 * lto-symtab.c: Include lto-tree-in.h.
1959 * lto-tree.h (lto_symtab_merge_var, lto_symtab_merge_fn): Remove.
1960 * lto.h (lto_symtab_merge_var, lto_symtab_merge_fn): Remove
1961 * Make-lang.in (lto/lto-symtab.o): Add lto-tree-in.h.
1962
19632008-09-17 Paolo Bonzini <bonzini@gnu.org>
1964 Rafael Avila de Espindola <espindola@google.com>
1965
1966 * lto-lang.c (COMPOUND_LITERAL_EXPR_DECL_STMT,
1967 COMPOUND_LITERAL_EXPR_DECL): Remove.
1968 (emit_local_var): Remove.
1969 (lto_expand_expr): Remove.
1970 (lto_staticp): Remove.
1971 (LANG_HOOKS_EXPAND_EXPR): Remove.
1972 (LANG_HOOKS_STATICP): Remove.
1973
19742008-09-11 Diego Novillo <dnovillo@google.com>
1975
1976 * lto-lang.c: Include except.h and libfuncs.h.
1977 (lto_init_eh): New.
1978 (lto_init): Call it.
1979 Set flag_generate_lto to 0.
1980 * Make-lang.in (lto-lang.o): Add dependency on except.h
1981 and libfuncs.h.
1982
19832008-09-09 Bill Maddox <maddox@google.com>
1984
1985 * lto-lang.c: Include header file expr.h.
1986 (COMPOUND_LITERAL_EXPR_DECL_STMT,
1987 COMPOUND_LITERAL_EXPR_DECL): Copied from c-common.h.
1988 (emit_local_var): Copied from c-semantics.c.
1989 (lto_expand_expr, lto_staticp): Copied from c_expand_expr
1990 and c_staticp in c-common.c.
1991 (LANG_HOOKS_EXPAND_EXPR,LANG_HOOKS_STATICP): Redefined.
1992
19932008-09-08 Diego Novillo <dnovillo@google.com>
1994
1995 * lto-lang.c (lto_global_bindings_p): Return 1 during
1996 IPA passes.
1997
19982008-09-07 Diego Novillo <dnovillo@google.com>
1999
2000 * lto.c: Tidy formatting.
2001
20022008-08-04 Bill Maddox <maddox@google.com>
2003
2004 * lto-symtab.c (lto_symtab_merge_decl): Add comment.
2005
20062008-09-03 Doug Kwan <dougkwan@google.com>
2007
2008 lto.c (lto_add_all_inlinees): Reset FAILED_REASON of edges to
2009 CIF_OK instead of NULL.
2010
20112008-09-02 Diego Novillo <dnovillo@google.com>
2012 Simon Baldwin <simonb@google.com>
2013
2014 * lto-lang.c (lto_type_for_size): Rewrite. Adapt from
2015 c_common_type_for_size.
2016 (lto_type_for_mode): Remove ATTRIBUTE_UNUSED markers.
2017 (lto_init): Call linemap_add.
2018 (signed_and_unsigned_types): Remove.
2019
20202008-08-29 Diego Novillo <dnovillo@google.com>
2021
2022 * lto-lang.c (handle_noreturn_attribute): New local function.
2023 (handle_const_attribute): New local function.
2024 (handle_malloc_attribute): New local function.
2025 (handle_pure_attribute): New local function.
2026 (handle_novops_attribute): New local function.
2027 (handle_nonnull_attribute): New local function.
2028 (handle_nothrow_attribute): New local function.
2029 (handle_sentinel_attribute): New local function.
2030 (handle_type_generic_attribute): New local function.
2031 (handle_format_attribute): New local function.
2032 (handle_format_arg_attribute): New local function.
2033 (lto_attribute_table): Declare.
2034 (lto_format_attribute_table): Declare.
2035 (lto_init_attributes): New local function.
2036 (lto_define_builtins): Call it.
2037 Call targetm.init_builtins and build_common_builtin_nodes.
2038 (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Define.
2039 (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Define.
2040
20412008-08-28 Diego Novillo <dnovillo@google.com>
2042
2043 * Make-lang.in (lto-lang.o): Replace tree-gimple.h with
2044 $(GIMPLE_H).
2045 (lto-symtab.o): Add dependency on $(GIMPLE_H).
2046 * lto-lang.c: Include gimple.h instead of tree-gimple.h.
2047 * lto-symtab.c: Include gimple.h.
2048 * lto-tree.h (chain_next): Replace GENERIC_NEXT with
2049 TREE_CHAIN.
2050
20512008-08-27 Doug Kwan <dougkwan@google.com>
2052
2053 * lto.c (vec.h, bitmap.h, pointer-set.h, ipa-prop.h, ggc.h,
2054 gt-lto-lto.h): New includes.
2055 (lto_materialize_function): Do not read in function body in WPA mode.
2056 Format a line to fit in 80 columns.
2057 (lto_cgraph_node_sets): New garbage collected variable.
2058 (lto_1_to_1_map, lto_add_all_inlinees, lto_wpa_write_files):
2059 New functions.
2060 (lto_main): Initialize bitmap obstack. Add code to handle WPA mode.
2061 * Make-lang.in (LTO_H): Replace filename lto-section-in.h with
2062 variable LTO_SECTION_IN_H.
2063 (lto/lto.o): Include gt-lto-lto-c.h ggc.h ,VEC_H, BITMAP_H,
2064 pointer-set.h and IPA_PROP_H. Also replace filename lto-section-in.h
2065 with variable LTO_SECTION_IN_H.
2066 * config-lang.in (gtfiles): Add lto/lto.c.
2067 * lto-symtab.c (lto_symtab_merge_decl): Set DECL_CONTEXT of
2068 merged DECL_RESULT correctly.
2069
20702008-08-26 Bill Maddox <maddox@google.com>
2071
2072 * lto-lang.c Include tree-gimple.h.
2073 (lto_mark_addressable): Call mark_addressable rather than
2074 asserting.
2075 (lto_post_options): Suppress debug info generation.
2076 * Make-lang.in: Add dependency of lto-lang.o on tree-gimple.h.
2077
20782008-08-25 Bill Maddox <maddox@google.com>
2079
2080 * lto-symtab.c (lto_symtab_merge_decl): Remove a suspect
2081 assertion and leave an explanatory comment in its place.
2082
20832008-08-21 Doug Kwan <dougkwan@google.com>
2084
2085 * lto.c (preload_common_nodes): Call lto_get_common_nodes to get a list
2086 of common nodes instead of computing locallly.
2087 (lto_read_in_decl_state): New.
2088 (lto_read_decls): Change code for udpate in struct lto_decl_header.
2089 Read global and per-function in-decl states.
2090 * Make-lang.in (LTO_H): Update dependency.
2091 (lto/lto.o): Same.
2092 (lto-symtab.c): Merge (revision 139039)
2093 * lto-symtab.c (lto_symtab_merge_decl): Merge DECL_RESULT.
2094
20952008-08-21 Rafael Espindola <espindola@google.com>
2096
2097 * config-lang.in (target_libs): New.
2098
20992008-08-20 Bill Maddox <maddox@google.com>
2100
2101 * lto.c (current_lto_file): Remove GTY marker from static
2102 variable. Remove include of file gt-lto-lto.h.
2103 * Make-lang.in: Remove dependency of lto/lto.o on
2104 gt-lto-lto.h.
2105 * lto-elf.c (lto_file_close): Removed.
2106 (lto_elf_file_open): Use XCNEW instead of GGC_CNEW to
2107 allocate lto_elf_file object.
2108 (lto_elf_file_close): Free lto_elf_file object after close.
2109 * lto.h (struct lto_file_struct): Remove GTY marker.
2110 * config-lang.in: Remove lto/lto.h and lto/lto.c from
2111 gtfiles.
2112
21132008-08-20 Bill Maddox <maddox@google.com>
2114
2115 * lto.c (lto_read_decls): Provide dummy argument to input_tree
2116 to conform to its new signature.
2117 * lto-symtab.c (lto_symtab_merge_decl): Do not invoke ggc_free
2118 on discarded node here, now called in global_vector_fixup.
2119
21202008-08-09 Bill Maddox <maddox@google.com>
2121
2122 * lto.c (preload_common_nodes): Verify that fileptr_type_node
2123 has not been set to a front-end-specific value.
2124
21252008-08-05 Doug Kwan <dougkwan@google.com>
2126
2127 * Make-lang.in (lto-symtab.o): Add missing dependencies to fix
2128 build breakage.
2129
21302008-07-30 Bill Maddox <maddox@google.com>
2131
2132 * lto.c (lto_materialize_function): Call lto_original_decl_name.
2133 Remove obsolete comments.
2134 (lto_read_decls): Remove initialization of deleted field data_in.global.
2135 Tidy up comments.
2136 (lto_main): Remove redundant initialization of section_hash_table.
2137 * lto-elf.c: Removed obsolete comments.
2138 * lto.h: Tidy up comments.
2139 * lto-symtab.c (lto_least_common_multiple): New function.
2140 (lto_symtab_merge_decl): Merge variable alignments in some cases.
2141 Tidy up comments.
2142
21432008-07-25 Diego Novillo <dnovillo@google.com>
2144 Bill Maddox <maddox@google.com>
2145
2146 * lto.c: Re-order include files.
2147 Include lto-section-out.h.
2148 (preload_common_nodes): Add debugging output.
2149 Add new local INDEX_TABLE.
2150 Call preload_common_node.
2151 * Make-lang.in (lto.o): Add dependency on lto-section-out.h
2152
21532008-07-13 Bill Maddox <maddox@google.com>
2154
2155 * lto.c (lto_read_decls): Cast pointer to const char * to avoid
2156 unwanted scaling during pointer addition.
2157
21582008-07-11 Bill Maddox <maddox@google.com>
2159 Diego Novillo <dnovillo@google.com>
2160
2161 * lto.c (lto_read_decls): Fix C++ compatibility warnings.
2162 Make code const-correct.
2163 (lto_file_read): Fix C++ compatibility warnings.
2164 (lto_read_section_data): Fix C++ compatibility warnings.
2165 (lto_get_section_data): Use CONST_CAST to avoid warning when
2166 const pointer passed to free.
2167 * lto-elf.c (lto_elf_build_section_table): Fix C++
2168 compatibility warnings.
2169 (lto_elf_append_data): Fix C++ compatibility warnings. Use CONST_CAST
2170 to avoid warning assigning const pointer to d_buf field of Elf_Data.
2171 (lto_get_current_out_file): Fix C++ compatibility warnings.
2172
21732008-07-11 Diego Novillo <dnovillo@google.com>
2174
2175 * Make-lang.in (lto-warn): Define.
2176
21772008-07-03 Simon Baldwin <simonb@google.com>
2178
2179 * lto.c (lto_read_decls): Wrapped debug-only data items within #ifdef
2180 LTO_STREAM_DEBUGGING.
2181
21822008-06-27 Ollie Wild <aaw@google.com>
2183
2184 * lto-elf.c (lto-section-out.h): New include.
2185 (struct lto_elf_file): Remove bits member. Add scn, shstrtab_stream,
2186 and data members.
2187 (cached_file_attrs): New static variable.
2188 (lto_elf_get_shdr, lto_elf_free_shdr): Remove elf_file parameter.
2189 Use cached_file_attrs for checking bits.
2190 (lto_elf_build_section_table): Remove elf_file argument from
2191 lto_elf_get_shdr and lto_elf_free_shdr calls.
2192 (DEFINE_INIT_SHDR): New macro.
2193 (init_shdr32, init_shdr64): New functions defined via the
2194 DEFINE_INIT_SHDR macro.
2195 (lto_elf_begin_section_with_type): New function.
2196 (lto_elf_begin_section): New function.
2197 (lto_elf_append_data): New function.
2198 (lto_elf_end_section): New function.
2199 (DEFINE_VALIDATE_EHDR): New macro.
2200 (validate_ehdr32, validate_ehdr64): New functions defined via the
2201 DEFINE_VALIDATE_EHDR macro.
2202 (validate_file): New function.
2203 (DEFINE_INIT_EHDR): New macro.
2204 (init_ehdr32, init_ehdr64): New functions defined via the
2205 DEFINE_INIT_EHDR macro.
2206 (init_ehdr): New function.
2207 (lto_elf_file_open): Add support for writable files. Move some
2208 validation logic to validate_file.
2209 (lto_elf_file_close): Add support for writable files. Write file data
2210 and free data blocks.
2211 (current_out_file): New static variable.
2212 (lto_set_current_out_file): New function.
2213 (lto_get_current_out_file): New function.
2214 * lto.c (lto_main): Add writable argument to lto_elf_file_open calls.
2215 Add temporary initialization for testing ELF serialization.
2216 * lto.h (lto-section-out.h): New include.
2217 (struct lto_file_struct): Slight modification to comment.
2218 (lto_elf_file_open): Add writable parameter.
2219 (lto_elf_begin_section): New function declaration.
2220 (lto_elf_append_data): New function declaration.
2221 (lto_elf_end_section): New function declaration.
2222 (lto_set_current_out_file, lto_get_current_out_file): New function
2223 declarations.
2224 * lto-lang.c (LANG_HOOKS_BEGIN_SECTION): Set as lto_elf_begin_section.
2225 (LANG_HOOKS_APPEND_DATA): Set as lto_elf_append_data.
2226 (LANG_HOOKS_END_SECTION): Set as lto_elf_end_section.
2227 * Make-lang.in (LTO_H): Add lto-section-out.h.
2228
22292008-06-12 Ollie Wild <aaw@google.com>
2230
2231 * lto.h (struct lto_file_vtable_struct): Remove.
2232 (struct lto_file_struct): Remove vtable member.
2233 * lto-elf.c (lto_file_init): Remove vtable argument.
2234 (lto_elf_map_optional_lto_section): Remove.
2235 (lto_elf_unmap_section): Remove.
2236 (lto_elf_file_vtable): Remove.
2237 (lto_elf_file_open): Remove lto_elf_file_vtable argument from
2238 lto_file_init call.
2239 (lto_elf_find_section_data): Remove.
2240
22412008-06-11 Ollie Wild <aaw@google.com>
2242
2243 * lto.c (lto_file_read): Add const qualifier to data variable.
2244
22452008-06-11 Diego Novillo <dnovillo@google.com>
2246
2247 Merge from lto-streamber sub-branch.
2248
2249 2008-06-04 Ollie Wild <aaw@google.com>
2250
2251 * lto.c: Remove inclusion of dwarf2.h and dwarf2out.h.
2252 * Make-lang.in (lto.o): Remove dependency on dwarf2.h.
2253
2254 2008-05-28 Bill Maddox <maddox@google.com>
2255
2256 Replace the DWARF reader in the LTO front-end.
2257
2258 * lto.c: Include lto-tree-in.h, lto-tags.h.
2259 (enum DWARF2_class, DW_cl_constant, struct
2260 DWARF2_form_data, struct lto_context,
2261 lto_fd_init, lto_info_fd_init,
2262 lto_abbrev_fd_init, lto_info_fd_close,
2263 lto_file_init, lto_file_close,
2264 lto_file_corrupt_error, lto_abi_mismatch_error,
2265 LTO_CHECK_INT_VAL, LTO_READ_TYPE,
2266 lto_read_uleb128, lto_read_sleb128,
2267 lto_read_initial_length, lto_abbrev_read_attrs,
2268 lto_abbrev_read, lto_abbrev_read_lookup,
2269 lto_read_section_offset,
2270 lto_read_comp_unit_header, find_cu_for_offset,
2271 lto_get_file_name,
2272 lto_resolve_reference,lto_read_form,
2273 attribute_value_as_int,
2274 make_signed_host_wide_int,
2275 attribute_value_as_constant, lto_cache_hash,
2276 lto_cache_eq, lto_cache_store_DIE,
2277 lto_cache_lookup_DIE, lto_find_integral_type,
2278 lto_find_integral_type_1,
2279 LTO_BEGIN_READ_ATTRS_UNCHECKED,
2280 LTO_BEGIN_READ_ATTRS, LTO_END_READ_ATTRS,
2281 lto_unsupported_attr_error, lto_get_identifier,
2282 lto_read_referenced_type_DIE,
2283 lto_read_compile_unit_DIE,
2284 lto_read_array_type_DIE,
2285 lto_read_structure_union_class_type_DIE,
2286 lto_read_enumerator_DIE,
2287 lto_read_enumeration_type_DIE,
2288 lto_read_only_for_child_DIEs,
2289 lto_read_only_for_child_DIEs,
2290 lto_read_member_DIE, lto_read_abbrev,
2291 lto_read_variable_formal_parameter_constant_DIE,
2292 lto_get_body): Removed.
2293 (preload_common_nodes): New function.
2294 (lto_read_decls): Convert for new global streamer.
2295 (lto_materialze_file_data,
2296 lto_read_subroutine_type_subprogram_die,
2297 lto_read_unspecified_parameters_DIE,
2298 lto_read_typedef_DIE,
2299 lto_read_pointer_reference_type_DIE,
2300 lto_read_subrange_type_DIE,
2301 lto_read_base_type_DIE,
2302 lto_read_const_volatile_restrict_type_DIE,
2303 lto_read_namespace_DIE,
2304 lto_read_unspecified_type_DIE, lto_read_DIE,
2305 lto_read_child_DIEs, lto_collect_child_DIEs):
2306 Removed.
2307 (lto_info_read, lto_set_cu_context): Removed.
2308 (lto_file_read): Convert for new global streamer.
2309 (lto_resolve_type_ref, lto_read_DIE_at_ptr,
2310 lto_resolve_var_ref, lto_resolve_fn_ref,
2311 lto_resolve_field_ref, lto_resolve_typedecl_ref,
2312 lto_resolve_namespacedecl_ref): Removed.
2313 (lto_file_init, lto_file_close): Moved to lto-elf.c.
2314 * lto-tree.h (lto_symtab_merge_var,
2315 lto_symtab_mergee_fun): Declare here.
2316 * lto-elf.c (lto_file_init, lto_file_close): Moved from lto.c.
2317 (lto_elf_file_open): Removed code to read DWARF debug sections.
2318 * lto.h (lto_context, DWARF2_attr, DWARF2_abbrev,
2319 DWARF2_CompUnit, lto_die_ptr,
2320 lto_die_cache_entry, lto_fd, lto_info_fd,
2321 lto_abbrev_fd): Removed.
2322 (lto_file): Removed debug_info and debug_abbrev fields.
2323 (lto_ref): Removed.
2324 (lto_file_init, lto_file_close,
2325 lto_resolve_type_ref, lto_resolve_var_ref,
2326 lto_resolve_fn_ref, lto_resolve_field_ref,
2327 lto_resolve_typedecl_ref,
2328 lto_resolve_namespacedecl_ref,
2329 lto_get_file_name): Removed declarations.
2330 (lto_symtab_merge_var, lto_symtab_merge_fn):
2331 Declarations moved to lto-tree.h.
2332 * lto-symtab.c (lto_compatible_attributes_p):
2333 Lobotomize this, as it barfs on "Hello, world!".
2334 * lto-section-out.c: Include lto-tree-out.h.
2335 (lto_hash_global_slot_node,
2336 lto_eq_global_slot_node, preload_common_nodes,
2337 write_global_stream, write_global_references):
2338 New functions.
2339 (produce_asm_for_decls): Convert for new global streamer.
2340 * lto-section-out.h (lto_hash_global_slot_node,
2341 lto_eq_global_slot_node): Declare.
2342
23432008-06-07 Kenneth Zadeck <zadeck@naturalbridge.com>
2344 Jan Hubicka <jh@suse.cz>
2345
2346 * lto.c (sys/mman.h, tree-pass.h): New includes.
2347 (lto_materialize_constructors_and_inits,
2348 lto_materialize_function): Keeps length of section.
2349 (lto_materialize_cgraph): Removed.
2350 (lto_read_decls): Initialize fd field.
2351 (lto_file_read): Different return type and removed much code to
2352 lto_main.
2353 (page_mask): New variable.
2354 (lto_read_section_data, get_section_data, free_section_data): New
2355 functions.
2356 (lto_main): Now calls pass manager, sets the hooks so that the ipa
2357 passes can get the section data.
2358
23592008-05-27 Kenneth Zadeck <zadeck@naturalbridge.com>
2360
2361 * lto.h (lto_read_decls): Made local.
2362 (lto_input_function_body, lto_input_constructors_and_inits,
2363 lto_input_cgraph): Declarations moved to lto-section-in.h.
2364 * lto-section-in.c: Moved to .. .
2365 * lto-cgraph-in.c: Ditto.
2366 * lto-section-in.h: Ditto.
2367 * lto-function-in.c: Ditto.
2368 * lto-lang.c (lto_handle_option): Added ATTRIBUTE_UNUSED to parms.
2369 (lto_insert_block): Removed.
2370 (LANG_HOOKS_INSERT_BLOCK): Removed.
2371 * Make-lang.in (lto-cgraph-in.o, lto-function-in.o,
2372 lto-section-in.o): Rules moved to lto/Makefile.in.
2373
2374
23752008-05-16 Ollie Wild <aaw@google.com>
2376
2377 * lto-lang.c (tree-inline.h): Include.
2378 (lto_post_options): New function.
2379 (LANG_HOOKS_POST_OPTIONS): Define.
2380 * lto-cgraph-in.c (overwrite_node): Set node->global.insns.
2381 * lto-function-in.c (input_bb): Set TREE_BLOCK (stmt).
2382
23832008-05-13 Diego Novillo <dnovillo@google.com>
2384
2385 * lto-function-in.c (input_ssa_names): Call
2386 make_ssa_name_fn instead of make_ssa_name.
2387
23882008-05-12 Diego Novillo <dnovillo@google.com>
2389
2390 * lto-cgraph-in.c (overwrite_node): Update references to
2391 inline summary fields.
2392 * lto-function-in.c (input_expr_operand): Do not handle
2393 STRUCT_FIELD_TAG.
2394
23952008-05-09 Ollie Wild <aaw@google.com>
2396
2397 * lang.opt: New file.
2398 * lto-lang.c (lto_init_options): New function.
2399 (lto_handle_option): New function.
2400 (lto_init): Move initialization of flag_unit_at_a_time to
2401 lto_init_options.
2402 (LANG_HOOKS_INIT_OPTIONS): Define.
2403 (LANG_HOOKS_HANDLE_OPTION): Define.
2404
24052008-04-29 Ollie Wild <aaw@google.com>
2406
2407 * lto.c (lto_read_namespace_DIE): New function.
2408 (lto_read_DIE): Add lto_read_namespace_DIE callback. Cache
2409 NAMESPACE_DECL DIE's.
2410 (lto_resolve_namespacedecl_ref): New function.
2411 * lto.h (lto_resolve_namespacedecl_ref): New function.
2412 * lto-section-in.c (lto_read_decls): Read namespace declarations.
2413 * lto-section-in.h (struct lto_file_decl_data): Add namespace_decls
2414 and num_namespace_decls.
2415 * lto-function-in.c (input_expr_operand): Add NAMESPACE_DECL case.
2416 * lto-lang.c (lto_init_ts): New function.
2417 (LANG_HOOKS_INIT_TS): Set as lto_init_ts.
2418
24192008-04-16 Ollie Wild <aaw@google.com>
2420
2421 * lto-function-in.c (input_type_ref): Updated function description.
2422
24232008-04-16 Ollie Wild <aaw@google.com>
2424
2425 * lto-function-in.c (input_type_ref_1): New function.
2426 (input_type_ref): Split into two functions.
2427 (input_function): Add support for type contexts.
2428
24292008-04-16 Ollie Wild <aaw@google.com>
2430
2431 * lto.c (lto_materialize_function): Use DECL_ASSEMBLER_NAME to compute
2432 section name
2433
24342008-04-16 Ollie Wild <aaw@google.com>
2435
2436 * lto.c (lto_read_compile_unit_DIE): Add DW_LANG_C_plus_plus to the
2437 list of supported languages.
2438
24392008-03-25 Kenneth Zadeck <zadeck@naturalbridge.com>
2440
2441 Merge with mainline @133491.
2442
24432008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
2444 Jan Hubicka <jh@suse.cz>
2445
2446 * lto.c (lto_info_fd_init, lto_info_fd_close): Get rid of
2447 fd->unmaterialized_fndecls.
2448 (lto_get_file_name, lto_materialize_cgraph): New function.
2449 (lto_materialize_constructors_and_inits,
2450 lto_materialize_function): Read info directly from elf file.
2451 (lto_file_read): Made local and initialize dictionary so that
2452 other lto sections can be read without reprocessing the elf file.
2453 (lto_main): Read all functions after all files have been processed
2454 for their types, globals and cgraph.
2455 * Make-lang.in (lto.o, lto-cgraph-in.c, lto-section-in): Changed
2456 dependencies.
2457 * lto-elf.c (lto_elf_file): Removed strtab, symtab fields.
2458 (hash_name, eq_name, lto_elf_build_section_table): New functions.
2459 (lto_elf_read_symtab): Removed function.
2460 (lto_elf_file_open): Removed call to lto_elf_read_symtab.
2461 * lto.h (lto_info_fd_struct): Removed unmaterialized_fndecls.
2462 (lto_file_read): Made local.
2463 (lto_get_file_name, lto_elf_build_section_table,
2464 lto_input_cgraph):
2465 New function.
2466 * lto-section-in.c (lto_read_section_data, lto_get_section_data):
2467 New functions.
2468 (lto_read_decls): Get the file name.
2469 * lto-cgraph-in.c: New file.
2470 * lto-function-in.c (tag_to_expr): Stops at LTO_tree_last_tag.
2471 (input_expr_operand, lto_read_body): Set lto_debug_context.tag_names.
2472 (input_labels): Fixed latent sizeof issue.
2473 (input_function): Build stmt array to set call sites into cgraph
2474 edges.
2475 (lto_read_body): Reset cfun->curr_properties.
2476 * lto_section_in.h (lto_section_slot): New structure.
2477 (section_hash_table.lto_file_decl_data): New field.
2478
2479
24802008-02-09 Kenneth Zadeck <zadeck@naturalbridge.com>
2481
2482 * lto.c (lto_read_variable_formal_parameter_const): Remove code to
2483 reconstruct static initializers.
2484 (lto_get_body, lto_materialize_function): Add lto_section_type as
2485 a parameter.
2486 (lto_materialize_constructors_and_inits,
2487 lto_materialize_file_data): New function.
2488 (lto_materialize_function,
2489 lto_read_subroutine_type_subprogram_DIE): Renamed unmap_fn_body to
2490 unmap_section and map_fn_body to map_section.
2491 (lto_set_cu_context): Process functions and static inits
2492 differently.
2493 * Make-lang.in (LTO_H, lto/lto-function-in.o,
2494 lto/lto-section-in.o): Update dependencies.
2495 * lto/lto-elf.c (lto_elf_map_optional_lto_section): Add
2496 lto_section_type parameter.
2497 (lto_elf_unmap_fn_body): Renamed to lto_elf_unmap_section.
2498 * lto.h (lto_file_vtable_struct): Removed two of the fields and
2499 renamed the other two so that there is only one map function and
2500 one unmap function and each takes a section type parameter.
2501 (lto_read_function_body): Renamed to lto_input_function_body and
2502 added file_data parameter.
2503 (lto_read_var_init): Removed.
2504 (lto_input_constructors_and_inits): New function.
2505 * lto-section-in.c (lto_read_decls): New function.
2506 * lto-function-in.c (data_in): Moved fields field_decls, fn_decls,
2507 var_decls, type_decls, types to lto_file_decl_data.
2508 (input_type_ref, input_expr_operand, lto_read_body): Get
2509 field_decls, fn_decls, var_decls, type_decls, types from different
2510 structure.
2511 (input_globals, input_constructor, lto_read_var_init): Removed.
2512 (input_constructors_or_inits): New function.
2513 (lto_read_function_body, lto_input_constructors_and_inits):
2514 Renamed to lto_input_function_body and takes file_data parameter.
2515 * lto-section-in.h (lto_file_decl_data): New structure.
2516
25172008-01-28 Kenneth Zadeck <zadeck@naturalbridge.com>
2518
2519 * lto-function-in.c (input_globals.c): Changed input type to
2520 lto_function_header.
2521 (input_bb): Removed code to deserialize the stmt number.
2522 (input_function): Renumber all stmts after they are input.
2523 (lto_read_body, lto_read_function_body, lto_read_var_init):
2524 Changed to used new header format and enum section_type.
2525 *lto-lang.c (success): Removed.
2526
25272008-01-28 Nathan Froyd <froydnj@codesourcery.com>
2528
2529 * lto-elf.c (lto_elf_lookup_sym): Remove unused function.
2530 (lto_elf_free_sym): Likewise.
2531
2532 * lto-elf.c (lto_elf_read_var_init): Remove unused function.
2533 (lto_elf_build_init): Likewise.
2534
25352008-01-14 Kenneth Zadeck <zadeck@naturalbridge.com>
2536
2537 * lto-read.c: Renamed to lto-function-in.c.
2538 (input_1_unsigned): Moved to lto-section-in.c and renamed
2539 lto_input_1_unsigned.
2540 (input_uleb128): Moved to lto-section-in.c and renamed
2541 lto_input_uleb128.
2542 (input_widest_uint_uleb128): Moved to lto-section-in.c and renamed
2543 lto_input_widest_uint_uleb128.
2544 (input_sleb128): Moved to lto-section-in.c and renamed
2545 lto_input_sleb128.
2546 (input_integer): Moved to lto-section-in.c and renamed
2547 lto_input_integer.
2548 (debug_in_fun): Moved to lto-section-in.c and renamed
2549 lto_debug_in_fun.
2550 (input_block): Moved to lto-section-in.h and renamed
2551 lto_input_block.
2552 (input_expr_operand): Fixed to allow lists with more than one
2553 element.
2554 * lto-section-in.h: New file.
2555 * lto-section-in.c: New file with changes from above.
2556 * Make-lang.in (lto-read.o): Renamed lto-function-in.c.
2557 (lto-section-in.o): New rule.
2558
25592007-12-29 Nathan Froyd <froydnj@codesourcery.com>
2560
2561 * lto-read.c (input_expr_operand): Mark static and external
2562 VAR_DECLs as needed.
2563
25642007-12-29 Nathan Froyd <froydnj@codesourcery.com>
2565
2566 * lto-read.c (input_integer): Use the correct shift amount.
2567
25682007-12-29 Nathan Froyd <froydnj@codesourcery.com>
2569
2570 * lto-lang.c (lto_pushdecl): Do nothing instead of aborting.
2571 (LANG_HOOKS_NAME): Define.
2572
25732007-12-27 Nathan Froyd <froydnj@codesourcery.com>
2574
2575 * lto.c (lto_find_integral_type): Define as a macro. Rename the
2576 original function to...
2577 (lto_find_integral_type_1): ...this. Consult UNSIGNEDP if we
2578 don't have a base type.
2579 (lto_read_enumeration_type_DIE): Examine the values of the
2580 enumeration to determine whether we can use an unsigned type for
2581 the base type of the enumeration.
2582
25832007-12-24 Nathan Froyd <froydnj@codesourcery.com>
2584
2585 * lto.c (lto_read_structure_union_class_type_DIE): Set TYPE_MODE
2586 and TYPE_ALIGN on UNION_TYPEs as soon as possible.
2587
25882007-12-22 Nathan Froyd <froydnj@codesourcery.com>
2589
2590 * lto-lang.c (lto_types_compatible_p): New function.
2591 (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
2592
25932007-12-22 Nathan Froyd <froydnj@codesourcery.com>
2594 Kenneth Zadeck <zadeck@naturalbridge.com>
2595
2596 * lto-read.c (input_expr_operand): Fixed uninitialize var warning.
2597 (input_local_vars): Read in DECL_INITIAL and context for local
2598 statics that need to be put in unexpanded_vars_list.
2599
26002007-12-21 Nathan Froyd <froydnj@codesourcery.com>
2601
2602 * lto-read.c (input_real): Use a separate null-terminated buffer
2603 for calling real_from_string.
2604 (input_expr_operand): If we take the address of a FUNCTION_DECL,
2605 tell cgraph that it's needed.
2606
26072007-12-19 Doug Kwan <dougkwan@google.com>
2608
2609 * lto.c (lto_read_base_type_DIE): Handle complex integer types.
2610
26112007-12-18 Nathan Froyd <froydnj@codesourcery.com>
2612
2613 * lto.c (lto_read_DIE): Call lto_read_only_for_child_DIEs instead.
2614 (lto_file_read): Reset the members of 'context' every time we read
2615 a toplevel DIE, with special attention to last_param_type.
2616
26172007-12-18 Nathan Froyd <froydnj@codesourcery.com>
2618
2619 * lto.c (lto_read_subroutine_type_subprogram_DIE): Initialize
2620 'declaration'. Set the assembler name for non-public functions.
2621
26222007-12-17 Kenneth Zadeck <zadeck@naturalbridge.com>
2623
2624 * lto_read.c (data_in.unexpanded_indexes): New array.
2625 (input_local_var): Added code to read in unexpanded_var_list
2626 indexes for variables. Only read in DECL_CHAIN field for
2627 parameters.
2628 (input_local_vars): Added code to rebuild unexpanded_var_list in
2629 order using unexpanded_indexes.
2630 (input_function): Added code to set DECL_CONTEXT for functions.
2631
26322007-12-13 Doug Kwan <dougkwan@google.com>
2633
2634 * lto.c (lto_read_pointer_reference_type_DIE): Handle optional name
2635 in pointer and reference types.
2636
26372007-12-13 Nathan Froyd <froydnj@codesourcery.com>
2638
2639 * lto-read.c (input_expr_operand): Use DECL_RESULT when reading a
2640 RESULT_DECL.
2641
26422007-12-13 Nathan Froyd <froydnj@codesourcery.com>
2643
2644 * lto.c (lto_read_array_type_DIE): Return the cached DIE if we've
2645 already read the DIE.
2646 (lto_get_body): New function, split out from...
2647 (lto_materialize_function): ...here. Call it.
2648 (lto_read_subroutine_type_subprogram_DIE): Call lto_get_body to
2649 determine DECL_EXTERNAL.
2650 * lto-symtab.c (lto_symtab_merge_decl): Merge the DECL_RESULTs of
2651 FUNCTION_DECLs when necessary. Use the type of the actual
2652 function definition if we are unable to easily merge types. Ignore
2653 spurious DECL_MODE mismatches on VAR_DECLs. Merge DECL_MODEs when
2654 necessary.
2655
26562007-12-13 Nathan Froyd <froydnj@codesourcery.com>
2657
2658 * lto-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
2659
26602007-12-12 Bill Maddox <maddox@google.com>
2661
2662 Revert
2663 2007-12-07 Bill Maddox <maddox@google.com>
2664
2665 * lto.c (lto_str_fd_init): New function.
2666 (lto_str_fd_close): New function.
2667 (lto_file_init): Call lto_str_fd_init.
2668 (lto_file_close): Call lto_str_fd_close.
2669 (lto_str_read): New function. Read debug string table.
2670 (lto_str_lookup): New function. Get string for debug
2671 string table offset.
2672 (lto_read_form): Recognize DW_FORM_strp.
2673 (lto_file_read): Invoke lto_str_read.
2674
2675 * lto-elf.c (lto_elf_file_open): Read raw section data
2676 for the .debug_str section, if present.
2677
2678 * lto.h (struct lto_str_fd_struct): New struct.
2679 (struct lto_file_struct): Added new field DEBUG_STR
2680 to hold the file descriptor for the debug string table.
2681
26822007-12-07 Bill Maddox <maddox@google.com>
2683
2684 * lto.c (lto_str_fd_init): New function.
2685 (lto_str_fd_close): New function.
2686 (lto_file_init): Call lto_str_fd_init.
2687 (lto_file_close): Call lto_str_fd_close.
2688 (lto_str_read): New function. Read debug string table.
2689 (lto_str_lookup): New function. Get string for debug
2690 string table offset.
2691 (lto_read_form): Recognize DW_FORM_strp.
2692 (lto_file_read): Invoke lto_str_read.
2693
2694 * lto-elf.c (lto_elf_file_open): Read raw section data
2695 for the .debug_str section, if present.
2696
2697 * lto.h (struct lto_str_fd_struct): New struct.
2698 (struct lto_file_struct): Added new field DEBUG_STR
2699 to hold the file descriptor for the debug string table.
2700
27012007-12-07 Nathan Froyd <froydnj@codesourcery.com>
2702
2703 * lto-read.c (input_cfg): Call init_empty_tree_cfg_for_function.
2704 Grow the basic_block_info and label_to_block_map vectors if
2705 necessary. Read in the block chain.
2706
27072007-12-06 Nathan Froyd <froydnj@codesourcery.com>
2708
2709 * lto.c (lto_read_DIE): Set TYPE_ALIAS_SET where necessary.
2710
27112007-12-06 Nathan Froyd <froydnj@codesourcery.com>
2712
2713 * lto.c (lto_read_form): Add DW_cl_address for DW_AT_const_value.
2714
27152007-12-06 Nathan Froyd <froydnj@codesourcery.com>
2716
2717 * lto-read.c (input_expr_operand): Don't check for MTAGs.
2718 (lto_read_body): Don't declare PROP_alias.
2719
27202007-12-06 Nathan Froyd <froydnj@codesourcery.com>
2721
2722 * lto-symtab.c (lto_symtab_merge_decl): Handle FUNCTION_DECLs without
2723 argument type information.
2724
27252007-12-03 Nathan Froyd <froydnj@codesourcery.com>
2726
2727 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Set
2728 TREE_THIS_VOLATILE if the associated type is a volatile type.
2729 (lto_materialize_function): Remove call to init_ssa_operands.
2730 * lto-read.c (input_expr_operand): Add SSA_NAME_VAR as a referenced
2731 variable when reading an SSA_NAME. Do the same when reading a
2732 RESULT_DECL, a RETURN_EXPR, or an MTAG.
2733 (input_cfg): Call init_ssa_operands.
2734 (input_ssa_names): Set the default def of an SSA_NAME if necessary.
2735 Move call to init_tree_ssa...
2736 (lto_read_body): ...here. Use push_cfun and pop_cfun. Call
2737 add_referenced_var on any variables referenced from the body of the
2738 function. Inform the rest of the compiler we are in SSA form and
2739 inform later passes about the current properties.
2740
27412007-11-30 Nathan Froyd <froydnj@codesourcery.com>
2742
2743 * lto.c (lto_materialize_function): Add FIXME.
2744
27452007-11-29 Nathan Froyd <froydnj@codesourcery.com>
2746
2747 * lto-lang.c (enum built_in_attribute): New enum.
2748 (flag_no_builtin, flag_no_nonansi_builtin, flag_isoc94, flag_isoc99,
2749 built_in_attributes): New variables.
2750 (def_builtin_1): New function.
2751 (lto_define_builtins): #define DEF_BUILTIN and include builtins.def.
2752
27532007-11-28 Nathan Froyd <froydnj@codesourcery.com>
2754
2755 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Set
2756 DECL_SOURCE_LOCATION for debugging purposes.
2757 (lto_read_member_DIE): Set DECL_SOURCE_LOCATION. If we have read a
2758 bitfield, use the type specified by the DIE for TREE_TYPE and defer
2759 laying out the decl until later.
2760 (lto_read_subroutine_type_subprogram_DIE): Compare the function's
2761 name with DECL_ASSEMBLER_NAME. Set DECL_SOURCE_LOCATION and
2762 TREE_ADDRESSABLE.
2763 * lto-read.c (input_expr_operand): Set TREE_ADDRESSABLE on the
2764 operand of an ADDR_EXPR.
2765 * lto-lang.c (enum lto_builtin_type): New enum.
2766 (builtin_type): New typedef.
2767 (builtin_types, string_type_node, const_string_type_node,
2768 wint_type_node, intmax_type_node, uintmax_type_node,
2769 signed_size_type_node): New variables.
2770 (def_fn_type, builtin_type_for_size, lto_define_builtins,
2771 lto_build_c_type_nodes): New functions.
2772 (lto_init): Initialize builtin types.
2773 (lto_set_decl_assembler_name): Let the target machine mangle the
2774 name if the decl is TREE_PUBLIC, otherwise uniquify it.
2775
27762007-11-21 Nathan Froyd <froydnj@codesourcery.com>
2777
2778 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Don't
2779 set TREE_ADDRESSABLE. Do set DECL_COMDAT. Set TREE_READONLY if
2780 the type is a constant type. Set the assembler name and inform
2781 the rest of the compiler about the new decl if the decl is not
2782 public.
2783 (lto_read_subroutine_type_subprogram_DIE): Don't check for equivalency
2784 of DECL_ASSEMBLER_NAME when determining if we have a builtin. Don't
2785 try to read in function bodies for functions that already have bodies.
2786 * lto-symtab.c (lto_same_type_p): Check for unbounded array
2787 equivalency.
2788 (lto_symtab_merge_decl): Don't merge decls that aren't TREE_PUBLIC.
2789 Check for whether we matched a builtin function type before calling
2790 lto_same_type_p on the generated type. Permit cases where the
2791 declaration of an array is unbounded, but the definition is bounded.
2792 Don't combine TREE_PUBLIC flags. Copy over DECL_SIZE and
2793 DECL_SIZE_UNIT if necessary.
2794
27952007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
2796
2797 * lto-read.c (input_expr_operand): Get types right
2798 for COMPLEX_CST.
2799
28002007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
2801
2802 * lto-read.c (make_new_block, input_cfg): Properly set
2803 n_basic_blocks.
2804
28052007-11-16 Nathan Froyd <froydnj@codesourcery.com>
2806
2807 * lto.c (lto_read_array_type_DIE): Handle DIEs with DW_AT_GNU_vector
2808 set properly by building a VECTOR_TYPE instead of an ARRAY_TYPE.
2809
28102007-11-16 Nathan Froyd <froydnj@codesourcery.com>
2811
2812 * lto.c (lto_read_base_type_DIE): Use make_bitfield_integer_type to
2813 construct the integer type for bitfields.
2814
28152007-11-16 Kenneth Zadeck <zadeck@naturalbridge.com>
2816
2817 * lto-read.c (data_in.current_node_has_loc): Removed.
2818 (input_line_info): Returns true if node needs line set.
2819 (set_line_info): Always sets line if called.
2820 (clear_line_info): Removed reference to current_node_needs_loc.
2821 (input_expr_operand): Keeps track locally if current node needs a loc.
2822 (input_local_var): Added code to handle DECL_INITIAL for
2823 static local vars. Only set loc if necessary.
2824
28252007-11-15 Nathan Froyd <froydnj@codesourcery.com>
2826
2827 * lto.c (lto_read_subroutine_type_subprogram_DIE): Fix thinko'd
2828 DECL_CONTEXT.
2829
28302007-11-15 Nathan Froyd <froydnj@codesourcery.com>
2831
2832 * lto.c: Include langhooks.h.
2833 (lto_find_integral_type): Rework logic to handle the case where
2834 got_byte_size is true, but the bitsize requested and that of the
2835 base_type doesn't match.
2836 (lto_read_variable_formal_parameter_constant_DIE): Only check for
2837 asm_name if we are creating a VAR_DECL.
2838 (lto_materialize_function): Set DECL_EXTERNAL if we can't find a
2839 definition.
2840 (lto_read_subroutine_type_subprogram_DIE): Check for a builtin
2841 function reference and use the builtin's decl if so. Set the
2842 DECL_CONTEXT of the RESULT_DECL for the function.
2843 * lto-lang.c (registered_builtin_fndecls): New variable.
2844 (lto_getdecls): Return it.
2845 (lto_builtin_function): Chain the new decl onto
2846 registered_builtin_fndecls.
2847
28482007-11-15 Kenneth Zadeck <zadeck@naturalbridge.com>
2849
2850 * lto-read.c (process_tree_flags, lto_static_init_local):
2851 Renamed to ADD_CLASS_EXPR_FLAG. ADD_CLASS_DECL_FLAG New Macro.
2852 (input_line_info, clear_line_info): Fixed new line number code.
2853 (input_expr_operand): Added type to SWITCH_EXPR.
2854 (lto_read_body): Properly initialized data_in.
2855 Clear line info when leaving.
2856
28572007-11-13 Diego Novillo <dnovillo@google.com>
2858
2859 * lto.c (lto_read_variable_formal_parameter_constant_DIE):
2860 Initialize ARTIFICIAL.
2861 (lto_read_subroutine_type_subprogram_DIE): Initialize
2862 SAVED_SCOPE.
2863 * lto-read.c (set_line_info): Remove ; from calls to
2864 LINEMAP_POSITION_FOR_COLUMN.
2865
28662007-11-13 Kenneth Zadeck <zadeck@naturalbridge.com>
2867
2868 * lto-read.c (input_type_ref): Renamed from get_type_ref.
2869 (input_expr_operand, input_local_var): Renamed get_type_ref to
2870 input_type_ref.
2871 (input_expr_operand): Get the types correct for
2872 vector-cst. Get SSA_NAME_DEF_STMT correct for return_exprs.
2873
28742007-11-13 Doug Kwan <dougkwan@google.com>
2875
2876 * lto-read.c (input_widest_uint_uleb128): New function.
2877 (input_tree_flags, process_tree_flags, input_line_info,
2878 input_expr_operand, input_local_var, input_phi, input_ssa_names):
2879 Change to use lto_flags_type and BITS_PER_LTO_FLAGS_TYPES instead of
2880 unsigned HOST_WIDE_INT and HOST_BITS_PER_WIDE_INT.
2881 (lto_static_init_local): Add code to assert that lto_flags_type is
2882 wide enough.
2883
28842007-11-13 Nathan Froyd <froydnj@codesourcery.com>
2885
2886 * lto.c (lto_read_array_type_DIE): Handle DW_AT_GNU_vector.
2887 (lto_read_subroutine_type_subprogram_DIE): Handle
2888 DW_AT_static_link and DW_AT_specification. Return the
2889 specification if present.
2890 (lto_read_base_type_DIE): Handle DW_ATE_complex_float.
2891
28922007-11-13 Nathan Froyd <froydnj@codesourcery.com>
2893
2894 * lto-lang.c: Include target.h.
2895 (registered_builtin_types): New variable.
2896 (lto_type_for_mode): Increase number of modes handled.
2897 (lto_builtin_function): Fix argument list and return the decl.
2898 (lto_register_builtin_type): New function.
2899 (lto_init): Initialize target builtins and language-independent
2900 nodes.
2901 (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define.
2902
29032007-11-13 Kenneth Zadeck <zadeck@naturalbridge.com>
2904
2905 * lto-read.c (input_expr_operand): Added code to properly handle
2906 index filed. Added new RANGE_EXPR case.
2907
29082007-11-11 Kenneth Zadeck <zadeck@naturalbridge.com>
2909
2910 * lto-read.c (ADD_FUNC_FLAG): Deleted macro.
2911 (data_in): Added current_node_has_loc field.
2912 (input_line_info, set_line_info, clear_line_info): Added a support
2913 for USE_MAPPED_LOCATION and not adding line numbers to nodes that
2914 did not have on on the source side.
2915 (input_expr_operand): Make sure that GIMPLE_MODIFY_STMTS get line
2916 numbers too.
2917
29182007-11-09 Doug Kwan <dougkwan@google.com>
2919
2920 * lto-read.c (input_expr_operand): Change type of operand 2 of
2921 BIT_FIELD_REF expression to be bitsizetype instead of sizetype.
2922
29232007-11-09 Nathan Froyd <froydnj@codesourcery.com>
2924
2925 * lto.c: Include lto-tree.h. Effect small spaces->tabs cleanup.
2926 (lto_read_variable_formal_parameter_constant_DIE): Transfer bits
2927 from a DW_AT_specification or DW_AT_abstract_origin attribute to
2928 the new decl we are creating. Move informing the middle end about
2929 the new decl to...
2930 (lto_main): ...here. Inform the middle end about global variables
2931 after we have read in all the input files.
2932 * lto-symtab.c (lto_symtab_merge_decl): We really do need to merge
2933 variables with internal linkage, so delete the check for internal
2934 linkage. Combine TREE_PUBLIC flags.
2935
29362007-11-08 Nathan Froyd <froydnj@codesourcery.com>
2937
2938 * lto.c (lto_read_subroutine_type_subprogram_DIE): Handle
2939 DW_AT_decl_line.
2940 * lto-symtab.c (lto_symtab_merge_decl): Handle redefinition of a
2941 builtin specially. Move check for attribute compatibility
2942 earlier.
2943
29442007-11-07 Nathan Froyd <froydnj@codesourcery.com>
2945
2946 * Make-lang.in (lto/lto.o): Depend on gt-lto-lto.h.
2947 * config-lang.in (gtfiles): Add lto.h and lto.c.
2948 * lto-elf.c: Include ggc.h.
2949 (lto_elf_file_open): Allocate elf_file from GC memory.
2950 * lto.c: Include tree-ssa-operands.h and gt-lto-lto.h
2951 (lto_info_fd_init): Allocate the die_cache and unmaterialized_fndecls
2952 in GC memory.
2953 (lto_info_fd_close): Free unmaterialized_fndecls from GC memory.
2954 (lto_file_close): Free file from GC memory.
2955 (lto_cache_store_DIE): Allocate the new entry in GC memory.
2956 (lto_read_member_DIE): Fix declaration.
2957 (lto_read_subroutine_type_subprogram_DIE): unmaterialized_fndecls lives
2958 in GC memory.
2959 (current_lto_file): New variable.
2960 (lto_main): Use it.
2961 (DWARF2_attr, DWARF2_abbrev, lto_die_ptr, DWARF2_CompUnit,
2962 lto_die_cache_entry): Move to...
2963 * lto.h: ...here and add GTY markers as appropriate. Delete forward
2964 declarations accordingly.
2965 (struct lto_file_struct): Declare.
2966 (lto_file_vtable): Use it instead of lto_file.
2967
29682007-11-06 Alon Dayan <alond@il.ibm.com>
2969 Kenneth Zadeck <zadeck@naturalbridge.com>
2970
2971 * lto-read.c (process_flags, lto_static_init_local):
2972 read flags of VAR_DECL and FUNCTION_DECL of size>1.
2973 change global array num_flags_for_code to flags_length_for_code.
2974 (set_line_info): Make decls work in USE_MAPPED_LOCATION mode.
2975
29762007-11-05 Nathan Froyd <froydnj@codesourcery.com>
2977
2978 * lto.c (lto_read_structure_union_class_type_DIE): Use proper record
2979 layout functions to compute information about the newly constructed
2980 type.
2981
29822007-11-02 Nathan Froyd <froydnj@codesourcery.com>
2983
2984 * lto-read.c (input_expr_operand): Change the LTO_return_expr1
2985 case to use DECL_RESULT if necessary.
2986
29872007-11-01 Kenneth Zadeck <zadeck@naturalbridge.com>
2988
2989 * lto-read.c (input_tree_list): Removed.
2990 (input_tree_flags): Added parameter to force flags no matter what
2991 tree code.
2992 (input_expr_operand): Added parameter to input_tree_flags.
2993 Added case for IDENTIFIER_NODE and TREE_LIST. Changed ASM to call
2994 input_expr_operand rather than input_tree_lists.
2995 (input_local_var): Use input_expr_operand to read attributes
2996 rather then input_tree_list.
2997 (input_phi, input_ssa_names): Added parameter to input_tree_flags.
2998
29992007-10-31 Nathan Froyd <froydnj@codesourcery.com>
3000
3001 * lto.c (lto_read_typedef_DIE): Fix comment typo.
3002 (lto_resolve_typedecl_ref): Fetch the referred-to type and build a fake
3003 TYPE_DECL for it.
3004 * lto-read.c (lto_read_body): Use correct sizes for calculating
3005 type_decls_offset and types_offset.
3006
30072007-10-30 Nathan Froyd <froydnj@codesourcery.com>
3008
3009 * lto-tree.h (union lang_tree_node): Change GTY description to chain
3010 with GENERIC_NEXT.
3011 * config-lang.in (gtfiles): Add lto-lang.c.
3012 * lto-lang.c: Include gt-lto-lto-lang.h.
3013 * Make-lang.in (lto/lto-lang.o): Add dependency on gt-lto-lto-lang.h
3014 (lto/lto-symtab.o): Depend on LTO_H instead of TREE_H.
3015 (lto/lto-read.o): Likewise.
3016
30172007-10-29 Kenneth Zadeck <zadeck@naturalbridge.com>
3018
3019 * lto-read.c (data_in): Added type_decls and current_col fields.
3020 (string_slot): New type to hold canonized file name.
3021 (hash_string_slot_node, eq_string_slot_node, canon_file_name,
3022 input_line_info, set_line_info, clear_line_info): New functions.
3023 (file_name_hash_table): New hash table.
3024 (input_local_var, input_labels, input_local_vars_index,
3025 input_local_var, input_local_vars, input_ssa_names): Reorganized parameters.
3026 (input_uleb128): Changed type of byte var.
3027 (input_expr_operand): Large number of changes to get line numbers
3028 correct. Added TYPE_DECL case.
3029 (input_globals): Added code to get TYPE_DECLs processed.
3030 (input_local_var): Added code to process line numbers and
3031 TREE_CHAIN and DECL_CONTEXT.
3032 (input_function, input_constructor): Added call to
3033 clear_line_number.
3034 (lto_static_init_local): Added code to get line numbers correct.
3035 (lto_read_body): Added code to get TYPE_DECLS read and to change
3036 parameters to the calls above that had their parms reorganized.
3037
3038
30392007-10-29 Nathan Froyd <froydnj@codesourcery.com>
3040
3041 * lto.h (lto_resolve_typedecl_ref): Declare.
3042 * lto.c (lto_resolve_typedecl_ref): New function.
3043
30442007-10-29 Mark Mitchell <mark@codesourcery.com>
3045 Nathan Froyd <froydnj@codesourcery.com>
3046
3047 * lto.c (lto_read_subroutine_type_subprogram_DIE): Read the child
3048 DIEs even if we find an abstract origin for this DIE.
3049
30502007-10-29 Nathan Froyd <froydnj@codesourcery.com>
3051
3052 * lto.c (lto_read_subroutine_type_subprogram_DIE): Build the
3053 RESULT_DECL slightly earlier. Only remember the decl for later
3054 if we successfully merge declarations.
3055
30562007-10-24 Kenneth Zadeck <zadeck@naturalbridge.com>
3057
3058 * lto-read.c (input_expr_operand): Give label_values the proper
3059 context and provide switch statements with a default type.
3060
30612007-10-23 Nathan Froyd <froydnj@codesourcery.com>
3062
3063 * lto-read.c (lto_read_body): Move call to init_ssa_operands...
3064 * lto.c (lto_materialize_function): ...to here.
3065
30662007-10-22 Nathan Froyd <froydnj@codesourcery.com>
3067
3068 * lto.h (struct lto_info_fd): Add field unmaterialized_fndecls.
3069 * lto.c (lto_info_fd_init): Initialize it.
3070 (lto_info_fd_close): Free it.
3071 (lto_materialize_function): New function.
3072 (lto_read_subroutine_type_subprogram_DIE): Save the result decl on
3073 unmaterialized_fndecls.
3074 (lto_file_read): Read in all the function bodies after we have read
3075 all of the DWARF info.
3076 * lto-read.c (lto_read_body): Call init_ssa_operands if we are
3077 reading a function body.
3078
30792007-10-20 Kenneth Zadeck <zadeck@naturalbridge.com>
3080
3081 * lto-read.c (input_tree_flags): Renamed from input_flags to be
3082 semetric with output_tree_flags. Added call to log flags.
3083 (process_tree_flags): Renamed from process_flags. Fixed a lot of
3084 type issues to make everything consistent with flags being
3085 unsigned HOST_WIDE_INTS.
3086 (input_expr_operand): Added call to
3087 recompute_tree_invariant_for_addr_expr.
3088 (input_local_var): Added debugging for tree_chains. Now calls
3089 input_tree_flags.
3090 (input_phi): Made flags unsigned HOST_WIDE_INT.
3091 (input_ssa_names): Now calls input_tree_flags.
3092 (lto_read_body): Now sets cfun.
3093 (lto_read_function_body): Now sets current_function_pointer.
3094
30952007-10-19 Nathan Froyd <froydnj@codesourcery.com>
3096
3097 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Check
3098 definitively whether SPECIFICATION or ABSTRACT_ORIGIN exist before
3099 inspecting fields within.
3100 (lto_read_DIE_at_ptr): Delete check for null result; let callers
3101 handle this appropriately.
3102
31032007-10-19 Nathan Froyd <froydnj@codesourcery.com>
3104
3105 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Handle
3106 DW_AT_abstract_origin properly. Ensure that we're not dealing with
3107 both DW_AT_abstract_origin and DW_AT_specification.
3108 (lto_read_subroutine_type_subprogram_DIE): Handle
3109 DW_AT_abstract_origin.
3110 (lto_read_DIE): Use lto_read_only_for_child_DIEs for labels.
3111 (lto_read_DIE_at_ptr): Define as static to match declaration.
3112 Lookup the PTR in the cache before reading it from the file.
3113 (lto_resolve_var_ref): Adjust accordingly.
3114 (lto_resolve_fn_ref): Adjust accordingly. Tweak comment.
3115 (lto_resolve_field_ref): Adjust accordingly. Tweak comment.
3116
31172007-10-19 Nathan Froyd <froydnj@codesourcery.com>
3118
3119 * lto.c (lto_read_DIE_at_ptr): New function.
3120 (lto_resolve_var_ref): Use it.
3121 (lto_resolve_fn_ref): Use it.
3122 (lto_resolve_field_ref): Use it.
3123 (lto_read_variable_formal_parameter_constant_DIE): Follow
3124 DW_AT_specification and return the associated decl when appropriate.
3125
31262007-10-18 Nathan Froyd <froydnj@codesourcery.com>
3127
3128 * lto-lang.c (lto_type_for_mode): Move after lto_type_for_size.
3129 Implement for scalar integer modes.
3130 (lto_init): Initialize size_type_node.
3131
31322007-10-18 Kenneth Zadeck <zadeck@naturalbridge.com>
3133
3134 * lto-read.c (input_expr_operand): Remove ssa name asserts.
3135 (input_local_var): Add chaining for params.
3136 (input_ssa_names): Add cfun parameter.
3137 (input_function): Remove unnecessary else.
3138
31392007-10-17 Nathan Froyd <froydnj@codesourcery.com>
3140
3141 * lto.c (lto_read_only_for_child_DIEs): Mark die parameter as unused.
3142 (lto_resolve_var_ref): Use proper types.
3143 (lto_resolve_fn_ref): Likewise.
3144 (lto_resolve_field_ref): Likewise.
3145
31462007-10-17 Nathan Froyd <froydnj@codesourcery.com>
3147
3148 * lto-read.c (input_expr_operand): Remove case.
3149
31502007-10-17 Nathan Froyd <froydnj@codesourcery.com>
3151
3152 * lto.c (lto_read_only_for_child_DIEs): New function.
3153 (lto_read_DIE): Use it for lexical_block and inlined_subroutine DIEs.
3154 * lto-elf.c (lto_elf_map_lto_section): Remove.
3155 (lto_elf_file_vtable): Use lto_elf_map_optional_lto_section instead.
3156 * lto-read.c (input_expr_operand): Assert that we never read a NULL
3157 SSA_NAME. Add missing case for mechanical codes.
3158 (input_cfg): Use basic_block_info_for_function instead of
3159 basic_block_info.
3160
31612007-10-16 Kenneth Zadeck <zadeck@naturalbridge.com>
3162
3163 * lto-read.c (input_sleb128, input_integer): Use proper casts.
3164 (input_list): Renamed input_tree_list and modified to follow same
3165 protocol as lto-function-out.c:output_tree_list.
3166 (input_expr_operand): Make asm operands use input_tree_list.
3167 (input_local_var): Now uses input_tree_list.
3168 (lto_read_body): Change placement for setting context of debug_labels.
3169
3170
31712007-10-16 Kenneth Zadeck <zadeck@naturalbridge.com>
3172
3173 * lto-read.c (input_real): Output debugging in proper order.
3174 (input_integer): Compute bit lengths properly.
3175 (input_list): Clean up declaration.
3176 (input_expr_operand): Change calls to input_real to match fix.
3177 Make reading of LTO_bit_field_ref1 match output.
3178 (input_local_var): Make reading of attributes match what is being
3179 written.
3180 (dump_debug_stream): Also print char in hex.
3181 (debug_out_fun): Fix signed unsigned mismatch.
3182
31832007-10-10 Nathan Froyd <froydnj@codesourcery.com>
3184
3185 * lto.c (lto_read_form): Handle DW_AT_MIPS_linkage_name and
3186 DW_AT_GNU_vector specially, as they are not contiguous with the
3187 specified set of attribute names. Use class_mask to check for
3188 errors at the end of the function
3189 (lto_resolve_var_ref): Read the DIE if it is not cached.
3190 (lto_resolve_fn_ref): Likewise.
3191 (lto_resolve_field_ref): Likewise.
3192
31932007-10-05 Nathan Froyd <froydnj@codesourcery.com>
3194
3195 * lto.c: Include dwarf2out.h.
3196 (lto_cache_store_DIE): Assert that we never change the value.
3197 (LTO_BEGIN_READ_ATTRS): Print an informative error message.
3198 (lto_read_compile_unit_DIE): Handle DW_AT_entry_pc.
3199 (lto_read_array_type_DIE): Don't error on ndims == 0; build a
3200 sensible type instead.
3201 (lto_read_structure_union_class_type_DIE): Store the newly
3202 created type prior to reading the members of the structure to
3203 avoid infinite recursion. Avoid computing types and alignments
3204 for structures whose sizes are unknown.
3205 (lto_read_variable_formal_parameter_const): Handle DW_AT_artificial
3206 and set DECL_ARTIFICIAL accordingly. Ignore DW_AT_abstract_origin,
3207 DW_AT_const_value, and DW_AT_specification.
3208 (lto_read_subroutine_type_subprogram_DIE): Handle DW_AT_declaration.
3209 Return early if we have already constructed the function type.
3210 (lto_read_typedef_DIE): Check to see if the type has been cached
3211 already. Cache the type before reading any children.
3212 (lto_read_const_volatile_restrict_type_DIE): Handle DW_AT_name.
3213 (lto_read_DIE): Unset context->skip_non_parameters around reading
3214 the DIE.
3215 (lto_resolve_fn_ref): Delete trailing whitespace.
3216
32172007-09-11 Kenneth Zadeck <zadeck@naturalbridge.com>
3218
3219 * lto-read.c (input_expr_operand): Added type for STRING_CST.
3220
32212007-09-10 Nathan Froyd <froydnj@codesourcery.com>
3222
3223 * lto-read.c (lto_read): Set the type of the newly created CALL_EXPR.
3224
32252007-09-07 Nathan Froyd <froydnj@codesourcery.com>
3226
3227 * lto-lang.c (signed_and_unsigned_types): New variable.
3228 (lto_type_for_size): Consult signed_and_unsigned_types to find
3229 an approprite type, creating it if necessary.
3230 (lto_set_decl_assembler_name): Add actual method body.
3231
32322007-09-06 Jim Blandy <jimb@codesourcery.com>
3233
3234 * lto.c (lto_read_variable_formal_parameter_constant_DIE): If we
3235 can't find a var init for this variable, leave its DECL_INITIAL.
3236 * lto-elf.c (lto_elf_map_optional_lto_section): Renamed from
3237 lto_elf_map_fn_body.
3238 (lto_map_lto_section): New function.
3239 (lto_elf_file_vtable): Use lto_elf_map_lto_section for function
3240 bodies, and lto_elf_map_optional_lto_section for variable
3241 initializers.
3242 (lto_elf_find_section_data): Quietly return NULL if the section is
3243 missing.
3244 (lto_elf_file_open): Check for a NULL from lto_elf_find_section_data.
3245
3246 * lto-elf.c (lto_elf_find_section_data): Remove dead code.
3247
3248 * lto-read.c (lto_read_body): Doc fix.
3249
32502007-08-29 Kenneth Zadeck <zadeck@naturalbridge.com>
3251
3252 * lto-read.c (fun_in): Renamed to data_in.
3253 (input_expr_operand, input_local_var, input_string_internal,
3254 input_string, input_real, input_list, get_label_decl,
3255 get_type_ref, input_expr_operand, input_globals, input_labels,
3256 input_local_vars_index, input_local_var, input_local_vars,
3257 input_cfg, input_phi, input_ssa_names, input_bb, ): Renamed fun_in to data_in.
3258 (input_constructor): New function.
3259 (lto_read_function_body): Renamed to lto_read_body and generalized
3260 to handle both functions and constructors.
3261 (lto_read_function_body, lto_read_var_init): New function.
3262
3263
32642007-08-28 Kenneth Zadeck <zadeck@naturalbridge.com>
3265
3266 * lto-read.c (input_expr_operand): Assert that there really is a
3267 FUNCTION_DECL.
3268 (input_globals): Removed checks on 0 section.
3269
32702007-08-28 Kenneth Zadeck <zadeck@naturalbridge.com>
3271
3272 * lto-read.c (fun_in): Added local_decls_index and
3273 local_decls_index_d.
3274 (input_expr_operand): Changed inputting of PARM_DECLs and VAR_DECLs.
3275 (input_globals): Enabled code to handle FIELD_DECLs.
3276 (input_local_vars_index, input_local_vars): New function.
3277 (input_local_var): Changed to allow locals to be input randomly.
3278 (lto_read_function_body): Added code to input the
3279 local_decls_index and to free various structures.
3280
32812007-08-17 Jim Blandy <jimb@codesourcery.com>
3282
3283 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Remove
3284 ATTRIBUTE_UNUSED from 'die' formal.
3285
3286 Use enum LTO_tags where appropriate, instead of 'unsigned int'.
3287 * lto-read.c (input_record_start): Fix return type, type of 'tag'.
3288 (input_list): Fix type of 'tag'.
3289 (input_expr_operand): Fix type of 'tag' argument. Update
3290 declaration. Fix type of 'ctag'. Add default case to switch,
3291 since the type of the switched value is now an enum.
3292 (input_local_vars): Fix type of 'tag'.
3293 (input_bb): Fix type of 'tag' argument.
3294 (input_function): Fix type of 'tag' argument.
3295
32962007-08-16 Jim Blandy <jimb@codesourcery.com>
3297
3298 * lto.c (lto_read_member_DIE): Record the tree we create in
3299 fd->die_cache. (Our 'die' argument is no longer unused.)
3300 (lto_resolve_field_ref): New function.
3301 * lto.h (lto_resolve_field_ref): New declaration.
3302
33032007-08-15 Jim Blandy <jimb@codesourcery.com>
3304
3305 * lto-read.c (lto_read_var_init): Mark arguments as unused.
3306
33072007-08-07 Jim Blandy <jimb@codesourcery.com>
3308
3309 * lto.c (lto_read_form): Complete attr_classes table.
3310 (DWARF2_form_data): Doc fix.
3311
33122007-08-05 Mark Mitchell <mark@codesourcery.com>
3313
3314 * lto.h (lto_file_vtable): Remove read_var_init. Add map_var_init
3315 and unmap_var_init.
3316 (lto_read_var_init): Declare.
3317 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Use new
3318 interface for reading variable initializers.
3319 * lto-elf.c (lto_elf_read_var_init): Remove.
3320 (lto_elf_file_vtable): Update initializer.
3321 (lto_elf_read_var_init): Add comment about unused-ness.
3322 * lto-read.c (lto_read_var_init): New.
3323
3324 * lto.c (lto_read_form): Add entry for DW_AT_inline.
3325
33262007-08-02 Kenneth Zadeck <zadeck@naturalbridge.com>
3327
3328 * lto-read.c (lto_read_function_body): Moved declaration of fn
3329 outside of ifdef.
3330
33312007-08-01 Kenneth Zadeck <zadeck@naturalbridge.com>
3332
3333 * lto-read.c (input_uleb128, input_string_internal, input_real,
3334 input_integer, input_record_start, input_list, get_type_ref,
3335 input_flags, input_expr_operand, input_expr_operand,
3336 input_expr_operand, input_local_vars, input_cfg, input_phi,
3337 input_ssa_names, input_bb, input_function): Added semicolons.
3338
3339
33402007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
3341
3342 * lto-read.c (input_globals): Remove debugging.
3343 (input_function): Set DECL_ARGUMENTS.
3344
3345
33462007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
3347
3348 * lto-read.c (input_expr_operand): Fixed code for COND_EXEC,
3349 RETURN_EXPR, MODIFY_EXPR and processing of flags.
3350 (input_phi): Made work with operands other than SSA_NAMES and
3351 fixed processing of flags.
3352 (input_ssa_names): Initialize SSA_NAME_DEF_STMT to empty stmt.
3353 (input_flags): New function.
3354 * lto-lang.c (lto_init): Changed state of in_lto_p.
3355
3356
33572007-07-24 Mark Mitchell <mark@codesourcery.com>
3358
3359 * lto-tree.h (lto_varargs_cookie): Remove.
3360 * lto.c (lto_context): Add last_parm_type, varargs_p, skip_all,
3361 skip_non_parameters, skip_parameters.
3362 (lto_varargs_cookie): Remove.
3363 (lto_read_variable_formal_parameter_constant_DIE): Keep track of
3364 parameter types.
3365 (lto_read_abbrev): New function.
3366 (lto_read_subroutine_type_subprogram_DIE): Make two passes over
3367 child DIEs.
3368 (lto_read_unspecified_parameters_DIE): Set context->varargs_p.
3369 (lto_read_DIE): Use lto_read_abbrev. Honor skip_* flags.
3370 (lto_file_read): Initialize new context fields.
3371 * lto-lang.c (lto_type_for_mode): Return NULL_TREE.
3372 (lto_unsigned_type): Remove.
3373 (lto_signed_type): Likewise.
3374 (lto_signed_or_unsigned_type): Likewise.
3375 (lto_init): Do not create lto_varargs_cookie.
3376 (LANG_HOOKS_UNSIGNED_TYPE): Do not define.
3377 (LANG_HOOKS_SIGNED_TYPE): Likewise.
3378 (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Likewise.
3379
33802007-07-19 Jan Hubicka <jh@suse.cz>
3381
3382 * lto-read.c (lto_read_function_body): Produce empty scope block
3383 to avoid crash.
3384
33852007-07-18 Mark Mitchell <mark@codesourcery.com>
3386
3387 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Do not
3388 process local variables.
3389 (lto_read_subroutine_type_subprogram_DIE): Read child DIEs.
3390
33912007-07-13 Kenneth Zadeck <zadeck@naturalbridge.com>
3392
3393 * lto-read.c (input_list, input_expr_operand): Added struct
3394 function parameter.
3395 (init_cfg, finalize_cfg): Removed function.
3396 (input_expr_operand): Added SSA_NAME and GIMPLE_MODIFY_STMT cases.
3397 (input_labels, input_local_vars): Now takes input_block parameter rather than
3398 synthsyzing it.
3399 (input_cfg, input_phi, input_ssa_names): New functions.
3400 (input_bb): Now passes in input_blocks. Does not construct cfg
3401 and processes the list of phi functions.
3402 (input_function): Now builds both the cfg and ssa_names table.
3403 (lto_read_function_body): Processes new header fields to construct
3404 streams for the ssa_names and cfg and their debugging.
3405 * lto/lto-lang.c (lto_init): Set in_lto_p.
3406
3407
34082007-06-28 Mark Mitchell <mark@codesourcery.com>
3409
3410 * lto.h (lto_file_vtable): Add read_var_init.
3411 * lto.c (lto_read_variable_formal_parameter_constant_DIE): Read
3412 initializers.
3413 (lto_main): Remove bogus asserts.
3414 * lto-elf.c (tm.h): Include it.
3415 (libiberty.y): Likewise.
3416 (lto_elf_file): Add strtab and symtab. Rename
3417 string_table_section_index to sec_strtab.
3418 (lto_elf_file_vtable): Add lto_elf_read_var_init.
3419 (lto_elf_get_shdr): New function.
3420 (lto_elf_free_shdr): Likewise.
3421 (lto_elf_find_section_data): Use them.
3422 (lto_elf_read_symtab): New function.
3423 (lto_elf_lookup_sym): Likewise.
3424 (lto_elf_free_sym): Likewise.
3425 (lto_elf_file_open): Tidy. Call lto_elf_read_symtab.
3426 (lto_elf_built_init): New function.
3427 (lto_elf_read_var_init): Likewise.
3428 * Make-lang.in (lto/lto-elf.o): Depend on $(TM_H).
3429
34302007-06-26 Kenneth Zadeck <zadeck@naturalbridge.com>
3431
3432 * lto-read (make_new_block): Initialize the stmt_list.
3433 (lto_static_init_local): Add debugging for missing codes.
3434
34352007-06-26 Mark Mitchell <mark@codesourcery.com>
3436
3437 * lto.c (lto_read_subroutine_type_subprogram_DIE): Handle
3438 unprototyped functions.
3439
34402007-06-23 Mark Mitchell <mark@codesourcery.com>
3441
3442 * lto.c (lto_read_variable_formal_parameter_constant_DIE):
3443 Handle DW_AT_MIPS_linkage_name.
3444 (lto_read_subroutine_type_subprogram): Likewise. Correct
3445 compilation errors.
3446 (lto_main): Remove incorrect assertions.
3447 * lto-symbtab.c: Build function types out of TREE_LISTs.
3448
3449 * lto-elf.c (<libelf>): Check for HAVE_LIBELF_H.
3450
3451 * Make-lang.in (LTO_OBJS): Depend on attribs.o.
3452
34532007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com>
3454
3455 * lto/lto-tree.h (lang_decl, lang_type, language_function): Added
3456 dummy since ggc does not like empty structs.
3457 * lto/lto-elf.c (libelf.h): Changed to libelf/libelf.h.
3458 * lto/lto-read.c (ADD_CLASS_FLAG, ADD_EXPR_FLAG): Changed
3459 expr->common to expr->base.
3460 (make_new_block): Moved stmt_list to proper place.
3461
3462
34632007-03-14 Robert Kennedy <jimbob@google.com>
3464
3465 Eliminate use of lang_hooks.set_decl_assembler_name from LTO
3466 * lto.c (lto_read_subroutine_type_subprogram_DIE) Get DECL
3467 assembler name from DWARF.
3468 * lto-lang.c (lto_set_decl_assembler_name) New function.
3469
34702006-09-10 Mark Mitchell <mark@codesourcery.com>
3471
3472 * lto.h (lto_file_vtable): New structure.
3473 (lto_file): Add vtable pointer.
3474 (lto_file_init): Add vtable paramter.
3475 (lto_read_function_body): New function.
3476 (lto_symtab_merge_fn): New function.
3477 * lto.c (lto_file_init): Add vtable parameter.
3478 (lto_read_form): Fill in entries for DW_AT_prototyped,
3479 DW_AT_frame_base.
3480 (lto_read_subroutine_type_subprogram_DIE): New function.
3481 (lto_read_DIE): Fill in entries for DW_TAG_subroutine_type and
3482 DW_TAG_subprogram.
3483 * lto-elf.c (lto_elf_vile_vtable): New variable.
3484 (lto_elf_file_open): Pass it to lto_file_init.
3485 (lto_elf_map_fn_body): New function.
3486 (lto_elf_unmap_fn_body): Likewise.
3487 * lto-read.c: New file.
3488 * lto-symtab.c (lto_symtab_merge_fn): New function.
3489 * lto-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define to
3490 tree_rest_of_compilation.
3491 * Make-lang.in (LTO_OBJS): Add lto-read.o
3492 (lto-read.o): New target.
3493
34942006-09-03 Mark Mitchell <mark@codesourcery.com>
3495
3496 * lto.c (<inttypes.h>): Don't include it.
3497 (lto_context): Don't typedef it.
3498 (lto_resolve_reference): New function.
3499 (lto_read_form): Use it.
3500 (lto_resolve_type_ref): New function.
3501 (lto_resolve_var_ref): Likewise.
3502 (lto_resolve_fn_ref): Likewise.
3503 * lto.h (<inttypes.h>): Include it.
3504 (lto_context): New type.
3505 (lto_ref): New structure.
3506 (lto_resolve_type_ref): Declare.
3507 (lto_resolve_var_ref): Likewise.
3508 (lto_resolve_fn_ref): Likewise.
3509
35102006-08-18 Mark Mitchell <mark@codesourcery.com>
3511
3512 * lang-specs.h: New file.
3513
35142006-08-14 Mark Mitchell <mark@codesourcery.com>
3515
3516 * lto.c (lto_info_fd_init): Allocate the DIE cache.
3517 (lto_info_fd_close): Deallocate it.
3518 (lto_die_cache_entry): New structure.
3519 (lto_cache_hash): New function.
3520 (lto_cache_eq): Likewise.
3521 (lto_cache_store_DIE): Likewise.
3522 (lto_cache_lookup_DIE): Likewise.
3523 (lto_read_referenced_type_DIE): Use the cache.
3524 (lto_read_pointer_type_DIE): Robustify.
3525 (lto_read_DIE): Use the cache.
3526 * lto.h (hashtab.h): Include.
3527 (lto_info_fd): Add DIE cache.
3528 * Make-lang.in (LTO_H): New variable.
3529 (lto/lto-lang.o): Use LTO_H.
3530 (lto/lto-elf.o): Likewise.
3531 (lto/lto-symtab.o): Likewise.
3532
35332006-07-09 Mark Mitchell <mark@codesourcery.com>
3534
3535 * lto.c (lto_abi_mismatch_error): New function.
3536 (lto_abbrev_read): Initialize num_abbrevs.
3537 (lto_read_form): Specify allowed form classes for
3538 DW_AT_declaration. Adjust for change to lto_set_cu_context.
3539 (lto_read_variable_formal_parameter_constant_DIE): Handle
3540 DW_AT_declaration. Call lto_symtab_merge_var.
3541 (lto_read_pointer_type_DIE): New function.
3542 (lto_read_base_type_DIE): Use build_nonstandard_integer_type. Do
3543 not creat TYPE_DECLs for types that already have them.
3544 (lto_read_DIE): Add lto_read_pointer_type_DIE.
3545 (lto_set_cu_context): Make cu_start point to the header, not the
3546 first DIE.
3547 (lto_file_read): Adjust for change to lto_set_cu_context.
3548 * Make-lang.in (LTO_OBJS): Add lto-symtab.o.
3549 (lto/lto-symtab.o): New rule.
3550 * lto-tree.h (lang_identifier): Add decl field.
3551 (LANG_IDENTIFIER_CAST): New macro.
3552 (LTO_IDENTIFIER_DECL): Likewise.
3553 (lto_symtab_merge_var): Declare.
3554 * lto-symtab.c: New file.
3555
35562006-07-02 Daniel Berlin <dberlin@dberlin.org>
3557
3558 * lto.c (lto_context): Add current_cu and info_fd members.
3559 (DWARF2_CompUnit): New structure.
3560 (lto_read_DIE): Take lto_info_fd *.
3561 (lto_read_child_DIEs): Ditto.
3562 (lto_file_corrupt_error): Constify argument.
3563 (lto_set_cu_context): New function
3564 (lto_info_fd_init): Ditto.
3565 (lto_info_fd_close): Ditto.
3566 (lto_file_init): Use lto_info_fd_init.
3567 (lto_file_close): Use lto_info_fd_close.
3568 (lto_read_initial_length): Pass in pointer to header size.
3569 (lto_read_comp_unit_header): Correct cu_length to
3570 real length from beginning of header. Take lto_info_fd * as
3571 argument.
3572 (find_cu_for_offset): New function.
3573 (lto_read_form): Change first argument to lto_info_fd *.
3574 Add FORM_CONTEXT argument.
3575 Handle DW_FORM_ref_addr.
3576 (lto_read_tag_DIE): Change first argument to lto_info_fd *.
3577 (LTO_BEGIN_READ_ATTRS_UNCHECKED): Save old context.
3578 Swap contexts if necessary for form.
3579 (LTO_BEGIN_READ_ATTRS): Cast fd to right type for
3580 lto_file_corrupt_error.
3581 (LTO_END_READ_ATTRS): Swap contexts back if it had changed.
3582 (lto_read_referenced_type_DIE): Change first argument to
3583 lto_info_fd *. Access lto_fd fields through base pointer.
3584 (lto_read_compile_unit_DIE): Change first argument to an
3585 lto_info_fd *.
3586 (lto_read_variable_formal_parameter_constant_DIE): Ditto.
3587 (lto_read_base_type_DIE): Ditto.
3588 (lto_read_child_DIEs): Ditto.
3589 (lto_read_DIE): Ditto. Change type of function pointer.
3590 (lto_info_read): New function.
3591 (lto_set_cu_context): Ditto.
3592 (lto_file_read): Use lto_info_read, walk resulting CU's
3593 (lto_main): Update for lto_info_fd change.
3594 * lto-elf.c (lto_elf_file_open): Cast lto_info_fd to lto_fd where
3595 necessary.
3596 * lto.h (DWARF2_CompUnit): New structure.
3597 (lto_info_fd): Ditto.
3598 (lto_file): Change debug_info to be an lto_info_fd.
3599
36002006-06-25 Mark Mitchell <mark@codesourcery.com>
3601
3602 * lto.c (toplev.h): Include it.
3603 (dwarf2.h): Likewise.
3604 (tree.h): Likewise.
3605 (tm.h): Likewise.
3606 (cgraph.h): Likewise.
3607 (ggc.h): Likewise.
3608 (inttypes.h): Likewise.
3609 (DWARF2_attr): New type.
3610 (DWARF2_abbrev): Likewise.
3611 (DWARF2_class): Likewise.
3612 (DWARF2_form_data): Likewise.
3613 (lto_context): Likewise.
3614 (lto_fd_init): New function.
3615 (lto_abbrev_fd_init): Likewise.
3616 (lto_abbrev_fd_close): Likewise.
3617 (lto_file_init): Use them.
3618 (lto_file_close): New function.
3619 (lto_file_corrupt_error): Likewise.
3620 (LTO_CHECK_INT_VAL): New macro.
3621 (lto_check_size_t_val): New function.
3622 (lto_check_int_val): Likewise.
3623 (LTO_READ_TYPE): New macro.
3624 (lto_read_ubyte): New function.
3625 (lto_read_uhalf): Likewise.
3626 (lto_read_uword): Likewise.
3627 (lto_read_uleb128): Likewise.
3628 (lto_read_initial_length): Likewise.
3629 (lto_abbrev_read_attrs): Likewise.
3630 (lto_abbrev_read): Likewise.
3631 (lto_abbrev_lookup): Likewise.
3632 (lto_read_section_offset): Likewise.
3633 (lto_read_comp_unit_header): Likewise.
3634 (lto_read_form): Likewise.
3635 (LTO_BEGIN_READ_ATTRS_UNCHECKED): New macro.
3636 (LTO_BEGIN_READ_ATTRS): Likewise.
3637 (LTO_END_READ_ATTRS): Likewise.
3638 (lto_unsupported_attr_error): New function.
3639 (lto_get_identifier): Likewise.
3640 (lto_read_referenced_type_DIE): Likewise.
3641 (lto_read_compile_unit_DIE): Likewise.
3642 (lto_read_variable_formal_parameter_constant_DIE): Likewise.
3643 (lto_read_base_type_DIE): Likewise.
3644 (lto_read_DIE): Likewise.
3645 (lto_read_child_DIEs): Likewise.
3646 (lto_file_read): Read DIEs.
3647 (lto_main): Ask middle end to emit entities.
3648 * lto-tree.h (lang_identifier): Inherit from tree_identifier.
3649 * lto-elf.c (lto_elf_file_open): Adjust for interface changes.
3650 (lto_elf_file_close): Likewise.
3651 * lto.h (lto_file): Declare.
3652 (DWARF2_abbrev): Likewise.
3653 (lto_fd): New type.
3654 (lto_abbrev_fd): Likewise.
3655 (lto_file): Use new types.
3656 (lto_file_close): Declare.
3657 * lto-lang.c (lto_init): Always use unit-at-a-time mode.
3658
36592006-06-18 Mark Mitchell <mark@codesourcery.com>
3660
3661 * lto.h: New file.
3662 * lto.c: New file.
3663 * lto-elf.c: New file.
3664 * lto-lang.c (flags.h): Include it.
3665 (lto.h): Likewise.
3666 (lto_init): New function.
3667 (lto_write_globals): Remove.
3668 (LANG_HOOKS_WRITE_GLOBALS): Define to lhd_do_nothing.
3669 (LANG_HOOKS_INIT): Define.
3670 (LANG_HOOKS_PARSE_FILE): Likewise.
3671 * Make-lang.in (LTO_OBJS): Add lto.o and lto-elf.o.
3672 (LTO_EXE): Link with libelf.
3673 (lto/lto-lang.o): Update dependencies.
3674 (lto/lto.o): New target.
3675 (lto/lto-elf.o): Likewise.
3676
36772006-06-12 Mark Mitchell <mark@codesourcery.com>
3678
3679 * config-lang.in: New file.
3680 * Make-lang.in: Likewise.
3681 * lto-tree.h: Likewise.
3682 * lto-lang.c: Likewise.
3683