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