OSDN Git Service

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