OSDN Git Service

e2c4ffd647c2adf44b67d96846109354cbcf2a17
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
2         
3         * testsuite/gcc.dg/autopar/outer-4.c: Adjust scan.
4         * testsuite/gcc.dg/autopar/outer-5.c: Adjust scan.
5         * testsuite/gcc.dg/autopar/outer-5.c: Add scan optimized.
6         * tree-cfg.c(gimple_duplicate_sese_tail): Fix typos/indentation/white space.
7
8 2009-10-22  Richard Guenther  <rguenther@suse.de>
9
10         * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Declare.
11         * lto-symtab.c (struct lto_symtab_entry_def): Add node member.
12         (lto_symtab_merge): Do not merge cgraph nodes here.
13         (lto_symtab_resolve_can_prevail_p): Simplify.
14         (lto_symtab_resolve_symbols): Store cgraph node.
15         (lto_symtab_merge_decls_1): Simplify.  Do not drop non-prevailing
16         functions from the symtab.
17         (lto_symtab_merge_cgraph_nodes_1): New function.
18         (lto_symtab_merge_cgraph_nodes): Likewise.
19
20 2009-10-22  Richard Guenther  <rguenther@suse.de>
21
22         PR lto/41791
23         * lto-streamer-out.c (lto_output_location): Stream the
24         system header flag.
25         * lto-streamer-in.c (lto_input_location): Likewise.
26
27 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
28         
29         * cfgloopmanip.c  (duplicate_subloops): Export. 
30         * tree-parloops.c (loop_parallel_p): Dump if loop is innermost.
31         (transform_to_exit_first_loop): Duplicate bbs starting from 
32         header up to loop->latch instead of exit->src.
33         Initialize control variable to the correct number of iterations.
34         (gather_scalar_reductions): Do not register double reductions.
35         (parallelize_loops): Dump which loop is tested. 
36         Indicate whether the parallelized loop is inner or not. 
37         Remove the innermost-loop requirement.
38         * cfgloop.h (duplicate_subloops): Export. 
39         * tree-cfg.c (add_phi_args_after_redirect): New function.
40         (gimple_duplicate_sese_tail): Remove the no-subloops constraint.
41         Call duplicate_subloops.
42         Update number of iterations at the exit condition.
43         Don't redirect nexits always to the loop exit.
44         Redirect copied edges from latch to the loop exit.
45         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
46         * testsuite/gcc.dg/autopar/outer-1.c: New testcase.
47         * testsuite/gcc.dg/autopar/outer-2.c: New testcase.
48         * testsuite/gcc.dg/autopar/outer-3.c: New testcase.
49         * testsuite/gcc.dg/autopar/outer-4.c: New testcase.
50         * testsuite/gcc.dg/autopar/outer-5.c: New testcase.
51         * testsuite/gcc.dg/autopar/outer-6.c: New testcase.
52
53 2009-10-22  Jan Hubicka  <jh@suse.cz>
54
55         * ipa-cp.c (ipcp_read_summary): Remove now invalid FIXME and
56         flag_ltrans check.
57         * ipa-inline.c (cgraph_mark_inline_edge,
58         cgraph_decide_inlining_of_small_function,
59         cgraph_decide_inlining, inline_read_summary): Disable indirect inlining
60         for WPA for time being.
61
62         PR tree-optimize/40556                                                                                                                                         
63         * ipa-inline.c (cgraph_early_inlining): Fix iterations condition.
64
65 2009-10-22  Richard Guenther  <rguenther@suse.de>
66
67         * lto-streamer.h (lto_symtab_clear_resolution): Remove.
68         * lto-symtab.c (lto_symtab_clear_resolution): Likewise.
69
70 2009-10-22  Jan Hubicka  <jh@suse.cz>
71
72         PR lto/41730
73         * ipa-reference.c (has_proper_scope_for_analysis): Add fixme about
74         global vars.
75         (check_call): Handle only indirect calls.
76         (propagate_bits): Update comment.
77         (write_node_summary_p): Turn bogus check to assert.
78         (ipa_reference_write_summary): Stream calls_read_all properly.
79         (ipa_reference_read_summary): Stream in calls_read_all properly.
80         (read_write_all_from_decl): New function.
81         (propagate): Handle OVERWRITABLE nodes and external calls here.
82         * ipa-pre-const.c (check_call): In IPA mode handle indirect calls
83         only.
84         (analyze_function): Do not check visibility here.
85         (add_new_function): We summary OVERWRITABLE too.
86         (generate_summary): Stream OVERWRITABLE nodes too.
87         (propagate): Handle external calls and OVERWRITABLE nodes here.
88         (local_pure_const): Check visibility here.
89
90 2009-10-22  Jan Hubicka  <jh@suse.cz>
91
92         * ipa-cp.c (ipcp_write_summary, ipcp_read_summary): New functions.
93         (pass_ipa_cp): Register them.
94         (ipcp_init_stage): Analyze all functions for whopr/lto.
95         (ipcp_propagate_stage): Skip external calls.
96         (ipcp_iterate_stage): Call ipa_update_after_lto_read if needed.
97         * ipa-reference.c (write_node_summary_p): Fix thinko about availability.
98         * cgraphunit.c (ipa_passes): When in lto, ne er produce new summaries;
99         when in ltrans, skip executing of ipa passes since everything should've
100         been done.
101         * ipa-inline.c (cgraph_decide_inlining): Remove FIXMEs.
102         (inline_generate_summary): Likewise.
103         (inline_read_summary): New function.
104         (inline_write_summary): New function.
105         (pass_ipa_inline): Register new hooks.
106         * ipa-prop.c: Inlcude lto-streamer.h
107         (ipa_edge_args_vector): Update declaration.
108         (ipa_count_arguments, ipa_compute_jump_functions,
109         ipa_free_edge_args_substructures): Move ipa_edge_args_vector into ggc.
110         (ipa_write_jump_function, ipa_read_jump_function, ipa_write_node_info,
111         ipa_read_node_info): New static functions.
112         (ipa_prop_write_jump_functions, ipa_prop_read_jump_functions): Update.
113         (duplicate_array): Use xmalloc.
114         (duplicate_ggc_array): New.
115         (ipa_edge_duplication_hook): Use it.
116         (ipa_update_after_lto_read): New function.
117         * ipa-prop.h (ipa_prop_write_jump_functions,
118         ipa_prop_read_jump_functions): Declare.
119         (ipa_pass_through_data, ipa_ancestor_jf_data, ipa_member_ptr_cst,
120         jump_func_value, ipa_member_ptr_cst, ipa_edge_args): Add GTY markers.
121         (ipa_edge_args_vector): Move into GGC.
122         (ipa_check_create_edge_args): Update.
123         (ipa_update_after_lto_read): New.
124         * passes.c (ipa_write_summaries_1): When in wpa, do not write summaries.
125         (ipa_read_summaries): When in ltrans, so not read summaries.
126         * lto-streamer.c (lto_get_section_name): Add LTO_section_jump_functions.
127         * lto-streamer.h (LTO_section_jump_functions): New section.
128         (produce_asm): Declare.
129         * lto-cgraph.c (output_cgraph): Output edges in reverse order.
130         * lto-streamer-out.c (produce_asm): Export.
131         * lto-streamer-in.c: Include tree-pass.h
132         (input_function): Free dominance info when done.
133         (lto_read_body): Push ipa_inline in ltrans stage.
134         * gengtype.c (open_base_files): Add ipa-prop.h into includes.
135         * Makefile.in (GTFILES): Add ipa-prop.h
136
137 2009-10-22  Matthias Klose  <doko@ubuntu.com>
138
139         * doc/install.texi: Document --enable-browser-plugin.
140
141 2009-10-21  Vladimir Makarov  <vmakarov@redhat.com>
142
143         * doc/invoke.texi (fira-loop-pressure): Update default value.
144         * opts.c (decode_options): Remove default value setting for
145         flag_ira_loop_pressure.
146         * config/ia64/ia64.c (ia64_override_options): Set
147         flag_ira_loop_pressure up for -O3.
148         * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
149         
150 2009-10-21  Sebastian Pop  <sebastian.pop@amd.com>
151
152         PR tree-optimization/41497
153         * tree-scalar-evolution.c (analyze_evolution_in_loop): Return
154         chrec_dont_know if the evolution function returned by follow_ssa_edge
155         is constant in the analyzed loop and is not compatible with the
156         initial value before the loop.
157         * tree-chrec.h (no_evolution_in_loop_p): Call STRIP_NOPS.
158
159 2009-10-21  Joseph Myers  <joseph@codesourcery.com>
160
161         * config/sh/sh.c (nonpic_symbol_mentioned_p): Allow UNSPEC_TPOFF.
162
163 2009-10-21  Jakub Jelinek  <jakub@redhat.com>
164
165         PR other/25507
166         * doc/invoke.texi: Document -print-multi-os-directory.
167
168 2009-10-21  Jack Howarth  <howarth@bromo.med.uc.edu>
169
170         PR c++/41313
171         * gcc/config/darwin10.h: Use default_emit_unwind_label.
172         * gcc/config/darwin.c: Disable -freorder-blocks-and-partition
173         when darwin_emit_unwind_label is used.
174
175 2009-10-21  Eric Botcazou  <ebotcazou@adacore.com>
176
177         * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Tweak
178         order of checks.
179
180 2009-10-20  Richard Henderson  <rth@redhat.com>
181
182         * tree-eh.c (lower_try_finally_copy): Do lower_eh_constructs_1
183         before emit_post_landing_pad.
184
185 2009-10-20  Adam Nemet  <anemet@caviumnetworks.com>
186
187         * config/mips/mips.c (mips_binary_cost): Add new argument speed.
188         Use when calling rtx_costs.
189         (mips_rtx_costs): Fix formatting.  Use argument speed rather than the
190         global optimize_size.  Pass speed to mips_binary_cost.
191
192 2009-10-20  Jakub Jelinek  <jakub@redhat.com>
193
194         * config/rs6000/rs6000.c (def_builtin): Set TREE_READONLY instead
195         of TREE_CONSTANT.
196
197 2009-10-20  Richard Sandiford  <rdsandiford@googlemail.com>
198
199         * rtl.h (simplify_replace_fn_rtx): Declare.
200         (wrap_constant, unwrap_constant): Delete.
201         * cfgexpand.c (unwrap_constant, wrap_constant): Delete.
202         (expand_debug_expr): Don't call wrap_constant.
203         * combine.c (rtx_subst_pair): Only define for AUTO_INC_DEC.
204         (auto_adjust_pair): Fold into...
205         (propagate_for_debug_subst): ...here.  Only define for AUTO_INC_DEC.
206         Just return a new value.
207         (propagate_for_debug): Use simplify_replace_fn_rtx for AUTO_INC_DEC,
208         otherwise use simplify_replace_rtx.
209         * cselib.c (wrap_constant): Reinstate old definition.
210         (cselib_expand_value_rtx_1): Don't wrap constants.
211         * gcse.c (try_replace_reg): Don't use copy_rtx in the call to
212         simplify_replace_rtx.
213         (bypass_block): Fix formatting in calls to simplify_replace_rtx.
214         * reload1.c (reload): Skip all uses for an insn before adjusting it.
215         Use simplify_replace_rtx.
216         * simplify-rtx.c (simplify_replace_fn_rtx): New function,
217         adapted from...
218         (simplify_replace_rtx): ...here.  Turn into a wrapper for
219         simplify_replace_fn_rtx.
220         (simplify_unary_operation): Don't unwrap CONSTs.
221         * var-tracking.c (check_wrap_constant): Delete.
222         (vt_expand_loc_callback): Don't call it.
223         (vt_expand_loc): Likewise.
224
225 2009-10-20  Pascal Obry  <obry@adacore.com>
226             Eric Botcazou  <ebotcazou@adacore.com>
227
228         * config/i386/cygming.h (DWARF_FRAME_REGNUM): Add enclosing parens.
229
230 2009-10-20  Michael Matz  <matz@suse.de>
231
232         * loop-invariant.c (create_new_invariant): Use different magic number.
233
234 2009-10-20  Richard Earnshaw  <rearnsha@arm.com>
235
236         PR target/39247
237         * arm.c (arm_override_options): Forcibly disable hot/cold block
238         partitioning.
239
240 2009-10-20  Alexandre Oliva  <aoliva@redhat.com>
241
242         PR debug/41739
243         * haifa-sched.c (try_ready): Skip debug deps updating speculation
244         status.
245
246 2009-10-20  Richard Guenther  <rguenther@suse.de>
247
248         * ggc-page.c: Include cfgloop.h.
249         (struct max_alignment): Drop long double, add void *.
250         (extra_order_size_table): Add low non-power-of-two multiples
251         of MAX_ALIGNMENT.  Drop small type-based entries, add
252         tree_type, cgraph_node and loop.
253         * alloc-pool.c (struct allocation_object_def): Drop long double
254         aligning element.
255
256 2009-10-20  Jakub Jelinek  <jakub@redhat.com>
257
258         PR debug/41340
259         * loop-invariant.c (calculate_loop_reg_pressure): Don't count regs
260         referenced just in DEBUG_INSNs.
261
262 2009-10-20  Richard Guenther  <rguenther@suse.de>
263
264         PR lto/41761
265         * gimple.c (gimple_register_type): Make sure we register
266         the types main variant first.
267
268 2009-10-20  Richard Guenther  <rguenther@suse.de>
269
270         * gimple.c (gimple_types_compatible_p): Simplify.  Move
271         cheap checks before hashtable queries.  Add checks for
272         TYPE_NONALIASED_COMPONENT and DECL_NONADDRESSABLE_P.
273
274 2009-10-20  Eric Botcazou  <ebotcazou@adacore.com>
275
276         * tree-sra.c (build_ref_for_offset_1) <RECORD_TYPE>: Skip fields
277         without size or with size that can't be represented as a host integer.
278
279 2009-10-20  Alexandre Oliva  <aoliva@redhat.com>
280
281         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't regard
282         the removal of a debug stmt as a significant change.
283
284 2009-10-20  Wolfgang Gellerich  <gellerich@de.ibm.com>
285
286         * config/s390/s390.md: Added agen condition to operand
287         forwarding bypasses. 
288         Added bypass for early address generation use of int results.
289         Updated comments.
290
291 2009-10-20  Stefan Dösinger  <stefan@codeweavers.com>
292
293         * config/i386/i386.c: Remove signal.h #include.
294
295 2009-10-20  Jie Zhang  <jie.zhang@analog.com>
296
297         * simplify-rtx.c (simplify_const_unary_operation): Handle SS_ABS.
298         * doc/rtl.texi: Document ss_abs.
299
300 2009-10-19  Jakub Jelinek  <jakub@redhat.com>
301
302         * c-common.c (c_parse_error): Handle CPP_UTF8STRING.
303         * c-lex.c (c_lex_with_flags): Likewise.  Test C_LEX_STRING_NO_JOIN
304         instead of C_LEX_RAW_STRINGS.
305         (lex_string): Handle CPP_UTF8STRING.
306         * c-parser.c (c_parser_postfix_expression): Likewise.
307         * c-pragma.h (C_LEX_RAW_STRINGS): Rename to ...
308         (C_LEX_STRING_NO_JOIN): ... this.
309
310 2009-10-19  Anatoly Sokolov  <aesok@post.ru>
311
312         * config/cris/cris.c (cris_function_value, cris_libcall_value,
313         cris_function_value_regno_p): New functions.
314         (cris_promote_function_mode): Update comment.
315         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
316         * config/cris/cris.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
317         (FUNCTION_VALUE_REGNO_P): Redefine, use cris_function_value_regno_p.
318         * config/cris/cris-protos.h (cris_function_value_regno_p): Declare.
319
320 2009-10-19  Jakub Jelinek  <jakub@redhat.com>
321
322         * unwind-dw2.c (execute_stack_op): Fix operand order for
323         DW_OP_le, DW_OP_ge, DW_OP_lt and DW_OP_gt.
324
325 2009-10-19  Eric Botcazou  <ebotcazou@adacore.com>
326
327         * gimple-low.c (struct lower_data): Add cannot_fallthru field.
328         (lower_stmt) <GIMPLE_BIND>: Add comment.
329         <GIMPLE_COND, GIMPLE_GOTO, GIMPLE_SWITCH>: Set cannot_fallthru to true
330         and return.
331         <GIMPLE_RETURN>: Remove the statement if cannot_fallthru is set.
332         Otherwise lower it and set cannot_fallthru to true.
333         <GIMPLE_TRY>: Update cannot_fallthru for GIMPLE_TRY_FINALLY and return.
334         <GIMPLE_CATCH, GIMPLE_EH_FILTER>: Set cannot_fallthru to false.
335         <GIMPLE_CALL>: Set cannot_fallthru to false for BUILT_IN_SETJMP and
336         to true for a noreturn call.  Do not remove statements.
337         <GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TASK>: Set cannot_fallthru to false.
338         Set cannot_fallthru to false on function exit.
339         (gimple_stmt_may_fallthru) <GIMPLE_SWITCH>: Really return false.
340         <GIMPLE_ASSIGN>: Remove.
341
342 2009-10-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
343
344         * config/s390/s390.c (s390_z10_optimize_cmp): Don't touch FP compares.
345
346 2009-10-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
347
348         * config/s390/s390.c (s390_z10_optimize_cmp): Use
349         next/prev_active_insn to skip DEBUG_INSNs as well.
350
351 2009-10-19  Joseph Myers  <joseph@codesourcery.com>
352
353         * config/arm/arm.c (output_move_neon): Use DImode in call to
354         adjust_address.
355
356 2009-10-19  Matthias Klose  <doko@ubuntu.com>
357
358         PR target/40134
359         * config.gcc (arm*-*-linux-*eabi): Use config/t-slibgcc-libgcc.
360
361 2009-10-19  Jakub Jelinek  <jakub@redhat.com>
362
363         * cfgexpand.c (expand_debug_expr): Fail if bitpos < 0 for non-MEM op0.
364
365 2009-10-17  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
366
367         PR middle-end/41738
368         * optabs.c (expand_binop): Make mode of shift count expression mode
369         of shift count not target.
370         Remove indent nit.
371
372 2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>
373
374         * tree-nested.c (convert_nonlocal_reference_stmt) <GIMPLE_COND>: New
375         case.  Force using values to replace references within the statement.
376         (convert_local_reference_stmt): Likewise.
377
378 2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>
379
380         * gimple-low.c (lower_stmt) <GIMPLE_CALL>: If the call is noreturn,
381         remove a subsequent GOTO or RETURN statement.
382
383 2009-10-17  Andy Hutchinson  <hutchinsonandy@aim.com>
384
385         * config/avr.md (*movqi): Add zero as equally preferable constraint
386         as general register.
387         (*movhi): Ditto.
388
389 2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>
390
391         * print-tree.c (print_node): Fix string for DECL_STRUCT_FUNCTION.
392
393 2009-10-17  Richard Guenther  <rguenther@suse.de>
394
395         * lto-streamer-in.c (lto_input_location): Try to reuse previous maps.
396
397 2009-10-17  Richard Guenther  <rguenther@suse.de>
398
399         * lto-streamer-in.c (input_gimple_stmt): Fixup FIELD_DECL
400         operands in COMPONENT_REFs.
401
402 2009-10-17  Anatoly Sokolov  <aesok@post.ru>
403
404         * targhooks.c (default_libcall_value): Don't use LIBCALL_VALUE macro
405         if not defined. Change type of second argument to const_rtx.
406         (default_function_value): Call gcc_unreachable if FUNCTION_VALUE
407         macro not defined.
408         * targhooks.h (default_libcall_value): Update prototype.
409         * target.h (struct gcc_target): Change type of second argument of
410         libcall_value to const_rtx.
411         * config/arm/arm.c (arm_libcall_value): Change type of second argument
412         to const_rtx.
413         (arm_libcall_uses_aapcs_base): Change type of argument to const_rtx.
414         * doc/tm.texi (TARGET_LIBCALL_VALUE):  Revise documentation.
415
416 2009-10-17  Jakub Jelinek  <jakub@redhat.com>
417
418         PR debug/40521
419         * debug.h (struct gcc_debug_hooks): Add assembly_start hook.
420         * cgraphunit.c (cgraph_optimize): Call it.
421         * dwarf2out.c (dwarf2out_init): Move .cfi_sections printing into...
422         (dwarf2out_assembly_start): ... here.  New hook.
423         (dwarf2out_debug_hooks): Add dwarf2out_assembly_start.
424         * debug.c (do_nothing_debug_hooks): Do nothing for assembly_start
425         hook.
426         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
427         * sdbout.c (sdb_debug_hooks): Likewise.
428         * vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_assembly_start.
429         (vmsdbgout_assembly_start): New hook.
430
431 2009-10-17  Alexandre Oliva  <aoliva@redhat.com>
432
433         * rtl.h (RTL_LOCATION): Fix typo.
434
435 2009-10-17  Alexandre Oliva  <aoliva@redhat.com>
436
437         * print-rtl.c (print_rtx): Print locators in asm_operands
438         and asm_input.
439
440 2009-10-17  Alexandre Oliva  <aoliva@redhat.com>
441
442         PR debug/41535
443         * sched-deps.c (depl_on_debug_p): New.
444         (attach_dep_link): Reject debug deps before nondebug deps.
445         (add_to_deps_list): Insert debug deps after nondebug deps.
446         (sd_lists_empty_p): Stop at first nonempty list.  Disregard debug
447         deps.
448         (sd_add_dep): Do not reject debug deps.
449         (add_insn_mem_dependence): Don't count debug deps.
450         (remove_from_deps): Likewise.
451         (sched_analyze_2): Set up mem deps on debug insns.
452         (sched_analyze_insn): Record reg uses for deps on debug insns.
453         * haifa-sched.c (schedule_insn): Reset deferred debug insn.  Don't
454         try_ready nondebug insn after debug insn.
455         * ddg.c (create_ddg_dep_from_intra_loop_link,
456         create_ddg_dep_no_link): Don't reject debug deps.
457
458 2009-10-16  Richard Guenther  <rguenther@suse.de>
459
460         * lto-symtab.c (merge_incomplete_and_complete_type): Remove.
461         (maybe_merge_incomplete_and_complete_type): Likewise.
462         (lto_symtab_merge): Do not call them.  Do not warn for
463         complete vs. incomplete compatible types.
464         (lto_symtab_merge_decls_2): Simplify.
465         * gimple.c (gimple_force_type_merge): Remove.
466         (gimple_types_compatible_p): Make it static.
467         * gimple.h (gimple_force_type_merge): Remove.
468         (gimple_types_compatible_p): Likewise.
469
470 2009-10-16  Jakub Jelinek  <jakub@redhat.com>
471
472         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Cast
473         DWARF2_ADDR_SIZE to int to avoid signed vs. unsigned warnings.
474
475 2009-10-16  Richard Guenther  <rguenther@suse.de>
476
477         PR tree-optimization/41728
478         * tree-ssa-dom.c (optimize_stmt): Mark the stmt modified
479         if fold_stmt did anything.
480
481 2009-10-16  Richard Guenther  <rguenther@suse.de>
482
483         PR lto/41715
484         * lto-streamer-in.c (lto_input_tree_ref): Revert last change.
485         (maybe_fixup_handled_component): New function.
486         (input_gimple_stmt): Fixup mismatched decl replacements.
487
488 2009-10-16  Richard Guenther  <rguenther@suse.de>
489
490         PR lto/41713
491         * lto-streamer-out.c (lto_output_tree_ref): Handle DEBUG_EXPR_DECL
492         the same as VAR_DECL.
493
494 2009-10-16  Richard Guenther  <rguenther@suse.de>
495
496         * gimple.c (iterative_hash_gimple_type): For integer types
497         also hash their minimum and maximum values and the string flag.
498         For array types hash their domain and the string flag.
499
500 2009-10-16  Richard Guenther  <rguenther@suse.de>
501
502         * gimple.c (gimple_types_compatible_p): Restrict completing
503         types to record or unions.  Simplify completion.
504         Do not merge records or unions with different
505         TYPE_STRUCTURAL_EQUALITY_P tag.
506         (iterative_hash_gimple_type): Restrict non-recursing into
507         pointer targets for records and unions.
508
509 2009-10-15  Jakub Jelinek  <jakub@redhat.com>
510
511         PR debug/41717
512         * cfgexpand.c (expand_debug_expr): Handle CONJ_EXPR.
513         * dwarf2out.c (mem_loc_descriptor): Don't handle
514         POST_INT/POST_DEC/POST_MODIFY like SUBREG.  For SUBREG
515         punt if it is not lowpart subreg or if inner mode isn't
516         MODE_INT.
517
518 2009-10-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
519
520         * config/s390/s390.c (s390_z10_optimize_cmp): Skip notes when
521         investigating previous or next insns.
522
523 2009-10-16  Eric Botcazou  <ebotcazou@adacore.com>
524
525         * tree-sra.c (build_ref_for_offset_1): Update comment.
526
527 2009-10-16  Wolfgang Gellerich  <gellerich@de.ibm.com>
528
529         * config/s390/s390.md (atype): Added missing values.
530
531 2009-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
532
533         PR target/41702
534         * pa.md (casesi): Use sign extended index in call to gen_casesi64p.
535         (casesi64p): Update pattern to reflect above.
536
537 2009-10-15  Steve Ellcey  <sje@cup.hp.com>
538
539         PR rtl-optimization/41697
540         * sel-sched-ir.h (_eligible_successor_edge_p): Check successor count.
541
542 2009-10-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
543
544         PR target/23983
545         * config/rs6000/predicates.md: Update copyright year.
546         * config/rs6000/altivec.md: Ditto.
547         
548         * config/rs6000/t-rs6000 (TM_H): Add rs6000-builtin.def.
549         (MD_INCLUDES): Add a2.md.
550         
551         * config/rs6000/rs6000.c (rs6000_builtin_decls): Change
552         RS6000_BUILTIN_COUNT to MAX_RS6000_BUILTINS.
553         (builtin_classify): New static vector to classify various builtins
554         to get the tree attributes correct.
555         (def_builtin): Set the attributes of builtins based on what the
556         builtin does (i.e. memory operation, floating point, saturation
557         need special attributes, others are pure functions).
558
559         * config/rs6000/rs6000.h (enum rs6000_btc): New enum to classify
560         the builtins.
561         (enum rs6000_builtins): Include rs6000-builtin.def to define the
562         builtins.  Change the end marker to MAX_RS6000_BUILTINS from
563         RS6000_BUILTIN_COUNT.
564         (rs6000_builtin_decls): Change RS6000_BUILTIN_COUNT to
565         MAX_RS6000_BUILTINS.
566
567         * config/rs6000/rs6000-builtin.def: New file that combines the
568         builtin enumeration name and attributes.
569
570 2009-10-15  H.J. Lu  <hongjiu.lu@intel.com>
571
572         * config/i386/linux.h (ASM_SPEC): Add --32.
573
574 2009-10-15  Jakub Jelinek  <jakub@redhat.com>
575
576         * dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type
577         and DW_TAG_template_alias.
578         (dwarf_attr_name): Handle DW_AT_main_subprogram,
579         DW_AT_data_bit_offset, DW_AT_const_expr, DW_AT_enum_class,
580         DW_AT_linkage_name, DW_AT_GNU_guarded_by, DW_AT_GNU_pt_guarded_by,
581         DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded, DW_AT_GNU_locks_excluded,
582         DW_AT_GNU_exclusive_locks_required, DW_AT_GNU_shared_locks_required
583         and DW_AT_GNU_odr_signature.
584         (dwarf_form_name): Handle DW_FORM_sec_offset, DW_FORM_exprloc,
585         DW_FORM_flag_present and DW_FORM_ref_sig8.
586         (output_signature): Only print name on the first byte.
587         (output_die): Likewise for dw_val_class_data8.
588
589 2009-10-15  Alexander Monakov  <amonakov@ispras.ru>
590
591         * doc/invoke.texi: Clarify that most optimizations are not enabled
592         without -O.
593
594 2009-10-15  Richard Guenther  <rguenther@suse.de>
595
596         PR lto/41668
597         * gimple.c (compare_type_names_p): Handle anonymous names
598         differently based on new mode argument.
599         (gimple_types_compatible_p): For structs also compare the tags.
600         (iterative_hash_type_name): Rename to ...
601         (iterative_hash_name): ... this.  Hash all names.
602         (iterative_hash_gimple_type): Fix hashing the struct tag of
603         pointer targets.  Hash field decl names.
604
605 2009-10-15  Richard Guenther  <rguenther@suse.de>
606
607         PR lto/41669
608         * gimple.c (gimple_get_alias_set): Avoid recursing on
609         invalid type topology.
610
611 2009-10-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
612
613         * config/spu/spu.c (get_branch_target): Use extract_asm_operands.
614
615 2009-10-15  Richard Guenther  <rguenther@suse.de>
616
617         * tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT.
618
619 2009-10-15  Jakub Jelinek  <jakub@redhat.com>
620
621         * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Don't
622         add --with-tune{,-32,-64} configured default for -mtune if explicit
623         -mcpu is used.
624
625 2009-10-14  Daniel Gutson  <dgutson@codesourcery.com>
626
627         * config/arm/neon.md (neon_vshll_n<mode>): Checking Bounds fixed.
628
629 2009-10-14  DJ Delorie  <dj@redhat.com>
630         
631         * config/h8300/h8300.c (F): New.
632         (Fpa): New.
633         (h8300_emit_stack_adjustment): Call them.
634         (push): Likewise.
635         (h8300_push_pop): Likewise.
636         (h8300_expand_prologue): Likewise.
637         * config/h8300/h8300.h (DWARF2_DEBUGGING_INFO): Define.
638         (MUST_USE_SJLJ_EXCEPTIONS): Define.
639         (INCOMING_RETURN_ADDR_RTX): Define.
640         (INCOMING_FRAME_SP_OFFSET): Define.
641         (DWARF_CIE_DATA_ALIGNMENT): Define.
642
643 2009-10-14  Jakub Jelinek  <jakub@redhat.com>
644
645         * stor-layout.c (place_field): Don't emit -Wpadded warnings for
646         fields in builtin structs.
647         (finalize_record_size): Likewise.
648
649 2009-10-14  Richard Guenther  <rguenther@suse.de>
650
651         * gimple.c (gtc_ob): New global.
652         (struct type_pair_d): Replace pointers with type UIDs.
653         (type_pair_hash): Adjust.
654         (type_pair_eq): Likewise.
655         (lookup_type_pair): Likewise.  Allocate from an obstack.
656         (gimple_force_type_merge): Adjust.
657         (gimple_types_compatible_p): Likewise.
658         (free_gimple_type_tables): Free the obstack.
659
660 2009-10-14  Jakub Jelinek  <jakub@redhat.com>
661
662         * tree-parloops.c (separate_decls_in_region_debug_bind): Drop debug
663         stmts setting DEBUG_EXPR_DECLs.
664
665         * cfgexpand.c (expand_debug_expr): Ignore zero-length bitfields.
666         Don't crash if mode1 is VOIDmode.
667
668 2009-09-26  Vladimir Makarov  <vmakarov@redhat.com>
669
670         * params.def (PARAM_IRA_LOOP_RESERVED_REGS): New.
671         * params.h (IRA_LOOP_RESERVED_REGS): New.
672         * tree-pass.h (pass_subregs_of_mode_init,
673         pass_subregs_of_mode_finish): Remove.
674         * passes.c (pass_subregs_of_mode_init,
675         pass_subregs_of_mode_finish): Remove.
676         (pass_reginfo_init): Move before loop optimizations.
677         * config/i386/i386.h (STACK_REG_COVER_CLASS): Define.
678         * common.opt (fira-loop-pressure): New.
679         * toplev.h (flag_ira_loop_pressure): New.
680         * rtl.h (init_subregs_of_mode, finish_subregs_of_mode): New externals.
681         * reginfo.c (init_subregs_of_mode, finish_subregs_of_mode):
682         Make external and void type functions.
683         (gate_subregs_of_mode_init, pass_subregs_of_mode_init,
684         pass_subregs_of_mode_finish): Remove.
685         * ira-costs.c (init_costs): Call init_subregs_of_mode.
686         * regmove.c: Include ira.h.
687         (regmove_optimize): Call ira_set_pseudo_classes after IRA based
688         register pressure calculation in loops.
689         * loop-invariant.c: Include REGS_H and ira.h.
690         (struct loop_data): New members max_reg_pressure, regs_ref, and
691         regs_live.
692         (struct invariant): New member orig_regno.
693         (curr_loop): New variable.
694         (find_exits): Initialize regs_ref and regs_live.
695         (create_new_invariant): Initialize orig_regno.
696         (get_cover_class_and_nregs): New.
697         (get_inv_cost): Make aregs_needed an array.  Use regs_needed as an
698         array.  Add code for flag_ira_loop_pressure.
699         (gain_for_invariant): Make new_regs an array.  Add code for
700         flag_ira_loop_pressure.
701         (best_gain_for_invariant): Ditto.
702         (set_move_mark): New parameter gain.  Use it for debugging output.
703         (find_invariants_to_move): Make regs_needed and new_regs an array.
704         Add code for flag_ira_loop_pressure.
705         (move_invariant_reg): Set up orig_regno.
706         (move_invariants): Set up reg classes for pseudos for
707         flag_ira_loop_pressure.
708         (free_loop_data): Clear regs_ref and regs_live.
709         (curr_regs_live, curr_reg_pressure, regs_set, n_regs_set,
710         get_regno_cover_class, change_pressure, mark_regno_live,
711         mark_regno_death, mark_reg_store, mark_reg_clobber,
712         mark_reg_death, mark_ref_regs, calculate_loop_reg_pressure): New.
713         (move_loop_invariants): Calculate pressure.  Initialize curr_loop.
714         * ira.c (ira): Call ira_set_pseudo_classes after IRA based
715         register pressure calculation in loops if new regs were added.
716         Call finish_subregs_of_mode.
717         * opts.c (decode_options): Set up flag_ira_loop_pressure.
718         * Makefile.in (loop-invariant.o): Add ira.h.
719         (regmove.o): Ditto.
720         * doc/invoke.texi (-fira-loop-pressure, ira-loop-reserved-regs):
721         Describe.
722         * doc/tm.texi (STACK_REG_COVER_CLASS): Describe.
723         
724 2009-10-14  Richard Guenther  <rguenther@suse.de>
725
726         * lto-symtab.c (lto_symtab_compatible): Fold in ...
727         (lto_symtab_merge): ... here.  Rewrite both to take the
728         prevailing and a to-be-merged entry and to queue diagnostics properly.
729         (lto_symtab_resolve_replaceable_p): New predicate for
730         symbol resolution.
731         (lto_symtab_resolve_can_prevail_p): Likewise.
732         (lto_symtab_resolve_symbols): Rewrite.  Fold in code that
733         handles merging commons by choosing the largest decl.  Fold
734         in code that gives ODR errors.
735         (lto_symtab_merge_decls_2): Simplify a lot.  Emit queued
736         diagnostics here.
737         (lto_symtab_merge_decls_1): Re-structure.  Deal with the
738         case of no prevailing decl here.  Diagnose mismatches
739         in object types here.  Drop all but the prevailing decls.
740         (lto_symtab_prevailing_decl): Return the single prevailing decl.
741         * lto-streamer-in.c (lto_input_tree_ref): Deal with
742         VIEW_CONVERT_EXPRs in decl slots.  Unshare the tree in this case.
743
744 2009-10-14  Richard Guenther  <rguenther@suse.de>
745
746         PR lto/41521
747         * lto-streamer-in.c (input_bb): Replace debug stmts with
748         nops instead of dropping them.
749
750 2009-10-14  Nick Clifton  <nickc@redhat.com>
751
752         * gcc/doc/extended.texi: Replace the dash character with @minus{}
753         in situations where it is being used as a minus symbol.
754         * gcc/doc/tm.texi: Likewise.
755         * gcc/doc/md.texi: Likewise.
756
757 2009-10-14  Jakub Jelinek  <jakub@redhat.com>
758
759         PR preprocessor/41543
760         * input.h (BUILTINS_LOCATION): Change to 1 from 2.
761         Assert BUILTINS_LOCATION < RESERVED_LOCATION_COUNT.
762         * tree.c: Include intl.h.
763         (expand_location): Handle BUILTINS_LOCATION.
764         * Makefile.in (tree.o): Depend on intl.h.
765
766         PR debug/41695
767         * dwarf2out.c (dwarf2out_var_location): Always clear
768         last_postcall_label when changing last_label.
769
770 2009-10-14  Pascal Obry  <obry@adacore.com>
771
772         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Add -E.
773         (process_command): Handle -E as done with -c and -S.  Do not add
774         the target executable suffix to the output file when -E is used.
775         (main): Adjust error message accordingly.
776
777 2009-10-14  Alexandre Oliva  <aoliva@redhat.com>
778
779         PR debug/41343
780         PR debug/41447
781         PR debug/41264
782         PR debug/41338
783         * tree.c (tree_node_structure_for_code): DEBUG_EXPR_DECL uses
784         decl with rtl.
785         (tree_code_size): Likewise.
786
787 2009-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
788
789         * builtins.c (fold_builtin_1): Support complex "arc" functions.
790         * real.h (HAVE_mpc_arc): Define.
791
792 2009-10-14  Kaz Kojima  <kkojima@gcc.gnu.org>
793
794         * config/sh/sh.c (TARGET_BUILTIN_DECL): Define.
795         (struct builtin_description): Add fndecl field.
796         (bdesc): Remove const qualifier.  Update initializer.
797         (sh_media_init_builtins): Remove const qualifier for d.  Record
798         the result of add_builtin_function to the fndecl field.
799         (sh_builtin_decl): New.
800         (sh_media_builtin_decl): New.
801
802 2009-10-14  Hans-Peter Nilsson  <hp@axis.com>
803
804         PR target/38948
805         * config/cris/cris.h (SECONDARY_RELOAD_CLASS): Handle reload
806         requests between special registers.
807
808 2009-10-13  Eric Botcazou  <ebotcazou@adacore.com>
809
810         * dwarf2out.c (mem_loc_descriptor): Accept UNGT as well.
811
812 2009-10-13  Richard Henderson  <rth@redhat.com>
813
814         PR tree-optimization/41377
815         * tree-eh.c (unsplit_eh): Propagate degenerate PHIs.
816         (cleanup_empty_eh_merge_phis): New change_region parameter;
817         pass it on to redirect_eh_edge_1.  Update callers.
818         (cleanup_empty_eh_unsplit): Don't require an existing EH label
819         at the destination block.
820
821 2009-10-13  Basile Starynkevitch  <basile@starynkevitch.net>
822
823         * passes.c (register_pass): Replaced gcc_unreachable by
824         fatal_error on failure. Mentions plugins in comments & messages.
825
826 2009-10-13  Jakub Jelinek  <jakub@redhat.com>
827
828         PR target/41693
829         * rtl.h (DEBUG_EXPR_TREE_DECL): Define.
830         * sched-vis.c (print_value): Use it.
831         * cselib.c (cselib_hash_rtx): Likewise.
832         * print-rtl.c (print_rtx): Likewise.
833         * cfgexpand.c (expand_debug_rtx): Likewise.
834         * var-tracking.c (vt_expand_loc_callback): Likewise.
835
836 2009-10-13  Richard Guenther  <rguenther@suse.de>
837
838         PR lto/41565
839         * opts.c (handle_option): Split out code to handle setting
840         the options flag var ...
841         (set_option): ... here.
842         * opts.h (set_option): Declare.
843         * lto-opts.c (register_user_option_p): Include -fexceptions
844         and all position independent code variants.
845         (handle_common_option): Remove.
846         (lto_reissue_options): Use set_option.
847
848 2009-10-13  Martin Jambor  <mjambor@suse.cz>
849
850         PR tree-optimization/41661
851         * ipa-prop.c (compute_complex_pass_through): Allow only operations
852         that are tcc_comparisons or do not change the type in any
853         un-usleless way.
854         * ipa-cp.c (ipcp_lattice_from_jfunc): Request boolean type when
855         folding tcc_comparison operations.
856
857 2009-10-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
858
859         * config/s390/s390.c (s390_encode_section_info): Handle BLKmode
860         properly.
861
862 2009-10-12  Alexandre Oliva  <aoliva@redhat.com>
863
864         PR debug/41343
865         PR debug/41447
866         PR debug/41264
867         PR debug/41338
868         * tree.def (DEBUG_EXPR_DECL): New.
869         * rtl.def (DEBUG_EXPR): New.
870         * gengtype.c (adjust_field_rtx_def): Handle it.
871         * tree-ssa.c (propagate_var_def_into_debug_stmts): Rename to...
872         (insert_debug_temp_for_var_def): ... this.  Drop support for
873         moving.  Take iterator for def stmt; insert debug stmt before it.
874         Scan early for use count and kind in debug stmts.
875         (propagate_defs_into_debug_stmts): Rename to...
876         (insert_debug_temps_for_defs): ... this.  Likewise.
877         * tree.h (DEBUG_TEMP_UID): New.
878         * tree.c (next_debug_decl_uid): New.
879         (make_node_stat): Count debug decls separately.
880         (copy_node_stat): Likewise.
881         * cfgexpand.c (expand_debug_expr): Handle DEBUG_EXPR_DECL.
882         * var-tracking.c (dv_is_decl_p): Recognize it.
883         (VALUE_RECURSED_INTO): Apply to DEBUG_EXPRs too.
884         (track_expr_p): Track expanded DEBUG_EXPR_DECLs.
885         (vt_expand_loc_callback): Expand DEBUG_EXPRs.
886         (emit_note_insn_var_location): Don't emit notes for DEBUG_EXPR_DECLs.
887         * cselib.c (rtx_equal_for_cselib_p): Handle DEBUG_EXPR.
888         (cselib_hash_rtx): Likewise.
889         (cselib_expand_value_rtx_1): Use callback for DEBUG_EXPR.
890         * tree-ssa-operands.c (get_expr_operands): Skip DEBUG_EXPR_DECLs in
891         debug bind stmts.
892         * emit-rtl.c (verify_rtx_sharing): Handle DEBUG_EXPR and VALUE.
893         (copy_rtx_if_shared_1, reset_used_flags, set_used_flags): Likewise.
894         * rtl.c (copy_rtx): Likewise.
895         (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_EXPR.
896         * print-rtl.c (print_rtx): Likewise.
897         * sched-vis.c (print_value): Likewise.
898         (print_insn): Handle DEBUG_EXPR_DECL.
899         * tree-dump.c (dequeue_and_dump): Likewise.
900         * tree-pretty-print.c (dump_decl_name, dump_generic_node): Likewise.
901         * gimple-iterator (gsi_replace): Check for same lhs.
902         (gsi_remove): Insert debug temps.
903         * tree-ssa-loop-im.c (rewrite_reciprocal): Replace with same lhs.
904         (move_computations_stmt): Drop explicit propagation into debug stmts.
905         (rewrite_bittest): Likewise.  Use gsi_remove for propagation.
906         * tree-ssa-reassoc.c (rewrite_expr_tree, linearize_expr): Likewise.
907         * tree-ssa-sink.c (statement_sink_location): Likewise.
908         * tree-ssa-forwprop (forward_propagate_addr_expr): Likewise.
909         * tree-ssanames.c (release_ssa_name): Adjust for rename.
910         * tree-flow.h: Likewise.
911         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Don't mark
912         debug temps without values.
913         (eliminate_unnecessary_stmts): Don't discard just-inserted
914         debug stmts.
915
916 2009-10-12  Hans-Peter Nilsson  <hp@axis.com>
917
918         PR target/26515
919         * config/cris/cris.md (andu): Check that operand 1 is one of the
920         general registers.  Fix typo in head comment.
921
922 2009-10-12  Stefan Dösinger  <stefan@codeweavers.com>
923
924         * config/i386/i386.md (vswapmov): New.
925         * config/i386/i386.c (ix86_handle_fndecl_attribute): New.
926         (ix86_function_ms_hook_prologue): New.
927         (ix86_expand_prologue): Handle ms_hook_prologue attribute.
928         * configure.ac: Test for swap suffix support in as.
929         * configure: Rebuild.
930
931 2009-10-12  Jakub Jelinek  <jakub@redhat.com>
932
933         PR target/41680
934         * config/i386/i386.md (split after *testqi_ext_3_rex64): Only narrow
935         paradoxical subregs to prevent partial register stalls if the inner
936         mode is integer mode.
937
938 2009-10-12  Uros Bizjak  <ubizjak@gmail.com>
939
940         * config/i386/i386.md (*setcc_<mode>_2): Remove insn pattern.
941
942 2009-10-12  Dodji Seketeli  <dodji@redhat.com>
943
944         PR c++/41570
945         * gcc/dwarf2out.c (template_parameter_pack_die,
946         gen_formal_parameter_pack_die): Use add_name_and_src_coords_attributes.
947
948 2009-10-12  Alexandre Oliva  <aoliva@redhat.com>
949
950         PR debug/41616
951         * tree-into-ssa.c (insert_phi_nodes_for): Build debug bind stmts
952         on updates too.
953         (maybe_register_def): Likewise.  Take stmt iterator.
954         (rewrite_update_stmt): Take stmt iterator and pass it on.
955         (rewrite_update_enter_block): Pass stmt iterator.
956
957 2009-10-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
958
959         * config/spu/spu.c (TARGET_BUILTIN_DECL): Define.
960         (spu_builtin_decl): New function.
961
962 2009-10-12  Uros Bizjak  <ubizjak@gmail.com>
963
964         * config/i386/i386.md (SWIM): New mode iterator.
965         (mov<mode>cc): Macroize expander from mov{qi,hi,si,di}cc patterns
966         using SWIM mode iterator.
967         (x86_mov<mode>cc_0_m1): Macroize insn from x86_mov{si,di}cc_0_m1
968         patterns using SWI48 mode iterator.
969         (*x86_mov<mode>cc_0_m1_se):  Macroize insn from
970         *x86_mov{si,di}cc_0_m1_se patterns using SWI48 mode iterator.
971         (*x86_mov<mode>cc_0_m1_neg): New insn pattern.
972         (*mov<mode>cc_noc): Macroize insn from *mov{hi,si,di}cc_noc
973         patterns using SWI248 mode iterator.
974         * config/i386/i386.c (ix86_expand_int_movcc): Update the call to
975         gen_x86_movdicc_0_m1_rex64 for renamed function
976
977 2009-10-11  Jose Ruiz  <ruiz@adacore.com>
978             Eric Botcazou  <ebotcazou@adacore.com>
979
980         PR target/33743
981         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Define.
982         * config/sparc/sol2-unwind.h: New file.
983
984 2009-10-11  Olivier Hainque  <hainque@adacore.com>
985             Eric Botcazou  <ebotcazou@adacore.com>
986
987         PR target/33743
988         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Define.
989         * config/i386/sol2-unwind.h: New file.
990
991 2009-10-11  H.J. Lu  <hongjiu.lu@intel.com>
992
993         PR target/41665
994         * config/i386/i386.md (addsi_1_zext): Get the proper second
995         operand for lea.
996
997 2009-10-11  Richard Sandiford  <rdsandiford@googlemail.com>
998
999         * simplify-rtx.c (simplify_replace_rtx): Use rtx_equal_p for
1000         all OLD_RTXes, not just REGs.  Use copy_rtx to create the
1001         replacement value.
1002
1003 2009-10-11  Richard Guenther  <rguenther@suse.de>
1004
1005         * gimple.c (iterative_hash_type_name): Do not handle special
1006         anonymous names.
1007
1008 2009-10-11  Uros Bizjak  <ubizjak@gmail.com>
1009
1010         * config/i386/i386.md (*setcc_di_1): New insn_and_split pattern.
1011         (*setcc_si_1_and): Ditto.
1012         (*setcc_si_1_movzbl): Ditto.
1013         (*setcc_<mode>_2): Ditto.
1014         (*setcc_qi): Rename from *setcc_1.
1015         (*setcc_qi_slp): Rename from *setcc_2.
1016
1017         (*zero_extendqihi2_movzbw_and splitter): Use ix86_expand_clear.
1018         (*zero_extendqisi2_movzbw_and splitter): Ditto.
1019
1020         * config/i386/i386.c (ix86_expand_clear): Remove reload_completed from
1021         "if" condition, there is already assert with reload_completed present.
1022
1023 2009-10-11  Gerald Pfeifer  <gerald@pfeifer.com>
1024
1025         * plugin.c (try_init_one_plugin): Improve constness of variable err.
1026
1027 2009-10-10  Gerald Pfeifer  <gerald@pfeifer.com>
1028
1029         * doc/install.texi (Final install): Refer to
1030         http://gcc.gnu.org/bugs/ for bug reporting.
1031
1032 2009-10-10  Peter Bergner  <bergner@vnet.ibm.com>
1033
1034         * configure.ac: Add test for dci instruction.
1035         * configure: Regenerate.
1036         * config.in: Likewise.
1037         * config.gcc: Handle --with-cpu=476 and --with-cpu=476fp.
1038         * doc/invoke.texi: Add cpu_type 476 and 476fp.
1039         (-mmulhw): Add 476 to description.
1040         (-mdlmzb): Likewise.
1041         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=476.
1042         * config/rs6000/rs6000.c (processor_costs): Add ppc476_cost.
1043         (processor_target_table): Add 476 and 476fp entries.
1044         (rs6000_override_options): Use ppc476_cost for PROCESSOR_PPC476.
1045         (rs6000_issue_rate): Add CPU_PPC476.
1046         * config/rs6000/rs6000.h (ASM_CPU_476_SPEC): Define.
1047         (ASM_CPU_SPEC): Pass %(asm_cpu_476) for -mcpu=476 and -mcpu=476fp.
1048         (processor_type): Add PROCESSOR_PPC476.
1049         (EXTRA_SPECS): Add asm_cpu_476 string.
1050         * config/rs6000/rs6000.md (define_attr "type"): Add isel attribute.
1051         (define_attr "cpu"): Add ppc476.
1052         Include 476.md.
1053         Update comments for 476.
1054         (isel_signed, isel_unsigned): Change to use "isel" type attribute.
1055         * config/rs6000/vxworks.h (CPP_SPEC): Handle 464 and 476.
1056         Update copyright year.
1057         * config/rs6000/476.md: New file.
1058         * config/rs6000/40x.md: Add description for "isel" attribute.
1059         Update copyright year.
1060         * config/rs6000/440.md: Likewise.
1061         * config/rs6000/603.md: Likewise.
1062         * config/rs6000/6xx.md: Likewise.
1063         * config/rs6000/7450.md: Likewise.
1064         * config/rs6000/7xx.md: Likewise.
1065         * config/rs6000/8540.md: Likewise.
1066         * config/rs6000/cell.md: Likewise.
1067         * config/rs6000/e300c2c3.md: Likewise.
1068         * config/rs6000/e500mc.md: Likewise.
1069         * config/rs6000/mpc.md: Likewise.
1070         * config/rs6000/power4.md: Likewise.
1071         * config/rs6000/power5.md: Likewise.
1072         * config/rs6000/power6.md: Likewise.
1073         * config/rs6000/power7.md: Likewise.
1074         * config/rs6000/rios1.md: Likewise.
1075         * config/rs6000/rios2.md: Likewise.
1076         * config/rs6000/rs64.md: Likewise.
1077
1078 2009-10-10  Richard Guenther  <rguenther@suse.de>
1079
1080         PR tree-optimization/41654
1081         * tree-ssa-ifcombine.c (ifcombine_ifandif): Properly canonicalize
1082         a cond expr before calling gimple_cond_set_condition_from_tree.
1083         (ifcombine_iforif): Likewise.
1084
1085 2009-10-09  Ian Lance Taylor  <iant@google.com>
1086
1087         * configure.ac: Use AC_SEARCH_LIBS to find dlopen.
1088         * configure: Rebuild.
1089
1090 2009-10-09  Neil Vachharajani <nvachhar@google.com>
1091
1092         * doc/cpp.texi (Other Directives): Do not list #ident and #sccs as
1093         deprecated.
1094
1095 2009-10-09  Richard Guenther  <rguenther@suse.de>
1096
1097         PR lto/41638
1098         * target-def.h (TARGET_BUILTIN_DECL): Define.
1099         (TARGET_INITIALIZER): Add TARGET_BUILTIN_DECL.
1100         * target.h (struct gcc_target): Add builtin_decl target hook.
1101         * doc/tm.texi (TARGET_BUILTIN_DECL): Document.
1102         * lto-streamer-in.c (lto_get_builtin_tree): Fix handling of
1103         target builtins.
1104         * lto-streamer-out.c (lto_output_tree_pointers): Use sorry,
1105         not gcc_unreachable.
1106         (lto_output_builtin_tree): Sorry if the target does not support
1107         streaming target builtins.
1108         * config/rs6000/rs6000.c (TARGET_BUILTIN_DECL): Define.
1109         (rs6000_builtin_decl): New function.
1110         * config/i386/i386.c (TARGET_BUILTIN_DECL): Define.
1111         (ix86_builtin_decl): New function.
1112
1113 2009-10-09  Jakub Jelinek  <jakub@redhat.com>
1114
1115         PR preprocessor/41445
1116         * c-ppoutput.c (do_line_change): New function.
1117         (cb_line_change): Use it.
1118         (scan_translation_unit): Call do_line_change if
1119         avoid_paste or PREV_WHITE and token location is on a different line
1120         than print.src_line.
1121
1122         PR debug/40521
1123         * dwarf2out.c (dwarf2out_init): Test whether
1124         HAVE_GAS_CFI_SECTIONS_DIRECTIVE is non-zero instead of checking
1125         it is defined.
1126
1127         PR rtl-optimization/41646
1128         * calls.c (expand_call): For BLKmode types returned in registers
1129         avoid likely spilled hard regs in copy_blkmode_from_reg generated
1130         insns.
1131
1132 2009-10-09  Richard Guenther  <rguenther@suse.de>
1133
1134         PR tree-optimization/41634
1135         * tree-ssa-dom.c (remove_local_expressions_from_table): Assert
1136         we remove the correct elements.
1137         (optimize_stmt): Make sure to update stmt operands before
1138         optimizing redundancies.
1139
1140 2009-10-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1141
1142         * config/s390/s390.md ("prefetch"): Remove stcmh for prefetching.
1143
1144 2009-10-09  Richard Guenther  <rguenther@suse.de>
1145
1146         PR driver/41637
1147         * lto-wrapper.c (ltrans_output_file, flto_out, args_name): New
1148         globals.
1149         (lto_wrapper_exit): New function.
1150         (fatal): Use it.
1151         (fatal_perror): Likewise.
1152         (fork_execute): Use global args_name, do not free it.
1153         (run_gcc): Use global ltrans_output_file, flto_out, do not free them.
1154         * lto-streamer.h: Remove duplicate prototypes.
1155
1156 2009-10-09  Richard Guenther  <rguenther@suse.de>
1157
1158         * cgraph.c (cgraph_create_edge): Check for NULL call_stmt
1159         before calling stmt_can_throw_external.
1160
1161 2009-10-09  Eric Botcazou  <ebotcazou@adacore.com>
1162
1163         PR tree-optimization/40071
1164         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Build a ref-all
1165         pointer if the original data reference doesn't conflict with the
1166         created vector data reference.  Fix long line.
1167
1168 2009-10-09  Uros Bizjak  <ubizjak@gmail.com>
1169
1170         * config/i386/i386.md (any_div): New code iterator.
1171         (u): Handle div and udiv.
1172         (sgnprefix): Ditto.
1173         (<u>divqi3): Macroize insn from {,u}divqi3  using any_div
1174         code iterator.
1175         (lfloor<MODEF:mode><SWI48:mode>2): Macroize insn from
1176         lfloor<mode>{si,di}2 patterns using SWI48 mode iterator.
1177         (lceil<MODEF:mode><SWI48:mode>2): Macroize insn from
1178         lceil<mode>{si,di}2 patterns using SWI48 mode iterator.
1179
1180 2009-10-08  Joseph Myers  <joseph@codesourcery.com>
1181
1182         * gcc.c (main): Remove trailing "." from diagnostics.
1183
1184 2009-10-08  Cary Coutant  <ccoutant@google.com>
1185
1186         Add support for debugging with ICF (Identical Code Folding).
1187         * calls.c (debug.h): New #include.
1188         (emit_call_1): Call virtual_call_token debug hook.
1189         * common.opt (-fenable-icf-debug): New option.
1190         * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hooks (two
1191         locations in the source).
1192         (poc_label_num): New variable.
1193         (dcall_entry, vcall_entry): New typedefs.
1194         (dcall_table, vcall_table): New variables.
1195         (struct vcall_insn): New type.
1196         (vcall_insn_table): New variable.
1197         (DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION): New macros.
1198         (size_of_dcall_table): New function.
1199         (output_dcall_table): New function.
1200         (size_of_vcall_table): New function.
1201         (output_vcall_table): New function.
1202         (dwarf2out_direct_call): New function.
1203         (vcall_insn_table_hash): New function.
1204         (vcall_insn_table_eq): New function.
1205         (dwarf2out_virtual_call_token): New function.
1206         (dwarf2out_virtual_call): New function.
1207         (dwarf2out_init): Allocate new tables and sections.
1208         (prune_unused_types): Mark DIEs referenced from direct call table.
1209         (dwarf2out_finish): Output direct and virtual call tables.
1210         * final.c (final_scan_insn): Call direct_call and virtual_call
1211         debug hooks.
1212         * debug.h (struct gcc_debug_hooks): Add direct_call,
1213         virtual_call_token, virtual_call hooks.
1214         (debug_nothing_uid): New function.
1215         * debug.c (do_nothing_debug_hooks): Add dummy entries for new hooks.
1216         (debug_nothing_uid): New function.
1217         * dbxout.c (dbx_debug_hooks): Add dummy entries for new hooks.
1218         (xcoff_debug_hooks): Likewise.
1219         * sdbout.c (sdb_debug_hooks): Likewise.
1220         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
1221         * doc/invoke.texi (-fenable-icf-debug): New option.
1222
1223 2009-10-08  Alexandre Oliva  <aoliva@redhat.com>
1224
1225         PR debug/41353
1226         * regmove.c (regmove_backward_pass): Replace src with dst in the
1227         debug insn, and check for dst before rather than after.
1228
1229 2009-10-08  Janis Johnson <janis187@us.ibm.com>
1230
1231         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove.
1232         (TARGET_DELEGITIMIZE_ADDRESS): Likewise.
1233
1234 2009-10-08  Jan Hubicka  <jh@suse.cz>
1235
1236         PR middle-end/41626
1237         * cgraphbuild.c (record_reference): When parameter DATA is NULL,
1238         do not mark cgraph nodes as needed.
1239         (record_references_in_initializer): Add new only_vars parameter.
1240         * cgraph.h (record_references_in_initializer): New parameter.
1241         * varasm.c (assemble_variable): Update call.
1242         * varpool.c (varpool_analyze_pending_decls): Always look for
1243         referenced vars.
1244
1245 2009-10-08  Anatoly Sokolov  <aesok@post.ru>
1246
1247         * config/avr/avr.c (last_insn_address) Remove variable.
1248         (expand_prologue): Don't initialise last_insn_address variable.
1249         (final_prescan_insn): Don't output insn size.
1250         * config/avr/avr.opt (msize): Remove switch.
1251         * doc/invoke.texi (AVR Options): Remove documentation of -msize
1252         switch.
1253
1254 2009-10-08  Adam Nemet  <anemet@caviumnetworks.com>
1255
1256         * combine.c (label_tick_ebb_start): Fix comment.
1257         (combine_instructions): Set label_tick and label_tick_ebb_start before
1258         calling setup_incoming_promotions.  Start them from 1.  Increment
1259         label_tick instead of deriving it from the BB index.  Rather than
1260         comparing ticks use the block from the previous iteration to decide
1261         whether to start a new EBB.  Remove empty lines before function.
1262
1263 2009-10-08  Michael Matz  <matz@suse.de>
1264
1265         PR middle-end/41573
1266         * builtins.c (fold_builtin_isascii): Use fold_build2.
1267         (fold_builtin_isdigit): Ditto.
1268         * except.c (duplicate_eh_regions_1): Tolerate NULL labels.
1269         * tree-cfg.c (struct rus_data, remove_useless_stmts_warn_notreached,
1270         remove_useless_stmts_cond, remove_useless_stmts_tf,
1271         remove_useless_stmts_tc, remove_useless_stmts_bind,
1272         remove_useless_stmts_goto, remove_useless_stmts_label,
1273         remove_useless_stmts_1, remove_useless_stmts,
1274         pass_remove_useless_stmts): Remove.
1275         * tree-pass.h (pass_remove_useless_stmts): Don't declare.
1276         * passes.c (init_optimization_passes): Don't add
1277         pass_remove_useless_stmts.
1278         * tree-eh.c (lower_eh_constructs_2): Handle empty cleanups.
1279         * tree.c (free_lang_data_in_decl): Don't clear DECL_INITIAL of
1280         static constants.
1281         * lto-symtab.c (lto_symtab_register_decl): Accepts DECL_INITIAL
1282         for static constants.
1283         * lto-streamer-out.c (output_gimple_stmt): Handle GIMPLE_NOP.
1284         * lto-streamer-in.c (input_gimple_stmt): Handle GIMPLE_NOP.
1285
1286 2009-10-08  Richard Guenther  <rguenther@suse.de>
1287
1288         * gimple.c (free_gimple_type_tables): New function.
1289         * gimple.h (free_gimple_type_tables): Declare.
1290
1291 2009-10-07  Mark Heffernan  <meheff@google.com>
1292
1293         * ipa-prop.c (ipa_print_node_params) Only print
1294         names of named arguments.
1295
1296 2009-10-08  Rafael Avila de Espindola  <espindola@google.com>
1297
1298         * gcc.c (LINK_COMMAND_SPEC): Pass libc with -pass-through if it is
1299         being statically linked.
1300
1301 2009-10-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1302
1303         * collect2.c (add_lto_object): Only define if OBJECT_FORMAT_NONE.
1304
1305 2009-10-08  Jan Hubicka  <jh@suse.cz>
1306
1307         PR bootstrap/41620
1308         * ipa.c (cgraph_externally_visible_p,
1309         function_and_variable_visibility,
1310         whole_program_function_and_variable_visibility): Skip non-finalized
1311         nodes.
1312
1313 2009-10-08  Nick Clifton  <nickc@redhat.com>
1314
1315         * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Do not allow
1316         CONST_DOUBLEs.
1317
1318 2009-10-08  Andreas Tobler  <a.tobler@schweiz.org>
1319
1320         PR bootstrap/37739
1321         * config.host: Use config/x-cflags-O1 for powerpc FreeBSD.
1322
1323 2009-10-07  Joseph Myers  <joseph@codesourcery.com>
1324
1325         PR c/41182
1326         * c-common.c (c_fully_fold_internal): Strip nops from the result
1327         of recursive calls to c_fully_fold_internal.
1328         (c_wrap_maybe_const): New.
1329         (c_save_expr): Use c_wrap_maybe_const.
1330         * c-common.h (c_wrap_maybe_const): Declare.
1331         * c-typeck.c (build_conditional_expr, c_finish_stmt_expr,
1332         build_binary_op): Use c_wrap_maybe_const.
1333
1334 2009-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1335
1336         * real.c: Fix comment to reflect actual exponent size.
1337
1338 2009-10-08  Ben Elliston  <bje@au.ibm.com>
1339
1340         * config/rs6000/a2.md: Add FSF comment header.
1341
1342 2009-10-07  Uros Bizjak  <ubizjak@gmail.com>
1343
1344         * config/i386/i386.md (any_extend): New code iterator.
1345         (u, s): New code attributes.
1346         (sgnprefix): Ditto.
1347         (DWIH): Rewrite as code iterator for SI and DI modes.
1348         (DWI): Rewrite as mode attribute.
1349         (dwi): New mode attribute.
1350         (di): Depend on SI mode and DI mode.
1351         (doubleint_general_operand): Remove mode attribute.
1352
1353         (*lea_1): Macroize insn from *lea_1_rex64 and *lea_1 patterns using
1354         DWIH mode iterator.
1355
1356         (*add<mode>3_doubleword): Use DWIH as the base mode iterator.
1357         (*sub<mode>3_doubleword): Ditto.
1358
1359         (mul<mode>3): Macroize expander from mul{hi,si,di}3 patterns
1360         using SWIM248 mode iterator.
1361         (*mul<mode>3_1): Macroize insn from mul{si,di}3_1 patterns
1362         using SWI48 mode iterator.
1363         (<u>mul<mode><dwi>3): Macroize expander from {,u}mul{sidi,diti}3
1364         patterns using DWIH mode iterator and any_extend code iterator.
1365         (<u>mulqihi3): Macroize expander from {,u}mulqihi3 patterns
1366         using any_extend code iterator.
1367         (*<u>mul<mode><dwi>3_1): Macroize insn from {,u}mul{sidi,diti}3_1
1368         patterns using DWIH mode iterator and any_extend code iterator.
1369         (*<u>mulqihi3_1): Macroize insn from {,u}mulqihi3_1 patterns
1370         using any_extend code iterator.
1371         (<s>mul<mode>3_highpart): Macroize expander from
1372         {s,u}mul{si,di}3_highpart patterns using DWIH mode iterator
1373         and any_extend code iterator.
1374         (*<s>muldi3_highpart_1): Macroize insn from
1375         *{s,u}muldi3_highpart_rex64 patterns using any_extend code iterator.
1376         (*<s>mulsi3_highpart_1): Macroize insn from *{s,u}mulsi3_highpart_1
1377         patterns using any_extend code iterator.
1378         (*<s>mulsi3_highpart_zext): Macroize insn from
1379         *{s,u}mulsi3_highpart_zext patterns using any_extend code iterator.
1380
1381 2009-10-07  Jakub Jelinek  <jakub@redhat.com>
1382
1383         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Don't add
1384         DW_AT_const_value if VAR_DIE already has DW_AT_abstract_origin
1385         refering to a DIE with DW_AT_const_value.
1386
1387 2009-10-07  Vladimir Makarov  <vmakarov@redhat.com>
1388
1389         PR middle-end/22072
1390         * ira-lives.c (check_and_make_def_conflict): Process all operands.
1391
1392 2009-10-06  Jan Hubicka  <jh@suse.cz>
1393
1394         * cgraph.c (cgraph_node_can_be_local): Handle externally visible nodes
1395         correctly.
1396
1397 2009-10-06  Uros Bizjak  <ubizjak@gmail.com>
1398
1399         * config/i386/i386.md (*lea_1_rex64, *lea_1, *lea_1_zext,
1400         *lea_2_rex64): Move before *add<mode>_1 pattern.
1401
1402 2009-10-07  Jan Hubicka  <jh@suse.cz>
1403
1404         * collect2.c (main): Add -fno-whole-program.
1405         * gcc.c (set_collect_gcc_options): Do not remove whole program here.
1406
1407 2009-10-07  Jan Hubicka  <jh@suse.cz>
1408
1409         * lto-symtab.c (lto_cgraph_replace_node): Assert that inline clones
1410         has no address taken.
1411         * cgraph.c (cgraph_mark_needed_node): Assert that inline clones are
1412         never needed.
1413         (cgraph_clone_node): Clear externally_visible flag for clones.
1414         * cgraph.h (cgraph_only_called_directly_p,
1415         cgraph_can_remove_if_no_direct_calls_p): New predicates.
1416         * tree-pass.h (pass_ipa_whole_program_visibility): Declare.
1417         * ipa-cp.c (ipcp_cloning_candidate_p): Use new predicate.
1418         (ipcp_initialize_node_lattices, ipcp_estimate_growth,
1419         ipcp_insert_stage): Likwise.
1420         * cgraphunit.c (cgraph_decide_is_function_needed): Do not compute
1421         externally_visible flag.
1422         (verify_cgraph_node): Verify that inline clones look right.
1423         (process_function_and_variable_attributes): Do not set
1424         externally_visible flags.
1425         (ipa_passes): Avoid executing small_ipa_passes at LTO stage; they've
1426         been already run.
1427         * lto-cgraph.c (lto_output_node): Assert that inline clones are not
1428         boundaries.
1429         * ipa-inline.c (cgraph_clone_inlined_nodes): Use new predicates;
1430         clear externally_visible when turning into inline clones
1431         (cgraph_mark_inline_edge): Use new predicates.
1432         (cgraph_estimate_growth): Likewise.
1433         (cgraph_decide_inlining): Likewise.
1434         * ipa.c (cgraph_postorder): Likewise.
1435         (cgraph_remove_unreachable_nodes): Likewise; sanity check
1436         that inline clones are not needed.
1437         (cgraph_externally_visible_p): New predicate.
1438         (function_and_variable_visibility): Add whole_program parameter;
1439         always set externally_visible flag; handle COMDAT function
1440         privatization.
1441         (local_function_and_variable_visibility): New function.
1442         (gate_whole_program_function_and_variable_visibility): New function.
1443         (whole_program_function_and_variable_visibility): New function.
1444         (pass_ipa_whole_program_visibility): New function.
1445         * passes.c  (init_optimization_passes): Add whole program visibility
1446         pass.
1447         (do_per_function_toporder, function_called_by_processed_nodes_p): Do
1448         not care about needed/reachable flags.
1449         * varpool.c: Include flags.h
1450         (decide_is_variable_needed): When doing LTO assume whole-program mode.
1451         (varpool_finalize_decl): When we are in LTO read-back, all variables
1452         are analyzed.
1453         (varpool_analyze_pending_decls): Skip analyzis of analyzed vars.
1454
1455 2009-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1456
1457         * config/s390/tpf.h (TARGET_DEFAULT): Remove MASK_HARD_FLOAT and
1458         add MASK_HARD_DFP.
1459
1460 2009-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1461
1462         * config.gcc: Don't include the makefile fragments intended for
1463         libgcc.
1464         * config/s390/fixdfdi.h: File removed.
1465         * config/s390/libgcc-glibc.ver: File removed.
1466         * config/s390/s390.h: Remove the fixdfdi.h hack.
1467         * config/s390/t-crtstuff: File moved to libgcc dir.
1468         * config/s390/t-linux: Likewise.
1469         * config/s390/t-tpf: libgcc specific parts removed.
1470         * config/s390/t-linux64: Likewise.
1471
1472 2009-10-06  Jerry Quinn  <jlquinn@optonline.net>
1473
1474         * Makefile.in (lto-wrapper): Use COMPILER and ALL_COMPILERFLAGS.
1475         (lto-compress.o): Likewise.
1476
1477 2009-10-07  Danny Smith  <dannysmith@users.sourceforge.net>
1478
1479         PR target/41512
1480         * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't propagate
1481         dllexport to class members here.
1482         (i386_pe_determine_dllimport_p): Only check static class data for
1483         definition.
1484         (i386_pe_encode_section_info): Don't recheck DECL_DLLIMPORT_P.
1485         * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Only check
1486         functions for vague linkage.
1487         (i386_pe_type_dllexport_p): Fix formatting.
1488         (maybe_add_dllexport) New function.
1489         (i386_pe_adjust_class_at_definition): Use it to propagate dllexport
1490         to class members.
1491
1492 2009-10-07  Ben Elliston  <bje@au.ibm.com>
1493
1494         * config/rs6000/a2.md: Remove duplicated lines.
1495
1496 2009-10-07  Ben Elliston  <bje@au.ibm.com>
1497
1498         * config.gcc (powerpc*-*-*): Handle a2.
1499         * config/rs6000/rs6000.md (cpu): Add ppca2.  Include "a2.md".
1500         * config/rs6000/a2.md: New file.
1501         * config/rs6000/rs6000.opt (mno-update): New.
1502         (mupdate): Return to using a mask, not a var.
1503         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for a2.
1504         (enum processor_type): Add PROCESSOR_PPCA2.
1505         * config/rs6000/rs6000.c (ppca2_cost): New costs.
1506         (rs6000_override_options): Add "a2" to processor_target_table.
1507         Update rs6000_always_hint logic.  Correctly set rs6000_cost for a2.
1508         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=a2.
1509
1510 2009-10-06  Uros Bizjak  <ubizjak@gmail.com>
1511
1512         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
1513         Use explicit gen_truncxfsf2 and gen_truncxfdf2 references to avoid
1514         reference to nonexistent gen_truncxfxf2 function.
1515
1516 2009-10-06  Uros Bizjak  <ubizjak@gmail.com>
1517
1518         * config/i386/i386.md (SWI48, SDWIM, DWI): New mode iterators.
1519         (DWIH, g, di, doubleint_general_operand): New mode attributes.
1520         (general_operand): Handle TI mode.
1521         (add<mode>3): Macroize expander from add{qi,hi,si,di,ti}3 patterns
1522         using SDWIM mode iterator.
1523         (*add<mode>3_doubleword): New insn_and_split pattern.  Macroize
1524         pattern from *add{di,ti}3_1 patterns and corresponding splitters
1525         using DWI mode iterator.
1526         (add<mode>3_carry): Macroize insn from add{qi,hi,si,di}3_carry
1527         patterns using SWI mode iterator.
1528         (*add<mode>3_cc): Macroize insn from add{si,di}3_cc patterns
1529         using SWI48 mode iterator.
1530         (*add<mode>_1): Ditto from add{si,di}_1 patterns.
1531         (*add<mode>_2): Ditto from add{si,di}_2 patterns.
1532         (*add<mode>_3): Ditto from add{si,di}_3 patterns.
1533         (*add<mode>_5): Ditto from add{si,di}_5 patterns.
1534         (sub<mode>3): Macroize expander from sub{qi,hi,si,di,ti}3 patterns
1535         using SDWIM mode iterator.
1536         (*sub<mode>3_doubleword): New insn_and_split pattern.  Macroize
1537         pattern from *sub{di,ti}3_1 patterns and corresponding splitters
1538         using DWI mode iterator.
1539         (sub<mode>3_carry): Macroize insn from sub{qi,hi,si,di}3_carry
1540         patterns using SWI mode iterator.
1541         (*sub<mode>_1): Ditto from from sub{qi,hi,si,di}_1 patterns.
1542         (*sub<mode>_2): Ditto from sub{qi,hi,si,di}_2 patterns.
1543         (*sub<mode>_3): Ditto from sub{qi,hi,si,di}_3 patterns.
1544         (<plusminus_insn>xf3): Macroize expander from addxf3 and subxf3
1545         patterns using plusminus code iterator.
1546         (<plusminus_insn><mode>3): Macroize expander from add<mode>3 and
1547         sub<mode>3 patterns using plusminus code iterator.
1548         * config/i386/i386.c (override_options): Update the call to
1549         gen_subdi_carry_rex64 for renamed function.
1550         (ix86_expand_int_addcc): Update calls to gen_subdi3_carry_rex64
1551         and gen_adddi3_carry_rex64 for renamed functions.  Use indirect
1552         calls to instruction expanders.
1553
1554 2009-10-06  Martin Jambor  <mjambor@suse.cz>
1555
1556         PR bootstrap/41395
1557         * opts.c (decode_options): Run IPA-SRA at -O2.
1558
1559 2009-10-06  Richard Guenther  <rguenther@suse.de>
1560
1561         * lto-symtab.c (lto_symtab_entry_hash): Hash strings, not pointers.
1562
1563 2009-10-06  Tobias Burnus  <burnus@net-b.de>
1564
1565         PR lto/41591
1566         * doc/invoke.texi (-flto,-fwhole-program): Make clear that the
1567         -flto and -fwhole-program flags can be combined.
1568
1569 2009-10-06  Ryan Mansfield  <rmansfield@qnx.com>
1570
1571         PR driver/41217
1572         * gcc.c (process_command): Check that -o argument was specified.
1573
1574 2009-10-06  Jerry Quinn  <jlquinn@optonline.net>
1575
1576         * gimple.c (gimple_type_hash): Use CONST_CAST_TREE to fix compilation.
1577
1578 2009-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1579
1580         * c.opt (Wjump-misses-init): Fix typo to enable for ObjC.
1581         * doc/invoke.texi (Warning Options): Annotate allowed languages
1582         for -Wunsuffixed-float-constants.
1583
1584 2009-10-05  Jakub Jelinek  <jakub@redhat.com>
1585
1586         * dwarf2out.c (modified_type_die): Don't add DW_AT_name to
1587         DW_TAG_{const,volatile}_type if its DW_AT_type already has the
1588         same name and isn't the main variant.
1589
1590         PR debug/41558
1591         * dwarf2out.c (loc_by_reference): Removed.
1592         (dw_loc_list_1): New function.
1593         (dw_loc_list): Remove toplev argument, add want_address argument.
1594         Don't look at decl_by_reference_p at all.  Use dw_loc_list_1.
1595         (loc_list_from_tree) <case VAR_DECL>: Pass want_address rather than
1596         want_address == 2 to dw_loc_list.  For successful dw_loc_list
1597         set have_address to 1 only if want_address is not 0.
1598
1599 2009-10-05  Richard Sandiford  <rdsandiford@googlemail.com>
1600
1601         * config/mips/mips-protos.h (mips_trampoline_code_size): Declare.
1602         * config/mips/mips.h (TRAMPOLINE_SIZE): Redefine as the size of
1603         a code block followed by two pointers.
1604         (TRAMPOLINE_ALIGNMENT): Define to 64 for 32-bit targets too.
1605         * config/mips/mips.c (MIPS_LOAD_PTR): New macro.
1606         (MIPS_MOVE): Likewise.
1607         (MIPS_LUI): Likewise.
1608         (MIPS_JR): Likewise.
1609         (MIPS_BAL): Likewise.
1610         (MIPS_NOP): Likewise.
1611         (mips_asm_trampoline_template): Delete.
1612         (mips_trampoline_code_size): New function.
1613         (mips_trampoline_init): Add shorter sequences for all cases
1614         except Pmode == DImoe && !TARGET_USE_PIC_FN_ADDR_REG.
1615         Calculate the opcodes directly, rather than copying from a template.
1616         Only flush the code part of the trampoline.
1617         (TARGET_ASM_TRAMPOLINE_TEMPLATE): Delete.
1618
1619 2009-10-05  Richard Sandiford  <rdsandiford@googlemail.com>
1620
1621         * config/mips/mips.h (DWARF_FRAME_RETURN_COLUMN): Replace
1622         GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM.
1623         (INCOMING_RETURN_ADDR_RTX): Likewise.
1624         (FUNCTION_PROFILER): Likewise.  Replace GP_REG_FIRST + 1
1625         with AT_REGNUM.
1626         * config/mips/sdemtk.h (FUNCTION_PROFILER): Replace GP_REG_FIRST + 31
1627         with RETURN_ADDR_REGNUM.
1628         (MIPS_SAVE_REG_FOR_PROFILING_P): Likewise.
1629         * config/mips/mips.c (mips16_build_call_stub): Replace
1630         GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM, GP_REG_FIRST + 1
1631         with AT_REGNUM and 31 with RETURN_ADDR_REGNUM.
1632         (mips_print_operand_punctuation): Likewise.
1633         (mips_frame_set): Likewise.
1634         (mips16e_output_save_restore): Likewise.
1635         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
1636         (mips_save_reg_p): Likewise.
1637         (mips_return_addr): Likewise.
1638         (mips_set_return_address): Likewise.
1639         (mips_direct_save_slot_move_p): Likewise.
1640         (mips_output_function_prologue): Likewise.
1641         (mips_restore_reg): Likewise.
1642         (mips_expand_epilogue): Likewise.
1643         (mips_epilogue_uses): Likewise.
1644         * config/mips/mips.md (RETURN_ADD_REGNUM): Define.
1645         (*mov<mode>_ra): Use it instead of a hard-coded 31.
1646         (clear_hazard_<mode>): Likewise.
1647         (call_internal): Likewise.
1648         (call_internal_direct): Likewise.
1649         (call_direct_split): Likewise.
1650         (call_value_internal): Likewise.
1651         (call_value_split): Likewise.
1652         (call_value_internal_direct): Likewise.
1653         (call_value_direct_split): Likewise.
1654         (call_value_multiple_internal): Likewise.
1655         (call_value_multiple_split): Likewise.
1656
1657 2009-10-05  Eric Botcazou  <ebotcazou@adacore.com>
1658             Jakub Jelinek  <jakub@redhat.com>
1659
1660         PR rtl-optimization/41511
1661         * combine.c (record_value_for_reg): Pass explicit values as argument
1662         to get_last_value_validate.
1663         (get_last_value_validate): Document INSN parameter.
1664         For non-readonly MEMs, assume they might have been modified if INSN
1665         was in another basic block.
1666         (get_last_value): Minor reformatting.
1667
1668 2009-10-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1669
1670         PR tree-opt/40992
1671         * final.c (asm_str_count): Split out from asm_insn_count.
1672         * rtl.h (asm_str_count): New prototype.
1673         * tree-inline (estimate_num_insns) <case GIMPLE_ASM>: Call
1674         asm_str_count.
1675
1676 2009-10-05  Sriraman Tallam  <tmsriram@google.com>
1677
1678         * doc/plugins.texi: Change plugin_pass to register_pass_info.
1679
1680 2009-10-05  Basile Starynkevitch  <basile@starynkevitch.net>
1681             Rafael Espindola  <espindola@google.com>
1682
1683         * gengtype.c (write_types): Moved call to write_func_for_structure
1684         into seperate loops.
1685
1686 2009-10-05  Richard Guenther  <rguenther@suse.de>
1687
1688         PR lto/41281
1689         * lto-cgraph.c (output_cgraph): Output toplevel asms.
1690         (input_cgraph_1): Input toplevel asms.
1691
1692 2009-10-05  Richard Guenther  <rguenther@suse.de>
1693
1694         PR lto/40902
1695         * lto-symtab.c (lto_compatible_attributes_p): Remove.
1696         (external_aggregate_decl_p): Likewise.
1697         (lto_symtab_compatible): Re-structure.  Remove dead code.
1698         For variables ignore toplevel qualifiers when comparing types.
1699         Issue warnings, not errors for mismatched user-alignment.
1700
1701 2009-10-05  Richard Guenther  <rguenther@suse.de>
1702
1703         PR lto/41552
1704         PR lto/41487
1705         * lto-symtab.c (struct lto_symtab_base_def): Remove.
1706         (struct lto_symtab_identifier_def): Likewise.
1707         (struct lto_symtab_decl_def): Likewise.
1708         (struct lto_symtab_entry_def): New.
1709         (lto_symtab_identifier_t): Rename to ...
1710         (lto_symtab_entry_t): ... this.
1711         (lto_symtab_decls): Remove.
1712         (lto_symtab_base_hash): Rename to ...
1713         (lto_symtab_entry_hash): ... this.
1714         (lto_symtab_base_eq): Rename to ...
1715         (lto_symtab_entry_eq): ... this.
1716         (lto_symtab_base_marked_p): Rename to ...
1717         (lto_symtab_entry_marked_p): ... this.
1718         (lto_symtab_identifier_marked_p): Remove.
1719         (lto_symtab_decl_marked_p): Likewise.
1720         (lto_symtab_maybe_init_hash_tables): Rename to ...
1721         (lto_symtab_maybe_init_hash_table): ... this.
1722         (lto_symtab_set_resolution_and_file_data): Remove.
1723         (lto_symtab_register_decl): New function.
1724         (lto_symtab_get_identifier): Remove.
1725         (lto_symtab_get): New function.
1726         (lto_symtab_get_resolution): Adjust.
1727         (lto_symtab_get_identifier_decl): Remove.
1728         (lto_symtab_set_identifier_decl): Likewise.
1729         (lto_symtab_merge_decl): Rename to ...
1730         (lto_symtab_merge): ... this.  Rewrite.
1731         (lto_symtab_merge_var): Remove.
1732         (lto_symtab_merge_fn): Likewise.
1733         (lto_symtab_prevailing_decl): Adjust.
1734         (lto_cgraph_replace_node): New function.
1735         (lto_symtab_merge_decls_2): Likewise.
1736         (lto_symtab_merge_decls_1): Likewise.
1737         (lto_symtab_fixup_var_decls): Likewise.
1738         (lto_symtab_resolve_symbols): Likewise.
1739         (lto_symtab_merge_decls): Likewise.
1740         (lto_symtab_prevailing_decl): Adjust.
1741         (lto_symtab_get_symtab_def): Remove.
1742         (lto_symtab_get_file_data): Likewise.
1743         (lto_symtab_clear_resolution): Adjust.
1744         (lto_symtab_clear_resolution): Likewise.
1745         * lto-cgraph.c (input_edge): Do not merge cgraph nodes here.
1746         (input_cgraph_1): Likewise.
1747         * lto-streamer-in.c (get_resolution): Do not provide fake
1748         symbol resolutions here.
1749         (deferred_global_decls): Remove.
1750         (lto_register_deferred_decls_in_symtab): Likewise.
1751         (lto_register_var_decl_in_symtab): Change signature, register
1752         variable via lto_symtab_register_decl.
1753         (lto_register_function_decl_in_symtab): Likewise.
1754         (lto_read_tree): Adjust.
1755         * lto-streamer.h (lto_register_deferred_decls_in_symtab): Remove.
1756         (lto_symtab_merge_var): Likewise.
1757         (lto_symtab_merge_fn): Likewise.
1758         (lto_symtab_register_decl): Declare.
1759         (lto_symtab_merge_decls): Likewise.
1760
1761 2009-10-05  Richard Guenther  <rguenther@suse.de>
1762
1763         PR tree-optimization/23821
1764         * tree-vrp.c (vrp_finalize): Do not perform copy propagation.
1765         * tree-ssa-dom.c (cprop_operand): Do not propagate copies into
1766         simple IV increments.
1767
1768 2009-10-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1769
1770         * config/arm/arm.c (arm_override_options): Really initialize
1771         flag_dwarf2_cfi_asm to 0.
1772
1773 2009-10-05  Doug Kwan  <dougkwan@google.com>
1774
1775         PR rtl-optimization/41574
1776         * combine.c (distribute_and_simplify_rtx): Quit if RTX mode is
1777         floating point and we are not doing unsafe math optimizations.
1778
1779 2009-10-03  Simon Baldwin  <simonb@google.com>
1780             Cary Coutant  <ccoutant@google.com>
1781             Rafael Espindola  <espindola@google.com>
1782             Richard Guenther  <rguenther@suse.de>
1783             Jan Hubicka  <jh@suse.cz>
1784             Doug Kwan <dougkwan@google.com>
1785             H.J. Lu  <hongjiu.lu@intel.com>
1786             Bill Maddox  <maddox@google.com>
1787             Ryan Mansfield  <rmansfield@qnx.com>
1788             Diego Novillo  <dnovillo@google.com>
1789             Ollie Wild  <aaw@google.com>
1790             Kenneth Zadeck <zadeck@naturalbridge.com>
1791
1792         * lto-cgraph.c: New file.
1793         * lto-compress.c: New file.
1794         * lto-compress.h: New file.
1795         * lto-opts.c: New file.
1796         * lto-section-in.c: New file.
1797         * lto-section-out.c: New file.
1798         * lto-streamer-in.c: New file.
1799         * lto-streamer-out.c: New file.
1800         * lto-streamer.c: New file.
1801         * lto-streamer.h: New file.
1802         * lto-symtab.c: New file.
1803         * lto-wpa-fixup.c: New file.
1804         * lto-wrapper.c: New file.
1805
1806 2009-10-03  Simon Baldwin  <baldwin@google.com>
1807             Ben Elliston  <bje@au.ibm.com>
1808             Rafael Espindola  <espindola@google.com>
1809             Nathan Froyd  <froydnj@codesourcery.com>
1810             Jan Hubicka  <jh@suse.cz>
1811             Doug Kwan  <dougkwan@google.com>
1812             Diego Novillo  <dnovillo@google.com>
1813             Kenneth Zadeck  <zadeck@naturalbridge.com>
1814
1815         * Makefile.in (enable_lto): New.
1816         (site.exp): If @enable_lto@ is set to 'yes' define ENABLE_LTO.
1817         (LINKER_PLUGIN_API_H): Define.
1818         (LTO_SYMTAB_H): Define.
1819         (LTO_STREAMER_H): Define.
1820         (TREE_VECTORIZER_H): Define.
1821         (INCLUDES): Add LIBELFINC.
1822         (OBJS-common): Add lto-cgraph.o, lto-streamer-in.o,
1823         lto-streamer-out.o, lto-section-in.o, lto-section-out.o, lto-symtab.o,
1824         lto-opts.o, lto-streamer.o, lto-wpa-fixup.o, lto-compress.o.
1825         (MOSTLYCLEANFILES): Add lto-wrapper$(exeext)
1826         (native): Add lto-wrapper$(exeext)
1827         (lto-compress.o, lto-cgraph.o, lto-streamer-in.o,
1828         lto-streamer-out.o, lto-section-in.o, lto-section-out.o,
1829         lto-symtab.o, lto-opts.o, lto-streamer.o, lto-wpa-fixup.o): New rules.
1830         (gimple.o): Add dependency on LTO_HEADER_H and LTO_SECTION_OUT_H.
1831         (varasm.o): Add dependency on tree-iterator.h.
1832         (cgraph.o): Add dependency on cif-code.def.
1833         (ipa-reference.o): Add dependency on LTO_STREAMER_H.
1834         (ipa-pure-const.o): Likewise.
1835         (GTFILES): Add lto-symtab.c.
1836         (install-lto-wrapper): New.
1837         * configure.ac: If 'lto' is in enable_languages, define ENABLE_LTO
1838         and enable_lto.  If LIBELFLIBS is set, define HAVE_libelf.
1839         * config.in: Regenerate.
1840
1841 2009-10-03  Rafael Espindola  <espindola@google.com>
1842             Diego Novillo  <dnovillo@google.com>
1843
1844         * cgraphunit.c (ipa_passes): Prevent lto1 from calling
1845         ipa_write_summaries.
1846         Call execute_ipa_summary_passes for all_regular_ipa_passes and
1847         all_lto_gen_passes.
1848         (cgraph_optimize): Make extern.
1849
1850 2009-10-03  Nathan Froyd  <froydnj@codesourcery.com>
1851             Kenneth Zadeck <zadeck@naturalbridge.com>
1852
1853         * toplev.c (in_lto_p): Declare.
1854         * collect2.c (scan_prog_file): Read all the output when reading
1855         information for LTO.
1856         (enum lto_mode_d): Declare.
1857
1858 2009-10-03  Richard Guenther  <rguenther@suse.de>
1859             Diego Novillo  <dnovillo@google.com>
1860
1861         * gimple.c: Include target.h and alias.h.
1862         (gimple_types): Declare.
1863         (type_hash_cache): Declare.
1864         (gimple_alloc_stat): Make extern.
1865         (gimple_build_eh_must_not_throw): Call
1866         gimple_eh_must_not_throw_set_fndecl.
1867         (struct type_pair_d): Declare.
1868         (type_pair_t): Declare.
1869         (type_pair_hash): New.
1870         (type_pair_eq): New.
1871         (lookup_type_pair): New.
1872         (gimple_force_type_merge): New.
1873         (compare_type_names_p): New.
1874         (compare_field_offset): New.
1875         (gimple_types_compatible_p): New.
1876         (struct sccs): Declare.
1877         (next_dfs_num): Declare.
1878         (iterative_hash_gimple_type): New.
1879         (visit): New.
1880         (iterative_hash_type_name): New.
1881         (iterative_hash_gimple_type): New.
1882         (gimple_type_hash): New.
1883         (gimple_type_eq): New.
1884         (gimple_register_type): New.
1885         (print_gimple_types_stats): New.
1886         (gimple_signed_or_unsigned_type): New.
1887         (gimple_unsigned_type): New.
1888         (gimple_signed_type): New.
1889         (gimple_get_alias_set): New.
1890         (gimple_decl_printable_name): Do not use DMGL_TYPES.
1891         * gimple.h (gimple_alloc, gimple_alloc_stat): Declare.
1892         (gimple_force_type_merge): Declare.
1893         (gimple_types_compatible_p): Declare.
1894         (gimple_register_type): Declare.
1895         (print_gimple_types_stats): Declare.
1896         (gimple_unsigned_type): Declare.
1897         (gimple_signed_type): Declare.
1898         (gimple_get_alias_set): Declare.
1899         (gimple_eh_must_not_throw_set_fndecl): New.
1900
1901 2009-10-03  Jan Hubicka  <jh@suse.cz>
1902             Kenneth Zadeck <zadeck@naturalbridge.com>
1903
1904         * ipa-pure-const.c: Include lto-streamer.h.
1905         (register_hooks): Factor out of ...
1906         (generate_summary): ... here.
1907         (pure_const_write_summary): New.
1908         (pure_const_read_summary): New.
1909         (pass_ipa_pure_const): Add pure_const_write_summary and
1910         pure_const_read_summary.
1911         * ipa-reference.c: Include lto-streamer.h.
1912         (add_new_function): New.
1913         (remove_node_data): New.
1914         (duplicate_node_data): New.
1915         (ipa_init): Guard against multiple calls.
1916         Move hook setup from analyze_function.
1917         (write_node_summary_p): New.
1918         (ipa_reference_write_summary): New.
1919         (ipa_reference_read_summary): New.
1920         (pass_ipa_reference): Add ipa_reference_write_summary and
1921         ipa_reference_read_summary.
1922         * cgraph.h (cgraph_local_info): Add field lto_file_data.
1923         (struct cgraph_edge): Add fields lto_stmt_uid and
1924         call_stmt_cannot_inline_p.
1925         (cgraph_optimize): Declare.
1926         (cgraph_decide_is_function_needed): Declare.
1927         (reset_inline_failed): Declare.
1928         (enum LTO_cgraph_tags): Declare.
1929         (LTO_cgraph_tag_names): Declare.
1930         (LCC_NOT_FOUND): Define.
1931
1932 2009-10-03  Doug Kwan  <dougkwan@google.com>
1933             Rafael Espindola  <espindola@google.com>
1934             Jan Hubicka  <jh@suse.cz>
1935             Diego Novillo  <dnovillo@google.com>
1936             Kenneth Zadeck  <zadeck@naturalbridge.com>
1937
1938         * passes.c (all_regular_ipa_passes): New.
1939         (all_ipa_passes): Rename to all_small_ipa_passes.
1940         (init_optimization_passes): Init all_regular_ipa_passes.
1941         * tree-pass.h (all_regular_ipa_passes): New.
1942         (all_ipa_passes): Rename to all_small_ipa_passes.
1943         * passes.c (all_lto_gen_passes): New.
1944         (init_optimization_passes): Initialize all_lto_gen_passes.
1945         (execute_ipa_summary_passes): Make non-static.
1946         (ipa_write_summaries_1): New.
1947         (ipa_write_summaries_2): New.
1948         (ipa_write_summaries): New.
1949         (ipa_write_summaries_of_cgraph_node_set): New.
1950         (ipa_read_summaries_1): New.
1951         (ipa_read_summaries): New.
1952         (execute_ipa_pass_list): Call cgraph_process_new_functions.
1953         (execute_regular_ipa_pass_list): Remove.
1954         (init_optimization_passes): Schedule
1955         pass_rebuild_cgraph_edges and pass_early_inline outside
1956         of pass_all_early_optimizations.  Document reason.
1957         (pass_ipa_lto_gimple_out, pass_ipa_lto_wpa_fixup,
1958         pass_ipa_lto_finish_out): New pass.
1959         (pass_ipa_summary_passes): Start and stop timers if the pass has them.
1960         (execute_all_ipa_transforms): New.
1961         (execute_one_pass): Don't call execute_one_ipa_transform_pass.
1962         (dump_properties, debug_properties): New.
1963         * tree-optimize.c (gate_all_early_local_passes): Return
1964         false if we are in lto1.
1965         (tree_rest_of_compilation): Call execute_all_ipa_transforms.
1966         * tree-pass.h (execute_all_ipa_transforms): Declare.
1967         (pass_ipa_function_and_variable_visibility): Declare.
1968         (pass_ipa_early_inline): Declare.
1969         (pass_ipa_lto_gimple_out): Declare.
1970         (pass_ipa_lto_wpa_fixup): Declare.
1971         (pass_ipa_lto_finish_out): Declare.
1972         (all_small_ipa_passes, all_regular_ipa_passes,
1973         all_lto_gen_passes): Declare.
1974         (execute_ipa_summary_passes): Declare.
1975         (execute_all_ipa_transforms): Declare.
1976         (ipa_write_summaries): Declare
1977         (ipa_write_summaries_of_cgraph_node_set): Declare.
1978         (ipa_read_summaries): Declare.
1979
1980 2009-10-03  Doug Kwan  <dougkwan@google.com>
1981             Ollie Wild  <aaw@google.com>
1982
1983         * ipa-prop.c (ipa_propagate_indirect_call_infos): Do nothing in WPA.
1984
1985         * collect2.c (LTO_MODE_NONE, LTO_MODE_LTO, LTO_MODE_WPA): New enums.
1986         (lto_mode): New variable.
1987         (maybe_run_lto_and_relink): Handle the -fwpa option.
1988         (main): Handle the -fwpa option.
1989         (maybe_unlink_list): New function.
1990         * gcc.c (link_lto_options): Replace -flto with -fwpa.
1991         * common.opt (flto): New flag.
1992         * toplev.c (flag_generate_lto): Declare.
1993
1994 2009-10-03  Simon Baldwin  <simonb@google.com>
1995
1996         * common.opt (flto-compression-level): New flag.
1997
1998         * opts.c: Include lto-opts.h.
1999         (handle_option): Call lto_register_user_option for each
2000         valid option handled.
2001         (decode_options): Clear registered options before the options
2002         handling loop.
2003
2004 2009-10-03  Cary Coutant  <ccoutant@google.com>
2005
2006         * collect2.c (is_elf): New function.
2007         (scan_prog_file): Require LTO object to be in ELF format.
2008
2009 2009-10-03  Rafael Espindola  <espindola@google.com>
2010
2011         * gcc.c (LINK_COMMAND_SPEC): Use the -pass-through option to pass
2012         libgcc to the linker.
2013
2014         * ipa-cp.c (cgraph_gate_cp): Return false if LTRANS is running.
2015
2016         * collect2.c (maybe_run_lto_and_relink): Execute lto-wrapper.
2017         (collect_execute): Add flags argument. Pass flags to pex_run. Update
2018         all callers.
2019         * collect2.h (collect_execute): Add flags argument.
2020         * tlink.c (tlink_execute): Update call to collect_execute.
2021         * gcc.c (main): Set the COLLECT_LTO_WRAPPER environment variable.
2022         (use_linker_plugin): New.
2023         (use_linker_plugin_spec_function): New.
2024         (LINK_COMMAND_SPEC): Pass plugin options to the linker.
2025         (linker_plugin_file_spec): New.
2026         (lto_wrapper_spec): New.
2027         (lto_gcc_spec): New.
2028         (static_specs): Add linker_plugin_file, lto_wrapper and lto_gcc.
2029         (static_spec_functions): Add use-linker-plugin.
2030         (process_command): Handle -use-linker-plugin.
2031         (main): Use lto_wrapper_spec instead of lto_wrapper. Set
2032         linker_plugin_file_spec and lto_gcc_spec.
2033         (use_linker_plugin_spec_function): New.
2034
2035 2009-10-03  Richard Guenther  <rguenther@suse.de>
2036
2037         PR lto/41547
2038         PR lto/41548
2039         * tree.h (is_lang_specific): Include LANG_TYPE.
2040         * tree.c (find_decls_types_r): Manually add interesting parts
2041         of TYPE_FIELDS.  Walk BINFO_VIRTUALS.  Do not walk TYPE_METHODS.
2042
2043         * gimple.c (type_pair_hash): Make symmetric.
2044         (type_pair_eq): Likewise.
2045         (lookup_type_pair): Increase initial hashtable size.
2046         (gimple_force_type_merge): Rely on type-pair symmetry.
2047         (visit): Remove excessive checking code.
2048         (iterative_hash_type_name): Do not hash TYPE_NAME of anonymous unions.
2049         (gimple_register_type): Remove getenv calls, shrink initial
2050         hashtable size.
2051
2052         PR middle-end/41502
2053         * cgraphunit.c (ipa_passes): Do not remove bodies of extern
2054         inline functions if not generating lto output.
2055
2056         PR lto/41379
2057         * toplev.c (finalize): In WPA mode remove the asm file.
2058
2059 2009-10-03  Doug Kwan  <dougkwan@google.com>
2060
2061         * ipa-inline.c (cgraph_mark_inline): Check
2062         edge->call_stmt_cannot_inline_p instead of calling
2063         gimple_call_cannot_inline_p.
2064         (cgraph_decide_inlining): Do nothing in WPA and LTRANS.
2065         (cgraph_gate_ipa_early_inlining): Return false if in_lto_p is set.
2066         (inline_generate_summary): Do nothing in LTRANS.
2067         * cgraph.c (initialize_inline_failed): Make sure e->call_stmt
2068         exists before calling gimple_call_cannot_inline_p.
2069         (cgraph_create_edge): Set edge->call_stmt_cannot_inline_p.
2070         (cgraph_clone_edge): Add argument STMT_UID.  Modify all callers.
2071         Update new_edge->lto_stmt_uid.
2072         * cgraphbuild.c (reset_inline_failed): New.
2073
2074         * common.opt (fwpa): New flag.
2075         (fltrans): New option.
2076         * gcc.c (gcc_lto_option_t): New type.
2077         (current_lto_option): New variable.
2078         (lto_single_spec_function): Remove and is replaced by ..
2079         (lto_option_spec_function): New function.
2080         (LINK_COMMAND_SPEC): Use link_lto_option spec instead of just
2081         passing the -flto flag.
2082         (cc1_options): Separate non-LTO related parts into ..
2083         (cc1_non_lto_options): Non-LTO related options shared by all FEs.
2084         (lto1_options): New spec for lto FE.
2085         (link_lto_options): New spec for handling LTO flags in linker.
2086         (invoke_lto_single): Re-format to fit in 80 column.  Replace
2087         lto-single with lto-option.
2088         (static_specs): Add cc1_non_lto_options, lto1_options and
2089         link_lto_options.
2090         (static_spec_function): Replace lto-single with lto-option.
2091         (process_command): Handle -flto, -fwpa and -fltran by setting
2092         current_lto_option and not passing it to subprocess unconditionally.
2093
2094 2009-10-03  Bill Maddox  <maddox@google.com>
2095
2096         Add `gcc' driver support for link-time code generation (LTO).
2097
2098         * collect2.c (enum pass): Add new literal PASS_LTOINFO.
2099         (lto_flag, lto_objects, lto_o_file): New variables.
2100         (struct lto_object, struct lto_object_list): New structures.
2101         (collect_exit, handler): Remove LTO temporary output file on exit.
2102         (add_lto_object): New function.
2103         (maybe_run_lto_and_relink): New function. Perform link time code
2104         generation and relinking for object files containing LTO information.
2105         (main): Invoke maybe_run_lto_and_relink().
2106         (dump_argv): New function.  For debugging, currently disabled.
2107         (scan_prog_file): Add LTO information pass.
2108         * gcc.c (LINK_COMMAND_SPEC): Pass `-flto' switch to linker, i.e.,
2109         collect2.
2110         * toplev.c (compile_file): Emit assembler directive to create
2111         the `gnu_lto_v1' marker symbol when compiling with `-flto'.
2112
2113 2009-10-03  Diego Novillo  <dnovillo@google.com>
2114
2115         * c.opt: Add LTO to warn_abi and warn_psabi.
2116
2117         * tree.c (fld_worklist_push): Rename from PUSH.  Convert to static
2118         inline function.  Ignore language-specific nodes.  Update all users.
2119         (find_decls_types_r): Do not traverse the subtrees of
2120         language-specific nodes.  Do not traverse DECL_INITIAL for TYPE_DECLs.
2121         * tree.h (is_lang_specific): New.
2122         * langhooks.h (struct lang_hooks_for_decls): Remove
2123         may_need_assembler_name_p.  Update all users.
2124
2125         * c-common.c (set_builtin_user_assembler_name): Move ...
2126         * builtins.c (set_builtin_user_assembler_name): ... here.
2127         (is_builtin_name): Add comment
2128         (is_builtin_fn): New.
2129         * except.c (output_ttype): Only call
2130         lookup_type_for_runtime if TYPE is not a runtime type.
2131
2132         * passes.c (register_pass): Call position_pass on
2133         all_small_ipa_passes, all_regular_ipa_passes and all_lto_gen_passes.
2134         * timevar.def (TV_IPA_LTO_GIMPLE_IO): Define.
2135         (TV_IPA_LTO_DECL_IO): Define.
2136         (TV_IPA_LTO_CGRAPH_IO): Define.
2137         (TV_LTO): Define.
2138         (TV_WHOPR_WPA): Define.
2139         (TV_WHOPR_WPA_IO): Define.
2140         (TV_WHOPR_LTRANS): Define.
2141         (TV_WHOPR_WPA_FIXUP): Define.
2142         (TV_WHOPR_WPA_LTRANS_EXEC): Define.
2143         * tree-cfg.c (tree_node_can_be_shared): Make extern.
2144         * tree-flow.h (tree_node_can_be_shared): Declare.
2145         * tree-inline.c (tree_can_inline_p): Check that E has a
2146         statement associated with it.
2147         * tree.c (free_lang_data_in_binf): Factor out of ...
2148         (free_lang_data_in_type): ... here.
2149         Call RECORD_OR_UNION_TYPE_P.
2150         (need_assembler_name_p): Ignore DECL if it does not have TREE_PUBLIC
2151         set.  Call lang_hooks.decls.may_need_assembler_name_p if set.
2152         (free_lang_data_in_decl): Do not clear DECL_CONTEXT for CONST_DECLs.
2153         (free_lang_data): Set debug_info_level to DINFO_LEVEL_NONE.  Set
2154         write_symbols to NO_DEBUG.  Set debug_hooks to do_nothing_debug_hooks.
2155         (gate_free_lang_data): Return true if flag_generate_lto is set.
2156         (walk_tree_1): Call RECORD_OR_UNION_TYPE_P.
2157         * c-common.h (set_builtin_user_assembler_name): Move ...
2158         * tree.h (set_builtin_user_assembler_name): ... here.
2159
2160         * common.opt (flto-report): New flag.
2161         * opts.c (complain_wrong_lang): Do not complain if running lto1.
2162         * collect2.c (scan_prog_file): Send the error output of
2163         'nm' to HOST_BIT_BUCKET.
2164
2165 2009-10-03  Ollie Wild  <aaw@google.com>
2166
2167         * langhooks-def.h (lhd_begin_section): New function declaration.
2168         (lhd_write_section): New function declaration.
2169         (lhd_end_section): New function declaration.
2170         (LANG_HOOKS_BEGIN_SECTION): New macro.
2171         (LANG_HOOKS_WRITE_SECTION_DATA): New macro.
2172         (LANG_HOOKS_END_SECTION): New macro.
2173         (LANG_HOOKS_LTO): New macro.
2174         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_LTO.
2175         * langhooks.c (output.h): Add include.
2176         (saved_section): New static variable.
2177         (lhd_begin_section): New function.
2178         (lhd_write_section_data): New function.
2179         (lhd_end_section): New function.
2180         * langhooks.h (struct lang_hooks_for_lto): New structure.
2181         (struct lang_hooks): Add member lto.
2182         * Makefile.in (langhooks.o): Add dependency on output.h.
2183
2184         * c-opts.c (c_common_post_options): Handle -flto and -fwhopr.
2185
2186 2009-10-03  Richard Guenther  <rguenther@suse.de>
2187
2188         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
2189         Handle LTO.
2190
2191 2009-10-03  Simon Baldwin  <simonb@google.com>
2192             Richard Guenther  <rguenther@suse.de>
2193             Janis Johnson  <janis187@us.ibm.com>
2194             Doug Kwan  <dougkwan@google.com>
2195             Diego Novillo  <dnovillo@google.com>
2196             Ramana Radhakrishnan  <ramana.r@gmail.com>
2197             Ollie Wild  <aaw@google.com>
2198
2199         * doc/install.texi: Add documentation for libelf and --enable-lto.
2200         * doc/invoke.texi: Document -fwpa, -flto, -fwhopr, -fltrans,
2201         -flto-report, -flto-compression-level and -use-linker-plugin.
2202         * doc/sourcebuild.texi: Document use of zlib.  Document lto-plugin.
2203         Add section for LTO Testing.
2204
2205 2009-10-02  Cary Coutant  <ccoutant@google.com>
2206
2207         Add support for comdat type sections for DWARF v4.
2208         Merge from dwarf4 branch.
2209
2210         * dwarf2out.c (DWARF_TYPE_SIGNATURE_SIZE): New constant.
2211         (dw_die_ref): Define vector type.
2212         (enum dw_val_class): Add dw_val_class_data8.
2213         (struct dw_val_struct): Add v.val_data8.
2214         (comdat_type_node_ref): New type.
2215         (struct die_struct): Move die_symbol into a union; add new field
2216         die_type_node.  Change all uses.
2217         (comdat_type_node): New type.
2218         (skeleton_chain_node): New type.
2219         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): New constant.
2220         (comdat_type_list): New variable.
2221         (dwarf_tag_name): Add DW_TAG_type_unit.
2222         (dwarf_attr_name): Add DW_AT_signature.
2223         (add_AT_data8): New function.
2224         (replace_child): New function.
2225         (move_all_children): New function.
2226         (print_signature): New function.
2227         (print_die): Print signature information; add dw_val_class_data8.
2228         (attr_checksum): Support dw_val_class_data8.
2229         (CHECKSUM_STRING): Redefine for DWARF-4 to include trailing NULL byte.
2230         (CHECKSUM_SLEB128, CHECKSUM_ULEB128): New macros.
2231         (checksum_sleb128, checksum_uleb128): New functions.
2232         (checksum_die_context): New function.
2233         (loc_checksum_ordered): New function.
2234         (attr_checksum_ordered): New function.
2235         (struct checksum_attributes): New structure.
2236         (collect_checksum_attributes): New function.
2237         (die_checksum_ordered): New function.
2238         (generate_type_signature): New function.
2239         (same_dw_val_p): Add dw_val_class_data8.
2240         (is_symbol_die): Use new is_declaration_die function.
2241         (is_declaration_die): New function.
2242         (should_move_die_to_comdat): New function.
2243         (clone_die): New function.
2244         (clone_tree): New function.
2245         (clone_as_declaration): New function.
2246         (copy_declaration_context): New function.
2247         (generate_skeleton_ancestor_tree): New function.
2248         (generate_skeleton_bottom_up): New function.
2249         (generate_skeleton): New function.
2250         (remove_child_or_replace_with_skeleton): New function.
2251         (break_out_comdat_types): New function.
2252         (struct decl_table_entry): New type.
2253         (htab_decl_hash): New function.
2254         (htab_decl_eq): New function.
2255         (htab_decl_del): New function.
2256         (copy_ancestor_tree): New function.
2257         (copy_decls_walk): New function.
2258         (copy_decls_for_unworthy_types): New function.
2259         (build_abbrev_table): Don't assert on missing die_symbol when doing
2260         comdat type sections.
2261         (size_of_die): Use DW_FORM_sig8 for external references.  Add
2262         dw_val_class_data8.
2263         (unmark_dies): Don't assert for unmarked dies when doing comdat
2264         type sections.
2265         (value_format): Support DW_FORM_sig8 and dw_val_class_data8.
2266         (output_signature): New function.
2267         (output_die): Likewise.
2268         (output_compilation_unit_header): Mark output as DWARF version 3
2269         even if generating DWARF 4.
2270         (output_comdat_type_unit): New function.
2271         (output_line_info): Mark output as DWARF version 3 even if generating
2272         DWARF 4.
2273         (dwarf2out_start_source_file): Don't do eliminate_dwarf2_dups with
2274         DWARF-4.
2275         (dwarf2out_end_source_file): Likewise.
2276         (prune_unused_types_walk_attribs): Don't follow references into
2277         comdat type sections.
2278         (prune_unused_types_mark): When generating type units, do not mark
2279         children of non-defining declarations of types; do mark children of
2280         type entries.
2281         (prune_unused_types): Process comdat type sections.
2282         (htab_ct_hash): New function.
2283         (htab_ct_eq): New function.
2284         (dwarf2out_finish): Move types to comdat sections when using DWARF-4.
2285         Add a pointer to the line table from type unit entries so
2286         DW_AT_decl_file has meaning.
2287         * varasm.c (default_elf_asm_named_section): Use identifier name as
2288         comdat key instead of lang hook.
2289
2290 2009-10-02  Neil Vachharajani  <nvachhar@google.com>
2291
2292         * gcov-io.c (gcov_open): Open files read-only when MODE < 0.
2293
2294 2009-10-02  Uros Bizjak  <ubizjak@gmail.com>
2295
2296         * config/i386/i386.md (SWIM248): New mode iterator.
2297         (divmod<mode>4) Macroize expander from divmoddi4, divmodsi4 and
2298         divmodhi4 patterns using SWIM248 macro.
2299         (*divmod<mode>4): Macroize insn_and_split pattern from
2300         *divmoddi4_cltd_rex64, *divmodsi4_cltd and divmodhi4 insn patterns
2301         and their corresponding splitters usign SWIM248 macro.  Split SImode
2302         insn to generate cltd and DImode insn to generate cqto instead of
2303         move+shift when optimizing for size or TARGET_USE_CLTD is in effect.
2304         (*divmoddi4_nocltd_rex64, *divmodsi4_nocltd): Remove insn patterns.
2305         (*divmod<mode>4_noext): Macroize insn from *divmoddi_noext_rex64 and
2306         *divmodsi_noext patterns using SWIM248 macro.
2307         (udivmod<mode>4): Macroize expander from udivmoddi4, udivmodsi4 and
2308         udivmodhi4 patterns using SWIM248 macro.
2309         (*udivmod<mode>4): Macroize insn_and_split pattern from
2310         *udivmoddi4, udivmodsi4 and udivmodhi4 patterns and their
2311         corresponding splitters using SWIM248 macro.
2312         (*udivmod<mode>4_noext): Macroize insn from *udivmoddi4_noext,
2313         *udivmodsi4_noext and *udivmodhi_noext patterns using SWIM248 macro.
2314
2315 2009-10-02  Eric Botcazou  <ebotcazou@adacore.com>
2316
2317         * stor-layout.c (layout_type) <ARRAY_TYPE>: Make sure that an array
2318         of zero-sized element is zero-sized regardless of its extent.
2319
2320 2009-10-02  Jakub Jelinek  <jakub@redhat.com>
2321
2322         PR debug/40521
2323         * configure.ac (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): New test.
2324         * configure: Regenerated.
2325         * config.in: Regenerated.
2326         * dwarf2out.c (dwarf2out_do_cfi_asm): Return false if
2327         !HAVE_GAS_CFI_SECTIONS_DIRECTIVE and not emitting .eh_frame.
2328         (dwarf2out_init): If HAVE_GAS_CFI_SECTIONS_DIRECTIVE and
2329         not emitting .eh_frame, emit .cfi_sections .debug_frame
2330         directive.
2331
2332         PR debug/41404
2333         PR debug/41353
2334         * cfgexpand.c (expand_debug_expr) <case STRING_CST>: Don't create
2335         CONST_STRING if STRING_CST contains embedded '\0's or doesn't end
2336         with '\0'.
2337         (expand_debug_expr) <case VAR_DECL>: For TREE_STATIC !DECL_EXTERNAL
2338         vars use DECL_RTL with resetting it back to NULL afterwards.
2339         * dwarf2out.c (same_dw_val_p): For dw_val_class_addr compare with
2340         rtx_equal_p instead of asserting it is a SYMBOL_REF.
2341         (value_format): For dw_val_class_addr only use DW_FORM_addr if
2342         the attribute type allows it, otherwise use DW_FORM_dataN.
2343         (mem_loc_descriptor): Handle CONST_STRING.
2344         (add_const_value_attribute): Handle CONST_STRING using add_AT_addr.
2345         Handle MEM with CONST_STRING address using add_AT_string.
2346         (rtl_for_decl_init): Return MEM with CONST_STRING address instead of
2347         CONST_STRING for const arrays initialized with a string literal.
2348         (resolve_one_addr, resolve_addr_in_expr, resolve_addr): New functions.
2349         (dwarf2out_finish): Call resolve_addr.
2350
2351 2009-10-02  Andreas Schwab  <schwab@linux-m68k.org>
2352             Maxim Kuvyrkov  <maxim@codesourcery.com>
2353
2354         * config/m68k/lb1sf68.asm (PICCALL): Use variable sized branch.
2355
2356 2009-10-02  Nick Clifton  <nickc@redhat.com>
2357
2358         * config/mn10300/mn10300.h (USER_LABEL_PREFIX): Define.
2359         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
2360
2361 2009-10-01  Jan Hubicka  <jh@suse.cz>
2362
2363         * cgraph.c (cgraph_clone_node): Add redirect_callers parameter.
2364         (cgraph_create_virtual_clone): Just pass redirect_callers
2365         around.
2366         * cgraph.h (cgraph_clone_node): Update prototype.
2367         * ipa-pure-const.c (self_recursive_p): New function.
2368         (propagate): Use it.
2369         * ipa-inline.c (cgraph_clone_inlined_nodes,
2370         cgraph_decide_recursive_inlining): Update.
2371
2372 2009-10-01  David Daney  <ddaney@caviumnetworks.com>
2373
2374         * gcc/config/mips/mips.c (mips_process_sync_loop) Emit syncw
2375         instructions for TARGET_OCTEON.
2376
2377 2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2378
2379         * config/arm/arm.c (arm_override_options): Turn off
2380         flag_dwarf2_cfi_asm for AAPCS variants.
2381
2382 2009-10-01  Martin Jambor  <mjambor@suse.cz>
2383
2384         PR middle-end/12392
2385         * tree-sra.c (convert_callers): Do not call
2386         compute_inline_parameters on one caller more than once.
2387
2388 2009-10-01  Nick Clifton  <nickc@redhat.com>
2389
2390         * config/vax/netbsd-elf.h (NETBSD_CC1_AND_CC1PLUS_SPEC): Define as
2391         an empty string if not already defined.
2392
2393 2009-10-01  Martin Jambor  <mjambor@suse.cz>
2394
2395         PR bootstrap/41395
2396         * tree-sra.c (is_va_list_type): New function.
2397         (find_var_candidates): Call is_va_list_type.
2398         (find_param_candidates): Check that the type or the type pointed
2399         to are not va_list types.
2400
2401 2009-10-01  Martin Jambor  <mjambor@suse.cz>
2402
2403         PR c++/41503
2404         * cp/pt.c (function_parameter_expanded_from_pack_p): Return false if
2405         DECL_ARTIFICIAL (param_decl) is true.
2406
2407 2009-09-30  Gabriel Dos Reis  <gdr@cs.tamu.edu>
2408
2409         * tree.h (tree_decl_common::lang_flag_8): New.
2410         * c-common.c (c_common_reswords): Include "constexpr" as C++0x
2411         keyword.
2412         * c-common.h (RID_CONSTEXPR): New.
2413
2414 2009-09-30  Uros Bizjak  <ubizjak@gmail.com>
2415
2416         * config/alpha/alpha.c (alpha_gimplify_va_arg_1):
2417         Use ref-all pointers.
2418         (alpha_gimplify_va_arg): Ditto.
2419
2420 2009-09-30  Jakub Jelinek  <jakub@redhat.com>
2421
2422         PR target/41279
2423         * cfgloopanal.c (num_loop_insns): Don't increment ninsns for each bb
2424         before insn counting loop now that BB_END (bb) is counted.  Ensure
2425         the return value isn't zero.
2426
2427 2009-09-30  Nick Clifton  <nickc@redhat.com>
2428
2429         * config.gcc (sh-symbianelf): Replace definition of extra_objs
2430         with separate definitions of c_target_objs and cxx_target_objs.
2431         * config/sh/t-sh: Add rules to build symbian-cxx.o, symbian-c.o
2432         and symbian-base.o.
2433         * config/sh/sh.c (TARGET_CXX_INPUT_EXPORT_CLASS): Use
2434         sh_symbian_import_export_class.
2435         * config/sh/sh-protos.h: Fix names of exported symbian functions.
2436         * config/sh/symbian.c: Delete, moving code into...
2437         * config/sh/symbian-base.c: ... here
2438         * config/sh/symbian-c.c: ... and here
2439         * config/sh/symbian-cxx.c: ... and here.
2440
2441 2009-09-30  Uros Bizjak  <ubizjak@gmail.com>
2442
2443         PR target/22093
2444         * config/alpha/alpha.md (unaligned_storehi_be): Force operand
2445         of plus RTX into register.
2446
2447 2009-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2448
2449         * doc/install.texi: Linguistic and markup fixes.
2450         (Configuration) <--disable-cpp>: Remove description.
2451         <--enable-maintainer-mode>: Autotools files are affected, too.
2452         <--with-sysroot>: Improve description.
2453         (Building): Bump required GNU make version.
2454
2455 2009-09-29  Harsha Jagasia  <harsha.jagasia@amd.com>
2456
2457         * config.gcc (i[34567]86-*-*): Include fma4intrin.h.
2458         (x86_64-*-*): Ditto.
2459
2460         * config/i386/fma4intrin.h: New file, provide common x86 compiler
2461         intrinisics for FMA4.
2462         * config/i386/cpuid.h (bit_FMA4): Define FMA4 bit.
2463         * config/i386/x86intrin.h: Fix typo to SSE4A instead of SSE4a.
2464         Add FMA4 check and fma4intrin.h.
2465         * config/i386/i386-c.c(ix86_target_macros_internal): Check
2466         ISA_FLAG for FMA4.
2467         * config/i386/i386.h(TARGET_FMA4): New macro for FMA4.
2468         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Add new UNSPEC
2469         constant for FMA4 support.
2470         (UNSPEC_FMA4_FMADDSUB): Ditto.
2471         (UNSPEC_FMA4_FMSUBADD): Ditto.
2472         * config/i386/i386.opt (-mfma4): New switch for FMA4 support.
2473         * config/i386/i386-protos.h (ix86_fma4_valid_op_p): Add declaration.
2474         (ix86_expand_fma4_multiple_memory): Ditto.
2475         * config/i386/i386.c (OPTION_MASK_ISA_FMA4_SET): New.
2476         (OPTION_MASK_ISA_FMA4_UNSET): New.
2477         (OPTION_MASK_ISA_SSE4A_UNSET): Change definition to depend on FMA4.
2478         (OPTION_MASK_ISA_AVX_UNSET): Change definition to depend on FMA4.
2479         (ix86_handle_option): Handle -mfma4.
2480         (isa_opts): Handle -mfma4.
2481         (enum pta_flags): Add PTA_FMA4.
2482         (override_options): Add FMA4 support.
2483         (IX86_BUILTIN_VFMADDSS): New for FMA4 intrinsic.
2484         (IX86_BUILTIN_VFMADDSD): Ditto.
2485         (IX86_BUILTIN_VFMADDPS): Ditto.
2486         (IX86_BUILTIN_VFMADDPD): Ditto.
2487         (IX86_BUILTIN_VFMSUBSS): Ditto.
2488         (IX86_BUILTIN_VFMSUBSD): Ditto.
2489         (IX86_BUILTIN_VFMSUBPS): Ditto.
2490         (IX86_BUILTIN_VFMSUBPD): Ditto.
2491         (IX86_BUILTIN_VFMADDSUBPS): Ditto.
2492         (IX86_BUILTIN_VFMADDSUBPD): Ditto.
2493         (IX86_BUILTIN_VFMSUBADDPS): Ditto.
2494         (IX86_BUILTIN_VFMSUBADDPD): Ditto.
2495         (IX86_BUILTIN_VFNMADDSS): Ditto.
2496         (IX86_BUILTIN_VFNMADDSD): Ditto.
2497         (IX86_BUILTIN_VFNMADDPS): Ditto.
2498         (IX86_BUILTIN_VFNMADDPD): Ditto.
2499         (IX86_BUILTIN_VFNMSUBSS): Ditto.
2500         (IX86_BUILTIN_VFNMSUBSD): Ditto.
2501         (IX86_BUILTIN_VFNMSUBPS): Ditto.
2502         (IX86_BUILTIN_VFNMSUBPD): Ditto.
2503         (IX86_BUILTIN_VFMADDPS256): Ditto.
2504         (IX86_BUILTIN_VFMADDPD256): Ditto.
2505         (IX86_BUILTIN_VFMSUBPS256): Ditto.
2506         (IX86_BUILTIN_VFMSUBPD256): Ditto.
2507         (IX86_BUILTIN_VFMADDSUBPS256): Ditto.
2508         (IX86_BUILTIN_VFMADDSUBPD256): Ditto.
2509         (IX86_BUILTIN_VFMSUBADDPS256): Ditto.
2510         (IX86_BUILTIN_VFMSUBADDPD256): Ditto.
2511         (IX86_BUILTIN_VFNMADDPS256): Ditto.
2512         (IX86_BUILTIN_VFNMADDPD256): Ditto.
2513         (IX86_BUILTIN_VFNMSUBPS256): Ditto.
2514         (IX86_BUILTIN_VFNMSUBPD256): Ditto.
2515         (enum multi_arg_type): New enum for describing the various FMA4
2516         intrinsic argument types.
2517         (bdesc_multi_arg): New table for FMA4 intrinsics.
2518         (ix86_init_mmx_sse_builtins): Add FMA4 intrinsic support.
2519         (ix86_expand_multi_arg_builtin): New function for creating FMA4
2520         intrinsics.
2521         (ix86_expand_builtin): Add FMA4 intrinsic support.
2522         (ix86_fma4_valid_op_p): New function to validate FMA4 3 and 4
2523         operand instructions.
2524         (ix86_expand_fma4_multiple_memory): New function to split the
2525         second memory reference from FMA4 instructions.
2526         * config/i386/sse.md (ssemodesuffixf4): New mode attribute for FMA4.
2527         (ssemodesuffixf2s): Ditto.
2528         (fma4_fmadd<mode>4): Add FMA4 floating point multiply/add
2529         instructions.
2530         (fma4_fmsub<mode>4): Ditto.
2531         (fma4_fnmadd<mode>4): Ditto.
2532         (fma4_fnmsub<mode>4): Ditto.
2533         (fma4_vmfmadd<mode>4): Ditto.
2534         (fma4_vmfmsub<mode>4): Ditto.
2535         (fma4_vmfnmadd<mode>4): Ditto.
2536         (fma4_vmfnmsub<mode>4): Ditto.
2537         (fma4_fmadd<mode>4256): Ditto.
2538         (fma4_fmsub<mode>4256): Ditto.
2539         (fma4_fnmadd<mode>4256): Ditto.
2540         (fma4_fnmsub<mode>4256): Ditto.
2541         (fma4_fmaddsubv8sf4): Ditto.
2542         (fma4_fmaddsubv4sf4): Ditto.
2543         (fma4_fmaddsubv4df4): Ditto.
2544         (fma4_fmaddsubv2df4): Ditto.
2545         (fma4_fmsubaddv8sf4): Ditto.
2546         (fma4_fmsubaddv4sf4): Ditto.
2547         (fma4_fmsubaddv4df4): Ditto.
2548         (fma4_fmsubaddv2df4): Ditto.
2549         (fma4i_fmadd<mode>4): Add FMA4 floating point multiply/add
2550         instructions for intrinsics.
2551         (fma4i_fmsub<mode>4): Ditto.
2552         (fma4i_fnmadd<mode>4): Ditto.
2553         (fma4i_fnmsub<mode>4): Ditto.
2554         (fma4i_vmfmadd<mode>4): Ditto.
2555         (fma4i_vmfmsub<mode>4): Ditto.
2556         (fma4i_vmfnmadd<mode>4): Ditto.
2557         (fma4i_vmfnmsub<mode>4): Ditto.
2558         (fma4i_fmadd<mode>4256): Ditto.
2559         (fma4i_fmsub<mode>4256): Ditto.
2560         (fma4i_fnmadd<mode>4256): Ditto.
2561         (fma4i_fnmsub<mode>4256): Ditto.
2562         (fma4i_fmaddsubv8sf4): Ditto.
2563         (fma4i_fmaddsubv4sf4): Ditto.
2564         (fma4i_fmaddsubv4df4): Ditto.
2565         (fma4i_fmaddsubv2df4): Ditto.
2566         (fma4i_fmsubaddv8sf4): Ditto.
2567         (fma4i_fmsubaddv4sf4): Ditto.
2568         (fma4i_fmsubaddv4df4): Ditto.
2569         (fma4i_fmsubaddv2df4): Ditto.
2570
2571         * doc/invoke.texi (-mfma4): Add documentation.
2572         * doc/extend.texi (x86 intrinsics): Add FMA4 intrinsics.
2573
2574 2009-09-29  Richard Henderson  <rth@redhat.com>
2575
2576         * tree-eh.c (unsplit_eh): Do not unsplit if there's already
2577         an edge to the new destination block.
2578
2579 2009-09-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2580
2581         PR target/41393
2582         * pa.c (hppa_profile_hook): Use
2583         make_reg_eh_region_note_nothrow_nononlocal to add REG_EH_REGION note.
2584
2585 2009-09-29  Steve Ellcey  <sje@cup.hp.com>
2586             Alexander Monakov  <amonakov@ispras.ru>
2587
2588         PR target/41365
2589         * config/ia64/predicates.md (not_postinc_destination_operand): New.
2590         (not_postinc_memory_operand): New.
2591         (not_postinc_move_operand): New.
2592         * config/ia64/ia64.md (*cmovdi_internal): Disallow autoincrement.
2593         (*cmovsi_internal): Ditto.
2594
2595 2009-09-29  Pat Haugen  <pthaugen@us.ibm.com>
2596
2597         * config/rs6000/rs6000.c (rs6000_issue_rate): Don't artificially
2598         restrict issue_rate in first pass when scheduling for register
2599         pressure.
2600
2601 2009-09-29  Basile Starynkevitch  <basile@starynkevitch.net>
2602             Rafael Avila de Espindola  <espindola@google.com>
2603
2604         * gengtype.c (plugin_output): New.
2605         (get_output_file_with_visibility): Return plugin_output for plugins.
2606         (main): Parse and use the -P option.
2607         * gty.texi: Update the command line format.
2608
2609 2009-09-29  Jakub Jelinek  <jakub@redhat.com>
2610
2611         PR debug/41438
2612         * dwarf2out.c (const_ok_for_output_1, const_ok_for_output): New
2613         functions.
2614         (mem_loc_descriptor, loc_descriptor, add_const_value_attribute): Bail
2615         out if !const_ok_for_output.
2616
2617         PR debug/41474
2618         * dwarf2out.c (mem_loc_descriptor) <case CONCAT, case CONCATN,
2619         case VAR_LOCATION>: Remove gcc_unreachable ().
2620
2621 2009-09-29  Harsha Jagasia  <harsha.jagasia@amd.com>
2622
2623         * config.gcc (i[34567]86-*-*): Remove mmintrin-common.h.
2624         (x86_64-*-*): Ditto.
2625         * config/i386/smmintrin.h: Move instructions in mmintrin-common.h
2626         back to smmintrin.h.
2627         * config/i386/cpuid.h (bit_SSE5): Remove SSE5 bit.
2628         * config/i386/x86intrin.h: Remove SSE5.
2629         * config/i386/mmintrin-common.h: Delete file.
2630         * doc/extend.texi (x86 intrinsics): Remove SSE5 flags and builtins.
2631
2632 2009-09-29  Richard Guenther  <rguenther@suse.de>
2633
2634         * alias.c (ao_ref_from_mem): Properly deal with off decl accesses
2635         resulting from stack temporaries on STRICT_ALIGNMENT targets.
2636
2637 2009-09-29  Nick Clifton  <nickc@redhat.com>
2638
2639         * function.c (current_function_name): If there is no current
2640         function just return "<none>".
2641
2642 2009-09-28  Sriraman Tallam  <tmsriram@google.com>
2643
2644         * tree-pass.h (register_pass_info): New structure.
2645         (pass_positioning_ops): Move enum from gcc-plugin.h.
2646         (register_pass): New function.
2647         * gcc-plugin.h (plugin_pass): Delete structure.
2648         (pass_positioning_ops): Delete enum.
2649         * plugin.c (regsiter_pass): Delete function.
2650         (position_pass): Delete function.
2651         (added_pass_nodes): Delete variable.
2652         (prev_added_pass_nodes): Delete variable.
2653         (pass_list_node): Delete structure.
2654         * passes.c (make_pass_instance): New function.
2655         (next_pass_1): Change to call make_pass_instance.
2656         (pass_list_node): Move structure from gcc-plugin.h.
2657         (added_pass_nodes): Move variable from plugin.c.
2658         (prev_added_pass_nodes): Move variable from plugin.c.
2659         (position_pass): New function.
2660         (register_pass): New function.
2661
2662 2009-09-28  Easwaran Raman  <eraman@google.com>
2663
2664         * ifcvt.c (noce_try_abs): Recognize pattern and call
2665         expand_one_cmpl_abs_nojump.
2666         * optabs.c (expand_one_cmpl_abs_nojump): New function.
2667         * optabs.h (expand_one_cmpl_abs_nojump): Declare.
2668
2669 2009-09-28  Ian Lance Taylor  <iant@google.com>
2670
2671         PR middle-end/40500
2672         * c-opts.c (c_common_handle_option): Don't set
2673         warn_jump_misses_init for -Wall.
2674         * doc/invoke.texi (Warning Options): Update documentation.
2675
2676 2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2677
2678         * Makefile.in ($(out_object_file)): Depend on
2679         gt-$(basename $(notdir $(out_file))).h.
2680
2681 2009-09-28  Richard Henderson  <rth@redhat.com>
2682
2683         * except.h (struct eh_region_d): Add use_cxa_end_cleanup.
2684         * except.c (gen_eh_region): Set it.
2685         (duplicate_eh_regions_1): Copy it.
2686         * tree-eh.c (lower_resx): Use it to determine which function
2687         to call to resume.
2688
2689         * langhooks.h (struct lang_hooks): Add eh_use_cxa_end_cleanup.
2690         * langhooks-def.h (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New.
2691         * builtins.def (BUILT_IN_CXA_END_CLEANUP): New.
2692         * tree.c (build_common_builtin_nodes): Remove parameter.  Build
2693         BUILT_IN_CXA_END_CLEANUP if necessary.
2694
2695         * c-common.c (c_define_builtins): Update call to
2696         build_common_builtin_nodes.
2697
2698 2009-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2699
2700         * spu.c (get_branch_target): Return NULL for ASM_OPERANDS patterns.
2701
2702 2009-09-28  Michael Matz  <matz@suse.de>
2703
2704         * builtins.c (interclass_mathfn_icode): New helper.
2705         (expand_builtin_interclass_mathfn): Use it here, and split folding
2706         into ...
2707         (fold_builtin_interclass_mathfn): ... this new folder.
2708         (build_call_nofold_loc): New static helper.
2709         (build_call_nofold): New wrapper macro for above.
2710         (expand_builtin_int_roundingfn): Use it instead of build_call_expr.
2711         (expand_builtin_pow): Ditto.
2712         (expand_builtin_memset_args): Ditto.
2713         (expand_builtin_printf): Ditto.
2714         (expand_builtin_fprintf): Ditto.
2715         (expand_builtin_sprintf): Ditto.
2716         (expand_builtin_memory_chk): Ditto.
2717         (expand_builtin_mempcpy_args): Ditto and don't call folders.
2718         (expand_builtin_stpcpy): Ditto.
2719         (expand_builtin_strcmp): Ditto.
2720         (expand_builtin_strncmp): Ditto.
2721         (expand_builtin_strcpy): Remove FNDECL and MODE arguments.
2722         (expand_builtin_strcpy_args): Don't call folders.
2723         (expand_builtin_memcmp): Ditto.
2724         (expand_builtin_strncpy): Ditto, and use target.
2725         (expand_builtin_memcpy): Ditto.
2726         (expand_builtin_strstr, expand_builtin_strchr, expand_builtin_strrchr,
2727         expand_builtin_strpbrk, expand_builtin_memmove,
2728         expand_builtin_memmove_args, expand_builtin_bcopy,
2729         expand_builtin_memchr, expand_builtin_strcat, expand_builtin_strncat,
2730         expand_builtin_strspn, expand_builtin_strcspn,
2731         expand_builtin_fputs): Remove these.
2732         (expand_builtin): Don't call the above, change calls to other
2733         expanders that changed prototype.
2734         (fold_builtin_stpcpy): New folder split out from expand_builtin_stpcpy.
2735         (fold_builtin_1 <ISFINITE, ISINF, ISNORMAL>): Call
2736         fold_builtin_interclass_mathfn.
2737         (fold_builtin_2 <STPCPY>): Call fold_builtin_stpcpy.
2738         (fold_builtin_strcat): Add folding split from expand_builtin_strcat.
2739
2740         * fold-const.c (fold_binary_loc <NE_EXPR>): Add !exp != 0 -> !exp.
2741         * passes.c (init_optimization_passes): Move pass_fold_builtins
2742         after last phiopt pass.
2743         * tree-inline.c (fold_marked_statements): When folding builtins
2744         iterate over all instruction potentially generated.
2745         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Declare
2746         earlier.
2747         (fold_gimple_call): Use it to always fold calls (into potentially
2748         multiple instructions).
2749         * tree-ssa-dom.c (optimize_stmt): Resolve __builtin_constant_p
2750         calls into zero at this time.
2751         * tree-ssa-propagate.c (substitute_and_fold): Ignore multiple
2752         statements generated by builtin folding.
2753
2754 2009-09-28  Nick Clifton  <nickc@redhat.com>
2755
2756         * config/m32r/m32r.c (m32r_is_insn): Return false for debugging insns.
2757
2758 2009-09-28  Duncan Sands  <baldrick@free.fr>
2759
2760         * gcc-plugin.h (PLUGIN_REGISTER_GGC_CACHES): New event.
2761         * plugin.c (plugin_event_name): Add PLUGIN_REGISTER_GGC_CACHES.
2762         (register_callback): Dispatch it.
2763         (invoke_plugin_callbacks): Incorporate in sanity check.
2764         * ggc.h (ggc_register_cache_tab): Add declaration.
2765         * ggc-common.c (ggc_register_root_tab): Simplify.
2766         (const_ggc_cache_tab_t): New typedef.
2767         (extra_cache_vec): New vector of dynamically added cache tables.
2768         (ggc_register_cache_tab): New function.
2769         (ggc_scan_cache_tab): New function.
2770         (ggc_mark_roots): Simplify dynamic roots.  Handle dynamic caches.
2771         * doc/plugins.texi: Document PLUGIN_REGISTER_GGC_CACHES.
2772
2773 2009-09-27  Richard Henderson  <rth@redhat.com>
2774
2775         * tree-ssa-ccp.c (optimize_stack_restore): Relax the conditions under
2776         which we remove __builtin_stack_restore.
2777
2778 2009-09-27  Bernd Schmidt  <bernd.schmidt@analog.com>
2779
2780         * loop-iv.c (iv_analyze_op): Use function_invariant_p, not CONSTANT_P,
2781         to test for GRD_INVARIANT.
2782         (simple_rhs_p): Anything that's function_invariant_p is fine.
2783
2784 2009-09-27  Rafael Avila de Espindola  <espindola@google.com>
2785
2786         * gengtype.c (main): Use plunge_files instead of plugin_output.
2787
2788 2009-09-27  Basile Starynkevitch  <basile@starynkevitch.net>
2789             Rafael Avila de Espindola  <espindola@google.com>
2790
2791         * gengtype.c (write_root, write_roots): Add a emit_pch argument.
2792         Don't print pch related info if it is false.
2793         (main): Don't print pch info in plugin mode.
2794
2795 2009-09-27  Eric Botcazou  <ebotcazou@adacore.com>
2796
2797         * dwarf2out.c (enum dw_val_class): Replace dw_val_class_long_long
2798         with dw_val_class_const_double.
2799         (struct dw_val_struct): Replace val_long_long with val_double and
2800         adjust for above change.
2801         (output_loc_operands): Likewise.
2802         (add_AT_long_long): Rename into...
2803         (add_AT_double): ...this.
2804         (print_die): Replace dw_val_class_long_long with
2805         dw_val_class_const_double and adjust.
2806         (attr_checksum): Likewise.
2807         (same_dw_val_p): Likewise.
2808         (size_of_die): Likewise.
2809         (value_format): Likewise.
2810         (output_die): Likewise.
2811         (loc_descriptor) <CONST_DOUBLE>: Likewise.
2812         (add_const_value_attribute) <CONST_DOUBLE>: Call add_AT_double
2813         instead of add_AT_long_long.
2814         (add_bound_info) <INTEGER_CST>: Generate the bound as an unsigned
2815         value with the precision of its type.
2816
2817 2009-09-27  Andreas Schwab  <schwab@linux-m68k.org>
2818
2819         PR c/41476
2820         * c-typeck.c (build_conditional_expr): Use the readonly and
2821         volatile flags of the operand types, not of the operands itself.
2822
2823 2009-09-27  Peter O'Gorman  <pogma@thewrittenword.com>
2824
2825         * collect2.c (main): Look for -brtl before adding libraries.
2826
2827 2009-09-27  Jonathan Gray  <jsg@openbsd.org>
2828
2829         * config.gcc: Update OpenBSD targets.
2830         * config/openbsd-stdint.h: New file.
2831         * config/openbsd-libpthread.h: New file.
2832         * config/openbsd.h: Update and break out LIB_SPEC definition.
2833         * config/alpha/openbsd.h: Overhaul to reflect ELF migration.
2834         * config/i386/openbsdelf.h: Correct types.
2835         * config/m68k/openbsd.h: Likewise.
2836         * config/mips/openbsd.h: Likewise.
2837         * config/vax/openbsd.h: Likewise.
2838
2839 2009-09-27  Eric Botcazou  <ebotcazou@adacore.com>
2840
2841         * fold-const.c (maybe_lvalue_p): Return false for M(IN|AX)_EXPR.
2842         (extract_muldiv_1) <MINUS_EXPR>: Swap operands if necessary.
2843         * stor-layout.c (layout_type) <ARRAY_TYPE>: Do not take the maximum
2844         of the length and zero.
2845
2846 2009-09-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2847
2848         * Makefile.in (TOPLEV_H): Use $(INPUT_H) not input.h.
2849         (FLAGS_H): Add options.h $(REAL_H).
2850         (SEL_SCHED_IR_H): Add $(BITMAP_H) vecprim.h $(CFGLOOP_H).
2851         (TREE_VECTORIZER_H): New.
2852         (EBITMAP_H): Renamed from EBIMAP_H.
2853         (c-decl.o, c-objc-common.o, c-pretty-print.o, attribs.o, c-omp.o)
2854         (gtype-desc.o, ggc-common.o, ggc-page.o, ggc-zone.o, langhooks.o)
2855         (tree.o, tree-ssa-structalias.o, tree-ssa-ter.o, tree-ssanames.o)
2856         (tree-phinodes.o, tree-ssa-loop.o, tree-ssa-math-opts.o)
2857         (gimple-low.o, omp-low.o, sese.o, graphite-blocking.o)
2858         (graphite-clast-to-gimple.o, graphite-dependences.o)
2859         (graphite-interchange.o, graphite-poly.o, graphite-scop-detection.o)
2860         (graphite-sese-to-poly.o, tree-vect-loop.o, tree-vect-loop-manip.o)
2861         (tree-vect-patterns.o, tree-vect-slp.o, tree-vect-stmts.o)
2862         (tree-vect-data-refs.o, tree-vectorizer.o, gimple.o, tree-mudflap.o)
2863         (targhooks.o, stmt.o, emit-rtl.o, ipa.o, matrix-reorg.o, ipa-inline.o)
2864         (gcse.o, tree-ssa-ccp.o, df-byte-scan.o, vec.o, caller-save.o)
2865         (ira-build.o, ira-costs.o, ira-color.o, ira-emit.o, ira.o)
2866         (haifa-sched.o, sched-rgn.o, sel-sched.o, sel-sched-dump.o)
2867         (sel-sched-ir.o, final.o, $(out_object_file)): Dependencies
2868         updated and fixed as per above changes and per
2869         check_makefile_deps.sh output.
2870
2871         PR bootstrap/40928
2872         * configure.ac: Use $LIBS for '-ldl', not $LDFLAGS.
2873         * configure: Regenerate.
2874
2875 2009-09-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2876
2877         * doc/install.texi: Update minimum MPC version to 0.7.
2878
2879 2009-09-26  Gerald Pfeifer  <gerald@pfeifer.com>
2880
2881         * doc/install.texi (Binaries): Remove reference to the binary
2882         distribution CD-ROM from the FSF.
2883
2884 2009-09-26  Michael Matz  <matz@suse.de>
2885
2886         PR lto/40758
2887         PR middle-end/41470
2888         * tree-ssa-coalesce.c (coalesce_ssa_name): Add only SSA names
2889         that are mentioned in the body.
2890
2891 2009-09-26  Michael Matz  <matz@suse.de>
2892
2893         PR tree-optimization/41454
2894         * tree-ssa-dom (stmts_to_rescan): Remove variable.
2895         (tree_ssa_dominator_optimize): Don't allocate and free it.
2896         (dom_opt_leave_block): Don't iterate over it.
2897         (eliminate_redundant_computations): Don't return a value.
2898         (cprop_operand, cprop_into_stmt): Ditto.
2899         (optimize_stmt): Don't defer updating stmts.
2900
2901 2009-09-25  Dodji Seketeli  <dodji@redhat.com>
2902
2903         * dwarf2out.c (dwarf_tag_name, gen_generic_params_dies,
2904         generic_parameter_die, template_parameter_pack_die,
2905         gen_formal_parameter_die, gen_subprogram_die): Adjust after
2906         renaming DW_TAG_formal_parameter_pack and
2907         DW_TAG_template_parameter_pack into DW_TAG_GNU_formal_parameter_pack
2908         and DW_TAG_GNU_template_parameter_pack.
2909
2910 2009-09-25  Anatoly Sokolov  <aesok@post.ru>
2911
2912         * config/v850/v850.h (FUNCTION_VALUE): Remove.
2913         * config/v850/v850.c (v850_function_value): New function.
2914         (TARGET_FUNCTION_VALUE): Define.
2915
2916 2009-09-25  Jakub Jelinek  <jakub@redhat.com>
2917
2918         * tree-vect-stmts.c (vectorizable_call): Call
2919         mark_symbols_for_renaming after vect_finish_stmt_generation.
2920
2921         * dwarf2out.c (tls_mem_loc_descriptor): Pass 1 instead of 2
2922         to loc_descriptor_from_tree.
2923         (add_location_or_const_value_attribute): Pass 0 instead of 2
2924         for decl_by_reference_p decls.
2925
2926 2009-09-25  Richard Guenther  <rguenther@suse.de>
2927
2928         PR middle-end/41463
2929         * tree-dfa.c (get_ref_base_and_extent): Fix issue with trailing
2930         arrays again.
2931
2932 2009-09-25  Ben Elliston  <bje@au.ibm.com>
2933
2934         * doc/invoke.texi (RS/6000 and PowerPC Options): Add missing comma
2935         after `power7'.
2936
2937 2009-09-25  Alan Modra  <amodra@bigpond.net.au>
2938
2939         * config/rs6000/rs6000.md (load_toc_v4_PIC_3c): Correct POWER
2940         form of instruction.
2941
2942 2009-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2943
2944         PR middle-end/41435
2945         * fold-const.c (const_binop): Handle complex int division.
2946         * tree-complex.c (expand_complex_div_straight,
2947         expand_complex_div_wide): Update comments.
2948
2949 2009-09-24  DJ Delorie  <dj@redhat.com>
2950
2951         PR target/41456
2952         * config/m32c/m32c.h (REG_CLASS_CONTENTS): Add R13.
2953         (reg_class): Likewise.
2954         (REG_CLASS_NAMES): Likewise.
2955         * config/m32c/m32c.c (m32c_reg_class_from_constraint): Likewise.
2956         (m32c_override_options): Disable -fivopts for M32C.
2957
2958 2009-09-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
2959
2960         * config/rs6000/predicates.md (indexed_or_indirect_operand):
2961         Delete VSX load/store with update support.
2962         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Ditto.
2963         * config/rs6000/vsx.md (vsx_mov<mode>): Ditto.
2964         (vsx_movti): Ditto.
2965         (VSX_U): Delete.
2966         (VSbit): Ditto.
2967         (VStype_load_update): Ditto.
2968         (VStype_store_update): Ditto.
2969         (vsx_load<VSX_U:mode>_update_<P:mptrsize>): Ditto.
2970         (vsx_store<VSX_U:mode>_update_<P:mptrsize>): Ditto.
2971
2972         * config/rs6000/rs6000.h (enum rs6000_builtins): Delete VSX
2973         load/store with update builtins.
2974
2975 2009-09-24  Kai Tietz  <kai.tietz@onevision.com>
2976
2977         * libgcc2.c (L_trampoline): Prototype for getpagesize
2978         and mprotect in WINNT case.
2979
2980 2009-09-24  Anatoly Sokolov  <aesok@post.ru>
2981
2982         * config/rs6000/rs6000.h (FUNCTION_VALUE): Remove macro.
2983         * config/rs6000/rs6000-protos.h (rs6000_function_value): Remove.
2984         * config/rs6000/rs6000.c (rs6000_function_value): Make static, add
2985         'outgoing' argument.
2986         (TARGET_FUNCTION_VALUE): Define.
2987
2988 2009-09-24  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
2989
2990         * config/darwin.h (DWARF2_DEBUGGING_INFO): Define as 1.
2991
2992 2009-09-24  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
2993
2994         PR bootstrap/41405
2995         * common.opt: Initialize dwarf_strict to -1.
2996         * toplev.c (process_options): Catch unset dwarf_strict
2997         and set to 0 for all targets not overriding.
2998         * config/darwin.c (darwin_override_options): Catch unset
2999         dwarf_strict and override to 1.
3000
3001 2009-09-24  Jeff Law  <law@redhat.com>
3002
3003         * tree-into-ssa.c (rewrite_into_ssa): Free interesting_blocks.
3004
3005 2009-09-24  Richard Guenther  <rguenther@suse.de>
3006
3007         PR tree-optimization/36143
3008         PR tree-optimization/38747
3009         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
3010         create VIEW_CONVERT_EXPRs for TBAA compatible accesses.
3011
3012 2009-09-24  Jakub Jelinek  <jakub@redhat.com>
3013
3014         PR bootstrap/41457
3015         * dwarf2out.c (add_const_value_attribute): For HIGH and CONST_FIXED,
3016         return false instead of gcc_unreachable ().  For CONST return the
3017         value returned by recursive call instead of always returning true.
3018         (tree_add_const_value_attribute): Return the value returned by
3019         add_const_value_attribute instead of always returning true if rtl
3020         is non-NULL.
3021
3022 2009-09-23  Justin Seyster  <jrseys@gmail.com>
3023
3024         * Makefile.in (PLUGIN_HEADERS): Include real.h.
3025
3026 2009-09-24  Jakub Jelinek  <jakub@redhat.com>
3027
3028         * cgraphunit.c (cgraph_lower_function): Revert last change.
3029         * targhooks.c (default_static_chain): Use !DECL_STATIC_CHAIN
3030         instead of DECL_NO_STATIC_CHAIN.
3031         * tree-cfg.c (verify_gimple_call): Likewise.
3032         * tree-nested.c (get_chain_decl, get_chain_field,
3033         convert_tramp_reference_op, convert_gimple_call): Likewise.
3034         (convert_all_function_calls): Likewise.  Always set or clear
3035         DECL_STATIC_CHAIN initially, for !n->outer clear it.
3036         (lower_nested_functions): Remove DECL_NO_STATIC_CHAIN checking code.
3037         * c-parser.c (c_parser_declaration_or_fndef): Set DECL_STATIC_CHAIN
3038         if nested.
3039         * print-tree.c (print_node): Handle DECL_STATIC_CHAIN instead of
3040         DECL_NO_STATIC_CHAIN.
3041         * config/i386/i386.c (ix86_static_chain): Use !DECL_STATIC_CHAIN
3042         instead of DECL_NO_STATIC_CHAIN.
3043         (ix86_function_regparm, find_drap_reg): Likewise.  Don't test
3044         decl_function_context.
3045         * varasm.c (initializer_constant_valid_p): Likewise.
3046         * tree.h (DECL_NO_STATIC_CHAIN): Renamed to ...
3047         (DECL_STATIC_CHAIN): ... this.
3048         * config/moxie/moxie.c (moxie_static_chain): Use !DECL_STATIC_CHAIN
3049         instead of DECL_NO_STATIC_CHAIN.
3050
3051 2009-09-23  Basile Starynkevitch  <basile@starynkevitch.net>
3052             Rafael Avila de Espindola  <espindola@google.com>
3053
3054         * gengtype.c (nb_plugin_files): Make it unsigned to match
3055         num_gt_files. Adjust other variables to avoid warnings.
3056         (main): Allocate an all zero lang_bitmap before each plugin file name
3057         to match regular file names.
3058
3059 2009-09-23  Richard Henderson  <rth@redhat.com>
3060
3061         * doc/tm.texi (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Remove.
3062         (TARGET_STATIC_CHAIN): Mention that this hook must be used for
3063         static chain passed in memory.
3064         * system.h (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Poison.
3065         * targhooks.c (default_static_chain): Don't handle STATIC_CHAIN,
3066         STATIC_CHAIN_INCOMING.  Issue a sorry if there's no
3067         STATIC_CHAIN_REGNUM defined.
3068
3069         * config/picochip/picochip-protos.h: s/class/klass/.
3070         * config/picochip/picochip.c (TARGET_STATIC_CHAIN): New.
3071         (picochip_static_chain): New.
3072         * config/picochip/picochip.h (STATIC_CHAIN): Remove.
3073         (STATIC_CHAIN_INCOMING): Remove.
3074
3075         * config/xtensa/xtensa.c (TARGET_STATIC_CHAIN): New.
3076         (xtensa_static_chain): New.
3077         * config/xtensa/xtensa.h (STATIC_CHAIN): Remove.
3078         (STATIC_CHAIN_INCOMING): Remove.
3079
3080 2009-09-23  Anatoly Sokolov  <aesok@post.ru>
3081
3082         * config/pa/pa.h (FUNCTION_VALUE): Remove macro.
3083         * config/pa/pa-protos.h (function_value): Remove.
3084         * config/pa/pa.c (pa_function_value): Rename from function_value.
3085         Make static, add 'outgoing' argument.
3086         (TARGET_FUNCTION_VALUE): Define.
3087
3088 2009-09-23  Anatoly Sokolov  <aesok@post.ru>
3089
3090         * config/avr/avr.c (avr_regs_to_save): Use current_function_is_leaf
3091         instead of cfun->machine->is_leaf.
3092         * config/avr/avr.h (machine_function): Remove is_leaf field.
3093
3094 2009-09-23  Jakub Jelinek  <jakub@redhat.com>
3095
3096         PR debug/41439
3097         * dwarf2out.c (address_of_int_loc_descriptor): Don't emit
3098         DW_OP_piece after DW_OP_stack_value, adjust size calculations
3099         for it, when DW_OP_stack_value and DW_OP_implicit_value has
3100         the same size, prefer DW_OP_stack_value.
3101         (loc_descriptor, loc_list_for_address_of_addr_expr_of_indirect_ref,
3102         loc_list_from_tree): Don't emit DW_OP_piece after DW_OP_stack_value.
3103
3104 2009-09-23  Alexandre Oliva  <aoliva@redhat.com>
3105
3106         PR debug/41353
3107         * var-tracking.c (add_with_sets): Sort MO_VAL_LOC last among uses.
3108
3109 2009-09-23  Alexandre Oliva  <aoliva@redhat.com>
3110
3111         PR debug/41248
3112         * cfgexpand.c (convert_debug_memory_address): New.
3113         (expand_debug_expr): Convert base address and offset to the same
3114         mode.  Use it to convert addresses to other modes.  Accept
3115         ptr_mode addresses.
3116
3117 2009-09-23  Richard Guenther  <rguenther@suse.de>
3118
3119         * alias.c (ao_ref_from_mem): Correct for negative MEM_OFFSET
3120         produced for bigendian targets with promoted subregs.
3121
3122 2009-09-23  Richard Guenther  <rguenther@suse.de>
3123
3124         * value-prof.c (gimple_ic): Purge old EH edges only after building
3125         the new ones.
3126
3127 2009-09-23  Nick Clifton  <nickc@redhat.com>
3128
3129         * config/arc/arc.c (arc_trampoline_init): Fix typo.
3130
3131 2009-09-23  Jakub Jelinek  <jakub@redhat.com>
3132
3133         PR bootstrap/41405
3134         * doc/invoke.texi: Document -gstrict-dwarf and -gno-strict-dwarf.
3135
3136         PR bootstrap/41436
3137         * cgraphunit.c (cgraph_lower_function): Set DECL_NO_STATIC_CHAIN
3138         on non-nested functions.
3139
3140 2009-09-23  Jakub Jelinek  <jakub@redhat.com>
3141             Jan Hubicka  <jh@suse.cz>
3142
3143         * dwarf2out.c (loc_list_plus_const): Only define if
3144         DWARF2_DEBUGGING_INFO.
3145         (address_of_int_loc_descriptor): Likewise.
3146
3147         PR debug/41411
3148         * dwarf2out.c (mem_loc_descriptor): Handle HIGH.
3149
3150 2009-09-23  Uros Bizjak  <ubizjak@gmail.com>
3151
3152         PR c/39779
3153         * c-typeck.c (build_binary_op) <short_shift>: Check that integer
3154         constant is more than zero.
3155
3156 2009-09-23  Alan Modra  <amodra@bigpond.net.au>
3157
3158         PR target/40473
3159         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
3160         call final to emit non-scheduled prologue, instead insert at entry.
3161
3162 2009-09-22  Loren J. Rittle  <ljrittle@acm.org>
3163             Joseph S. Myers  <joseph@codesourcery.com>
3164
3165         * doc/install.texi (*-*-freebsd*): Add proper format codes.
3166
3167 2009-09-22  Basile Starynkevitch  <basile@starynkevitch.net>
3168             Rafael Avila de Espindola  <espindola@google.com>
3169
3170         * gengtype.c (is_file_equal): New function.
3171         (close_output_files): Use is_file_equal. Free of->buf.
3172
3173 2009-09-22  Basile Starynkevitch  <basile@starynkevitch.net>
3174             Rafael Avila de Espindola  <espindola@google.com>
3175
3176         * gengtype.c (write_types, write_local): Add the output_header
3177         argument. Update all callers.
3178
3179 2009-09-22  Dodji Seketeli  <dodji@redhat.com>
3180
3181         * dwarf2out.c (template_parameter_pack_die,
3182         gen_formal_parameter_pack_die ): New functions.
3183         (make_ith_pack_parameter_name): Remove this function.
3184         (dwarf_tag_name): Support printing DW_TAG_template_parameter_pack and
3185         DW_TAG_formal_parameter_pack.
3186         (gen_generic_params_dies): Represent each template parameter pack
3187         by a DW_TAG_template_parameter_pack DIE. Argument pack elements are
3188         represented by usual DW_TAG_template_*_parameter DIEs that are
3189         children of the DW_TAG_template_parameter_pack element DIE.
3190         (generic_parameter_die): This doesn't deal with parameter pack
3191         names anymore. Don't generate DW_AT_name for some DIEs, e.g. children
3192         of parameter pack DIEs.
3193         (gen_formal_parameter_die): Add a flag to not emit DW_AT_name
3194         in certain cases, e.g. for pack elements.
3195         (gen_formal_types_die, gen_decl_die): Adjust usage of
3196         gen_formal_parameter_die.
3197         (gen_subprogram_die): Represent each function parameter pack by a
3198         DW_TAG_formal_parameter_pack DIE. Arguments of of the pack are
3199         represented by usual DW_TAG_formal_parameter DIEs that are children
3200         of the DW_TAG_formal_parameter_pack DIE. Remove references to
3201         ____builtin_va_alist decls as no part of the compiler uses those
3202         anymore.
3203         * langhooks.h (struct lang_hooks_for_decls): Add
3204         function_parm_expanded_from_pack_p, get_generic_function_decl
3205         and function_parameter_pack_p hooks.  Fix comment for
3206         get_innermost_generic_parms hook.
3207         * langhooks-def.h (LANG_HOOKS_FUNCTION_PARAMETER_PACK_P,
3208         LANG_HOOKS_FUNCTION_PARM_EXPANDED_FROM_PACK_P ): Declare new hook
3209         macros and use them to initialize lang_hook.
3210
3211 2009-09-22  Richard Henderson  <rth@redhat.com>
3212
3213         * system.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): Poison.
3214         (TRAMPOLINE_ADJUST_ADDRESS): Poison.
3215         * target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): Don't conditionalize
3216         on TRAMPOLINE_TEMPLATE.
3217         (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Don't conditionalize on
3218         TRAMPOLINE_ADJUST_ADDRESS.
3219         * targhooks.c (default_asm_trampoline_template): Remove.
3220         (default_trampoline_adjust_address): Remove.
3221         (default_trampoline_init): Don't handle INITIALIZE_TRAMPOLINE.
3222         * targhooks.h: Update decls.
3223
3224 2009-09-22  Dave Korn  <dave.korn.cygwin@gmail.com>
3225
3226         * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Enable.
3227         * config/i386/cygwin.h (LIBGCJ_SONAME): Define.
3228         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
3229
3230 2009-09-22  Alexandre Oliva  <aoliva@redhat.com>
3231
3232         PR debug/41295
3233         * reload1.c (reload): Reset debug insns with pseudos without
3234         equivalences.
3235
3236 2009-09-22  Janis Johnson  <janis187@us.ibm.com>
3237
3238         * config/i386/i386.c (ix86_scalar_mode_supported_p): Don't return
3239         unconditional true for decimal float modes.
3240         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Ditto.
3241         * config/s390/s390.c (s390_scalar_mode_supported_p): Ditto.
3242
3243 2009-09-22  Loren J. Rittle  <ljrittle@acm.org>
3244
3245         * unwind-dw2-fde-glibc.c: Define and use USE_PT_GNU_EH_FRAME.
3246         Enable a new case for __FreeBSD__ >= 7.
3247         * crtstuff.c:  Define USE_PT_GNU_EH_FRAME for __FreeBSD__ >= 7.
3248         * config/t-freebsd: Define LIB2ADDEH and LIB2ADDEHDEP.
3249         * config/freebsd-spec.h: Conditionally define LINK_EH_SPEC
3250         and USE_LD_AS_NEEDED.
3251
3252         * doc/install.texi (*-*-freebsd*): Update target information.
3253
3254 2009-09-22  Richard Guenther  <rguenther@suse.de>
3255
3256         PR middle-end/41395
3257         * tree-dfa.c (get_ref_base_and_extent): Handle trailing
3258         arrays really properly.
3259
3260 2009-09-22  Richard Henderson  <rth@redhat.com>
3261
3262         PR target/41246
3263         * target.h (struct gcc_target): Add asm_out.trampoline_template,
3264         calls.static_chain, calls.trampoline_init,
3265         calls.trampoline_adjust_address.
3266         * target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
3267         (TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New.
3268         (TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
3269         * builtins.c (expand_builtin_setjmp_receiver): Use
3270         targetm.calls.static_chain; only clobber registers.
3271         (expand_builtin_init_trampoline): Use targetm.calls.trampoline_init;
3272         set up memory attributes properly for the trampoline block.
3273         (expand_builtin_adjust_trampoline): Use
3274         targetm.calls.trampoline_adjust_address.
3275         * calls.c (prepare_call_address): Add fndecl argument.  Use
3276         targetm.calls.static_chain.
3277         * df-scan.c (df_need_static_chain_reg): Remove.
3278         (df_get_entry_block_def_set): Use targetm.calls.static_chain;
3279         consolodate static chain handling.
3280         * doc/tm.texi: Document new hooks.
3281         * emit-rtl.c (static_chain_rtx, static_chain_incoming_rtx): Remove.
3282         (init_emit_regs): Don't initialize them.
3283         * expr.h (prepare_call_address): Update decl.
3284         * final.c (profile_function): Use targetm.calls.static_chain.
3285         * function.c (expand_function_start): Likewise.
3286         * rtl.h (static_chain_rtx, static_chain_incoming_rtx): Remove.
3287         * stmt.c (expand_nl_goto_receiver): Use targetm.calls.static_chain;
3288         only clobber registers.
3289         * targhooks.c (default_static_chain): New.
3290         (default_asm_trampoline_template, default_trampoline_init): New.
3291         (default_trampoline_adjust_address): New.
3292         * targhooks.h: Declare them.
3293         * varasm.c (assemble_trampoline_template): Use
3294         targetm.asm_out.trampoline_template.  Make the memory block const
3295         and set its size.
3296
3297         * config/alpha/alpha.c (alpha_trampoline_init): Rename from
3298         alpha_initialize_trampoline.  Make static.  Merge VMS parameter
3299         differences into the TARGET_ABI_OPEN_VMS code block.
3300         (TARGET_TRAMPOLINE_INIT): New.
3301         * config/alpha/alpha.h (TRAMPOLINE_TEMPLATE): Remove.
3302         (TRAMPOLINE_SECTION, INITIALIZE_TRAMPOLINE): Remove.
3303         * config/alpha/vms.h (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Remove.
3304         (INITIALIZE_TRAMPOLINE): Remove.
3305
3306         * config/arc/arc.h (TRAMPOLINE_ALIGNMENT): New.
3307         (TRAMPOLINE_TEMPLATE): Merge with ...
3308         (INITIALIZE_TRAMPOLINE): ... this and move ...
3309         * config/arc/arc.c (arc_trampoline_init): ... here.
3310         (TARGET_TRAMPOLINE_INIT): New.
3311
3312         * config/arm/arm.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
3313         (TARGET_TRAMPOLINE_INIT, TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
3314         (arm_asm_trampoline_template): New.
3315         (arm_trampoline_init, arm_trampoline_adjust_address): New.
3316         * config/arm/arm.h (TRAMPOLINE_TEMPLATE, ARM_TRAMPOLINE_TEMPLATE,
3317         THUMB2_TRAMPOLINE_TEMPLATE, THUMB1_TRAMPOLINE_TEMPLATE): Move all
3318         code to arm_asm_trampoline_template.
3319         (TRAMPOLINE_ADJUST_ADDRESS): Move code to
3320         arm_trampoline_adjust_address.
3321         (INITIALIZE_TRAMPOLINE): Move code to arm_trampoline_init;
3322         adjust for target hook parameters.
3323
3324         * config/avr/avr.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE):
3325         Remove.
3326
3327         * config/bfin/bfin-protos.h (initialize_trampoline): Remove.
3328         * config/bfin/bfin.c (bfin_asm_trampoline_template): New.
3329         (bfin_trampoline_init): Rename from initialize_trampoline;
3330         make static; update for target hook parameters.
3331         (TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT): New.
3332         * config/bfin/bfin.h (TRAMPOLINE_TEMPLATE): Move code to
3333         bfin_asm_trampoline_template.
3334         (INITIALIZE_TRAMPOLINE): Remove.
3335
3336         * config/cris/cris.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
3337         TARGET_TRAMPOLINE_INIT, cris_asm_trampoline_template,
3338         cris_trampoline_init): New.
3339         * config/cris/cris.h (TRAMPOLINE_TEMPLATE): Move code to
3340         cris_asm_trampoline_template.
3341         (INITIALIZE_TRAMPOLINE): Move code to cris_trampoline_init;
3342         adjust for target hook parameters.
3343
3344         * config/crx/crx.h (INITIALIZE_TRAMPOLINE): Remove.
3345
3346         * config/fr30/fr30.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
3347         TARGET_TRAMPOLINE_INIT, fr30_asm_trampoline_template,
3348         fr30_trampoline_init): New.
3349         * config/fr30/fr30.h (TRAMPOLINE_TEMPLATE): Move code to
3350         fr30_asm_trampoline_template.
3351         (INITIALIZE_TRAMPOLINE): Move code to fr30_trampoline_init;
3352         adjust for target hook parameters.
3353
3354         * config/frv/frv.c (TARGET_TRAMPOLINE_INIT): New.
3355         (frv_trampoline_init): Rename from frv_initialize_trampoline;
3356         make static, adjust arguments for TARGET_TRAMPOLINE_INIT hook.
3357         * config/frv/frv.h (INITIALIZE_TRAMPOLINE): Remove.
3358         * config/frv/frv-protos.h (frv_initialize_trampoline): Remove.
3359
3360         * config/h8300/h8300.c (h8300_trampoline_init): New.
3361         (TARGET_TRAMPOLINE_INIT): New.
3362         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Move code
3363         to h8300_trampoline_init and adjust for hook parameters.
3364
3365         * config/ia64/ia64-protos.h (ia64_initialize_trampoline): Remove.
3366         * config/ia64/ia64.c (TARGET_TRAMPOLINE_INIT): New.
3367         (ia64_trampoline_init): Rename from ia64_initialize_trampoline;
3368         make static; adjust for hook parameters.
3369         * config/ia64/ia64.h (INITIALIZE_TRAMPOLINE): Remove.
3370
3371         * config/iq2000/iq2000.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
3372         (TARGET_TRAMPOLINE_INIT): New.
3373         (iq2000_asm_trampoline_template, iq2000_trampoline_init): New.
3374         * config/iq2000/iq2000.h (TRAMPOLINE_TEMPLATE): Move code to
3375         iq2000_asm_trampoline_template.
3376         (INITIALIZE_TRAMPOLINE): Move code to iq2000_trampoline_init.
3377         (TRAMPOLINE_CODE_SIZE): New.
3378         (TRAMPOLINE_SIZE): Use it.
3379         (TRAMPOLINE_ALIGNMENT): Follow Pmode.
3380
3381         * config/m32c/m32c-protos.h (m32c_initialize_trampoline): Remove.
3382         * config/m32c/m32c.c (TARGET_TRAMPOLINE_INIT): New.
3383         (m32c_trampoline_init): Rename from m32c_initialize_trampoline;
3384         adjust for hook parameters.
3385         * config/m32c/m32c.h (INITIALIZE_TRAMPOLINE): Remove.
3386
3387         * config/m32r/m32r.c (TARGET_TRAMPOLINE_INIT): New.
3388         (m32r_trampoline_init): New.
3389         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Move code to
3390         m32r_trampoline_init.
3391
3392         * config/m68hc11/m68hc11.c (TARGET_TRAMPOLINE_INIT): New.
3393         (m68hc11_trampoline_init): Rename from m68hc11_initialize_trampoline;
3394         make static; update for hook parameters.
3395         * config/m68hc11/m68hc11-protos.h: Update.
3396         * config/m68hc11/m68hc11.h (INITIALIZE_TRAMPOLINE): Remove.
3397
3398         * config/mcore/mcore.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
3399         (TARGET_TRAMPOLINE_INIT): New.
3400         (mcore_function_value): Fix typo.
3401         (mcore_asm_trampoline_template, mcore_trampoline_init): New.
3402         * config/mcore/mcore.h (TRAMPOLINE_TEMPLATE): Move code
3403         to mcore_asm_trampoline_template.
3404         (INITIALIZE_TRAMPOLINE): Move code to mcore_trampoline_init.
3405
3406         * config/mep/mep.h (INITIALIZE_TRAMPOLINE): Remove.
3407         * config/mep/mep.c (TARGET_TRAMPOLINE_INIT): New.
3408         (mep_trampoline_init): Rename from mep_init_trampoline; make static;
3409         update for hook parameters.
3410         * config/mep/mep-protos.h (mep_init_trampoline): Remove.
3411
3412         * config/mips/mips.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
3413         mips_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
3414         mips_trampoline_init): New.
3415         * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Move code to
3416         mips_asm_trampoline_template.
3417         (INITIALIZE_TRAMPOLINE): Move code to mips_trampoline_init;
3418         update for hook parameters.
3419
3420         * gcc/config/mmix/mmix.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
3421         (TARGET_TRAMPOLINE_INIT): New.
3422         (mmix_trampoline_size): Remove.
3423         (mmix_asm_trampoline_template): Rename from mmix_trampoline_template;
3424         make static.  Remove out-of-date tetra vs octa comment.
3425         (mmix_trampoline_init): Rename from mmix_initialize_trampoline;
3426         make static; update for hook parameters.
3427         * config/mmix/mmix.h (TRAMPOLINE_TEMPLATE): Remove.
3428         (INITIALIZE_TRAMPOLINE): Remove.
3429         (TRAMPOLINE_SIZE): Use a constant instead of mmix_trampoline_size.
3430         (TRAMPOLINE_ALIGNMENT): New.
3431         * gcc/config/mmix/mmix-protos.h: Update.
3432
3433         * config/mn10300/mn10300.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
3434         mn10300_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
3435         mn10300_trampoline_init): New.
3436         * config/mn10300/mn10300.h (TRAMPOLINE_TEMPLATE): Move code to
3437         mn10300_asm_trampoline_template.
3438         (INITIALIZE_TRAMPOLINE): Move code to mn10300_trampoline_init.
3439
3440         * config/moxie/moxie.c (moxie_static_chain,
3441         moxie_asm_trampoline_template, moxie_trampoline_init,
3442         TARGET_STATIC_CHAIN, TARGET_ASM_TRAMPOLINE_TEMPLATE,
3443         TARGET_TRAMPOLINE_INIT): New.
3444         * config/moxie/moxie.h (INITIALIZE_TRAMPOLINE): Move code to
3445         moxie_trampoline_init.
3446         (TRAMPOLINE_TEMPLATE): Move code to moxie_asm_trampoline_template.
3447         (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Remove.
3448
3449         * gcc/config/pa/pa.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
3450         pa_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
3451         pa_trampoline_init, TARGET_TRAMPOLINE_ADJUST_ADDRESS,
3452         pa_trampoline_adjust_address): New.
3453         * config/pa/pa.h (TRAMPOLINE_TEMPLATE): Move code to
3454         pa_asm_trampoline_template.
3455         (TRAMPOLINE_ALIGNMENT): New.
3456         (TRAMPOLINE_CODE_SIZE): Move to pa.c.
3457         (INITIALIZE_TRAMPOLINE): Move code to pa_trampoline_init;
3458         adjust for hook parameters.
3459         (TRAMPOLINE_ADJUST_ADDRESS): Move code to pa_trampoline_adjust_address.
3460
3461         * config/pdp11/pdp11.c (pdp11_trampoline_init): New.
3462         (TARGET_TRAMPOLINE_INIT): New.
3463         * config/pdp11/pdp11.h (TRAMPOLINE_TEMPLATE): Remove.
3464         (INITIALIZE_TRAMPOLINE): Move code to pdp11_trampoline_init.
3465
3466         * config/picochip/picochip.h (INITIALIZE_TRAMPOLINE): Remove.
3467
3468         * config/rs6000/rs6000-protos.h (rs6000_initialize_trampoline): Remove.
3469         * config/rs6000/rs6000.c (TARGET_TRAMPOLINE_INIT): New.
3470         (rs6000_trampoline_init): Rename from rs6000_initialize_trampoline;
3471         make static; adjust parameters for the hook.
3472         * config/rs6000/rs6000.h (INITIALIZE_TRAMPOLINE): Remove.
3473
3474         * config/s390/s390.c (s390_asm_trampoline_template): Rename from
3475         s390_trampoline_template; make static.
3476         (s390_trampoline_init): Rename from s390_initialize_trampoline;
3477         make static; adjust for target hook.
3478         (TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT): New.
3479         * config/s390/s390-protos.h: Remove trampoline decls.
3480         * config/s390/s390.h (INITIALIZE_TRAMPOLINE): Remove.
3481         (TRAMPOLINE_TEMPLATE): Remove.
3482         (TRAMPOLINE_ALIGNMENT): New.
3483
3484         * config/score/score-protos.h (score_initialize_trampoline): Remove.
3485         * config/score/score.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
3486         (TARGET_TRAMPOLINE_INIT): New.
3487         (score_asm_trampoline_template): New.
3488         (score_trampoline_init): Rename from score_initialize_trampoline;
3489         make static; adjust for hook parameters.
3490         * config/score/score.h (TRAMPOLINE_TEMPLATE): Move code to
3491         score[37]_asm_trampoline_template.
3492         (INITIALIZE_TRAMPOLINE): Remove.
3493         * config/score/score3.c (score3_asm_trampoline_template): New.
3494         (score3_trampoline_init): Rename from score3_initialize_trampoline;
3495         adjust for target hook.
3496         * config/score/score7.c (score7_asm_trampoline_template): New.
3497         (score7_trampoline_init): Rename from score7_initialize_trampoline;
3498         adjust for target hook.
3499         * config/score/score3.h, config/score/score7.h: Update.
3500
3501         * config/sh/sh-protos.h (sh_initialize_trampoline): Remove.
3502         * config/sh/sh.c (TARGET_TRAMPOLINE_INIT): New.
3503         (TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
3504         (sh_trampoline_init): Rename from sh_initialize_trampoline;
3505         make static; adjust for target hook parameters.
3506         (sh_trampoline_adjust_address): New.
3507         * config/sh/sh.h (INITIALIZE_TRAMPOLINE): New.
3508         (TRAMPOLINE_ADJUST_ADDRESS): Move code to sh_trampoline_adjust_address.
3509
3510         * config/sparc/sparc.c (TARGET_TRAMPOLINE_INIT): New.
3511         (sparc32_initialize_trampoline): Rename from
3512         sparc_initialize_trampoline; make static; replace tramp parameter
3513         with m_tramp and update memory accesses.
3514         (sparc64_initialize_trampoline): Similarly.
3515         (sparc_trampoline_init): New.
3516         * config/sparc/sparc-protos.h: Remove trampoline decls.
3517         * config/sparc/sparc.h (INITIALIZE_TRAMPOLINE): Remove.
3518         * config/sparc/sparc.md (nonlocal_goto): Don't use static_chain_rtx.
3519
3520         * config/spu/spu.c (TARGET_TRAMPOLINE_INIT): New.
3521         (array_to_constant): Make ARR parameter const.
3522         (spu_trampoline_init): Rename from spu_initialize_trampoline;
3523         make static; update for hook parameters.
3524         * config/spu/spu-protos.h: Update decls.
3525         * config/spu/spu.h (INITIALIZE_TRAMPOLINE): Remove.
3526
3527         * config/stormy16/stormy16.c (xstormy16_trampoline_init): Rename
3528         from xstormy16_initialize_trampoline; make static; update for
3529         hook parameters.
3530         (TARGET_TRAMPOLINE_INIT): New.
3531         * config/stormy16/stormy16.h (INITIALIZE_TRAMPOLINE): Remove.
3532
3533         * config/v850/v850.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
3534         (TARGET_TRAMPOLINE_INIT): New.
3535         (v850_can_eliminate): Make static.
3536         (v850_asm_trampoline_template, v850_trampoline_init): New.
3537         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Move code to
3538         v850_asm_trampoline_template.
3539         (INITIALIZE_TRAMPOLINE): Move code to v850_trampoline_init
3540         and adjust for target hook parameters.
3541
3542         * config/vax/vax.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
3543         (TARGET_TRAMPOLINE_INIT): New.
3544         (vax_asm_trampoline_template, vax_trampoline_init): New.
3545         * config/vax/vax.h (TRAMPOLINE_TEMPLATE): Move code to
3546         vax_asm_trampoline_template.
3547         (INITIALIZE_TRAMPOLINE): Move code to vax_trampoline_init.
3548
3549         * config/xtensa/xtensa.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
3550         (TARGET_TRAMPOLINE_INIT): New.
3551         (xtensa_asm_trampoline_template): Rename from
3552         xtensa_trampoline_template; make static.
3553         (xtensa_trampoline_init): Rename from xtensa_initialize_trampoline;
3554         make static; update for hook parameters.
3555         * config/xtensa/xtensa-protos.h: Remove trampoline decls.
3556         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Remove.
3557         (INITIALIZE_TRAMPOLINE): Remove.
3558
3559         * config/i386/i386.c (ix86_function_regparm): Do not issue an
3560         error for nested functions with regparm=3.
3561         (ix86_compute_frame_layout): Adjust frame pointer offset for
3562         ix86_static_chain_on_stack.
3563         (ix86_expand_prologue): Handle ix86_static_chain_on_stack.
3564         (ix86_emit_restore_reg_using_pop): Increment ix86_cfa_state->offset,
3565         don't reset to UNITS_PER_WORD.
3566         (ix86_emit_leave): Adjust ix86_cfa_state.
3567         (ix86_expand_epilogue): Handle ix86_static_chain_on_stack.
3568         (ix86_static_chain): New.
3569         (ix86_trampoline_init): Rename from x86_initialize_trampoline;
3570         make static; update for target hook parameters; use ix86_static_chain.
3571         (TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New.
3572         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Remove.
3573         (INITIALIZE_TRAMPOLINE): Remove.
3574         (TRAMPOLINE_SIZE): Use 24 for 64-bit.
3575         (struct machine_function): Use BOOL_BITFIELD; rearrange bitfields
3576         to the end.  Add static_chain_on_stack.
3577         (ix86_static_chain_on_stack): New.
3578
3579         * config/m68k/m68k.c (TARGET_TRAMPOLINE_INIT): New.
3580         (m68k_output_mi_thunk): Don't use static_chain_rtx.
3581         (m68k_trampoline_init): New.
3582         * config/m68k/m68k.h (INITIALIZE_TRAMPOLINE): Move code to
3583         m68k_trampoline_init and adjust for hook parameters.
3584         * config/m68k/netbsd-elf.h (TRAMPOLINE_TEMPLATE): Remove.
3585         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Remove.
3586
3587 2009-09-22  Jakub Jelinek  <jakub@redhat.com>
3588
3589         * config/rs6000/rs6000.c (bdesc_2arg): Fix CODE_FOR_vector_gt* codes
3590         for __builtin_altivec_vcmpgt{sb,uh,sh,uw}.
3591
3592         * reload1.c (reload): Call wrap_constant when substituting
3593         reg for equiv inside of DEBUG_INSNs.
3594
3595         PR bootstrap/41405
3596         * dwarf2out.c (base_type_die, record_type_tag, gen_subprogram_die,
3597         add_call_src_coords_attributes, add_high_low_attributes,
3598         gen_compile_unit_die, gen_type_die_with_usage force_decl_die,
3599         gen_decl_die, dwarf2out_imported_module_or_decl_1, dwarf2out_finish,
3600         dwarf2out_imported_module_or_decl): Avoid using DWARF3 additions
3601         when -gdwarf-2 -gstrict-dwarf.
3602         (loc_list_from_tree): Likewise.  Avoid using DWARF4 additions when
3603         -gdwarf-[23] -gstrict-dwarf.
3604         (address_of_int_loc_descriptor, loc_descriptor,
3605         loc_list_for_address_of_addr_expr_of_indirect_ref): Avoid using
3606         DWARF4 additions when -gdwarf-[23] -gstrict-dwarf.
3607         * common.opt (gno-strict-dwarf, gstrict-dwarf): New options.
3608
3609 2009-09-22  Richard Guenther  <rguenther@suse.de>
3610
3611         PR tree-optimization/41428
3612         * tree-ssa-ccp.c (ccp_fold_stmt): New function.
3613         (ccp_finalize): Pass it to substitute_and_fold.
3614
3615 2009-09-22  Richard Guenther  <rguenther@suse.de>
3616
3617         * tree-ssa-propagate.h (ssa_prop_fold_stmt_fn): Declare.
3618         (substitute_and_fold): Adjust prototype.
3619         * tree-vrp.c (vrp_evaluate_conditional): Make static.
3620         (simplify_stmt_using_ranges): Likewise.
3621         (fold_predicate_in): Move here from tree-ssa-propagate.c.
3622         (vrp_fold_stmt): New function.
3623         (vrp_finalize): Pass it to substitute_and_fold.
3624         * tree-flow.h (vrp_evaluate_conditional): Remove.
3625         (simplify_stmt_using_ranges): Likewise.
3626         * tree-ssa-ccp.c (ccp_finalize): Adjust call to substitute_and_fold.
3627         * tree-ssa-copy.c (fini_copy_prop): Likewise.
3628         * tree-ssa-propagate.c (struct prop_stats_d): Rename num_pred_folded
3629         member.
3630         (fold_predicate_in): Move to tree-vrp.c.
3631         (substitute_and_fold): Use the callback instead of calling into
3632         tree-vrp.c functions directly.
3633
3634 2009-09-22  Jakub Jelinek  <jakub@redhat.com>
3635
3636         * dwarf2out.c (address_of_int_loc_descriptor): Avoid signed/unsigned
3637         comparison warning on rs6000.
3638
3639         PR middle-end/41429
3640         * tree-cfg.c (remove_useless_stmts_tc): Call gsi_next (gsi) even for
3641         GIMPLE_EH_MUST_NOT_THROW cleanup.
3642         (verify_types_in_gimple_stmt): Handle GIMPLE_EH_MUST_NOT_THROW.
3643
3644 2009-09-22  Jack Howarth  <howarth@bromo.med.uc.edu>
3645
3646         PR middle-end/41260
3647         * gcc/config.gcc: Use darwin9.h and darwin10.h on darwin10 and later.
3648         * gcc/config/darwin10.h: Add file to pass -no_compact_unwind on
3649         LIB_SPEC for darwin10 and later since it always uses the unwinder in
3650         libSystem which is derived from the gcc 4.2.1 unwinder.
3651
3652 2009-09-22  Dave Korn  <dave.korn.cygwin@gmail.com>
3653
3654         PR middle-end/41357
3655         * varasm.c (default_encode_section_info): Copy TLS model into
3656         sym_ref flags regardless of backend support for TLS, for all
3657         model types except TLS_MODEL_EMULATED.
3658
3659 2009-09-22  Dave Korn  <dave.korn.cygwin@gmail.com>
3660
3661         PR bootstrap/41404
3662         * dwarf2out.c (mem_loc_descriptor): Punt on CONST_STRING until
3663         we can handle it correctly.
3664
3665 2009-09-21  Gerald Pfeifer  <gerald@pfeifer.com>
3666
3667         * doc/install.texi (os2): Remove section.
3668
3669 2009-09-21  Gerald Pfeifer  <gerald@pfeifer.com>
3670
3671         * doc/standards.texi (Objective-C): Adjust two URLs.
3672
3673 2009-09-21  Giuseppe Scrivano <gscrivano@gnu.org>
3674
3675         * tree-tailcall.c (process_assignment): Don't check if a
3676         multiplication or an addition are already present.
3677         (find_tail_calls): Combine multiple additions and multiplications.
3678         (adjust_accumulator_values): Emit accumulators.
3679
3680 2009-09-21  Kai Tietz  <kai.tietz@onevision.com>
3681
3682         * config/i386/i386.c (ix86_expand_epilogue): Adjust offset for
3683         xmm register restore.
3684
3685 2009-09-21  Jan Hubicka  <jh@suse.cz>
3686
3687         * dwarf2out.c (decl_loc_table_eq): Allow decl_loc_table to be NULL.
3688         (dwarf2out_abstract_function): NULLify decl_loc_table at begginig and
3689         restore at the end.
3690
3691 2009-09-21  Eric Botcazou  <ebotcazou@adacore.com>
3692
3693         * stor-layout.c (layout_type): Remove obsolete code.
3694
3695 2009-09-20  H.J. Lu  <hongjiu.lu@intel.com>
3696
3697         PR middle-end/41395
3698         * opts.c (decode_options): Don't turn on flag_ipa_sra for opt2.
3699
3700 2009-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3701
3702         PR middle-end/30789
3703         * builtins.c (do_mpc_arg2): Accept DO_NONFINITE parameter.
3704         (do_mpc_ckconv): Accept FORCE_CONVERT parameter.
3705         (fold_builtin_2, do_mpc_arg1): Update accordingly.
3706         * fold-const.c (const_binop): Likewise.
3707         * real.h (do_mpc_arg2): Update prototype.
3708
3709 2009-09-20  Jan Hubicka  <jh@suse.cz>
3710
3711         * dwarf2out.c (add_const_value_attribute): Return true if successful.
3712         (add_location_or_const_value_attribute): Rewrite using
3713         loc_list_from_tree.
3714         (tree_add_const_value_attribute): Return true if successful.
3715         (tree_add_const_value_attribute_for_decl): Likewise.
3716
3717         * dwarf2out.c (address_of_int_loc_descriptor): Break out from ...
3718         (loc_descriptor): ... here;
3719         (loc_list_for_address_of_addr_expr_of_indirect_ref): New function.
3720         (cst_pool_loc_descr): Break out from ...; do not reffer constant
3721         pool items that was not marked for output.
3722         (loc_list_from_tree): ... here; handle special cases of ADDR_EXPR;
3723         (loc_list_for_address_of_addr_expr_of_indirect_ref): New function.
3724         (loc_list_for_address_of_addr_expr_of_indirect_ref): New function.
3725         handle ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, REALPART_EXPR,
3726         IMAGPART_EXPR; handle address of INTEGER_CST; improve handling of
3727         CONSTRUCTOR; handle REAL_CST, STRING_CST, COMPLEX_CST; use
3728         DW_OP_stack_value to get address of items that are not available
3729         as addresses.
3730         (dw_loc_list): Handle single element lists correctly.
3731
3732 2009-09-20  Kai Tietz  <kai.tietz@onevision.com>
3733             Pascal Obry  <obry@adacore.com>
3734
3735         * unwind-dw2-fde.c (classify_object_over_fdes):
3736         Cast the constant 1 to _Unwind_Ptr.
3737         (add_fdes): Likewise.
3738         (linear_search_fdes): Likewise.
3739
3740 2009-09-20  Eric Botcazou  <ebotcazou@adacore.com>
3741
3742         * stor-layout.c (set_sizetype): Avoid useless type copy.
3743
3744 2009-09-20  Richard Sandiford  <rdsandiford@googlemail.com>
3745
3746         * configure.ac (gcc_cv_ld_mips_personality_relaxation): New
3747         feature check.
3748         (HAVE_LD_PERSONALITY_RELAXATION): New macro definition.
3749         * configure, config.in: Regenerate.
3750         * dwarf2asm.c (eh_data_format_name): Handle DW_EH_PE_indirect |
3751         DW_EH_PE_absptr.
3752         * config/mips/mips.h (TARGET_WRITABLE_EH_FRAME): New macro.
3753         (ASM_PREFERRED_EH_DATA_FORMAT): Define.  Use MIPS_EH_INDIRECT
3754         for global data if the output could be used in a shared library.
3755         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
3756         to 0 if TARGET_WRITABLE_EH_FRAME.
3757
3758 2009-09-20  Paolo Bonzini <bonzini@gnu.org>
3759
3760         PR rtl-optimization/39886
3761         * combine.c (update_cfg_for_uncondjump): Set EDGE_FALLTHRU
3762         just when insn is equal to BB_END (bb).
3763
3764 2009-09-19  Adam Nemet  <anemet@caviumnetworks.com>
3765
3766         * config/mips/mips.opt (mrelax-pic-calls): New option.
3767         * config/mips/mips.c (mips_strip_unspec_address): Move it up in
3768         the file.
3769         (mips_unspec_call): Change "unspec_call" expander into this.
3770         (mips_strip_unspec_call): New function.
3771         (mips_got_load): Call mips_unspec_call instead of
3772         gen_unspec_call<mode>.
3773         (mips16_build_call_stub): Fix comment for fp_code.  Adjust call to
3774         MIPS_CALL.
3775         (mips_cfg_in_reorg): New function.
3776         (mips16_lay_out_constants): Use it to decide whether to call
3777         CFG-aware insn splitting.
3778         (r10k_insert_cache_barriers): Move CFG set-up code from here to
3779         mips_reorg.  Move DF set-up code from here ...
3780         (mips_df_reorg): ... to here.  Call r10k_insert_cache_barriers
3781         from here.
3782         (mips_reorg): Call mips_df_reorg instead of
3783         r10k_insert_cache_barriers.  Move CFG set-up code here from
3784         r10k_insert_cache_barriers.
3785         (mips_call_expr_from_insn): New function.
3786         (mips_pic_call_symbol_from_set): Likewise.
3787         (mips_find_pic_call_symbol): Likewise.
3788         (mips_annotate_pic_call_expr): Likewise.
3789         (mips_get_pic_call_symbol): Likewise.
3790         (mips_annotate_pic_calls): Likewise.
3791         (mips_override_options): Disable -mrelax-pic-calls unless PIC
3792         calls are used.
3793         (mips_set_mips16_mode): Disable -mrelax-pic-calls for MIPS16.
3794         * config/mips/mips-protos.h (mips_get_pic_call_symbol): Declare it.
3795         * config/mips/mips.h (MIPS_CALL): Use it to print the .reloc
3796         directive.
3797         * config/mips/mips.md (UNSPEC_CALL_ATTR): New unspec.
3798         (unspec_call<mode>): Remove it.
3799         (sibcall_internal, sibcall_value_internal,
3800         sibcall_value_multiple_internal, call_internal, call_split,
3801         call_value_internal, call_value_split,
3802         call_value_multiple_internal, call_value_multiple_split): Pass
3803         SIZE_OPNO to MIPS_CALL.
3804         (call_internal_direct, call_direct_split,
3805         call_value_internal_direct, call_value_direct_split): Pass -1 as
3806         SIZE_OPNO to MIPS_CALL.
3807         * configure.ac <mips*-*-*>: Add test for .reloc R_MIPS_JALR.
3808         * configure: Regenerate.
3809         * doc/invoke.texi (Option Summary): Add -mrelax-pic-calls
3810         and -mno-relax-pic-calls.
3811         (MIPS Options): Document -mrelax-pic-calls and -mno-relax-pic-calls.
3812
3813 2009-09-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3814
3815         PR bootstrap/35619
3816         * Makefile.in (stmp-fixinc): Ensure `include-fixed' is created
3817         in the directory this rule is called from, rather than the
3818         toplevel 'gcc' directory, to fix in-tree build.
3819
3820 2009-09-19  Chris Demetriou  <cgd@google.com>
3821
3822         PR preprocessor/28435:
3823         * c-opts.c (c_common_handle_option): For -MD and -MMD, indicate
3824         to cpplib that the preprocessor output is needed.
3825
3826 2009-09-19  Jakub Jelinek  <jakub@redhat.com>
3827
3828         * config/rs6000/rs6000.md (*save_gpregs_<mode>, *save_fpregs_<mode>,
3829         *restore_gpregs_<mode>, *return_and_restore_gpregs_<mode>,
3830         *return_and_restore_fpregs_<mode>,
3831         *return_and_restore_fpregs_aix_<mode>): Remove 'z' operand modifier.
3832
3833         PR bootstrap/41397
3834         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Recurse
3835         instead of assuming it has always a REG inside of it.
3836
3837 2009-09-18  Gerald Pfeifer  <gerald@pfeifer.com>
3838
3839         * config/freebsd.h: Update comment on types.
3840         (WINT_TYPE): Define.
3841
3842 2009-09-18  Jason Merrill  <jason@redhat.com>
3843
3844         * c.opt: Add -fno-deduce-init-list.
3845
3846 2009-09-18  Neil Vachharajani  <nvachhar@google.com>
3847
3848         * value-prof.c (interesting_stringop_to_profile_p): Added output
3849         argument to indicate which parameter is the size parameter.
3850         * value-prof.c (gimple_stringop_fixed_value): Use
3851         INTERESTING_STRINGOP_TO_PROFILE_P to find size argument.
3852         * value-prof.c (gimple_stringops_transform): Update call sites to
3853         INTERESTING_STRINGOP_TO_PROFILE_P to reflect parameter change.
3854
3855 2009-09-18  Uros Bizjak  <ubizjak@gmail.com>
3856
3857         PR target/38288
3858         From David Binderman <dcb314@hotmail.com>:
3859         * gcc/config/i386/i386.c (ix86_function_regparm): Remove useless
3860         local variable f.  Remove stale comments.
3861         (ix86_compute_frame_layout): Remove useless local variable total_size.
3862         Remove #if 0'd code.
3863         (legitimate_address_p): Remove useless local variables
3864         reason_rtx and reason.
3865         (ix86_split_copysign_const): Remove useless local variable op1.
3866         (scale_counter): Remove useless local variable piece_size_mask.
3867
3868 2009-09-18  Jakub Jelinek  <jakub@redhat.com>
3869
3870         * stmt.c (expand_asm_operands): Set REG_ATTRS on the temporary from
3871         output decl.
3872
3873 2009-09-17  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
3874
3875         PR target/40913
3876         * config/pa/t-hpux-shlib: Set soname in libgcc_s.sl.
3877
3878 2009-09-17  Jakub Jelinek  <jakub@redhat.com>
3879
3880         * c-decl.c (finish_struct): Adjust DECL_SOURCE_LOCATION of
3881         TYPE_STUB_DECL.
3882
3883 2009-09-17  Alexandre Oliva  <aoliva@redhat.com>
3884
3885         * dwarf2out.c (loc_descriptor): Emit DW_OP_stack_value and
3886         DW_OP_implicit_value even without dwarf_version 4.
3887
3888 2009-09-17  Jan Hubicka  <jh@suse.cz>
3889
3890         * dwarf2out.c: Include tree-pass.h and gimple.h.
3891         (loc_list_plus_const): New function.
3892         (loc_descriptor_from_tree_1): Rename to ...
3893         (loc_descriptor_from_tree): ... remove original.
3894         (loc_list_from_tree): New function.
3895         (add_AT_location_description): Accept location list.
3896         (tls_mem_loc_descriptor): Update call of loc_descriptor_from_tree.
3897         (concatn_mem_loc_descriptor): Remove.
3898         (mem_loc_descriptor): Handle CONCAT/CONCATN and VAR_LOCATION by
3899         returning NULL.
3900         (secname_for_decl): Move up.
3901         (hidden_reference_p): New function; break out from ...
3902         (loc_by_refernece): ... here; move up.
3903         (dw_loc_list): New function.
3904         (single_element_loc_list): New function.
3905         (single_element_loc_list_p): New function.
3906         (add_loc_descr_to_each): New function.
3907         (add_loc_list): New function.
3908         (loc_descr_from_tree): Make wraper of loc_list_from_tree.
3909         (loc_list_from_tree): Reroganized from loc_descr_from_tree;
3910         add diagnostics why expansion failed.
3911         (add_location_or_const_value_attribute): Support location lists.
3912         (add_bound_info): Likewise.
3913         (descr_info_loc): Update call of loc_descriptor_from_tree.
3914         (gen_variable_die): Work on location lists.
3915         * final.c (pass_final): Add dump file.
3916         * Makefile.in (dwarf2out.o): Add new dependencies.
3917
3918 2009-09-17  Janis Johnson  <janis187@us.ibm.com>
3919
3920         PR c/41049
3921         * real.c decimal_from_integer, decimal_integer_string): New.
3922         (real_from_integer): Use them as special case for decimal float.
3923         * config/dfp-bit.c (_si_to_sd, _usi_to_sd): Use default rounding.
3924         (_di_to_sd, _di_to_dd, _di_to_td, _udi_to_sd, _udi_to_dd, _udi_to_td):
3925         Do not append zero after the decimal point in string to convert.
3926
3927 2009-09-17  Alexander Monakov  <amonakov@ispras.ru>
3928
3929         * graphite-sese-to-poly.c (pdr_add_data_dimensions): Add bounds only
3930         for ARRAY_REFs.  Use array_ref_{low,up}_bound to determine bounds.
3931
3932 2009-09-17  Martin Jambor  <mjambor@suse.cz>
3933
3934         * common.opt (fipa-sra): New switch.
3935         * opts.c (decode_options): Turn flag_ipa_sra on for opt2.
3936         * timevar.def (TV_IPA_SRA): New timevar.
3937         * params.def (ipa-sra-ptr-growth-factor): New parameter.
3938         * doc/invoke.texi: Document -fipa-sra and ipa-sra-ptr-growth-factor.
3939         * tree-sra.c: Include cgraph.c.
3940         (enum sra_mode): Added SRA_MODE_EARLY_IPA.
3941         (struct access): Added fields stmt, grp_maybe_modified, grp_scalar_ptr
3942         and grp_not_necessarilly_dereferenced.
3943         (func_param_count): New variable.
3944         (encountered_apply_args): New variable.
3945         (bb_dereferences): New variable.
3946         (final_bbs): New variable.
3947         (no_accesses_representant): New variable.
3948         (no_accesses_p): New function.
3949         (dump_access): Dump the new fields.
3950         (sra_initialize): Set encountered_apply_args to false.
3951         (get_ssa_base_param): New function.
3952         (mark_parm_dereference): New function.
3953         (create_access): Caring for INIDRECT_REFs and different handling of
3954         varialble length accesses in early IPA SRA.  Store the stmt - a new
3955         parameter - to the new access.
3956         (build_access_from_expr_1): New parameter stmt, passed to
3957         create_access.  Handle INDIRECT_REFs.
3958         (build_access_from_expr): Pass the current statement to
3959         build_access_from_expr_1.
3960         (disqualify_ops_if_throwing_stmt): Trigger only in intraprocedural
3961         passes.
3962         (build_accesses_from_assign): Pass the current statement to
3963         build_access_from_expr_1.  Do not create assign links in IPA-SRA.
3964         (scan_function): Call handle_ssa_defs on phi nodes.  Set bits in
3965         final_bbs when necessary.  Check for calls to __builtin_apply_args.
3966         Fixup EH info if anythng was changed.
3967         (is_unused_scalar_param): New function.
3968         (ptr_parm_has_direct_uses): New function.
3969         (find_param_candidates): New function.
3970         (mark_maybe_modified): New function.
3971         (analyze_modified_params): New function.
3972         (propagate_dereference_distances): New function.
3973         (dump_dereferences_table): New function.
3974         (analyze_caller_dereference_legality): New function.
3975         (unmodified_by_ref_scalar_representative): New function.
3976         (splice_param_accesses): New function.
3977         (decide_one_param_reduction): New function.
3978         (enum ipa_splicing_result): New type.
3979         (splice_all_param_accesses): New function.
3980         (get_param_index): New function.
3981         (turn_representatives_into_adjustments): New function.
3982         (analyze_all_param_acesses): New function.