OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [gcc/] [lto/] [ChangeLog] - Blame information for rev 288

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.