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