OSDN Git Service

4cb66feedad8876b8346be0b7290158a620d0da7
[pf3gnuchains/gcc-fork.git] / gcc / lto / ChangeLog
1 2011-01-11  Jan Hubicka  <jh@suse.cz>
2
3         PR lto/45721
4         PR lto/45375
5         * lto.c (partition_cgraph_node_p, partition_varpool_node_p): Weakrefs are
6         not partitioned.
7
8 2010-12-22  Nathan Froyd  <froydnj@codesourcery.com>
9
10         * lto-lang.c (handle_nonnull_attribute, handle_sentinel_attribute):
11         Use prototype_p.
12
13 2010-12-06  Richard Guenther  <rguenther@suse.de>
14
15         PR lto/46796
16         * lto-lang.c (lto_init): Give names to basic types.
17
18 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
19
20         * lto-object.c: Don't include toplev.h.
21         * Make-lang.in (lto/lto-object.o): Don't depend on toplev.h.
22
23 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
24
25         * Make-lang.in (lto/lto-object.o): Depend on toplev.h instead of
26         $(TOPLEV_H).
27
28 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
29
30         * lto-endian.h: Delete.
31         * lto-object.c: Don't include "libiberty.h".
32         (O_BINARY): Don't define.
33         * lto.c: Don't include "libiberty.h" or <sys/mman.h>.
34         (O_BINARY): Don't define.
35
36 2010-11-23  Richard Guenther  <rguenther@suse.de>
37
38         * lto.c (read_cgraph_and_symbols): Remove newline from diagnostic.
39
40 2010-11-23  Richard Guenther  <rguenther@suse.de>
41
42         PR lto/46605
43         * lto.c (read_cgraph_and_symbols): Bail out after errors.
44
45 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
46
47         * lto.c (lto_main): Take no arguments.
48         * lto.h (lto_main): Update prototype.
49
50 2010-11-16  Ian Lance Taylor  <iant@google.com>
51
52         * lto-object.c (lto_obj_file_open): Call
53         simple_object_attributes_merge rather than
54         simple_object_attributes_compare.
55
56 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
57
58         * Make-lang.in (lto/lto.o): Use $(OPTS_H).
59         * lto-lang.c (lto_handle_option): Take location_t parameter.
60
61 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
62
63         * lto.c (lto_resolution_read): Start diagnostics with lowercase
64         letters and remove trailing '.'.
65         (lto_file_finalize): Start diagnostic with a lowercase letter.
66
67 2010-11-02  Ian Lance Taylor  <iant@google.com>
68
69         * lto-object.c: New file.
70         * lto-elf.c: Remove file.
71         * lto-macho.c: Remove file.
72         * lto-macho.h: Remove file.
73         * lto-coff.c: Remove file.
74         * lto-coff.h: Remove file.
75         * Make-lang.in (LTO_OBJS): Change lto/$(LTO_BINARY_READER).o to
76         lto/lto-object.o.
77         ($(LTO_EXE)): Remove $(LTO_USE_LIBELF)
78         (lto/lto-objfile.o): New target.
79         (lto/lto-elf.o, lto/lto-coff.o, lto/lto-macho.o): Remove targets.
80         (lto/lto.o): Remove $(LIBIBERTY_H).
81
82 2010-10-22  Jan Hubicka  <jh@suse.cz>
83
84         * lto.c (add_cgraph_node_to_partition,
85         add_varpool_node_to_partition): Add debug info.
86         (lto_1_to_1_map, lto_balanced_map): Do not re-add already
87         partitioned nodes.
88         (do_whole_program_analysis): Set function flags before dumping.
89
90 2010-10-22  Richard Guenther  <rguenther@suse.de>
91
92         * lto.c (lto_fixup_type): Fixup TYPE_CANONICAL again, via
93         the new gimple_register_canonical_type.
94
95 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
96
97         PR bootstrap/45954
98         * config-lang.in (boot_language): Set to $enable_lto.
99
100 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
101
102         PR lto/45638
103         * Make-lang.in (check-lto): New dummy target.
104
105 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
106
107         * lto-elf.c (SHN_XINDEX): Define if not already defined.
108
109 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
110
111         * lto-lang.c (lto_init_options): Change to
112         lto_init_options_struct.  Update parameters.
113         (LANG_HOOKS_INIT_OPTIONS): Don't define.
114         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
115
116 2010-10-06  Jan Hubicka  <jh@suse.cz>
117
118         * lto.c (lto_balanced_map): Fix accounting of program size.
119
120 2010-10-06  Jan Hubicka  <jh@suse.cz>
121
122         * lto.c (lto_balanced_map): Do not produce empty partitions.
123
124 2010-10-06  Andi Kleen <ak@linux.intel.com>
125
126         * lto.c (lto_process_name): Add.
127         (lto_main): Call lto_process_name.
128
129 2010-10-06  Jan Hubicka  <jh@suse.cz>
130
131         * lto.c (partition_cgraph_node_p, partition_varpool_node_p): Handle
132         COMDATs required by the linker.
133
134 2010-10-05  Ian Lance Taylor  <iant@google.com>
135
136         * lto.c (lto_section_with_id): Make s a const pointer.
137
138 2010-10-05  Jan Hubicka  <jh@suse.cz>
139
140         * lto.c:  Include params.h.
141         (add_cgraph_node_to_partition, add_varpool_node_to_partition): Do
142         refcounting in aux field.
143         (undo_partition, partition_cgraph_node_p, partition_varpool_node_p):
144         New functions.
145         (lto_1_to_1_map): Simplify.
146         (lto_balanced_map): New function.
147         (do_whole_program_analysis): Chose proper partitioning alg.
148         * Make-lang.in (lto.o): Add dependency on params.h
149
150 2010-10-04  Andi Kleen <ak@linux.intel.com>
151
152         * Make-lang.in (lto1): Add + to build rule.
153
154 2010-10-03  Andi Kleen <ak@linux.intel.com>
155
156         * lto.c (lto_file_finalize): Replace gcc_assert for missing section
157           with fatal_error.
158
159 2010-09-28  Jan Hubicka  <jh@suse.cz>
160
161         * lto-lang.c (handle_leaf_attribute): New function.
162         (lto_attribute_tables): Add leaf.
163
164 2010-09-25  Jie Zhang  <jie@codesourcery.com>
165
166         * lto.c (lto_read_all_file_options): Start a new line after
167         printing out file names.
168
169 2010-09-24  Jan Hubicka  <jh@suse.cz>
170
171         * lto.c (lto_promote_cross_file_statics): Use const_value_known_p.
172
173 2010-09-20  Jan Hubicka  <jh@suse.cz>
174
175         PR tree-optimize/45605
176         * lto.c (lto_promote_cross_file_statics): Use const_value_known_p.
177
178 2010-09-18  Gerald Pfeifer  <gerald@pfeifer.com>
179
180         * lto-elf.c (lto_obj_file_open): Also provide filename when
181         elf_begin fails.
182
183 2010-09-17  Jan Hubicka  <jh@suse.cz>
184
185         * lto.c (lto_promote_cross_file_statics): Use const_value_known.
186
187 2010-09-17  Richard Guenther  <rguenther@suse.de>
188
189         * lang.opt (flag_wpa): Also enable for the driver.
190
191 2010-09-16  Jan Hubicka  <jh@suse.cz>
192
193         * lto.c (lto_materialize_function): Do not tamper with STATIC and
194         EXTERNAL flags. 
195
196 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
197
198         * lto-tree.h (struct lang_type): Add variable_size GTY option.
199
200 2010-09-08  Jan Hubicka  <jh@suse.cz>
201
202         * lto.c (real_file_count, real_file_decl_data): New static vars.
203         (read_cgraph_and_symbols): Use it.
204
205 2010-09-08  Richard Guenther  <rguenther@suse.de>
206
207         * lto.c (read_cgraph_and_symbols): Collect again after each
208         file.
209
210 2010-09-07  Jan Hubicka  <jh@suse.cz>
211
212         * lto.c (promote_var, promote_fn): Set DECL_VISIBILITY_SPECIFIED.
213
214 2010-09-03  Richard Guenther  <rguenther@suse.de>
215
216         * lto-elf.c (validate_file): Always error if validation fails.
217
218 2010-08-20  Jan Hubicka  <jh@suse.cz>
219
220         * lto.c (lto_1_to_1_map): Be prepared for node to have no file data.
221         (lto_wpa_write_files): Update comments.
222
223 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
224
225         PR bootstrap/45357
226         * lto.c (lto_materialize_function): Replace has_analyzed_clone
227         with has_analyzed_clone_p.
228
229 2010-08-20  Jan Hubicka  <jh@suse.cz>
230
231         * lto.c (has_analyzed_clone_p): New function
232         (lto_materialize_function): Use callgraph to determine if
233         body is needed.
234         (materialize_cgraph): Remove DECL_IS_BUILTIN check.
235
236 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
237
238         * lto.c: Use FOR_EACH_VEC_ELT.
239
240 2010-07-27  Andi Kleen <ak@linux.intel.com>
241
242         * Make-lang.in (lto.o): Add dependency to splay-tree.h
243
244 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
245
246         * lto-lang.c (lto_handle_option): Update prototype and return
247         value type.  Remove duplicate assignment to result.
248
249 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
250
251         * lto-lang.c (lto_option_lang_mask, lto_complain_wrong_lang_p):
252         New.
253         (lto_init_options): Update prototype.
254         (LANG_HOOKS_OPTION_LANG_MASK, LANG_HOOKS_COMPLAIN_WRONG_LANG_P):
255         Define.
256
257 2010-07-10   Andi Kleen <ak@linux.intel.com>
258
259         PR lto/44992
260         * lto.c: Include splay-tree.h
261         (lto_resolution_read): Change to walk file_ids tree and parse
262         extra file_id in resolution file.
263         (lto_section_with_id): Add.
264         (create_subid_section_table): Add.
265         (lwstate): Add.
266         (lto_create_files_from_ids): Add.
267         (lto_file_read): Change to handle sub file ids and create list
268         of file_datas. Add output argument for count.
269         (get_section_data): Pass file_data to lto_get_section_name.
270         (lto_flatten_file): Add.
271         (read_cgraph_and_symbols): Handle linked lists of file_datas.
272
273 2010-07-10  Andi Kleen <ak@linux.intel.com>
274
275         * lto-coff.c (hash_name, eq_name): Move.
276         (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
277         * lto-elf.c: (hash_name, eq_name): Move.
278         (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
279         * lto-macho.c: (hash_name, eq_name): Move.
280         (lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
281         * lto.c: (hash_name, eq_name): Move from lto-*.c
282         (lto_obj_create_section_hash_table): Add.
283         (free_with_string): Add.
284
285 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
286
287         * lto-coff.c: Include diagnostic-core.h in every file that
288         includes toplev.h.
289         * lto-elf.c: Likewise.
290         * lto-lang.c: Likewise.
291         * lto-macho.c: Likewise.
292
293 2010-07-07  Jakub Jelinek  <jakub@redhat.com>
294
295         * lto-elf.c (ELFOSABI_NONE, ELFOSABI_LINUX): Define if not defined.
296         (validate_file): Allow merging of ELFOSABI_NONE with ELFOSABI_LINUX
297         objects.
298
299 2010-07-05  Jan Hubicka  <jh@suse.cz>
300
301         * lto.c (add_cgraph_node_to_partition): Forward declare; walk also
302         nodes from same comdat group as well as all comdat functions referenced
303         here.
304         (add_varpool_node_to_partition, add_references_to_partition): New function.
305         (lto_1_1_map): Skip COMDAT fnctions/variables; use add_varpool_node_to_partition;
306         clear aux flags when done.
307         (lto_promote_cross_file_statics): Do not promote stuff that gets duplicated to
308         each ltrans.
309
310 2010-07-04  Jan Hubicka  <jh@suse.cz>
311
312         * lto.c (read_cgraph_and_symbols): Dump cgraph before merging.
313
314 2010-06-13  Richard Guenther  <rguenther@suse.de>
315
316         * lto.c (lto_fixup_type): Do not register or fixup TYPE_CANONICAL.
317
318 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
319
320         * lto.c (lto_resolution_read):  Pre-initialize local variable r.
321         * lto-coff.c (coff_write_object_file): Add braces to if.
322
323 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
324
325         * lto.c (lto_read_in_decl_state): Use typed GC allocation.
326         (lto_file_read): Likewise.
327         (new_partition): Likewise.
328         (read_cgraph_and_symbols): Likewise.
329
330 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
331
332         * lto-lang.c (flag_no_builtin, flag_no_nonansi_builtin): Remove.
333         (lto_handle_option): Don't set flag_signed_char here.
334
335 2010-06-04  Richard Guenther  <rguenther@suse.de>
336
337         PR lto/41584
338         * lto.c (lto_1_to_1_map): Use the proper file_data for
339         varpool nodes.
340
341 2010-05-30  Jan Hubicka  <jh@suse.cz>
342
343         * lto.c (promote_var, promote_fn, lto_wpa_write_files): Dump
344         partitioning decisions.
345
346 2010-05-29  Jan Hubicka  <jh@suse.cz>
347
348         * lto.c (bitmap vector): Remove.
349         (lto_cgraph_node_sets,  lto_varpool_node_sets): Remove.
350         (ltrans_partition_def): New structure.
351         (ltrans_partition): New type and VECtor.
352         (new_partition): New function.
353         (add_cgraph_node_to_partition): New function.
354         (lto_1_to_1_map): Reorganize for partitions.
355         (lto_add_inline_clones): Remove.
356         (lto_add_all_inlinees): Remove.
357         (lto_promote_cross_file_statics): Use partitions.
358         (cmp_partitions): New function.
359         (lto_wpa_write_files): Do not call lto_add_all_inlinees;
360         use partitions; output files sorted by size.
361
362 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
363
364         * Make-lang.in: Replace vec.h dependency with VEC_H.
365
366 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
367
368         * lto-coff.c (coff_errmsg): Remove.
369         (lto_coff_begin_section_with_type, lto_obj_append_data): Use %m in
370         errors instead of coff_errmsg (-1).
371         * lto-macho.c (mach_o_errmsg): Remove.
372         (lto_obj_begin_section, lto_obj_append_data): Use %m in errors
373         instead of mach_o_errmsg (-1).
374         * lto.c (read_cgraph_and_symbols): Use %m in errors instead of
375         xstrerror (errno).
376
377 2010-05-28  Richard Guenther  <rguenther@suse.de>
378
379         * lto.c (prefix_name_with_star): Removed.
380         (strip_extension): Likewise.
381         (get_filename_for_set): Likewise.
382         (lto_write_ltrans_list): Fold into ...
383         (lto_wpa_write_files): ... this.  Name LTRANS units
384         by suffixing the ltrans output list filename.
385         (do_whole_program_analysis): Adjust.
386
387 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
388
389         * lto.c: Include diagnostic-core.h instead of diagnostic.h.
390         (read_cgraph_and_symbols, lto_main): Use seen_error.
391         * Make-lang.in (lto/lto.o): Update dependencies.
392
393 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
394
395         PR lto/44230
396         * lto.h (lto_eh_personality): New prototype.
397         * lto.c: Include debug.h.
398         (first_personality_decl): New static variable.
399         (lto_materialize_function): Set it to DECL_FUNCTION_PERSONALITY of the
400         first function for which it is non-null.
401         (lto_eh_personality_decl): New static variable.
402         (lto_eh_personality): New function.
403         * lto-lang.c (LANG_HOOKS_EH_PERSONALITY): Redefine to above function.
404         * Make-lang.in (lto/lto.o): Add dependency on debug.h.
405
406 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
407
408         * lto-lang.c: Do not include expr.h.
409
410 2010-05-24  Richard Guenther  <rguenther@suse.de>
411
412         * lto-elf.c (lto_obj_build_section_table): Work around
413         FreeBSD libelf issue.
414
415 2010-05-22  Richard Guenther  <rguenther@suse.de>
416
417         * lto.c (read_cgraph_and_symbols): Do not collect.
418
419 2010-05-20  Jan Hubicka  <jh@suse.cz>
420
421         * lto.c (promote_var, promote_fn): New functions.
422         (lto_promote_cross_file_statics): Compute correctly boundary including
423         static initializers of readonly vars.
424
425 2010-05-18  Jan Hubicka  <jh@suse.cz>
426
427         * lto.c (lto_1_to_1_map): Partition non-inline clones.
428         (lto_promote_cross_file_statics): Deal with non-inline clones.
429
430 2010-05-18  Jan Hubicka  <jh@suse.cz>
431
432         * lto.c (lto_materialize_function): Announce function when
433         reading body; allocate_struct_function only when reading body;
434         do not finalize local statics; ggc_collect after reading;
435         do not mark reachable node.
436         (materialize_cgraph): Do not announce function.
437
438 2010-05-11  Jan Hubicka  <jh@suse.cz>
439
440         * lto.c (materialize_cgraph): Revert my previous patch.
441
442 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
443
444         * lto-coff.c (IMAGE_FILE_MACHINE_ADM64): Rename to
445         IMAGE_FILE_MACHINE_AMD64.
446         * lto-coff.c (IMAGE_FILE_MACHINE_ADM64): Likewise.
447
448 2010-05-11  Jan Hubicka  <jh@suse.cz>
449
450         * lto.c (lto_fixup_decls): Remove global var decls freeing here.
451         (materialize_cgraph): Add it here.
452
453 2010-05-11  Jan Hubicka  <jh@suse.cz>
454
455         * lto.c (lto_fixup_decls): Free no longer needed lto_global_var_decls
456         vector.
457
458 2010-05-11  Jan Hubicka  <jh@suse.cz>
459
460         * lto.c (lto_1_to_1_map): Remove some no longer needed checks.
461         (lto_promote_cross_file_statics): Never promote DECL_EXTERNAL;
462         use reachable_from_other_partition_p and
463         referenced_from_other_partition_p test.
464
465 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
466
467         * lto-coff.c (validate_file): Add x64-coff support.
468         * lto-coff.h (IMAGE_FILE_MACHINE_ADM64): New.
469         (COFF_KNOWN_MACHINES): Add IMAGE_FILE_MACHINE_ADM64.
470         * lto-lang.c (lto_build_c_type_nodes): Add check for
471         'long long unsigned int' for x64-windows.
472         (lto_init): Likewise.
473
474
475 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
476
477         * lto.h (struct lto_file_struct): Document offset member.
478         * lto-endian.h: New file.
479         * lto-macho.h: New file.
480         * lto-macho.c: New file.
481         * Make-lang.in: Add rule for lto-macho.o.
482
483 2010-05-07  Richard Guenther <rguenther@suse.de>
484
485         PR lto/43857
486         PR lto/43371
487         * lang.opt (fresolution): Change to ...
488         (fresolution=): ... this.
489         * lto-lang.c (lto_handle_option): Adjust.
490
491 2010-05-07  Richard Guenther  <rguenther@suse.de>
492
493         * lto.c (DUMPBASE_SUFFIX): Remove.
494         (lto_execute_ltrans): Move functionality to lto-wrapper.c.
495         Rename to ...
496         (lto_write_ltrans_list): ... only output the list of ltrans files.
497         (lto_maybe_unlink): Remove.
498         (do_whole_program_analysis): Do not execute LTRANS phase
499         from here.
500
501 2010-05-06  H.J. Lu  <hongjiu.lu@intel.com>
502
503         * lto-lang.c (lto_handle_option): Add argument kind.
504
505 2010-05-05  Jan Hubicka  <jh@suse.cz>
506
507         * lto.c (lto_promote_cross_file_statics): Compute boundary based on
508         refs.
509
510 2010-05-05  Jan Hubicka  <jh@suse.cz>
511
512         * lto.c (lto_1_to_1_map): Partition only needed nodes.
513
514 2010-04-30  Jan Hubicka  <jh@suse.cz>
515
516         * lto.c (get_filename_for_set): Look for cgraph node and if none found, use
517         default name.
518         (lto_wpa_write_files): Write any non-empty partition.
519
520 2010-04-30  Jan Hubicka  <jh@suse.cz>
521
522         * lto.c: Do not attempt to make constant pool references global.
523
524 2010-04-28  Jan Hubicka  <jh@suse.cz>
525
526         * lto/lto.c (lto_read_in_decl_state): Use GGC.
527         (lto_wpa_write_files): Announce what we are writting.
528         (all_file_decl_data): New.
529         (read_cgraph_and_symbols): Use GGC; correct timevars.
530         (do_whole_program_analysis): Collect.
531         * lto/Make-lang.in (lto.o): Fix dependency.
532         * Makefile.in (GTFILES): Add lto-streamer.h.
533         * varpool.c (varpool_analyze_pending_decls): Use TV_VARPOOL.
534         (varpool_assemble_pending_decls): Use VAROUT.
535         * lto-streamer.h (lto_tree_ref_table): Annotate.
536         (lto_in_decl_state): Annotate.
537         (lto_file_decl_data): Annotate.
538
539 2010-04-28  Jan Hubicka  <jh@suse.cz>
540
541         * lto.c (lto_varpool_node_sets): New.
542         (lto_1_to_1_map): Partition varpool too.
543         (globalize_context_t, globalize_cross_file_statics,
544         lto_scan_statics_in_ref_table, lto_scan_statics_in_cgraph_node,
545         lto_scan_statics_in_remaining_global_vars): Remove.
546         (lto_promote_cross_file_statics): Rewrite.
547         (get_filename_for_set): Take vset argument.
548         (lto_wpa_write_files): Pass around vsets.
549
550 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
551
552         PR lto/42776
553         * Make-lang.in (LTO_OBJS): Use LTO_BINARY_READER instead of
554         hardcoding 'lto-elf.o'.
555         ($(LTO_EXE)): Use LTO_USE_LIBELF instead of hardcoding '-lelf'.
556
557         * lto-coff.h: New file.
558         * lto-coff.c: Likewise.
559
560 2010-04-26  Richard Guenther  <rguenther@suse.de>
561
562         * lto.c (lto_fixup_type): Deal with non-type TYPE_CONTEXT.
563
564 2010-04-26  Dave Korn  <dave.korn.cygwin@gmail.com>
565
566         * lto.h (lto_elf_file_open): Rename prototype from this ...
567         (lto_obj_file_open): ... to this.
568         (lto_elf_file_close): Likewise ...
569         (lto_obj_file_close): ... and likewise.
570         (lto_elf_build_section_table): Likewise ...
571         (lto_obj_build_section_table): ... and likewise.
572         (lto_elf_begin_section): Likewise ...
573         (lto_obj_begin_section): ... and likewise.
574         (lto_elf_append_data): Likewise ...
575         (lto_obj_append_data): ... and likewise.
576         (lto_elf_end_section): Likewise ...
577         (lto_obj_end_section): ... and likewise.
578         * lto.c (lto_file_read): Update references to the above.
579         (lto_wpa_write_files): Likewise.
580         (lto_read_all_file_options): Likewise.
581         (read_cgraph_and_symbols): Likewise.
582         * lto-lang.c (LANG_HOOKS_BEGIN_SECTION): Likewise.
583         (LANG_HOOKS_APPEND_DATA): Likewise.
584         (LANG_HOOKS_END_SECTION): Likewise.
585         * lto-elf.c (lto_elf_file_open): Rename from this ...
586         (lto_obj_file_open): ... to this, updating any references.
587         (lto_elf_file_close): Likewise ...
588         (lto_obj_file_close): ... and likewise.
589         (lto_elf_build_section_table): Likewise ...
590         (lto_obj_build_section_table): ... and likewise.
591         (lto_elf_begin_section): Likewise ...
592         (lto_obj_begin_section): ... and likewise.
593         (lto_elf_append_data): Likewise ...
594         (lto_obj_append_data): ... and likewise.
595         (lto_elf_end_section): Likewise ...
596         (lto_obj_end_section): ... and likewise.
597
598 2010-04-21  Jan Hubicka  <jh@suse.cz>
599
600         * lto.c (lto_fixup_tree): Do not call wpa fixup.
601         (materialize_cgraph): Likewise.
602
603 2010-04-21  Jan Hubicka  <jh@suse.cz>
604
605         * lto.c (lto_wpa_write_files): Update.
606         (read_cgraph_and_symbols): Be more verbose.
607         (materialize_cgraph): Likewise.
608         (do_whole_program_analysis): Likewise.
609
610 2010-04-21  Jan Hubicka  <jh@suse.cz>
611
612         * lto.c (globalize_cross_file_statics): When function has address taken,
613         it needs to be public.
614
615 2010-04-20  Jan Hubicka  <jh@suse.cz>
616
617         * lto.c (lto_add_inline_clones): Do not track inlined_decls.
618         (lto_add_all_inlinees): Likewise.
619         (lto_wpa_write_files): Likewise.
620
621 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
622
623         * lto-lang.c (lto_init): Remove second argument in call to
624         build_common_tree_nodes.
625
626 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
627
628         * lto-elf.c [!HAVE_ELF_GETSHDRSTRNDX] (elf_getshdrstrndx): New
629         function.
630
631 2010-03-09  Eric Botcazou  <ebotcazou@adacore.com>
632
633         PR bootstrap/43276
634         * lto-elf.c: Define EM_* constants if not already defined.
635
636 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
637
638         * lto-elf.c (is_compatible_architecture): New static function.
639         (DEFINE_VALIDATE_EHDR): Use it to validate the architecture.
640
641 2010-02-11  Richard Guenther  <rguenther@suse.de>
642
643         PR driver/43021
644         * lto-elf.c (lto_elf_file_open): Handle file@offset case more
645         appropriately.
646
647 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
648
649         * lto.c (O_BINARY): Define.
650         (lto_read_section_data): Open file in binary mode.
651         * lto-elf.c (O_BINARY): Define.
652         (lto_elf_file_open): Open file in binary mode. 
653
654 2010-01-08  Richard Guenther  <rguenther@suse.de>
655
656         PR lto/42528
657         * lto-lang.c (lto_handle_option): Handle -f[un]signed-char.
658         (lto_init): Do not init char_type_node in a standard way
659         but according to flag_signed_char.
660
661 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
662
663         PR lto/41564
664         * lto.c (DUMPBASE_SUFFIX): New.
665         (lto_execute_ltrans): Append a sequence number to -dumpbase
666         for LTRANS.
667
668 2010-01-02  H.J. Lu  <hongjiu.lu@intel.com>
669
670         PR lto/42580
671         * lto-elf.c (lto_elf_file_open): Stop if the command line
672         option file is missing.
673
674 2009-12-15  Richard Guenther  <rguenther@suse.de>
675
676         * lto.c (lto_fixup_field_decl): Fixup DECL_FIELD_OFFSET.
677         (lto_post_options): Do not disable debuginfo.
678
679 2009-12-14  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
680
681         * Make-lang.in ($(LTO_EXE)): Use $(LINKER).
682
683 2009-12-11  Richard Guenther  <rguenther@suse.de>
684
685         PR lto/42037
686         * lto.c (lto_resolution_read): Properly grow the vector.
687
688 2009-12-11  Richard Guenther  <rguenther@suse.de>
689
690         PR lto/41915
691         * lto-lang.c (lto_init_options): Initialize flag_complex_method
692         to the C99 default.  Do not set flag_unit_at_a_time.
693
694 2009-11-28  Jakub Jelinek  <jakub@redhat.com>
695
696         * lto-lang.c (handle_nonnull_attribute): Remove unused attr_arg_num
697         variable.
698
699 2009-11-19  Rafael Avila de Espindola  <espindola@google.com>
700
701         PR bootstrap/42096
702         * lto-elf.c (lto_elf_file_open): Use lto_parse_hex.
703         * lto.c (lto_parse_hex): New.
704         (lto_resolution_read): Use lto_parse_hex.
705         * lto.h (lto_parse_hex): New.
706
707 2009-11-17  Rafael Avila de Espindola  <espindola@google.com>
708
709         * lto-elf.c (lto_file_init): Add offset argument.
710         (lto_elf_file_open): Record the offset.
711         * lto.c (lto_resolution_read): Change file_name into a lto_file
712         argument. Check offsets.
713         (lto_file_read): Update call to lto_resolution_read.
714         * lto.h (lto_file_struct): Add the offset field.
715
716 2009-11-16  Rafael Avila de Espindola  <espindola@google.com>
717
718         * lto-elf.c (lto_elf_file_open): Use strtoll to parse the offset.
719
720 2009-11-14  Jan Hubicka  <jh@suse.cz>
721
722         * lto.c (read_cgraph_and_symbols): Set also ipa_transforms_to_apply.
723
724 2009-11-12  Rafael Avila de Espindola  <espindola@google.com>
725
726         * lang.opt (fresolution): Renamed from resolution.
727         * lto-lang.c (lto_handle_option): Handle new option name.
728         * lto.c (lto_resolution_read): Add more checks. Discard rest of line.
729
730 2009-11-04  Richard Guenther  <rguenther@suse.de>
731             Rafael Avila de Espindola  <espindola@google.com>
732
733         * lto-elf.c (lto_elf_build_section_table): Add the base offset.
734         (lto_elf_file_open): Handle offsets in arguments name@offest.
735
736 2009-10-30  Richard Guenther  <rguenther@suse.de>
737
738         PR lto/41858
739         * lto.c (lto_file_read): Do not set file_data->fd.
740         (lto_read_section_data): Use a single-entry file-descriptor cache.
741         Do not check the result of xmalloc.
742         (free_section_data): Do not use file_data->fd.
743         (lto_read_all_file_options): Likewise.
744
745 2009-10-22  Richard Guenther  <rguenther@suse.de>
746
747         * lto.c (lto_fixup_jump_functions): Remove.
748         (lto_fixup_decls): Do not fixup jump functions.
749         (read_cgraph_and_symbols): Schedule cgraph merging after
750         summary reading.  Schedule type and decl fixup before
751         summary reading.
752
753 2009-10-22  Richard Guenther  <rguenther@suse.de>
754
755         * lto.c (lto_fixup_data_t): Remove free_list member.
756         (lto_fixup_tree): Do not insert into free_list.
757         (free_decl): Remove.
758         (lto_fixup_decls): Remove free-list handling.
759
760 2009-10-22  Jan Hubicka  <jh@suse.cz>
761
762         * lto.c (lto_fixup_jump_functions): New function.
763         (lto_fixup_decls): Use it.
764
765 2009-10-16  Richard Guenther  <rguenther@suse.de>
766
767         PR lto/41715
768         * lto.c (lto_fixup_tree): Revert last change.
769
770 2009-10-14  Richard Guenther  <rguenther@suse.de>
771
772         * lto.c (lto_fixup_tree): In case the prevailing decl is not
773         compatible with the one we replace wrap it around a
774         VIEW_CONVERT_EXPR.
775
776 2009-10-09  Richard Guenther  <rguenther@suse.de>
777
778         PR lto/41635
779         PR lto/41636
780         * lto.c (read_cgraph_and_symbols): Do not assert we can open
781         a file.
782         * lto-elf.c (init_shdr##BITS): Fix i18n problems.
783         (init_ehdr##BITS): Likewise.
784
785 2009-10-08  Joseph Myers  <joseph@codesourcery.com>
786
787         * lto-elf.c (init_shdr##BITS, lto_elf_begin_section_with_type,
788         init_ehdr##BITS, lto_elf_file_close): Remove trailing "." from
789         diagnostics.
790         * lto-lang.c (lto_post_options): Remove trailing "." from
791         diagnostics.
792
793 2009-10-08  Richard Guenther  <rguenther@suse.de>
794
795         * lto.c (read_cgraph_and_symbols): Free the gimple type merging
796         hash tables.
797
798 2009-10-07  Joseph Myers  <joseph@codesourcery.com>
799
800         * lto.c: Only include <sys/mman.h> if HAVE_MMAP_FILE.
801
802 2009-10-07  Jan Hubicka  <jh@suse.cz>
803
804         * lto.c (read_cgraph_and_symbols): Mark functions neccesary only at
805         ltrans stage; explain why this is needed and should not.
806
807 2009-10-05  Richard Guenther  <rguenther@suse.de>
808
809         PR lto/41552
810         PR lto/41487
811         * lto.c (lto_read_decls): Do not register deferred decls.
812         (read_cgraph_and_symbols): Delay symbol and cgraph merging
813         until after reading the IPA summaries.
814
815 2009-10-02  Rafael Avila de Espindola  <espindola@google.com>
816
817         * Make-lang.in (lto/lto-lang.o): Don't depend on lto/common.h.
818         (lto-lang.c): Don't include lto/common.h.
819
820 2009-10-02  Rafael Avila de Espindola  <espindola@google.com>
821
822         * Make-lang.in (LTO_OBJS): Remove lto/common.o.
823         (lto/common.o): Remove.
824         * common.c: Remove.
825         * common.h (lto_kind_str): Remove.
826         (lto_visibility_str): Remove.
827         (lto_resolution_str): Make it static.
828
829 2009-10-01  Diego Novillo  <dnovillo@google.com>
830
831         * lto.c (lto_read_decls): Add comment.
832         Call internal_error instead of gcc_assert.
833         (lto_resolution_read): Likewise.
834         (lto_add_all_inlinees): Tidy.
835         * Make-lang.in: Fix copyright boilerplate.
836         (lto.pdf): New.
837         (lto.install-pdf): New.
838         * lto-tree.h: Fix copyright boilerplate.
839         * lang-specs.h: Likewise.
840         Remove ".lto" entry from compilers fragment.
841         * lto-elf.c: Move inclusion of gelf.h after config.h.
842         Tidy formatting everywhere.
843         * lto.h: Fix copyright boilerplate.
844         Tidy formatting everywhere.
845         * common.c: Likewise.
846         * config-lang.in: Likewise.
847         * common.h: Likewise.
848         * lto-lang.c: Likewise.
849
850 2009-10-01  Richard Guenther  <rguenther@suse.de>
851
852         * lto.c (lto_read_section_data): Use plain lseek/read.
853
854 2009-10-01  Richard Guenther  <rguenther@suse.de>
855
856         * lto.c (LTO_MMAP_IO): Define if we can mmap files and
857         use sysconf to query the system page size.
858         (lto_file_read): Implement fallback using stdio.
859         (free_section_data): Likewise.
860
861 2009-09-29  Diego Novillo  <dnovillo@google.com>
862
863         * lto-lang.c (lto_init): Really fix call to
864         build_common_builtin_nodes.
865
866 2009-09-29  Diego Novillo  <dnovillo@google.com>
867
868         * lto-lang.c (lto_init): Fix call to
869         build_common_builtin_nodes.
870
871 2009-09-29  Richard Guenther  <rguenther@suse.de>
872
873         PR lto/40754
874         * lto-elf.c (init_shdr##BITS): Properly specify alignment
875         in bytes.
876         (first_data_block): New static variable.
877         (lto_elf_append_data): Align the first data block in each
878         section.
879
880 2009-09-28  Diego Novillo  <dnovillo@google.com>
881
882         * lto-lang.c: Tidy.  Remove stale FIXME lto markers.
883         * lto.c (strip_extension): New.
884         (get_filename_for_set): Call it.  Do not call make_cwd_temp_file.
885         (lto_execute_ltrans): Tidy.
886         Do not pass -fwpa nor -fltrans-* to LTRANS.
887         * opts.c: Tidy formatting and remove stale FIXME lto markers.
888         * tree.c (need_assembler_name_p): Call
889         lang_hooks.decls.may_need_assembler_name_p if set.
890         * varasm.c (default_binds_local_p_1): Remove check for
891         flag_ltrans.
892         * varpool.c (decide_is_variable_needed): Do not test for
893         in_lto_p.
894
895 2009-09-22  Richard Guenther  <rguenther@suse.de>
896
897         PR lto/39276
898         * lto.c (lto_execute_ltrans): Perform ltrans phase manually.
899         * Make-lang.in: Remove ltrans-driver stuff.
900         * config-lang.in: Likewise.
901         * lang.opt (fltrans-driver): Remove.
902         * lto-lang.c (lto_init_options): Remove code initializing
903         ltrans_driver.
904         * ltrans-driver: Remove.
905
906 2009-09-21  Diego Novillo  <dnovillo@google.com>
907
908         * lto-lang.c (lto_define_builtins): Remove superfluous
909         calls to targetm.init_builtins and build_common_builtin_nodes.
910         (lto_init): Add targetm.arm_eabi_unwinder as parameter to
911         build_common_builtin_nodes.
912         * lto.c (lto_materialize_function): Do nothing if NODE is a
913         clone.
914
915 2009-09-03  Diego Novillo  <dnovillo@google.com>
916
917         * lto-elf.c (validate_file): Replace call to
918         elf_getshstrndx with call to elf_getshdrstrndx.
919
920 2009-08-19  Richard Guenther  <rguenther@suse.de>
921
922         * lto-lang.c (lto_init): Merge char_type_node with the
923         appropriately signed variant.
924
925 2009-08-19  Richard Guenther  <rguenther@suse.de>
926
927         PR lto/41071
928         * lto.c (lto_fixup_common): Re-build the pointer-to chain part one.
929         (lto_fixup_type): Re-build the pointer-to chain part two.
930
931 2009-08-19  Richard Guenther  <rguenther@suse.de>
932
933         PR lto/41071
934         * lto.c (lto_fixup_type): Re-build the type variant chain.
935
936 2009-08-19  Richard Guenther  <rguenther@suse.de>
937
938         PR lto/41071
939         * lto.c (lto_fixup_constructor): New function.
940         (lto_fixup_tree): Replace all types.  Properly fixup
941         constructors and constants.
942
943 2009-08-14  Richard Guenther  <rguenther@suse.de>
944
945         * lto.c (read_cgraph_and_symbols): Exchange TREE_CHAIN use
946         for DECL_LANG_SPECIFIC.
947
948 2009-08-13  Richard Guenther  <rguenther@suse.de>
949
950         PR lto/41032
951         * lto-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define to NULL.
952
953 2009-07-30  Richard Guenther  <rguenther@suse.de>
954
955         PR lto/40903
956         * lto.c (read_cgraph_and_symbols): After fixing up decls choose
957         the largest decl for output and free TREE_CHAIN for further
958         use.
959
960 2009-07-24  Diego Novillo  <dnovillo@google.com>
961
962         * Make-lang.in: Add empty lto.install-plugin target.
963
964 2009-07-13  Diego Novillo  <dnovillo@google.com>
965
966         * lto.c (lto_fixup_tree): Handle IMPORTED_DECL.
967
968 2009-07-11  Richard Guenther  <rguenther@suse.de>
969
970         * lto-lang.c (lto_write_globals): Wrapup global decls.
971
972 2009-07-10  Richard Guenther  <rguenther@suse.de>
973
974         * lto-lang.c (lto_init): Allocate one more location to make
975         BUILTINS_LOCATION correct.
976
977 2009-07-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
978
979         * lto.c (free_section_data): Cast computed_offset to caddr_t.
980
981 2009-07-06  Diego Novillo  <dnovillo@google.com>
982
983         * lto.c (lto_fixup_type): Fixup TYPE_SIZE and
984         TYPE_SIZE_UNIT.
985
986 2009-07-06  Diego Novillo  <dnovillo@google.com>
987
988         * lto.c (preload_common_nodes): Remove.
989         (lto_read_in_decl_state): Call lto_streamer_cache_get.
990         (lto_read_decls): Call lto_data_in_create and
991         lto_data_in_delete.
992         (free_decl): Do not call ggc_free.
993         (lto_main): Call lto_init_reader.
994         * lto-lang.c (lto_type_for_size): Handle intTI_type_node.
995         (lto_init): Initialize main_identifier_node if needed.
996         Make ptrdiff_type_node be integer_type_node.
997
998 2009-06-19  Diego Novillo  <dnovillo@google.com>
999
1000         * lto.c: Remove code guarded by #ifdef LTO_STREAM_DEBUGGING.
1001         Remove code guarded by #ifdef GLOBAL_STREAMER_TRACE.
1002         Remove code guarded by #ifdef LOCAL_TRACE.
1003
1004 2009-06-18  Diego Novillo  <dnovillo@google.com>
1005
1006         * lto.c: Update license to GPLv3.
1007         * lto-elf.c: Likewise.
1008         * common.c: Likewise.
1009         * lto-lang.c: Likewise.
1010         * lto.h: Remove superfluous include files.  Update all
1011         users.
1012
1013 2009-06-17  Diego Novillo  <dnovillo@google.com>
1014
1015         * lto.c (read_cgraph_and_symbols): Call input_cgraph.
1016
1017 2009-06-02  Diego Novillo  <dnovillo@google.com>
1018
1019         * lto.c (lto_1_to_1_map): Ignore nodes that have not been
1020         read in.
1021         (materialize_cgraph): Only materialize nodes that have a
1022         representation on file.
1023
1024 2009-06-01  Diego Novillo  <dnovillo@google.com>
1025
1026         * lto-lang.c (lto_handle_option): Hanlde OPT_Wabi.
1027
1028 2009-05-31  Diego Novillo  <dnovillo@google.com>
1029
1030         * lto-lang.c (lto_type_for_mode): Handle all the modes
1031         handled in c_common_type_for_mode.
1032
1033 2009-05-21  Diego Novillo  <dnovillo@google.com>
1034
1035         * lto-elf.c: Always include <gelf.h>.
1036         * config-lang.in (target_libs): Remove.
1037         (build_by_default): Set to no.
1038
1039 2009-05-15  Diego Novillo  <dnovillo@google.com>
1040
1041         * lto.c (lto_materialize_function): Assert that DECL is
1042         not a builtin.
1043         (materialize_cgraph): Don't try to materialize builtin
1044         functions.
1045         * lto-section-out.c (write_symbol_vec): Do not write
1046         builtin functions.
1047
1048 2009-05-13  Diego Novillo  <dnovillo@google.com>
1049
1050         * lto-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define.
1051
1052 2009-05-07  Diego Novillo  <dnovillo@google.com>
1053
1054         * lto.c (lto_resolution_read): Add type casts for C++ warnings.
1055         (LTO_REGISTER_TYPE_AND_FIXUP_SUBTREE): Define.
1056         (lto_fixup_type): Call it for TYPE_POINTER_TO,
1057         TYPE_REFERENCE_TO, TYPE_CONTEXT and TYPE_CANONICAL.
1058         (lto_fixup_tree): Call gimple_register_type when *TP is a
1059         type.
1060         (lto_main): Call bitmap_obstack_initialize.
1061
1062 2009-04-22  Diego Novillo  <dnovillo@google.com>
1063
1064         * lto.c (free_section_data): Tidy.
1065         (lto_1_to_1_map): Tidy.
1066         (lto_add_all_inlinees): Tidy.
1067         (prefix_name_with_star): New.
1068         (get_filename_for_set): New.
1069         (lto_wpa_write_files): Call cgraph_node_set_needs_ltrans_p
1070         to determine what cgraph node sets to write.
1071         Call get_filename_for_set to compute temporary file
1072         names.
1073         (lto_execute_ltrans): Do not execute LTRANS on files with
1074         names that start with '*'.
1075         Move logic to execute LTRANS together so that LTRANS is
1076         invoked only if there are any files to compile.
1077         (do_whole_program_analysis): Only remove output files
1078         that do not start with '*'.
1079
1080 2009-04-06  Diego Novillo  <dnovillo@google.com>
1081
1082         * lto-lang.c (lto_post_options): Set flag_excess_precision_cmdline.
1083         * lto.c (read_cgraph_and_symbols): Set cgraph_function_flags_ready.
1084         (lto_add_all_inlinees): Tidy.
1085
1086 2009-03-26  Diego Novillo  <dnovillo@google.com>
1087
1088         * lto.c: Include gimple.h.
1089         (lto_read_in_decl_state): Call gimple_register_type for
1090         every type in every stream.
1091         (lto_fixup_common): Call gimple_register_type if T has a
1092         type.
1093         (do_whole_program_analysis): Call print_lto_report.
1094         (lto_main): Call print_lto_report after cgraph_optimize.
1095         * Make-lang.in (lto.o): Add dependency on GIMPLE_H.
1096
1097 2009-03-24  Diego Novillo  <dnovillo@google.com>
1098
1099         * Make-lang.in (lto-lang.o): Add dependency on TARGET_H and EXPR_H.
1100         (lto.o): Add dependency on GIMPLE_H.
1101
1102 2009-03-10  Simon Baldwin  <simonb@google.com>
1103
1104         * lto.c (lto_read_all_file_options): Close any open file descriptor
1105         contained in file_data before freeing.
1106
1107 2009-02-24  Rafael Avila de Espindola  <espindola@google.com>
1108
1109         * lto.c (lto_add_inline_clones): Don't add the master clone. Check
1110         for a decl in the original bitmap, not a node.
1111         (lto_add_all_inlinees): Remove original nodes that are not needed.
1112         (lto_scan_statics_in_cgraph_node): Don't care if the node is the master.
1113
1114 2009-02-24  Diego Novillo  <dnovillo@google.com>
1115
1116         * lto.c (lto_materialize_function): Update
1117         lto_stats.num_function_bodies.
1118         (get_section_data): Initialize *LEN to 0.
1119         (lto_1_to_1_map): Update lto_stats.num_cgraph_partitions.
1120         (lto_wpa_write_files): Update lto_stats.num_cgraph_nodes.
1121         Update lto_stats.num_output_files.
1122         (read_cgraph_and_symbols): Update lto_stats.num_input_files.
1123         (materialize_cgraph): Update lto_stats.num_input_cgraph_nodes.
1124         (lto_main): Initialize lto_stats.
1125         If flag_lto_report is set, call print_lto_report.
1126
1127 2009-02-19  Diego Novillo  <dnovillo@google.com>
1128
1129         Revert
1130
1131         2009-02-19  Rafael Avila de Espindola  <espindola@google.com>
1132
1133                 * lto.c (lto_add_inline_clones): Don't add the
1134                 master clone. Check for a decl in the original
1135                 bitmap, not a node.
1136                 (lto_add_all_inlinees): Remove original nodes
1137                 that are not needed.
1138                 (lto_scan_statics_in_cgraph_node): Don't care if
1139                 the node is the master.
1140                 (lto_promote_cross_file_statics): Use a new
1141                 context.seen_node_decls for each set
1142
1143 2009-02-19  Rafael Avila de Espindola  <espindola@google.com>
1144
1145         * lto.c (lto_add_inline_clones): Don't add the master clone. Check
1146         for a decl in the original bitmap, not a node.
1147         (lto_add_all_inlinees): Remove original nodes that are not needed.
1148         (lto_scan_statics_in_cgraph_node): Don't care if the node is the master.
1149         (lto_promote_cross_file_statics): Use a new context.seen_node_decls
1150         for each set
1151
1152 2009-02-18  Diego Novillo  <dnovillo@google.com>
1153
1154         * lto.c (lto_wpa_write_files): Use timers TV_WHOPR_WPA
1155         and TV_WHOPR_WPA_IO.
1156         (lto_execute_ltrans): Use timer TV_WHOPR_WPA_LTRANS_EXEC.
1157         (read_cgraph_and_symbols): Use timer TV_IPA_LTO_DECL_IO.
1158         (materialize_cgraph): Use timer TV_IPA_LTO_GIMPLE_IO.
1159         Use timer TV_WHOPR_WPA or TV_WHOPR_LTRANS or TV_LTO
1160         depending on command line flags.
1161         (do_whole_program_analysis): Use timer TV_WHOPR_WPA.
1162         (lto_main): Remove timer uses.
1163
1164 2009-02-18  Rafael Avila de Espindola  <espindola@google.com>
1165
1166         * lto.c (lto_materialize_function): Don't set DECL_EXTERN to 0.
1167         (lto_wpa_write_files): Update calls to renamed functions.
1168
1169 2009-02-17  Diego Novillo  <dnovillo@google.com>
1170
1171         PR 39203
1172         * lto-lang.c (lto_post_options): Disable -fwhole-program
1173         when running LTRANS.
1174
1175 2009-02-10  Diego Novillo  <dnovillo@google.com>
1176
1177         * lto.c (read_cgraph_and_symbols): Fix comment.
1178
1179 2009-02-10  Diego Novillo  <dnovillo@google.com>
1180
1181         * lto.c (read_cgraph_and_symbols): Read options from all
1182         IL files.
1183
1184 2009-02-10  Diego Novillo  <dnovillo@google.com>
1185
1186         * lto.c (read_cgraph_and_symbols): Factor out of lto_main.
1187         (materialize_cgraph): Likewise.
1188         (do_whole_program_analysis): Likewise.
1189         (lto_main): Call read_cgraph_and_symbols,
1190         materialize_cgraph and do_whole_program_analysis.
1191
1192 2009-02-10  Simon Baldwin  <simonb@google.com>
1193
1194         * lto.c: Include lto-opts.h.
1195         * (lto_main): Clear file options at loop start, read any saved
1196         options from the first file handled, and re-issue options.
1197         * Makefile.in (lto.o): Add dependency on lto-opts.h.
1198
1199 2009-02-02  Diego Novillo  <dnovillo@google.com>
1200
1201         * lto.c (lto_main): Stop LTO_TIMER and use
1202         TV_WHOPR_WPA_LTRANS_EXEC when launching LTRANS.
1203
1204 2009-01-30  H.J. Lu  <hongjiu.lu@intel.com>
1205
1206         PR lto/38995
1207         * lto-elf.c (init_shdr##BITS): Set the sh_addralign field
1208         to POINTER_SIZE.
1209
1210 2009-01-29  Ramana Radhakrishnan  <ramana.r@gmail.com>
1211
1212         * Make-lang.in (LTO_EXE): Link with all 
1213         BACKENDLIBS and not only GMPLIBS
1214
1215 2009-01-28  H.J. Lu  <hongjiu.lu@intel.com>
1216
1217         PR bootstrap/38992
1218         * lto-elf.c: Include gelf.h instead of libelf.h.
1219         (lto_elf_file_close): Replace elfx_update_shstrndx with
1220         gelf_getehdr, elf_getscn, gelf_getshdr, gelf_update_shdr and
1221         gelf_update_ehdr.
1222
1223 2009-01-28  H.J. Lu  <hongjiu.lu@intel.com>
1224
1225         PR middle-end/38996
1226         * lto-elf.c (DEFINE_INIT_EHDR): Initialize e_version.
1227
1228 2009-01-26  Diego Novillo  <dnovillo@google.com>
1229
1230         * lto-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Update.
1231
1232 2009-01-26  Diego Novillo  <dnovillo@google.com>
1233
1234         * lto-lang.c (lto_types_compatible_p): Move to gimple.c
1235         and rename into gimple_types_compatible_p.
1236
1237 2009-01-12  Rafael Avila de Espindola  <espindola@google.com>
1238
1239         * lto-lang.c (lang_hooks): Remove the const qualifier.
1240
1241 2009-01-06  Diego Novillo  <dnovillo@google.com>
1242
1243         * ltrans-driver: Mark 'all' target as phony.
1244
1245 2008-12-31  Diego Novillo  <dnovillo@google.com>
1246
1247         * ltrans-driver: Execute a NOP action for target 'all'.
1248
1249 2008-12-19  Diego Novillo  <dnovillo@google.com>
1250
1251         * lto.c (lto_1_to_1_map): Tidy.
1252
1253 2008-12-19  Diego Novillo  <dnovillo@google.com>
1254
1255         * lto-elf.c (lto_elf_file_open): When FILENAME cannot
1256         be opened, show its name.
1257         * ltrans-driver: If $verbose is set, do not use parallelism.
1258
1259 2008-12-17  Rafael Avila de Espindola  <espindola@google.com>
1260
1261         * lto.c (lto_fixup_function): New.
1262         (lto_fixup_tree): Call lto_fixup_function.
1263
1264 2008-12-14  Doug Kwan  <dougkwan@google.com>
1265
1266         * lto.c (lto_1_to_1_map): Create a cgraph node set for any global
1267         variables if there is no function.
1268
1269 2008-12-10  Simon Baldwin  <simonb@google.com>
1270
1271         * ltrans-driver: Always run make in silent mode, to avoid make's
1272         trace on stdout interfering with lto-wrapper output.
1273
1274 2008-12-10  Doug Kwan  <dougkwan@google.com>
1275
1276         * lto.c (lto_add_inline_clones): Do not force master clones of
1277         inlined functions already in SET to be static inline.
1278
1279 2008-12-04  Doug Kwan  <dougkwan@google.com>
1280
1281         * lto.c (globalize_context_t): New type to store states in
1282         globalization of cross-file statics.
1283         (globalize_cross_file_statics): New.
1284         (lto_scan_statics_in_ref_table): Walk tree to look for reachable
1285         static decls that need to be fixed up.
1286         (lto_scan_statics_in_cgraph_node): Change call interface to use
1287         a globalize_context_t CONTEXT for all states used.
1288         (lto_scan_statics_in_remaining_global_vars): New.
1289         (lto_promote_cross_file_statics): Use new call interface of
1290         LTO_SCAN_STATICS_IN_CGRAPH_NODE.  Handle remaining externally
1291         visible vars in the last set.
1292
1293 2008-12-03  Diego Novillo  <dnovillo@google.com>
1294
1295         * lto.c (lto_fixup_tree): Do not emit an error when
1296         PREVAILING throw but T doesn't.
1297
1298 2008-12-02  Doug Kwan  <dougkwan@google.com>
1299
1300         * lto.c (lto_scan_statics_in_ref_table): New function factored out
1301         from code in ...
1302         (lto_scan_statics_in_cgraph_node): Handle both file-scope static
1303         variables and functions.
1304         (lto_promote_cross_file_statics): Rename bitmaps to SEEN_DECLS
1305         and GLOBAL_DECLS from SEEN_VARS and GLOBAL_VARS.
1306
1307 2008-11-29  Diego Novillo  <dnovillo@google.com>
1308
1309         * lto.c: Include timevar.h.
1310         (lto_materialize_function): Tidy.  Add comments.
1311         (lto_wpa_write_files): Tidy.
1312         (lto_execute_ltrans): Tidy.
1313         (lto_main): Add local variable LTO_TIMER.  Initialize it
1314         to one of TV_WHOPR_WPA, TV_WHOPR_LTRANS or TV_LTO.
1315         Start and stop the timer.
1316         Tidy comments.
1317         * Make-lang.in (lto.o): Add dependency on timevar.h.
1318         * ltrans-driver: React to -v and -save-temps.
1319         Use simple heuristic to determine how much parallelism to
1320         use when executing make.
1321
1322 2008-11-12  Doug Kwan  <dougkwan@google.com>
1323
1324         * lto.c (lto_bitmap_obstack): Remove var.
1325         (lto_materialize_function): Do nothing instead of marking function
1326         body in file if flag_wpa is true.
1327         (lto_add_all_inlinees): Use bitmap functions in lto-utils.c.
1328         (lto_scan_statics_in_cgraph_node): New function.
1329         (lto_promote_cross_file_statics): Same.
1330         (lto_wpa_write_files): Call lto_promote_cross_file_statics.
1331         Use bitmap functions in lto-utils.c.  Remove unsued label OUT.
1332         * Make-lang.in (lto/lto.o): Add lto-utils.h to dependency list.
1333
1334 2008-11-09  Diego Novillo  <dnovillo@google.com>
1335
1336         * lto/lto.c (lto_fixup_tree): Change error message locus
1337         information to include location of mismatching
1338         declaration.
1339         Use TREE_NO_WARNING to avoid repeated messages.
1340         (lto_main): If lto_fixup_decls emitted any errors, exit.
1341         * lto/lto-lang.c: Don't include libfuncs.h and except.h
1342         (lto_init_options): Don't enable exceptions by default.
1343         (lto_eh_runtime_type): Move to lto-function-in.c
1344         (lto_init_eh): Likewise.
1345         (lto_init): Don't call lto_init_eh.
1346         * lto/Make-lang.in (lto-lang.o): Remove dependency on
1347         libfuncs.h and except.h.
1348
1349 2008-10-30  Diego Novillo  <dnovillo@google.com>
1350
1351         * lto.c (lto_read_decls): Declare debug_main only if
1352         LTO_STREAM_DEBUGGING is enabled.
1353
1354 2008-10-30  Simon Baldwin  <simonb@google.com>
1355
1356         * lto.c (lto_wpa_write_files): Create intermediate files with
1357         make_cwd_temp_file().
1358         (lto_maybe_unlink): New.  Delete intermediate WPA files unless
1359         WPA_SAVE_LTRANS is set.
1360         (lto_main): Call lto_maybe_unlink() for intermediate WPA files.
1361         * ltrans-driver: Do not strip directory from output files.
1362
1363 2008-10-29  Doug Kwan  <dougkwan@google.com>
1364
1365         * lto.c (free_decl): Call lto_symtab_clear_resolution when freeing
1366         DECL.
1367         * Make-lang.in (LTO_OBJS): Remove lto/lto-symtab.o
1368         (lto/lto-symtab.o): Remove rule.
1369         * lto-tree.h (struct lang_identifier): Remove LTO specific fields.
1370         (struct lang_decl): Remove RESOLUTION and add DUMMY in struct.
1371         (LANG_IDENTIFIER_CAST, LTO_IDENTIFIER_DECL, LTO_DECL_RESOLUTION):
1372         Remove macros.
1373         lto-symtab.c (File): Move up one level.
1374         lto-lang.c (cgraph.h): Remove include.
1375         (input_overwrite_node, input_node, input_edge, input_cgraph_1,
1376         input_cgraph): Move to lto-cgraph.c in gcc directory above.
1377         (LANG_HOOKS_INPUT_CGRAPH): Remove use of macro.
1378
1379 2008-10-24 Rafael Espindola  <espindola@google.com>
1380
1381         * lto-function-in.c (get_resolution): Return LDPR_PREEMPTED_IR for
1382         non prevailing weak symbols.
1383
1384 2008-10-24 Rafael Espindola  <espindola@google.com>
1385
1386         * lto-lang.c (input_cgraph_1): Iterate over nodes, not cgraph_nodes.
1387
1388 2008-10-24 Rafael Espindola  <espindola@google.com>
1389
1390         * lto-lang.c (input_node): Avoid casts from pointers to ints of
1391         different types.
1392
1393 2008-10-23  Simon Baldwin  <simonb@google.com>
1394
1395         * lto-lang.c (input_node): Save the node reference, rather than the
1396         node pointer, in node->inlined_to.
1397         (input_cgraph_1): Convert node references into node pointers.
1398
1399 2008-10-22  Diego Novillo  <dnovillo@google.com>
1400             Rafael Espindola  <espindola@google.com>
1401
1402         * lto.c (lto_resolution_read): Tidy.
1403         * lto-symtab.c (lto_symtab_prevailing_decl): Do not
1404         abort if RET is NULL.
1405
1406 2008-10-22  Doug Kwan  <dougkwan@google.com>
1407
1408         * lto.c (lto_fixup_tree): Check for NOTHROW conflict only if
1409         exceptions flag is given.
1410         * lto-lang.c: (lto_init_options) Set default exceptions flag.
1411         (lto_init_eh): Remove exceptions flag initialization.
1412         (lto_init): Only call lto_init_eh if exceptions flag is set. 
1413
1414 2008-10-21  Diego Novillo  <dnovillo@google.com>
1415
1416         * lto.c: Tidy some formatting.
1417         * lto.h: Likewise.
1418
1419 2008-10-21  Simon Baldwin  <simonb@google.com>
1420
1421         * lto-symtab.c: (lto_same_type_p): Types cannot be equal if one of
1422         them is NULL (but not the other).
1423
1424 2008-10-17  Diego Novillo  <dnovillo@google.com>
1425
1426         * ltrans-driver: Divert output from make to a temporary file.
1427         Show it if the call to make failed.
1428
1429 2008-10-15  Diego Novillo  <dnovillo@google.com>
1430
1431         * lto.c (lto_wpa_write_files): Reformat do-while loop.
1432         Do not print TEMP_FILENAME
1433         * ltrans-driver: Call make with -s.
1434
1435 2008-10-15  Diego Novillo  <dnovillo@google.com>
1436
1437         * lto-symtab.c (lto_symtab_merge_decl): Do not force
1438         TREE_STATIC on global symbols.
1439
1440 2008-10-14  Ollie Wild  <aaw@google.com>
1441
1442         * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): Remove.
1443         (LTRANS_DRIVER_EXE): Add.
1444         (lto.all.cross): Add LTRANS_DRIVER_EXE.
1445         (lto.all.encap): Add LTRANS_DRIVER_EXE.
1446         (lto.install.common): Remove ltrans-driver.
1447         (lto.mostlyclean): Add LTRANS_DRIVER_EXE.
1448         (LTRANS_DRIVER_EXE): New build rule.
1449         * config-lang.in (compilers): Add ltrans-driver.
1450
1451 2008-10-14  Diego Novillo  <dnovillo@google.com>
1452
1453         * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): Disable transformation
1454         of program name.
1455
1456 2008-10-13  Ollie Wild  <aaw@google.com>
1457
1458         * lang-spec.h (@lto): Replace lto1_options with cc1_options.
1459         * lto.c (lto_execute_ltrans): Add "-fno-wpa -fltrans -xlto" to CFLAGS.
1460         * ltrans-driver (LTRANS_FLAGS): Remove.
1461
1462 2008-10-08  Doug Kwan  <dougkwan@google.com>
1463
1464         * lto.c (lto_fixup_tree): Remove ATTRIBUTE_UNUSED from DATA.
1465         Handle new tree codes RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE
1466         and TREE_BINFO.  Also move code handling FUNCTION_DECL and VAR_DECL
1467         from lto_fixup_state to here.
1468         (lto_fixup_state): Take an lto_fixup_data_t object DATA instead of
1469         just a free-list.  Fix up types also.  Move decl merging code to
1470         lto_fixup_tree.
1471         (lto_fixup_state_aux): Change AUX to point to an lto_fixup_data_t
1472         object.
1473         (lto_fixup_decls): Use another pointer set to avoid multiple
1474         walking of nodes except for DECLs to be replaced.  Pass an
1475         lto_fixup_data_t object to tree-walker.
1476
1477 2008-10-08 Rafael Espindola  <espindola@google.com>
1478
1479         * lto-symtab.c (lto_symtab_set_resolution): New.
1480         (lto_symtab_merge_decl): Use lto_symtab_set_resolution and
1481         lto_symtab_get_resolution.
1482         (lto_symtab_prevailing_decl): Return decl for non public decls.
1483         (lto_symtab_get_resolution): New.
1484         * lto.c (lto_fixup_tree, lto_fixup_state): Remove unecessary checks.
1485
1486 2008-10-06 Rafael Espindola  <espindola@google.com>
1487
1488         * lto-lang.c: Include cgraph.h.
1489         (input_overwrite_node, input_node, input_edge, input_cgraph_1,
1490         input_cgraph): Moved from lto-cgraph.c.
1491         (LANG_HOOKS_INPUT_CGRAPH): New.
1492
1493 2008-10-03 Rafael Espindola  <espindola@google.com>
1494
1495         * lto.c (lto_fixup_tree, lto_fixup_state): Fix the FIXME.
1496
1497 2008-10-03 Rafael Espindola  <espindola@google.com>
1498
1499         * lto-symtab.c (lto_symtab_overwrite_decl): Remove. Remove all calls.
1500         (lto_symtab_merge_decl): Update  LTO_IDENTIFIER_DECL the reflect the
1501         prevailing definition. Don't mark TREE_NOTHROW differences.
1502         * lto.c (lto_fixup_tree): New.
1503         (lto_fixup_state): New.
1504         (lto_fixup_state_aux): New.
1505         (free_decl): New.
1506         (lto_fixup_decls): New.
1507         (lto_main): Call lto_fixup_decls.
1508
1509 2008-10-02  Ollie Wild  <aaw@google.com>
1510
1511         * lang.opt (fltrans): Moved from common.opt.  Remove RejectNegative
1512         and Init.
1513         (fwpa): Moved from common.opt.  Remove RejectNegative and Init.
1514         * lto-lang.c (lto_post_options): Add validation and fixups for
1515         -fltrans and -fwpa.
1516
1517 2008-10-02 Rafael Espindola  <espindola@google.com>
1518
1519         * lto-symtab.c (lto_symtab_merge_var, lto_symtab_merge_fn,
1520         lto_symtab_merge_decl): Return void.
1521         (lto_symtab_prevailing_decl): New.
1522
1523 2008-09-30 Rafael Espindola  <espindola@google.com>
1524
1525         * lto-symtab.c (lto_symtab_compatible): Remove the check for already
1526         defined symbols.
1527         (lto_symtab_overwrite_decl): Copy LTO_DECL_RESOLUTION.
1528         (lto_symtab_merge_decl): Store symbol resolution in LTO_DECL_RESOLUTION.
1529         Check for already defined symbols.
1530         * lto-tree.h (lang_decl): Remove dummy and add resolution fields.
1531         (LTO_IDENTIFIER_RESOLUTION): Remove.
1532         (LTO_DECL_RESOLUTION): New.
1533
1534 2008-09-30 Rafael Espindola  <espindola@google.com>
1535
1536         * lto.c (lto_read_decls): Use new input_tree signature.
1537
1538 2008-09-26  Doug Kwan  <dougkwan@google.com>
1539
1540         * lto.c (lto_main): Call lto_fixup_nothrow_decls to fix up function
1541         bodies affected by exception attribute merging of DECLs.
1542         * lto-symtab.c (lto_symtab_merge_decl): Handle exception attribute
1543         merging. 
1544
1545 2008-09-25  Rafael Espindola  <espindola@google.com>
1546
1547         * Make-lang.in (PLUGIN_API_H, LTO_TREE_H): New.
1548         (lto/lto-lang.o, lto/lto.o, lto/lto-symtab.o) Use LTO_TREE_H.
1549         * lto-symtab.c (lto_symtab_compatible): New.
1550         (lto_symtab_overwrite_decl): New.
1551         (lto_symtab_merge_decl): Refactor to use the above functions
1552         and the resolution from lang_identifier.
1553         * lto-tree.h: Include plugin-api.h.
1554         (lang_identifier): Add resolution.
1555         (LTO_IDENTIFIER_RESOLUTION): New.
1556
1557 2008-09-25  Ollie Wild  <aaw@google.com>
1558
1559         * lang.opt (fltrans-output-list=): New option.
1560         * lto.c (lto_execute_ltrans): Output file names to ltrans_output_list.
1561
1562 2008-09-25 Rafael Espindola  <espindola@google.com>
1563
1564         * lto.c (lto_resolution_read): Initialize ret;
1565
1566 2008-09-24  Ollie Wild  <aaw@google.com>
1567
1568         * lto.c (sys/mman.h): Move include.
1569         (lto_wpa_write_files): Return a list of written files.
1570         (lto_execute_ltrans): New function.
1571         (lto_main): Call lto_execute_ltrans.
1572         (ltrans-driver): New file.
1573         * lto-lang.c (DEFAULT_LTRANS_DRIVER): New macro.
1574         (DEAULT_LTRANS_DRIVER_LEN): New macro.
1575         (lto_init_options): Initialize ltrans_driver.
1576         (lto_handle_option): Fix incorrect default output value.
1577         * lang.opt (fltrans-driver=): New option.
1578         * Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): New variable.
1579         (lto.install-common): Add lto/ltrans-driver.
1580
1581 2008-09-24 Rafael Espindola  <espindola@google.com>
1582
1583         * Make-lang.in (LTO_OBJS): Add lto/common.o.
1584         (lto/lto.o): Depend on lto/common.h.
1585         (lto/common.o): New.
1586         * lang.opt (resolution): New.
1587         * lto-lang.c (resolution_file_name): New.
1588         (lto_handle_option): Handle OPT_resolution.
1589         * lto-symtab.c (lto_symtab_merge_decl): Add a resolution argument.
1590         (lto_symtab_merge_var,lto_symtab_merge_fn): Add a resolution argument.
1591         pass it to lto_symtab_merge_decl.
1592         * lto.c: Include common.h.
1593         (lto_read_decls): Add resolutions and resolutions_size arguments.
1594         Initialize data_in.globals_resolution and
1595         data_in.globals_resolution_size.
1596         (index_and_symbol_resolution): New.
1597         (lto_resolution_read): New.
1598         (lto_file_read): Add argument resolution_file.
1599         Read resolution.
1600         * lto.h (resolution_file_name): New.
1601
1602 2008-09-23 Rafael Espindola  <espindola@google.com>
1603
1604         * common.c: Update description.
1605         * common.h: Update description.
1606
1607 2008-09-23 Rafael Espindola  <espindola@google.com>
1608
1609         * common.c: Moved from lto-plugin.
1610         * common.h: Moved from lto-plugin.
1611
1612 2008-09-22  Doug Kwan  <dougkwan@google.com>
1613
1614         * lto.c (VEC(bitmap,heap)): Declare.
1615         (lto_materialize_function): Handle WAP mode specially.
1616         (lto_add_inline_clones): New.
1617         (lto_add_all_inlinees): Changle algorithm and to use bitmaps.  Also
1618         return a bitmap of inlined decls.
1619         (lto_wpa_write_files): Handle all DECLs brought in by inlining.
1620         (lto_main): Call reset_inline_failed to reset inlining states.
1621         Check call-graph after WPA inlining.
1622         * lto-lang.c (lto_init): Do not clear flag_generate_lto
1623         unconditionally.
1624
1625 2008-09-19  Doug Kwan  <dougkwan@google.com>
1626
1627         lto.c (lto_main): Remove unsued wrapper code.
1628         lang-specs.h (@lto): Use lto1_options instead of cc1_options.
1629
1630 2008-09-19  Rafael Espindola  <espindola@google.com>
1631
1632         * lto-symtab.c: Include lto-tree-in.h.
1633         * lto-tree.h (lto_symtab_merge_var, lto_symtab_merge_fn): Remove.
1634         * lto.h (lto_symtab_merge_var, lto_symtab_merge_fn): Remove
1635         * Make-lang.in (lto/lto-symtab.o): Add lto-tree-in.h.
1636
1637 2008-09-17  Paolo Bonzini  <bonzini@gnu.org>
1638             Rafael Avila de Espindola  <espindola@google.com>
1639
1640         * lto-lang.c (COMPOUND_LITERAL_EXPR_DECL_STMT,
1641         COMPOUND_LITERAL_EXPR_DECL): Remove.
1642         (emit_local_var): Remove.
1643         (lto_expand_expr): Remove.
1644         (lto_staticp): Remove.
1645         (LANG_HOOKS_EXPAND_EXPR): Remove.
1646         (LANG_HOOKS_STATICP): Remove.
1647
1648 2008-09-11  Diego Novillo  <dnovillo@google.com>
1649
1650         * lto-lang.c: Include except.h and libfuncs.h.
1651         (lto_init_eh): New.
1652         (lto_init): Call it.
1653         Set flag_generate_lto to 0.
1654         * Make-lang.in (lto-lang.o): Add dependency on except.h
1655         and libfuncs.h.
1656
1657 2008-09-09  Bill Maddox  <maddox@google.com>
1658
1659         * lto-lang.c: Include header file expr.h.
1660         (COMPOUND_LITERAL_EXPR_DECL_STMT,
1661         COMPOUND_LITERAL_EXPR_DECL): Copied from c-common.h.
1662         (emit_local_var):  Copied from c-semantics.c.
1663         (lto_expand_expr, lto_staticp): Copied from c_expand_expr
1664         and c_staticp in c-common.c.
1665         (LANG_HOOKS_EXPAND_EXPR,LANG_HOOKS_STATICP):  Redefined.
1666
1667 2008-09-08  Diego Novillo  <dnovillo@google.com>
1668
1669         * lto-lang.c (lto_global_bindings_p): Return 1 during
1670         IPA passes.
1671
1672 2008-09-07  Diego Novillo  <dnovillo@google.com>
1673
1674         * lto.c: Tidy formatting.
1675
1676 2008-08-04  Bill Maddox  <maddox@google.com>
1677
1678         * lto-symtab.c (lto_symtab_merge_decl): Add comment.
1679         
1680 2008-09-03  Doug Kwan  <dougkwan@google.com>
1681
1682         lto.c (lto_add_all_inlinees): Reset FAILED_REASON of edges to
1683         CIF_OK instead of NULL.
1684
1685 2008-09-02  Diego Novillo  <dnovillo@google.com>
1686             Simon Baldwin  <simonb@google.com>
1687
1688         * lto-lang.c (lto_type_for_size): Rewrite.  Adapt from
1689         c_common_type_for_size.
1690         (lto_type_for_mode): Remove ATTRIBUTE_UNUSED markers.
1691         (lto_init): Call linemap_add.
1692         (signed_and_unsigned_types): Remove.
1693
1694 2008-08-29  Diego Novillo  <dnovillo@google.com>
1695
1696         * lto-lang.c (handle_noreturn_attribute): New local function.
1697         (handle_const_attribute): New local function.
1698         (handle_malloc_attribute): New local function.
1699         (handle_pure_attribute): New local function.
1700         (handle_novops_attribute): New local function.
1701         (handle_nonnull_attribute): New local function.
1702         (handle_nothrow_attribute): New local function.
1703         (handle_sentinel_attribute): New local function.
1704         (handle_type_generic_attribute): New local function.
1705         (handle_format_attribute): New local function.
1706         (handle_format_arg_attribute): New local function.
1707         (lto_attribute_table): Declare.
1708         (lto_format_attribute_table): Declare.
1709         (lto_init_attributes): New local function.
1710         (lto_define_builtins): Call it.
1711         Call targetm.init_builtins and build_common_builtin_nodes.
1712         (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Define.
1713         (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Define.
1714
1715 2008-08-28  Diego Novillo  <dnovillo@google.com>
1716
1717         * Make-lang.in (lto-lang.o): Replace tree-gimple.h with
1718         $(GIMPLE_H).
1719         (lto-symtab.o): Add dependency on $(GIMPLE_H).
1720         * lto-lang.c: Include gimple.h instead of tree-gimple.h.
1721         * lto-symtab.c: Include gimple.h.
1722         * lto-tree.h (chain_next): Replace GENERIC_NEXT with
1723         TREE_CHAIN.
1724
1725 2008-08-27  Doug Kwan  <dougkwan@google.com>
1726
1727         * lto.c (vec.h, bitmap.h, pointer-set.h, ipa-prop.h, ggc.h,
1728         gt-lto-lto.h): New includes.
1729         (lto_materialize_function): Do not read in function body in WPA mode.
1730         Format a line to fit in 80 columns.
1731         (lto_cgraph_node_sets): New garbage collected variable.
1732         (lto_1_to_1_map, lto_add_all_inlinees, lto_wpa_write_files):
1733         New functions.
1734         (lto_main): Initialize bitmap obstack.  Add code to handle WPA mode.
1735         * Make-lang.in (LTO_H): Replace filename lto-section-in.h with 
1736         variable LTO_SECTION_IN_H.
1737         (lto/lto.o): Include gt-lto-lto-c.h ggc.h ,VEC_H, BITMAP_H,
1738         pointer-set.h and IPA_PROP_H. Also replace filename lto-section-in.h
1739         with variable LTO_SECTION_IN_H.
1740         * config-lang.in (gtfiles): Add lto/lto.c.
1741         * lto-symtab.c (lto_symtab_merge_decl): Set DECL_CONTEXT of
1742         merged DECL_RESULT correctly.
1743
1744 2008-08-26  Bill Maddox  <maddox@google.com>
1745
1746         * lto-lang.c  Include tree-gimple.h.
1747         (lto_mark_addressable): Call mark_addressable rather than
1748         asserting.
1749         (lto_post_options): Suppress debug info generation.
1750         * Make-lang.in: Add dependency of lto-lang.o on tree-gimple.h.
1751         
1752 2008-08-25  Bill Maddox <maddox@google.com>
1753
1754         * lto-symtab.c (lto_symtab_merge_decl): Remove a suspect
1755         assertion and leave an explanatory comment in its place.
1756         
1757 2008-08-21  Doug Kwan  <dougkwan@google.com>
1758
1759         * lto.c (preload_common_nodes): Call lto_get_common_nodes to get a list
1760         of common nodes instead of computing locallly.
1761         (lto_read_in_decl_state): New.
1762         (lto_read_decls): Change code for udpate in struct lto_decl_header.
1763         Read global and per-function in-decl states.
1764         * Make-lang.in (LTO_H): Update dependency.
1765         (lto/lto.o): Same.
1766         (lto-symtab.c): Merge   (revision 139039)
1767         * lto-symtab.c (lto_symtab_merge_decl): Merge DECL_RESULT.
1768
1769 2008-08-21  Rafael Espindola  <espindola@google.com>
1770
1771         * config-lang.in (target_libs): New.
1772
1773 2008-08-20  Bill Maddox  <maddox@google.com>
1774
1775         * lto.c (current_lto_file): Remove GTY marker from static
1776         variable.  Remove include of file gt-lto-lto.h.
1777         * Make-lang.in: Remove dependency of lto/lto.o on
1778         gt-lto-lto.h.
1779         * lto-elf.c (lto_file_close): Removed.
1780         (lto_elf_file_open): Use XCNEW instead of GGC_CNEW to
1781         allocate lto_elf_file object.
1782         (lto_elf_file_close): Free lto_elf_file object after close.
1783         * lto.h (struct lto_file_struct): Remove GTY marker.
1784         * config-lang.in: Remove lto/lto.h and lto/lto.c from
1785         gtfiles.
1786         
1787 2008-08-20  Bill Maddox  <maddox@google.com>
1788
1789         * lto.c (lto_read_decls): Provide dummy argument to input_tree
1790         to conform to its new signature.
1791         * lto-symtab.c (lto_symtab_merge_decl): Do not invoke ggc_free
1792         on discarded node here, now called in global_vector_fixup.
1793         
1794 2008-08-09  Bill Maddox  <maddox@google.com>
1795
1796         * lto.c (preload_common_nodes): Verify that fileptr_type_node
1797         has not been set to a front-end-specific value.
1798         
1799 2008-08-05  Doug Kwan  <dougkwan@google.com>
1800         
1801         * Make-lang.in (lto-symtab.o): Add missing dependencies to fix
1802         build breakage.
1803
1804 2008-07-30  Bill Maddox  <maddox@google.com>
1805
1806         * lto.c (lto_materialize_function): Call lto_original_decl_name.
1807         Remove obsolete comments.
1808         (lto_read_decls): Remove initialization of deleted field data_in.global.
1809         Tidy up comments.
1810         (lto_main): Remove redundant initialization of section_hash_table.
1811         * lto-elf.c: Removed obsolete comments.
1812         * lto.h: Tidy up comments.
1813         * lto-symtab.c (lto_least_common_multiple): New function.
1814         (lto_symtab_merge_decl): Merge variable alignments in some cases.
1815         Tidy up comments.
1816
1817 2008-07-25  Diego Novillo  <dnovillo@google.com>
1818             Bill Maddox  <maddox@google.com>
1819
1820         * lto.c: Re-order include files.
1821         Include lto-section-out.h.
1822         (preload_common_nodes): Add debugging output.
1823         Add new local INDEX_TABLE.
1824         Call preload_common_node.
1825         * Make-lang.in (lto.o): Add dependency on lto-section-out.h
1826
1827 2008-07-13  Bill Maddox  <maddox@google.com>
1828
1829         * lto.c (lto_read_decls): Cast pointer to const char * to avoid
1830         unwanted scaling during pointer addition.
1831
1832 2008-07-11  Bill Maddox  <maddox@google.com>
1833             Diego Novillo  <dnovillo@google.com>
1834
1835         * lto.c (lto_read_decls): Fix C++ compatibility warnings.
1836         Make code const-correct.
1837         (lto_file_read): Fix C++ compatibility warnings.
1838         (lto_read_section_data):  Fix C++ compatibility warnings.
1839         (lto_get_section_data): Use CONST_CAST to avoid warning when
1840         const pointer passed to free.
1841         * lto-elf.c (lto_elf_build_section_table): Fix C++
1842         compatibility warnings.
1843         (lto_elf_append_data):  Fix C++ compatibility warnings.  Use CONST_CAST
1844         to avoid warning assigning const pointer to d_buf field of Elf_Data.
1845         (lto_get_current_out_file):  Fix C++ compatibility warnings.
1846
1847 2008-07-11  Diego Novillo  <dnovillo@google.com>
1848
1849         * Make-lang.in (lto-warn): Define.
1850
1851 2008-07-03  Simon Baldwin  <simonb@google.com>
1852
1853         * lto.c (lto_read_decls): Wrapped debug-only data items within #ifdef
1854         LTO_STREAM_DEBUGGING.
1855
1856 2008-06-27  Ollie Wild  <aaw@google.com>
1857
1858         * lto-elf.c (lto-section-out.h): New include.
1859         (struct lto_elf_file): Remove bits member.  Add scn, shstrtab_stream,
1860         and data members.
1861         (cached_file_attrs): New static variable.
1862         (lto_elf_get_shdr, lto_elf_free_shdr): Remove elf_file parameter.
1863         Use cached_file_attrs for checking bits.
1864         (lto_elf_build_section_table): Remove elf_file argument from
1865         lto_elf_get_shdr and lto_elf_free_shdr calls.
1866         (DEFINE_INIT_SHDR): New macro.
1867         (init_shdr32, init_shdr64): New functions defined via the
1868         DEFINE_INIT_SHDR macro.
1869         (lto_elf_begin_section_with_type): New function.
1870         (lto_elf_begin_section): New function.
1871         (lto_elf_append_data): New function.
1872         (lto_elf_end_section): New function.
1873         (DEFINE_VALIDATE_EHDR): New macro.
1874         (validate_ehdr32, validate_ehdr64): New functions defined via the
1875         DEFINE_VALIDATE_EHDR macro.
1876         (validate_file): New function.
1877         (DEFINE_INIT_EHDR): New macro.
1878         (init_ehdr32, init_ehdr64): New functions defined via the
1879         DEFINE_INIT_EHDR macro.
1880         (init_ehdr): New function.
1881         (lto_elf_file_open): Add support for writable files.  Move some
1882         validation logic to validate_file.
1883         (lto_elf_file_close): Add support for writable files.  Write file data
1884         and free data blocks.
1885         (current_out_file): New static variable.
1886         (lto_set_current_out_file): New function.
1887         (lto_get_current_out_file): New function.
1888         * lto.c (lto_main): Add writable argument to lto_elf_file_open calls.
1889         Add temporary initialization for testing ELF serialization.
1890         * lto.h (lto-section-out.h): New include.
1891         (struct lto_file_struct): Slight modification to comment.
1892         (lto_elf_file_open): Add writable parameter.
1893         (lto_elf_begin_section): New function declaration.
1894         (lto_elf_append_data): New function declaration.
1895         (lto_elf_end_section): New function declaration.
1896         (lto_set_current_out_file, lto_get_current_out_file): New function
1897         declarations.
1898         * lto-lang.c (LANG_HOOKS_BEGIN_SECTION): Set as lto_elf_begin_section.
1899         (LANG_HOOKS_APPEND_DATA): Set as lto_elf_append_data.
1900         (LANG_HOOKS_END_SECTION): Set as lto_elf_end_section.
1901         * Make-lang.in (LTO_H): Add lto-section-out.h.
1902
1903 2008-06-12  Ollie Wild  <aaw@google.com>
1904
1905         * lto.h (struct lto_file_vtable_struct): Remove.
1906         (struct lto_file_struct): Remove vtable member.
1907         * lto-elf.c (lto_file_init): Remove vtable argument.
1908         (lto_elf_map_optional_lto_section): Remove.
1909         (lto_elf_unmap_section): Remove.
1910         (lto_elf_file_vtable): Remove.
1911         (lto_elf_file_open): Remove lto_elf_file_vtable argument from
1912         lto_file_init call.
1913         (lto_elf_find_section_data): Remove.
1914
1915 2008-06-11  Ollie Wild  <aaw@google.com>
1916
1917         * lto.c (lto_file_read): Add const qualifier to data variable.
1918
1919 2008-06-11  Diego Novillo  <dnovillo@google.com>
1920
1921         Merge from lto-streamber sub-branch.
1922
1923         2008-06-04  Ollie Wild  <aaw@google.com>
1924
1925                 * lto.c: Remove inclusion of dwarf2.h and dwarf2out.h.
1926                 * Make-lang.in (lto.o): Remove dependency on dwarf2.h.
1927
1928         2008-05-28  Bill Maddox  <maddox@google.com>
1929
1930                 Replace the DWARF reader in the LTO front-end.
1931
1932                 * lto.c: Include lto-tree-in.h, lto-tags.h.
1933                 (enum DWARF2_class, DW_cl_constant, struct
1934                 DWARF2_form_data, struct lto_context,
1935                 lto_fd_init, lto_info_fd_init,
1936                 lto_abbrev_fd_init, lto_info_fd_close,
1937                 lto_file_init, lto_file_close,
1938                 lto_file_corrupt_error, lto_abi_mismatch_error,
1939                 LTO_CHECK_INT_VAL, LTO_READ_TYPE,
1940                 lto_read_uleb128, lto_read_sleb128,
1941                 lto_read_initial_length, lto_abbrev_read_attrs,
1942                 lto_abbrev_read, lto_abbrev_read_lookup,
1943                 lto_read_section_offset,
1944                 lto_read_comp_unit_header, find_cu_for_offset,
1945                 lto_get_file_name,
1946                 lto_resolve_reference,lto_read_form,
1947                 attribute_value_as_int,
1948                 make_signed_host_wide_int,
1949                 attribute_value_as_constant, lto_cache_hash,
1950                 lto_cache_eq, lto_cache_store_DIE,
1951                 lto_cache_lookup_DIE, lto_find_integral_type,
1952                 lto_find_integral_type_1,
1953                 LTO_BEGIN_READ_ATTRS_UNCHECKED,
1954                 LTO_BEGIN_READ_ATTRS, LTO_END_READ_ATTRS,
1955                 lto_unsupported_attr_error, lto_get_identifier,
1956                 lto_read_referenced_type_DIE,
1957                 lto_read_compile_unit_DIE,
1958                 lto_read_array_type_DIE,
1959                 lto_read_structure_union_class_type_DIE,
1960                 lto_read_enumerator_DIE,
1961                 lto_read_enumeration_type_DIE,
1962                 lto_read_only_for_child_DIEs,
1963                 lto_read_only_for_child_DIEs,
1964                 lto_read_member_DIE, lto_read_abbrev,
1965                 lto_read_variable_formal_parameter_constant_DIE,
1966                 lto_get_body): Removed.
1967                 (preload_common_nodes): New function.
1968                 (lto_read_decls): Convert for new global streamer.
1969                 (lto_materialze_file_data,
1970                 lto_read_subroutine_type_subprogram_die,
1971                 lto_read_unspecified_parameters_DIE,
1972                 lto_read_typedef_DIE,
1973                 lto_read_pointer_reference_type_DIE,
1974                 lto_read_subrange_type_DIE,
1975                 lto_read_base_type_DIE,
1976                 lto_read_const_volatile_restrict_type_DIE,
1977                 lto_read_namespace_DIE,
1978                 lto_read_unspecified_type_DIE, lto_read_DIE,
1979                 lto_read_child_DIEs, lto_collect_child_DIEs):
1980                 Removed.
1981                 (lto_info_read, lto_set_cu_context): Removed.
1982                 (lto_file_read): Convert for new global streamer.
1983                 (lto_resolve_type_ref, lto_read_DIE_at_ptr,
1984                 lto_resolve_var_ref, lto_resolve_fn_ref,
1985                 lto_resolve_field_ref, lto_resolve_typedecl_ref,
1986                 lto_resolve_namespacedecl_ref): Removed.
1987                 (lto_file_init, lto_file_close): Moved to lto-elf.c.
1988                 * lto-tree.h (lto_symtab_merge_var,
1989                 lto_symtab_mergee_fun): Declare here.
1990                 * lto-elf.c (lto_file_init, lto_file_close): Moved from lto.c.
1991                 (lto_elf_file_open): Removed code to read DWARF debug sections.
1992                 * lto.h (lto_context, DWARF2_attr, DWARF2_abbrev,
1993                 DWARF2_CompUnit, lto_die_ptr,
1994                 lto_die_cache_entry, lto_fd, lto_info_fd,
1995                 lto_abbrev_fd): Removed.
1996                 (lto_file): Removed debug_info and debug_abbrev fields.
1997                 (lto_ref): Removed.
1998                 (lto_file_init, lto_file_close,
1999                 lto_resolve_type_ref, lto_resolve_var_ref,
2000                 lto_resolve_fn_ref, lto_resolve_field_ref,
2001                 lto_resolve_typedecl_ref,
2002                 lto_resolve_namespacedecl_ref,
2003                 lto_get_file_name): Removed declarations.
2004                 (lto_symtab_merge_var, lto_symtab_merge_fn):
2005                 Declarations moved to lto-tree.h.
2006                 * lto-symtab.c (lto_compatible_attributes_p):
2007                 Lobotomize this, as it barfs on "Hello, world!".
2008                 * lto-section-out.c: Include lto-tree-out.h.
2009                 (lto_hash_global_slot_node,
2010                 lto_eq_global_slot_node, preload_common_nodes,
2011                 write_global_stream, write_global_references):
2012                 New functions.
2013                 (produce_asm_for_decls): Convert for new global streamer.
2014                 * lto-section-out.h (lto_hash_global_slot_node,
2015                 lto_eq_global_slot_node): Declare.
2016
2017 2008-06-07  Kenneth Zadeck <zadeck@naturalbridge.com>
2018             Jan Hubicka  <jh@suse.cz>
2019         
2020         * lto.c (sys/mman.h, tree-pass.h): New includes.
2021         (lto_materialize_constructors_and_inits,
2022         lto_materialize_function): Keeps length of section.
2023         (lto_materialize_cgraph): Removed.
2024         (lto_read_decls): Initialize fd field.
2025         (lto_file_read): Different return type and removed much code to
2026         lto_main.
2027         (page_mask): New variable.
2028         (lto_read_section_data, get_section_data, free_section_data): New
2029         functions.
2030         (lto_main): Now calls pass manager, sets the hooks so that the ipa
2031         passes can get the section data. 
2032         
2033 2008-05-27  Kenneth Zadeck <zadeck@naturalbridge.com>
2034
2035         * lto.h (lto_read_decls): Made local.
2036         (lto_input_function_body, lto_input_constructors_and_inits, 
2037         lto_input_cgraph): Declarations moved to lto-section-in.h.
2038         * lto-section-in.c: Moved to .. .
2039         * lto-cgraph-in.c: Ditto.
2040         * lto-section-in.h: Ditto.
2041         * lto-function-in.c: Ditto.
2042         * lto-lang.c (lto_handle_option): Added ATTRIBUTE_UNUSED to parms.
2043         (lto_insert_block): Removed.
2044         (LANG_HOOKS_INSERT_BLOCK): Removed.
2045         * Make-lang.in (lto-cgraph-in.o, lto-function-in.o,
2046         lto-section-in.o): Rules moved to lto/Makefile.in.
2047         
2048
2049 2008-05-16  Ollie Wild  <aaw@google.com>
2050
2051         * lto-lang.c (tree-inline.h): Include.
2052         (lto_post_options): New function.
2053         (LANG_HOOKS_POST_OPTIONS): Define.
2054         * lto-cgraph-in.c (overwrite_node): Set node->global.insns.
2055         * lto-function-in.c (input_bb): Set TREE_BLOCK (stmt).
2056
2057 2008-05-13  Diego Novillo  <dnovillo@google.com>
2058
2059         * lto-function-in.c (input_ssa_names): Call
2060         make_ssa_name_fn instead of make_ssa_name.
2061
2062 2008-05-12  Diego Novillo  <dnovillo@google.com>
2063
2064         * lto-cgraph-in.c (overwrite_node): Update references to
2065         inline summary fields.
2066         * lto-function-in.c (input_expr_operand): Do not handle
2067         STRUCT_FIELD_TAG.
2068
2069 2008-05-09  Ollie Wild  <aaw@google.com>
2070
2071         * lang.opt: New file.
2072         * lto-lang.c (lto_init_options): New function.
2073         (lto_handle_option): New function.
2074         (lto_init): Move initialization of flag_unit_at_a_time to
2075         lto_init_options.
2076         (LANG_HOOKS_INIT_OPTIONS): Define.
2077         (LANG_HOOKS_HANDLE_OPTION): Define.
2078
2079 2008-04-29  Ollie Wild  <aaw@google.com>
2080
2081         * lto.c (lto_read_namespace_DIE): New function.
2082         (lto_read_DIE): Add lto_read_namespace_DIE callback.  Cache
2083         NAMESPACE_DECL DIE's.
2084         (lto_resolve_namespacedecl_ref): New function.
2085         * lto.h (lto_resolve_namespacedecl_ref): New function.
2086         * lto-section-in.c (lto_read_decls): Read namespace declarations.
2087         * lto-section-in.h (struct lto_file_decl_data): Add namespace_decls
2088         and num_namespace_decls.
2089         * lto-function-in.c (input_expr_operand): Add NAMESPACE_DECL case.
2090         * lto-lang.c (lto_init_ts): New function.
2091         (LANG_HOOKS_INIT_TS): Set as lto_init_ts.
2092
2093 2008-04-16  Ollie Wild  <aaw@google.com>
2094
2095         * lto-function-in.c (input_type_ref): Updated function description.
2096
2097 2008-04-16  Ollie Wild  <aaw@google.com>
2098
2099         * lto-function-in.c (input_type_ref_1): New function.
2100         (input_type_ref): Split into two functions.
2101         (input_function): Add support for type contexts.
2102
2103 2008-04-16  Ollie Wild  <aaw@google.com>
2104
2105         * lto.c (lto_materialize_function): Use DECL_ASSEMBLER_NAME to compute
2106         section name
2107
2108 2008-04-16  Ollie Wild  <aaw@google.com>
2109
2110         * lto.c (lto_read_compile_unit_DIE): Add DW_LANG_C_plus_plus to the
2111         list of supported languages.
2112
2113 2008-03-25  Kenneth Zadeck <zadeck@naturalbridge.com>
2114
2115         Merge with mainline @133491.
2116
2117 2008-03-05  Kenneth Zadeck <zadeck@naturalbridge.com>
2118             Jan Hubicka  <jh@suse.cz>
2119
2120         * lto.c (lto_info_fd_init, lto_info_fd_close): Get rid of
2121         fd->unmaterialized_fndecls.
2122         (lto_get_file_name, lto_materialize_cgraph): New function.
2123         (lto_materialize_constructors_and_inits,
2124         lto_materialize_function): Read info directly from elf file.
2125         (lto_file_read): Made local and initialize dictionary so that
2126         other lto sections can be read without reprocessing the elf file.
2127         (lto_main): Read all functions after all files have been processed
2128         for their types, globals and cgraph.  
2129         * Make-lang.in (lto.o, lto-cgraph-in.c, lto-section-in): Changed
2130         dependencies.
2131         * lto-elf.c (lto_elf_file): Removed strtab, symtab fields.
2132         (hash_name, eq_name, lto_elf_build_section_table): New functions.
2133         (lto_elf_read_symtab): Removed function.
2134         (lto_elf_file_open): Removed call to lto_elf_read_symtab.
2135         * lto.h (lto_info_fd_struct): Removed unmaterialized_fndecls.
2136         (lto_file_read): Made local.
2137         (lto_get_file_name, lto_elf_build_section_table,
2138         lto_input_cgraph): 
2139         New function.
2140         * lto-section-in.c (lto_read_section_data, lto_get_section_data):
2141         New functions.
2142         (lto_read_decls): Get the file name.
2143         * lto-cgraph-in.c: New file.
2144         * lto-function-in.c (tag_to_expr): Stops at LTO_tree_last_tag.
2145         (input_expr_operand, lto_read_body): Set lto_debug_context.tag_names.
2146         (input_labels): Fixed latent sizeof issue.
2147         (input_function): Build stmt array to set call sites into cgraph
2148         edges.
2149         (lto_read_body): Reset cfun->curr_properties.
2150         * lto_section_in.h (lto_section_slot): New structure.
2151         (section_hash_table.lto_file_decl_data): New field.
2152
2153         
2154 2008-02-09  Kenneth Zadeck <zadeck@naturalbridge.com>
2155
2156         * lto.c (lto_read_variable_formal_parameter_const): Remove code to
2157         reconstruct static initializers.
2158         (lto_get_body, lto_materialize_function): Add lto_section_type as
2159         a parameter.
2160         (lto_materialize_constructors_and_inits,
2161         lto_materialize_file_data): New function.
2162         (lto_materialize_function,
2163         lto_read_subroutine_type_subprogram_DIE): Renamed unmap_fn_body to
2164         unmap_section and map_fn_body to map_section.
2165         (lto_set_cu_context): Process functions and static inits
2166         differently.
2167         * Make-lang.in (LTO_H, lto/lto-function-in.o,
2168         lto/lto-section-in.o): Update dependencies.
2169         * lto/lto-elf.c (lto_elf_map_optional_lto_section): Add
2170         lto_section_type parameter.
2171         (lto_elf_unmap_fn_body): Renamed to lto_elf_unmap_section.
2172         * lto.h (lto_file_vtable_struct): Removed two of the fields and 
2173         renamed the other two so that there is only one map function and
2174         one unmap function and each takes a section type parameter.
2175         (lto_read_function_body): Renamed to lto_input_function_body and
2176         added file_data parameter.
2177         (lto_read_var_init): Removed.
2178         (lto_input_constructors_and_inits): New function.
2179         * lto-section-in.c (lto_read_decls): New function.
2180         * lto-function-in.c (data_in): Moved fields field_decls, fn_decls,
2181         var_decls, type_decls, types to lto_file_decl_data.
2182         (input_type_ref, input_expr_operand, lto_read_body): Get
2183         field_decls, fn_decls, var_decls, type_decls, types from different
2184         structure.
2185         (input_globals, input_constructor, lto_read_var_init): Removed.
2186         (input_constructors_or_inits): New function.
2187         (lto_read_function_body, lto_input_constructors_and_inits):
2188         Renamed to lto_input_function_body and takes file_data parameter.
2189         * lto-section-in.h (lto_file_decl_data): New structure.
2190         
2191 2008-01-28  Kenneth Zadeck <zadeck@naturalbridge.com>
2192
2193         * lto-function-in.c (input_globals.c): Changed input type to
2194         lto_function_header.
2195         (input_bb): Removed code to deserialize the stmt number.
2196         (input_function): Renumber all stmts after they are input.
2197         (lto_read_body, lto_read_function_body, lto_read_var_init):
2198         Changed to used new header format and enum section_type.
2199         *lto-lang.c (success): Removed. 
2200         
2201 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
2202
2203         * lto-elf.c (lto_elf_lookup_sym): Remove unused function.
2204         (lto_elf_free_sym): Likewise.
2205
2206         * lto-elf.c (lto_elf_read_var_init): Remove unused function.
2207         (lto_elf_build_init): Likewise.
2208
2209 2008-01-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2210
2211         * lto-read.c: Renamed to lto-function-in.c.
2212         (input_1_unsigned): Moved to lto-section-in.c and renamed
2213         lto_input_1_unsigned.
2214         (input_uleb128): Moved to lto-section-in.c and renamed
2215         lto_input_uleb128.
2216         (input_widest_uint_uleb128): Moved to lto-section-in.c and renamed
2217         lto_input_widest_uint_uleb128.
2218         (input_sleb128): Moved to lto-section-in.c and renamed
2219         lto_input_sleb128.
2220         (input_integer): Moved to lto-section-in.c and renamed
2221         lto_input_integer.
2222         (debug_in_fun): Moved to lto-section-in.c and renamed
2223         lto_debug_in_fun.
2224         (input_block): Moved to lto-section-in.h and renamed
2225         lto_input_block.
2226         (input_expr_operand): Fixed to allow lists with more than one
2227         element.
2228         * lto-section-in.h: New file.
2229         * lto-section-in.c: New file with changes from above.
2230         * Make-lang.in (lto-read.o): Renamed lto-function-in.c.
2231         (lto-section-in.o): New rule.
2232         
2233 2007-12-29  Nathan Froyd  <froydnj@codesourcery.com>
2234
2235         * lto-read.c (input_expr_operand): Mark static and external
2236         VAR_DECLs as needed.
2237
2238 2007-12-29  Nathan Froyd  <froydnj@codesourcery.com>
2239
2240         * lto-read.c (input_integer): Use the correct shift amount.
2241
2242 2007-12-29  Nathan Froyd  <froydnj@codesourcery.com>
2243
2244         * lto-lang.c (lto_pushdecl): Do nothing instead of aborting.
2245         (LANG_HOOKS_NAME): Define.
2246
2247 2007-12-27  Nathan Froyd  <froydnj@codesourcery.com>
2248
2249         * lto.c (lto_find_integral_type): Define as a macro.  Rename the
2250         original function to...
2251         (lto_find_integral_type_1): ...this.  Consult UNSIGNEDP if we
2252         don't have a base type.
2253         (lto_read_enumeration_type_DIE): Examine the values of the
2254         enumeration to determine whether we can use an unsigned type for
2255         the base type of the enumeration.
2256
2257 2007-12-24  Nathan Froyd  <froydnj@codesourcery.com>
2258
2259         * lto.c (lto_read_structure_union_class_type_DIE): Set TYPE_MODE
2260         and TYPE_ALIGN on UNION_TYPEs as soon as possible.
2261
2262 2007-12-22  Nathan Froyd  <froydnj@codesourcery.com>
2263
2264         * lto-lang.c (lto_types_compatible_p): New function.
2265         (LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
2266
2267 2007-12-22  Nathan Froyd  <froydnj@codesourcery.com>
2268             Kenneth Zadeck <zadeck@naturalbridge.com>
2269
2270         * lto-read.c (input_expr_operand): Fixed uninitialize var warning.
2271         (input_local_vars): Read in DECL_INITIAL and context for local
2272         statics that need to be put in unexpanded_vars_list.
2273
2274 2007-12-21  Nathan Froyd  <froydnj@codesourcery.com>
2275
2276         * lto-read.c (input_real): Use a separate null-terminated buffer
2277         for calling real_from_string.
2278         (input_expr_operand): If we take the address of a FUNCTION_DECL,
2279         tell cgraph that it's needed.
2280
2281 2007-12-19  Doug Kwan  <dougkwan@google.com>
2282
2283         * lto.c (lto_read_base_type_DIE): Handle complex integer types.
2284
2285 2007-12-18  Nathan Froyd  <froydnj@codesourcery.com>
2286
2287         * lto.c (lto_read_DIE): Call lto_read_only_for_child_DIEs instead.
2288         (lto_file_read): Reset the members of 'context' every time we read
2289         a toplevel DIE, with special attention to last_param_type.
2290
2291 2007-12-18  Nathan Froyd  <froydnj@codesourcery.com>
2292
2293         * lto.c (lto_read_subroutine_type_subprogram_DIE): Initialize
2294         'declaration'.  Set the assembler name for non-public functions.
2295
2296 2007-12-17  Kenneth Zadeck <zadeck@naturalbridge.com>
2297
2298         * lto_read.c (data_in.unexpanded_indexes): New array.
2299         (input_local_var): Added code to read in unexpanded_var_list
2300         indexes for variables.  Only read in DECL_CHAIN field for
2301         parameters.
2302         (input_local_vars): Added code to rebuild unexpanded_var_list in
2303         order using unexpanded_indexes.
2304         (input_function): Added code to set DECL_CONTEXT for functions.
2305
2306 2007-12-13  Doug Kwan  <dougkwan@google.com>
2307
2308         * lto.c (lto_read_pointer_reference_type_DIE): Handle optional name
2309         in pointer and reference types.
2310
2311 2007-12-13  Nathan Froyd  <froydnj@codesourcery.com>
2312
2313         * lto-read.c (input_expr_operand): Use DECL_RESULT when reading a
2314         RESULT_DECL.
2315
2316 2007-12-13  Nathan Froyd  <froydnj@codesourcery.com>
2317
2318         * lto.c (lto_read_array_type_DIE): Return the cached DIE if we've
2319         already read the DIE.
2320         (lto_get_body): New function, split out from...
2321         (lto_materialize_function): ...here.  Call it.
2322         (lto_read_subroutine_type_subprogram_DIE): Call lto_get_body to
2323         determine DECL_EXTERNAL.
2324         * lto-symtab.c (lto_symtab_merge_decl): Merge the DECL_RESULTs of
2325         FUNCTION_DECLs when necessary.  Use the type of the actual
2326         function definition if we are unable to easily merge types.  Ignore
2327         spurious DECL_MODE mismatches on VAR_DECLs.  Merge DECL_MODEs when
2328         necessary.
2329
2330 2007-12-13  Nathan Froyd  <froydnj@codesourcery.com>
2331
2332         * lto-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
2333
2334 2007-12-12  Bill Maddox  <maddox@google.com>
2335
2336         Revert
2337         2007-12-07  Bill Maddox  <maddox@google.com>
2338
2339         * lto.c (lto_str_fd_init): New function.
2340         (lto_str_fd_close): New function.
2341         (lto_file_init): Call lto_str_fd_init.
2342         (lto_file_close): Call lto_str_fd_close.
2343         (lto_str_read): New function. Read debug string table.
2344         (lto_str_lookup): New function. Get string for debug
2345         string table offset.
2346         (lto_read_form): Recognize DW_FORM_strp.
2347         (lto_file_read): Invoke lto_str_read.
2348
2349         * lto-elf.c (lto_elf_file_open): Read raw section data
2350         for the .debug_str section, if present.
2351
2352         * lto.h (struct lto_str_fd_struct): New struct.
2353         (struct lto_file_struct): Added new field DEBUG_STR
2354         to hold the file descriptor for the debug string table.
2355         
2356 2007-12-07  Bill Maddox  <maddox@google.com>
2357
2358         * lto.c (lto_str_fd_init): New function.
2359         (lto_str_fd_close): New function.
2360         (lto_file_init): Call lto_str_fd_init.
2361         (lto_file_close): Call lto_str_fd_close.
2362         (lto_str_read): New function. Read debug string table.
2363         (lto_str_lookup): New function. Get string for debug
2364         string table offset.
2365         (lto_read_form): Recognize DW_FORM_strp.
2366         (lto_file_read): Invoke lto_str_read.
2367
2368         * lto-elf.c (lto_elf_file_open): Read raw section data
2369         for the .debug_str section, if present.
2370
2371         * lto.h (struct lto_str_fd_struct): New struct.
2372         (struct lto_file_struct): Added new field DEBUG_STR
2373         to hold the file descriptor for the debug string table.
2374
2375 2007-12-07  Nathan Froyd  <froydnj@codesourcery.com>
2376
2377         * lto-read.c (input_cfg): Call init_empty_tree_cfg_for_function.
2378         Grow the basic_block_info and label_to_block_map vectors if
2379         necessary.  Read in the block chain.
2380
2381 2007-12-06  Nathan Froyd  <froydnj@codesourcery.com>
2382
2383         * lto.c (lto_read_DIE): Set TYPE_ALIAS_SET where necessary.
2384
2385 2007-12-06  Nathan Froyd  <froydnj@codesourcery.com>
2386
2387         * lto.c (lto_read_form): Add DW_cl_address for DW_AT_const_value.
2388
2389 2007-12-06  Nathan Froyd  <froydnj@codesourcery.com>
2390
2391         * lto-read.c (input_expr_operand): Don't check for MTAGs.
2392         (lto_read_body): Don't declare PROP_alias.
2393
2394 2007-12-06  Nathan Froyd  <froydnj@codesourcery.com>
2395
2396         * lto-symtab.c (lto_symtab_merge_decl): Handle FUNCTION_DECLs without
2397         argument type information.
2398
2399 2007-12-03  Nathan Froyd  <froydnj@codesourcery.com>
2400
2401         * lto.c (lto_read_variable_formal_parameter_constant_DIE): Set
2402         TREE_THIS_VOLATILE if the associated type is a volatile type.
2403         (lto_materialize_function): Remove call to init_ssa_operands.
2404         * lto-read.c (input_expr_operand): Add SSA_NAME_VAR as a referenced
2405         variable when reading an SSA_NAME.  Do the same when reading a
2406         RESULT_DECL, a RETURN_EXPR, or an MTAG.
2407         (input_cfg): Call init_ssa_operands.
2408         (input_ssa_names): Set the default def of an SSA_NAME if necessary.
2409         Move call to init_tree_ssa...
2410         (lto_read_body): ...here.  Use push_cfun and pop_cfun.  Call
2411         add_referenced_var on any variables referenced from the body of the
2412         function.  Inform the rest of the compiler we are in SSA form and
2413         inform later passes about the current properties.
2414
2415 2007-11-30  Nathan Froyd  <froydnj@codesourcery.com>
2416
2417         * lto.c (lto_materialize_function): Add FIXME.
2418
2419 2007-11-29  Nathan Froyd  <froydnj@codesourcery.com>
2420
2421         * lto-lang.c (enum built_in_attribute): New enum.
2422         (flag_no_builtin, flag_no_nonansi_builtin, flag_isoc94, flag_isoc99,
2423         built_in_attributes): New variables.
2424         (def_builtin_1): New function.
2425         (lto_define_builtins): #define DEF_BUILTIN and include builtins.def.
2426
2427 2007-11-28  Nathan Froyd  <froydnj@codesourcery.com>
2428
2429         * lto.c (lto_read_variable_formal_parameter_constant_DIE): Set
2430         DECL_SOURCE_LOCATION for debugging purposes.
2431         (lto_read_member_DIE): Set DECL_SOURCE_LOCATION.  If we have read a
2432         bitfield, use the type specified by the DIE for TREE_TYPE and defer
2433         laying out the decl until later.
2434         (lto_read_subroutine_type_subprogram_DIE): Compare the function's
2435         name with DECL_ASSEMBLER_NAME.  Set DECL_SOURCE_LOCATION and
2436         TREE_ADDRESSABLE.
2437         * lto-read.c (input_expr_operand): Set TREE_ADDRESSABLE on the
2438         operand of an ADDR_EXPR.
2439         * lto-lang.c (enum lto_builtin_type): New enum.
2440         (builtin_type): New typedef.
2441         (builtin_types, string_type_node, const_string_type_node,
2442         wint_type_node, intmax_type_node, uintmax_type_node,
2443         signed_size_type_node): New variables.
2444         (def_fn_type, builtin_type_for_size, lto_define_builtins,
2445         lto_build_c_type_nodes): New functions.
2446         (lto_init): Initialize builtin types.
2447         (lto_set_decl_assembler_name): Let the target machine mangle the
2448         name if the decl is TREE_PUBLIC, otherwise uniquify it.
2449
2450 2007-11-21  Nathan Froyd  <froydnj@codesourcery.com>
2451
2452         * lto.c (lto_read_variable_formal_parameter_constant_DIE): Don't
2453         set TREE_ADDRESSABLE.  Do set DECL_COMDAT.  Set TREE_READONLY if
2454         the type is a constant type.  Set the assembler name and inform
2455         the rest of the compiler about the new decl if the decl is not
2456         public.
2457         (lto_read_subroutine_type_subprogram_DIE): Don't check for equivalency
2458         of DECL_ASSEMBLER_NAME when determining if we have a builtin.  Don't
2459         try to read in function bodies for functions that already have bodies.
2460         * lto-symtab.c (lto_same_type_p): Check for unbounded array
2461         equivalency.
2462         (lto_symtab_merge_decl): Don't merge decls that aren't TREE_PUBLIC.
2463         Check for whether we matched a builtin function type before calling
2464         lto_same_type_p on the generated type.  Permit cases where the
2465         declaration of an array is unbounded, but the definition is bounded.
2466         Don't combine TREE_PUBLIC flags.  Copy over DECL_SIZE and
2467         DECL_SIZE_UNIT if necessary.
2468
2469 2007-11-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2470
2471         * lto-read.c (input_expr_operand): Get types right 
2472         for COMPLEX_CST.
2473
2474 2007-11-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2475
2476         * lto-read.c (make_new_block, input_cfg): Properly set
2477         n_basic_blocks.
2478         
2479 2007-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2480
2481         * lto.c (lto_read_array_type_DIE): Handle DIEs with DW_AT_GNU_vector
2482         set properly by building a VECTOR_TYPE instead of an ARRAY_TYPE.
2483
2484 2007-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2485
2486         * lto.c (lto_read_base_type_DIE): Use make_bitfield_integer_type to
2487         construct the integer type for bitfields.
2488
2489 2007-11-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2490
2491         * lto-read.c (data_in.current_node_has_loc): Removed.
2492         (input_line_info): Returns true if node needs line set.
2493         (set_line_info): Always sets line if called.
2494         (clear_line_info): Removed reference to current_node_needs_loc.
2495         (input_expr_operand): Keeps track locally if current node needs a loc.
2496         (input_local_var): Added code to handle DECL_INITIAL for
2497         static local vars. Only set loc if necessary.
2498         
2499 2007-11-15  Nathan Froyd  <froydnj@codesourcery.com>
2500
2501         * lto.c (lto_read_subroutine_type_subprogram_DIE): Fix thinko'd
2502         DECL_CONTEXT.
2503
2504 2007-11-15  Nathan Froyd  <froydnj@codesourcery.com>
2505
2506         * lto.c: Include langhooks.h.
2507         (lto_find_integral_type): Rework logic to handle the case where
2508         got_byte_size is true, but the bitsize requested and that of the
2509         base_type doesn't match.
2510         (lto_read_variable_formal_parameter_constant_DIE): Only check for
2511         asm_name if we are creating a VAR_DECL.
2512         (lto_materialize_function): Set DECL_EXTERNAL if we can't find a
2513         definition.
2514         (lto_read_subroutine_type_subprogram_DIE): Check for a builtin
2515         function reference and use the builtin's decl if so.  Set the
2516         DECL_CONTEXT of the RESULT_DECL for the function.
2517         * lto-lang.c (registered_builtin_fndecls): New variable.
2518         (lto_getdecls): Return it.
2519         (lto_builtin_function): Chain the new decl onto
2520         registered_builtin_fndecls.
2521
2522 2007-11-15  Kenneth Zadeck <zadeck@naturalbridge.com>
2523             
2524         * lto-read.c (process_tree_flags, lto_static_init_local):
2525         Renamed to ADD_CLASS_EXPR_FLAG. ADD_CLASS_DECL_FLAG New Macro.
2526         (input_line_info, clear_line_info): Fixed new line number code.
2527         (input_expr_operand): Added type to SWITCH_EXPR.
2528         (lto_read_body): Properly initialized data_in.
2529         Clear line info when leaving.
2530         
2531 2007-11-13  Diego Novillo  <dnovillo@google.com>
2532
2533         * lto.c (lto_read_variable_formal_parameter_constant_DIE):
2534         Initialize ARTIFICIAL.
2535         (lto_read_subroutine_type_subprogram_DIE): Initialize
2536         SAVED_SCOPE.
2537         * lto-read.c (set_line_info): Remove ; from calls to
2538         LINEMAP_POSITION_FOR_COLUMN.
2539
2540 2007-11-13  Kenneth Zadeck <zadeck@naturalbridge.com>
2541
2542         * lto-read.c (input_type_ref): Renamed from get_type_ref.
2543         (input_expr_operand, input_local_var): Renamed get_type_ref to 
2544         input_type_ref.
2545         (input_expr_operand): Get the types correct for 
2546         vector-cst.  Get SSA_NAME_DEF_STMT correct for return_exprs.
2547         
2548 2007-11-13  Doug Kwan  <dougkwan@google.com>
2549
2550         * lto-read.c (input_widest_uint_uleb128): New function.
2551         (input_tree_flags, process_tree_flags, input_line_info,
2552         input_expr_operand, input_local_var, input_phi, input_ssa_names):
2553         Change to use lto_flags_type and BITS_PER_LTO_FLAGS_TYPES instead of
2554         unsigned HOST_WIDE_INT and HOST_BITS_PER_WIDE_INT.
2555         (lto_static_init_local): Add code to assert that lto_flags_type is
2556         wide enough.
2557
2558 2007-11-13  Nathan Froyd  <froydnj@codesourcery.com>
2559
2560         * lto.c (lto_read_array_type_DIE): Handle DW_AT_GNU_vector.
2561         (lto_read_subroutine_type_subprogram_DIE): Handle
2562         DW_AT_static_link and DW_AT_specification.  Return the
2563         specification if present.
2564         (lto_read_base_type_DIE): Handle DW_ATE_complex_float.
2565         
2566 2007-11-13  Nathan Froyd  <froydnj@codesourcery.com>
2567
2568         * lto-lang.c: Include target.h.
2569         (registered_builtin_types): New variable.
2570         (lto_type_for_mode): Increase number of modes handled.
2571         (lto_builtin_function): Fix argument list and return the decl.
2572         (lto_register_builtin_type): New function.
2573         (lto_init): Initialize target builtins and language-independent
2574         nodes.
2575         (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define.
2576
2577 2007-11-13  Kenneth Zadeck <zadeck@naturalbridge.com>
2578
2579         * lto-read.c (input_expr_operand): Added code to properly handle
2580         index filed. Added new RANGE_EXPR case.
2581         
2582 2007-11-11  Kenneth Zadeck <zadeck@naturalbridge.com>
2583
2584         * lto-read.c (ADD_FUNC_FLAG): Deleted macro.
2585         (data_in): Added current_node_has_loc field.
2586         (input_line_info, set_line_info, clear_line_info): Added a support
2587         for USE_MAPPED_LOCATION and not adding line numbers to nodes that
2588         did not have on on the source side.
2589         (input_expr_operand): Make sure that GIMPLE_MODIFY_STMTS get line
2590         numbers too.
2591
2592 2007-11-09  Doug Kwan  <dougkwan@google.com>
2593
2594         * lto-read.c (input_expr_operand): Change type of operand 2 of
2595         BIT_FIELD_REF expression to be bitsizetype instead of sizetype.
2596
2597 2007-11-09  Nathan Froyd  <froydnj@codesourcery.com>
2598
2599         * lto.c: Include lto-tree.h.  Effect small spaces->tabs cleanup.
2600         (lto_read_variable_formal_parameter_constant_DIE): Transfer bits
2601         from a DW_AT_specification or DW_AT_abstract_origin attribute to
2602         the new decl we are creating.  Move informing the middle end about
2603         the new decl to...
2604         (lto_main): ...here.  Inform the middle end about global variables
2605         after we have read in all the input files.
2606         * lto-symtab.c (lto_symtab_merge_decl): We really do need to merge
2607         variables with internal linkage, so delete the check for internal
2608         linkage.  Combine TREE_PUBLIC flags.
2609
2610 2007-11-08  Nathan Froyd  <froydnj@codesourcery.com>
2611
2612         * lto.c (lto_read_subroutine_type_subprogram_DIE): Handle
2613         DW_AT_decl_line.
2614         * lto-symtab.c (lto_symtab_merge_decl): Handle redefinition of a
2615         builtin specially.  Move check for attribute compatibility
2616         earlier.
2617
2618 2007-11-07  Nathan Froyd  <froydnj@codesourcery.com>
2619
2620         * Make-lang.in (lto/lto.o): Depend on gt-lto-lto.h.
2621         * config-lang.in (gtfiles): Add lto.h and lto.c.
2622         * lto-elf.c: Include ggc.h.
2623         (lto_elf_file_open): Allocate elf_file from GC memory.
2624         * lto.c: Include tree-ssa-operands.h and gt-lto-lto.h
2625         (lto_info_fd_init): Allocate the die_cache and unmaterialized_fndecls
2626         in GC memory.
2627         (lto_info_fd_close): Free unmaterialized_fndecls from GC memory.
2628         (lto_file_close): Free file from GC memory.
2629         (lto_cache_store_DIE): Allocate the new entry in GC memory.
2630         (lto_read_member_DIE): Fix declaration.
2631         (lto_read_subroutine_type_subprogram_DIE): unmaterialized_fndecls lives
2632         in GC memory.
2633         (current_lto_file): New variable.
2634         (lto_main): Use it.
2635         (DWARF2_attr, DWARF2_abbrev, lto_die_ptr, DWARF2_CompUnit,
2636         lto_die_cache_entry): Move to...
2637         * lto.h: ...here and add GTY markers as appropriate.  Delete forward
2638         declarations accordingly.
2639         (struct lto_file_struct): Declare.
2640         (lto_file_vtable): Use it instead of lto_file.
2641
2642 2007-11-06 Alon Dayan  <alond@il.ibm.com>
2643            Kenneth Zadeck <zadeck@naturalbridge.com>
2644
2645          * lto-read.c (process_flags, lto_static_init_local):
2646          read flags of VAR_DECL and FUNCTION_DECL of size>1.
2647          change global array num_flags_for_code to flags_length_for_code.
2648          (set_line_info): Make decls work in USE_MAPPED_LOCATION mode.
2649         
2650 2007-11-05  Nathan Froyd  <froydnj@codesourcery.com>
2651
2652         * lto.c (lto_read_structure_union_class_type_DIE): Use proper record
2653         layout functions to compute information about the newly constructed
2654         type.
2655
2656 2007-11-02  Nathan Froyd  <froydnj@codesourcery.com>
2657
2658         * lto-read.c (input_expr_operand): Change the LTO_return_expr1
2659         case to use DECL_RESULT if necessary.
2660
2661 2007-11-01  Kenneth Zadeck <zadeck@naturalbridge.com>
2662
2663         * lto-read.c (input_tree_list): Removed.
2664         (input_tree_flags): Added parameter to force flags no matter what
2665         tree code.
2666         (input_expr_operand): Added parameter to input_tree_flags.
2667         Added case for IDENTIFIER_NODE and TREE_LIST.  Changed ASM to call
2668         input_expr_operand rather than input_tree_lists.
2669         (input_local_var): Use input_expr_operand to read attributes
2670         rather then input_tree_list.
2671         (input_phi, input_ssa_names): Added parameter to input_tree_flags.
2672
2673 2007-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2674
2675         * lto.c (lto_read_typedef_DIE): Fix comment typo.
2676         (lto_resolve_typedecl_ref): Fetch the referred-to type and build a fake
2677         TYPE_DECL for it.
2678         * lto-read.c (lto_read_body): Use correct sizes for calculating
2679         type_decls_offset and types_offset.
2680
2681 2007-10-30  Nathan Froyd  <froydnj@codesourcery.com>
2682
2683         * lto-tree.h (union lang_tree_node): Change GTY description to chain
2684         with GENERIC_NEXT.
2685         * config-lang.in (gtfiles): Add lto-lang.c.
2686         * lto-lang.c: Include gt-lto-lto-lang.h.
2687         * Make-lang.in (lto/lto-lang.o): Add dependency on gt-lto-lto-lang.h
2688         (lto/lto-symtab.o): Depend on LTO_H instead of TREE_H.
2689         (lto/lto-read.o): Likewise.
2690
2691 2007-10-29  Kenneth Zadeck <zadeck@naturalbridge.com>
2692
2693         * lto-read.c (data_in): Added type_decls and current_col fields.
2694         (string_slot): New type to hold canonized file name.
2695         (hash_string_slot_node, eq_string_slot_node, canon_file_name, 
2696         input_line_info, set_line_info, clear_line_info): New functions.
2697         (file_name_hash_table): New hash table.
2698         (input_local_var, input_labels, input_local_vars_index, 
2699         input_local_var, input_local_vars, input_ssa_names): Reorganized parameters.
2700         (input_uleb128): Changed type of byte var.
2701         (input_expr_operand): Large number of changes to get line numbers
2702         correct.  Added TYPE_DECL case.
2703         (input_globals): Added code to get TYPE_DECLs processed.
2704         (input_local_var): Added code to process line numbers and
2705         TREE_CHAIN and DECL_CONTEXT.
2706         (input_function, input_constructor): Added call to
2707         clear_line_number.
2708         (lto_static_init_local): Added code to get line numbers correct.
2709         (lto_read_body): Added code to get TYPE_DECLS read and to change
2710         parameters to the calls above that had their parms reorganized.
2711
2712         
2713 2007-10-29  Nathan Froyd  <froydnj@codesourcery.com>
2714
2715         * lto.h (lto_resolve_typedecl_ref): Declare.
2716         * lto.c (lto_resolve_typedecl_ref): New function.
2717
2718 2007-10-29  Mark Mitchell  <mark@codesourcery.com>
2719             Nathan Froyd  <froydnj@codesourcery.com>
2720
2721         * lto.c (lto_read_subroutine_type_subprogram_DIE): Read the child
2722         DIEs even if we find an abstract origin for this DIE.
2723
2724 2007-10-29  Nathan Froyd  <froydnj@codesourcery.com>
2725
2726         * lto.c (lto_read_subroutine_type_subprogram_DIE): Build the
2727         RESULT_DECL slightly earlier.  Only remember the decl for later
2728         if we successfully merge declarations.
2729
2730 2007-10-24  Kenneth Zadeck <zadeck@naturalbridge.com>
2731
2732         * lto-read.c (input_expr_operand): Give label_values the proper
2733         context and provide switch statements with a default type.
2734         
2735 2007-10-23  Nathan Froyd  <froydnj@codesourcery.com>
2736
2737         * lto-read.c (lto_read_body): Move call to init_ssa_operands...
2738         * lto.c (lto_materialize_function): ...to here.
2739
2740 2007-10-22  Nathan Froyd  <froydnj@codesourcery.com>
2741
2742         * lto.h (struct lto_info_fd): Add field unmaterialized_fndecls.
2743         * lto.c (lto_info_fd_init): Initialize it.
2744         (lto_info_fd_close): Free it.
2745         (lto_materialize_function): New function.
2746         (lto_read_subroutine_type_subprogram_DIE): Save the result decl on
2747         unmaterialized_fndecls.
2748         (lto_file_read): Read in all the function bodies after we have read
2749         all of the DWARF info.
2750         * lto-read.c (lto_read_body): Call init_ssa_operands if we are
2751         reading a function body.
2752
2753 2007-10-20  Kenneth Zadeck <zadeck@naturalbridge.com>
2754
2755         * lto-read.c (input_tree_flags): Renamed from input_flags to be
2756         semetric with output_tree_flags.  Added call to log flags.
2757         (process_tree_flags): Renamed from process_flags.  Fixed a lot of
2758         type issues to make everything consistent with flags being
2759         unsigned HOST_WIDE_INTS.
2760         (input_expr_operand): Added call to
2761         recompute_tree_invariant_for_addr_expr.
2762         (input_local_var): Added debugging for tree_chains.  Now calls
2763         input_tree_flags.
2764         (input_phi): Made flags unsigned HOST_WIDE_INT.
2765         (input_ssa_names): Now calls input_tree_flags.
2766         (lto_read_body): Now sets cfun.
2767         (lto_read_function_body): Now sets current_function_pointer.
2768         
2769 2007-10-19  Nathan Froyd  <froydnj@codesourcery.com>
2770
2771         * lto.c (lto_read_variable_formal_parameter_constant_DIE): Check
2772         definitively whether SPECIFICATION or ABSTRACT_ORIGIN exist before
2773         inspecting fields within.
2774         (lto_read_DIE_at_ptr): Delete check for null result; let callers
2775         handle this appropriately.
2776
2777 2007-10-19  Nathan Froyd  <froydnj@codesourcery.com>
2778
2779         * lto.c (lto_read_variable_formal_parameter_constant_DIE): Handle
2780         DW_AT_abstract_origin properly.  Ensure that we're not dealing with
2781         both DW_AT_abstract_origin and DW_AT_specification.
2782         (lto_read_subroutine_type_subprogram_DIE): Handle
2783         DW_AT_abstract_origin.
2784         (lto_read_DIE): Use lto_read_only_for_child_DIEs for labels.
2785         (lto_read_DIE_at_ptr): Define as static to match declaration.
2786         Lookup the PTR in the cache before reading it from the file.
2787         (lto_resolve_var_ref): Adjust accordingly.
2788         (lto_resolve_fn_ref): Adjust accordingly.  Tweak comment.
2789         (lto_resolve_field_ref): Adjust accordingly.  Tweak comment.
2790
2791 2007-10-19  Nathan Froyd  <froydnj@codesourcery.com>
2792
2793         * lto.c (lto_read_DIE_at_ptr): New function.
2794         (lto_resolve_var_ref): Use it.
2795         (lto_resolve_fn_ref): Use it.
2796         (lto_resolve_field_ref): Use it.
2797         (lto_read_variable_formal_parameter_constant_DIE): Follow
2798         DW_AT_specification and return the associated decl when appropriate.
2799
2800 2007-10-18  Nathan Froyd  <froydnj@codesourcery.com>
2801
2802         * lto-lang.c (lto_type_for_mode): Move after lto_type_for_size.
2803         Implement for scalar integer modes.
2804         (lto_init): Initialize size_type_node.
2805
2806 2007-10-18  Kenneth Zadeck <zadeck@naturalbridge.com>
2807
2808         * lto-read.c (input_expr_operand): Remove ssa name asserts.
2809         (input_local_var): Add chaining for params.
2810         (input_ssa_names): Add cfun parameter.
2811         (input_function): Remove unnecessary else.
2812
2813 2007-10-17  Nathan Froyd  <froydnj@codesourcery.com>
2814
2815         * lto.c (lto_read_only_for_child_DIEs): Mark die parameter as unused.
2816         (lto_resolve_var_ref): Use proper types.
2817         (lto_resolve_fn_ref): Likewise.
2818         (lto_resolve_field_ref): Likewise.
2819
2820 2007-10-17  Nathan Froyd  <froydnj@codesourcery.com>
2821
2822         * lto-read.c (input_expr_operand): Remove case.
2823
2824 2007-10-17  Nathan Froyd  <froydnj@codesourcery.com>
2825
2826         * lto.c (lto_read_only_for_child_DIEs): New function.
2827         (lto_read_DIE): Use it for lexical_block and inlined_subroutine DIEs.
2828         * lto-elf.c (lto_elf_map_lto_section): Remove.
2829         (lto_elf_file_vtable): Use lto_elf_map_optional_lto_section instead.
2830         * lto-read.c (input_expr_operand): Assert that we never read a NULL
2831         SSA_NAME.  Add missing case for mechanical codes.
2832         (input_cfg): Use basic_block_info_for_function instead of
2833         basic_block_info.
2834
2835 2007-10-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2836
2837         * lto-read.c (input_sleb128, input_integer): Use proper casts.
2838         (input_list): Renamed input_tree_list and modified to follow same
2839         protocol as lto-function-out.c:output_tree_list.
2840         (input_expr_operand): Make asm operands use input_tree_list.
2841         (input_local_var): Now uses input_tree_list.
2842         (lto_read_body): Change placement for setting context of debug_labels.
2843         
2844         
2845 2007-10-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2846
2847         * lto-read.c (input_real): Output debugging in proper order.
2848         (input_integer): Compute bit lengths properly.
2849         (input_list): Clean up declaration.
2850         (input_expr_operand): Change calls to input_real to match fix.
2851         Make reading of LTO_bit_field_ref1 match output.
2852         (input_local_var): Make reading of attributes match what is being
2853         written.
2854         (dump_debug_stream): Also print char in hex.
2855         (debug_out_fun): Fix signed unsigned mismatch.
2856         
2857 2007-10-10  Nathan Froyd  <froydnj@codesourcery.com>
2858
2859         * lto.c (lto_read_form): Handle DW_AT_MIPS_linkage_name and
2860         DW_AT_GNU_vector specially, as they are not contiguous with the
2861         specified set of attribute names.  Use class_mask to check for
2862         errors at the end of the function
2863         (lto_resolve_var_ref): Read the DIE if it is not cached.
2864         (lto_resolve_fn_ref): Likewise.
2865         (lto_resolve_field_ref): Likewise.
2866
2867 2007-10-05  Nathan Froyd  <froydnj@codesourcery.com>
2868
2869         * lto.c: Include dwarf2out.h.
2870         (lto_cache_store_DIE): Assert that we never change the value.
2871         (LTO_BEGIN_READ_ATTRS): Print an informative error message.
2872         (lto_read_compile_unit_DIE): Handle DW_AT_entry_pc.
2873         (lto_read_array_type_DIE): Don't error on ndims == 0; build a
2874         sensible type instead.
2875         (lto_read_structure_union_class_type_DIE): Store the newly
2876         created type prior to reading the members of the structure to
2877         avoid infinite recursion.  Avoid computing types and alignments
2878         for structures whose sizes are unknown.
2879         (lto_read_variable_formal_parameter_const): Handle DW_AT_artificial
2880         and set DECL_ARTIFICIAL accordingly.  Ignore DW_AT_abstract_origin,
2881         DW_AT_const_value, and DW_AT_specification.
2882         (lto_read_subroutine_type_subprogram_DIE): Handle DW_AT_declaration.
2883         Return early if we have already constructed the function type.
2884         (lto_read_typedef_DIE): Check to see if the type has been cached
2885         already.  Cache the type before reading any children.
2886         (lto_read_const_volatile_restrict_type_DIE): Handle DW_AT_name.
2887         (lto_read_DIE): Unset context->skip_non_parameters around reading
2888         the DIE.
2889         (lto_resolve_fn_ref): Delete trailing whitespace.
2890
2891 2007-09-11  Kenneth Zadeck <zadeck@naturalbridge.com>
2892
2893         * lto-read.c (input_expr_operand): Added type for STRING_CST.
2894         
2895 2007-09-10  Nathan Froyd  <froydnj@codesourcery.com>
2896
2897         * lto-read.c (lto_read): Set the type of the newly created CALL_EXPR.
2898
2899 2007-09-07  Nathan Froyd  <froydnj@codesourcery.com>
2900
2901         * lto-lang.c (signed_and_unsigned_types): New variable.
2902         (lto_type_for_size): Consult signed_and_unsigned_types to find
2903         an approprite type, creating it if necessary.
2904         (lto_set_decl_assembler_name): Add actual method body.
2905
2906 2007-09-06  Jim Blandy  <jimb@codesourcery.com>
2907
2908         * lto.c (lto_read_variable_formal_parameter_constant_DIE): If we
2909         can't find a var init for this variable, leave its DECL_INITIAL.
2910         * lto-elf.c (lto_elf_map_optional_lto_section): Renamed from
2911         lto_elf_map_fn_body.
2912         (lto_map_lto_section): New function.
2913         (lto_elf_file_vtable): Use lto_elf_map_lto_section for function
2914         bodies, and lto_elf_map_optional_lto_section for variable
2915         initializers.
2916         (lto_elf_find_section_data): Quietly return NULL if the section is
2917         missing.
2918         (lto_elf_file_open): Check for a NULL from lto_elf_find_section_data.
2919
2920         * lto-elf.c (lto_elf_find_section_data): Remove dead code.
2921
2922         * lto-read.c (lto_read_body): Doc fix.
2923
2924 2007-08-29  Kenneth Zadeck <zadeck@naturalbridge.com>
2925
2926         * lto-read.c (fun_in): Renamed to data_in.
2927         (input_expr_operand, input_local_var, input_string_internal,
2928         input_string, input_real, input_list, get_label_decl, 
2929         get_type_ref, input_expr_operand, input_globals, input_labels,
2930         input_local_vars_index, input_local_var, input_local_vars, 
2931         input_cfg, input_phi, input_ssa_names, input_bb, ): Renamed fun_in to data_in.
2932         (input_constructor): New function.
2933         (lto_read_function_body): Renamed to lto_read_body and generalized
2934         to handle both functions and constructors.
2935         (lto_read_function_body, lto_read_var_init): New function.
2936         
2937         
2938 2007-08-28  Kenneth Zadeck <zadeck@naturalbridge.com>
2939
2940         * lto-read.c (input_expr_operand): Assert that there really is a
2941         FUNCTION_DECL.
2942         (input_globals): Removed checks on 0 section.
2943         
2944 2007-08-28  Kenneth Zadeck <zadeck@naturalbridge.com>
2945
2946         * lto-read.c (fun_in): Added local_decls_index and
2947         local_decls_index_d.  
2948         (input_expr_operand): Changed inputting of PARM_DECLs and VAR_DECLs.
2949         (input_globals): Enabled code to handle FIELD_DECLs.
2950         (input_local_vars_index, input_local_vars): New function.
2951         (input_local_var): Changed to allow locals to be input randomly.
2952         (lto_read_function_body): Added code to input the
2953         local_decls_index and to free various structures.
2954         
2955 2007-08-17  Jim Blandy  <jimb@codesourcery.com>
2956
2957         * lto.c (lto_read_variable_formal_parameter_constant_DIE): Remove
2958         ATTRIBUTE_UNUSED from 'die' formal.
2959
2960         Use enum LTO_tags where appropriate, instead of 'unsigned int'.
2961         * lto-read.c (input_record_start): Fix return type, type of 'tag'.
2962         (input_list): Fix type of 'tag'.
2963         (input_expr_operand): Fix type of 'tag' argument.  Update
2964         declaration.  Fix type of 'ctag'.  Add default case to switch,
2965         since the type of the switched value is now an enum.
2966         (input_local_vars): Fix type of 'tag'.
2967         (input_bb): Fix type of 'tag' argument.
2968         (input_function): Fix type of 'tag' argument.
2969
2970 2007-08-16  Jim Blandy  <jimb@codesourcery.com>
2971
2972         * lto.c (lto_read_member_DIE): Record the tree we create in
2973         fd->die_cache.  (Our 'die' argument is no longer unused.)
2974         (lto_resolve_field_ref): New function.
2975         * lto.h (lto_resolve_field_ref): New declaration.
2976
2977 2007-08-15  Jim Blandy  <jimb@codesourcery.com>
2978
2979         * lto-read.c (lto_read_var_init): Mark arguments as unused.
2980
2981 2007-08-07  Jim Blandy  <jimb@codesourcery.com>
2982
2983         * lto.c (lto_read_form): Complete attr_classes table.
2984         (DWARF2_form_data): Doc fix.
2985         
2986 2007-08-05  Mark Mitchell  <mark@codesourcery.com>
2987
2988         * lto.h (lto_file_vtable): Remove read_var_init.  Add map_var_init
2989         and unmap_var_init.
2990         (lto_read_var_init): Declare.
2991         * lto.c (lto_read_variable_formal_parameter_constant_DIE): Use new
2992         interface for reading variable initializers.
2993         * lto-elf.c (lto_elf_read_var_init): Remove.
2994         (lto_elf_file_vtable): Update initializer.
2995         (lto_elf_read_var_init): Add comment about unused-ness.
2996         * lto-read.c (lto_read_var_init): New.
2997
2998         * lto.c (lto_read_form): Add entry for DW_AT_inline.
2999
3000 2007-08-02  Kenneth Zadeck <zadeck@naturalbridge.com>
3001
3002         * lto-read.c (lto_read_function_body): Moved declaration of fn
3003         outside of ifdef.
3004         
3005 2007-08-01  Kenneth Zadeck <zadeck@naturalbridge.com>
3006
3007         * lto-read.c (input_uleb128, input_string_internal, input_real,
3008         input_integer, input_record_start, input_list, get_type_ref,
3009         input_flags, input_expr_operand, input_expr_operand,
3010         input_expr_operand, input_local_vars, input_cfg, input_phi,
3011         input_ssa_names, input_bb, input_function): Added semicolons.
3012
3013         
3014 2007-07-31  Kenneth Zadeck <zadeck@naturalbridge.com>
3015
3016         * lto-read.c (input_globals): Remove debugging.
3017         (input_function): Set DECL_ARGUMENTS.
3018
3019         
3020 2007-07-31  Kenneth Zadeck <zadeck@naturalbridge.com>
3021
3022         * lto-read.c (input_expr_operand): Fixed code for COND_EXEC,
3023         RETURN_EXPR, MODIFY_EXPR and processing of flags.
3024         (input_phi): Made work with operands other than SSA_NAMES and
3025         fixed processing of flags.
3026         (input_ssa_names): Initialize SSA_NAME_DEF_STMT to empty stmt.
3027         (input_flags): New function.
3028         * lto-lang.c (lto_init): Changed state of in_lto_p.
3029         
3030         
3031 2007-07-24  Mark Mitchell  <mark@codesourcery.com>
3032
3033         * lto-tree.h (lto_varargs_cookie): Remove.
3034         * lto.c (lto_context): Add last_parm_type, varargs_p, skip_all,
3035         skip_non_parameters, skip_parameters.
3036         (lto_varargs_cookie): Remove.
3037         (lto_read_variable_formal_parameter_constant_DIE): Keep track of
3038         parameter types.
3039         (lto_read_abbrev): New function.
3040         (lto_read_subroutine_type_subprogram_DIE): Make two passes over
3041         child DIEs.
3042         (lto_read_unspecified_parameters_DIE): Set context->varargs_p.
3043         (lto_read_DIE): Use lto_read_abbrev.  Honor skip_* flags.
3044         (lto_file_read): Initialize new context fields.
3045         * lto-lang.c (lto_type_for_mode): Return NULL_TREE.
3046         (lto_unsigned_type): Remove.
3047         (lto_signed_type): Likewise.
3048         (lto_signed_or_unsigned_type): Likewise.
3049         (lto_init): Do not create lto_varargs_cookie.
3050         (LANG_HOOKS_UNSIGNED_TYPE): Do not define.
3051         (LANG_HOOKS_SIGNED_TYPE): Likewise.
3052         (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Likewise.
3053
3054 2007-07-19  Jan Hubicka  <jh@suse.cz>
3055
3056         * lto-read.c (lto_read_function_body): Produce empty scope block
3057         to avoid crash.
3058
3059 2007-07-18  Mark Mitchell  <mark@codesourcery.com>
3060
3061         * lto.c (lto_read_variable_formal_parameter_constant_DIE): Do not
3062         process local variables.
3063         (lto_read_subroutine_type_subprogram_DIE): Read child DIEs.
3064
3065 2007-07-13  Kenneth Zadeck <zadeck@naturalbridge.com>
3066
3067         * lto-read.c (input_list, input_expr_operand): Added struct
3068         function parameter.
3069         (init_cfg, finalize_cfg): Removed function.
3070         (input_expr_operand): Added SSA_NAME and GIMPLE_MODIFY_STMT cases.
3071         (input_labels, input_local_vars): Now takes input_block parameter rather than
3072         synthsyzing it.
3073         (input_cfg, input_phi, input_ssa_names): New functions.
3074         (input_bb): Now passes in input_blocks.  Does not construct cfg
3075         and processes the list of phi functions.
3076         (input_function): Now builds both the cfg and ssa_names table.
3077         (lto_read_function_body): Processes new header fields to construct
3078         streams for the ssa_names and cfg and their debugging.
3079         * lto/lto-lang.c (lto_init): Set in_lto_p.
3080         
3081         
3082 2007-06-28  Mark Mitchell  <mark@codesourcery.com>
3083
3084         * lto.h (lto_file_vtable): Add read_var_init.
3085         * lto.c (lto_read_variable_formal_parameter_constant_DIE): Read
3086         initializers.
3087         (lto_main): Remove bogus asserts.
3088         * lto-elf.c (tm.h): Include it.
3089         (libiberty.y): Likewise.
3090         (lto_elf_file): Add strtab and symtab.  Rename
3091         string_table_section_index to sec_strtab.
3092         (lto_elf_file_vtable): Add lto_elf_read_var_init.
3093         (lto_elf_get_shdr): New function.
3094         (lto_elf_free_shdr): Likewise.
3095         (lto_elf_find_section_data): Use them.
3096         (lto_elf_read_symtab): New function.
3097         (lto_elf_lookup_sym): Likewise.
3098         (lto_elf_free_sym): Likewise.
3099         (lto_elf_file_open): Tidy.  Call lto_elf_read_symtab.
3100         (lto_elf_built_init): New function.
3101         (lto_elf_read_var_init): Likewise.
3102         * Make-lang.in (lto/lto-elf.o): Depend on $(TM_H).
3103
3104 2007-06-26  Kenneth Zadeck <zadeck@naturalbridge.com>
3105
3106         * lto-read (make_new_block): Initialize the stmt_list.
3107         (lto_static_init_local): Add debugging for missing codes.
3108         
3109 2007-06-26  Mark Mitchell  <mark@codesourcery.com>
3110
3111         * lto.c (lto_read_subroutine_type_subprogram_DIE): Handle
3112         unprototyped functions. 
3113
3114 2007-06-23  Mark Mitchell  <mark@codesourcery.com>
3115
3116         * lto.c (lto_read_variable_formal_parameter_constant_DIE):
3117         Handle DW_AT_MIPS_linkage_name.
3118         (lto_read_subroutine_type_subprogram): Likewise.  Correct
3119         compilation errors.
3120         (lto_main): Remove incorrect assertions.
3121         * lto-symbtab.c: Build function types out of TREE_LISTs.
3122
3123         * lto-elf.c (<libelf>): Check for HAVE_LIBELF_H.
3124         
3125         * Make-lang.in (LTO_OBJS): Depend on attribs.o.
3126         
3127 2007-06-21  Kenneth Zadeck <zadeck@naturalbridge.com>
3128
3129         * lto/lto-tree.h (lang_decl, lang_type, language_function): Added
3130         dummy since ggc does not like empty structs.
3131         * lto/lto-elf.c (libelf.h): Changed to libelf/libelf.h.
3132         * lto/lto-read.c (ADD_CLASS_FLAG, ADD_EXPR_FLAG): Changed
3133         expr->common to expr->base.
3134         (make_new_block): Moved stmt_list to proper place.
3135
3136
3137 2007-03-14 Robert Kennedy  <jimbob@google.com>
3138
3139         Eliminate use of lang_hooks.set_decl_assembler_name from LTO
3140         * lto.c (lto_read_subroutine_type_subprogram_DIE) Get DECL
3141         assembler name from DWARF.
3142         * lto-lang.c (lto_set_decl_assembler_name) New function.
3143
3144 2006-09-10  Mark Mitchell  <mark@codesourcery.com>
3145
3146         * lto.h (lto_file_vtable): New structure.
3147         (lto_file): Add vtable pointer.
3148         (lto_file_init): Add vtable paramter.
3149         (lto_read_function_body): New function.
3150         (lto_symtab_merge_fn): New function.
3151         * lto.c (lto_file_init): Add vtable parameter.
3152         (lto_read_form): Fill in entries for DW_AT_prototyped,
3153         DW_AT_frame_base.
3154         (lto_read_subroutine_type_subprogram_DIE): New function.
3155         (lto_read_DIE): Fill in entries for DW_TAG_subroutine_type and
3156         DW_TAG_subprogram.
3157         * lto-elf.c (lto_elf_vile_vtable): New variable.
3158         (lto_elf_file_open): Pass it to lto_file_init.
3159         (lto_elf_map_fn_body): New function.
3160         (lto_elf_unmap_fn_body): Likewise.
3161         * lto-read.c: New file.
3162         * lto-symtab.c (lto_symtab_merge_fn): New function.
3163         * lto-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define to
3164         tree_rest_of_compilation.
3165         * Make-lang.in (LTO_OBJS): Add lto-read.o
3166         (lto-read.o): New target.
3167
3168 2006-09-03  Mark Mitchell  <mark@codesourcery.com>
3169
3170         * lto.c (<inttypes.h>): Don't include it.
3171         (lto_context): Don't typedef it.
3172         (lto_resolve_reference): New function.
3173         (lto_read_form): Use it.
3174         (lto_resolve_type_ref): New function.
3175         (lto_resolve_var_ref): Likewise.
3176         (lto_resolve_fn_ref): Likewise.
3177         * lto.h (<inttypes.h>): Include it.
3178         (lto_context): New type.
3179         (lto_ref): New structure.
3180         (lto_resolve_type_ref): Declare.
3181         (lto_resolve_var_ref): Likewise.
3182         (lto_resolve_fn_ref): Likewise.
3183
3184 2006-08-18  Mark Mitchell  <mark@codesourcery.com>
3185
3186         * lang-specs.h: New file.
3187
3188 2006-08-14  Mark Mitchell  <mark@codesourcery.com>
3189
3190         * lto.c (lto_info_fd_init): Allocate the DIE cache.
3191         (lto_info_fd_close): Deallocate it.
3192         (lto_die_cache_entry): New structure.
3193         (lto_cache_hash): New function.
3194         (lto_cache_eq): Likewise.
3195         (lto_cache_store_DIE): Likewise.
3196         (lto_cache_lookup_DIE): Likewise.
3197         (lto_read_referenced_type_DIE): Use the cache.
3198         (lto_read_pointer_type_DIE): Robustify.
3199         (lto_read_DIE): Use the cache.
3200         * lto.h (hashtab.h): Include.
3201         (lto_info_fd): Add DIE cache.
3202         * Make-lang.in (LTO_H): New variable.
3203         (lto/lto-lang.o): Use LTO_H.
3204         (lto/lto-elf.o): Likewise.
3205         (lto/lto-symtab.o): Likewise.
3206
3207 2006-07-09  Mark Mitchell  <mark@codesourcery.com>
3208
3209         * lto.c (lto_abi_mismatch_error): New function.
3210         (lto_abbrev_read): Initialize num_abbrevs.
3211         (lto_read_form): Specify allowed form classes for
3212         DW_AT_declaration.  Adjust for change to lto_set_cu_context.
3213         (lto_read_variable_formal_parameter_constant_DIE): Handle
3214         DW_AT_declaration.  Call lto_symtab_merge_var.
3215         (lto_read_pointer_type_DIE): New function.
3216         (lto_read_base_type_DIE): Use build_nonstandard_integer_type.  Do
3217         not creat TYPE_DECLs for types that already have them.
3218         (lto_read_DIE): Add lto_read_pointer_type_DIE.
3219         (lto_set_cu_context): Make cu_start point to the header, not the
3220         first DIE.
3221         (lto_file_read): Adjust for change to lto_set_cu_context.
3222         * Make-lang.in (LTO_OBJS): Add lto-symtab.o.
3223         (lto/lto-symtab.o): New rule.
3224         * lto-tree.h (lang_identifier): Add decl field.
3225         (LANG_IDENTIFIER_CAST): New macro.
3226         (LTO_IDENTIFIER_DECL): Likewise.
3227         (lto_symtab_merge_var): Declare.
3228         * lto-symtab.c: New file.
3229
3230 2006-07-02  Daniel Berlin  <dberlin@dberlin.org>
3231
3232         * lto.c (lto_context): Add current_cu and info_fd members.
3233         (DWARF2_CompUnit): New structure.
3234         (lto_read_DIE): Take lto_info_fd *.
3235         (lto_read_child_DIEs): Ditto.
3236         (lto_file_corrupt_error): Constify argument.
3237         (lto_set_cu_context): New function
3238         (lto_info_fd_init): Ditto.
3239         (lto_info_fd_close): Ditto.
3240         (lto_file_init): Use lto_info_fd_init.
3241         (lto_file_close): Use lto_info_fd_close.
3242         (lto_read_initial_length): Pass in pointer to header size.
3243         (lto_read_comp_unit_header): Correct cu_length to
3244         real length from beginning of header.  Take lto_info_fd * as
3245         argument.
3246         (find_cu_for_offset): New function.
3247         (lto_read_form): Change first argument to lto_info_fd *.
3248         Add FORM_CONTEXT argument.
3249         Handle DW_FORM_ref_addr.
3250         (lto_read_tag_DIE): Change first argument to lto_info_fd *.     
3251         (LTO_BEGIN_READ_ATTRS_UNCHECKED): Save old context.
3252         Swap contexts if necessary for form.
3253         (LTO_BEGIN_READ_ATTRS): Cast fd to right type for
3254         lto_file_corrupt_error.
3255         (LTO_END_READ_ATTRS): Swap contexts back if it had changed.
3256         (lto_read_referenced_type_DIE): Change first argument to
3257         lto_info_fd *.  Access lto_fd fields through base pointer.
3258         (lto_read_compile_unit_DIE): Change first argument to an
3259         lto_info_fd *.
3260         (lto_read_variable_formal_parameter_constant_DIE): Ditto.
3261         (lto_read_base_type_DIE): Ditto.
3262         (lto_read_child_DIEs): Ditto.
3263         (lto_read_DIE): Ditto.  Change type of function pointer.
3264         (lto_info_read): New function.
3265         (lto_set_cu_context): Ditto.
3266         (lto_file_read): Use lto_info_read, walk resulting CU's
3267         (lto_main): Update for lto_info_fd change.
3268         * lto-elf.c (lto_elf_file_open): Cast lto_info_fd to lto_fd where
3269         necessary.
3270         * lto.h (DWARF2_CompUnit): New structure.
3271         (lto_info_fd): Ditto.
3272         (lto_file): Change debug_info to be an lto_info_fd.
3273         
3274 2006-06-25  Mark Mitchell  <mark@codesourcery.com>
3275
3276         * lto.c (toplev.h): Include it.
3277         (dwarf2.h): Likewise.
3278         (tree.h): Likewise.
3279         (tm.h): Likewise.
3280         (cgraph.h): Likewise.
3281         (ggc.h): Likewise.
3282         (inttypes.h): Likewise.
3283         (DWARF2_attr): New type.
3284         (DWARF2_abbrev): Likewise.
3285         (DWARF2_class): Likewise.
3286         (DWARF2_form_data): Likewise.
3287         (lto_context): Likewise.
3288         (lto_fd_init): New function.
3289         (lto_abbrev_fd_init): Likewise.
3290         (lto_abbrev_fd_close): Likewise.
3291         (lto_file_init): Use them.
3292         (lto_file_close): New function.
3293         (lto_file_corrupt_error): Likewise.
3294         (LTO_CHECK_INT_VAL): New macro.
3295         (lto_check_size_t_val): New function.
3296         (lto_check_int_val): Likewise.
3297         (LTO_READ_TYPE): New macro.
3298         (lto_read_ubyte): New function.
3299         (lto_read_uhalf): Likewise.
3300         (lto_read_uword): Likewise.
3301         (lto_read_uleb128): Likewise.
3302         (lto_read_initial_length): Likewise.
3303         (lto_abbrev_read_attrs): Likewise.
3304         (lto_abbrev_read): Likewise.
3305         (lto_abbrev_lookup): Likewise.
3306         (lto_read_section_offset): Likewise.
3307         (lto_read_comp_unit_header): Likewise.
3308         (lto_read_form): Likewise.
3309         (LTO_BEGIN_READ_ATTRS_UNCHECKED): New macro.
3310         (LTO_BEGIN_READ_ATTRS): Likewise.
3311         (LTO_END_READ_ATTRS): Likewise.
3312         (lto_unsupported_attr_error): New function.
3313         (lto_get_identifier): Likewise.
3314         (lto_read_referenced_type_DIE): Likewise.
3315         (lto_read_compile_unit_DIE): Likewise.
3316         (lto_read_variable_formal_parameter_constant_DIE): Likewise.
3317         (lto_read_base_type_DIE): Likewise.
3318         (lto_read_DIE): Likewise.
3319         (lto_read_child_DIEs): Likewise.
3320         (lto_file_read): Read DIEs.
3321         (lto_main): Ask middle end to emit entities.
3322         * lto-tree.h (lang_identifier): Inherit from tree_identifier.
3323         * lto-elf.c (lto_elf_file_open): Adjust for interface changes.
3324         (lto_elf_file_close): Likewise.
3325         * lto.h (lto_file): Declare.
3326         (DWARF2_abbrev): Likewise.
3327         (lto_fd): New type.
3328         (lto_abbrev_fd): Likewise.
3329         (lto_file): Use new types.
3330         (lto_file_close): Declare.
3331         * lto-lang.c (lto_init): Always use unit-at-a-time mode.
3332         
3333 2006-06-18  Mark Mitchell  <mark@codesourcery.com>
3334
3335         * lto.h: New file.
3336         * lto.c: New file.
3337         * lto-elf.c: New file.
3338         * lto-lang.c (flags.h): Include it.
3339         (lto.h): Likewise.
3340         (lto_init): New function.
3341         (lto_write_globals): Remove.
3342         (LANG_HOOKS_WRITE_GLOBALS): Define to lhd_do_nothing. 
3343         (LANG_HOOKS_INIT): Define.
3344         (LANG_HOOKS_PARSE_FILE): Likewise.
3345         * Make-lang.in (LTO_OBJS): Add lto.o and lto-elf.o.
3346         (LTO_EXE): Link with libelf.
3347         (lto/lto-lang.o): Update dependencies.
3348         (lto/lto.o): New target.
3349         (lto/lto-elf.o): Likewise.
3350
3351 2006-06-12  Mark Mitchell  <mark@codesourcery.com>
3352
3353         * config-lang.in: New file.
3354         * Make-lang.in: Likewise.
3355         * lto-tree.h: Likewise.
3356         * lto-lang.c: Likewise.
3357