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