OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
2
3         * doc/md.texi: Describe the use of match_tests in attribute tests.
4         * rtl.def (MATCH_TEST): Update commentary.
5         * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
6         (write_test_expr, walk_attr_value): Handle MATCH_TEST.
7
8 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
9
10         * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
11         (attr_string): Use copy_md_ptr_loc.
12
13 2011-08-31  Martin Jambor  <mjambor@suse.cz>
14
15         PR middle-end/49886
16         * ipa-inline-analysis.c (compute_inline_parameters): Set
17         can_change_signature of noes with typde attributes.
18         * ipa-split.c (split_function): Do not skip any arguments if
19         can_change_signature is set.
20
21 2011-08-31  Martin Jambor  <mjambor@suse.cz>
22
23         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
24         check removed.
25
26 2011-08-31  Richard Guenther  <rguenther@suse.de>
27
28         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
29         special-casing.
30
31 2011-08-31  Marc Glisse  <marc.glisse@inria.fr>
32
33         * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
34
35 2011-08-31  Tom de Vries  <tom@codesourcery.com>
36
37         PR middle-end/43513
38         * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
39         * tree-ssa-ccp.c (params.h): Include.
40         (fold_builtin_alloca_for_var): New function.
41         (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
42
43 2011-08-30  Uros Bizjak  <ubizjak@gmail.com>
44
45         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
46         Handle FMA option.
47
48 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
49
50         * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
51         b3 and b4 unsigned.
52
53 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
54
55         * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
56         when code is SET.
57
58 2011-08-30  Richard Guenther  <rguenther@suse.de>
59
60         PR middle-end/48571
61         * gimple.h (maybe_fold_offset_to_address): Remove.
62         (maybe_fold_offset_to_reference): Likewise.
63         (maybe_fold_stmt_addition): Likewise.
64         (may_propagate_address_into_dereference): Likewise.
65         * tree-inline.c (remap_gimple_op_r): Do not reconstruct
66         array references.
67         * gimple-fold.c (canonicalize_constructor_val): Likewise.
68         Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
69         addresses instead.
70         (may_propagate_address_into_dereference): Remove.
71         (maybe_fold_offset_to_array_ref): Likewise.
72         (maybe_fold_offset_to_reference): Likewise.
73         (maybe_fold_offset_to_address): Likewise.
74         (maybe_fold_stmt_addition): Likewise.
75         (fold_gimple_assign): Do not reconstruct array references but
76         instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
77         MEM_REF addresses.
78         (gimple_fold_stmt_to_constant_1): Likewise.
79         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
80         * gimplify.c (gimplify_conversion): Likewise.
81         (gimplify_expr): Likewise.
82
83 2011-08-30  Ilya Tocar  <ilya.tocar@intel.com>
84
85         * config/i386/fmaintrin.h: New.
86         * config.gcc: Add fmaintrin.h.
87         * config/i386/i386.c
88         (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
89         <IX86_BUILTIN_VFMADDSD3>: Likewise.
90         * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
91         (*fmai_fmadd_<mode>): Likewise.
92         (*fmai_fmsub_<mode>): Likewise.
93         (*fmai_fnmadd_<mode>): Likewise.
94         (*fmai_fnmsub_<mode>): Likewise.
95         * config/i386/immintrin.h: Add fmaintrin.h.
96
97 2011-08-30  Bernd Schmidt  <bernds@codesourcery.com>
98
99         * genautomata.c (NO_COMB_OPTION): New macro.
100         (no_comb_flag): New static variable.
101         (gen_automata_option): Handle NO_COMB_OPTION.
102         (comb_vect_p): False if no_comb_flag.
103         (add_vect): Move computation of min/max values.  Return early if
104         no_comb_flag.
105         * doc/md.texi (automata_option): Document no-comb-vect.
106
107         * config/i386/i386.c (get_pc_thunk_name): Change prefix to
108         "__x86.get_pc_thunk".
109
110         * bb-reorder.c (insert_section_boundary_note): Only do it if
111         we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
112
113 2011-08-30  Christian Bruel  <christian.bruel@st.com>
114
115         * coverage.c (coverage_init): Check flag_branch_probabilities instead of
116         flag_profile_use.
117
118 2011-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
119
120         * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
121         to off.  Document switch.
122         * doc/invoke.texi (-msave-toc-indirect): Ditto.
123
124 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
125
126         * gthr-posix.h (__gthread_active_p): Do not use preprocessor
127         conditionals and comments inside macro arguments.
128
129 20011-08-29  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
130              Richard Guenther  <rguenther@suse.de>
131
132         * tree.h (constant_boolean_node): Adjust prototype.
133         * fold-const.c (fold_convert_loc): Move aggregate conversion
134         leeway down.
135         (constant_boolean_node): Make value parameter boolean, add
136         vector type handling.
137         (fold_unary_loc): Use constant_boolean_node.
138         (fold_binary_loc): Preserve types properly when folding
139         COMPLEX_EXPR <__real x, __imag x>.
140         * gimplify.c (gimplify_expr): Handle vector comparison.
141         * tree.def (EQ_EXPR, ...): Document behavior on vector typed
142         comparison.
143         * tree-cfg.c (verify_gimple_comparison): Verify vector typed
144         comparisons.
145
146 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
147
148         PR middle-end/48722
149         * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
150         reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
151         (verify_rtl_sharing): Likewise and verify_rtx_sharing
152         in there too.
153         (unshare_all_rtl_in_chain): For CALL_INSNs
154         copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
155
156 2011-08-29  Richard Guenther  <rguenther@suse.de>
157
158         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
159         on the built ADDR_EXPR.
160
161 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
162
163         PR debug/50215
164         * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
165         before adding ENTRY_VALUE to val->locs.
166
167 2011-08-28  Mikael Pettersson  <mikpe@it.uu.se>
168
169         PR bootstrap/50218
170         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
171         comp.
172
173 2011-08-27  Bernd Schmidt  <bernds@codesourcery.com>
174
175         * doc/rtl.texi (simple_return): Document.
176         (parallel, PATTERN): Here too.
177         * doc/md.texi (return): Mention it's allowed to expand to simple_return
178         in some cases.
179         (simple_return): Document standard pattern.
180         * gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
181         * final.c (final_scan_insn): Use ANY_RETURN_P on body.
182         * reorg.c (function_return_label, function_simple_return_label):
183         New static variables, replacing...
184         (end_of_function_label): ... this.
185         (simplejump_or_return_p): New static function.
186         (optimize_skip, steal_delay_list_from_fallthrough,
187         fill_slots_from_thread): Use it.
188         (relax_delay_slots): Likewise.  Use ANY_RETURN_P on body.
189         (rare_destination, follow_jumps): Use ANY_RETURN_P on body.
190         (find_end_label): Take a new arg which is one of the two return
191         rtxs.  Depending on which, set either function_return_label or
192         function_simple_return_label.  All callers changed.
193         (make_return_insns): Make both kinds.
194         (dbr_schedule): Adjust for two kinds of end labels.
195         * function.c (emit_return_into_block): Set JUMP_LABEL properly.
196         * genemit.c (gen_exp): Handle SIMPLE_RETURN.
197         (gen_expand, gen_split): Use ANY_RETURN_P.
198         * df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
199         * rtl.def (SIMPLE_RETURN): New code.
200         * ifcvt.c (find_if_case_1): Be more careful about
201         redirecting jumps to the EXIT_BLOCK.
202         * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
203         returnjump_p_1): Handle SIMPLE_RETURNs.
204         * print-rtl.c (print_rtx): Likewise.
205         * rtl.c (copy_rtx): Likewise.
206         * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
207         * combine.c (simplify_set): Likewise.
208         * resource.c (find_dead_or_set_registers, mark_set_resources):
209         Likewise.
210         * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
211         copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
212         (init_emit_regs): Initialize simple_return_rtx.
213         * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
214         force_nonfallthru_and_redirect.
215         * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
216         (GR_SIMPLE_RETURN): New enum value.
217         (simple_return_rtx): New macro.
218         * basic-block.h (force_nonfallthru_and_redirect): Adjust
219         declaration.
220         * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
221         argument.  All callers changed.  Be careful about what kinds of
222         returnjumps to generate.
223         * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
224         ix86_pad_short_function): Likewise.
225         * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
226         of return.
227         * config/mips/mips.md (any_return): New code_iterator.
228         (optab): Add cases for return and simple_return.
229         (return): Expand to a simple_return.
230         (simple_return): New pattern.
231         (*<optab>, *<optab>_internal for any_return): New patterns.
232         (return_internal): Remove.
233         * config/mips/mips.c (mips_expand_epilogue): Make the last insn
234         a simple_return_internal.
235
236 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
237
238         * config/i386/sse.md (*absneg<mode>2): Fix split condition.
239         (vec_extract_lo_<mode>): Prevent both operands in memory.
240         (vec_extract_lo_v16hi): Ditto.
241         (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
242
243 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
244
245         * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
246         (*sse2_mulv4si3): Ditto.
247         (mulv2di3): Ditto.
248         * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
249         notes to REG_EQUAL.
250
251 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
252
253         PR target/50202
254         * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
255         when all outputs are unused.
256         (sse4_2_pcmpistr): Ditto.
257
258 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
259
260         * config/i386/i386.md (round<mode>2): New expander.
261         * config/i386/i386.c (enum ix86_builtins): Add
262         IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
263         (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
264         descriptions.
265         (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
266         (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.
267
268 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
269
270         PR middle-end/50083
271         * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
272         only when TARGET_C99_FUNCTIONS.
273         <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
274         <BUILT_IN_RINT{,F,L}>: Ditto.
275
276 2011-08-26  Michael Matz  <matz@suse.de>
277             Jakub Jelinek  <jakub@redhat.com>
278
279         PR lto/50165
280         * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
281         don't call strlen twice, use memcpy.
282
283 2011-08-26  H.J. Lu  <hongjiu.lu@intel.com>
284
285         * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
286         * config/i386/bmiintrin.h: Likewise.
287         * config/i386/lzcntintrin.h: Likewise.
288
289         * config/i386/immintrin.h: Include <lzcntintrin.h>,
290         <bmiintrin.h> and <bmi2intrin.h>.
291
292 2011-08-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
293
294         PR target/50166
295         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
296         * configure: Regenerate.
297
298 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
299
300         PR c/50179
301         * c-typeck.c (c_process_expr_stmt): Skip over nops and
302         call mark_exp_read even if exprv is ADDR_EXPR.
303
304 2011-08-26  Richard Sandiford  <richard.sandiford@linaro.org>
305
306         * df-problems.c (df_note_bb_compute): Pass uses rather than defs
307         to df_set_dead_notes_for_mw.
308
309 2011-08-26  Richard Guenther  <rguenther@suse.de>
310
311         * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
312
313 2011-08-26  Zdenek Dvorak  <ook@ucw.cz>
314             Tom de Vries  <tom@codesourcery.com>
315
316         * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
317         (struct ivopts_data): Add loop_single_exit_p field.
318         (niter_for_exit): Change parameter desc_p into return value.  Return
319         desc if desc->may_be_zero.  Free desc if unused.
320         (niter_for_single_dom_exit): Change return type.
321         (find_induction_variables): Handle changed return type of
322         niter_for_single_dom_exit.  Dump may_be_zero.
323         (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
324         (set_use_iv_cost): Add and handle comp parameter.
325         (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
326         comp argument to set_use_iv_cost.
327         (strip_wrap_conserving_type_conversions, expr_equal_p)
328         (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
329         (may_eliminate_iv): Add comp parameter.  Handle new return type of
330         niter_for_exit.  Use loop_single_exit_p.  Use iv_elimination_compare_lt.
331         (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
332         and may_eliminate_iv.
333         (rewrite_use_compare): Move call to iv_elimination_compare to ...
334         (may_eliminate_iv): Here.
335         (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
336
337 2011-08-26  Tom de Vries  <tom@codesourcery.com>
338
339         * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
340         accessing TREE_TYPE.
341
342 2011-08-26  Jiangning Liu  <jiangning.liu@arm.com>
343
344         * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
345         (*ior_scc_scc_cmp): Likewise
346         (*and_scc_scc): Likewise.
347         (*and_scc_scc_cmp): Likewise.
348         (*and_scc_scc_nodom): Likewise.
349         (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
350
351 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
352
353         * rtlanal.c (nonzero_bits1): Handle CLRSB.
354
355 2011-08-26  Richard Guenther  <rguenther@suse.de>
356
357         * expr.c (string_constant): Handle &MEM_REF.
358
359 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
360
361         * config/arm/arm.c (struct four_ints): New type.
362         (count_insns_for_constant): Delete function.
363         (find_best_start): Delete function.
364         (optimal_immediate_sequence): New function.
365         (optimal_immediate_sequence_1): New function.
366         (arm_gen_constant): Move constant splitting code to
367         optimal_immediate_sequence.
368         Rewrite constant negation/invertion code.
369
370 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
371
372         * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
373         * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
374         Remove prototype. Remove static function type.
375         * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
376         Add arch attribute.
377         * config/arm/constraints.md (Pj, PJ): New constraints.
378
379 2011-08-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
380
381         * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
382         ("cortex_a9_multiply_long"): New and use above.  Handle all
383         long multiply cases.
384         ("cortex_a9_multiply"): Handle smmul and smmulr.
385         ("cortex_a9_mac"): Handle smmla.
386
387 2011-08-25  Richard Henderson  <rth@redhat.com>
388
389         PR 50132
390         PR 49864
391         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
392         non-constant stack adjutment.
393         * expr.c (find_args_size_adjust): Break out from ...
394         (fixup_args_size_notes): ... here.
395         * rtl.h (find_args_size_adjust): Declare.
396
397 2011-08-25  Uros Bizjak  <ubizjak@gmail.com>
398
399         * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
400         sse4 and sse4_noavx.
401         (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
402         (*pushdf_rex64): Change Y2 register constraint to x.
403         (*movdf_internal_rex64): Ditto.
404         (*zero_extendsidi2_rex64): Ditto.
405         (*movdi_internal): Change Y2 register constraint to x
406         and update "isa" attribute.
407         (*pushdf): Ditto.
408         (*movdf internal): Ditto.
409         (zero_extendsidi2_1): Ditto.
410         (*truncdfdf_mixed): Ditto.
411         (*truncxfdf2_mixed): Ditto.
412         * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
413         register constraint to x.
414         (*movv2sf_internal_rex64): Ditto.
415         (*mov<mode>_internal): Change Y2 register constraint to x
416         and add "isa" attribute.
417         (*movv2sf_internal): Ditto.
418         (*vec_extractv2si_1): Ditto.
419         * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
420         constraints to x and update "isa" attribute.
421         (*vec_interleave_highv2df): Change Y3 registerconstraint
422         to x and update "isa" attribute.
423         (*vec_interleave_lowv2df): Ditto.
424         (*vec_concatv2df): Change Y2 register constraint to x and
425         update "isa" attribute.
426         (sse2_loadld): Ditto.
427         (*vec_extractv2di_1): Ditto.
428         (*vec_dupv4si): Ditto.
429         (*vec_dupv2di): Ditto.
430         (*vec_concatv4si): Ditto.
431         (vec_concatv2di): Ditto.
432         * config/i386/constraints.md (Y2): Remove.
433         (Y3): Ditto.
434         (Y4): Ditto.
435
436 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
437
438         * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
439         dump_def_use_chain): Don't declare.
440         (mark_conflict, create_new_chain): Move before users.
441         (regrename_optimize): Move to near end of file.
442
443 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
444
445         * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
446         (secondary_input_reload_class): Remove Prototype.
447         * config/avr/avr.c (byte_immediate_operand): Remove Function.
448         * config/avr/avr.md (setmemhi): Use u8_operand.
449         (strlenhi): Use const0_rtx for comparison.
450         * config/avr/avr.h (avr_reg_order): Remove Declaration.
451
452 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
453
454         * config/avr/avr.c (reg_class_tab): Make local to
455         avr_regno_reg_class.  Return smallest register class available.
456
457 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
458
459         * config/avr/avr.c (STR_PREFIX_P): New Define.
460         (avr_asm_declare_function_name): Use it.
461         (avr_asm_named_section): Use it.
462         (avr_section_type_flags): Use it.
463
464 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
465
466         * doc/md.texi (automata_option): Document collapse-ndfa.
467         * genautomata.c (COLLAPSE_OPTION): New macro.
468         (collapse_flag): New static variable.
469         (struct description): New member normal_decls_num.
470         (struct automaton): New members advance_ainsn and collapse_ainsn.
471         (gen_automata_option): Check for COLLAPSE_OPTION.
472         (collapse_ndfa_insn_decl): New static variable.
473         (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
474         (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
475         (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
476         necessary.  Use normal_decls_num rather than decls_num, remove
477         test for special decls.
478         (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
479         (make_automaton); Likewise.  Use the new advance_cycle_insn member
480         of struct automaton.
481         (create_composed_state): Disallow advance-cycle arcs if collapse_flag
482         is set.
483         (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
484         transition.  Create the necessary transitions for it.
485         (create_ainsns): Return void.  Take an automaton_t argument, and
486         update its ainsn_list, advance_ainsn and collapse_ainsn members.  All
487         callers changed.
488         (COLLAPSE_NDFA_VALUE_NAME): New macro.
489         (output_tables): Output code to define it.
490         (output_internal_insn_code_evaluation): Output code to accept
491         const0_rtx as collapse-ndfa transition.
492         (output_default_latencies, output_print_reservation_func,
493         output_print_description): Reorganize loops to use normal_decls_num
494         as loop bound; remove special case for advance_cycle_insn_decl.
495         (initiate_automaton_gen): Handle COLLAPSE_OPTION.
496         (check_automata_insn_issues): Check for collapse_ainsn.
497         (expand_automate): Allocate sufficient space.  Initialize
498         normal_decls_num.
499
500 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
501
502         * config/avr/avr.md: Fix indentation from r177991.
503
504 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
505
506         * regrename.c (struct du_head): Remove member terminated.
507         (create_new_chain): Don't initialize it.
508         (scan_rtx_reg): Don't set or test it, test the open_chains_set
509         bitmap instead.
510         (tick, this_tick): New global variables, moved out of
511         regrename_optimize.
512         (current_id, open_chains, closed_chains, open_chains_set,
513         live_in_chains, live_hard_regs): Reorder declarations.
514         (dump_def_use_chain): Move function earlier in the file.
515         (rename_chains): New static function, broken out of
516         regrename_optimize.
517         (regrename_optimize): Use it.  Remove #if 0'ed code.
518
519 2011-08-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
520
521         * varasm.c: (default_binds_local_p_1): Commentary typo fix.
522
523 2011-08-24  H.J. Lu  <hongjiu.lu@intel.com>
524
525         PR target/50172
526         * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
527
528 2011-08-24  Richard Guenther  <rguenther@suse.de>
529
530         * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
531         ref in the basic-block case.  Move stripping array-refs
532         to the place we create an access-function for it.  Remove
533         bogus stripping down a MEM_REF to its base.
534
535 2011-08-24  Richard Guenther  <rguenther@suse.de>
536
537         * fold-const.c (fold_comparison): Fold &a < &a + 4 even
538         with -fno-strict-overflow.
539
540 2011-08-24  Richard Guenther  <rguenther@suse.de>
541
542         * tree-vectorizer.c (vect_print_dump_info): Avoid the
543         file and location clutter when dumping to dump files.
544
545 2011-08-24  Simon Baldwin  <simonb@google.com>
546
547         * gengtype-state.c (write_state): Remove timestamped header line.
548
549 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
550
551         * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
552         (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
553         (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
554         (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
555         (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
556         (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
557         (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
558         rules.
559         (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
560
561 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
562
563         * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
564
565 2011-08-24  Richard Guenther  <rguenther@suse.de>
566
567         PR tree-optimization/50067
568         * tree-data-ref.c (dr_analyze_indices): Do not add an access
569         function for a MEM_REF base that has no evolution in the loop
570         nest or that is not analyzable.
571
572 2011-08-23  Vladimir Makarov  <vmakarov@redhat.com>
573
574         * ira.c (ira_init_register_move_cost): Check small subclasses
575         through ira_reg_class_max_nregs and ira_available_class_regs.
576
577 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
578
579         * config/i386/constraints.md (Yp): New register constraint.
580         * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
581         Yp register constraint.
582         (*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
583         (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
584         (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.
585
586 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
587
588         * config/i386/sse.md (<s>mul<mode>3_highpart): Update.
589
590 2011-08-23  Mark Heffernan  <meheff@google.com>
591
592         PR middle-end/38509
593         * common.opt (Wfree-nonheap-object): New option.
594         * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
595         * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
596         to warning.
597         (expand_builtin): Make warning conditional.
598
599 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
600
601         * config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
602         (length_immediate): Handle imulx, ishiftx and rotatex.
603         (imm_disp): Ditto.
604         (isa): Add bmi2.
605         (enabled): Handle bmi2.
606         (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
607         (*umul<mode><dwi>3): Ditto.  Add imulx BMI2 alternative.
608         (*bmi2_umulditi3_1): New insn pattern.
609         (*bmi2_umulsidi3_1): Ditto.
610         (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
611         (*bmi2_ashl<mode>3_1): New insn pattern.
612         (*ashl<mode>3_1): Add ishiftx BMI2 alternative.
613         (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
614         (*bmi2_ashlsi3_1_zext): New insn pattern.
615         (*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
616         (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
617         (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
618         (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
619         (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
620         flags dependency.
621         (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
622         (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
623         (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
624         flags dependency.
625         (*bmi2_rorx<mode>3_1): New insn pattern.
626         (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
627         (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
628         (*rotatert<mode>3_1 splitter): Ditto.
629         (*bmi2_rorxsi3_1_zext): New insn pattern.
630         (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
631         (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
632         (*rotatertsi3_1_zext splitter): Ditto.
633
634 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
635
636         * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
637         (OPTION_MASK_ISA_BMI2_UNSET): Likewise.
638         (ix86_handle_option): Handle OPT_mbmi2 case.
639         * config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
640         (x86_64-*-*): Likewise.
641         * config/i386/bmi2intrin.h: New file.
642         * config/i386/cpuid.h (bit_BMI2): New.
643         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
644         BMI2 feature.
645         * config/i386/i386-c.c (ix86_target_macros_internal):
646         Conditionally define __BMI2__.
647         * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
648         Handle BMI2 option.
649         (ix86_valid_target_attribute_inner_p): Handle BMI2 option.
650         (print_reg): New code.
651         (ix86_print_operand): Likewise.
652         (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
653         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
654         IX86_BUILTIN_PEXT64.
655         (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
656         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
657         IX86_BUILTIN_PEXT64.
658         * config/i386/i386.h (TARGET_BMI2): New.
659         * config/i386/i386.md (UNSPEC_PDEP): New.
660         (UNSPEC_PEXT): Likewise.
661         (*bmi2_bzhi_<mode>3): Likewise.
662         (*bmi2_pdep_<mode>3): Likewise.
663         (*bmi2_pext_<mode>3): Likewise.
664         * config/i386/i386.opt (mbmi2): New.
665         * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
666         is defined.
667         * doc/extend.texi: Document BMI2 built-in functions.
668         * doc/invoke.texi: Document -mbmi2.
669
670 2011-08-23  Jakub Jelinek  <jakub@redhat.com>
671
672         PR middle-end/50161
673         * simplify-rtx.c (simplify_const_unary_operation): If
674         op is CONST_INT, don't look at op_mode, but use instead mode.
675         * optabs.c (add_equal_note): For FFS, CLZ, CTZ,
676         CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
677         operation and TRUNCATE/ZERO_EXTEND if needed.
678         * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
679         Document that operand mode must be same as operation mode,
680         or VOIDmode.
681         * config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
682         *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
683         *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
684         *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
685         use the mode of operand for the operation and add truncate
686         or zero_extend around if needed.
687         * config/c6x/c6x.md (ctzdi2): Likewise.
688         * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
689
690 2011-08-12  Michael Matz  <matz@suse.de>
691
692         * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
693         (gimple_expand_cfg): Merge alignment info for coalesced pointer
694         SSA names.
695
696 2011-08-23  Richard Guenther  <rguenther@suse.de>
697
698         * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
699         * tree-affine.h (aff_comb_cannot_overlap_p): Declare.
700         * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
701         from ...
702         * tree-ssa-loop-im.c (cannot_overlap_p): ... here.
703         (mem_refs_may_alias_p): Adjust.
704         * tree-data-ref.h (dr_may_alias_p): Adjust.
705         * tree-data-ref.c: Include tree-affine.h.
706         (dr_analyze_indices): Do nothing for the non-loop case.
707         (dr_may_alias_p): Distinguish loop and non-loop case.  Disambiguate
708         more cases in the non-loop case.
709         * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
710         calls to dr_may_alias_p.
711         (write_alias_graph_to_ascii_ecc): Likewise.
712         (write_alias_graph_to_ascii_dot): Likewise.
713         (build_alias_set_optimal_p): Likewise.
714
715 2011-08-23  Richard Guenther  <rguenther@suse.de>
716
717         PR tree-optimization/50162
718         * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
719
720 2011-08-23  Richard Guenther  <rguenther@suse.de>
721
722         * tree-data-ref.c (dr_analyze_indices): Add comments, handle
723         REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
724         (create_data_ref): Also dump access functions for the created data-ref.
725
726 2011-08-22  Uros Bizjak  <ubizjak@gmail.com>
727             Kirill Yukhin  <kirill.yukhin@intel.com>
728
729         PR target/50155
730         * config/i386/sse.md (VI_AVX2): New.
731         (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
732         (*<plusminus_insn><mode>3): Ditto.
733         (<sse2_avx2>_andnot<mode>3): Ditto.
734         (*andnot<mode>3): Fix order of cond operands.
735         Add asserts for correct TARGET_xxx.
736         (*<any_logic:code><mode>3): Ditto.
737
738 2011-08-22  Anatoly Sokolov  <aesok@post.ru>
739
740         * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
741         * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
742         * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
743         regclass argument type to reg_class_t. Change 'max' and 'v' vars
744         and return types to unsigned char. Use reg_class_contents instead
745         of class_contents.
746         (TARGET_CLASS_MAX_NREGS): Define.
747
748 2011-08-22  Bernd Schmidt  <bernds@codesourcery.com>
749
750         * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
751         to make computed_jump_p return true.
752
753 2011-08-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
754
755         * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
756         (PICFLAG_FOR_TARGET): Substitute.
757         * aclocal.m4: Regenerate.
758         * configure: Regenerate.
759
760 2011-08-22  Dodji Seketeli  <dodji@redhat.com>
761
762         * c-family/c-pch.c (c_common_read_pch): Re-set line table right
763         after reading in the pch.
764
765 2011-08-22  H.J. Lu  <hongjiu.lu@intel.com>
766
767         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
768         * configure: Regenerated.
769
770 2011-08-22  Jakub Jelinek  <jakub@redhat.com>
771
772         PR tree-optimization/50133
773         * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
774         from stmt instead of some statement around gsi.
775
776         PR middle-end/50141
777         * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
778         innerdecl is a VAR_DECL.
779
780 2011-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
781
782         * config/i386/avx2intrin.h: New file.
783         * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
784         PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
785         V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
786         V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
787         V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
788         V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
789         V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
790         V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
791         V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
792         V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
793         V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
794         V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
795         V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
796         V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
797         V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
798         V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
799         V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
800         V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
801         VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
802         VOID_FTYPE_PV8SI_V8SI_V8SI,
803         V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
804         V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
805         V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
806         V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
807         V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
808         V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
809         V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
810         V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
811         V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
812         V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
813         V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
814         V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
815         V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
816         V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
817         V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
818         V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
819         V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
820         V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
821         V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
822         V4DI_FTYPE_V4DI_INT_CONVERT,
823         V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
824         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
825         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
826         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
827         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
828         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
829         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
830         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
831         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
832         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
833         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
834         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
835         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
836         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
837         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
838         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
839         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
840         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
841         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
842         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
843         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
844         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
845         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
846         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
847         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
848         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
849         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
850         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
851         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
852         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
853         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
854         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
855         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
856         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
857         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
858         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
859         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
860         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
861         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
862         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
863         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
864         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
865         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
866         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
867         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
868         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
869         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
870         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
871         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
872         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
873         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
874         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
875         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
876         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
877         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
878         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
879         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
880         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
881         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
882         IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
883         IX86_BUILTIN_VBROADCASTSS_PS256,
884         IX86_BUILTIN_VBROADCASTSD_PD256,
885         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
886         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
887         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
888         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
889         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
890         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
891         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
892         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
893         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
894         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
895         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
896         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
897         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
898         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
899         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
900         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
901         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
902         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
903         IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
904         IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
905         IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
906         IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
907         IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
908         IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
909         IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
910         IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
911         (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
912         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
913         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
914         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
915         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
916         (bdesc_args): Add  IX86_BUILTIN_MPSADBW256,
917         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
918         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
919         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
920         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
921         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
922         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
923         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
924         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
925         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
926         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
927         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
928         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
929         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
930         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
931         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
932         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
933         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
934         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
935         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
936         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
937         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
938         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
939         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
940         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
941         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
942         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
943         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
944         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
945         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
946         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
947         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
948         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
949         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
950         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
951         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
952         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
953         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
954         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
955         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
956         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
957         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
958         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
959         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
960         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
961         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
962         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
963         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
964         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
965         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
966         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
967         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
968         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
969         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
970         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
971         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
972         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
973         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
974         IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
975         IX86_BUILTIN_VBROADCASTSD_PD256,
976         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
977         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
978         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
979         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
980         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
981         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
982         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
983         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
984         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
985         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
986         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
987         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
988         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
989         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
990         (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
991         IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
992         IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
993         IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
994         IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
995         IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
996         IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
997         IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
998         IX86_BUILTIN_GATHERDIV8SI.
999         (ix86_preferred_simd_mode): Support AVX2 modes.
1000         (ix86_expand_args_builtin): Support AVX2 builtins.
1001         (ix86_expand_special_args_builtin): Likewise.
1002         (ix86_expand_builtin): Likewise.
1003         * config/i386/i386.md (UNSPEC_VPERMSI): New.
1004         (UNSPEC_VPERMDF): Likewise.
1005         (UNSPEC_VPERMSF): Likewise.
1006         (UNSPEC_VPERMDI): Likewise.
1007         (UNSPEC_VPERMTI): Likewise.
1008         (UNSPEC_GATHER): Likewise.
1009         (ssemodesuffix): Extend.
1010         * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
1011         is defined.
1012         * config/i386/predicates.md (const1248_operand): New.
1013         * config/i386/sse.md (VI1_AVX2): New mode iterator.
1014         (VI2_AVX2): Likewise.
1015         (VI4_AVX2): Likewise.
1016         (VI8_AVX2): Likewise.
1017         (VIMAX_AVX2): Likewise.
1018         (SSESCALARMODE): Likewise.
1019         (VI12_AVX2): Likewise.
1020         (VI24_AVX2): Likewise.
1021         (VI124_AVX2): Likewise.
1022         (VI248_AVX2): Likewise.
1023         (VI48_AVX2): Likewise.
1024         (VI4SD_AVX2): Likewise.
1025         (V48_AVX2): Likewise.
1026         (AVX256MODE2P): Likewise.
1027         (AVXMODE48P_DI): Likewise.
1028         (sse2_avx2): New mode attribute.
1029         (ssse3_avx2): Likewise.
1030         (sse4_1_avx2): Likewise.
1031         (avx_avx2): Likewise.
1032         (ssebytemode): Likewise.
1033         (AVXTOSSEMODE): Likewise.
1034         (AVXMODE48P_DI): Likewise.
1035         (gthrfirstp): Likewise.
1036         (gthrlastp): Likewise.
1037         (lshift): New code_iterator
1038         (lshift): New code attribute.
1039         (lshift): Likewise.
1040         (ssescalarmodesuffix): Update.
1041         (sseunpackmode): Likewise.
1042         (ssepackmode): Likewise.
1043         (avx2_vec_dupv4sf): New insn pattern.
1044         (avx2_vec_dupv8sf): Likewise.
1045         (avx2_interleave_highv4di): Likewise.
1046         (avx2_interleave_lowv4di): Likewise.
1047         (avx2_umulv4siv4di3): Likewise
1048         (*avx2_umulv4siv4di3): Likewise
1049         (avx2_pmaddwd): Likewise.
1050         (*avx2_pmaddwd): Likewise.
1051         (avx2_lshrqv4di3): Likewise.
1052         (avx2_lshlqv4di3): Likewise.
1053         (avx2_lshl<mode>3): Likewise.
1054         (avx2_<umaxmin:code><mode>3): Likewise.
1055         (*avx2_<umaxmin:code><mode>3): Likewise.
1056         (avx2_<smaxmin:code><mode>3): Likewise.
1057         (*avx2_<smaxmin:code><mode>3): Likewise.
1058         (avx2_eq<mode>3): Likewise.
1059         (*avx2_eq<mode>3): Likewise.
1060         (avx2_gt<mode>3): Likewise.
1061         (avx2_interleave_highv32qi): New.
1062         (avx2_interleave_lowv32qi): Likewise.
1063         (avx2_interleave_highv16hi): Likewise.
1064         (avx2_interleave_lowv16hi): Likewise.
1065         (avx2_interleave_highv8si): Likewise.
1066         (avx2_interleave_lowv8si): Likewise.
1067         (avx2_pshufd): Likewise.
1068         (avx2_pshufd_1): Likewise.
1069         (avx2_pshuflwv3): Likewise.
1070         (avx2_pshuflw_1): Likewise.
1071         (avx2_pshufhwv3): Likewise.
1072         (avx2_pshufhw_1): Likewise.
1073         (avx2_uavgv32qi3): Likewise.
1074         (*avx2_uavgv32qi3): Likewise.
1075         (avx2_uavgv16hi3): Likewise.
1076         (*avx2_uavgv16hi3): Likewise.
1077         (avx2_pmovmskb): Likewise.
1078         (avx2_phaddwv16hi3): Likewise.
1079         (avx2_phadddv8si3): Likewise.
1080         (avx2_phaddswv16hi3): Likewise.
1081         (avx2_phsubwv16hi3): Likewise.
1082         (avx2_phsubdv8si3): Likewise.
1083         (avx2_phsubswv16hi3): Likewise.
1084         (avx2_pmaddubsw256): Likewise.
1085         (avx2_umulhrswv16hi3): Likewise.
1086         (*avx2_umulhrswv16hi3): Likewise.
1087         (avx2_packusdw): Likewise.
1088         (avx2_pblendd<mode>): Likewise.
1089         (avx2_<code>v16qiv16hi2): Likewise.
1090         (avx2_<code>v8qiv8si2): Likewise.
1091         (avx2_<code>v8hiv8si2): Likewise.
1092         (avx2_<code>v4qiv4di2): Likewise.
1093         (avx2_<code>v4hiv4di2): Likewise.
1094         (avx2_<code>v4siv4di2): Likewise.
1095         (avx2_pbroadcast<mode>): Likewise.
1096         (avx2_permvarv8si): Likewise.
1097         (avx2_permv4df): Likewise.
1098         (avx2_permvarv8sf): Likewise.
1099         (avx2_permv4di): Likewise.
1100         (avx2_permv2ti): Likewise.
1101         (avx2_vec_dupv4df): Likewise.
1102         (avx2_vbroadcasti128_<mode>): Likewise.
1103         (avx2_vec_set_lo_v4di): Likewise.
1104         (avx2_vec_set_hi_v4di): Likewise.
1105         (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
1106         (avx2_extracti128): Likewise.
1107         (avx2_inserti128): Likewise.
1108         (avx2_ashrvv8si): Likewise.
1109         (avx2_ashrvv4si): Likewise.
1110         (avx2_<lshift>vv8si): Likewise.
1111         (avx2_<lshift>v<mode>): Likewise.
1112         (avx2_<lshift>vv2di): Likewise.
1113         (avx2_gathersi<mode>): Likewise.
1114         (*avx2_gathersi<mode>): Likewise.
1115         (avx2_gatherdi<mode>): Likewise.
1116         (*avx2_gatherdi<mode>): Likewise.
1117         (avx2_gatherdi<mode>256): Likewise.
1118         (*avx2_gatherdi<mode>256): Likewise.
1119         (<plusminus_insn><mode>3): Use VI mode iterator.
1120         (*<plusminus_insn><mode>3): Use VI mode iterator.
1121         (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
1122         sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
1123         (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
1124         *sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
1125         (mul<mode>3): Rename from mulv8hi3.  Use VI2_AVX2 mode iterator.
1126         (*mul<mode>3): Rename from *mulv8hi3.  Use VI2_AVX2 mode iterator.
1127         (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
1128         Use VI2_AVX2 mode iterator.
1129         (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
1130         Use VI2_AVX2 mode iterator.
1131         (mul<mode>3): Rename from mulv4si3.  Use VI4_AVX2 mode iterator.
1132         (*mul<mode>3): Rename from *mulv4si3.  Use VI4_AVX2 mode iterator.
1133         (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
1134         Use VI4_AVX2 mode iterator.
1135         (ashr<mode>3): Use VI24_AVX2 mode iterator.
1136         (lshr<mode>3): Use VI248_AVX2 mode iterator.
1137         (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
1138         Use VIMAX_AVX2 mode iterator.
1139         (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
1140         Use VI mode iterator.
1141         (*andnot<mode>3): Update for AVX2.
1142         (*<any_logic:code><mode>3): Likewise.
1143         (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
1144         Use VI1_AVX mode iterator.
1145         (<sse2_avx2>_packssdw):  Rename from sse2_packssdw.
1146         Use VI2_AVX mode iterator.
1147         (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
1148         Use VI1_AVX mode iterator.
1149         (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
1150         Use VI8_AVX2 mode iterator.
1151         (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
1152         Use VI1_AVX2 mode iterator.
1153         (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
1154         Use VI124_AVX2 mode iterator.
1155         (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
1156         Use SSESCALARMODE mode iterator.
1157         (abs<mode>2): Use VI124_AVX2 mode iterator.
1158         (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
1159         Use VI8_AVX2 mode iterator.
1160         (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
1161         Use VI1_AVX2 mode iterator.
1162         (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
1163         Use VI1_AVX2 mode iterator.
1164         (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
1165         Use VI2_AVX2 mode iterator.
1166         (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
1167         avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
1168         (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
1169         avx_maskstore<ssemodesuffix><avxsizesuffix>.
1170         Use V48_AVX2 mode iterator.
1171         * doc/extend.texi: Document AVX2 built-in functions.
1172         * doc/invoke.texi: Document -mavx2.
1173
1174 2011-08-22  Matthias Klose <doko@debian.org>
1175
1176         Revert:
1177         2011-07-11  Arthur Loiret  <aloiret@debian.org>
1178                     Matthias Klose <doko@debian.org>
1179         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
1180         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
1181         convention.
1182         * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
1183
1184 2011-08-22  Mikael Pettersson  <mikpe@it.uu.se>
1185
1186         PR bootstrap/50146
1187         * ira-color.c (assign_hard_reg): Move saved_nregs declaration
1188         to #ifndef HONOR_REG_ALLOC_ORDER block.
1189
1190 2011-08-21  Richard Henderson  <rth@redhat.com>
1191
1192         * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
1193         * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
1194         * resource.c (next_insn_no_annul): Likewise.
1195         (mark_set_resources): Likewise.
1196         * reorg.c (delete_from_delay_slot): Likewise.
1197         (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
1198         (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
1199
1200 2011-08-21  Uros Bizjak  <ubizjak@gmail.com>
1201
1202         * config/i386/i386.md (any_div): Remove.
1203         (sgnprefix): Update for removal.
1204         (u): Ditto.
1205
1206 2011-08-20  Vladimir Makarov  <vmakarov@redhat.com>
1207
1208         * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
1209         for ira_reg_class_max_nregs.  Increase pressure by 1.
1210         (mark_pseudo_regno_subword_dead): Use allocno class
1211         for ira_reg_class_max_nregs.
1212
1213 2011-08-20  Richard Henderson  <rth@redhat.com>
1214
1215         * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
1216         config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
1217         config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
1218         config/c6x/ltf.c: Adjust include path for soft-fp.
1219
1220 2011-08-20  H.J. Lu  <hongjiu.lu@intel.com>
1221
1222         PR other/46770
1223         * config.gcc (tm_file): Add initfini-array.h if
1224         .init_arrary/.fini_array are supported.
1225
1226         * crtstuff.c: Don't generate .ctors nor .dtors sections if
1227         USE_INITFINI_ARRAY is defined.
1228
1229         * output.h (default_elf_init_array_asm_out_constructor): New.
1230         (default_elf_fini_array_asm_out_destructor): Likewise.
1231         * varasm.c (elf_init_array_section): Likewise.
1232         (elf_fini_array_section): Likewise.
1233         (get_elf_initfini_array_priority_section): Likewise.
1234         (default_elf_init_array_asm_out_constructor): Likewise.
1235         (default_elf_fini_array_asm_out_destructor): Likewise.
1236
1237         * config/initfini-array.h: New.
1238
1239 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
1240
1241         * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
1242         OK for ST_REGS and FP_REGS before taking those classes into account.
1243
1244 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
1245
1246         * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
1247         before checking for annulled branches.
1248
1249 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
1250
1251         * config/i386/i386.c (ix86_binary_operator_ok): Use
1252         satisfies_constraint_L.
1253
1254 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
1255             Michael Matz  <matz@suse.de>
1256
1257         * config/i386/i386.c (ix86_expand_round_sse4): Expand as
1258         trunc (a + copysign (nextafter (0.5, 0.0), a)).
1259
1260 2011-08-20  Anatoly Sokolov  <aesok@post.ru>
1261
1262         * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
1263         * doc/tm.texi: Regenerate.
1264         * targhooks.c (default_preferred_output_reload_class): Don't use
1265         PREFERRED_OUTPUT_RELOAD_CLASS macro.
1266         * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
1267
1268 2011-08-20  Jakub Jelinek  <jakub@redhat.com>
1269
1270         PR tree-optimization/48739
1271         * tree-ssa.c: Include cfgloop.h.
1272         (execute_update_addresses_taken): When updating ssa, if in loop closed
1273         SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
1274         * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
1275
1276 2011-08-19  Vladimir Makarov  <vmakarov@redhat.com>
1277
1278         PR rtl-optimization/49936
1279         * ira.c (ira_init_register_move_cost): Ignore too small subclasses
1280         for calculation of max register move costs.
1281
1282 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
1283
1284         * c-parser.c (c_parser_postfix_expression): Convert operands of
1285         __builtin_complex to their semantic types.
1286
1287 2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
1288
1289         PR middle-end/49721
1290         * explow.c (convert_memory_address_addr_space): Also permute the
1291         conversion and addition of constant for zero-extend.
1292
1293 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
1294
1295         * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
1296         * doc/extend.texi (__builtin_complex): Document.
1297
1298 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1299
1300         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
1301         beyond conversions.
1302         (convert_mult_to_widen): Convert constant inputs to the right type.
1303         (convert_plusminus_to_widen): Don't automatically reject inputs that
1304         are not an SSA_NAME.
1305         Convert constant inputs to the right type.
1306
1307 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1308
1309         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
1310         to the correct type.
1311
1312 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1313
1314         * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
1315         unsigned inputs of different modes.
1316         (convert_plusminus_to_widen): Likewise.
1317
1318 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1319
1320         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
1321         'type'.
1322         Use 'type' from caller, not inferred from 'rhs'.
1323         Don't reject non-conversion statements. Do return lhs in this case.
1324         (is_widening_mult_p): Add new argument 'type'.
1325         Use 'type' from caller, not inferred from 'stmt'.
1326         Pass type to is_widening_mult_rhs_p.
1327         (convert_mult_to_widen): Pass type to is_widening_mult_p.
1328         (convert_plusminus_to_widen): Likewise.
1329
1330 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1331
1332         * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
1333         Ensure the the larger type is the first operand.
1334
1335 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1336
1337         * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
1338         unsupported unsigned multiplies to signed.
1339         (convert_plusminus_to_widen): Likewise.
1340
1341 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1342
1343         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
1344         conversion statement separating multiply-and-accumulate.
1345
1346 2011-08-19  Richard Guenther  <rguenther@suse.de>
1347
1348         PR tree-optimization/50067
1349         * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
1350         offset only if we accounted for it.
1351
1352 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1353
1354         * config/arm/arm.md (maddhidi4): Remove '*' from name.
1355         * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
1356         * optabs.c (find_widening_optab_handler_and_mode): New function.
1357         (expand_widen_pattern_expr): Use find_widening_optab_handler.
1358         (expand_binop_directly): Likewise.
1359         (expand_binop): Likewise.
1360         * optabs.h (find_widening_optab_handler): New macro define.
1361         (find_widening_optab_handler_and_mode): New prototype.
1362         * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
1363         type precision rules.
1364         (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
1365         * tree-ssa-math-opts.c (build_and_insert_cast): New function.
1366         (is_widening_mult_rhs_p): Allow widening by more than one mode.
1367         Explicitly disallow mis-matched input types.
1368         (convert_mult_to_widen): Use find_widening_optab_handler, and cast
1369         input types to fit the new handler.
1370         (convert_plusminus_to_widen): Likewise.
1371
1372 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1373
1374         * expr.c (expand_expr_real_2): Use widening_optab_handler.
1375         * genopinit.c (optabs): Use set_widening_optab_handler for $N.
1376         (gen_insn): $N now means $a must be wider than $b, not consecutive.
1377         * optabs.c (widened_mode): New function.
1378         (expand_widen_pattern_expr): Use widening_optab_handler.
1379         (expand_binop_directly): Likewise.
1380         (expand_binop): Likewise.
1381         * optabs.h (widening_optab_handlers): New struct.
1382         (optab_d): New member, 'widening'.
1383         (widening_optab_handler): New function.
1384         (set_widening_optab_handler): New function.
1385         * tree-ssa-math-opts.c (convert_mult_to_widen): Use
1386         widening_optab_handler.
1387         (convert_plusminus_to_widen): Likewise.
1388
1389 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
1390
1391         * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
1392         pedantic.
1393         * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
1394         * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
1395
1396 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
1397
1398         * opth-gen.awk: Do not declare target save/restore structures and
1399         functions if IN_RTS defined.
1400
1401 2011-08-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
1402
1403         PR target/49437
1404         * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
1405         when stack was realigned in interrupt handler prologue.
1406
1407 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
1408
1409         * c-decl.c (shadow_tag_warned): Check for _Noreturn.
1410         (quals_from_declspecs): Assert _Noreturn not present.
1411         (grokdeclarator): Handle _Noreturn.
1412         (build_null_declspecs): Initialize noreturn_p.
1413         (declspecs_add_scspec): Handle RID_NORETURN.
1414         * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
1415         (c_parser_attributes): Handle RID_NORETURN.
1416         * c-tree.h (struct c_declspecs): Add noreturn_p.
1417         * ginclude/stdnoreturn.h: New.
1418         * Makefile.in (USER_H): Add stdnoreturn.h.
1419
1420 2011-08-18  Kirill Yukhin  <kirill.yukhin@intel.com>
1421
1422         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
1423         (OPTION_MASK_ISA_AVX_UNSET): Update.
1424         (OPTION_MASK_ISA_AVX2_UNSET): New.
1425         (ix86_handle_option): Handle OPT_mavx2 case.
1426         * config/i386/cpuid.h (bit_AVX2): New.
1427         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1428         AVX2 feature.
1429         * config/i386/i386-c.c (ix86_target_macros_internal):
1430         Conditionally define __AVX2__.
1431         * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
1432         Define "core-avx2" processor alias.  Handle avx2 option.
1433         (ix86_valid_target_attribute_inner_p): Handle avx2 option.
1434         * config/i386/i386.h (TARGET_AVX2): New.
1435         * config/i386/i386.opt (mavx2): New.
1436         * doc/invoke.texi: Document -mavx2.
1437
1438 2011-08-18  Vladimir Makarov  <vmakarov@redhat.com>
1439
1440         PR rtl-optimization/49890
1441         * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
1442         subclasses of class which is superset of a pressure class.
1443
1444 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
1445             Igor Zamyatin <igor.zamyatin@intel.com>
1446
1447         * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
1448         with HOST_WIDE_INT for isa_flag.
1449         (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
1450         isa variables.
1451
1452         * config/i386/i386.c (ix86_target_string): Replace int with
1453         HOST_WIDE_INT for isa.  Use HOST_WIDE_INT_PRINT to print isa.
1454         (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
1455         (pta_flags): Removed.
1456         (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
1457         (pta): Use HOST_WIDE_INT on flags.
1458         (builtin_isa): Use HOST_WIDE_INT on isa.
1459         (ix86_add_new_builtins): Likewise.
1460         (def_builtin): Use HOST_WIDE_INT on mask.
1461         (def_builtin_const): Likewise.
1462         (builtin_description): Likewise.
1463
1464         * config/i386/i386.opt (ix86_isa_flags): Replace int with
1465         HOST_WIDE_INT.
1466         (ix86_isa_flags_explicit): Likewise.
1467         (x_ix86_isa_flags_explicit): Likewise.
1468
1469 2011-08-17  Vladimir Makarov  <vmakarov@redhat.com>
1470
1471         PR rtl-optimization/50107
1472         * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
1473         (ira_hard_reg_in_set_p): New.
1474
1475         * ira-color.c (calculate_saved_nregs): New.
1476         (assign_hard_reg): Use it.  Set up allocated_hard_reg_p for all
1477         hard regs.
1478         (allocno_reload_assign, fast_allocation): Use
1479         ira_hard_reg_set_intersection_p instead of
1480         ira_hard_reg_not_in_set_p.
1481
1482         * ira.c (setup_reg_renumber): Use
1483         ira_hard_reg_set_intersection_p instead of
1484         ira_hard_reg_not_in_set_p.
1485         (setup_allocno_assignment_flags, calculate_allocation_cost): Use
1486         ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
1487
1488         * ira-costs.c (ira_tune_allocno_costs): Use
1489         ira_hard_reg_set_intersection_p instead of
1490         ira_hard_reg_not_in_set_p.
1491
1492 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
1493             Igor Zamyatin <igor.zamyatin@intel.com>
1494
1495         * hwint.h (HOST_WIDE_INT_1): New.
1496
1497         * opt-functions.awk (switch_bit_fields): Initialize the
1498         host_wide_int field.
1499         (host_wide_int_var_name): New.
1500         (var_type_struct): Check and return HOST_WIDE_INT.
1501
1502         * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
1503
1504         * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
1505
1506         * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT.  Properly
1507         check masks for HOST_WIDE_INT.
1508
1509         * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
1510         (option_enabled): Likewise.
1511         (get_option_state): Likewise.
1512
1513         * opts.h (cl_option): Add cl_host_wide_int.  Change var_value
1514         to HOST_WIDE_INT.
1515
1516 2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1517             Marc Glisse  <marc.glisse@normalesup.org>
1518
1519         PR libstdc++-v3/1773
1520         * target.def (decl_mangling_context): New C++ hook.
1521         * doc/tm.texi: Regenerate.
1522         * config/sol2-cxx.c, config/sol2-stubs.c: New files.
1523         * config/sol2-protos.h: Group by source file.
1524         (solaris_cxx_decl_mangling_context): Declare.
1525         * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
1526         * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
1527         Use $<.
1528         * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
1529         Add sol2-stubs.o to extra_objs.
1530
1531 2011-08-18  Jakub Jelinek  <jakub@redhat.com>
1532
1533         PR target/50009
1534         * stor-layout.c (update_alignment_for_field): Don't ICE on
1535         packed flexible array members if ms_bitfield_layout_p.
1536
1537         PR target/50092
1538         * config/i386/i386.c (assign_386_stack_local): Call validize_mem
1539         on the result before returning it.
1540
1541         PR debug/50017
1542         * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
1543         is a debug stmt, use location of the first non-debug stmt after it.
1544
1545 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
1546
1547         * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
1548         (arm_size_rtx_costs): Likewise.
1549
1550 2011-08-18  Richard Guenther  <rguenther@suse.de>
1551
1552         * tree.h (tree_int_cst_msb): Remove.
1553         * tree.c (tree_int_cst_msb): Likewise.
1554         (tree_int_cst_sign_bit): Move from ...
1555         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
1556
1557 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
1558
1559         * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
1560         * doc/tm.texi: Regenerate.
1561         * target.def (rtx_costs): Add an opno parameter.
1562         * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
1563         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
1564         * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
1565         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
1566         * cse.c (COST_IN): Add an opno parameter.
1567         (notreg_cost): Likewise.  Update call to rtx_cost.
1568         (COST, fold_rtx): Update accordingly.
1569         * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
1570         * expmed.c (emit_store_flag): Likewise.
1571         * optabs.c (avoid_expensive_constant): Add an opno parameter.
1572         Update call to rtx_cost.
1573         (expand_binop_directly, expand_binop): Likewise.
1574         (expand_twoval_binop, prepare_cmp_insn): Likewise.
1575         * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
1576         (set_src_cost, get_full_set_src_cost): Update accordingly.
1577         * rtlanal.c (rtx_cost): Add an opno parameter.  Update call
1578         to target hook.
1579         (get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
1580         (default_adress_cost): Update calls to rtx_cost.
1581
1582         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
1583         (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
1584         (arm_rtx_costs): Add an opno parameter.
1585         * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
1586         adjust any recursive rtx-cost calls.
1587         * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
1588         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
1589         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
1590         * config/cris/cris.c (cris_rtx_costs): Likewise.
1591         * config/frv/frv.c (frv_rtx_costs): Likewise.
1592         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
1593         * config/i386/i386.c (ix86_rtx_costs): Likewise.
1594         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
1595         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
1596         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
1597         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
1598         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
1599         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
1600         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
1601         * config/mep/mep.c (mep_rtx_cost): Likewise.
1602         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
1603         * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
1604         (mips_zero_extend_cost): Add an opno parameter.
1605         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
1606         * config/mn10300/mn10300.c (mn10300_address_cost): Update call
1607         to rtx_cost.
1608         (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
1609         rtx-cost calls.
1610         * config/pa/pa.c (hppa_rtx_costs): Likewise.
1611         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
1612         * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
1613         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
1614         (rs6000_debug_rtx_costs): Likewise.
1615         * config/s390/s390.c (s390_rtx_costs): Likewise.
1616         * config/score/score-protos.h (score_rtx_costs): Likewise.
1617         * config/score/score.c (score_rtx_costs): Likewise.
1618         * config/sh/sh.c (andcosts): Update call to rtx_cost.
1619         (sh_rtx_costs): Add an opno parameter.
1620         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
1621         * config/spu/spu.c (spu_rtx_costs): Likewise.
1622         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
1623         * config/v850/v850.c (v850_rtx_costs): Likewise.
1624         * config/vax/vax.c (vax_rtx_costs): Likewise.
1625         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
1626
1627 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
1628
1629         * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
1630         * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
1631         rtx_cost.
1632         * calls.c (precompute_register_parameters): Likewise.
1633         * combine.c (expand_compound_operation, make_extraction): Likewise.
1634         (force_to_mode, distribute_and_simplify_rtx): Likewise.
1635         * dse.c (find_shift_sequence): Likewise.
1636         * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
1637         * expr.c (compress_float_constant): Likewise.
1638         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
1639         * gcse.c (want_to_gcse_p): Likewise.
1640         * ifcvt.c (noce_try_sign_mask): Likewise.
1641         * loop-doloop.c (doloop_optimize): Likewise.
1642         * loop-invariant.c (create_new_invariant): Likewise.
1643         * optabs.c (avoid_expensive_constant): Likewise.
1644         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
1645         (try_replace_in_use, reload_cse_move2add): Likewise.
1646         * reload1.c (calculate_elim_costs_all_insns): Likewise.
1647         (note_reg_elim_costly): Likewise.
1648         * rtlanal.c (insn_rtx_cost): Likewise.
1649         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
1650         * stmt.c (lshift_cheap_p): Likewise.
1651         * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
1652         * config/avr/avr.c (final_prescan_insn): Likewise.
1653         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
1654         * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
1655
1656 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
1657
1658         * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
1659         * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
1660         * cfgloopanal.c (seq_cost): Likewise.
1661         * loop-invariant.c (create_new_invariant): Likewise.
1662         * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
1663         (reload_cse_move2add): Use get_full_set_rtx_cost.
1664
1665 2011-08-18  Richard Guenther  <rguenther@suse.de>
1666
1667         * expr.c (get_inner_reference): Fix typo in last change.
1668
1669 2011-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
1670             Joseph Myers  <joseph@codesourcery.com>
1671
1672         PR tree-optimization/49963
1673         * hwint.c (absu_hwi): Define.
1674         * hwint.h (absu_hwi): Declare.
1675         * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
1676         of abs_hwi.
1677         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
1678         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
1679
1680 2011-08-18  Richard Guenther  <rguenther@suse.de>
1681
1682         * expr.c (get_inner_reference): Sign-extend the constant
1683         twos-complement offset before doing arbitrary precision
1684         arithmetic on it.
1685         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
1686         (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
1687         to get_constraint_for_ptr_offset.
1688
1689 2011-08-17  Kaz Kojima  <kkojima@gcc.gnu.org>
1690
1691         PR target/50068
1692         * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
1693
1694 2011-08-17  Richard Guenther  <rguenther@suse.de>
1695
1696         * tree.h (convert_to_ptrofftype_loc): New function.
1697         (convert_to_ptrofftype): Define.
1698         * builtins.c (expand_builtin_bzero): Use size_type_node.
1699         (fold_builtin_bzero): Likewise.
1700         (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
1701         * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
1702         * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
1703         (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
1704         * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
1705         * fold-const.c (build_range_check): Negate using the original type.
1706         (fold_unary_loc): Use fold_build_pointer_plus_loc.
1707         * gimple-fold.c (gimple_adjust_this_by_delta): Use
1708         convert_to_ptrofftype.
1709         * gimplify.c (gimplify_self_mod_expr): Likewise.
1710         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
1711         (graphite_create_new_loop_guard): Likewise.
1712         * graphite-sese-to-poly.c (my_long_long): Remove.
1713         (scop_ivs_can_be_represented): Adjust.
1714         * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
1715         * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
1716         * tree-loop-distribution.c (build_size_arg_loc): Use
1717         size_type_node.
1718         (generate_memset_zero): Simplify.
1719         * tree-mudflap.c: Use fold_convert, not convert.
1720         * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
1721         its own type.
1722         (determine_offset): Likewise for DR_STEP.
1723         (valid_initializer_p): Likewise.
1724         * tree-profile.c (prepare_instrumented_value): Convert the pointer
1725         to an integer type of same size.
1726         * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
1727         to sizetype without need.
1728         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
1729         * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
1730         * tree-ssa-loop-manip.c (create_iv): Likewise.
1731         (determine_exit_conditions): Adjust comment.
1732         * tree-ssa-pre.c (create_expression_by_pieces): Use
1733         convert_to_ptrofftype.
1734         * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
1735         * varasm.c (array_size_for_constructor): Compute using double_ints.
1736
1737 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1738
1739         * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
1740         when generating an integer result where possible.  Short-cut
1741         comparison against 0 also for QImode.
1742
1743 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1744
1745         * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
1746         * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
1747         prototype.
1748         * config/spu/spu.c (spu_legitimize_reload_address): New function.
1749         (spu_legitimate_address_p): Do not check displacement if the base
1750         is an eliminable stack register.
1751
1752 2011-08-16  Anatoly Sokolov  <aesok@post.ru>
1753
1754         * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
1755         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
1756         * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
1757         m32c_preferred_output_reload_class): Remove.
1758         * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
1759         Change rclass argument and return types to reg_class_t. Use
1760         reg_class_subset_p instead of class_sizes.
1761         (m32c_preferred_output_reload_class): Make static. Change rclass
1762         argument and return types to reg_class_t.
1763         (TARGET_PREFERRED_RELOAD_CLASS,
1764         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1765
1766 2011-08-16  Kai Tietz  <ktietz@redhat.com>
1767
1768         * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
1769
1770 2011-08-16  Richard GUenther  <rguenther@suse.de>
1771
1772         PR tree-optimization/50082
1773         * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
1774         warnings here, instead of ...
1775         (ssa_forward_propagate_and_combine): ... here.
1776         (forward_propagate_into_comparison_1): Adjust.
1777         (forward_propagate_into_comparison): Likewise.
1778         (forward_propagate_into_gimple_cond): Likewise.
1779         (forward_propagate_into_cond): Likewise.
1780
1781 2011-08-16  Andreas Schwab  <schwab@redhat.com>
1782
1783         * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
1784         instead of ggc_alloc_zone_vec_rtvec_def.
1785
1786 2011-08-16  Richard Guenther  <rguenther@suse.de>
1787
1788         * tree.h (ptrofftype_p): New helper function.
1789         * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
1790         offset verification.
1791         (verify_gimple_assign_binary): Likewise.
1792         * tree.c (build2_stat): Likewise.
1793         * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
1794         (reset_evolution_in_loop): Likewise.
1795         * tree-chrec.h (build_polynomial_chrec): Likewise.
1796
1797 2011-08-16  Liang Wang  <lwang1@marvell.com>
1798
1799         * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
1800         ggc_alloc_zone_vec_rtvec_def.
1801
1802 2011-08-16  Richard Guenther  <rguenther@suse.de>
1803
1804         * tree-vrp.c (extract_range_from_multiplicative_op_1): New
1805         helper factored out from ...
1806         (extract_range_from_binary_expr_1): ... here.  Re-structure
1807         to not glob handling too different tree codes.
1808
1809 2011-08-15  Richard Henderson  <rth@redhat.com>
1810
1811         PR middle-end/50006
1812         * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
1813         setting out to include allocate_stack named pattern as well.
1814         * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
1815         * stmt.c (expand_stack_restore): Likewise.
1816
1817 2011-08-15  Richard Guenther  <rguenther@suse.de>
1818
1819         PR middle-end/50082
1820         * fold-const.c (maybe_canonicalize_comparison_1): Properly
1821         convert the modified operand to the other operand type.
1822         (fold_comparison): Call maybe_canonicalize_comparison_1 with
1823         useless conversions stripped from comparison operands.
1824
1825 2011-08-15  Richard Guenther  <rguenther@suse.de>
1826
1827         * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
1828         (extract_range_from_unary_expr_1): Restructure.
1829
1830 2011-08-15  Richard Guenther  <rguenther@suse.de>
1831
1832         PR tree-optimization/50058
1833         * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
1834         copy matching.
1835
1836 2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1837
1838         PR target/50022
1839         * config/arm/arm.c (output_move_double): Add 2 parameters
1840         to count the number of insns emitted and whether to emit or not.
1841         Use the flag to decide when to emit and count number of instructions
1842         that will be emitted.
1843         Handle case where output_move_double might be called for calculating
1844         lengths with an invalid constant.
1845         (arm_count_output_move_double_insns): Define.
1846         * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
1847         (output_move_double): Adjust prototype.
1848         * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
1849         output_move_double.
1850         ("*movdi_vfp_cortexa8"): Likewise and add attribute
1851         for ce_count.
1852         * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
1853         ("*movdf_soft_insn"): Likewise.
1854         * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
1855         ("*cirrus_thumb2_movdi"): Likewise.
1856         ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
1857         ("*cirrus_movdf_hard_insn"): Likewise.
1858         * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
1859         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
1860         ("mov<mode>_internal VMMX"): Likewise.
1861         * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
1862
1863 2011-08-14  Uros Bizjak  <ubizjak@gmail.com>
1864
1865         * config/i386/i386.c (ix86_expand_round_sse4): New function.
1866         * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
1867         * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
1868         for TARGET_ROUND.
1869
1870         (rint<mode>2): Simplify TARGET_ROUND check.
1871         (floor<mode>2): Ditto.
1872         (ceil<mode>2): Ditto.
1873         (btrunc<mode>2): Ditto.
1874
1875 2011-08-14  Anatoly Sokolov  <aesok@post.ru>
1876
1877         * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
1878         as mmix_preferred_output_reload_class.
1879
1880 2011-08-14  Georg-Johann Lay  <avr@gjlay.de>
1881
1882         * PR target/49903
1883         * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
1884         (branch_unspec): New insn.
1885         (branch): Beauty farm.
1886         * config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
1887         to be IF_THEN_ELSE.
1888         (avr_compare_pattern, avr_reorg_remove_redundant_compare):
1889         New static functions.
1890         (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
1891         Use CONST_INT_P.  Beauty.
1892
1893 2011-08-12  Richard Henderson  <rth@redhat.com>
1894
1895         PR rtl-opt/49994
1896         * sched-init.h (struct deps_desc): Add sched_before_next_jump.
1897         * sched-deps.c (init_deps): Clear it.
1898         (deps_analyze_insn): Consume it.
1899         (sched_analyze_insn): Fill it.
1900
1901 2011-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1902
1903         PR target/48328
1904         * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
1905         for tbh instructions.
1906
1907 2011-08-12  Diego Novillo  <dnovillo@google.com>
1908
1909         * data-streamer.h (streamer_write_zero): Rename from output_zero.
1910         (streamer_write_uhwi): Rename from lto_output_uleb128.
1911         (streamer_write_hwi): Rename from output_sleb128.
1912         (streamer_write_string): Rename from lto_output_string.
1913         (streamer_string_index): Rename from lto_string_index.
1914         (streamer_write_string_with_length): Rename from
1915         lto_output_string_with_length.
1916         (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
1917         (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
1918         (streamer_read_string): Rename from lto_input_string.
1919         (streamer_read_indexed_string): Rename from input_string_internal.
1920         (streamer_read_uhwi): Rename from lto_input_uleb128.
1921         (streamer_read_hwi): Rename from lto_input_sleb128.
1922         (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
1923         (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
1924         (streamer_write_enum): Rename from lto_output_enum.
1925         (streamer_read_enum): Rename from lto_input_enum.
1926         (streamer_write_record_start): Rename from output_record_start.
1927         (streamer_read_record_start): Rename from input_record_start.
1928         (streamer_write_bitpack): Rename from lto_output_bitpack.
1929         (streamer_read_bitpack): Rename from lto_input_bitpack.
1930         (streamer_write_char_stream): Rename from lto_output_1_stream.
1931         (streamer_read_uchar): Rename from lto_input_1_unsigned.
1932         * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
1933         (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
1934         (streamer_read_string_cst): Rename from input_string_cst.
1935         (streamer_read_chain): Rename from lto_input_chain.
1936         (streamer_alloc_tree): Rename from lto_materialize_tree.
1937         (streamer_read_tree_body): Rename from lto_input_tree_pointers.
1938         (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
1939         (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
1940         (streamer_read_integer_cst): Rename from lto_input_integer_cst.
1941         (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
1942         (streamer_write_chain): Rename from lto_output_chain.
1943         (streamer_write_tree_header): Rename from lto_output_tree_header.
1944         (streamer_pack_tree_bitfields): Rename from pack_value_fields.
1945         (streamer_write_tree_body): Rename from lto_output_tree_pointers.
1946         (streamer_write_integer_cst): Rename from lto_output_integer_cst.
1947         (streamer_write_builtin): Rename from lto_output_builtin_tree.
1948         (streamer_check_handled_ts_structures): Rename from
1949         check_handled_ts_structures.
1950         (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
1951         (streamer_tree_cache_insert_at): Rename from
1952         lto_streamer_cache_insert_at.
1953         (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
1954         (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
1955         (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
1956         (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
1957         (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
1958         * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
1959         (write_identifier): Rename from output_identifier.
1960         (write_ts_common_tree_pointers): Rename from
1961         lto_output_ts_common_tree_pointers.
1962         (write_ts_vector_tree_pointers): Rename from
1963         lto_output_ts_vector_tree_pointers.
1964         (write_ts_complex_tree_pointers): Rename from
1965         lto_output_ts_complex_tree_pointers.
1966         (write_ts_decl_minimal_tree_pointers): Rename from
1967         lto_output_ts_decl_minimal_tree_pointers.
1968         (write_ts_decl_common_tree_pointers): Rename from
1969         lto_output_ts_decl_common_tree_pointers.
1970         (write_ts_decl_non_common_tree_pointers): Rename from
1971         lto_output_ts_decl_non_common_tree_pointers.
1972         (write_ts_decl_with_vis_tree_pointers): Rename from
1973         lto_output_ts_decl_with_vis_tree_pointers.
1974         (write_ts_field_decl_tree_pointers): Rename from
1975         lto_output_ts_field_decl_tree_pointers.
1976         (write_ts_function_decl_tree_pointers): Rename from
1977         lto_output_ts_function_decl_tree_pointers.
1978         (write_ts_type_common_tree_pointers): Rename from
1979         lto_output_ts_type_common_tree_pointers.
1980         (write_ts_type_non_common_tree_pointers): Rename from
1981         lto_output_ts_type_non_common_tree_pointers.
1982         (write_ts_list_tree_pointers): Rename from
1983         lto_output_ts_list_tree_pointers.
1984         (write_ts_vec_tree_pointers): Rename from
1985         lto_output_ts_vec_tree_pointers.
1986         (write_ts_exp_tree_pointers): Rename from
1987         lto_output_ts_exp_tree_pointers.
1988         (write_ts_block_tree_pointers): Rename from
1989         lto_output_ts_block_tree_pointers.
1990         (write_ts_binfo_tree_pointers): Rename from
1991         lto_output_ts_binfo_tree_pointers.
1992         (write_ts_constructor_tree_pointers): Rename from
1993         lto_output_ts_constructor_tree_pointers.
1994         (write_ts_target_option): Rename from lto_output_ts_target_option.
1995         (write_ts_translation_unit_decl_tree_pointers): Rename from
1996         lto_output_ts_translation_unit_decl_tree_pointers.
1997         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
1998         Rename from lto_streamer_cache_add_to_node_array.
1999         (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
2000         (record_common_node): Rename from lto_record_common_node.
2001
2002         * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
2003         declarations.
2004         * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
2005         function.
2006         * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
2007         unused function.
2008         * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
2009         (ipa-reference.o): Likewise.
2010         * lto-section-out.c: Include data-streamer.h.
2011         * ipa-reference.c: Include data-streamer.h.
2012
2013 2011-08-12  Nick Clifton  <nickc@redhat.com>
2014
2015         * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
2016         * doc/md.texi (cmpstrn): Note that the comparison stops if both
2017         fetched bytes are zero.
2018         (cmpstr): Likewise.
2019         (cmpmem): Note that the comparison does not stop if both of the
2020         fetched bytes are zero.
2021
2022 2011-08-12  Uros Bizjak  <ubizjak@gmail.com>
2023
2024         * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
2025         BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
2026         * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
2027         BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
2028         to integer_type_node.
2029         * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
2030         BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
2031         * builtins.c (expand_builtin_in): Ditto.
2032         (mathfn_built_in_1): Ditto.
2033         (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
2034         BUILT_IN_IFLOOR.
2035         (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
2036         BUILT_IN_IROUND.
2037         (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
2038         BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
2039         BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
2040
2041 2011-08-12  Richard Guenther  <rguenther@suse.de>
2042
2043         * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
2044
2045 2011-08-12  Romain Geissler  <romain.geissler@gmail.com>
2046
2047         * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
2048
2049 2011-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
2050
2051         * config/arm/arm.c (get_label_padding): New function.
2052         (create_fix_barrier, arm_reorg): Use it.
2053
2054 2011-08-11  Uros Bizjak  <ubizjak@gmail.com>
2055
2056         PR target/49781
2057         * config/i386/i386.md (*lea_5_zext): New.
2058         (*lea_6_zext): Ditto.
2059         * config/i386/predicates.md (const_32bit_mask): New predicate.
2060         (lea_address_operand): Reject AND.
2061         * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
2062         const_32bit_mask immediate.
2063         (ix86_print_operand_address): Handle AND.
2064         (memory_address_length): Ditto.
2065
2066 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
2067             Brian Hackett  <bhackett1024@gmail.com>
2068
2069         * plugin.def: Add event for finish_decl.
2070         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
2071         * c-decl.c (finish_decl): Invoke callbacks on above event.
2072         * doc/plugins.texi: Document above event.
2073
2074 2011-08-11  Richard Guenther  <rguenther@suse.de>
2075
2076         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
2077         lookups, make looking through aggregate copies stronger.
2078
2079 2011-08-11  Richard Henderson  <rth@redhat.com>
2080
2081         PR bootstrap/50018
2082         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
2083
2084 2011-08-11  Richard Guenther  <rguenther@suse.de>
2085
2086         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
2087         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
2088         (vrp_visit_stmt): Likewise.
2089
2090 2011-08-11  Richard Guenther  <rguenther@suse.de>
2091
2092         PR middle-end/50040
2093         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
2094         load of the other piece with TREE_NO_WARNING.
2095         * tree-flow.h (warn_uninit): Adjust prototype.
2096         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
2097         the base variable and the expression that is used separately.
2098         Properly query all TREE_NO_WARNING flags.
2099         (struct walk_data): Remove.
2100         (warn_uninitialized_var): Likewise.
2101         (warn_uninitialized_vars): Do not walk gimple pieces but simply
2102         look at all SSA uses of the statement.  Handle unused memory
2103         separately.
2104         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
2105
2106 2011-08-11   Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
2107
2108         * config/rx/rx.md (movsicc): Allow register to register transfers.
2109         (*movsicc): Likewise.
2110         (*stcc): Restrict this pattern to EQ and NE compares.
2111         (*stcc_reg): New pattern.  Works for any comparison but only for
2112         register transfers.
2113
2114 2011-08-11   Diego Novillo  <dnovillo@google.com>
2115
2116         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
2117         Call stream_write_tree instead of output_record_start.
2118         (lto_output_ts_binfo_tree_pointers): Likewise.
2119
2120         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
2121         Convert it to a macro.
2122         (stream_read_tree): Likewise.
2123
2124         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
2125         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
2126
2127         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
2128         and tree_read_bitfields.
2129         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
2130         (lto_write_tree): Call it.
2131         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
2132         * streamer-hooks.h (struct streamer_hooks): Remove fields
2133         name, is_streamable and alloc_tree. Update all users.
2134         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
2135         (lto_materialize_tree): ... here.
2136         Handle CALL_EXPR codes.
2137         Remove call to lto_streamer_cache_append.
2138         * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
2139         * tree-streamer.h (tree_read_bitfields): Declare.
2140
2141         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
2142         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
2143         * tree-streamer.h (stream_read_tree): New.  Replace all calls
2144         to lto_input_tree with it.
2145         (stream_write_tree): New.  Replace all calls to lto_output_tree,
2146         lto_output_tree_ref and lto_output_tree_or_ref with it.
2147         * lto-streamer-in.c (lto_read_tree): Inline code from
2148         lto_streamer_read_tree.
2149         (lto_input_tree): Move from tree-streamer-in.c.
2150         * lto-streamer-out.c (lto_output_tree_ref): Make static.
2151         Remove handling of NULL values for EXPR.
2152         Do not handle EXPRs that are not indexable.
2153         (lto_write_tree): Move from tree-streamer-out.c.
2154         Inline lto_streamer_write_tree.
2155         (lto_output_tree): Move from tree-streamer-out.c.
2156         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
2157         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
2158         (lto_preload_common_nodes): Likewise.
2159         Remove assertions and adjustments for nodes
2160         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
2161         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
2162         lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
2163         * lto-streamer.h (lto_input_tree): Declare.
2164         (lto_output_tree_ref): Remove.
2165         * streamer-hooks.h (struct streamer_hooks): Remove fields
2166         preload_common_nodes, indexable_with_decls_p,
2167         pack_value_fields, unpack_value_fields and output_tree_header.
2168         Update all users.
2169         * tree-streamer-in.c (lto_materialize_tree): Make extern.
2170         (lto_input_tree_pointers): Likewise.
2171         (lto_read_tree): Move to lto-streamer-in.c.
2172         (lto_input_integer_cst): Make extern.
2173         (lto_get_pickled_tree): Likewise.
2174         (lto_get_builtin_tree): Likewise.
2175         (lto_input_tree): Move to lto-streamer-in.c.
2176         * tree-streamer-out.c (pack_value_fields): Make extern.
2177         (lto_output_tree_or_ref): Remove.  Replace all callers with
2178         calls to stream_write_tree.
2179         (lto_output_builtin_tree): Make extern.
2180         (lto_streamer_write_tree): Inline into lto_write_tree.
2181         (lto_output_tree_pointers): Make extern.
2182         (lto_output_tree_header): Likewise.
2183         (lto_output_integer_cst): Likewise.
2184         (lto_write_tree): Move to lto-streamer-out.c.
2185         (lto_output_tree): Likewise.
2186         * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
2187         (preload_common_nodes): Likewise.
2188         (lto_streamer_cache_create): Call it.
2189         * tree-streamer.h: Include streamer-hooks.h.
2190         (stream_write_tree): New.
2191         (stream_read_tree): New.
2192         (lto_input_tree): Remove.
2193         (lto_materialize_tree): Declare.
2194         (lto_input_tree_pointers): Declare.
2195         (lto_get_pickled_tree): Declare.
2196         (lto_get_builtin_tree): Declare.
2197         (lto_input_integer_cst): Declare.
2198         (lto_output_tree_header): Declare.
2199         (pack_value_fields): Declare.
2200         (lto_output_tree_pointers): Declare.
2201         (lto_output_integer_cst): Declare.
2202         (lto_output_builtin_tree): Declare.
2203
2204 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2205
2206         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
2207         only if producer writes to the register given by regno.
2208
2209 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2210             Alexander Monakov  <amonakov@ispras.ru>
2211
2212         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
2213         (sched_get_condition_with_rev_uncached): ... this.  Factor out
2214         condition caching logic into ...
2215         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
2216         attempt to use cache for instructions with zero luid.
2217         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
2218         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
2219
2220 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2221
2222         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
2223         get_seqno_for_a_jump.  Update the caller.
2224         (get_seqno_by_succs): New.  Use it ...
2225         (get_seqno_for_a_jump): ... here to find a seqno if looking at
2226         predecessors was not sufficient.
2227         (get_seqno_by_preds): Include head in iteration range, exclude insn.
2228
2229 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
2230
2231         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
2232
2233 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2234
2235         * sel-sched-ir.h (register_unavailable_p): Declare.
2236         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
2237         (set_unavailable_target_for_expr): ... here to properly test
2238         availability of a register.
2239         (speculate_expr): Ditto.
2240         * sel-sched.c (substitute_reg_in_expr): Ditto.
2241         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
2242
2243 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2244
2245         * sel-sched.c (verify_target_availability): Fix usage of
2246         hard_regno_nregs.
2247
2248 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
2249
2250         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
2251         recognized by cannot_copy_insn_p hook and volatile instructions.
2252
2253 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
2254
2255         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
2256
2257 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
2258
2259         * doc/md.texi (define_bypass): Say that the instruction names can
2260         be filename-style globs.
2261         * Makefile.in (FNMATCH_H): Define.
2262         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
2263         * genattrtab.c: Include fnmatch.h.
2264         (bypass_list): Change field name from "insn" to "pattern".
2265         (gen_bypass_1): Update accordingly.
2266         (process_bypasses): Use fnmatch to check for matches between
2267         insn reservations and define_bypasses.
2268         * genautomata.c: Include fnmatch.h.
2269         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
2270         and out_pattern respectively.
2271         (gen_bypass, insert_bypass): Update accordingly.
2272         (for_each_matching_insn, process_bypass_2, process_bypass_1)
2273         (process_bypass): New functions.
2274         (process_decls): Use process_bypass.  Update after field name changes.
2275
2276 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
2277
2278         PR target/49687
2279         * config/avr/avr.md (smulqi3_highpart): New insn.
2280         (umulqi3_highpart): New insn.
2281         (*subqi3.ashiftrt7): New insn.
2282         (smulhi3_highpart): New expander.
2283         (umulhi3_highpart): Nex expander.
2284         (*smulhi3_highpart_call): New insn.
2285         (*umulhi3_highpart_call): New insn.
2286         (extend_u): New code attribute.
2287         (extend_prefix): Rename code attribute to extend_su.
2288         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
2289         widening QI/HI multiply.
2290
2291 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
2292
2293         PR tree-optimization/50039
2294         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
2295         that DEF_STMT has a stmt_vec_info.
2296
2297 2011-08-10  Richard Guenther  <rguenther@suse.de>
2298
2299         * tree.h (can_trust_pointer_alignment): Remove.
2300         * builtins.c (can_trust_pointer_alignment): Remove.
2301
2302 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
2303
2304         * c-typeck.c (scalar_to_vector): New function. Try scalar to
2305         vector conversion.
2306         (stv_conv): New enum for scalar_to_vector return type.
2307         (build_binary_op): Adjust.
2308         * doc/extend.texi: Description of scalar to vector expansion.
2309
2310 2011-08-10  Richard Guenther  <rguenther@suse.de>
2311
2312         * tree.h (get_pointer_alignment): Remove max-align argument.
2313         (get_object_alignment): Likewise.
2314         * builtins.c (get_object_alignment_1): Adjust.
2315         (get_object_alignment): Remove max-align argument.
2316         (get_pointer_alignment): Likewise.
2317         (expand_builtin_strlen): Adjust.
2318         (expand_builtin_memcpy): Likewise.
2319         (expand_builtin_mempcpy_args): Likewise.
2320         (expand_builtin_strncpy): Likewise.
2321         (expand_builtin_memset_args): Likewise.
2322         (expand_builtin_memcmp): Likewise.
2323         (expand_builtin_strcmp): Likewise.
2324         (expand_builtin_strncmp): Likewise.
2325         (get_builtin_sync_mem): Likewise.
2326         (fold_builtin_memset): Likewise.
2327         (fold_builtin_memory_op): Likewise.
2328         (expand_builtin_memory_chk): Likewise.
2329         * emit-rtl.c (get_mem_align_offset): Likewise.
2330         (set_mem_attributes_minus_bitpos): Likewise.
2331         * expr.c (expand_assignment): Likewise.
2332         (expand_expr_real_1): Likewise.
2333         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
2334         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
2335         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
2336         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
2337         * value-prof.c (gimple_stringops_transform): Likewise.
2338
2339 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
2340
2341         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
2342         * doc/tm.texi: Regenerate.
2343
2344 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
2345
2346         PR target/29560
2347         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
2348         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
2349         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
2350         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
2351         shift target is unused.
2352
2353 2011-08-10  Richard Guenther  <rguenther@suse.de>
2354
2355         PR tree-optimization/49937
2356         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
2357         using get_object_alignment_1.
2358
2359 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
2360
2361         * config/i386/i386.c (ix86_emit_i387_round): New function.
2362         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
2363         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
2364         Use ix86_emit_i387_round to expand round function for i387 math.
2365         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
2366         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
2367
2368 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2369
2370         * config/sync.c: Move to ../libgcc.
2371         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
2372         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
2373         Remove.
2374
2375 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
2376
2377         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
2378         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
2379         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
2380         Change 'from' and 'to' arguments type to reg_class_t.
2381         (TARGET_REGISTER_MOVE_COST): Define.
2382
2383 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
2384
2385         PR target/50026
2386         Revert:
2387         PR rtl-optimization/49990
2388         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
2389         ignore classes which can not change mode.
2390         (find_costs_and_classes): Ditto.
2391
2392 2011-08-09  Richard Guenther  <rguenther@suse.de>
2393
2394         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
2395         information for ranges with only negative values.
2396         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
2397         BIT_AND_EXPR handling to handle ranges with negative values.
2398
2399 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
2400
2401         * config/i386/i386.c: Remove traling spaces.
2402         * config/i386/sse.md: Likewise.
2403         (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
2404         (*fma_fmsub_<mode>): Likewise.
2405         (*fma_fnmadd_<mode>): Likewise.
2406         (*fma_fnmsub_<mode>): Likewise.
2407
2408 2011-08-09  Nick Clifton  <nickc@redhat.com>
2409
2410         * config/rx/rx.md: Disable extender peepholes at -O3.
2411
2412 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
2413
2414         PR target/49781
2415         * config/i386/i386.md (reload_noff_load): New.
2416         (reload_noff_store): Ditto.
2417         * config/i386/i386.c (ix86_secondary_reload): Use
2418         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
2419         double-word moves from/to non-offsetable addresses instead of
2420         generating XMM temporary.
2421
2422 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
2423
2424         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
2425
2426 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
2427
2428         PR tree-optimization/50014
2429         * tree-vect-loop.c (vectorizable_reduction): Get def type before
2430         calling vect_get_vec_def_for_stmt_copy ().
2431
2432 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
2433
2434         PR rtl-optimization/49990
2435         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
2436         ignore classes which can not change mode.
2437         (find_costs_and_classes): Ditto.
2438
2439 2011-08-08  Richard Henderson  <rth@redhat.com>
2440
2441         PR middle-end/49990
2442         * config/i386/i386.c (ix86_expand_prologue): Call
2443         for SEH target gen_prologue_use instead of gen_blockage
2444         at prologue's end.
2445
2446 2011-08-08  Martin Jambor  <mjambor@suse.cz>
2447
2448         PR middle-end/49923
2449         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
2450         memory alignment.
2451
2452 2011-08-08   Diego Novillo  <dnovillo@google.com>
2453
2454         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
2455         (DATA_STREAMER_H): New.
2456         (GIMPLE_STREAMER_H): New.
2457         (TREE_STREAMER_H): New.
2458         (STREAMER_HOOKS_H): New.
2459         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
2460         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
2461         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
2462         (data-streamer.o): New.
2463         (data-streamer-in.o): New.
2464         (data-streamer-out.o): New.
2465         (gimple-streamer-in.o): New.
2466         (gimple-streamer-out.o): New.
2467         (streamer-hooks.o): New.
2468         (tree-streamer.o): New.
2469         (tree-streamer-in.o): New.
2470         (tree-streamer-out.o): New.
2471         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
2472         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
2473         GIMPLE_STREAMER_H and TREE_STREAMER_H.
2474         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
2475         GIMPLE_STREAMER_H and TREE_STREAMER_H.
2476         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
2477         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
2478         (ipa-inline-analysis.o): Likewise.
2479         (ipa-pure-const.o): Likewise.
2480         * data-streamer-in.c: New.
2481         * data-streamer-out.c: New.
2482         * data-streamer.c: New.
2483         * data-streamer.h: New.
2484         * gimple-streamer-in.c: New.
2485         * gimple-streamer-out.c: New.
2486         * gimple-streamer.h: New.
2487         * ipa-inline-analysis.c: Include data-streamer.h.
2488         * ipa-prop.c: Include data-streamer.h.
2489         * ipa-pure-const.c: Include data-streamer.h.
2490         * lto-cgraph.c: Include data-streamer.h.
2491         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
2492         (lto_input_widest_uint_uleb128): Likewise.
2493         (lto_input_sleb128): Likewise.
2494         (bp_unpack_var_len_unsigned): Likewise.
2495         (bp_unpack_var_len_int): Likewise.
2496         * lto-section-out.c (lto_output_uleb128_stream): Move to
2497         data-streamer-out.c.
2498         (lto_output_widest_uint_uleb128_stream): Likewise.
2499         (lto_output_sleb128_stream): Likewise.
2500         (bp_pack_var_len_unsigned): Likewise.
2501         (bp_pack_var_len_int): Likewise.
2502         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
2503         (struct string_slot): Remove.  Update all users.
2504         (lto_tag_check_set): Make extern.
2505         (lto_tag_check_range): Move to lto-streamer.h.
2506         (lto_tag_check): Likewise.
2507         (hash_string_slot_node): Remove.  Update all users.
2508         (eq_string_slot_node): Remove.  Update all users.
2509         (string_for_index): Move to data-streamer-in.c
2510         (input_string_internal): Likewise.
2511         (input_string_cst): Move to tree-streamer-in.c.
2512         (input_identifier): Likewise.
2513         (lto_input_string): Move to data-streamer-in.c
2514         (input_record_start): Move to data-streamer.h
2515         (canon_file_name): Use new definition of struct string_slot
2516         from data-streamer.h.  Set S_SLOT.LEN.
2517         (lto_input_location): Make extern.
2518         (lto_input_chain): Move to tree-streamer-in.c.
2519         (lto_init_eh): Make extern.
2520         (input_phi): Move to gimple-streamer-in.c.
2521         (input_gimple_stmt): Likewise.
2522         (input_bb): Likewise.
2523         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
2524         (unpack_ts_real_cst_value_fields): Likewise.
2525         (unpack_ts_fixed_cst_value_fields): Likewise.
2526         (unpack_ts_decl_common_value_fields): Likewise.
2527         (unpack_ts_decl_wrtl_value_fields): Likewise.
2528         (unpack_ts_decl_with_vis_value_fields): Likewise.
2529         (unpack_ts_function_decl_value_fields): Likewise.
2530         (unpack_ts_type_common_value_fields): Likewise.
2531         (unpack_ts_block_value_fields): Likewise.
2532         (unpack_ts_translation_unit_decl_value_fields): Likewise.
2533         (unpack_value_fields): Likewise.
2534         (lto_materialize_tree): Likewise.
2535         (lto_input_ts_common_tree_pointers): Likewise.
2536         (lto_input_ts_vector_tree_pointers): Likewise.
2537         (lto_input_ts_complex_tree_pointers): Likewise.
2538         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
2539         (lto_input_ts_decl_common_tree_pointers): Likewise.
2540         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
2541         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
2542         (lto_input_ts_field_decl_tree_pointers): Likewise.
2543         (lto_input_ts_function_decl_tree_pointers): Likewise.
2544         (lto_input_ts_type_common_tree_pointers): Likewise.
2545         (lto_input_ts_type_non_common_tree_pointers): Likewise.
2546         (lto_input_ts_list_tree_pointers): Likewise.
2547         (lto_input_ts_vec_tree_pointers): Likewise.
2548         (lto_input_ts_exp_tree_pointers): Likewise.
2549         (lto_input_ts_block_tree_pointers): Likewise.
2550         (lto_input_ts_binfo_tree_pointers): Likewise.
2551         (lto_input_ts_constructor_tree_pointers): Likewise.
2552         (lto_input_ts_target_option): Likewise.
2553         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
2554         (lto_input_tree_pointers): Likewise.
2555         (lto_get_pickled_tree): Likewise.
2556         (lto_get_builtin_tree): Likewise.
2557         (lto_read_tree): Likewise.
2558         (lto_input_integer_cst): Likewise.
2559         (lto_input_tree): Likewise.
2560         * lto-streamer-out.c: Include data-streamer.h,
2561         gimple-streamer.h and streamer-hooks.h.
2562         (struct string_slot): Move to data-streamer.h.
2563         (hash_string_slot_node): Likewise.
2564         (eq_string_slot_node): Likewise.
2565         (lto_string_index): Move to data-streamer-out.c.
2566         (lto_output_string_with_length): Likewise.
2567         (lto_output_string): Likewise.
2568         (output_string_cst): Move to tree-streamer-out.c.
2569         (output_identifier): Likewise.
2570         (output_zero): Move to data-streamer-out.c
2571         (output_uleb128): Likewise.
2572         (output_sleb128): Likewise.
2573         (output_record_start): Move to data-streamer.h
2574         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
2575         (pack_ts_real_cst_value_fields): Likewise.
2576         (pack_ts_fixed_cst_value_fields): Likewise.
2577         (pack_ts_decl_common_value_fields): Likewise.
2578         (pack_ts_decl_wrtl_value_fields): Likewise.
2579         (pack_ts_decl_with_vis_value_fields): Likewise.
2580         (pack_ts_function_decl_value_fields): Likewise.
2581         (pack_ts_type_common_value_fields): Likewise.
2582         (pack_ts_block_value_fields): Likewise.
2583         (pack_ts_translation_unit_decl_value_fields): Likewise.
2584         (pack_value_fields): Likewise.
2585         (lto_output_chain): Likewise.
2586         (lto_output_ts_common_tree_pointers): Likewise.
2587         (lto_output_ts_vector_tree_pointers): Likewise.
2588         (lto_output_ts_complex_tree_pointers): Likewise.
2589         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
2590         (lto_output_ts_decl_common_tree_pointers): Likewise.
2591         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
2592         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
2593         (lto_output_ts_field_decl_tree_pointers): Likewise.
2594         (lto_output_ts_function_decl_tree_pointers): Likewise.
2595         (lto_output_ts_type_common_tree_pointers): Likewise.
2596         (lto_output_ts_type_non_common_tree_pointers): Likewise.
2597         (lto_output_ts_list_tree_pointers): Likewise.
2598         (lto_output_ts_vec_tree_pointers): Likewise.
2599         (lto_output_ts_exp_tree_pointers): Likewise.
2600         (lto_output_ts_block_tree_pointers): Likewise.
2601         (lto_output_ts_binfo_tree_pointers): Likewise.
2602         (lto_output_ts_constructor_tree_pointers): Likewise.
2603         (lto_output_ts_target_option): Likewise.
2604         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
2605         (lto_output_tree_pointers): Likewise.
2606         (lto_output_tree_header): Likewise.
2607         (lto_output_builtin_tree): Likewise.
2608         (lto_write_tree): Likewise.
2609         (lto_output_integer_cst): Likewise.
2610         (lto_output_tree): Likewise.
2611         (output_phi): Move to gimple-streamer-out.c.
2612         (output_gimple_stmt): Likewise.
2613         (output_bb): Likewise.
2614         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
2615         (streamer_hooks): Move to streamer-hooks.c.
2616         (check_handled_ts_structures): Move to tree-streamer.c
2617         (lto_streamer_cache_add_to_node_array): Likewise.
2618         (lto_streamer_cache_insert_1): Likewise.
2619         (lto_streamer_cache_insert): Likewise.
2620         (lto_streamer_cache_insert_at): Likewise.
2621         (lto_streamer_cache_append): Likewise.
2622         (lto_streamer_cache_lookup): Likewise.
2623         (lto_streamer_cache_get): Likewise.
2624         (lto_record_common_node): Likewise.
2625         (lto_preload_common_nodes): Likewise.
2626         (lto_streamer_cache_create): Likewise.
2627         (lto_streamer_cache_delete): Likewise.
2628         (streamer_hooks_init): Move to streamer-hooks.c.
2629         * lto-streamer.h: Include diagnostic.h
2630         (struct output_block, struct lto_input_block,
2631         struct data_in, struct bitpack_d): Remove forward declarations.
2632         (struct bitpack_d): Move to data-streamer.h.
2633         (struct lto_streamer_cache_d): Move to tree-streamer.h.
2634         (struct streamer_hooks): Move to streamer-hooks.h.
2635         (bp_pack_var_len_unsigned): Move to data-streamer.h.
2636         (bp_pack_var_len_int): Likewise.
2637         (bp_unpack_var_len_unsigned): Likewise.
2638         (bp_unpack_var_len_int): Likewise.
2639         (lto_input_location): Declare.
2640         (lto_tag_check_set): Declare.
2641         (lto_init_eh): Declare.
2642         (lto_output_tree_ref): Declare.
2643         (lto_output_location): Declare.
2644         (bitpack_create): Move to data-streamer.h.
2645         (bp_pack_value): Likewise.
2646         (lto_output_bitpack): Likewise.
2647         (lto_input_bitpack): Likewise.
2648         (bp_unpack_value): Likewise.
2649         (lto_output_1_stream): Likewise.
2650         (lto_input_1_unsigned): Likewise.
2651         (lto_output_int_in_range): Likewise.
2652         (lto_input_int_in_range): Likewise.
2653         (bp_pack_int_in_range): Likewise.
2654         (bp_unpack_int_in_range): Likewise.
2655         (lto_output_enum): Likewise.
2656         (lto_input_enum): Likewise.
2657         (bp_pack_enum): Likewise.
2658         (bp_unpack_enum): Likewise.
2659         * streamer-hooks.c: New.
2660         * streamer-hooks.h: New.
2661         * tree-streamer-in.c: New.
2662         * tree-streamer-out.c: New.
2663         * tree-streamer.c: New.
2664         * tree-streamer.h: New.
2665
2666 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2667
2668         * gthr-posix95.h: Remove.
2669         * gthr.h [_PTHREADS95]: Remove.
2670         * configure.ac (enable_threads): Remove posix95.
2671         * configure: Regenerate.
2672         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
2673
2674 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
2675
2676         PR target/49781
2677         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
2678         SImode addresses.
2679         (ix86_print_operand_address): Handle zero-extended addresses.
2680         (memory_address_length): Add length of addr32 prefix for
2681         zero-extended addresses.
2682         (ix86_secondary_reload): Handle moves to/from double-word general
2683         registers from/to zero-extended addresses.
2684         * config/i386/predicates.md (lea_address_operand): Reject
2685         zero-extended operands.
2686
2687 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
2688
2689         PR other/48007
2690         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
2691
2692         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
2693         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
2694
2695         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
2696         (_Unwind_Context_Reg_Val): Likewise.
2697         (_Unwind_Get_Unwind_Word): Likewise.
2698         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
2699         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
2700         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
2701         for EXTENDED_CONTEXT_BIT.
2702         (__frame_state_for): Likewise.
2703         (uw_init_context_1): Likewise.
2704         (_Unwind_GetGR): Updated.
2705         (_Unwind_SetGR): Likewise.
2706         (_Unwind_GetGRPtr): Likewise.
2707         (_Unwind_SetGRPtr): Likewise.
2708         (_Unwind_SetGRValue): Likewise.
2709         (_Unwind_GRByValue): Likewise.
2710         (uw_install_context_1): Likewise.
2711
2712         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
2713         ASSUME_EXTENDED_UNWIND_CONTEXT.
2714         * doc/tm.texi: Regenerated.
2715
2716 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2717
2718         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
2719
2720 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2721
2722         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
2723         Linux/GNU-specific.
2724         (DEC Alpha Options, -mtune): Likewise.
2725         (MIPS Options, -march): native is supported on IRIX.
2726
2727 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2728
2729         * config/sparc/driver-sparc.c: New file.
2730         * config/sparc/x-sparc: New file.
2731         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
2732         * config/sparc/sparc.opt (native): New value for enum processor_type.
2733         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
2734         * config/sparc/sparc.c (sparc_option_override): Abort if
2735         PROCESSOR_NATIVE gets here.
2736         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
2737         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
2738         DRIVER_SELF_SPECS): Define.
2739         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
2740         (SPARC Options, -mtune): Likewise.
2741         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
2742         Substitute result.
2743         * configure: Regenerate.
2744         * Makefile.in (EXTRA_GCC_LIBS): Set.
2745         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
2746         (cpp$(exeext)): Likewise.
2747
2748 2011-08-08  Richard Guenther  <rguenther@suse.de>
2749
2750         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
2751         split out from ...
2752         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
2753         by composition.
2754
2755 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
2756
2757         PR tree-optimization/50005
2758         * ipa-inline-analysis (remap_predicate): Add cast to
2759         silence signed/unsigned comparison warning.
2760
2761 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
2762
2763         * modulo-sched.c (get_sched_window): Use a table for the debug output.
2764         Print the current ii.
2765         (sms_schedule_by_order): Reduce whitespace in dump line.
2766
2767 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
2768
2769         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
2770         and one loop for successors.  Fix upper bound of memory range.
2771
2772 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
2773
2774         PR target/50001
2775         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
2776         (TARGET_INSTANTIATE_DECLS): New define.
2777
2778 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
2779             Mikael Morin   <mikael.morin@sfr.fr>
2780
2781         * Makefile.in (INCLUDES_FOR_TARGET): New.
2782         (LIBGCC2_CFLAGS): Use it.
2783         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
2784
2785 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
2786
2787         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
2788         frame->save_regs_using_mov calculation.
2789
2790 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
2791
2792         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
2793         * config/i386/sse.md (castmode): New mode attribute.
2794         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
2795         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
2796
2797 2011-08-05  Jan Hubicka  <jh@suse.cz>
2798
2799         PR middle-end/49494
2800         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
2801
2802 2011-08-05  Jan Hubicka  <jh@suse.cz>
2803
2804         PR middle-end/49500
2805         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
2806         handle aliases.
2807         (create_emultls_var):New function.
2808         (ipa_lower_emutls): Handle aliases correctly.
2809
2810 2011-08-05  Jan Hubicka  <jh@suse.cz>
2811
2812         PR middle-end/49735
2813         * ipa-inline.c (recursive_inlining): Look through aliases.
2814
2815 2011-08-05  Jason Merrill  <jason@redhat.com>
2816
2817         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
2818         declarations to beginning of function.
2819
2820 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
2821
2822         PR rtl-optimization/49900
2823         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
2824         ensure basic blocks stay in the same order.
2825
2826 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
2827
2828         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
2829         store_bit_field.
2830         (s390_expand_atomic): Same.
2831
2832 2011-08-05  Richard Henderson  <rth@redhat.com>
2833
2834         PR rtl-opt/49977
2835         * dwarf2cfi.c (scan_insn_after): Split out of ...
2836         (scan_trace): ... here.  Correctly place notes wrt sequences.
2837
2838 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
2839             Richard Henderson  <rth@redhat.com>
2840
2841         PR rtl-opt/49982
2842         * expr.c (fixup_args_size_notes): Look through no-op moves.
2843
2844 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
2845
2846         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
2847         of "m" for operand 0.  Add type and mode attribute.
2848         (*pushxf_nointeger"): Use "<" constraint for operand 0.
2849         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
2850         constraint instead of "o" for opreand 1.
2851         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
2852         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
2853         operand 0, alternative 4.
2854         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
2855
2856 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
2857
2858         * config/i386/predicates.md (lea_address_operand): Rename from
2859         no_seg_address_operand.
2860         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
2861         (*lea_1_zext): Ditto.
2862         (*lea_2): Ditto.
2863         (*lea_2_zext): Ditto.
2864
2865 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
2866
2867         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
2868         parts.base and parts.index.
2869         * config/i386/predicates.md (aligned_operand): Ditto.
2870         (cmpxchg8b_pic_memory_operand): Ditto.
2871
2872 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2873
2874         * config/soft-fp: Move to ../libgcc.
2875         * Makefile.in (SFP_MACHINE): Remove.
2876         (libgcc-support): Remove $(SFP_MACHINE) dependency.
2877         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
2878         * config/arm/t-arm-softfp: Move to
2879         ../libgcc/config/arm/t-softfp.
2880         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
2881         * config/c6x/t-c6x-softfp: Remove.
2882         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
2883         * config/i386/t-fprules-softfp: Move to
2884         ../libgcc/config/t-softfp-tf.
2885         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
2886         * config/ia64/t-fprules-softfp: Remove.
2887         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
2888         * config/lm32/t-fprules-softfp: Remove.
2889         * config/moxie/sfp-machine.h: Remove.
2890         * config/moxie/t-moxie-softfp: Remove.
2891         * config/rs6000/darwin-ldouble-format: Move to
2892         ../libgcc/config/rs6000/ibm-ldouble-format.
2893         * config/rs6000/darwin-ldouble.c: Move to
2894         ../libgcc/config/rs6000/ibm-ldouble.c
2895         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
2896         * config/rs6000/libgcc-ppc64.ver: Likewise.
2897         * config/rs6000/sfp-machine.h: Likewise.
2898         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
2899         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
2900         (LIB2FUNCS_EXTRA): Remove.
2901         (TARGET_LIBGCC2_CFLAGS): Remove.
2902         * config/rs6000/t-aix52: Likewise
2903         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
2904         $(srcdir)/config/rs6000/darwin-ldouble.c.
2905         (SHLIB_MAPFILES): Remove.
2906         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
2907         $(srcdir)/config/rs6000/darwin-ldouble.c.
2908         * config/rs6000/t-fprules-softfp: Move to
2909         ../libgcc/config/t-softfp-sfdf.
2910         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
2911         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
2912         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
2913         $(srcdir)/config/rs6000/darwin-ldouble.c.
2914         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
2915         * config/score/t-score-softfp: Remove.
2916         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
2917         soft-fp/t-softfp from tmake_file.
2918         (arm*-*-uclinux*): Likewise.
2919         (arm*-*-ecos-elf): Likewise.
2920         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
2921         (arm*-*-rtems*): Likewise.
2922         (arm*-*-elf): Likewise.
2923         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
2924         tmake_file.
2925         (moxie-*-uclinux*): Likewise.
2926         (moxie-*-rtems*): Likewise.
2927         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
2928         tmake_file.
2929         (lm32-*-rtems*): Likewise.
2930         (lm32-*-uclinux*): Likewise.
2931         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
2932         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
2933         (powerpc-*-linux*, powerpc64-*-linux*): Remove
2934         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
2935         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
2936         tmake_file.
2937         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
2938         tmake_file.
2939         (tic6x-*-uclinux): Likewise.
2940         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
2941         soft-fp/t-softfp from tmake_file.
2942         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
2943         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
2944         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
2945         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
2946         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
2947
2948 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2949
2950         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
2951         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
2952         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
2953         TPBIT, TPBIT_FUNCS.
2954         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
2955         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
2956         Remove.
2957         * config/arm/t-vxworks: Likewise.
2958         * config/arm/t-wince-pe: Likewise.
2959         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
2960         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2961         * config/bfin/t-bfin-elf: Likewise.
2962         * config/bfin/t-bfin-linux: Likewise.
2963         * config/bfin/t-bfin-uclinux: Likewise.
2964         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
2965         Remove.
2966         * config/fr30/t-fr30: Likewise.
2967         * config/frv/t-frv: Likewise.
2968         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
2969         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2970         * config/m32c/t-m32c: Likewise.
2971         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
2972         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2973         * config/mcore/t-mcore: Likewise.
2974         * config/mep/t-mep: Likewise.
2975         * config/microblaze/t-microblaze: Likewise.
2976         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
2977         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2978         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
2979         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2980         * config/mn10300/t-linux: Remove.
2981         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2982         * config/pdp11/t-pdp11: Likewise.
2983         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
2984         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
2985         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2986         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
2987         * config/rs6000/t-aix52: Likewise.
2988         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
2989         $(srcdir)/config/rs6000/ppc64-fp.c.
2990         * config/rs6000/t-fprules-fpbit: Remove.
2991         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
2992         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2993         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
2994         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2995         * config/sparc/t-elf: Likewise.
2996         * config/sparc/t-leon: Likewise.
2997         * config/sparc/t-leon3: Likewise.
2998         * config/spu/t-spu-elf: Likewise.
2999         (DPBIT_FUNCS): Remove.
3000         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3001         * config/v850/t-v850: Likewise.
3002         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
3003         (avr-*-*): Likewise.
3004         (h8300-*-rtems*): Set libgcc_tm_file.
3005         (h8300-*-elf*): Likewise.
3006         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
3007         tmake_file.
3008         (powerpc-*-eabisim*): Likewise.
3009         (powerpc-*-elf*): Likewise.
3010         (powerpc-*-eabialtivec*): Likewise.
3011         (powerpc-xilinx-eabi*): Likewise.
3012         (powerpc-*-eabi*): Likewise.
3013         (powerpc-*-rtems*): Likewise.
3014         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
3015         (powerpcle-*-elf*): Likewise.
3016         (powerpcle-*-eabisim*): Likewise.
3017         (powerpcle-*-eabi*): Likewise.
3018         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
3019         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
3020         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
3021         Remove.
3022
3023 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3024
3025         * Makefile.in (UNWIND_H): Remove.
3026         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
3027         ../libgcc/Makefile.in.
3028         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
3029         (LIBUNWINDDEP): Remove.
3030         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
3031         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
3032         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
3033         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
3034         Don't copy $(UNWIND_H).
3035         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
3036         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
3037         * aclocal.m4: Regenerate.
3038         * configure: Regenerate.
3039         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
3040         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
3041         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
3042         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
3043         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
3044         * config/arm/libunwind.S, config/arm/pr-support.c,
3045         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
3046         ../libgcc/config/arm.
3047         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
3048         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
3049         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
3050         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
3051         ($(T)frvend$(objext)): Likewise.
3052         * config/ia64/t-glibc (LIB2ADDEH): Remove.
3053         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
3054         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
3055         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
3056         ../libgcc/config/ia64.
3057         * config/ia64/t-hpux (LIB2ADDEH): Remove.
3058         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
3059         * config/ia64/t-vms (LIB2ADDEH): Remove.
3060         * config/ia64/vms.h (UNW_IVMS_MODE,
3061         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
3062         * config/picochip/t-picochip (LIB2ADDEH): Remove.
3063         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
3064         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
3065         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
3066         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
3067         $(srcdir)/../libgcc to refer to unwinder sources.
3068         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
3069         * config/t-darwin (LIB2ADDEH): Remove.
3070         * config/t-freebsd (LIB2ADDEH): Remove.
3071         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
3072         * config/t-libunwind-elf: Move to ../libgcc/config.
3073         * config/t-linux (LIB2ADDEH): Remove.
3074         * config/t-sol2 (LIB2ADDEH): Remove.
3075         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
3076         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
3077
3078 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
3079
3080         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
3081
3082         * doc/invoke.texi: Document core-avx-i.
3083
3084 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3085
3086         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
3087
3088 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
3089
3090         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
3091         result of multiple results reduction when extracting the final
3092         value using scalar code.
3093
3094 2011-08-05  Richard Guenther  <rguenther@suse.de>
3095
3096         PR tree-optimization/49984
3097         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
3098
3099 2011-08-05  Richard Guenther  <rguenther@suse.de>
3100
3101         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
3102         return true for constant integer ranges.
3103         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
3104         BIT_IOR_EXPR handling.
3105
3106 2011-08-04  Kai Tietz  <ktietz@redhat.com>
3107
3108         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
3109         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
3110
3111 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
3112
3113         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
3114         pattern def statement, and its access macro.
3115         (NUM_PATTERNS): Set to 5.
3116         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
3117         pattern def statement.
3118         (vect_transform_loop): Likewise.
3119         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
3120         function vect_recog_over_widening_pattern ().
3121         (vect_operation_fits_smaller_type): New function.
3122         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
3123         Likewise.
3124         (vect_pattern_recog_1): Move the code that marks pattern
3125         statements to vect_mark_pattern_stmts (), and call it.  Update
3126         documentation.
3127         * tree-vect-stmts.c (vect_supportable_shift): New function.
3128         (vect_analyze_stmt): Handle pattern def statement.
3129         (new_stmt_vec_info): Initialize pattern def statement.
3130
3131 2011-08-04  Richard Henderson  <rth@redhat.com>
3132
3133         PR target/49964
3134         * config/i386/i386.c (ix86_expand_call): Don't create nested
3135         PARALLELs for TARGET_VZEROUPPER.
3136         (ix86_split_call_vzeroupper): Fix extraction of the original call.
3137         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
3138         recognize nested PARALLELs.
3139         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
3140         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
3141         *sibcall_value_pop_vzeroupper): Likewise.
3142
3143 2011-08-04  Richard Henderson  <rth@redhat.com>
3144
3145         PR middle-end/49968
3146         * calls.c (expand_call): Use fixup_args_size_notes for
3147         emit_stack_restore.
3148         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
3149         in non-standard modes.
3150
3151 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
3152
3153         * gcc.c (self_spec): New variable.
3154         (static_specs): Add self_spec.
3155         (main): Call do_self_spec on "self_spec" specs after reading
3156         user specs files.  Move compare_debug handling right after that.
3157
3158 2011-08-04  Richard Guenther  <rguenther@suse.de>
3159
3160         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
3161         (value_range_nonnegative_p): New function.
3162         (ssa_name_nonnegative_p): Use it.
3163         (value_range_constant_singleton): New function.
3164         (op_with_constant_singleton_value_range): Use it.
3165         (extract_range_from_binary_expr_1): New function, split out from ...
3166         (extract_range_from_binary_expr): ... this.  Remove fallback
3167         constant folding done here.
3168
3169 2011-08-04  Richard Guenther  <rguenther@suse.de>
3170
3171         PR tree-optimization/49806
3172         * tree-vrp.c (op_with_boolean_value_range_p): New function.
3173         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
3174         a new statement for a final conversion to bool.
3175
3176 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
3177
3178         * gengtype-state.c: Include "bconfig.h" if
3179         GENERATOR_FILE is defined, "config.h" otherwise.
3180         * gengtype.c: Likewise.
3181         * gengtype-lex.l: Likewise.
3182         * gengtype-parse.c: Likewise.
3183         * Makefile.in (gengtype-lex.o-warn): New variable.
3184         (plugin_resourcesdir): Likewise.
3185         (plugin_bindir): Likewise.
3186         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
3187         (MOSTLYCLEANFILES): Add gengtype$(exeext).
3188         (native): Depend on gengtype$(exeext) is $enable_plugin
3189         is set to "yes".
3190         (gtype.state): Depend on s-gtype. Use temporary file.
3191         (gengtype-lex.o): New rule.
3192         (gengtype-parse.o): Likewise.
3193         (gengtype-state.o): Likewise.
3194         (gengtype$(exeext)): Likewise.
3195         (install-gengtype): Likewise.
3196         (gengtype.o): Likewise.
3197         (build/gengtype.o): Depend on version.h.
3198         (build/gengtype-state): Depend on double-int.h, version.h,
3199         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
3200         (install-plugin): Depend on install-gengtype.
3201
3202 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
3203
3204         PR middle-end/49905
3205         * tree.h (init_attributes): New prototype.
3206         * attribs.c (init_attributes): No longer static.
3207
3208 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3209
3210         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
3211         maybe_suffix.
3212
3213 2011-08-03   David Li  <davidxl@google.com>
3214
3215         * tree-optimize.c (execute_fixup_cfg): Fix up entry
3216         outgoing edge counts after inlining.
3217
3218 2011-08-03   David Li  <davidxl@google.com>
3219
3220         * profile.c (compute_branch_probabilities): Compute
3221         function frequency after profile annotation.
3222
3223 2011-08-04  Alan Modra  <amodra@gmail.com>
3224
3225         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
3226         use_backchain_to_restore_sp initialisation.
3227         (rs6000_legitimate_offset_address_p): Simplify offset test.
3228
3229 2011-08-03  Richard Henderson  <rth@redhat.com>
3230
3231         * config/spu/spu.md: Use define_c_enum instead of define_constants.
3232         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
3233         (UNSPECV_NOP): New.
3234
3235 2011-08-03  Richard Henderson  <rth@redhat.com>
3236
3237         PR target/34888
3238         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
3239
3240 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
3241
3242         PR tree-optimization/49948
3243         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
3244
3245 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
3246
3247         * config/m32c/m32c.c (class_sizes): Remove.
3248         (reduce_class): Change arguments and return type to reg_class_t.
3249         Change type cc var to HARD_REG_SET. Change type best var to
3250         reg_class_t. Change type best_size var to unsigned int. Remove
3251         initialization class_sizes var. Use reg_class_size array instead
3252         of class_sizes. Use reg_class_contents array instead
3253         of class_contents.
3254
3255 2011-08-03  Richard Guenther  <rguenther@suse.de>
3256
3257         PR middle-end/49958
3258         * fold-const.c (fold_binary_loc): Only associate
3259         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
3260         overflow wraps.
3261
3262 2011-08-03  Alan Modra  <amodra@gmail.com>
3263
3264         PR rtl-optimization/49941
3265         * jump.c (mark_jump_label): Comment.
3266         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
3267         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
3268         (mark_used_flags): Don't mark RETURN.
3269
3270 2011-08-03  Richard Guenther  <rguenther@suse.de>
3271
3272         PR tree-optimization/49938
3273         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
3274         deal with a POLYNOMIAL_CHREC.
3275
3276 2011-08-03  Revital Eres  <revital.eres@linaro.org>
3277
3278         * modulo-sched.c (calculate_stage_count,
3279         calculate_must_precede_follow, get_sched_window,
3280         try_scheduling_node_in_cycle, remove_node_from_ps): Add
3281         declaration.
3282         (update_node_sched_params, set_must_precede_follow, optimize_sc):
3283         New functions.
3284         (reset_sched_times): Call update_node_sched_params.
3285         (sms_schedule): Call optimize_sc.
3286         (get_sched_window): Change function arguments.
3287         (sms_schedule_by_order): Update call to get_sched_window.
3288         Call set_must_precede_follow.
3289         (calculate_stage_count): Add function argument.
3290
3291 2011-08-02  Richard Henderson  <rth@redhat.com>
3292
3293         PR target/49864
3294         PR target/49879
3295         * reg-notes.def (REG_ARGS_SIZE): New.
3296         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
3297         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
3298         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
3299         different stack levels.
3300         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
3301         (maybe_move_args_size_note): New.
3302         (combine_stack_adjustments_for_block): Use it.
3303         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
3304         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
3305         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
3306         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
3307         (cur_cfa): New.
3308         (queued_args_size): Remove.
3309         (add_cfi_args_size): Assert size is non-negative.
3310         (stack_adjust_offset, dwarf2out_args_size): Remove.
3311         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
3312         (notice_args_size, notice_eh_throw): New.
3313         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
3314         (dwarf2out_frame_debug_adjust_cfa): Likewise.
3315         (dwarf2out_frame_debug_cfa_offset): Likewise.
3316         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
3317         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
3318         (change_cfi_row): Don't emit args_size.
3319         (maybe_record_trace_start_abnormal): Split out from ...
3320         (maybe_record_trace_start): Here.  Set args_size_undefined.
3321         (create_trace_edges): Update to match.
3322         (scan_trace): Handle REG_ARGS_SIZE.
3323         (connect_traces): Connect args_size between EH insns.
3324         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
3325         * explow.c (suppress_reg_args_size): New.
3326         (adjust_stack_1): Split out from ...
3327         (adjust_stack): ... here.
3328         (anti_adjust_stack): Use it.
3329         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
3330         * expr.c (mem_autoinc_base): New.
3331         (fixup_args_size_notes): New.
3332         (emit_single_push_insn_1): Rename from emit_single_push_insn.
3333         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
3334         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
3335         * reload1.c (reload_as_needed): Likewise.
3336         * rtl.h (fixup_args_size_notes): Declare.
3337
3338 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
3339
3340         PR bootstrap/49914
3341         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
3342         of abs.
3343         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
3344         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
3345
3346 2011-08-02  Richard Henderson  <rth@redhat.com>
3347
3348         * config/h8300/h8300.c (push, pop): Return the insn.
3349         (h8300_swap_into_er6): Generate correct unwind info.
3350         (h8300_swap_out_of_er6): Likewise.
3351         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
3352         complex cfa expression.
3353         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
3354
3355 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
3356
3357         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
3358
3359 2011-08-02  Richard Henderson  <rth@redhat.com>
3360
3361         PR target/49878
3362         * config/h8300/h8300.c (h8300_move_ok): New.
3363         * config/h8300/h8300-protos.h: Declare it.
3364         * config/h8300/h8300.md (P): New mode iterator.
3365         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
3366         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
3367         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
3368         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
3369         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
3370         and pushqi1_h8300hs_normal; use PRE_MODIFY and
3371         register_no_sp_elim_operand.
3372         (*pushhi1_h8300hs_<P>): Similarly.
3373         (pushqi1, pushhi1, pushhi1_h8300): Remove.
3374         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
3375
3376 2011-08-02  Richard Henderson  <rth@redhat.com>
3377
3378         PR target/49881
3379         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
3380
3381 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
3382
3383         * c-parser.c (enum c_parser_prec): New enum, moved from within
3384         c_parser_binary_expression.
3385         (c_parser_binary_expression): Add PREC argument.  Stop parsing
3386         if operator has lower or equal precedence than PREC.
3387         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
3388         callers.
3389         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
3390         Adjust c_finish_omp_atomic caller.
3391         (c_parser_omp_taskyield): New function.
3392         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
3393         (c_parser_omp_clause_name): Handle final and mergeable clauses.
3394         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
3395         functions.
3396         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
3397         and PRAGMA_OMP_CLAUSE_MERGEABLE.
3398         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
3399         (c_parser_omp_clause_reduction): Handle min and max.
3400         * c-typeck.c (c_finish_omp_clauses): Don't complain about
3401         const qualified predetermined vars in firstprivate clause.
3402         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
3403         Handle MIN_EXPR and MAX_EXPR.
3404         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
3405         and OMP_CLAUSE_MERGEABLE.
3406         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
3407         and OMP_ATOMIC_CAPTURE_NEW.
3408         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
3409         OMP_CLAUSE_MERGEABLE.
3410         (omp_clause_code_name): Likewise.
3411         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
3412         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
3413         and OMP_CLAUSE_MERGEABLE.
3414         (OMP_CLAUSE_FINAL_EXPR): Define.
3415         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
3416         OMP_CLAUSE_MERGEABLE.
3417         (expand_task_call): Likewise.
3418         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
3419         (expand_omp_atomic_fetch_op): Handle cases where old or new
3420         value is needed afterwards.
3421         (expand_omp_atomic): Call expand_omp_atomic_load resp.
3422         expand_omp_atomic_store.
3423         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
3424         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
3425         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
3426         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
3427         * tree-nested.c (convert_nonlocal_omp_clauses,
3428         convert_local_omp_clauses): Likewise.
3429         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
3430         OMP_ATOMIC_CAPTURE_NEW): New.
3431         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
3432         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
3433         New inlines.
3434         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
3435         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
3436         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
3437
3438 2011-08-02  Kai Tietz  <ktietz@redhat.com>
3439
3440         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
3441         boolean-type.
3442         (ssa_forward_propagate_and_combine): Interprete result of
3443         forward_propagate_comparison.
3444         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
3445         boolean-typed operands for comparisons.
3446
3447 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
3448
3449         * config/avr/libgcc.S: Gather related function in the
3450         same input section.
3451         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
3452         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
3453         references.
3454         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
3455         __udivmodsi4, __divmodsi4, __prologue_saves__,
3456         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
3457         __do_copy_data, __do_clear_bss, __do_global_ctors,
3458         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
3459
3460 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
3461
3462         PR target/47766
3463         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
3464         (stack_protect_test): The pattern compares ptr_mode value.
3465
3466 2011-08-02  Alan Modra  <amodra@gmail.com>
3467
3468         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
3469         note for save_LR_around_toc_setup sequence.
3470
3471 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3472
3473         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
3474
3475 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
3476             Joseph Myers  <joseph@codesourcery.com>
3477
3478         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
3479         * hwint.c: Include diagnostic-core.h.
3480         (abs_hwi): New.
3481         (gcd): Moved here...
3482         (pos_mul_hwi): New.
3483         (mul_hwi): New.
3484         (least_common_multiple): Moved here...
3485         * hwint.h (gcd): ... from here.
3486         (least_common_multiple): ... from here.
3487         (HOST_WIDE_INT_MIN): New.
3488         (HOST_WIDE_INT_MAX): New.
3489         (abs_hwi): Declared.
3490         (gcd): Declared.
3491         (pos_mul_hwi): Declared.
3492         (mul_hwi): Declared.
3493         (least_common_multiple): Declared.
3494         * omega.c (check_pos_mul): Removed.
3495         (check_mul): Removed.
3496         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
3497         mul_hwi instead of check_mul.
3498
3499 2011-08-01  Richard Henderson  <rth@redhat.com>
3500
3501         PR target/49881
3502         * config/avr/avr.h (PUSH_ROUNDING): New.
3503         * config/avr/avr.md (pushqi1): Rename from *pushqi.
3504         (*pushhi, *pushsi, *pushsf): Remove.
3505         (MPUSH): New mode iterator.
3506         (push<MPUSH>1): New expander.
3507
3508 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
3509
3510         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
3511         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
3512         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
3513         mmix_preferred_output_reload_class): Remove.
3514         * config/mmix/mmix.c (mmix_preferred_reload_class,
3515         mmix_preferred_output_reload_class): Make static. Change rclass
3516         argument and return type to reg_class_t.
3517         (TARGET_PREFERRED_RELOAD_CLASS,
3518         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
3519
3520 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
3521
3522         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
3523         handling.
3524
3525 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3526
3527         PR target/47766
3528         * config/i386/i386.md (PTR): New.
3529         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
3530         (stack_protect_test): Likewise.
3531         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
3532         (stack_tls_protect_set_<mode>): Likewise.
3533         (stack_tls_protect_test_<mode>): Likewise.
3534
3535 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
3536
3537         PR target/49927
3538         * config/i386/i386.c (ix86_address_subreg_operand): New.
3539         (ix86_decompose_address): Use ix86_address_subreg_operand.
3540         (ix86_legitimate_address_p): Do not assert that subregs satisfy
3541         register_no_elim_operand in DImode.
3542
3543 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
3544
3545         PR tree-optimization/49926
3546         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
3547         in a chain doesn't have uses both inside and outside the loop.
3548
3549 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
3550
3551         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
3552         * config/avr/avr-devices.c (avr_mcu_types): Use it.
3553         * config/avr/avr-mcus.def (AVR_MCU): Use it.
3554         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
3555         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
3556         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
3557         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
3558         to detect if XJMP must not be skipped.
3559
3560 2011-08-02  Alan Modra  <amodra@gmail.com>
3561
3562         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
3563         Delete.
3564         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
3565         (rs6000_emit_prologue): Don't prematurely return when
3566         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
3567         save_toc_in_prologue case.
3568         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
3569         calls_alloca.
3570
3571 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
3572
3573         * config/avr/avr-devices.c: Delete SVN property svn:executable.
3574         * config/avr/predicates.md: Ditto.
3575         * config/avr/driver-avr.c: Ditto.
3576         * config/avr/genopt.sh: Set SVN property svn:executable to *.
3577
3578 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3579
3580         * calls.c (emit_library_call_value_1): Declare size only if
3581         BLOCK_REG_PADDING is defined.
3582
3583 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
3584
3585         PR target/49547
3586         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
3587         (x86_64-*-*): Likewise.
3588         * config/i386/i386.opt (mlzcnt): New.
3589         * config/i386/abmintrin.h: File removed.
3590         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
3591         * config/i386/lzcntintrin.h: ... here.  New file.
3592         (__lzcnt): Rename to ...
3593         (__lzcnt32): ... this.
3594         * config/i386/bmiintrin.h (head): Update copyright year.
3595         (__lzcnt_u16): Removed.
3596         (__lzcnt_u32): Likewise.
3597         (__lzcnt_u64): Likewise.
3598         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
3599         is defined, remove abmintrin.h.
3600         * config/i386/cpuid.h (bit_LZCNT): New.
3601         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3602         LZCNT feature.
3603         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3604         __LZCNT__ if needed.
3605         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
3606         (ix86_option_override_internal): Handle LZCNT option.
3607         (ix86_valid_target_attribute_inner_p): Likewise.
3608         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
3609         * config/i386/i386.h (TARGET_LZCNT): New.
3610         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
3611         * config/i386/i386.md (clz<mode>2): Update insn constraint.
3612         (clz<mode>2_lzcnt): Likewise.
3613         * doc/invoke.texi: Mention -mlzcnt option.
3614         * doc/extend.texi: Likewise.
3615
3616 2011-08-01  Julian Brown  <julian@codesourcery.com>
3617
3618         * configure.ac (fixed-point): Add ARM support.
3619         * configure: Regenerate.
3620         * config/arm/arm.c (arm_fixed_mode_set): New struct.
3621         (arm_set_fixed_optab_libfunc): New.
3622         (arm_set_fixed_conv_libfunc): New.
3623         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
3624         ARM-specific names.
3625         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
3626         return values in SImode.
3627         (arm_return_in_msb): Return fixed-point types in the msb.
3628         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
3629         upwards.
3630         (arm_scalar_mode_supported_p): Support fixed-point modes.
3631         (arm_vector_mode_supported_p): Support vector fixed-point modes.
3632         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
3633         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
3634         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
3635         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
3636         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
3637         New mode iterators.
3638         (qaddsub_suf): New mode attribute.
3639         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
3640         vector modes.
3641         * config/arm/predicates.md (sat_shift_operator): New predicate.
3642         * config/arm/arm-fixed.md: New.
3643         * config/arm/arm.md: Include arm-fixed.md.
3644         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
3645
3646 2011-08-01  Julian Brown  <julian@codesourcery.com>
3647
3648         * calls.c (emit_library_call_value_1): Support padding for libcall
3649         arguments and return values.
3650         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
3651         downwards in big-endian mode.
3652
3653 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3654
3655         PR debug/49887
3656         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
3657         * config/sol2-protos.h: Likewise.
3658         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
3659         solaris_code_end.
3660         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
3661         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
3662         solaris_file_end.
3663         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
3664
3665 2011-08-01  Julian Brown  <julian@codesourcery.com>
3666
3667         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
3668
3669 2011-08-01  Julian Brown  <julian@codesourcery.com>
3670
3671         * final.c (output_addr_const): Print fixed-point constants as
3672         decimal not hex.
3673
3674 2011-08-01  Richard Guenther  <rguenther@suse.de>
3675
3676         * stor-layout.c (initialize_sizetypes): Properly sign-extend
3677         bitsiztype TYPE_MAX_VALUE.
3678
3679 2011-08-01  Julian Brown  <julian@codesourcery.com>
3680
3681         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
3682         comparison helpers.
3683
3684 2011-07-31  Richard Henderson  <rth@redhat.com>
3685
3686         * config/h8300/crti.asm: Add flags to .section directive.
3687         * config/h8300/crtn.asm: Likewise.
3688
3689 2011-07-31  Richard Henderson  <rth@redhat.com>
3690
3691         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
3692         * tree.c (build_common_tree_nodes): Likewise.
3693
3694 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
3695
3696         PR target/49880
3697         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
3698         (divsi3_i1): Likewise.
3699
3700 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3701
3702         PR tree-optimization/49749
3703         * tree-ssa-reassoc.c (get_rank): New forward declaration.
3704         (PHI_LOOP_BIAS): New macro.
3705         (phi_rank): New function.
3706         (loop_carried_phi): Likewise.
3707         (propagate_rank): Likewise.
3708         (get_rank): Add calls to phi_rank and propagate_rank.
3709
3710 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3711
3712         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
3713         of TARGET_64BIT.
3714         (PTRDIFF_TYPE): Likewise.
3715
3716 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
3717
3718         PR target/49920
3719         * config/i386/i386.md (strset): Do not expand strset_singleop
3720         when %eax or $edi are fixed.
3721         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
3722         (*strsetsi_1): Ditto.
3723         (*strsethi_1): Ditto.
3724         (*strsetqi_1): Ditto.
3725         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
3726         (*rep_stossi): Ditto.
3727         (*rep_stosqi): Ditto.
3728         (*strlenqi_1): Ditto.
3729         (cmpstrnsi): Also fail when %ecx is fixed.
3730         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
3731         (*cmpstrnqi_1): Ditto.
3732         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
3733         (*strmovsi_1): Ditto.
3734         (*strmovhi_1): Ditto.
3735         (*strmovqi_1): Ditto.
3736         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
3737         (*rep_movsi): Ditto.
3738         (*rep_movqi): Ditto.
3739
3740 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
3741
3742         PR target/47908
3743         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
3744         Disable instruction scheduling for non-ColdFire targets.
3745         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
3746
3747 2011-07-31  Revital Eres  <revital.eres@linaro.org>
3748
3749         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
3750         of anti-dep edge from a branch.
3751         (add_cross_iteration_register_deps): Create anti-dep edge from
3752         a branch.
3753
3754 2011-07-31  Revital Eres  <revital.eres@linaro.org>
3755
3756         * modulo-sched.c: Change comment.
3757         (reset_sched_times): Fix print message.
3758         (print_partial_schedule): Add print info.
3759
3760 2011-07-31  Tom de Vries  <tom@codesourcery.com>
3761
3762         PR middle-end/43513
3763         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
3764         get_object_alignment and TYPE_ALIGN.
3765
3766 2011-07-30  Tom de Vries  <tom@codesourcery.com>
3767
3768         PR middle-end/43513
3769         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
3770         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
3771
3772 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3773
3774         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
3775         <sys/sbd.h>.
3776         (cpu_types): New array.
3777         (cputype): New function.
3778         (host_detect_local_cpu): Only define buf, f if !__sgi__.
3779         Use scaninvent instead of /proc/cpuinfo if __sgi__.
3780         * config.host: Also use driver-native.o, mips/x-native on
3781         mips-sgi-irix*.
3782         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
3783         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
3784         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
3785
3786 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
3787
3788         PR middle-end/49897
3789         PR middle-end/49898
3790         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
3791         in nested parallel and outer is a gimple_reg, mark it as addressable
3792         and set its bit in task_shared_vars bitmap too.
3793
3794 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
3795
3796         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
3797
3798 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3799
3800         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
3801         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
3802         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
3803         AMASK_LOCKPFTCHOK): Define.
3804         (host_detect_local_cpu): Remove buf, f, cpu_names.
3805         Define cpu_types, implver, amask.
3806         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
3807         native CPU.
3808         * config.host: Also use driver-alpha.o, alpha/x-alpha on
3809         alpha*-dec-osf*.
3810         * config/alpha/osf5.h [__alpha__ || __alpha]
3811         (host_detect_local_cpu): Declare.
3812         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
3813         (DRIVER_SELF_SPECS): Define.
3814
3815 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
3816
3817         PR target/47715
3818         * config/i386/i386.md (*load_tp_x32): New.
3819         (*load_tp_x32_zext): Ditto.
3820         (*add_tp_x32): Ditto.
3821         (*add_tp_x32_zext): Ditto.
3822         (*load_tp_<mode>): Disable for TARGET_X32 targets.
3823         (*add_tp_<mode>): Ditto.
3824         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
3825         ptr_mode and convert to Pmode if needed.
3826
3827 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
3828
3829         PR target/49687
3830         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
3831         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
3832         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
3833         Add X to register footprint: Clobber r26/r27.
3834
3835 2011-07-29  Richard Guenther  <rguenther@suse.de>
3836
3837         * builtins.c (fold_builtin_signbit): Build the comparison
3838         with a proper type.
3839
3840 2011-07-29  Richard Guenther  <rguenther@suse.de>
3841
3842         PR tree-optimization/49893
3843         * tree-predcom.c (suitable_reference_p): Volatile references
3844         are not suitable.
3845
3846 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
3847
3848         PR target/49313
3849         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
3850         (__ctzsi2): Result for 0 may be undefined.
3851         (__ctzhi2): Result for 0 may be undefined.
3852         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
3853         (__popcountsi2): Ditto. And don't clobber r26.
3854         (__popcountdi2): Ditto. And don't clobber r27.
3855         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
3856         (parityhi2): New expand.
3857         (paritysi2): New expand.
3858         (popcounthi2): New expand.
3859         (popcountsi2): New expand.
3860         (clzhi2): New expand.
3861         (clzsi2): New expand.
3862         (ctzhi2): New expand.
3863         (ctzsi2): New expand.
3864         (ffshi2): New expand.
3865         (ffssi2): New expand.
3866         (copysignsf3): New insn.
3867         (bswapsi2): New expand.
3868         (*parityhi2.libgcc): New insn.
3869         (*parityqihi2.libgcc): New insn.
3870         (*paritysihi2.libgcc): New insn.
3871         (*popcounthi2.libgcc): New insn.
3872         (*popcountsi2.libgcc): New insn.
3873         (*popcountqi2.libgcc): New insn.
3874         (*popcountqihi2.libgcc): New insn-and-split.
3875         (*clzhi2.libgcc): New insn.
3876         (*clzsihi2.libgcc): New insn.
3877         (*ctzhi2.libgcc): New insn.
3878         (*ctzsihi2.libgcc): New insn.
3879         (*ffshi2.libgcc): New insn.
3880         (*ffssihi2.libgcc): New insn.
3881         (*bswapsi2.libgcc): New insn.
3882
3883 2011-07-29  Richard Guenther  <rguenther@suse.de>
3884
3885         * tree-vrp.c (get_value_range): Only set parameter default
3886         definitions to varying, leave others at undefined.
3887         (extract_range_from_binary_expr): Fix undefined handling.
3888         (vrp_visit_phi_node): Handle merged undefined state.
3889
3890 2011-07-29  Wei Guozhi  <carrot@google.com>
3891
3892         PR rtl-optimization/49799
3893         * combine.c (make_compound_operation): Check if the bit field is valid
3894         before change it to bit field extraction.
3895
3896 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
3897
3898         PR rtl-optimization/49891
3899         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
3900         newly created returnjumps.
3901
3902 2011-07-28  DJ Delorie  <dj@redhat.com>
3903
3904         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
3905         local frame in a naked function, and produce a suitable error for
3906         that specific case.
3907
3908         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
3909         registers to be reloaded in HI classes when the target is HI.
3910
3911 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
3912
3913         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
3914         bound_one, bound_two.
3915
3916 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
3917
3918         PR middle-end/48648
3919         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
3920         CLAST assignments.
3921         (translate_clast): Same.
3922         (translate_clast_assignment): New.
3923
3924 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
3925
3926         PR tree-optimization/49876
3927         * sese.c (rename_uses): Do not return false on gloog_error: set
3928         the new_expr to integer_zero_node and continue code generation.
3929         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
3930
3931 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
3932
3933         PR debug/49846
3934         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
3935         arguments also check if they aren't initialized with a MODE_INT
3936         mode of the same size.
3937
3938 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
3939
3940         * expr.c (get_bit_range): Handle *MEM_REF's.
3941
3942 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
3943
3944         * rtlanal.c (tablejump_p): False for returns.
3945         * reorg.c (first_active_target_insn): New static function.
3946         (find_end_label): Set JUMP_LABEL for a new returnjump.
3947         (optimize_skip, get_jump_flags, rare_destination,
3948         mostly_true_jump, get_branch_condition,
3949         steal_delay_list_from_target, own_thread_p,
3950         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
3951         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
3952         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
3953         * jump.c (delete_related_insns): Likewise.
3954         (jump_to_label_p): New function.
3955         (redirect_target): New static function.
3956         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
3957         (redirect_jump_1): Assert that the new label is nonnull.
3958         (redirect_jump): Likewise.
3959         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
3960         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
3961         exit block.
3962         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
3963         changed.  Ensure that the right label is passed to redirect_jump.
3964         * function.c (emit_return_into_block,
3965         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
3966         ret_rtx in their JUMP_LABEL.
3967         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
3968         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
3969         pass ret_rtx as label.
3970         * cfglayout.c (fixup_reorder_chain): Use
3971         force_nonfallthru_and_redirect rather than force_nonfallthru.
3972         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
3973         * rtl.h (ANY_RETURN_P): New macro.
3974         (jump_to_label_p): Declare.
3975         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
3976         JUMP_LABELs.
3977         (mark_target_live_regs): Likewise.
3978         * basic-block.h (force_nonfallthru_and_redirect): Declare.
3979         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
3980         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
3981         alpha_tablejump_best_label): Remove functions.
3982         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
3983         alpha_tablejump_best_label): Remove declarations.
3984         * config/sh/sh.c (barrier_align, split_branches): Adjust for
3985         ret_rtx in JUMP_LABELs.
3986         * config/arm/arm.c (is_jump_table): Likewise.
3987
3988 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
3989
3990         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
3991         special predicate.  Remove explicit mode checks.
3992
3993 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
3994
3995         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
3996         DW_AT_data_member_location containing just DW_OP_plus_uconst.
3997
3998         PR debug/49871
3999         * dwarf2out.c (size_of_die, value_format, output_die): Use
4000         DW_FORM_udata instead of DW_FORM_data[48] for
4001         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
4002
4003 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
4004
4005         * config/i386/i386.md (*tls_global_dynamic_64): Update
4006         length attribute.
4007
4008 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
4009
4010         PR target/47715
4011         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
4012         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
4013         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
4014         (tls_dynamic_gnu2_64): Ditto.
4015         (*tls_dynamic_gnu2_lea_64): Ditto.
4016         (*tls_dynamic_gnu2_call_64): Ditto.
4017         (*tls_dynamic_gnu2_combine_64): Ditto.
4018
4019 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
4020
4021         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
4022
4023 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
4024
4025         PR target/47364
4026         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
4027
4028 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4029
4030         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
4031         before the core constraints. Adjust attributes.
4032         ("*thumb2_movdf_vfp"): Likewise.
4033
4034 2011-07-28  Kai Tietz  <ktietz@redhat.com>
4035
4036         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
4037         (simplify_truth_ops_using_ranges): Likewise.
4038         (build_assert_expr_for): Likewise.
4039         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
4040         and handle BIT_NOT_EXPR for truth-operation.
4041
4042 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
4043
4044         PR target/49313
4045         Undo r176835 from trunk
4046         2011-07-27  Georg-Johann Lay
4047
4048 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
4049
4050         PR target/49687
4051         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
4052         Add _muluhisi3, _mulshisi3, _usmulhisi3.
4053         * config/avr/libgcc.S (__mulsi3): Rewrite.
4054         (__mulhisi3): Rewrite.
4055         (__umulhisi3): Rewrite.
4056         (__usmulhisi3): New.
4057         (__muluhisi3): New.
4058         (__mulshisi3): New.
4059         (__mulohisi3): New.
4060         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
4061         declare.
4062         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
4063         (pseudo_register_or_const_int_operand): New.
4064         (combine_pseudo_register_operand): New.
4065         (u16_operand): New.
4066         (s16_operand): New.
4067         (o16_operand): New.
4068         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
4069         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
4070         (any_extend, any_extend2): New code iterators.
4071         (extend_prefix): New code attribute.
4072         (mulsi3): Rewrite. Turn insn to expander.
4073         (mulhisi3): Ditto.
4074         (umulhisi3): Ditto.
4075         (usmulhisi3): New expander.
4076         (*mulsi3): New insn-and-split.
4077         (mulu<mode>si3): New insn-and-split.
4078         (muls<mode>si3): New insn-and-split.
4079         (mulohisi3): New insn-and-split.
4080         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
4081         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
4082         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
4083         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
4084         insn-and-split.
4085         (*mulsi3_call): Rewrite.
4086         (*mulhisi3_call): Rewrite.
4087         (*umulhisi3_call): Rewrite.
4088         (*usmulhisi3_call): New insn.
4089         (*muluhisi3_call): New insn.
4090         (*mulshisi3_call): New insn.
4091         (*mulohisi3_call): New insn.
4092         (extendqihi2): Use combine_pseudo_register_operand as predicate
4093         for operand 1.
4094         (extendqisi2): Ditto.
4095         (zero_extendqihi2): Ditto.
4096         (zero_extendqisi2): Ditto.
4097         (zero_extendhisi2): Ditto.
4098         (extendhisi2): Ditto. Don't early-clobber operand 0.
4099
4100 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
4101
4102         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
4103
4104 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
4105
4106         PR tree-optimization/49471
4107         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
4108         iv only when the largest type is unsigned.  Do not call
4109         lang_hooks.types.type_for_size.
4110
4111 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
4112
4113         PR middle-end/45450
4114         * graphite-poly.c (apply_poly_transforms): Disable legality check
4115         after an openscop read.
4116
4117 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
4118
4119         PR middle-end/47691
4120         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
4121         copy_bb_and_scalar_dependences.
4122         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
4123         (graphite_copy_stmts_from_block): Update call to rename_uses.
4124         (copy_bb_and_scalar_dependences): Update call to
4125         graphite_copy_stmts_from_block.
4126         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
4127
4128 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
4129
4130         PR target/49313
4131         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
4132         (__ctzsi2): Result for 0 may be undefined.
4133         (__ctzhi2): Result for 0 may be undefined.
4134         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
4135         (__popcountsi2): Ditto. And don't clobber r26.
4136         (__popcountdi2): Ditto. And don't clobber r27.
4137         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
4138         (parityhi2): New expand.
4139         (paritysi2): New expand.
4140         (popcounthi2): New expand.
4141         (popcountsi2): New expand.
4142         (clzhi2): New expand.
4143         (clzsi2): New expand.
4144         (ctzhi2): New expand.
4145         (ctzsi2): New expand.
4146         (ffshi2): New expand.
4147         (ffssi2): New expand.
4148         (copysignsf3): New insn.
4149         (bswapsi2): New expand.
4150         (*parityhi2.libgcc): New insn.
4151         (*parityqihi2.libgcc): New insn.
4152         (*paritysihi2.libgcc): New insn.
4153         (*popcounthi2.libgcc): New insn.
4154         (*popcountsi2.libgcc): New insn.
4155         (*popcountqi2.libgcc): New insn.
4156         (*popcountqihi2.libgcc): New insn-and-split.
4157         (*clzhi2.libgcc): New insn.
4158         (*clzsihi2.libgcc): New insn.
4159         (*ctzhi2.libgcc): New insn.
4160         (*ctzsihi2.libgcc): New insn.
4161         (*ffshi2.libgcc): New insn.
4162         (*ffssihi2.libgcc): New insn.
4163         (*bswapsi2.libgcc): New insn.
4164
4165 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
4166
4167         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
4168         the mode of symbolic_opreand RTXes.
4169
4170 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
4171
4172         * config/i386/predicates.md (x86_64_movabs_operand): Return false
4173         for pic_32bit_operand RTXes.
4174         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
4175         in DImode.
4176
4177 2011-07-27  Kai Tietz  <ktietz@redhat.com>
4178
4179         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
4180         for 32-bit, too.
4181         (ix86_handle_abi_attribute): Allow function attributes
4182         ms_abi/sysv_abi in 32-bit mode, too.
4183         * doc/extend.texi: Adjust attribute documentation.
4184
4185         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
4186         expression handling.
4187         (and_var_with_comparison_1): Likewise.
4188
4189 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
4190
4191         * params.h (ALLOW_STORE_DATA_RACES): New.
4192         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
4193         * Makefile.in (expr.o): Depend on PARAMS_H.
4194         * machmode.h (get_best_mode): Add argument.
4195         * fold-const.c (optimize_bit_field_compare): Add argument to
4196         get_best_mode.
4197         (fold_truthop): Same.
4198         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
4199         * expr.c (emit_group_store): Same.
4200         (copy_blkmode_from_reg): Same.
4201         (write_complex_part): Same.
4202         (optimize_bitfield_assignment_op): Add argument.
4203         Add argument to get_best_mode.
4204         (get_bit_range): New.
4205         (expand_assignment): Calculate maxbits and pass it down accordingly.
4206         (store_field): New argument.
4207         (expand_expr_real_2): New argument to store_field.  Include params.h.
4208         * expr.h (store_bit_field): New argument.
4209         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
4210         into account maxbits.
4211         * calls.c (store_unaligned_arguments_into_pseudos): New argument
4212         to store_bit_field.
4213         * expmed.c (store_bit_field_1): New argument.  Use it.
4214         (store_bit_field): Same.
4215         (store_fixed_bit_field): Same.
4216         (store_split_bit_field): Same.
4217         (extract_bit_field_1): Pass new argument to get_best_mode.
4218         (extract_bit_field): Same.
4219         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
4220         * doc/invoke.texi: Document parameter allow-store-data-races.
4221
4222 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
4223
4224         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
4225
4226 2011-07-27  Kai Tietz  <ktietz@redhat.com>
4227
4228         * tree-vrp.c (extract_range_from_binary_expr): Remove
4229         TRUTH-binary cases and add new bitwise-cases.
4230         (extract_range_from_assignment): Likewise.
4231         (register_edge_assert_for_1): Likeiwise.
4232         (register_edge_assert_for): Likewise.
4233         (simplify_truth_ops_using_ranges): Likewise.
4234         (simplify_stmt_using_ranges): Likewise.
4235
4236 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
4237
4238         PR target/47372
4239         * config/i386/i386.c (ix86_delegitimize_address): Call
4240         simplify_gen_subreg for PIC with mode of x only if modes of
4241         x and orig_x are different.
4242
4243 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
4244
4245         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
4246         to GC allocated copy of the string.
4247         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
4248         before .debug_line, not after it.
4249
4250 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
4251
4252         PR middle-end/47046
4253         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
4254         evolution_function_is_affine_p on CHREC_RIGHT.
4255
4256 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
4257
4258         * tree-data-ref.c (max_stmt_executions_tree): Do not call
4259         lang_hooks.types.type_for_size.
4260
4261 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
4262
4263         PR middle-end/47653
4264         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
4265         loops using wrapping semantics.
4266
4267 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
4268
4269         PR middle-end/48805
4270         * tree-scalar-evolution.c (instantiate_scev_r): Return
4271         chrec_dont_know for ADDR_EXPR.
4272
4273 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
4274             H.J. Lu  <hongjiu.lu@intel.com>
4275
4276         PR target/47369
4277         PR target/49853
4278         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
4279         if legitimize_tls_address returned operand in wrong mode. Allow
4280         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
4281         if legitimize_pic_address returned operand in wrong mode.
4282
4283 2011-07-26  Martin Jambor  <mjambor@suse.cz>
4284
4285         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
4286         return false for invariants.
4287
4288 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
4289
4290         * config/i386/i386.md (add->lea splitter): Implement using SWI
4291         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
4292         (add->lea zext splitter): Change operand 2 predicate to
4293         x86_64_nonmemory_operand.
4294
4295 2011-07-26  Richard Guenther  <rguenther@suse.de>
4296
4297         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
4298         frequency makes everything hot.
4299
4300 2011-07-26  Richard Guenther  <rguenther@suse.de>
4301
4302         PR tree-optimization/49840
4303         * tree-vrp.c (range_fits_type_p): Properly handle full
4304         double-int precision.
4305
4306 2011-07-26  Martin Jambor  <mjambor@suse.cz>
4307
4308         PR bootstrap/49786
4309         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
4310         counts.
4311         (update_specialized_profile): Likewise.
4312
4313 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
4314             H.J. Lu  <hongjiu.lu@intel.com>
4315
4316         PR target/47381
4317         PR target/49832
4318         PR target/49833
4319         * config/i386/i386.md (i): Change SImode attribute to "e".
4320         (g): Change SImode attribute to "rme".
4321         (di): Change SImode attribute to "nF".
4322         (general_operand): Change SImode attribute to x86_64_general_operand.
4323         (general_szext_operand): Change SImode attribute to
4324         x86_64_szext_general_operand.
4325         (immediate_operand): Change SImode attribute to
4326         x86_64_immediate_operand.
4327         (nonmemory_operand): Change SImode attribute to
4328         x86_64_nonmemory_operand.
4329         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
4330         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
4331         (*lea_1): Use SWI48 mode iterator.
4332         (*lea_1_zext): New insn pattern.
4333         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
4334         (*bt<mode>): Ditto.
4335         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
4336         Update operand constraints.
4337         (addsi_1_zext): Ditto.
4338         (*add<mode>2): Ditto.
4339         (*addsi_3_zext): Ditto.
4340         (*subsi_1_zext): Ditto.
4341         (*subsi_2_zext): Ditto.
4342         (*subsi_3_zext): Ditto.
4343         (*addsi3_carry_zext): Ditto.
4344         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
4345         (*mulsi3_1_zext): Ditto.
4346         (*andsi_1): Ditto.
4347         (*andsi_1_zext): Ditto.
4348         (*andsi_2_zext): Ditto.
4349         (*<any_or:code>si_1_zext): Ditto.
4350         (*<any_or:code>si_2_zext): Ditto.
4351         (*test<mode>_1): Use <general_operand> predicate for operand 1.
4352         (*and<mode>_2): Ditto.
4353         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
4354         (add->lea splitter): Check operand modes in insn constraint.  Extend
4355         operands less than SImode wide to SImode.
4356         (add->lea zext splitter): Do not extend input operands to DImode.
4357         (*lea_general_1): Handle only QImode and HImode operands.
4358         (*lea_general_2): Ditto.
4359         (*lea_general_3): Ditto.
4360         (*lea_general_1_zext): Remove.
4361         (*lea_general_2_zext): Ditto.
4362         (*lea_general_3_zext): Ditto.
4363         (*lea_general_4): Check operand modes in insn constraint.  Extend
4364         operands less than SImode wide to SImode.
4365         (ashift->lea splitter): Ditto.
4366         * config/i386/i386.c (ix86_print_operand_address): Print address
4367         registers with 'q' modifier on 64bit targets.
4368         * config/i386/predicates.md (pic_32bit_opreand): Define as special
4369         predicate.  Reject non-SI and non-DI modes.
4370
4371 2011-07-25  Andrew Pinski  <apinski@cavium.com>
4372
4373         PR tree-opt/49671
4374         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
4375         TREE_THIS_NOTRAP into the inner most MEM_REF.
4376         Always copy TREE_THIS_VOLATILE.
4377         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
4378         arguments are not volatile references.
4379
4380 2011-07-25  Richard Henderson  <rth@redhat.com>
4381
4382         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
4383         * final.c (final_scan_insn): Don't test for it.
4384         (rest_of_clean_state): Likewise.
4385
4386 2011-07-25  Richard Henderson  <rth@redhat.com>
4387
4388         PR debug/49841
4389         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
4390         (emit_frame_save): Likewise.
4391         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
4392         insn onto a dummy blockage insn after the join label.
4393
4394 2011-07-25  Richard Henderson  <rth@redhat.com>
4395
4396         * dwarf2cfi.c (dw_trace_info): Add ID member.
4397         (get_trace_index): Remove.  Change users to use ID member.
4398         (before_next_cfi_note): New.
4399         (connect_traces): Remove unreachable traces before the main loop.
4400         Look across one trace and generate remember/restore_state if needed.
4401
4402 2011-07-25  Richard Henderson  <rth@redhat.com>
4403
4404         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
4405
4406 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
4407
4408         * genattr.c (write_upcase, gen_attr <enum definition writing>):
4409         Move to ...
4410         * genattr-common.c ... here.
4411         (main): Call gen_attr.
4412         * optc-gen.awk: Make generated program include insn-attr-common.h .
4413         * Makefile.in (oprions.o): Depend on insn-attr-common.h
4414
4415 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
4416
4417         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
4418         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
4419         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
4420         m32c_print_operand, m32c_print_operand_address): Remove.
4421         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
4422         Change return type to bool. Change argument type to bool.
4423         (m32c_print_operand, m32c_print_operand_address): Make static.
4424         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
4425         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
4426
4427 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4428
4429         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
4430         attributes): Document mmap.
4431
4432 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
4433
4434         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
4435         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
4436         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
4437         mmix_print_operand, mmix_print_operand_address): Remove.
4438         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
4439         Change return type to bool. Change argument type to bool.
4440         (mmix_print_operand, mmix_print_operand_address): Make static.
4441         (mmix_intval, mmix_output_condition): Change 'x' argument type
4442         to const_rtx.
4443         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
4444         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
4445
4446 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
4447
4448         PR target/39386
4449         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
4450         shift counter for x << x and x >> x shifts.
4451
4452 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4453
4454         PR target/47124
4455         * config.gcc: Reject *-*-solaris2 configuration.
4456
4457 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
4458
4459         PR tree-optimization/49809
4460         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
4461         gimple_get_lhs instead of gimple_assign_lhs.
4462
4463 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4464
4465         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
4466
4467 2011-07-25  Richard Guenther  <rguenther@suse.de>
4468
4469         PR tree-optimization/49822
4470         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
4471         more.  Make sure to preserve stmts with side-effects.  Properly
4472         handle virtual defs, follow a longer def chain.
4473
4474 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
4475
4476         PR plugins/45348
4477         PR plugins/48425
4478         PR plugins/46577
4479         * Makefile.in: Do not flatten c-family directory when installing
4480         plugin headers.
4481
4482 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
4483
4484         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
4485         original nodes if we are dealing with virtual clones.
4486
4487 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
4488
4489         * common/config/c6x/c6x-common.c: New file.
4490
4491 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
4492
4493         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
4494
4495 2011-07-25  Richard Guenther  <rguenther@suse.de>
4496
4497         PR tree-optimization/49715
4498         * tree-vrp.c: Include expr.h and optabs.h.
4499         (range_fits_type_): New function.
4500         (simplify_float_conversion_using_ranges): Likewise.
4501         (simplify_stmt_using_ranges): Call it.
4502         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
4503         * optabs.c (can_float_p): Export.
4504         * optabs.h (can_float_p): Declare.
4505
4506 2011-07-25  Richard Guenther  <rguenther@suse.de>
4507
4508         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
4509         (get_value_range): For out-of-range SSA names or names created
4510         after propagation return a read-only varying range.
4511         (dump_all_value_ranges): Adjust.
4512         (vrp_initialize): Likewise.
4513         (vrp_finalize): Likewise.
4514
4515 2011-07-24  Richard Henderson  <rth@redhat.com>
4516
4517         PR debug/49831
4518         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
4519         them entirely.
4520
4521 2011-07-24  Richard Henderson  <rth@redhat.com>
4522
4523         PR debug/49825
4524         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
4525         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
4526
4527 2011-07-24  Richard Henderson  <rth@redhat.com>
4528
4529         PR debug/49827
4530         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
4531
4532 2011-07-24  Richard Henderson  <rth@redhat.com>
4533
4534         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
4535         Zero args_size for abnormal edges.  Adjust all callers.
4536
4537 2011-07-24  Richard Henderson  <rth@redhat.com>
4538
4539         PR debug/49825
4540         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
4541
4542 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
4543
4544         PR bootstrap/49835
4545         * collect2.c (demangle_flag): Removed.
4546
4547 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
4548
4549         * configure.ac (demangler_in_ld): Default to yes.
4550         * configure: Regenerated.
4551         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
4552         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
4553         --no-demangle options straight through to ld.  When
4554         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
4555         way that has the intended effect on Windows.
4556
4557 2011-07-23  Richard Henderson  <rth@redhat.com>
4558
4559         * dwarf2cfi.c: Include basic-block.h.
4560         (dw_label_info): Remove.
4561         (trace_work_list, trace_index): New.
4562         (remember_row, emit_cfa_remember): Remove.
4563         (dw_trace_info_hash, dw_trace_info_eq): New.
4564         (get_trace_index, get_trace_info): New.
4565         (save_point_p): New.
4566         (free_cfi_row): Remove.
4567         (add_cfi): Do not emit DW_CFA_remember_state.
4568         (cfa_row_equal_p): New.
4569         (barrier_args_size): Remove.
4570         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
4571         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
4572         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
4573         (dwarf2out_cfi_begin_epilogue): Remove.
4574         (dwarf2out_frame_debug_restore_state): Remove.
4575         (connect_traces, create_pseudo_cfg): New.
4576         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
4577         * Makefile.in (dwarf2cfi.o): Update.
4578
4579 2011-07-23  Richard Henderson  <rth@redhat.com>
4580
4581         * dwarf2cfi.c (dw_trace_info): New.
4582         (dw_label_info): New.
4583         (cie_return_save): New.
4584         (cur_trace): New.
4585         (queued_args_size): Rename from args_size.  Update all users.
4586         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
4587         (def_cfa_1): Use cur_trace instead of cfa_*.
4588         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
4589         (clobbers_queued_reg_save, reg_saved_in): Likewise.
4590         (dwarf2out_frame_debug_expr): Likewise.
4591         (create_cie_data): Split out from ...
4592         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
4593
4594 2011-07-23  Richard Henderson  <rth@redhat.com>
4595
4596         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
4597         Update all users to match.
4598         (execute_dwarf2_frame): Free reg_saved_in_data.
4599
4600 2011-07-23  Richard Henderson  <rth@redhat.com>
4601
4602         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
4603         (queued_reg_saves): Don't GTY.  Change to a VEC.
4604         (queue_reg_save): Update to match.
4605         (dwarf2out_flush_queued_reg_saves): Likewise.
4606         (clobbers_queued_reg_save): Likewise.
4607         (reg_saved_in): Likewise.
4608         (execute_dwarf2_frame): Free queued_reg_saves.
4609
4610 2011-07-23  Richard Henderson  <rth@redhat.com>
4611
4612         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
4613
4614 2011-07-23  Richard Henderson  <rth@redhat.com>
4615
4616         * dwarf2cfi.c (add_cfi_args_size): Split out from...
4617         (dwarf2out_args_size): ... here.
4618         (add_cfi_restore): Split out from ...
4619         (dwarf2out_frame_debug_cfa_restore): ... here.
4620         (def_cfa_0): Split out from ...
4621         (def_cfa_1): ... here.
4622         (cfi_oprnd_equal_p, cfi_equal_p): New.
4623         (change_cfi_row): New.
4624         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
4625         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
4626         (output_cfis): Remove.
4627         * dwarf2out.c (output_fde): Simplify output_cfi loop.
4628         (dwarf2out_switch_text_section): Don't call output_cfis.
4629         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
4630         * dwarf2out.h: Update decls.
4631         (enum dw_val_class): Add dw_val_class_none.
4632
4633 2011-07-23  Richard Henderson  <rth@redhat.com>
4634
4635         * dwarf2cfi.c (update_row_reg_save): New.
4636         (dwarf2out_frame_debug_cfa_expression): Use it.
4637         (dwarf2out_frame_debug_cfa_restore): Likewise.
4638         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
4639
4640 2011-07-23  Richard Henderson  <rth@redhat.com>
4641
4642         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
4643
4644 2011-07-23  Richard Henderson  <rth@redhat.com>
4645
4646         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
4647         (cie_cfi_row): New.
4648         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
4649         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
4650         (cur_row, remember_row): New.
4651         (def_cfa_1): Use cur_row instead of the old_* variables.
4652         (dwarf2out_frame_debug_restore_state): Similarly.
4653         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
4654         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
4655         (dwarf2out_frame_debug_adjust_cfa): Likewise.
4656         (dwarf2out_frame_debug_cfa_offset): Likewise.
4657         (dwarf2out_frame_debug_expr): Likewise.
4658         (execute_dwarf2_frame): Set up cur_row.
4659         * dwarf2out.h (struct cfa_loc): Mark for GTY.
4660
4661 2011-07-23  Richard Henderson  <rth@redhat.com>
4662
4663         * basic-block.h (EDGE_PRESERVE): New.
4664         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
4665         * bb-reorder.c: Include except.h.
4666         (fix_up_crossing_landing_pad): New.
4667         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
4668         landing pads in the right partition.  Duplicate as necessary.
4669         (partition_hot_cold_basic_blocks): Fix up DF info after
4670         duplicating landing pads.
4671         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
4672         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
4673         is set properly.  Validate that EH edges are not CROSSING.
4674         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
4675         (dw2_build_landing_pads): ... here.
4676         (convert_to_eh_region_ranges): Remove code to fixup crossing
4677         landing pads.
4678         * except.h (expand_dw2_landing_pad_for_region): Declare.
4679         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
4680
4681 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
4682
4683         PR target/49816
4684         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
4685
4686 2011-07-22  Jason Merrill  <jason@redhat.com>
4687
4688         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
4689
4690 2011-07-22  Richard Henderson  <rth@redhat.com>
4691
4692         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
4693
4694 2011-07-22  Richard Henderson  <rth@redhat.com>
4695
4696         * jump.c (maybe_propagate_label_ref): Split out of...
4697         (mark_all_labels): ... here.  Do not attempt label_ref
4698         propagation while in cfglayout mode.
4699
4700 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
4701
4702         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
4703         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
4704         (dwarf_attr_name): Handle DW_AT_GNU_macros.
4705         (dwarf2out_define): If the vector is empty and
4706         lineno is 0, emit a dummy entry first.
4707         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
4708         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
4709         optimize_macinfo_range): New functions.
4710         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
4711         mergeable, optimize longer strings using
4712         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
4713         optimize longer sequences of define/undef ops from headers
4714         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
4715         emit a section headers.
4716         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
4717         and macinfo_section_label to DEBUG_MACRO_SECTION
4718         resp. DEBUG_MACRO_SECTION_LABEL.
4719         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
4720         instead of DW_AT_macro_info.
4721
4722         PR other/32998
4723         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
4724         options.
4725         * dwarf2out.c: Include opts.h.
4726         (dchar_p): New typedef.  Define heap VEC for it.
4727         (producer_string): New variable.
4728         (gen_producer_string): New function.
4729         (gen_compile_unit_die): Use it.
4730         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
4731         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
4732         * doc/invoke.texi: Document -grecord-gcc-switches and
4733         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
4734         to -frecord-gcc-switches description.
4735
4736 2011-07-22  Jason Merrill  <jason@redhat.com>
4737
4738         PR c++/30112
4739         * c-decl.c (c_linkage_bindings): Define.
4740
4741 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
4742
4743         PR debug/49815
4744         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
4745
4746 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
4747
4748         * config/i386/i386.c (ix86_option_override_internal): Disallow
4749         MS ABI in x32 mode.
4750         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
4751         only for TARGET_LP64.
4752         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
4753
4754 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
4755
4756         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
4757         avoid warnings when GCC is built with a C++ compiler.
4758
4759 2011-07-22  Martin Jambor  <mjambor@suse.cz>
4760
4761         PR lto/49796
4762         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
4763         if decl node is in another partition, call cgraph_get_node only once.
4764
4765 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
4766
4767         * config.gcc (x86_64-*-linux*): Set
4768         default_gnu_indirect_function to yes.
4769
4770 2011-07-22  Richard Guenther  <rguenther@suse.de>
4771
4772         PR tree-optimization/45819
4773         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
4774         preserve volatile and notrap flags.
4775
4776 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4777             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4778
4779         PR bootstrap/49794
4780         * configure.ac: Test AM_ICONV with CXX.
4781         * configure: Regenerate.
4782         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
4783
4784 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4785
4786         PR bootstrap/49797
4787         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
4788         (set_cloog_options): Use it.
4789
4790 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
4791
4792         PR c++/49756
4793         * gcc.c (main): Call stack_limit_increase (64MB).
4794         * toplev.c (toplev_main): Likewise.
4795
4796 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
4797
4798         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
4799         instead of force_reg.
4800
4801 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
4802
4803         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
4804         needed and use force_reg after convert.
4805         (ix86_expand_call): Likewise.
4806         (ix86_expand_special_args_builtin): Likewise.
4807         (ix86_expand_builtin): Likewise.
4808
4809 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
4810
4811         PR middle-end/47654
4812         PR middle-end/49649
4813         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
4814         in parameter.  Initialize v1 and v2 based on the values returned
4815         by clast_name_to_lb_ub.
4816         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
4817         values.
4818         (type_for_clast_bin): Same.
4819         (type_for_clast_expr): Same.
4820         (type_for_clast_eq): Update calls to type_for_clast_expr.
4821         (type_for_clast_for): Same.
4822         (build_iv_mapping): Same.
4823         * graphite-ppl.h (value_min): New.
4824
4825 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
4826
4827         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
4828         types whenever possible.
4829
4830 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
4831
4832         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
4833         and ub fields.
4834         (new_clast_name_index): Add lb and ub parameters.
4835         (free_clast_name_index): New.
4836         (clast_name_to_lb_ub): New.
4837         (save_clast_name_index): Add lb and ub parameters.
4838         (compute_bounds_for_param): New.
4839         (type_for_level): Removed.
4840         (type_for_clast_for): Removed level parameter.  Do not call
4841         type_for_level.
4842         (graphite_create_new_loop): Store the lb and ub for the clast_name
4843         of the iterator of the loop that has been generated.
4844         (graphite_create_new_loop_guard): Remove parameter level.
4845         (create_params_index): Store the lb and ub of each parameter.
4846         (gloog): Use free_clast_name_index.  Pass to create_params_index
4847         the current scop.
4848
4849 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
4850
4851         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
4852         (max_precision_type): Inline max_signed_precision_type.
4853         (type_for_clast_red): Use max_precision_type.
4854         (type_for_clast_bin): Same.
4855         (type_for_clast_for): Same.
4856
4857 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
4858
4859         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
4860         type_for_interval.
4861         (gcc_type_for_value): Renamed type_for_value.
4862         (gcc_type_for_clast_term): Renamed type_for_clast_term.
4863         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
4864         (gcc_type_for_clast_red): Renamed type_for_clast_red.
4865         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
4866         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
4867         (graphite_translate_clast_equation): Update calls.
4868         (compute_type_for_level): Renamed type_for_level.
4869         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
4870         (build_iv_mapping): Update calls.
4871         (graphite_create_new_loop_guard): Same.
4872
4873 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
4874
4875         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
4876         comment.
4877
4878 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
4879
4880         * graphite-clast-to-gimple.c (struct ivs_params): New.
4881         (clast_name_to_gcc): Use ivs_params to pass around parameters.
4882         (clast_to_gcc_expression): Same.
4883         (clast_to_gcc_expression_red): Same.
4884         (gcc_type_for_clast_term): Same.
4885         (gcc_type_for_clast_expr): Same.
4886         (gcc_type_for_clast_red): Same.
4887         (gcc_type_for_clast_bin): Same.
4888         (gcc_type_for_clast_eq): Same.
4889         (graphite_translate_clast_equation): Same.
4890         (graphite_create_guard_cond_expr): Same.
4891         (graphite_create_new_guard): Same.
4892         (graphite_create_new_loop): Same.
4893         (build_iv_mapping): Same.
4894         (translate_clast_user): Same.
4895         (graphite_create_new_loop_guard): Same.
4896         (translate_clast): Same.
4897         (translate_clast_for_loop): Same.
4898         (translate_clast_for): Same.
4899         (translate_clast_guard): Same.
4900         (initialize_cloog_names): Fix typo.
4901         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
4902
4903 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
4904
4905         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
4906         (new_clast_name_index): Add level parameter.
4907         (clast_name_to_level): New.
4908         (save_clast_name_index): Add level parameter.
4909         (newivs_to_depth_to_newiv): Removed.
4910         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
4911         (graphite_create_new_loop): Add level parameter.  Pass level to
4912         save_clast_name_index.
4913         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
4914         (create_params_index): Pass level to save_clast_name_index.
4915
4916 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
4917
4918         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
4919         recompute type, lb, and ub.  Get them from...
4920         (graphite_create_new_loop_guard): ...here.  Pass in parameter
4921         pointers to type, lb, and ub.
4922         (translate_clast_for_loop): Update function calls.
4923         (translate_clast_for): Same.
4924
4925 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
4926
4927         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
4928         psct_dynamic_dim.
4929         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
4930         (gcc_type_for_iv_of_clast_loop): Update use of level.
4931         (gloog): Start counting nesting level from 0.
4932         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
4933         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
4934         psct_dynamic_dim on level.
4935
4936 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
4937
4938         * config/i386/i386.c (ix86_legitimize_address): Convert to
4939         Pmode if needed.
4940
4941 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
4942
4943         * config/i386/i386.c (function_value_64): Always return pointers
4944         in Pmode.
4945         (ix86_promote_function_mode): New.
4946         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
4947
4948 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4949
4950         PR tree-optimization/49749
4951         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
4952         remove no-longer-used maxrank variable.
4953
4954 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
4955
4956         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
4957
4958 2011-07-21  Jason Merrill  <jason@redhat.com>
4959
4960         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
4961         * recog.h (struct insn_data_d): Check it instead of
4962         HAVE_DESIGNATED_INITIALIZERS.
4963         * genoutput.c (output_insn_data): Likewise.
4964
4965 2011-07-21  Richard Guenther  <rguenther@suse.de>
4966
4967         PR tree-optimization/49770
4968         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
4969         valueized any operand.  Renamed from ...
4970         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
4971         (valueize_shared_reference_ops_from_ref): Return whether we
4972         valueized any operand.
4973         (vn_reference_lookup): Only when we valueized any operand
4974         use the valueized reference for alias analysis.  Do not preserve
4975         the original reference tree in this case.
4976
4977 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
4978
4979         * config/i386/i386.c (ix86_decompose_address): Reject all but
4980         register operands and subregs of DImode hard registers in index.
4981
4982 2011-07-21  Kai Tietz  <ktietz@redhat.com>
4983
4984         * fold-const.c (fold_unary_loc): Preserve indirect
4985         comparison cast to none-boolean type.
4986         * tree-ssa.c (useless_type_conversion_p): Preserve cast
4987         from/to boolean-type.
4988         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
4989         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
4990         * tree-cfg.c (verify_gimple_comparison): Check result
4991         type of comparison expression.
4992         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
4993         of condition result and disallow type-cast sinking into comparison.
4994
4995 2011-07-21  Richard Guenther  <rguenther@suse.de>
4996
4997         * tree-ssa-forwprop.c (combine_conversions): Return whether
4998         we have to run cfg-cleanup.  Properly remove dead stmts.
4999         (ssa_forward_propagate_and_combine): Adjust.
5000
5001 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
5002
5003         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
5004
5005 2011-07-21  Kai Tietz  <ktietz@redhat.com>
5006
5007         * tree-ssa-propagate.c (substitute_and_fold): Use
5008         do_dce flag to deside, if BB's statements are scanned
5009         in last to first, or first to last order.
5010
5011 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
5012
5013         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
5014
5015 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
5016             Uros Bizjak  <ubizjak@gmail.com>
5017             Richard Henderson  <rth@redhat.com>
5018
5019         * config/i386/constraints.md (w): New.
5020
5021         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
5022         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
5023
5024         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
5025         instead of TARGET_64BIT.
5026
5027         * config/i386/i386.md (indirect_jump): Replace
5028         nonimmediate_operand with indirect_branch_operand.
5029         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
5030         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
5031         Convert operand 0 to Pmode for x32 if not PIC.
5032         (*tablejump_1): Replace nonimmediate_operand with
5033         indirect_branch_operand.  Replace constraint "m" with "w".
5034         (*call_vzeroupper): Replace constraint "m" with "w".
5035         (*call): Likewise.
5036         (*call_rex64_ms_sysv_vzeroupper): Likewise.
5037         (*call_rex64_ms_sysv): Likewise.
5038         (*call_value_vzeroupper): Likewise.
5039         (*call_value): Likewise.
5040         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
5041         (*call_value_rex64_ms_sysv): Likewise.
5042         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
5043
5044         * config/i386/predicates.md (indirect_branch_operand): New.
5045         (call_insn_operand): Support x32.
5046
5047 2011-07-20  Michael Eager  <eager@eagercon.com>
5048
5049         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
5050
5051 2011-07-20  Richard Henderson  <rth@redhat.com>
5052
5053         * cfg.c (dump_bb_info): Dump basic_block->flags.
5054         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
5055
5056 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
5057
5058         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
5059         of DImode hard registers in index.
5060         (ix86_legitimate_address_p): Allow subregs of base and index to span
5061         more than a word.  Assert that subregs of base and index satisfy
5062         register_no_elim_operand predicates.  Reject addresses where
5063         base and index have different modes.
5064
5065 2011-07-20  Robert Millan  <rmh@gnu.org>
5066
5067         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
5068
5069 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5070
5071         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
5072         removing now-unnecessary assignment.
5073
5074 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5075
5076         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
5077         memory address space to the type's address space.
5078
5079 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
5080
5081         PR target/36467
5082         PR target/49687
5083         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
5084         and expand appropriately if there is a CONST_INT in operand2.
5085         (usmulqihi3): New insn.
5086         (*sumulqihi3): New insn.
5087         (*osmulqihi3): New insn.
5088         (*oumulqihi3): New insn.
5089         (*muluqihi3.uconst): New insn_and_split.
5090         (*muluqihi3.sconst): New insn_and_split.
5091         (*mulsqihi3.sconst): New insn_and_split.
5092         (*mulsqihi3.uconst): New insn_and_split.
5093         (*mulsqihi3.oconst): New insn_and_split.
5094         (*ashifthi3.signx.const): New insn_and_split.
5095         (*ashifthi3.signx.const7): New insn_and_split.
5096         (*ashifthi3.zerox.const): New insn_and_split.
5097         (mulsqihi3): New insn.
5098         (muluqihi3): New insn.
5099         (muloqihi3): New insn.
5100         * config/avr/predicates.md (const_2_to_7_operand): New.
5101         (const_2_to_6_operand): New.
5102         (u8_operand): New.
5103         (s8_operand): New.
5104         (o8_operand): New.
5105         (s9_operand): New.
5106         (register_or_s9_operand): New.
5107
5108 2011-07-20  Kai Tietz  <ktietz@redhat.com>
5109
5110         * builtins.c (fold_builtin_expect): See through the cast
5111         from truthvalue_type_node to long.
5112
5113 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
5114
5115         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
5116         where we can use them from the standard and altivec instruction
5117         sets, instead of always using the 3 operand VSX forms that require
5118         the destination to overlap one of the inputs.
5119         (vsx_fms*): Ditto.
5120         (vsx_fnma*): Ditto.
5121         (vsx_fnms*): Ditto.
5122
5123         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
5124         for DF types.
5125         (fmsdf4_fpr): Ditto.
5126         (nfmadf4_fpr): Ditto.
5127         (nfmsdf4_fpr): Ditto.
5128
5129 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
5130
5131         * genrecog.c (make_insn_sequence): Correct position numbering
5132         when filtering out match_scratch and match_dup.
5133
5134 2011-07-20  Richard Guenther  <rguenther@suse.de>
5135
5136         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
5137         against already removed statements.
5138         (forward_propagate_into_comparison): Remove dead defining stmts.
5139         (forward_propagate_into_gimple_cond): Likewise.
5140         (forward_propagate_into_cond): Simplify.
5141         (ssa_forward_propagate_and_combine): Handle changed cfg from
5142         forward_propagate_into_comparison.
5143         * tree-ssa-phiopt.c (conditional_replacement): Use proper
5144         locations for newly built statements.
5145
5146 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
5147
5148         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
5149
5150 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5151
5152         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
5153         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
5154
5155 2011-07-20  Richard Guenther  <rguenther@suse.de>
5156
5157         PR middle-end/18908
5158         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
5159         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
5160         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
5161
5162 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
5163
5164         * config/frv/frv.c (frv_register_move_cost): Define explicitly
5165         costs for subclasses of GR_REGS.
5166
5167 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
5168
5169         PR target/49780
5170         * config/i386/predicates.md (no_seg_addres_operand): No more special.
5171         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
5172         of DImode hard registers in base.
5173         (ix86_legitimate_address_p): Allow SImode and DImode base and index
5174         registers.
5175
5176 2011-07-20  Richard Guenther  <rguenther@suse.de>
5177
5178         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
5179         (unify_nodes): Deal with that.
5180         (solve_graph): Likewise.
5181
5182 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
5183
5184         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
5185         canonicalize left operand from ZERO_EXTEND to AND.
5186
5187 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
5188
5189         * target.def (class_max_nregs): New hook.
5190         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
5191         * doc/tm.texi: Regenerate.
5192         * targhooks.c (default_class_max_nregs): New function.
5193         * targhooks.h (default_class_max_nregs): Declare.
5194         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
5195         x_ira_reg_class_min_nregs arrays to unsigned char.
5196         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
5197         hook instead of CLASS_MAX_NREGS macro.
5198         * reginfo.c (restore_register_info): Ditto.
5199         * ira-conflicts.c (process_regs_for_copy): Use
5200         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
5201         Change type rclass and aclass vars to reg_class_t.
5202         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
5203         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
5204         reg_class_t.
5205         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
5206         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
5207
5208         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
5209         * config/i386/i386.c (ix86_class_max_nregs): New function.
5210         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
5211         instead of CLASS_MAX_NREGS macro.
5212         (TARGET_CLASS_MAX_NREGS): Define.
5213         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
5214         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
5215         * config/avr/avr.c (class_max_nregs): Remove function.
5216         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
5217         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
5218         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
5219         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
5220         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
5221         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
5222         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
5223         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
5224         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
5225         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
5226         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
5227         * config/score/score.h (CLASS_MAX_NREGS): Remove.
5228         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
5229         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
5230         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
5231
5232 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
5233
5234         * cif-code.def (OVERWRITABLE): Fix typo and move around.
5235         (TARGET_OPTIMIZATION_MISMATCH): Delete.
5236         (EH_PERSONALITY): Fix typo.
5237         (NON_CALL_EXCEPTIONS): Fix message.
5238         (OPTIMIZATION_MISMATCH): Adjust message.
5239         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
5240
5241 2011-07-19  Ian Lance Taylor  <iant@google.com>
5242
5243         * doc/install.texi (Configuration): Document
5244         --enable-build-poststage1-with-cxx.
5245
5246 2011-07-19  Robert Millan  <rmh@gnu.org>
5247
5248         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
5249         (GLIBC_DYNAMIC_LINKER): Remove.
5250
5251         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
5252         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
5253         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
5254         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
5255         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
5256         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
5257
5258         * config/mips/linux.h: Remove everything except for ...
5259         (GLIBC_DYNAMIC_LINKER): ... this macro.
5260
5261         * config/mips/linux64.h: Remove everything except for ...
5262         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
5263         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
5264         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
5265         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
5266         (GNU_USER_LINK_EMULATIONN32): New macros.
5267
5268         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
5269         Use the new headers.
5270
5271 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
5272
5273         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
5274         Add offset_known_p and size_known_p fields.
5275         (MEM_OFFSET_KNOWN_P): Update accordingly.
5276         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
5277         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
5278         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
5279         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
5280         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
5281         (init_emit_regs): Likewise.
5282
5283 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
5284
5285         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
5286         (MEM_OFFSET): Change from returning an rtx to returning a
5287         HOST_WIDE_INT.
5288         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
5289         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
5290         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
5291         (clear_mem_offset): Declare.
5292         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
5293         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
5294         MEM_OFFSET to get a HOST_WIDE_INT offset.
5295         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
5296         (adjust_offset_for_component_ref): Take a bool "known_p"
5297         parameter and a HOST_WIDE_INT "offset" parameter.
5298         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
5299         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
5300         than an rtx.  Use clear_mem_offset to clear the offset.
5301         * cfgcleanup.c (merge_memattrs): Likewise.
5302         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
5303         * function.c (assign_parm_find_stack_rtl): Likewise.
5304         (assign_parm_setup_stack): Likewise.
5305         * print-rtl.c (print_rtx): Likewise.
5306         * reload.c (find_reloads_subreg_address): Likewise.
5307         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
5308         * var-tracking.c (INT_MEM_OFFSET): Likewise.
5309         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
5310         (get_mem_align_offset): Likewise.
5311         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
5312         (clear_mem_offset): New function.
5313         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
5314         offset rather than an rtx.  Assume both the expressio and offset
5315         are available.
5316         (r10k_needs_protection_p_1): Update accordingly, checking the
5317         expression and offset availability here instead.
5318
5319 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
5320
5321         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
5322         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
5323         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
5324         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
5325         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
5326         (clear_mem_size): Declare.
5327         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
5328         (clear_mem_size): New function.
5329         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
5330         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
5331         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
5332         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
5333         to clear the size.
5334         (nonoverlapping_memrefs_p): Likewise.
5335         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
5336         (expand_builtin_init_trampoline): Likewise.
5337         * calls.c (compute_argument_addresses): Likewise.
5338         * cfgcleanup.c (merge_memattrs): Likewise.
5339         * dce.c (find_call_stack_args): Likewise.
5340         * dse.c (record_store, scan_insn): Likewise.
5341         * dwarf2out.c (dw_sra_loc_expr): Likewise.
5342         * expr.c (emit_block_move_hints): Likewise.
5343         * function.c (assign_parm_find_stack_rtl): Likewise.
5344         * print-rtl.c (print_rtx): Likewise.
5345         * reload.c (find_reloads_subreg_address): Likewise.
5346         * rtlanal.c (may_trap_p_1): Likewise.
5347         * var-tracking.c (track_expr_p): Likewise.
5348         * varasm.c (assemble_trampoline_template): Likewise.
5349         * config/arm/arm.c (arm_print_operand): Likewise.
5350         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
5351         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
5352         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
5353         (expand_constant_setmem_prologue): Likewise.
5354         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
5355         * config/rs6000/rs6000.c (expand_block_move): Likewise.
5356         (adjacent_mem_locations): Likewise.
5357         * config/s390/s390.c (s390_expand_setmem): Likewise.
5358         (s390_expand_insv): Likewise.
5359         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
5360         (*extendqi<mode>2_short_displ): Likewise.
5361         * config/sh/sh.c (expand_block_move): Likewise.
5362         * config/sh/sh.md (extv, extzv): Likewise.
5363
5364 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
5365
5366         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
5367         (mem_attrs_htab_eq): ...here.
5368         (find_mem_attrs): Replace with...
5369         (set_mem_attrs): ...this function.  Take a mem_attrs structure
5370         rather than individual fields.
5371         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
5372         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
5373         (set_mem_size, change_address, adjust_address_1, offset_address)
5374         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
5375         Update accordingly.
5376
5377 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
5378
5379         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
5380         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
5381         Provide a dummy definition of MEM_ADDR_SPACE for generators.
5382         (target_rtl): Add x_mode_mem_attrs.
5383         (mode_mem_attrs): New macro.
5384         (get_mem_attrs): New function.
5385         * emit-rtl.c (get_mem_attrs): Rename to...
5386         (find_mem_attrs): ...this.
5387         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
5388         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
5389         (set_mem_size, change_address, adjust_address_1, offset_address)
5390         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
5391         Update accordingly.
5392         (init_emit_regs): Initialize mode_mem_attrs.
5393
5394 2011-07-19  Richard Guenther  <rguenther@suse.de>
5395
5396         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
5397         TRUTH_*_EXPR handling.
5398         * tree-ssa-operands.c (get_expr_operands): Likewise.
5399         * tree-ssa-pre.c (fully_constant_expression): Likewise.
5400         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
5401         Likewise.
5402         (is_and_or_or): Likewise.
5403         (is_norm_cond_subset_of): Likewise.
5404
5405 2011-07-19  Richard Guenther  <rguenther@suse.de>
5406
5407         * tree.h (fold_build_pointer_plus_loc): New helper function.
5408         (fold_build_pointer_plus_hwi_loc): Likewise.
5409         (fold_build_pointer_plus): Define.
5410         (fold_build_pointer_plus_hwi): Likewise.
5411         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
5412         (fold_builtin_memory_op): Likewise.
5413         (fold_builtin_stpcpy): Likewise.
5414         (fold_builtin_memchr): Likewise.
5415         (fold_builtin_strstr): Likewise.
5416         (fold_builtin_strchr): Likewise.
5417         (fold_builtin_strrchr): Likewise.
5418         (fold_builtin_strpbrk): Likewise.
5419         (fold_builtin_strcat): Likewise.
5420         (expand_builtin_memory_chk): Likewise.
5421         (fold_builtin_memory_chk): Likewise.
5422         * c-typeck.c (build_unary_op): Likewise.
5423         * cgraphunit.c (thunk_adjust): Likewise.
5424         * fold-const.c (build_range_check): Likewise.
5425         (fold_binary_loc): Likewise.
5426         * omp-low.c (extract_omp_for_data): Likewise.
5427         (expand_omp_for_generic): Likewise.
5428         (expand_omp_for_static_nochunk): Likewise.
5429         (expand_omp_for_static_chunk): Likewise.
5430         * tree-affine.c (add_elt_to_tree): Likewise.
5431         * tree-data-ref.c (split_constant_offset_1): Likewise.
5432         * tree-loop-distribution.c (generate_memset_zero): Likewise.
5433         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
5434         * tree-predcom.c (ref_at_iteration): Likewise.
5435         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
5436         (add_to_parts): Likewise.
5437         (create_mem_ref): Likewise.
5438         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
5439         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
5440         (number_of_iterations_le): Likewise.
5441         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
5442         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
5443         (vect_create_addr_base_for_vector_ref): Likewise.
5444         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
5445         (vect_create_cond_for_alias_checks): Likewise.
5446         * tree-vrp.c (extract_range_from_assert): Likewise.
5447         * config/alpha/alpha.c (alpha_va_start): Likewise.
5448         (alpha_gimplify_va_arg_1): Likewise.
5449         * config/i386/i386.c (ix86_va_start): Likewise.
5450         (ix86_gimplify_va_arg): Likewise.
5451         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
5452         * config/mep/mep.c (mep_expand_va_start): Likewise.
5453         (mep_gimplify_va_arg_expr): Likewise.
5454         * config/mips/mips.c (mips_va_start): Likewise.
5455         (mips_gimplify_va_arg_expr): Likewise.
5456         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
5457         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
5458         (rs6000_gimplify_va_arg): Likewise.
5459         * config/s390/s390.c (s390_va_start): Likewise.
5460         (s390_gimplify_va_arg): Likewise.
5461         * config/sh/sh.c (sh_va_start): Likewise.
5462         (sh_gimplify_va_arg_expr): Likewise.
5463         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
5464         * config/spu/spu.c (spu_va_start): Likewise.
5465         (spu_gimplify_va_arg_expr): Likewise.
5466         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
5467         Likewise.
5468         (xstormy16_gimplify_va_arg_expr): Likewise.
5469         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
5470         (xtensa_gimplify_va_arg_expr): Likewise.
5471
5472 2011-07-19  Richard Guenther  <rguenther@suse.de>
5473
5474         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
5475         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
5476         handling.
5477
5478         PR middle-end/18908
5479         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
5480         result of BIT_*_EXPR to bitfield precision.
5481
5482 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
5483
5484         PR tree-optimization/49742
5485         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
5486         as a potential write.
5487
5488 2011-07-19  Richard Guenther  <rguenther@suse.de>
5489
5490         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
5491         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
5492         (forward_propagate_comparison): Simplify, remove obsolete code.
5493
5494 2011-07-19  Richard Guenther  <rguenther@suse.de>
5495
5496         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
5497         BIT_XOR_EXPR, same as the RTL expander does.
5498         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
5499         (verify_gimple_assign_unary): Likewise.
5500         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
5501         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
5502         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
5503
5504 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
5505
5506         PR tree-optimization/49768
5507         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
5508         if offset is smaller than bitoffset, but offset+size is bigger
5509         than bitoffset.
5510
5511 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
5512
5513         PR tree-optimization/49771
5514         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
5515         zero step, set segment length to the size of the data-ref's type.
5516
5517 2011-07-18  Martin Jambor  <mjambor@suse.cz>
5518
5519         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
5520         comments.
5521         (ipcp_values_pool): Declare.
5522         (ipcp_sources_pool): Likewise.
5523         (ipcp_lattice): Changed to forward declaration.
5524         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
5525         cannot_devirtualize.
5526         (ipa_node_params): New fields descriptors, lattices, known_vals,
5527         clone_for_all_contexts and node dead, removed fields params and
5528         count_scale.
5529         (ipa_set_param_count): Removed.
5530         (ipa_get_param_count): Made to work with descriptors vector.
5531         (ipa_get_param): Updated.
5532         (ipa_param_cannot_devirtualize_p): Removed.
5533         (ipa_param_types_vec_empty): Likewise.
5534         (ipa_set_param_used): New function.
5535         (ipa_get_param_used): Updated to use descriptors vector.
5536         (ipa_func_list): Removed.
5537         (ipa_init_func_list): Removed declaration.
5538         (ipa_push_func_to_list_1): Likewise.
5539         (ipa_pop_func_from_list): Likewise.
5540         (ipa_push_func_to_list): Removed.
5541         (ipa_lattice_from_jfunc): Remove declaration.
5542         (ipa_get_jf_pass_through_result): Declare.
5543         (ipa_get_jf_ancestor_result): Likewise.
5544         (ipa_value_from_jfunc): Likewise.
5545         (ipa_get_lattice): Update.
5546         (ipa_lat_is_single_const): New function.
5547         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
5548         (ipa_init_func_list): Likewise.
5549         (ipa_pop_func_from_list): Likewise.
5550         (ipa_get_param_decl_index): Fix coding style.
5551         (count_formal_params): Removed.
5552         (count_formal_params_1): Renamed to count_formal_params.
5553         (ipa_populate_param_decls): Update to use descriptors vector.
5554         (ipa_initialize_node_params): Likewise.
5555         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
5556         (ipa_analyze_params_uses): Likewise.
5557         (ipa_free_node_params_substructures): Likewise and free also lattices
5558         and known values.
5559         (duplicate_array): Removed.
5560         (ipa_edge_duplication_hook): Add the new edge to the list of edge
5561         clones.
5562         (ipa_node_duplication_hook): Update to use new lattices.
5563         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
5564         (ipa_free_all_structures_after_iinln): Likewise.
5565         (ipa_write_node_info): Update to use new lattices.
5566         (ipa_read_node_info): Likewise.
5567         (ipa_get_jf_pass_through_result): New function.
5568         (ipa_get_jf_ancestor_result): Likewise.
5569         (ipa_value_from_jfunc): Likewise.
5570         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
5571         * ipa-cp.c: Reimplemented.
5572         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
5573         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
5574         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
5575         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
5576         * doc/invoke.texi (devirt-type-list-size): Removed description.
5577         (ipa-cp-value-list-size): Added description.
5578
5579 2011-07-18  Richard Henderson  <rth@redhat.com>
5580
5581         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
5582         before calling create_basic_block.
5583
5584 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
5585
5586         PR middle-end/49675
5587         * tree.c (build_common_builtin_nodes): Register
5588         __builtin_return_address, __cyg_profile_func_enter
5589         and __cyg_profile_func_exit.
5590
5591 2011-07-18  Richard Henderson  <rth@redhat.com>
5592
5593         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
5594         (add_labels_and_missing_jumps): ... here.
5595         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
5596
5597 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
5598
5599         PR target/47744
5600         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
5601         of DImode hard registers in PLUS address chains.
5602
5603 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5604
5605         PR bootstrap/49769
5606         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
5607         (alpha*-*-freebsd*): Likewise.
5608         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
5609         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
5610         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
5611         crtprec80.o, crtfastmath.o to extra_parts for all targets.
5612         (ia64*-*-elf*): Remove extra_parts.
5613         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
5614         (sparc64-*-linux*): Likewise.
5615         (sparc64-*-freebsd*): Likewise.
5616
5617         Revert:
5618         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
5619         (ia64*-*-linux*): Likewise.
5620         (mips64*-*-linux*): Likewise.
5621         (mips*-*-linux*): Likewise.
5622
5623 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
5624
5625         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
5626
5627 2011-07-18  Richard Guenther  <rguenther@suse.de>
5628
5629         * gimplify.c (gimplify_expr): Use input_location, not saved_location
5630         when building new trees.
5631
5632 2011-07-18  Richard Guenther  <rguenther@suse.de>
5633
5634         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
5635         expansion result to bitfield precision if required.
5636
5637 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5638
5639         * config.gcc (i[3456x]86-*-netware*): Remove.
5640
5641         * gthr-nks.h: Remove.
5642         * configure.ac (enable_threads): Remove nks.
5643         * configure: Regenerate.
5644
5645         * config/i386/i386.c (ix86_encode_section_info): Remove netware
5646         reference.
5647         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
5648         <netware.h> reference.
5649
5650         * config/i386/netware-libgcc.c,
5651         gcc/config/i386/netware-libgcc.def,
5652         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
5653         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
5654         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
5655         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
5656
5657         * doc/extend.texi (Function Attributes,
5658         callee_pop_aggregate_return): Remove i?86-netware reference.
5659         * doc/install.texi (Configuration, --enable-threads): Remove nks.
5660
5661 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5662
5663         PR target/49746
5664         Revert:
5665         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5666
5667         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
5668         patterns.
5669
5670 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
5671
5672         PR middle-end/49732
5673         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
5674
5675 2011-07-16  Matthias Klose  <doko@ubuntu.com>
5676
5677         * doc/install.texi: Document --enable-static-libjava.
5678
5679 2011-07-15  Richard Henderson  <rth@redhat.com>
5680
5681         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
5682         Replace all three arguments by returning a VEC of edges.
5683         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
5684         pointers and counts.
5685         (fix_edges_for_rarely_executed_code): Merge ...
5686         (rest_of_handle_partition_blocks): ... into...
5687         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
5688         any work was performed.
5689         (pass_partition_blocks): Clear todo_flags_finish.
5690
5691 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
5692             Jakub Jelinek  <jakub@redhat.com>
5693             Jonathan Wakely  <jwakely.gcc@gmail.com>
5694
5695         PR libstdc++/49745
5696         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
5697         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
5698
5699 2011-07-15  Jason Merrill  <jason@redhat.com>
5700
5701         PR testsuite/49741
5702         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
5703         rather than --tool_opts.
5704
5705 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
5706
5707         * doc/plugins.texi (Building GCC plugins): gengtype needs its
5708         corresponding gtype.state.
5709
5710 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5711
5712         PR target/49723
5713         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
5714
5715 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
5716
5717         PR target/48220
5718         * doc/md.texi (Standard Names): Document window_save.
5719         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
5720         expand_debug_expr and expand_debug_source_expr.  If the target has
5721         a window_save instruction, adjust the ENTRY_VALUE_EXP.
5722         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
5723         SSA_NAME_VAR is a parameter.
5724         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
5725         * var-tracking.c (parm_reg_t): New type and associated vector type.
5726         (windowed_parm_regs): New variable.
5727         (adjust_insn): If the target has a window_save instruction and this
5728         is the instruction, make its effect on parameter registers explicit.
5729         (next_non_note_insn_var_location): New function.
5730         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
5731         (vt_add_function_parameter): If the target has a window_save insn,
5732         adjust the incoming RTL and record that in windowed_parm_regs.
5733         (vt_finalize): Free windowed_parm_regs.
5734
5735 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
5736
5737         * doc/invoke.texi (C6X Options): New section.
5738         * doc/md.texi (TI C6X family): New section.
5739         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
5740         tic6x-*-uclinux.
5741         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
5742         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
5743         Provide C6X definitions.
5744         * config/c6x/c6x.md: New file.
5745         * config/c6x/constraints.md: New file.
5746         * config/c6x/predicates.md: New file.
5747         * config/c6x/c6x-sched.md.in: New file.
5748         * config/c6x/c6x-sched.md: New file.
5749         * config/c6x/gensched.sh: New file.
5750         * config/c6x/c6x-mult.md.in: New file.
5751         * config/c6x/genmult.sh: New file.
5752         * config/c6x/c6x-mult.md: New file.
5753         * config/c6x/sync.md: New file.
5754         * config/c6x/c6x-protos.h: New file.
5755         * config/c6x/sfp-machine.h: New file.
5756         * config/c6x/c6x.c: New file.
5757         * config/c6x/c6x.h: New file.
5758         * config/c6x/crti.s: New file.
5759         * config/c6x/crtn.s: New file.
5760         * config/c6x/lib1funcs.asm: New file.
5761         * config/c6x/c6x-modes.def: New file.
5762         * config/c6x/genopt.sh: New file.
5763         * config/c6x/c6x.opt: New file.
5764         * config/c6x/c6x-tables.opt: New file.
5765         * config/c6x/c6x-opts.h: New file.
5766         * config/c6x/c6x-isas.def: New file.
5767         * config/c6x/elf.h: New file.
5768         * config/c6x/elf-common.h: New file.
5769         * config/c6x/uclinux-elf.h: New file.
5770         * config/c6x/t-c6x: New file.
5771         * config/c6x/t-c6x-elf: New file.
5772         * config/c6x/t-c6x-uclinux: New file.
5773         * config/c6x/t-c6x-softfp: New file.
5774         * config/c6x/gtd.c: New file.
5775         * config/c6x/gtf.c: New file.
5776         * config/c6x/ltd.c: New file.
5777         * config/c6x/ltf.c: New file.
5778         * config/c6x/ged.c: New file.
5779         * config/c6x/gef.c: New file.
5780         * config/c6x/led.c: New file.
5781         * config/c6x/lef.c: New file.
5782         * config/c6x/eqd.c: New file.
5783         * config/c6x/eqf.c: New file.
5784         * config/c6x/libgcc-c6xeabi.ver: New file.
5785
5786         Revert
5787         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
5788         PR rtl-optimization/11320
5789         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
5790         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
5791         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
5792         current_sched_info->compute_jump_reg_dependencies. Record which
5793         registers are used and which registers are set by the jump.
5794         Clear deps->reg_conditional_sets after a barrier.
5795         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
5796         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
5797         (init_deps): Initialize reg_conditional_sets.
5798         (free_deps): Clear reg_conditional_sets.
5799         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
5800         Mark registers live on entry of the fallthrough block and conditionally
5801         set as set by the jump. Mark registers live on entry of non-fallthrough
5802         blocks as used by the jump.
5803         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
5804         Mark new parameters as unused.
5805
5806 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
5807
5808         PR tree-opt/49309
5809         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
5810         Use fold_build2_loc instead of build2.
5811         Use the correct type for the new tree.
5812
5813 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
5814
5815         PR rtl-optimization/11320
5816         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
5817         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
5818
5819 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
5820
5821         PR target/49487
5822         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
5823         of REG.
5824         (*rotw<mode>): Use const_int_operand for operand2.
5825         Use match_scatch for operand3.
5826         (*rotb<mode>): Ditto
5827         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
5828
5829 2011-07-14  Richard Guenther  <rguenther@suse.de>
5830
5831         PR tree-optimization/49651
5832         * tree-ssa-structalias.c (get_constraint_for_1): Properly
5833         handle dereferences with subvariables.
5834
5835 2011-07-14  Richard Guenther  <rguenther@suse.de>
5836
5837         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
5838         (fold_stmt_1): Do it here directly on gimple and as a first thing.
5839
5840 2011-07-14  Richard Guenther  <rguenther@suse.de>
5841
5842         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
5843         not bool_var when folding bool_var != 1 or bool_var == 0.
5844
5845 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
5846
5847         * haifa-sched.c (schedule_insns): Remove outdated comment.
5848         (schedule_block): When computing a known value for TODO_SPEC,
5849         just set it rather than using logical operations.
5850         (try_ready): Likewise.  Use a local variable rather than a
5851         pointer to TODO_SPEC.  Reorder an if statement to move the
5852         easy case to the then block.
5853         * sched-deps.c (dep_spec_p): New static function.
5854         (update_dep): Use it to decide whether to call
5855         change_spec_dep_to_hard.
5856         (get_back_and_forw_lists): Use it.
5857         (sd_resolve_dep): Likewise.
5858         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
5859         (haifa_note_mem_dep): Likewise.
5860         (check_dep): Likewise.
5861         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
5862         (sched_free_deps): Free in two passes.
5863
5864 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
5865
5866         PR middle-end/49736
5867         * expr.c (all_zeros_p): Undo bogus part of last change.
5868
5869 2011-07-14  Matthias Klose <doko@ubuntu.com>
5870
5871         * doc/extend.texi (optimize attribute): Fix typo.
5872
5873 2011-07-14  Richard Guenther  <rguenther@suse.de>
5874
5875         * gimplify.c (gimplify_expr): Only do required conversions.
5876
5877 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
5878
5879         PR target/43746
5880         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
5881         i.e. use default_elf_select_section.
5882         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
5883         (READONLY_DATA_SECTION_ASM_OP): Remove.
5884         (TARGET_ASM_NAMED_SECTION): Move from here...
5885         * config/avr/avr.c: ...to here.
5886         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
5887         (avr_asm_named_section): Make static.
5888
5889 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5890
5891         PR bootstrap/49739
5892         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
5893         and crtfastmath.o for Linux/x86.
5894
5895 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
5896
5897         * haifa-sched.c: Include "hashtab.h"
5898         (sched_no_dce): New global variable.
5899         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
5900         SHADOW_P): New macros.
5901         (last_clock_var, cycle_issued_insns): Move declarations.
5902         (must_backtrack): New static variable.
5903         (struct delay_pair): New structure.
5904         (delay_htab, delay_htab_i2): New static variables.
5905         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
5906         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
5907         functions.
5908         (dep_cost_1): If delay pairs exist, try to look up the insns and
5909         use the correct pair delay if we find them.
5910         (rank-for_schedule): Tweak priority for insns that must be scheduled
5911         soon to avoid backtracking.
5912         (queue_insn): Detect conditions which force backtracking.
5913         (ready_add): Likewise.
5914         (struct sched_block_state): Add member shadows_only_p.
5915         (struct haifa_save_data): New structure.
5916         (backtrack_queue): New static variable.
5917         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
5918         unschedule_insns_until, restore_last_backtrack_point,
5919         free_topmost_backtrack_point, free_backtrack_queue,
5920         estimate_insn_tick, estimate_shadow_tick): New functions.
5921         (prune_ready_list): New arg shadows_only_p.  All callers changed.
5922         If true, remove everything that isn't SHADOW_P.  Look up delay
5923         pairs and estimate ticks to avoid scheduling the first insn too early.
5924         (verify_shadows): New function.
5925         (schedule_block): Add machinery to enable backtracking.
5926         (sched_init): Take sched_no_dce into account when setting
5927         DF_LR_RUN_DCE.
5928         (free_delay_pairs): New function.
5929         (init_h_i_d): Initialize INSN_EXACT_TICK.
5930         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
5931         * sched-deps.c (sd_unresolve_dep): New function.
5932         * sched-int. (struct haifa_sched_info): New fields save_state
5933         and restore_state.
5934         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
5935         feeds_backtrack_insn and shadow_p.
5936         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
5937         (sched_no_dce): Declare variable.
5938         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
5939         sd_unresolve_dep): Declare functions.
5940         * modulo-sched.c (sms_sched_info): Clear the two new fields.
5941         * sched-rgn.c (rgn_const_sched_info): Likewise.
5942         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
5943         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
5944         (ebb_sched_info): Add them for the two new fields.
5945         (add_deps_for_risky_insns): Call add_delay_dependencies.
5946
5947 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
5948
5949         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
5950         Rename -mr11.
5951         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
5952         (rs6000_call_indirect_aix): Ditto.
5953         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
5954         (call_indirect_aix<ptrsize>_internal): Ditto.
5955         (call_indirect_aix<ptrsize>_nor11): Ditto.
5956         (call_indirect_aix<ptrsize>_internal2): Ditto.
5957         (call_value_indirect_aix<ptrsize>): Ditto.
5958         (call_value_indirect_aix<ptrsize>_internal): Ditto.
5959         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
5960         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
5961         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
5962
5963 2011-07-13  Jason Merrill  <jason@redhat.com>
5964
5965         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
5966
5967 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5968
5969         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
5970         * config/spu/spu.md ("clrsb<mode>2"): New expander.
5971
5972 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
5973
5974         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
5975         * configure: Regenerate.
5976
5977 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5978
5979         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
5980         (asm_file_start): Remove.
5981         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
5982         free_bb_for_insn around code that modifies insns before
5983         restarting df analysis.
5984
5985 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5986
5987         PR target/49541
5988         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
5989         (LINK_SPEC): ... here.
5990
5991 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
5992
5993         * haifa-sched.c (struct sched_block_state): New.
5994         (schedule_block): Move some local variables into such a structure.
5995
5996 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5997
5998         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
5999         * config/i386/t-crtpc: Remove.
6000         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
6001         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
6002         tmake_file.
6003         (x86_64-*-darwin*): Likewise.
6004         (i[34567]86-*-linux*): Likewise.
6005         (x86_64-*-linux*): Likewise.
6006
6007         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
6008         Handle -mpc32, -mpc64, -mpc80.
6009
6010 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6011
6012         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
6013         * config/alpha/t-crtfm: Remove.
6014         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
6015         * config/i386/t-crtfm: Remove.
6016         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
6017         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
6018         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
6019         * config/sparc/t-crtfm: Remove.
6020
6021         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
6022         (alpha*-*-freebsd*): Likewise.
6023         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
6024         (x86_64-*-darwin*): Likewise.
6025         (i[34567]86-*-linux*): Likewise.
6026         (x86_64-*-linux*): Likewise.
6027         (x86_64-*-mingw*): Likewise.
6028         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
6029         (ia64*-*-freebsd*): Likewise.
6030         (ia64*-*-linux*): Likewise.
6031         (mips64*-*-linux*): Likewise.
6032         (mips*-*-linux*): Likewise.
6033         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
6034         (sparc64-*-linux*): Likewise.
6035         (sparc64-*-freebsd*): Likewise.
6036
6037 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6038
6039         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
6040         * config/darwin-crt3.c: Move to ../libgcc/config.
6041         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
6042         ($(T)crt3$(objext)): Remove.
6043         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
6044         ($(T)crt2$(objext)): Remove.
6045         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
6046         (powerpc64-*-darwin*): Likewise.
6047
6048 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
6049
6050         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
6051
6052         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
6053         (addsi_1_zext): This.
6054
6055 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
6056
6057         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
6058         * doc/tm.texi: Regenerate.
6059         * target.def (mergeable_rodata_prefix): New defhookpod.
6060         * varasm.c (mergeable_string_section, mergeable_constant_section):
6061         Use it. Allocate name with alloca.
6062
6063 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
6064
6065         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
6066
6067 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
6068
6069         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
6070         overlap check.
6071
6072 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
6073
6074         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
6075         (count_type_elements): Delete.
6076         (complete_ctor_at_level_p): Declare.
6077         * expr.c (flexible_array_member_p): New function, split out from...
6078         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
6079         parameter with for_ctor_p.  When for_ctor_p is true, return the
6080         number of elements that should appear in the top-level constructor,
6081         otherwise return an estimate of the number of scalars.
6082         (categorize_ctor_elements): Replace p_must_clear with p_complete.
6083         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
6084         (complete_ctor_at_level_p): New function, borrowing union logic
6085         from old categorize_ctor_elements_1.
6086         (mostly_zeros_p): Return true if the constructor is not complete.
6087         (all_zeros_p): Update call to categorize_ctor_elements.
6088         * gimplify.c (gimplify_init_constructor): Update call to
6089         categorize_ctor_elements.  Don't call count_type_elements.
6090         Unconditionally prevent clearing for variable-sized types,
6091         otherwise rely on categorize_ctor_elements to detect
6092         incomplete initializers.
6093
6094 2011-07-13  Richard Guenther  <rguenther@suse.de>
6095
6096         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
6097         the final type is integral.
6098
6099 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
6100
6101         * sched-int.h (struct _dep): Add member cost.
6102         (DEP_COST, UNKNOWN_DEP_COST): New macros.
6103         * sched-deps.c (init_dep_1): Initialize DEP_COST.
6104         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
6105         (sched_change_pattern): Reset it for dependent insns.
6106
6107 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6108
6109         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
6110         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
6111         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
6112         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
6113         (CRT0_S, MCRT0_S): Remove.
6114         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
6115         Remove.
6116         (s-crt0): Remove.
6117         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
6118
6119 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
6120
6121         * cse.c (insert_with_costs): Put semi-colon after empty loop body
6122         on the next line.
6123         * emit-rtl.c (push_to_sequence): Likewise.
6124         * haifa-sched.c (max_issue): Likewise.
6125         * matrix-reorg.c (add_allocation_site): Likewise.
6126         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
6127         * reload.c (alternative_allows_const_pool_ref): Likewise.
6128         * sched-rgn.c (rgn_add_block): Likewise.
6129         (rgn_fix_recovery_cfg): Likewise.
6130         * tree.c (attribute_list_contained): Likewise.
6131
6132 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
6133
6134         * config/i386/i386.c: Tidy processor feature bitmasks.
6135         (m_P4_NOCONA): New.
6136
6137 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
6138
6139         PR rtl-opt/49474
6140         * cprop.c (find_implicit_sets): Correct the condition.
6141
6142 2011-07-12  Richard Henderson  <rth@redhat.com>
6143
6144         PR target/49713
6145         * dwarf2out.h (dwarf_frame_regnum): Remove.
6146         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
6147         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
6148         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
6149         (execute_dwarf2_frame): Initialize them.
6150         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
6151         users of the macros with the variables.
6152         (expand_builtin_dwarf_sp_column): Revert last change.
6153         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
6154         result of DWARF_FRAME_REGNUM into a local variable.
6155
6156 2011-07-12  Richard Henderson  <rth@redhat.com>
6157
6158         PR target/49714
6159         * config/i386/i386.c (x86_output_mi_thunk): Use
6160         machopic_indirect_call_target instead of machopic_indirection_name
6161         directly.
6162
6163 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
6164             Eric Botcazou  <ebotcazou@adacore.com>
6165
6166         * prefix.h: Wrap up in extern "C" block.
6167
6168 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
6169
6170         AMD bdver2 Enablement
6171         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
6172         (case ${target}): Add bdver2.
6173         * config/i386/driver-i386.c (host_detect_local_cpu): Let
6174         -march=native recognize bdver2 processors.
6175         * config/i386/i386-c.c (ix86_target_macros_internal): Add
6176         bdver2 def_and_undef
6177         * config/i386/i386.c (struct processor_costs bdver2_cost): New
6178         bdver2 cost table.
6179         (m_BDVER2): New definition.
6180         (m_AMD_MULTIPLE): Includes m_BDVER2.
6181         (initial_ix86_tune_features): Add bdver2 tuning.
6182         (processor_target_table): Add bdver2 entry.
6183         (static const char *const cpu_names): Add bdver2 entry.
6184         (ix86_option_override_internal): Add bdver2 instruction sets.
6185         (ix86_issue_rate): Add bdver2.
6186         (ix86_adjust_cost): Add bdver2.
6187         (has_dispatch): Add bdver2.
6188         * config/i386/i386.h (TARGET_BDVER2): New definition.
6189         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
6190         (enum processor_type): Add PROCESSOR_BDVER2.
6191         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
6192         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
6193         description.
6194
6195 2011-07-12  Richard Henderson  <rth@redhat.com>
6196
6197         PR target/49714
6198         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
6199         destination address in memory on some paths.
6200
6201 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
6202
6203         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
6204         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
6205         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
6206         * function.c (locate_and_pad_parm): Take it into account.
6207         * target.def (function_arg_round_boundary): New hook.
6208         * targhooks.c (default_function_arg_round_boundary): New function.
6209         * targhooks.h (default_function_arg_round_boundary): Declare.
6210         * doc/tm.texi: Regenerate.
6211
6212 2011-07-12  Richard Guenther  <rguenther@suse.de>
6213
6214         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
6215         Do not perform no-op changes.
6216
6217 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
6218
6219         * config/arm/predicates.md (neon_struct_operand): Make a normal
6220         predicate.
6221         (neon_struct_or_register_operand): New predicate.
6222         * config/arm/neon.md (movmisalign<mode>): Replace predicates
6223         with neon_struct_or_register_operand.
6224         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
6225         neon_struct_operand instead of memory_operand.
6226
6227 2011-07-12  Martin Jambor  <mjambor@suse.cz>
6228
6229         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
6230         * cgraph.c (cgraph_get_node_or_alias): Removed.
6231         (change_decl_assembler_name): Changed all calls to
6232         cgraph_get_node_or_alias to a call to cgraph_get_node.
6233         (cgraph_make_decl_local): Likewise.
6234         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
6235         * varasm.c (default_binds_local_p_1): Likewise.
6236         (decl_binds_to_current_def_p): Likewise.
6237
6238 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
6239
6240         PR tree-optimization/49712
6241         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
6242
6243 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
6244
6245         * genautomata.c (add_arc): Return void.  All callers changed.
6246         (make_automaton): Remove dead code.
6247
6248 2011-07-11  Richard Henderson  <rth@redhat.com>
6249
6250         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
6251         (DW_FRAME_POINTER_REGNUM): New.
6252         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
6253         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
6254         (dwf_regno): New.
6255         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
6256         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
6257         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
6258         Use it.
6259         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
6260         * dwarf2out.h (dwarf_frame_regnum): New.
6261         (struct cfa_loc): Document the domain of the reg member.
6262
6263 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
6264
6265         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
6266         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
6267
6268 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
6269
6270         PR debug/49676
6271         * dwarf2out.c (int_shift_loc_descriptor): New function.
6272         (int_loc_descriptor): If shorter, emit i as
6273         (i >> shift), shift, DW_OP_shl for suitable shift value.
6274         Similarly, try to optimize large negative values using
6275         DW_OP_neg of a positive value if shorter.
6276         (size_of_int_shift_loc_descriptor): New function.
6277         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
6278         changes.
6279         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
6280         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
6281         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
6282         is shorter.
6283         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
6284         addend as added DW_OP_plus if it is shorter.
6285
6286 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6287
6288         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
6289         (DTORS_SECTION_ASM_OP): Define.
6290
6291 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6292
6293         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
6294         * config/t-dfprules: Move to ../libgcc/config.
6295         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
6296         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
6297         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
6298         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
6299         Likewise.
6300         (i[34567]86-*-cygwin*): Likewise.
6301         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
6302         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
6303         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
6304         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
6305         D64PBIT_FUNCS, D128PBIT_FUNCS.
6306
6307 2011-07-11  Richard Guenther  <rguenther@suse.de>
6308
6309         * tree-vrp.c (simplify_conversion_using_ranges): Manually
6310         translate the source value-range through the conversion chain.
6311
6312 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
6313
6314         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
6315
6316 2011-07-11  Arthur Loiret  <aloiret@debian.org>
6317
6318         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
6319         a bi-arch compiler defaulting to 31-bit. In this case:
6320         (tmake_file): Add s390/t-linux64.
6321         * doc/install.texi: Add s390-linux to the list of targets supporting
6322         --enable-targets=all.
6323
6324 2011-07-11  Arthur Loiret  <aloiret@debian.org>
6325             Matthias Klose <doko@debian.org>
6326
6327         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
6328         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
6329         (tm_file): Add mips/linux64.h.
6330         (tmake_file): Add mips/t-linux64.
6331         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
6332         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
6333         instead of hardcoded mabi=n32.
6334         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
6335         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
6336         convention.
6337
6338 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6339
6340         * passes.c (init_optimization_passes): Add invariant motion pass
6341         after induction variable optimization.
6342
6343 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
6344
6345         PR target/39633
6346         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
6347         offsets 1..5 set cc0 in a usable way.
6348
6349 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
6350
6351         * tree.h (call_expr_arg): Remove.
6352         (call_expr_argp): Likewise.
6353
6354 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
6355
6356         * config/sparc/sparc.md (save_register_window_1): Rename to...
6357         (window_save): ...this.
6358         * config/sparc/sparc.c (emit_save_register_window): Rename to...
6359         (emit_window_save): ...this.
6360         (sparc_expand_prologue): Adjust to above renaming.
6361
6362 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
6363
6364         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
6365         of movabs for x32.
6366
6367 2011-07-10  Richard Henderson  <rth@redhat.com>
6368
6369         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
6370         run final, instead of emitting text directly.
6371
6372 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
6373
6374         * config/i386/i386.c (ix86_option_override_internal): Turn on
6375         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
6376         small PIC models for TARGET_X32.
6377
6378 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
6379
6380         PR target/49684
6381         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
6382         $(LIBGCC2_CFLAGS).
6383
6384         PR bootstrap/49680
6385         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
6386         stray notes and debug insns by using prev_nonnote_nondebug_insn
6387         instead of PREV_INSN.
6388
6389 2011-07-09  Richard Henderson  <rth@redhat.com>
6390
6391         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
6392         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
6393         * dwarf2out.c: ... here.
6394         (output_all_cfis): Remove.
6395         (dwarf2out_switch_text_section): Use output_cfis directly.
6396         (size_of_locs): Export.
6397         (output_loc_sequence, output_loc_sequence_raw): Export.
6398         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
6399         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
6400         output_cfa_loc_raw): Move to ...
6401         * dwarfcfi.c: ... here.
6402         * dwarf2out.h: Update decls.
6403
6404 2011-07-09  Richard Henderson  <rth@redhat.com>
6405
6406         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
6407         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
6408         * dwarf2cfi.c: ... here.
6409         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
6410         (DWARF_ROUND, DWARF_CIE_ID): Remove.
6411         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
6412         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
6413         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
6414
6415 2011-07-09  Richard Henderson  <rth@redhat.com>
6416
6417         * dwarf2cfi.c (cie_return_save): New.
6418         (queue_reg_save): Use compare_reg_or_pc.
6419         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
6420         (dwarf2out_frame_debug_expr): Likewise.
6421         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
6422         (initial_return_save): Likewise.
6423         (execute_dwarf2_frame): Save and restore initial return save from
6424         the cie to the fde.
6425         * config/mips/mips.c (mips_frame_set): Remove special case for
6426         DWARF_FRAME_RETURN_COLUMN.
6427
6428 2011-07-09  Richard Henderson  <rth@redhat.com>
6429
6430         * dwarf2cfi.c (lookup_cfa): Remove.
6431         (execute_dwarf2_frame): Assert queues are empty on entry.
6432         Setup initial cfa directly, not via lookup_cfa.
6433         Don't clear args_size state here.
6434
6435 2011-07-09  Richard Henderson  <rth@redhat.com>
6436
6437         * dwarf2cfi.c (add_cfi_vec): New.
6438         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
6439         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
6440         (execute_dwarf2_frame): Set add_cfi_vec.
6441
6442 2011-07-09  Richard Henderson  <rth@redhat.com>
6443
6444         * defaults.h (ASM_COMMENT_START): Move here...
6445         * dwarf2asm.c: ... from here.
6446         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
6447         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
6448         * varasm.c: Likewise.
6449
6450 2011-07-09  Richard Henderson  <rth@redhat.com>
6451
6452         PR debug/49686
6453         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
6454         (create_cfi_notes): ... do it here instead.
6455
6456 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
6457
6458         PR debug/49676
6459         * dwarf2out.c (size_of_int_loc_descriptor): New function.
6460         (address_of_int_loc_descriptor): Use it.
6461         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
6462
6463 2011-07-09  Richard Henderson  <rth@redhat.com>
6464
6465         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
6466         (prologue, epilogue): New.
6467         (return, *rts): New.
6468         (blockage, setd, seti): New.
6469         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
6470         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
6471         (pdp11_saved_regno): New.
6472         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
6473         generate rtl instead of text.
6474         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
6475         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
6476         * config/pdp11/pdp11-protos.h: Update.
6477
6478 2011-07-09  Richard Henderson  <rth@redhat.com>
6479
6480         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
6481         try to insert an rtl prologue here.
6482         (rs6000_output_function_epilogue): Similarly.
6483         * config/rs6000/rs6000.md (prologue): Emit a barrier to
6484         satisfy !TARGET_SCHED_PROLOG.
6485         (epilogue, sibcall_epilogue): Likewise.
6486
6487 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
6488
6489         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
6490         (FP_REG_P): Delete.
6491         (IN_OR_GLOBAL_P): Likewise.
6492
6493 2011-07-08  Jason Merrill  <jason@redhat.com>
6494
6495         PR c++/45437
6496         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
6497         compound assignment.
6498
6499         * cgraph.c (cgraph_add_to_same_comdat_group): New.
6500         * cgraph.h: Declare it.
6501         * ipa.c (function_and_variable_visibility): Make sure thunks
6502         have the right visibility.
6503
6504 2011-07-08  Richard Henderson  <rth@redhat.com>
6505
6506         PR bootstrap/49680
6507         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
6508         any tablejump vector.
6509
6510         PR bootstrap/49680
6511         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
6512         end of the prologue.
6513
6514 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
6515
6516         PR target/49621
6517         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
6518         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
6519         * config/rs6000/vector.md (vector_select_<mode>,
6520         vector_select_<mode>_uns): Change second operand of NE to
6521         CONST0_RTX (<MODE>mode) instead of const0_rtx.
6522         * config/rs6000/altivec.md (*altivec_vsel<mode>,
6523         *altivec_vsel<mode>_uns): Expect second operand of NE to be
6524         zero_constant of the corresponding vector mode.
6525         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
6526         Likewise.
6527
6528 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
6529
6530         * graphite-dependences.c (build_alias_set_powerset): Remove
6531         continue from loop, add one more assert.
6532
6533 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
6534
6535         PR target/46779
6536         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
6537         In particular, allow 8-bit values in r28 and r29.
6538         (avr_hard_regno_scratch_ok): Disallow any register that might be
6539         part of the frame pointer.
6540         (avr_hard_regno_rename_ok): Same.
6541         (avr_legitimate_address_p): Don't allow SUBREGs.
6542
6543 2011-07-08  Julian Brown  <julian@codesourcery.com>
6544
6545         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
6546         big-endian mode.
6547         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
6548         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
6549         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
6550         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
6551         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
6552         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
6553         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
6554         registers in big-endian mode.
6555
6556 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
6557
6558         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
6559         in terms of another.
6560         (write_attr_value): Write a cast if necessary.
6561
6562         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
6563         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
6564         (REG_WORDS_BIG_ENDIAN): Document.
6565         * doc/tm.texi: Regenerate.
6566         * reload.c (operands_match_p): Take it into account.
6567         (reload_adjust_reg_for_mode): Likewise.
6568         * rtlanal.c (subreg_get_info): Likewise.
6569
6570 2011-07-08  Richard Guenther  <rguenther@suse.de>
6571
6572         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
6573         folding.
6574
6575 2011-07-08  Kai Tietz  <ktietz@redhat.com>
6576
6577         * fold-const.c (fold_truth_andor): Factored out truth_andor
6578         label from fold_binary as function.
6579         (fold_binary_loc): Replace truth_andor lable
6580         by function fold_truth_andor.
6581
6582 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
6583
6584         PR middle-end/49519
6585         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
6586         check if address is stored in register. If so - give up.
6587         (check_sibcall_argument_overlap_1): Do not perform check of
6588         overlapping when it is call to address.
6589
6590 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
6591
6592         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
6593         of magic '31'.
6594
6595 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
6596
6597         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
6598         GET_MODE_BITSIZE where appropriate.
6599         (widen_leading, expand_parity, expand_ctz, expand_ffs,
6600         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
6601         expand_float, expand_fix): Likewise.
6602         * expr.c (convert_move, convert_modes, expand_expr_real_2,
6603         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
6604         * stor-layout.c (get_mode_bounds): Likewise.
6605         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
6606         Likewise.
6607         * convert.c (convert_to_integer): Likewise.
6608         * expmed.c (expand_shift_1): Likewise.
6609
6610         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
6611         a bitsize.
6612
6613         * optabs.c (expand_binop): Tighten conditions for doubleword
6614         expansions.
6615         (widen_bswap): Assert that mode bitsize and precision are the same.
6616         * stor-layout.c (get_best_mode): Skip modes that have lower
6617         precision than bitsize.
6618         * recog.c (simplify_while_replacing): Assert that bitsize and
6619         precision are the same.
6620
6621 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6622
6623         * Makefile.in (LIBGCOV): Remove.
6624         (libgcc.mvars): Remove LIBGCOV.
6625         * libgov.c: Move to ../libgcc.
6626
6627 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6628
6629         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
6630
6631 2011-07-08  Martin Jambor  <mjambor@suse.cz>
6632
6633         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
6634         is too big for total scalarization.
6635
6636 2011-07-07  Richard Henderson  <rth@redhat.com>
6637
6638         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
6639         (DBX_DEBUGGING_INFO): Undef.
6640
6641 2011-07-07  Richard Henderson  <rth@redhat.com>
6642
6643         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
6644         Handle some opcodes specially for debugging.
6645         * print-rtl.c: Include dwarf2out.h
6646         (print_rtx): Handle NOTE_INSN_CFI.
6647         * Makefile.in (print-rtl.o): Update.
6648
6649 2011-07-07  Richard Henderson  <rth@redhat.com>
6650
6651         * tree-pass.h (pass_dwarf2_frame): Declare.
6652         * passes.c (init_optimization_passes): Add it.
6653         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
6654         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
6655         make static, do not call add_cfis_to_fde.
6656         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
6657         dwarf2out_frame_init): Merge into...
6658         (execute_dwarf2_frame): ... here.  New function.
6659         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
6660         saved_do_cfi_asm to a tri-state variable.
6661         (gate_dwarf2_frame, pass_dwarf2_frame): New.
6662         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
6663         if it has yet to be done.  Don't call dwarf2cfi_function_init.
6664         * dwarf2out.h, debug.h: Update decls.
6665         * final.c (final_start_function): Don't call
6666         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
6667         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
6668         * toplev.c (lang_dependent_init): Likewise.
6669
6670 2011-07-07  Richard Henderson  <rth@redhat.com>
6671
6672         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
6673         FDE_TABLE_INCREMENT): Replace with...
6674         (fde_vec): ... this, a new vector.
6675         (current_fde): Remove.  Replace all users with cfun->fde.
6676         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
6677         (size_of_aranges, dwarf2out_finish): Likewise.
6678         (dwarf2out_alloc_current_fde): Break out from ...
6679         (dwarf2out_begin_prologue): ... here.
6680         (dwarf2out_frame_init): Remove.
6681         * dwarf2cfi.c: Update all users of current_fde.
6682         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
6683         * dwarf2out.h: Update decls.
6684         (dw_fde_node): Add fde_index member.
6685         * function.h (struct function): Add fde member.
6686
6687 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
6688             Richard Henderson  <rth@redhat.com>
6689
6690         * dwarf2cfi.c (add_cfi): Remove.
6691         (dwarf2out_cfi_label): Remove force argument.  Only generate the
6692         label name.
6693         (add_fde_cfi): Simplify the different code paths.
6694         (add_cie_cfi): New.
6695         (old_cfa, old_cfa_remember): New.
6696         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
6697         (last_reg_save_label): Remove.
6698         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
6699         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
6700         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
6701         dwarf2out_frame_debug_cfa_expression,
6702         dwarf2out_frame_debug_cfa_restore,
6703         dwarf2out_frame_debug_cfa_window_save,
6704         dwarf2out_frame_debug_expr): Remove label parameter.
6705         (cfi_label_required_p, add_cfis_to_fde): New.
6706         (dwarf2out_frame_debug_after_prologue): New.
6707         (dwarf2cfi_frame_init): Initialize old_cfa.
6708         (dwarf2out_frame_debug_restore_state): Likewise.
6709         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
6710         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
6711         * final.c (final_start_function): Call
6712         dwarf2out_frame_debug_after_prologue.
6713
6714 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
6715             Richard Henderson  <rth@redhat.com>
6716
6717         * dwarf2cfi.c (cfi_insn): New.
6718         (dwarf2out_cfi_label): Don't emit cfi label here.
6719         (add_fde_cfi): Create a NOTE_INSN_CFI.
6720         (dwarf2out_frame_debug): Setup cfi_insn.
6721         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
6722         (dwarf2out_cfi_begin_epilogue): Make static.
6723         (dwarf2out_frame_debug_restore_state): Make static.
6724         * dwarf2out.c (output_cfi_directive): Make static.
6725         (dwarf2out_emit_cfi): New.
6726         * dwarf2out.h: Update.
6727         * final.c (final): Remove CFI notes.
6728         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
6729         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
6730         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
6731         * insn-notes.def (NOTE_INSN_CFI): New.
6732         (NOTE_INSN_CFI_LABEL): New.
6733         * rtl.h (union rtunion_def): Add rt_cfi member.
6734         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
6735
6736 2011-07-07  Richard Henderson  <rth@redhat.com>
6737
6738         * dwarf2cfi.c: New file.
6739         * Makefile.in (OBJS): Add it.
6740         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
6741         * gengtype.c (open_base_files): Include dwarf2out.h.
6742         * coretypes.h (enum var_init_status): Move from ...
6743         * rtl.h: ... here.
6744         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
6745         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
6746         expand_builtin_dwarf_sp_column, init_return_column_size,
6747         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
6748         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
6749         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
6750         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
6751         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
6752         compute_barrier_args_size, dwarf2out_args_size,
6753         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
6754         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
6755         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
6756         queue_reg_save, dwarf2out_flush_queued_reg_saves,
6757         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
6758         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
6759         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
6760         dwarf2out_frame_debug_cfa_expression,
6761         dwarf2out_frame_debug_cfa_restore,
6762         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
6763         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
6764         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
6765         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
6766         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
6767         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
6768         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
6769         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
6770         dw_loc_descr_node): Move to dwarf2out.h.
6771         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
6772         mem_loc_descriptor): Export.
6773         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
6774         (dwarf2out_frame_init): Extract CIE generation code to
6775         dwarf2cfi_frame_init.
6776
6777 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
6778
6779         PR target/49660
6780         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
6781         MASK_V8PLUS, remove commented out flag and reorder.
6782
6783 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
6784
6785         PR c/49644
6786         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
6787         one non-complex and one complex argument, call c_save_expr on both
6788         operands.
6789
6790 2011-07-07  Martin Jambor  <mjambor@suse.cz>
6791
6792         PR middle-end/49495
6793         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
6794         (verify_cgraph_node): Some functinality moved to
6795         verify_edge_corresponds_to_fndecl, call it.
6796
6797 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
6798
6799         * config.gcc (*local*): Remove.
6800         * doc/install-old.texi: Don't mention local configurations.
6801
6802 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
6803
6804         PR debug/49522
6805         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
6806         referencing debug insns that have been reset.
6807         (dead_debug_insert_before): Don't assert reg is non-NULL,
6808         instead return immediately if it is NULL.
6809
6810 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
6811
6812         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
6813
6814 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
6815
6816         * hw-doloop.c: New file.
6817         * hw-doloop.h: New file.
6818         * Makefile.in (OBJS): Add hw-doloop.o.
6819         (hw-doloop.o): New rule.
6820         ($(obj_out_file)): Add hw-doloop.h dependency.
6821         * config/bfin/bfin.c: Include "hw-doloop.h".
6822         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
6823         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
6824         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
6825         type changed to hwloop_info.  Return bool, true if the loop was
6826         successfully optimized.  Remove code that was moved to
6827         hw-doloop.c, and adjust other parts.
6828         (hwloop_fail): New static function, containing parts that used
6829         to be in bfin_optimize_loop.
6830         (bfin_discover_loop, bfin_discover_loops, free_loops,
6831         bfin_reorder_loops): Remove.
6832         (hwloop_pattern_reg): New static function.
6833         (bfin_doloop_hooks): New variable.
6834         (bfin_reorg_loops): Remove most code, call reorg_loops.
6835         * config/bfin/bfin.md (doloop_end splitter): Also enable if
6836         loop counter is a memory_operand.
6837
6838 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
6839
6840         * config.gcc: Support --with-multilib-list for x86 Linux targets.
6841
6842         * configure.ac: Mention x86-64 for --with-multilib-list.
6843         * configure: Regenerated.
6844
6845         * config/i386/gnu-user64.h (SPEC_64): Support x32.
6846         (SPEC_32): Likewise.
6847         (ASM_SPEC): Likewise.
6848         (LINK_SPEC): Likewise.
6849         (TARGET_THREAD_SSP_OFFSET): Likewise.
6850         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
6851         (SPEC_X32): New.
6852
6853         * config/i386/i386.h (TARGET_X32): New.
6854         (TARGET_LP64): New.
6855         (LONG_TYPE_SIZE): Likewise.
6856         (POINTER_SIZE): Likewise.
6857         (POINTERS_EXTEND_UNSIGNED): Likewise.
6858         (OPT_ARCH64): Support x32.
6859         (OPT_ARCH32): Likewise.
6860
6861         * config/i386/i386.opt (mx32): New.
6862
6863         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
6864         (GLIBC_DYNAMIC_LINKERX32): Likewise.
6865         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
6866         (GLIBC_DYNAMIC_LINKERX32): Likewise.
6867
6868         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
6869         (BIONIC_DYNAMIC_LINKERX32): Likewise.
6870         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
6871
6872         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
6873
6874         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
6875
6876         * doc/invoke.texi: Document -mx32.
6877
6878 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
6879
6880         * doc/invoke.texi (mwords-little-endian): Deprecate.
6881         * config/arm/arm.opt (mwords-little-endian): Likewise.
6882         * config/arm/arm.c (arm_option_override): Warn about the deprecation
6883         of -mwords-little-endian.
6884
6885 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
6886
6887         * reload1.c (choose_reload_regs): Use mode sizes to check whether
6888         an old reload register completely defines the required value.
6889
6890 2011-07-07  Richard Guenther  <rguenther@suse.de>
6891
6892         * fold-const.c (fold_unary_loc): Do not strip sign-changes
6893         for NEGATE_EXPR.
6894
6895 2011-07-07  Richard Guenther  <rguenther@suse.de>
6896
6897         * tree-vrp.c (simplify_conversion_using_ranges): New function.
6898         (simplify_stmt_using_ranges): Call it.
6899
6900 2011-07-07  Kai Tietz  <ktietz@redhat.com>
6901
6902         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
6903         (lookup_logical_inverted_value): Likewise.
6904         (simplify_bitwise_binary_1): Likewise.
6905         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
6906
6907 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
6908
6909         * gcc.c (%[Spec]): Don't document.
6910         (struct spec_list): Update comment.
6911         (do_spec_1): Don't handle %[Spec].
6912         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
6913
6914 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
6915
6916         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
6917         default based on TARGET_ASM_NAMED_SECTION.
6918         * common/common-target.def (have_named_sections): Default to true.
6919         * common/config/default-common.c: Don't include tm.h.
6920         * common/config/picochip/picochip-common.c
6921         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
6922         * common/config/m32c/m32c-common.c: Remove.
6923         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
6924         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
6925         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
6926         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
6927         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
6928         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
6929         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
6930
6931 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
6932
6933         PR middle-end/49640
6934         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
6935         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
6936
6937 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6938
6939         PR libmudflap/49550
6940         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
6941
6942 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6943
6944         PR target/39150
6945         * configure.ac (gcc_cv_as_hidden): Also accept
6946         x86_64-*-solaris2.1[0-9]*.
6947         (gcc_cv_as_cfi_directive): Likewise.
6948         (gcc_cv_as_comdat_group_group): Likewise.
6949         (set_have_as_tls): Likewise.
6950         * configure: Regenerate.
6951         * config.gcc (i[34567]86-*-solaris2*): Also handle
6952         x86_64-*-solaris2.1[0-9]*.
6953         * config.host (i[34567]86-*-solaris2*): Likewise.
6954         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
6955         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
6956         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
6957         (TARGET_LD_EMULATION): Use it.
6958         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
6959         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
6960         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
6961         (ASM_CPU64_DEFAULT_SPEC): Define.
6962         (ASM_CPU_SPEC): Use %(asm_cpu_default).
6963         (ASM_SPEC): Redefine.
6964         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
6965         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
6966         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
6967         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
6968         configuration.
6969         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
6970
6971 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6972
6973         * config/sol2.h (ASM_SPEC): Split into ...
6974         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
6975         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
6976         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
6977         (ASM_SPEC): Use ASM_SPEC_BASE.
6978         * config/sparc/sol2.h (ASM_SPEC): Redefine.
6979
6980 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
6981
6982         * config/avr/avr.md (*reload_insi): Change predicate #1 to
6983         const_int_operand.  Ditto for peep2 producing this insn.
6984         Add argument to output_reload_insisf call.
6985         (*movsi,*movsf): Add argument to output_movsisf call.
6986         (*reload_insf): New insn and new peep2 to produce it.
6987         * config/avr/avr-protos.h (output_movsisf): Change prototype.
6988         (output_reload_insisf): Change prototype.
6989         * config/avr/avr.c (avr_asm_len): New function.
6990         (output_reload_insisf): Rewrite.
6991         (output_movsisf): Change prototype.  output_reload_insisf for
6992         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
6993         (adjust_insn_length): Add argument to output_movsisf and
6994         output_reload_insisf call.
6995
6996 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
6997
6998         * emit-rtl.c (paradoxical_subreg_p): New function.
6999         * rtl.h (paradoxical_subreg_p): Declare.
7000         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
7001         apply_distributive_law, simplify_comparison, simplify_set): Use it.
7002         * cse.c (record_jump_cond, cse_insn): Likewise.
7003         * expr.c (force_operand): Likewise.
7004         * rtlanal.c (num_sign_bit_copies1): Likewise.
7005         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
7006         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
7007         (push_reload): Use precision to check for paradoxical subregs.
7008         * expmed.c (extract_bit_field_1): Likewise.
7009
7010         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
7011         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
7012         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
7013         simplify_set, simplify_logical, expand_compound_operation,
7014         make_extraction, force_to_mode, if_then_else_cond, extended_count,
7015         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
7016         record_value_for_reg): Likewise.
7017         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
7018         * simplify-rtx. c (simplify_unary_operation_1,
7019         simplify_binary_operation_1, simplify_const_relational_operation):
7020         Likewise.
7021
7022         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
7023         instead of GET_MODE_BITSIZE where appropriate.
7024         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
7025         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
7026         init_num_sign_bit_copies_in_rep): Likewise.
7027         * cse.c (fold_rtx, cse_insn): Likewise.
7028         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
7029         * simplify-rtx.c (simplify_unary_operation_1,
7030         simplify_const_unary_operation, simplify_binary_operation_1,
7031         simplify_const_binary_operation, simplify_ternary_operation,
7032         simplify_const_relational_operation, simplify_subreg): Likewise.
7033         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
7034         simplify_if_then_else, simplify_set, expand_compound_operation,
7035         expand_field_assignment, make_extraction, if_then_else_cond,
7036         make_compound_operation, force_to_mode, make_field_assignment,
7037         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
7038         extended_count, try_widen_shift_mode, simplify_shift_const_1,
7039         simplify_comparison, record_promoted_value, simplify_compare_const,
7040         record_dead_and_set_regs_1): Likewise.
7041
7042         Revert:
7043         * simplify-rtx.c (simplify_const_binary_operation): Use the
7044         shift_truncation_mask hook instead of performing modulo by width.
7045         Compare against mode precision, not bitsize.
7046         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
7047         Use shift_truncation_mask instead of constructing the value manually.
7048
7049 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
7050
7051         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
7052         declaration.
7053         (rs6000_save_toc_in_prologue_p): Ditto.
7054
7055         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
7056         up the static chain (r11) during indirect function calls.
7057         (-msave-toc-indirect): New undocumented debug switch.
7058
7059         * config/rs6000/rs6000.c (struct machine_function): Add
7060         save_toc_in_prologue field to note whether the prologue needs to
7061         save the TOC value in the reserved stack location.
7062         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
7063         to save the TOC in the prologue, do so.
7064         (rs6000_trampoline_init): Don't allow creating AIX style
7065         trampolines if -mno-r11 is in effect.
7066         (rs6000_call_indirect_aix): New function to create AIX style
7067         indirect calls, adding support for -mno-r11 to suppress loading
7068         the static chain, and saving the TOC in the prologue instead of
7069         the call body.
7070         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
7071         TOC in the prologue.
7072
7073         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
7074         register numbers.
7075         (TOC_REGNUM): Ditto.
7076         (STATIC_CHAIN_REGNUM): Ditto.
7077         (ARG_POINTER_REGNUM): Ditto.
7078         (SFP_REGNO): Delete, unused.
7079         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
7080         function descriptor offsets.
7081         (TOC_SAVE_OFFSET_64BIT): Ditto.
7082         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
7083         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
7084         (AIX_FUNC_DESC_SC_32BIT): Ditto.
7085         (AIX_FUNC_DESC_SC_64BIT): Ditto.
7086         (ptrload): New mode attribute for the appropriate load of a pointer.
7087         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
7088         (call_indirect_aix64): Ditto.
7089         (call_value_indirect_aix32): Ditto.
7090         (call_value_indirect_aix64): Ditto.
7091         (call_indirect_nonlocal_aix32_internal): Ditto.
7092         (call_indirect_nonlocal_aix32): Ditto.
7093         (call_indirect_nonlocal_aix64_internal): Ditto.
7094         (call_indirect_nonlocal_aix64): Ditto.
7095         (call): Rewrite AIX indirect function calls.  Add support for
7096         eliminating the static chain, and for moving the save of the TOC
7097         to the function prologue.
7098         (call_value): Ditto.
7099         (call_indirect_aix<ptrsize>): Ditto.
7100         (call_indirect_aix<ptrsize>_internal): Ditto.
7101         (call_indirect_aix<ptrsize>_internal2): Ditto.
7102         (call_indirect_aix<ptrsize>_nor11): Ditto.
7103         (call_value_indirect_aix<ptrsize>): Ditto.
7104         (call_value_indirect_aix<ptrsize>_internal): Ditto.
7105         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
7106         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
7107         (call_nonlocal_aix32): Relocate in the rs6000.md file.
7108         (call_nonlocal_aix64): Ditto.
7109
7110         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
7111         -mno-r11 documentation.
7112
7113 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
7114
7115         PR other/49658
7116         * doc/extend.texi (Compound Literals): Fix typo.
7117
7118 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
7119
7120         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
7121
7122 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
7123
7124         * configure.ac (plugin-version.h): Generate
7125         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
7126         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
7127         macros.
7128
7129         * configure: Regenerate.
7130
7131         * doc/plugins.texi (Building GCC plugins): Mention
7132         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
7133
7134 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
7135
7136         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
7137         * combine.c (make_extraction, gen_lowpart_or_truncate,
7138         apply_distributive_law, simplify_comparison,
7139         reg_truncated_to_mode, record_truncated_value): Use it.
7140         * cse.c (notreg_cost): Likewise.
7141         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
7142         * expr.c (convert_move, convert_modes): Likewise.
7143         * optabs.c (expand_binop, expand_unop): Likewise.
7144         * postreload.c (move2add_last_label): Likewise.
7145         * regmove.c (optimize_reg_copy_3): Likewise.
7146         * rtlhooks.c (gen_lowpart_general): Likewise.
7147         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7148
7149 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
7150
7151         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
7152
7153 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
7154
7155         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
7156         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
7157         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
7158         (simplify_const_unary_operation, simplify_binary_operation_1,
7159         simplify_const_binary_operation, simplify_const_relational_operation):
7160         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
7161         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
7162         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
7163         simplify_shift_const_1, simplify_comparison): Likewise.
7164         * expr.c (convert_modes): Likewise.
7165         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
7166         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
7167         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
7168
7169         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
7170
7171 2011-07-06  Richard Guenther  <rguenther@suse.de>
7172
7173         PR tree-optimization/49645
7174         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
7175         register variables.
7176         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
7177         in type qualification here ...
7178         (copy_reference_ops_from_ref): ... not here.
7179         (vn_reference_lookup_3): ... or here.
7180         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
7181         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
7182
7183 2011-07-06  Ian Lance Taylor  <iant@google.com>
7184
7185         * doc/install.texi (Configuration): It's
7186         --enable-gnu-indirect-function, not --enable-indirect-function.
7187
7188 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
7189
7190         * simplify-rtx.c (simplify_const_binary_operation): Use the
7191         shift_truncation_mask hook instead of performing modulo by width.
7192         Compare against mode precision, not bitsize.
7193         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
7194         Use shift_truncation_mask instead of constructing the value manually.
7195
7196 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
7197
7198         PR middle-end/47383
7199         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
7200         address computation and convert to address_mode if needed.
7201
7202 2011-07-06  Richard Guenther  <rguenther@suse.de>
7203
7204         * tree.c (build_common_tree_nodes_2): Merge with
7205         build_common_tree_nodes.
7206         * tree.h (build_common_tree_nodes): Adjust prototype.
7207         (build_common_tree_nodes_2): Remove.
7208         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
7209         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
7210
7211 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
7212
7213         PR tree-optimization/49618
7214         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
7215         t recurse on the decl.
7216         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
7217         return true if expr isn't known to be defined in current
7218         TU or some other LTO partition.
7219
7220 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
7221
7222         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
7223         override CASE_VALUES_THRESHOLD.
7224
7225         * stmt.c (toplevel): Include params.h.
7226         (case_values_threshold): Use the --param case-values-threshold
7227         value if non-zero, otherwise use machine dependent value.
7228         (expand_case): Use case_values_threshold.
7229
7230         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
7231
7232         * doc/invoke.texi (--param case-values-threshold): Document.
7233
7234 2011-07-05  Richard Henderson  <rth@redhat.com>
7235
7236         * dwarf2out.c (dwarf2out_cfi_label): Make static.
7237         (dwarf2out_flush_queued_reg_saves): Make static.
7238         (dwarf2out_reg_save): Remove.
7239         (dwarf2out_return_save): Remove.
7240         (dwarf2out_return_reg): Remove.
7241         (dwarf2out_reg_save_reg): Remove.
7242         (dwarf2out_def_cfa): Merge into ...
7243         (dwarf2out_frame_init): ... here.
7244         * dwarf2out.h, tree.h: Remove declarations as necessary.
7245
7246 2011-07-05  Richard Henderson  <rth@redhat.com>
7247
7248         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
7249         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
7250         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
7251         the alloc insn.
7252
7253         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
7254         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
7255         (process_epilogue): Don't call dwarf2out_def_cfa.
7256
7257         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
7258         indicate the return address save.
7259         (process_cfa_register): Likewise.
7260
7261         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
7262         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
7263
7264         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
7265         for ar.pfs save at alloc insn.
7266
7267 2011-07-05  Richard Henderson  <rth@redhat.com>
7268
7269         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
7270         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
7271         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
7272         stack pointer save.
7273         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
7274         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
7275         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
7276         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
7277
7278 2011-07-05  Richard Henderson  <rth@redhat.com>
7279
7280         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
7281         VUNSPEC_* constants here instead of via define_constants.
7282         (VUNSPEC_PEM): New constant.
7283         (procedure_entry_mask): New insn.
7284         (prologue): New expander.
7285         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
7286         (vax_expand_prologue): Rename from vax_output_function_prologue;
7287         emit rtl instead of text.
7288         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
7289         (print_operand): Add 'x' prefix.
7290
7291 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
7292
7293         PR middle-end/47715
7294         * calls.c (precompute_register_parameters): Promote the function
7295         argument before checking non-legitimate constant.
7296
7297 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
7298
7299         PR tree-optimization/47654
7300         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
7301         (lst_do_strip_mine_loop): Return an int.
7302         (lst_do_strip_mine): Same.
7303         (scop_do_strip_mine): Same.
7304         (scop_do_block): Loop blocking should strip-mine at least two loops.
7305         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
7306         (scop_do_interchange): Same.
7307         * graphite-poly.h (scop_do_interchange): Update declaration.
7308         (scop_do_strip_mine): Same.
7309
7310 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
7311
7312         * graphite-clast-to-gimple.c (precision_for_value): Removed.
7313         (precision_for_interval): Removed.
7314         (gcc_type_for_interval): Use mpz_sizeinbase.
7315
7316 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
7317
7318         * graphite-ppl.h (value_max): Correct computation of max.
7319
7320 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
7321
7322         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
7323
7324 2011-07-05  Richard Guenther  <rguenther@suse.de>
7325
7326         * c-decl.c (c_init_decl_processing): Defer building common
7327         tree nodes to c_common_nodes_and_builtins.
7328
7329 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
7330
7331         PR tree-optimization/49580
7332         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
7333         the loop's number of iterations.
7334         * tree-parloops.c (transform_to_exit_first_loop): Add the
7335         handling of the loop's number of iterations before the call
7336         to gimple_duplicate_sese_tail.
7337         Insert the stmt caclculating the new rhs of the loop's
7338         condition stmt to the preheader instead of iters_bb.
7339
7340 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
7341
7342         PR rtl-optimization/47449
7343         * fwprop.c (forward_propagate_subreg): Don't propagate hard
7344         register nor zero/sign extended hard register.
7345
7346 2011-07-05  Richard Guenther  <rguenther@suse.de>
7347
7348         PR tree-optimization/49518
7349         PR tree-optimization/49628
7350         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
7351         irrelevant and invariant data-references.
7352         (vect_analyze_data_ref_access): For invariant loads clear the
7353         group association.
7354
7355 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
7356
7357         PR rtl-optimization/49619
7358         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
7359         pass VOIDmode as op0_mode to recursive call, and return temp even
7360         when different from tor, just if it is not IOR of the original
7361         PLUS arguments.
7362
7363         PR rtl-optimization/49472
7364         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
7365         negating MULT, negate the second operand instead of first.
7366         (simplify_binary_operation_1) <case MULT>: If one operand is
7367         a NEG and the other is MULT, don't attempt to optimize by negation
7368         of the MULT operand if it only moves the NEG operation around.
7369
7370         PR debug/49602
7371         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
7372         get_current_def return value if it can't be trusted to be
7373         the current value of the variable in the current bb.
7374
7375 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
7376
7377         PR target/49600
7378         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
7379         general register to memory for !TARGET_INTER_UNIT_MOVES.
7380
7381 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
7382
7383         PR target/44643
7384         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
7385         instead of TREE_READONLY.
7386
7387 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
7388
7389         * doc/extend.texi (AVR Built-in Functions): Update documentation
7390         of __builtin_avr_fmul*.
7391         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
7392         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
7393         * config/avr/avr.md (fmul): Rename to fmul_insn.
7394         (fmuls): Rename to fmuls_insn.
7395         (fmulsu): Rename to fmulsu_insn.
7396         (fmul,fmuls,fmulsu): New expander.
7397         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
7398         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
7399         * config/avr/libgcc.S (__fmul): New function.
7400         (__fmuls): New function.
7401         (__fmulsu,__fmulsu_exit): New function.
7402
7403 2011-07-04  Richard Guenther  <rguenther@suse.de>
7404
7405         PR tree-optimization/49615
7406         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
7407         basic-block index check.
7408
7409 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
7410
7411         * longlong.h (count_leading_zeros, count_trailing_zeros,
7412         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
7413         resp. 64.
7414
7415 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
7416
7417         PR tree-optimization/49610
7418         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
7419         a basic block.
7420
7421 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
7422             Olivier Hainque  <hainque@adacore.com>
7423             Nicolas Setton  <setton@adacore.com>
7424
7425         * tree.h (TYPE_ARTIFICIAL): New flag.
7426         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
7427         the DIE of the type if it is artificial.
7428         (gen_array_type_die): Likewise.
7429         (gen_enumeration_type_die): Likewise.
7430         (gen_struct_or_union_type_die): Likewise.
7431         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
7432         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
7433
7434 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
7435
7436         * tree-object-size.c (pass_through_call): Handle
7437         BUILT_IN_ASSUME_ALIGNED.
7438
7439 2011-07-01  Martin Jambor  <mjambor@suse.cz>
7440
7441         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
7442
7443 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
7444
7445         PR middle-end/48016
7446         * explow.c (update_nonlocal_goto_save_area): Use proper mode
7447         for stack save area.
7448         * function.c (expand_function_start): Likewise.
7449
7450 2011-07-01  Richard Guenther  <rguenther@suse.de>
7451
7452         PR middle-end/49596
7453         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
7454         may have unknown refs.
7455
7456 2011-07-01  Kai Tietz  <ktietz@redhat.com>
7457
7458         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
7459
7460 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7461
7462         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
7463         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
7464         (Specific, mips-sgi-irix6): Likewise.
7465
7466 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7467
7468         PR libmudflap/49549
7469         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
7470
7471 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
7472
7473         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
7474         [idx]= and [idx1 ... idx2]= before initializers if needed for
7475         array initializers.
7476
7477 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
7478
7479         * config.gcc (score-*-elf): Remove score7.o.
7480         * config/score/t-score-elf: Likewise.
7481         * config/score/score.c: Merge score7 to score.c and
7482         remove forwarding functions.
7483         * config/score/score7.c: Deleted.
7484         * config/score/score7.h: Deleted.
7485
7486 2011-07-01  Richard Guenther  <rguenther@suse.de>
7487
7488         PR tree-optimization/49603
7489         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
7490
7491 2011-06-30  Martin Jambor  <mjambor@suse.cz>
7492
7493         * tree-sra.c (struct access): Rename total_scalarization to
7494         grp_total_scalarization
7495         (completely_scalarize_var): New function.
7496         (sort_and_splice_var_accesses): Set total_scalarization in the
7497         representative access.
7498         (analyze_access_subtree): Propagate total scalarization accross the
7499         tree, no holes in totally scalarized trees, simplify coverage
7500         computation.
7501         (analyze_all_variable_accesses): Call completely_scalarize_var instead
7502         of completely_scalarize_record.
7503
7504 2011-06-30  Richard Henderson  <rth@redhat.com>
7505
7506         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
7507         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
7508         * config/i386/i386.c: Don't include dwarf2out.h.
7509         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
7510         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
7511         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
7512         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
7513         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
7514
7515 2011-06-30  Richard Henderson  <rth@redhat.com>
7516
7517         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
7518         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
7519         * final.c (final_scan_insn): Look for it, and invoke
7520         dwarf2out_frame_debug before the insn if found.
7521
7522 2011-06-30  Richard Henderson  <rth@redhat.com>
7523
7524         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
7525         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
7526
7527 2011-06-30  Richard Henderson  <rth@redhat.com>
7528
7529         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
7530         Define a vector of this type.
7531         (regs_saved_in_regs): Use a VEC.
7532         (num_regs_saved_in_regs): Remove.
7533         (compare_reg_or_pc): New.
7534         (record_reg_saved_in_reg): Split out from...
7535         (dwarf2out_flush_queued_reg_saves): ... here.
7536         (clobbers_queued_reg_save): Update for VEC.
7537         (reg_saved_in): Likewise.
7538         (dwarf2out_frame_debug_init): Likewise.
7539         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
7540         (dwarf2out_frame_debug_cfa_register): Likewise.
7541
7542 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
7543
7544         PR tree-optimization/49572
7545         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
7546         type of the RHS instead of that of the LHS for the expression type.
7547
7548 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
7549
7550         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
7551         unconditionally.
7552
7553 2011-06-30  Richard Guenther  <rguenther@suse.de>
7554
7555         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
7556         * tree-ssa-structalias.c (create_variable_info_for): Do not
7557         add initial constraints for non-var-decls.  Properly handle
7558         globals in other ltrans partitions.
7559         (intra_create_variable_infos): Manually create constraints for
7560         the fake no-alias parameter.
7561         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
7562         and assert there are no clones.
7563
7564 2011-06-30  Richard Guenther  <rguenther@suse.de>
7565
7566         PR tree-optimization/46787
7567         * tree-data-ref.c (dr_address_invariant_p): Remove.
7568         (find_data_references_in_stmt): Invariant accesses are ok now.
7569         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
7570         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
7571         invariant loads.
7572
7573 2011-06-30  Martin Jambor  <mjambor@suse.cz>
7574
7575         PR tree-optimization/49094
7576         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
7577         (build_accesses_from_assign): Use it.
7578
7579 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
7580
7581         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
7582         handling of BUILT_IN_ASSUME_ALIGNED.
7583
7584         PR debug/49364
7585         * dwarf2out.c (output_abbrev_section): Don't return early
7586         if abbrev_die_table_in_use is 1.
7587         (dwarf2out_finish): Instead don't call output_abbrev_section
7588         nor emit abbrev_section_label in that case.
7589
7590 2011-06-30  Nick Clifton  <nickc@redhat.com>
7591
7592         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
7593         for the V850E.
7594
7595 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
7596
7597         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
7598         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
7599
7600 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
7601
7602         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
7603         both pattern and original statements if necessary.
7604         (vect_transform_loop): Likewise.
7605         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
7606         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
7607         Mark the pattern statement only if the original statement doesn't
7608         have its own uses.
7609         (process_use): Call vect_mark_relevant with additional parameter.
7610         (vect_mark_stmts_to_be_vectorized): Likewise.
7611         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
7612         (vect_analyze_stmt): Handle both pattern and original statements
7613         if necessary.
7614         (vect_transform_stmt): Don't store vectorized pattern statement
7615         in the original statement.
7616         (vect_is_simple_use_1): Use related pattern statement only if the
7617         original statement is irrelevant.
7618         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
7619
7620 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
7621
7622         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
7623         option.
7624         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
7625         entry.
7626         (TARGET_AVX128_OPTIMAL): New definition.
7627         * config/i386/i386.c (initial_ix86_tune_features): Initialize
7628         X86_TUNE_AVX128_OPTIMAL entry.
7629         (ix86_option_override_internal): Enable the generation
7630         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
7631         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
7632         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
7633
7634 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
7635
7636         PR tree-optimization/49539
7637         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
7638         names by means of stmt_references_abnormal_ssa_name.
7639         (associate_plusminus): Call can_propagate_from before propagating
7640         from definition statements.
7641         (ssa_forward_propagate_and_combine): Remove superfluous newline.
7642
7643 2011-06-29  Richard Guenther  <rguenther@suse.de>
7644
7645         * doc/invoke.texi: Document -scev dump modifier.
7646         * tree-pass.h (TDF_SCEV): New dump flag.
7647         * tree-dump.c (dump_option_value_in): Add scev.
7648         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
7649         * tree-scalar-evolution.c: Likewise.
7650
7651 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
7652
7653         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
7654         (cxa_type_match): Correct declaration.
7655         (__gnu_unwind_pr_common): Reconstruct additional indirection
7656         when __cxa_type_match returns succeeded_with_ptr_to_base.
7657
7658 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7659
7660         PR rtl-optimization/49114
7661         * reload.c (struct replacement): Remove SUBREG_LOC member.
7662         (push_reload): Do not set it.
7663         (push_replacement): Likewise.
7664         (subst_reload): Remove dead code.
7665         (copy_replacements): Remove assertion.
7666         (copy_replacements_1): Do not handle SUBREG_LOC.
7667         (move_replacements): Likewise.
7668         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
7669         Detect subregs via recursive descent instead of via SUBREG_LOC.
7670
7671 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
7672
7673         * config/avr/avr.c (avr_encode_section_info): Dispatch to
7674         default_encode_section_info.
7675
7676 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
7677
7678         PR tree-optimization/49545
7679         * builtins.c (get_object_alignment_1): Update function comment.
7680         Do not use DECL_ALIGN for functions, but test
7681         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
7682         * fold-const.c (get_pointer_modulus_and_residue): Don't check
7683         for functions here.
7684         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
7685
7686 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
7687
7688         PR debug/49567
7689         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
7690         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
7691
7692 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
7693
7694         PR target/34734
7695         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
7696         about uninitialized data attributed 'progmem' from here...
7697         (avr_encode_section_info): ...to this new function.
7698         (TARGET_ENCODE_SECTION_INFO): New define.
7699         (avr_section_type_flags): For data in ".progmem.data", remove
7700         section flag SECTION_WRITE.
7701
7702 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
7703
7704         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
7705         _xmulhisi3_exit.
7706         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
7707         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
7708         (__umulhisi3): Ditto.
7709         * config/avr/avr.md (mulhisi3): New insn expender.
7710         (umulhisi3): New insn expender.
7711         (*mulhisi3_call): New insn.
7712         (*umulhisi3_call): New insn.
7713
7714 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
7715
7716         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
7717
7718 2011-06-28  Richard Henderson  <rth@redhat.com>
7719
7720         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
7721         all code and arguments that handled pushes.  Update all callers.
7722
7723 2011-06-28  Richard Henderson  <rth@redhat.com>
7724
7725         * config/arm/arm.c (arm_output_function_prologue): Don't call
7726         thumb1_output_function_prologue.
7727         (arm_expand_prologue): Avoid dead store.
7728         (number_of_first_bit_set): Use ctz_hwi.
7729         (thumb1_emit_multi_reg_push): New.
7730         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
7731         to emit the entire prologue as rtl.
7732         (thumb1_output_interwork): Split out from
7733         thumb1_output_function_prologue.
7734         (thumb1_output_function_prologue): Remove.
7735         (arm_attr_length_push_multi): Handle thumb1.
7736         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
7737         (prologue_thumb1_interwork): New.
7738         (*push_multi): Allow thumb1; use push_mult_memory_operand.
7739         * config/arm/predicates.md (push_mult_memory_operand): New.
7740
7741 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
7742
7743         * config/sparc/sync.md (*stbar): Delete.
7744         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
7745
7746 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
7747
7748         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
7749
7750 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7751
7752         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
7753         (TARGET_64BIT_DEFAULT): Define.
7754         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
7755         of tm_file.
7756         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
7757
7758 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
7759
7760         * common.opt (in_lto_p): New Variable entry.
7761         * flags.h (in_lto_p): Move to common.opt.
7762         * gcc.c: Include params.h.
7763         (set_option_handlers): Also use common_handle_option and
7764         target_handle_option.
7765         (main): Call global_init_params, finish_params and init_options_struct.
7766         * opts.c (debug_type_names): Move from toplev.c.
7767         (print_filtered_help): Access quiet_flag through opts pointer.
7768         (common_handle_option): Return early in the driver for some options.
7769         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
7770         opts pointer.
7771         * toplev.c (in_lto_p): Move to common.opt.
7772         (debug_type_names): Move to opts.c.
7773         * Makefile.in (OBJS): Remove opts.o.
7774         (OBJS-libcommon-target): Add opts.o.
7775         (gcc.o): Update dependencies.
7776
7777 2011-06-28  Kai Tietz  <ktietz@redhat.com>
7778
7779         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
7780
7781 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7782
7783         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
7784         with '=' constraint modifier.
7785         (*divdf3_vfp): Likewise.
7786         ("*mulsf3_vfp"): Likewise.
7787         ("*muldf3_vfp"): Likewise.
7788         ("*mulsf3negsf_vfp"): Likewise.
7789         ("*muldf3negdf_vfp"): Likewise.
7790
7791 2011-06-28  Nick Clifton  <nickc@redhat.com>
7792
7793         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
7794         relaxation when performing an incremental link.
7795
7796 2011-06-28  Kai Tietz  <ktietz@redhat.com>
7797
7798         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
7799         within BB from last to first.
7800
7801 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
7802
7803         * genattr-common.c: New.  Based on genattr.c.
7804         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
7805         (MOSTLYCLEANFILES): Add insn-attr-common.h.
7806         (opts.o): Update dependencies.
7807         (.PRECIOUS): Add insn-attr-common.h.
7808         (simple_rtl_generated_h): Add insn-attr-common.h.
7809         (build/genattr-common.o): New.
7810         (genprogrtl): Add attr-common.
7811         * genattr.c (main): Include insn-attr-common.h.  Don't generate
7812         definitions of DELAY_SLOTS or INSN_SCHEDULING.
7813         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
7814
7815 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
7816
7817         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
7818         avr-*-* and avr-*-rtems* targets.
7819
7820         * config/avr/elf.h: New file.
7821         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
7822         (TARGET_ASM_SELECT_SECTION): Define.
7823         (INIT_SECTION_ASM_OP): Undefine.
7824         (FINI_SECTION_ASM_OP): Undefine.
7825         (READONLY_DATA_SECTION_ASM_OP): Undefine.
7826         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
7827         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
7828         * config/avr/avr.h:
7829         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
7830         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
7831         (MAX_OFILE_ALIGNMENT): Move to elf.h.
7832         (STRING_LIMIT): Move to elf.h.
7833         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
7834         (ASM_DECLARE_OBJECT_NAME): Remove.
7835         (ESCAPES): Remove.
7836         (ASM_OUTPUT_SKIP): Remove.
7837         (DWARF2_DEBUGGING_INFO): Remove.
7838         (OBJECT_FORMAT_ELF): Remove.
7839         (USER_LABEL_PREFIX): Remove.
7840         (ASM_OUTPUT_EXTERNAL): Remove.
7841         (ASM_OUTPUT_ASCII): Remove.
7842         (TYPE_ASM_OP): Remove.
7843         (SIZE_ASM_OP): Remove.
7844         (WEAK_ASM_OP): Remove.
7845         (STRING_ASM_OP): Remove.
7846         (SET_ASM_OP): Remove.
7847         (ASM_WEAKEN_LABEL): Remove.
7848         (TYPE_OPERAND_FMT): Remove.
7849         (ASM_DECLARE_FUNCTION_SIZE): Remove.
7850         (ASM_FINISH_DECLARE_OBJECT): Remove.
7851         (NO_DOLLAR_IN_LABEL): Remove.
7852         (ASM_GENERATE_INTERNAL_LABEL): Remove.
7853         (ASM_OUTPUT_CASE_LABEL): Remove.
7854         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
7855         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
7856         (gas_output_ascii): Remove.
7857         (gas_output_limited_string): Remove.
7858         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
7859         * config/avr/avr-protos.h
7860         (gas_output_ascii): Remove prototye.
7861         (gas_output_limited_string): Remove prototype.
7862
7863 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
7864
7865         PR target/48637
7866         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
7867         asm operands.
7868
7869 2011-06-27  Jan Hubicka  <jh@suse.cz>
7870
7871         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
7872         node instead of references in node.
7873
7874 2011-06-27  Richard Henderson  <rth@redhat.com>
7875
7876         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
7877         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
7878         inside ifdef.
7879
7880 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
7881
7882         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
7883
7884         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
7885         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
7886         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
7887         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
7888         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
7889         (evaluate_stmt, execute_fold_all_builtins): Handle
7890         BUILT_IN_ASSUME_ALIGNED.
7891         * tree-ssa-dce.c (propagate_necessity): Likewise.
7892         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
7893         call_may_clobber_ref_p_1): Likewise.
7894         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
7895         (expand_builtin_assume_aligned): New function.
7896         * doc/extend.texi (__builtin_assume_aligned): Document.
7897
7898         PR debug/49544
7899         * cselib.c (promote_debug_loc): If cselib_preserve_constants
7900         and l has two DEBUG_INSN owned locs instead of just one, adjust
7901         the second location's setting_insn too.
7902
7903 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7904
7905         PR libmudflap/38738
7906         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
7907
7908 2011-06-27  Nick Clifton  <nickc@redhat.com>
7909
7910         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
7911         bit position of highest bit set into a count of the high zero bits.
7912
7913 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
7914
7915         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
7916
7917 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
7918
7919         PR lto/48492
7920         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
7921         to a NULL parent.
7922
7923 2011-06-27  Richard Guenther  <rguenther@suse.de>
7924
7925         PR tree-optimization/49394
7926         * passes.c (execute_one_pass): Restore current_pass after
7927         applying IPA transforms.
7928
7929 2011-06-27  Kai Tietz  <ktietz@redhat.com>
7930
7931         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
7932         out of type precision after operation.
7933         (find_bswap): Take for limit value the integer auto-promotion
7934         into account.
7935
7936 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
7937
7938         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
7939         forward scan as well.
7940
7941 2011-06-27  Tristan Gingold  <gingold@adacore.com>
7942
7943         PR target/44241
7944         * config/vms/vms-protos.h: New file.
7945         * config/vms/vms-crtlmap.map: New file.
7946         * config/vms/vms.c: New file.
7947         * config/vms/make-crtlmap.awk: New file.
7948         * config/vms/vms-crtl.h: File removed.
7949         * config/vms/vms-crtl-64.h: File removed.
7950         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
7951         * config/alpha/vms64.h: Do not include vms-crtl-64.h
7952         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
7953         clear some builtins on VMS.  Calls vms_patch_builtins.
7954         (avms_asm_output_external): Remove.
7955         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
7956         (struct crtl_name_spec): Remove
7957         (DO_CTRL_NAMES): Remove.
7958         * config/ia64/vms.h (struct crtl_name_spec): Remove
7959         (DO_CTRL_NAMES): Remove.
7960         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
7961         clear some builtins on VMS.  Calls vms_patch_builtins.
7962         (ia64_asm_output_external): Remove DO_CRTL_NAME.
7963         * config/ia64/vms64.h: Do not include vms-crtl-64.h
7964         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
7965
7966 2011-06-27  Tristan Gingold  <gingold@adacore.com>
7967
7968         * config/alpha/alpha.c (alpha_end_function): Always generate .end
7969         directive on VMS.
7970
7971 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
7972
7973         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
7974         the function receives nonlocal gotos.
7975
7976 2011-06-27  Richard Guenther  <rguenther@suse.de>
7977
7978         PR tree-optimization/49536
7979         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
7980         For non-scalar inner types use a scalar type according to
7981         the scalar inner mode.
7982
7983 2011-06-27  Richard Guenther  <rguenther@suse.de>
7984
7985         PR tree-optimization/49365
7986         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
7987
7988 2011-06-27  Richard Guenther  <rguenther@suse.de>
7989
7990         PR tree-optimization/49169
7991         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
7992         the alignment of function decls.
7993
7994 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
7995
7996         PR target/47997
7997         * config/darwin.c (darwin_mergeable_string_section): Place string
7998         constants in '.cstring' rather than '.const' when CF/NSStrings are
7999         active.
8000
8001 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
8002
8003         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
8004         (emit_save_register_window): Likewise.
8005         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
8006         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
8007         Swap back %o7/%i7 in register naming.
8008
8009 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
8010
8011         PR driver/49371
8012         * config/darwin.c (darwin_override_options): Improve warning when
8013         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
8014         is given with fpie/fPIE.
8015         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
8016         * config/darwin9.h (PIE_SPEC): New.
8017
8018 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
8019
8020         * timevar.c (timevar_print): Increase width for display of timevar
8021         name.
8022
8023 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
8024
8025         PR c++/46400
8026         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
8027         instead of TYPE_CHAIN for chain_next for types.
8028
8029 2011-06-24  Richard Henderson  <rth@redhat.com>
8030
8031         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
8032         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
8033         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
8034         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
8035         (sparc_flat_expand_prologue): Emit individual instructions
8036         instead of one of the above.
8037
8038 2011-06-24  Easwaran Raman  <eraman@google.com>
8039
8040         PR rtl-optimization/49429
8041         PR target/49454
8042         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
8043         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
8044         used to copy y into x.
8045         * calls.c (initialize_argument_information): Mark
8046         an argument addressable if it is passed by invisible reference.
8047         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
8048         if it is passed by reference.
8049
8050 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
8051
8052         PR rtl-optimization/49504
8053         * rtlanal.c (nonzero_bits1): Properly handle addition or
8054         subtraction of a pointer in Pmode if pointers extend unsigned.
8055         (num_sign_bit_copies1): Likewise.
8056
8057 2011-06-24  Martin Jambor  <mjambor@suse.cz>
8058
8059         PR tree-optimizations/49516
8060         * tree-sra.c (sra_modify_assign): Choose the safe path for
8061         aggregate copies if we also did scalar replacements.
8062
8063 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8064
8065         PR target/49335
8066         * config/arm/predicates.md (add_operator): New.
8067         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
8068
8069 2011-06-24  Andi Kleen  <ak@linux.intel.com>
8070
8071         * tree-sra.c (type_internals_preclude_sra_p): Add msg
8072         parameter. Split up ifs and report reason in *msg.
8073         (reject): Add.
8074         (find_var_candiate): Add msg variable.
8075         Split up ifs and report reason to reject.
8076         (find_param_candidates): Add msg variable.
8077         Pass msg to type_internals_preclude_sra_p.
8078
8079 2011-06-23  Jeff Law  <law@redhat.com>
8080
8081         PR middle-end/48770
8082         * reload.h (reload): Change to return a bool.
8083         * ira.c (ira): If requested by reload, run a fast DCE pass after
8084         reload has completed.  Fix comment typo.
8085         * reload1.c (need_dce): New file scoped static.
8086         (reload): Set reload_completed here.  Return whether or not a DCE
8087         pass after reload is needed.
8088         (delete_dead_insn): Set need_dce as needed.
8089
8090         PR middle-end/49465
8091         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
8092         to detect threading through joiner block.  If there was already
8093         an edge to the new target, then do not change the PHI nodes.
8094
8095 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
8096
8097         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
8098         get_pointer_alignment to see if base isn't sufficiently aligned.
8099
8100 2011-06-23  Jan Hubicka  <jh@suse.cz>
8101
8102         PR tree-optimize/49373
8103         * tree-pass.h (all_late_ipa_passes): Declare.
8104         * cgraphunit.c (init_lowered_empty_function): Fix properties.
8105         (cgraph_optimize): Execute late passes; remove unreachable funcions
8106         after materialization.
8107         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
8108         LTOing.
8109         * passes.c (all_late_ipa_passes): Declare.
8110         (dump_passes, register_pass): Handle late ipa passes.
8111         (init_optimization_passes): Move ipa_pta to late passes; schedule
8112         fixup_cfg at beggining of all_passes.
8113         (apply_ipa_transforms): New function.
8114         (execute_one_pass): When doing simple ipa pass, apply all transforms.
8115
8116 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
8117
8118         * params.c: Include common/common-target.h.  Don't include tm.h.
8119         (lang_independent_params): Move from toplev.c.
8120         (global_init_params): New.
8121         * params.h (global_init_params): Declare.
8122         * target.def (default_params): Move to common-target.def.
8123         * toplev.c (lang_independent_options): Remove.
8124         (lang_independent_params): Move to params.c.
8125         (general_init): Use global_init_params.
8126         * common/common-target.def (option_default_params): Move from
8127         target.def.
8128         * common/config/ia64/ia64-common.c: Include params.h.
8129         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8130         from ia64.c.
8131         * common/config/rs6000/rs6000-common.c: Include params.h.
8132         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8133         from rs6000.c.
8134         * common/config/sh/sh-common.c: Include params.h.
8135         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8136         from sh.c.
8137         * common/config/spu/spu-common.c: Include params.h.
8138         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8139         from spu.c.
8140         * config/ia64/ia64.c (ia64_option_default_params,
8141         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
8142         * config/rs6000/rs6000.c (rs6000_option_default_params,
8143         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
8144         * config/sh/sh.c (sh_option_default_params,
8145         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
8146         * config/spu/spu.c (spu_option_default_params,
8147         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
8148         * Makefile.in (OBJS): Remove params.o.
8149         (OBJS-libcommon-target): Add params.o.
8150         (params.o, $(common_out_object_file)): Update dependencies.
8151         * doc/tm.texi: Regenerate.
8152
8153 2011-06-23  Alan Modra  <amodra@gmail.com>
8154
8155         PR bootstrap/49383
8156         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
8157         invocation for 2011-06-09 changes.
8158
8159 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
8160
8161         PR libgomp/49490
8162         * omp-low.c (expand_omp_for_static_nochunk): Only
8163         use n ceil/ nthreads size for the first n % nthreads threads in the
8164         team instead of all threads except for the last few ones which
8165         get less work or none at all.
8166
8167         PR debug/49496
8168         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
8169         uses.
8170
8171 2011-06-22  Richard Guenther  <rguenther@suse.de>
8172
8173         PR tree-optimization/49493
8174         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
8175         Refer to the alias target of variables.
8176         (associate_varinfo_to_alias_1): Remove.
8177         (ipa_pta_execute): Do not associate aliases with anything.
8178         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
8179         (cgraph_function_node): Likewise.
8180         (cgraph_function_or_thunk_node): Likewise.
8181         (varpool_variable_node): Likewise.
8182
8183 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
8184
8185         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
8186         * config.gcc (arm*-*-linux*): Default to gnu tls.
8187         (arm*-*-*): Add --with-tls option.
8188         (all_defaults): Add 'tls'.
8189
8190 2011-06-22  Richard Henderson  <rth@redhat.com>
8191
8192         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
8193         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
8194         (dwarf2out_frame_debug_cfa_window_save): Rename from
8195         dwarf2out_window_save; make static.
8196         * tree.h (dwarf2out_window_save): Don't declare.
8197
8198         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
8199         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
8200         (emit_save_register_window): Rename from gen_save_register_window;
8201         emit the insn and add REG_CFA_* notes.
8202         (sparc_expand_prologue): Update to match.
8203         * config/sparc/sparc.md (save_register_window_1): Simplify from
8204         save_register_window<P:mode>.
8205
8206 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
8207
8208         PR target/49497
8209         * config/i386/i386.md (*lea_general_2): Always allow SImode.
8210         (*lea_general_2_zext): Likewise.
8211         (imul to lea peepholes): Use const359_operand and check
8212         TARGET_PARTIAL_REG_STALL.
8213
8214         * config/i386/predicates.md (const359_operand): New.
8215
8216 2011-06-22  Michael Matz  <matz@suse.de>
8217
8218         * cgraphunit.c (assemble_thunk): Use correct return type.
8219
8220 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
8221             Dmitry Melnik  <dm@ispras.ru>
8222
8223         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
8224         (neon_output_shift_immediate): Ditto.
8225         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
8226         prototype.
8227         (neon_output_shift_immediate): Ditto.
8228         * config/arm/neon.md (vashl<mode>3): Modified constraint.
8229         (vashr<mode>3_imm): New insn pattern.
8230         (vlshr<mode>3_imm): Ditto.
8231         (vashr<mode>3): Modified constraint.
8232         (vlshr<mode>3): Ditto.
8233         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
8234         predicate.
8235         (imm_for_neon_rshift_operand): Ditto.
8236         (imm_lshift_or_reg_neon): Ditto.
8237         (imm_rshift_or_reg_neon): Ditto.
8238
8239         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
8240
8241 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
8242
8243         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
8244         builtin calls even if likelyvalue is not CONSTANT.
8245         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
8246         Return get_value_for_expr of first operand
8247         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
8248         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
8249         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
8250         their non-checking counterparts.
8251         (call_may_clobber_ref_p_1): Likewise.
8252         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
8253         like their non-checking counterparts.
8254         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8255         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
8256         like their non-checking counterparts.
8257         (find_func_clobbers): Likewise.
8258         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
8259         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
8260
8261         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
8262         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
8263         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
8264         of base type reference as argument.
8265         (resolve_addr_in_expr): Likewise.  Fix keep computation.
8266         (convert_descriptor_to_signed): Renamed to...
8267         (convert_descriptor_to_mode): ... this.  For wider types convert to
8268         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
8269         (typed_binop): New function.
8270         (scompare_loc_descriptor, ucompare_loc_descriptor,
8271         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
8272         default to unsigned type instead of signed.
8273
8274         PR debug/47858
8275         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
8276         (gimple_build_debug_source_bind_stat): New prototype.
8277         (gimple_build_debug_source_bind): Define.
8278         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
8279         gimple_debug_source_bind_get_value,
8280         gimple_debug_source_bind_get_value_ptr,
8281         gimple_debug_source_bind_set_var,
8282         gimple_debug_source_bind_set_value): New inlines.
8283         * gimple.c (gimple_build_debug_source_bind_stat): New function.
8284         * gimple-pretty-print.c (dump_gimple_debug): Handle
8285         GIMPLE_DEBUG_SOURCE_BIND.
8286         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
8287         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
8288         * tree-parloops.c (eliminate_local_variables,
8289         separate_decls_in_region): Likewise.
8290         (separate_decls_in_region_debug): Renamed from
8291         separate_decls_in_region_debug_bind.  Handle
8292         gimple_debug_source_bind_p.
8293         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
8294         prototypes.
8295         (DECL_HAS_DEBUG_ARGS_P): Define.
8296         (struct tree_function_decl): Add has_debug_args_flag field.
8297         * tree.c (debug_args_for_decl): New variable.
8298         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
8299         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
8300         (rewrite_debug_stmt_uses): New function.
8301         (rewrite_stmt): Use it to rewrite debug stmt uses.
8302         * rtl.def (DEBUG_PARAMETER_REF): New.
8303         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
8304         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
8305         DEBUG_PARAMETER_REF.
8306         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
8307         * print-rtl.c (print_rtx): Likewise.
8308         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
8309         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
8310         debug stmts in the first bb.
8311         * tree-inline.c (remap_ssa_name): If remapping default def
8312         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
8313         a source bind debug stmt.
8314         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
8315         (maybe_move_debug_stmts_to_successors): Likewise.
8316         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
8317         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
8318         debug args vector from old_decl to new_decl.
8319         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
8320         or modified parameters, add debug bind stmts before call
8321         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
8322         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
8323         on DECL_DEBUG_EXPRs from debug args vector.
8324         (expand_debug_source_expr): New function.
8325         (expand_debug_locations): Use it for source bind insns.
8326         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
8327         * var-tracking.c (prepare_call_arguments): Add debug args
8328         to call_arguments if any.
8329         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
8330         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
8331         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
8332         (get_ref_die_offset, parameter_ref_descriptor): New functions.
8333         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
8334         (gen_subprogram_die): Handle parameters identified by
8335         DEBUG_PARAMETER_REF.
8336
8337 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
8338
8339         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
8340         * doc/install.texi (Configuration): Document --with-tls.
8341         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
8342         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
8343         (arm_tls_descseq_addr): New.
8344         (legitimize_tls_address): Add tlsdesc support.
8345         (arm_cannot_copy_insn_p): Check for tlscall.
8346         (arm_emit_tls_decoration): Likewise.
8347         * config/arm/arm.h (TARGET_GNU2_TLS): New.
8348         (OPTION_DEFAULT_SPECS): Add with-tls support.
8349         * config/arm/arm.md (R1_REGNUM): Define.
8350         (tlscall): New.
8351         * config/arm/arm.opt (tls_type): New enumeration type and values.
8352         (mtls-dialect): New switch.
8353         * config/arm/arm-opts.h (enum tls_type): New.
8354
8355 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
8356
8357         * attribs.c (register_attribute): Added assert to check that all
8358         attribute specs are registered with a name that is not empty and
8359         does not start with '_'.
8360         (decl_attributes): Avoid the lookup of the "naked" attribute spec
8361         if the function has no attributes.
8362         * tree.c (is_attribute_with_length_p): Removed.
8363         (is_attribute_p): Removed.
8364         (private_is_attribute_p): New.
8365         (private_lookup_attribute): New.
8366         (lookup_attribute): Removed.
8367         (lookup_ident_attribute): New.
8368         (remove_attribute): Require the first argument to be in the form
8369         'text', not '__text__'.  Updated asserts.
8370         (merge_attributes): Use lookup_ident_attributes instead of
8371         lookup_attribute.
8372         (merge_dllimport_decl_attributes): Use remove_attribute.
8373         (attribute_list_contained): Likewise.
8374         (attribute_list_equal): Immediately return 1 if the arguments are
8375         identical pointers.
8376         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
8377         'int'.  Require the first argument to be in the form 'text', not
8378         '__text__'.  Require the second argument to be an identifier.
8379         (lookup_attribute): Made inline.  Require the first argument to be
8380         in the form 'text', not '__text__'.
8381         (private_is_attribute_p, private_lookup_attribute): New.
8382         Updated comments.
8383
8384 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
8385
8386         * builtins.c: Add sync_ or SYNC__ to builtin names.
8387         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
8388         * omp-low.c: Add sync_ or SYNC__ to builtin names.
8389
8390 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
8391
8392         PR target/33049
8393         * config/avr/avr.md (extzv): New expander.
8394         (*extzv): New insn.
8395         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
8396         * config/avr/constraints.md (C04): New constraint.
8397         * doc/md.texi (Machine Constraints): Document it.
8398
8399 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
8400
8401         PR middle-end/49489
8402         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
8403         unsignedp argument instead of 1 for clrsb_optab.
8404         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
8405         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
8406         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
8407         * optabs.c (widen_leading): Call widen_operand and expand_unop
8408         with 0 as unsignedp argument instead of 1 for clrsb_optab.
8409         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
8410
8411 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
8412
8413         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
8414
8415 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
8416
8417         * gensupport.c (add_define_attr): New static function.
8418         (is_predicable): Allow multi-alternative lists for the "predicable"
8419         attribute.
8420         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
8421         (process_one_cond_exec): Call alter_attrs_for_insn.
8422         * doc/md.texi (Defining Attributes): Mention some standard names.
8423         (Conditional Execution): Update documentation for "predicable".
8424
8425         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
8426         __builtin_clrsbll): Document.
8427         * doc/rtl.texi (clrsb): New entry.
8428         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
8429         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
8430         (expand_unop): Handle clrsb_optab.
8431         (init_optabs): Initialize it.
8432         * optabs.h (enum optab_index): New entry OTI_clrsb.
8433         (clrsb_optab): Define.
8434         * genopinit.c (optabs): Add an entry for it.
8435         * builtins.c (expand_builtin): Handle clrsb builtin functions.
8436         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
8437         BUILT_IN_CLRSBLL): New.
8438         * rtl.def (CLRSB): New code.
8439         * dwarf2out.c (mem_loc_descriptor): Handle it.
8440         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
8441         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
8442         and popcount.
8443         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
8444         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
8445         (__ctzDI2): Move declaration.
8446         * config/bfin/bfin.md (clrsbsi2): New expander.
8447         (signbitssi2): Use the CLRSB rtx.
8448         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
8449         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
8450
8451 2011-06-21  Richard Guenther  <rguenther@suse.de>
8452
8453         * ipa-inline-transform.c (inline_transform): Fix previous change.
8454
8455 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
8456
8457         PR tree-optimization/49478
8458         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
8459         with constant operand.
8460
8461 2011-06-21  Richard Guenther  <rguenther@suse.de>
8462
8463         * ipa-inline-transform.c (inline_transform): Fix typo.
8464
8465 2011-06-21  Richard Guenther  <rguenther@suse.de>
8466
8467         PR tree-optimization/49483
8468         * tree-vect-stmts.c (vectorizable_assignment): Also handle
8469         VIEW_CONVERT_EXPR conversions.
8470
8471 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
8472
8473         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
8474         * config/avr/avr-tables.opt: New file (generated).
8475         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
8476         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
8477         avr-mcus.def.
8478         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
8479         (avr_option_override): Don't process -mmcu= argument here.  Set
8480         avr_current_device using avr_mcu_index.
8481         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
8482         * config/avr/avr.opt (mmcu=): Use Enum.
8483         * config/avr/t-avr (avr-devices.o): Update dependencies.
8484         ($(srcdir)/config/avr/avr-tables.opt): New.
8485         * target.def (help): Remove.
8486         * doc/tm.texi.in (TARGET_HELP): Remove.
8487         * doc/tm.texi: Regenerate.
8488         * opts.c: Don't include target.h.
8489         (common_handle_option): Don't call targetm.help.
8490         * system.h (TARGET_HELP): Poison.
8491         * Makefile.in (opts.o): Update dependencies.
8492
8493 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8494
8495         * config/usegld.h: New file.
8496         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
8497         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
8498         (LIB_SPEC): Likewise.  Search /lib.
8499         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
8500         (RDYNAMIC_SPEC): Handle GNU ld.
8501         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
8502         Define.
8503         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
8504         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
8505         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
8506         (STACK_CHECK_STATIC_BUILTIN): Define.
8507         * config/sol2.opt (compat-bsd): Remove.
8508         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
8509         * config/sol2-bi.h: New file.
8510         * config/sol2-gld.h: Remove.
8511         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
8512         (NO_DBX_BNSYM_ENSYM): Remove.
8513         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
8514         (STACK_CHECK_STATIC_BUILTIN): Remove.
8515         Test USE_GLD instead of TARGET_GNU_LD.
8516         * config/i386/sol2-10.h: Rename to ...
8517         * config/i386/sol2-bi.h .. this.
8518         (SUBTARGET_EXTRA_SPECS): Redefine.
8519         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
8520         (MULTILIB_DEFAULTS): Remove.
8521         (DEFAULT_ARCH32_P): Define.
8522         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
8523         (ARCH64_SUBDIR): Define.
8524         Test USE_GLD instead of TARGET_GNU_LD.
8525         (I386_EMULATION): Rename to ...
8526         (ARCH32_EMULATION): ... this.
8527         (X86_64_EMULATION): Rename to ...
8528         (ARCH64_EMULATION): ... this.
8529         (TARGET_LD_EMULATION): Remove.
8530         (LINK_ARCH_SPEC): Remove.
8531         * config/i386/sol2-gas.h: Remove.
8532         * config/i386/t-sol2-10: Rename to ...
8533         * config/i386/t-sol2-64: ... this.
8534         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
8535         (AS_SPARC64_FLAG): Define.
8536         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
8537         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
8538         depending on TARGET_CPU_DEFAULT.
8539         (CPP_CPU_SPEC): Redefine.
8540         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
8541         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
8542         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
8543         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
8544         ASM_ARCH_DEFAULT_SPEC): Redefine.
8545         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
8546         LINK_ARCH_DEFAULT_SPEC.
8547         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
8548         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
8549         (ARCH64_SUBDIR): Define.
8550         (LINK_ARCH64_SPEC): Redefine.
8551         (CC1_SPEC): Redefine.
8552         (OPTION_DEFAULT_SPECS): Redefine.
8553         (MULTILIB_DEFAULTS): Define.
8554         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
8555         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
8556         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
8557         (NO_DBX_BNSYM_ENSYM): Remove.
8558         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
8559         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
8560         (TARGET_ASM_NAMED_SECTION): Likewise.
8561         (STACK_CHECK_STATIC_BUILTIN): Remove.
8562         * config/sparc/sol2-bi.h: Remove.
8563         * config/sparc/sol2-gas-bi.h: Remove.
8564         * config/sparc/sol2-gas.h: Remove.
8565         * config/sparc/sol2-gld-bi.h: Remove.
8566         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
8567         common parts ...
8568         (*-*-solaris2*): ... here.
8569
8570 2011-06-21  Christian Bruel  <christian.bruel@st.com>
8571
8572         PR other/43564
8573         * ipa-inline.c (can_inline_edge_p): Check
8574         !DECL_DISREGARD_INLINE_LIMITS.
8575
8576 2011-06-21  Christian Bruel  <christian.bruel@st.com>
8577
8578         PR middle-end/49139
8579         * cgraphunit.c (process_function_and_variable_attributes): warn when
8580         always_inline functions that are not inline.
8581         * ipa-inline-transform.c (inline_transform): Always call
8582         optimize_inline.
8583         * tree-inline.c (tree_inlinable_function_p): Use error instead
8584         of sorry.
8585         (expand_call_inline): Likewise.
8586
8587 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
8588
8589         * Makefile.in (dg_target_exps): Set.
8590         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
8591         instead of 7, try to divide it more evenly.
8592
8593 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
8594
8595         PR target/49089
8596         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
8597         (avx256_split_unaligned_store): New definition.
8598         (ix86_option_override_internal): Enable avx256 unaligned load/store
8599         splitting only when avx256_split_unaligned_load/store is set.
8600
8601 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
8602
8603         * regrename.c (scan_rtx_reg): Handle the case where we write to an
8604         open chain in a smaller mode without failing the entire block.
8605
8606 2011-06-21  Alan Modra  <amodra@gmail.com>
8607
8608         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
8609         CONST high part large-toc address.
8610         (rs6000_tls_referenced_p): Make static.
8611         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
8612
8613 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8614
8615         PR target/49385
8616         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
8617         one of the operands is a register.
8618
8619 2011-06-20  Kai Tietz  <ktietz@redhat.com>
8620
8621         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
8622         operations in combination with binary and.
8623
8624 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
8625
8626         * regrename.c (do_replace): Don't update notes.
8627
8628 2011-06-20  Alan Modra  <amodra@gmail.com>
8629
8630         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
8631         of toc-relative address in CONST.
8632         (rs6000_delegitimize_address): Recognize changed address.
8633         (rs6000_legitimize_reload_address): Likewise.
8634         (rs6000_emit_move): Don't force these constants to memory.
8635         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
8636         toc-relative address in CONST.
8637         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
8638         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
8639
8640 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
8641
8642         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
8643         (count_trailing_zeros): Likewise.
8644
8645 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
8646
8647         PR other/49325
8648         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
8649         .init_array can be used with .ctors on targets.
8650         * configure: Regenerated.
8651
8652 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
8653
8654         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
8655         if the element type is volatile.
8656
8657 2011-06-18  Jan Hubicka  <jh@suse.cz>
8658
8659         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
8660         extra name aliases.
8661         (lto_symtab_resolve_can_prevail_p): Likewise.
8662         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
8663         * cgraphbuild.c (record_reference): Remove extra body alias code.
8664         (mark_load): Likewise.
8665         (mark_store): Likewise.
8666         * cgraph.h (varpool_node): Remove extra_name filed;
8667         add alias_of and extraname_alias.
8668         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
8669         (varpool_alias_aliased_node): New inline function.
8670         (varpool_variable_node): New function.
8671         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
8672         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
8673         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
8674         (input_varpool_node): Likewise.
8675         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
8676         (varpool_externally_visible_p): Remove extra body alias code.
8677         (function_and_variable_visibility): Likewise.
8678         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
8679         (ipa_pta_execute): Use it.
8680         * varpool.c (varpool_remove_node): Remove extra name alias code.
8681         (varpool_mark_needed_node): Likewise.
8682         (varpool_analyze_pending_decls): Analyze aliases.
8683         (assemble_aliases): New functoin.
8684         (varpool_assemble_decl): Use it.
8685         (varpool_create_variable_alias): New function.
8686         (varpool_extra_name_alias): Rewrite.
8687         (varpool_for_node_and_aliases): New function.
8688
8689 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
8690
8691         PR target/49411
8692         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
8693         last_arg_constant and last argument doesn't match its predicate,
8694         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
8695         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
8696         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
8697         spelling of error message.
8698         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
8699         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
8700         const_0_to_255_operand instead of const_int_operand.
8701
8702         Revert:
8703         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
8704
8705         * config/i386/sse.md (blendbits): Remove mode attribute.
8706         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
8707         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
8708         Check integer value of operand 3 in insn constraint.
8709
8710 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
8711
8712         PR rtl-optimization/48542
8713         * reload.c (find_equiv_reg): Stop looking when finding a
8714         setjmp-type call.
8715         * reload1.c (reload_as_needed): Invalidate all reload
8716         registers when crossing a setjmp-type call.
8717
8718 2011-06-16  Jeff Law  <law@redhat.com>
8719
8720         * tree-ssa-threadupdate.c (struct redirection_data): New field
8721         intermediate_edge.
8722         (THREAD_TARGET2): Define.
8723         (redirection_data_eq): Also check that the intermediate edge is equal.
8724         (lookup_redirection_data): Drop useless argument.  Extract the
8725         outgoing_edge and intermediate edge from E.  Callers updated.
8726         (copy_phi_args, update_destination_phis): New functions.
8727         (fix_duplicate_block_edges): Likewise.
8728         (create_edge_and_update_destination_phis): Duplicate all the edges
8729         hung off e->aux.  Use copy_phi_args.
8730         (create_duplicates): Use fix_duplicate_block_edges.
8731         (fixup_template_block): Likewise.
8732         (redirect_edges): If necessary, redirect the joiner block's incoming
8733         edge to the duplicate of the joiner block.
8734         (thread_block): Don't muck up loops when threading through a joiner
8735         block.
8736         (thread_through_loop_header): Handle threading through a joiner block.
8737         (mark_threaded_blocks, register_jump_thread): Likewise.
8738         * tree-flow.h (register_jump_thread): Add new argument.  Callers
8739         updated.
8740         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
8741         (thread_across_edge): Handle threading through a joiner block.
8742
8743 2011-06-16  Martin Jambor  <mjambor@suse.cz>
8744
8745         PR tree-optimization/49343
8746         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
8747         calculate offset, provide 2nd operand for the new COMPONENT_REF.
8748
8749 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
8750
8751         * config/darwin-protos.h (machopic_select_rtx_section): Move to
8752         inside RTX_CODE ifdef.
8753
8754 2011-06-16  Tom de Vries  <tom@codesourcery.com>
8755
8756         PR target/45098
8757         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
8758         Disallow NULL pointer for pointer arithmetic.
8759
8760 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8761
8762         PR target/49398
8763         Revert.
8764         2011-06-10  Wei Guozhi  <carrot@google.com>
8765
8766         PR target/45335
8767         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
8768         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
8769         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
8770         related peephole2.
8771         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
8772         related peephole2.
8773         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
8774         (arm_legitimate_ldrd_p): New prototype.
8775         (arm_output_ldrd): New prototype.
8776         * config/arm/arm.c (arm_check_ldrd_operands): New function.
8777         (arm_legitimate_ldrd_p): New function.
8778         (arm_output_ldrd): New function.
8779
8780 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
8781
8782         PR middle-end/46500
8783         * doc/tm.texi.in: Update Copyright date.
8784         * doc/tm.texi: Regenerate.
8785         * targhooks.c (default_setup_incoming_varargs): Replace
8786         CUMULATIVE_ARGS* argument type with cumulative_args_t.
8787         (default_pretend_outgoing_varargs_named): Likewise.
8788         (hook_pass_by_reference_must_pass_in_stack): Likewise.
8789         (hook_callee_copies_named): Likewise.
8790         (default_function_arg_advance): Likewise.
8791         (default_function_arg): Likewise.
8792         (default_function_incoming_arg): Likewise.
8793         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
8794         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
8795         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
8796         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
8797         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
8798         * targhooks.h (default_setup_incoming_varargs): Likewise.
8799         (default_pretend_outgoing_varargs_named): Likewise.
8800         (hook_pass_by_reference_must_pass_in_stack): Likewise.
8801         (hook_callee_copies_named): Likewise.
8802         (default_function_arg_advance): Likewise.
8803         (default_function_arg): Likewise.
8804         (default_function_incoming_arg): Likewise.
8805         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
8806         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
8807         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
8808         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
8809         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
8810         * target.def (pass_by_reference): Likewise.
8811         (setup_incoming_varargs, strict_argument_naming): Likewise.
8812         (pretend_outgoing_varargs_named, callee_copies): Likewise.
8813         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
8814         (function_incoming_arg): Likewise.
8815         * target.h: Don't include "tm.h" .
8816         (cumulative_args_t): New typedef.
8817         [GCC_TM_H] (get_cumulative_args): New static inline function.
8818         [GCC_TM_H] (pack_cumulative_args): Likewise.
8819         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
8820         argument type with cumulative_args_t.
8821         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
8822         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
8823         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
8824         (frv_arg_partial_bytes, frv_function_arg): Likewise.
8825         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
8826         (frv_function_arg_1): Likewise.
8827         * config/s390/s390.c (s390_pass_by_reference): Likewise.
8828         (s390_function_arg_advance, s390_function_arg): Likewise.
8829         * config/m32c/m32c.c (m32c_function_arg): Likewise.
8830         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
8831         (m32c_strict_argument_naming): Likewise.
8832         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
8833         (spu_function_arg_advance): Likewise.
8834         (spu_setup_incoming_varargs): Likewise.  Make static.
8835         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
8836         Remove prototype.
8837         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
8838         CUMULATIVE_ARGS* argument type with cumulative_args_t.
8839         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
8840         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
8841         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
8842         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
8843         (mep_pass_by_reference, mep_function_arg): Likewise.
8844         (mep_function_arg_advance): Likewise.
8845         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
8846         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
8847         (m32r_function_arg, m32r_function_arg_advance): Likewise.
8848         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
8849         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
8850         (ix86_function_arg, ix86_pass_by_reference): Likewise.
8851         (ix86_setup_incoming_varargs): Likewise.
8852         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
8853         (sh_strict_argument_naming): Likewise.
8854         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
8855         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
8856         (sh_function_arg_advance, sh_function_arg): Likewise.
8857         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
8858         (pdp11_function_arg_advance): Likewise.
8859         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
8860         Likewise.
8861         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
8862         * config/avr/avr.c (avr_function_arg): Likewise.
8863         (avr_function_arg_advance): Likewise.
8864         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
8865         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
8866         (xtensa_function_arg_1): Likewise.
8867         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
8868         Likewise.
8869         (xstormy16_function_arg): Likewise.
8870         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
8871         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
8872         (fr30_function_arg_advance): Likewise.
8873         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
8874         (lm32_function_arg, lm32_function_arg_advance): Likewise.
8875         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
8876         (moxie_function_arg, moxie_function_arg_advance): Likewise.
8877         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
8878         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
8879         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
8880         (cris_function_arg, cris_function_incoming_arg): Likewise.
8881         (cris_function_arg_advance, cris_function_arg_1): Likewise.
8882         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
8883         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
8884         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
8885         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
8886         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
8887         (mn10300_arg_partial_bytes): Likewise.
8888         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
8889         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
8890         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
8891         (ia64_function_arg_1): Likewise.
8892         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
8893         (m68k_function_arg): Likewise.
8894         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
8895         (rs6000_function_arg, setup_incoming_varargs): Likewise.
8896         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
8897         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
8898         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
8899         (picochip_arg_advance): Likewise.
8900         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
8901         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
8902         (mcore_function_arg_advance): Likewise.
8903         * config/score/score.c (score_pass_by_reference): Likewise.
8904         (score_function_arg_advance): Likewise.
8905         (score_arg_partial_bytes): Likewise.  Make static.
8906         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
8907         * config/arm/arm.c (arm_arg_partial_bytes): Replace
8908         CUMULATIVE_ARGS* argument type with cumulative_args_t.
8909         (arm_function_arg, arm_function_arg_advance): Likewise.
8910         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
8911         * config/pa/pa.c (pa_pass_by_reference): Likewise.
8912         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
8913         (pa_function_arg): Likewise.
8914         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
8915         (mips_function_arg, mips_function_arg_advance): Likewise.
8916         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
8917         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
8918         * config/vax/vax.c (vax_function_arg): Likewise.
8919         (vax_function_arg_advance): Likewise.
8920         * config/h8300/h8300.c (h8300_function_arg): Likewise.
8921         (h8300_function_arg_advance): Likewise.
8922         * config/v850/v850.c (v850_pass_by_reference): Likewise.
8923         (v850_strict_argument_naming, v850_function_arg): Likewise.
8924         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
8925         (v850_setup_incoming_varargs): Likewise.
8926         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
8927         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
8928         (mmix_function_arg, mmix_pass_by_reference): Likewise.
8929         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
8930         with const void *.
8931         * config/bfin/bfin.c (setup_incoming_varargs): Replace
8932         CUMULATIVE_ARGS* argument type with cumulative_args_t.
8933         (bfin_function_arg_advance, bfin_function_arg): Likewise.
8934         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
8935         * calls.c (emit_call_1): Change type of args_so_far to
8936         cumulative_args_t.  Changed all callers.
8937         (initialize_argument_information): Likewise.
8938         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
8939         * dse.c (get_call_args): Likewise.
8940         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
8941         * function.c (pass_by_reference, reference_callee_copied): Likewise.
8942         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
8943         New member args_so_far_v.  Changed all users.
8944         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
8945         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
8946         * config/mips/mips.c (mips_output_args_xfer): Likewise.
8947         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
8948         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
8949         * config/microblaze/microblaze.c (microblaze_expand_prologue):
8950         Likewise.
8951         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
8952         m32r_pass_by_reference.
8953
8954 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
8955
8956         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
8957         argument to be a VEC of statements.
8958         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
8959         assert that pattern statements have to have their vector type set.
8960         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
8961         Change the first argument to be a VEC of statements.  Update
8962         documentation.
8963         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
8964         (vect_handle_widen_mult_by_const): New function.
8965         (vect_recog_widen_mult_pattern):  Change the first argument to be a
8966         VEC of statements.  Update documentation.  Check that the constant is
8967         INTEGER_CST.  Support multiplication by a constant that fits an
8968         intermediate type - call vect_handle_widen_mult_by_const.
8969         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
8970         call.  Handle additional pattern statements if necessary.
8971
8972 2011-06-16  Nick Clifton  <nickc@redhat.com>
8973
8974         PR target/49427
8975         * config.gcc: Set cpu_type to v850 for any V850 architecture.
8976         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
8977         md_file, extra_modes, out_file and extra_options are these are all
8978         deduced from cpu_type.
8979
8980 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
8981
8982         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
8983         truncation mask to 63.
8984
8985 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
8986
8987         PR target/49313
8988         PR target/29524
8989         * longlong.h: Add AVR support:
8990         (count_leading_zeros): New macro.
8991         (count_trailing_zeros): New macro.
8992         (COUNT_LEADING_ZEROS_0): New macro.
8993         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
8994         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
8995         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
8996         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
8997         (LIB2FUNCS_EXCLUDE): Add _clz.
8998         * config/avr/libgcc.S (XCALL): Move up in file.
8999         (XJMP): New C Macro.
9000         (DEFUN): New asm macro.
9001         (ENDF): New asm macro.
9002         (__ffssi2): New function.
9003         (__ffshi2): New function.
9004         (__loop_ffsqi2): New function.
9005         (__ctzsi2): New function.
9006         (__ctzhi2): New function.
9007         (__clzdi2): New function.
9008         (__clzsi2): New function.
9009         (__clzhi2): New function.
9010         (__paritydi2): New function.
9011         (__paritysi2): New function.
9012         (__parityhi2): New function.
9013         (__parityqi2): New function.
9014         (__popcounthi2): New function.
9015         (__popcountsi2): New function.
9016         (__popcountdi2): New function.
9017         (__popcountqi2): New function.
9018         (__bswapsi2): New function.
9019         (__bswapdi2): New function.
9020         (__ashldi3): New function.
9021         (__ashrdi3): New function.
9022         (__lshrdi3): New function.
9023         Fix suspicous lines.
9024
9025 2011-06-16  Richard Guenther  <rguenther@suse.de>
9026
9027         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
9028         the same as x != 0.
9029         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
9030         to (bool) X & 1.
9031         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
9032         equality compares against zero for the lower bit.
9033
9034 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
9035
9036         PR tree-optimization/49419
9037         * tree-vrp.c (execute_vrp): Call init_range_assertions
9038         before estimate_numbers_of_iterations, call
9039         free_number_of_iterations_estimates before calling
9040         remove_range_assertions.
9041
9042 2011-06-16  Revital Eres  <revital.eres@linaro.org>
9043
9044         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
9045         (struct partial_schedule): Add rows_length field.
9046         (verify_partial_schedule): Check rows_length.
9047         (ps_insert_empty_row): Handle rows_length.
9048         (create_partial_schedule): Likewise.
9049         (free_partial_schedule): Likewise.
9050         (reset_partial_schedule): Likewise.
9051         (create_ps_insn): Remove rest_count argument.
9052         (remove_node_from_ps): Update rows_length.
9053         (add_node_to_ps): Update rows_length and call create_ps_insn
9054         without passing row_rest_count.
9055         (rotate_partial_schedule): Update rows_length.
9056
9057 2011-06-16  Revital Eres  <revital.eres@linaro.org>
9058
9059         * ddg.c (add_intra_loop_mem_dep): New function.
9060         (build_intra_loop_deps): Call it.
9061
9062 2011-06-13  Jeff Law  <law@redhat.com>
9063
9064         * df-problems.c (df_lr_local_compute): Manually CSE
9065         PIC_OFFSET_TABLE_REGNUM.
9066         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
9067         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
9068
9069 2011-06-13  Jan Hubicka  <jh@suse.cz>
9070
9071         * cgraphunit.c (handle_alias_pairs): New function.
9072         (cgraph_finalize_compilation_unit): Use it.
9073         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
9074         as externally visible.
9075
9076 2011-06-15  Richard Guenther  <rguenther@suse.de>
9077
9078         * expr.c (expand_expr_real_2): Reduce all integral types to
9079         bitfield precision.
9080         (expand_expr_real_1): Likewise.
9081
9082 2011-06-15  Martin Jambor  <mjambor@suse.cz>
9083
9084         PR tree-optimization/48613
9085         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
9086         ipa_node_params_vector is NULL.
9087
9088 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
9089
9090         PR debug/49382
9091         * dwarf2out.c (dw_loc_list_node): Add force field.
9092         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
9093         location in the list, even if it is modified before first real insn.
9094         (output_loc_list): Emit empty ranges with force flag set.
9095         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
9096
9097 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
9098
9099         PR target/49349
9100         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
9101         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
9102         above a fence.  Update comments.
9103         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
9104         placed just above it.  Do not allow NULL place_to_insert.
9105
9106 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
9107
9108         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
9109         (slpeel_tree_peel_loop_to_edge): Don't call
9110         remove_dead_stmts_from_loop.
9111         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
9112         remove irrelevant pattern statements.  For irrelevant statements
9113         check if it is the last statement of a detected pattern, use
9114         corresponding pattern statement instead.
9115         (destroy_loop_vec_info): No need to remove pattern statements,
9116         only free stmt_vec_info.
9117         (vect_transform_loop): For irrelevant statements check if it is
9118         the last statement of a detected pattern, use corresponding
9119         pattern statement instead.
9120         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
9121         pattern statements.  Set basic block for the new statement.
9122         (vect_pattern_recog): Update documentation.
9123         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
9124         operands of pattern statements.
9125         (vectorizable_call): Fix printing.  In case of a pattern statement
9126         use the lhs of the original statement when creating a dummy
9127         statement to replace the original call.
9128         (vect_analyze_stmt): For irrelevant statements check if it is
9129         the last statement of a detected pattern, use corresponding
9130         pattern statement instead.
9131         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
9132         statements use gsi of the original statement.
9133
9134 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
9135
9136         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
9137         common/common-target-def.h.
9138         * target.def (default_target_flags, handle_option,
9139         supports_split_stack, optimization_table, init_struct,
9140         except_unwind_info, unwind_tables_default, have_named_sections):
9141         Move to common/common-target.def.
9142         * target.h (enum opt_levels, struct default_options): Move to
9143         common/common-target.h.
9144         * targhooks.c (default_except_unwind_info,
9145         dwarf2_except_unwind_info, sjlj_except_unwind_info,
9146         default_target_handle_option, empty_optimization_table): Move to
9147         common/common-targhooks.c.
9148         * targhooks.h (default_except_unwind_info,
9149         dwarf2_except_unwind_info, sjlj_except_unwind_info,
9150         default_target_handle_option, empty_optimization_table): Move to
9151         common/common-targhooks.h.
9152         * common/common-target-def.h: Include common/common-targhooks.h.
9153         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
9154         defined.
9155         * common/common-target.def (handle_option, option_init_struct,
9156         option_optimization_table, default_target_flags,
9157         except_unwind_info, supports_split_stack, unwind_tables_default,
9158         have_named_sections): Move from target.def.
9159         (HOOK_PREFIX): Undefine at end of file.
9160         * common/common-target.h: Include input.h.
9161         (enum opt_levels, struct default_options): Move from target.h.
9162         * common/common-targhooks.c, common/common-targhooks.h: New.
9163         * config.gcc (target_has_targetm_common): Default to yes.
9164         (moxie*): Set target_has_targetm_common=no.
9165         (hppa*-*-*): Don't set target_has_targetm_common=yes.
9166         * doc/tm.texi: Regenerate.
9167         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
9168         (C_TARGET_DEF_H): Add common/common-targhooks.h.
9169         (GCC_OBJS): Remove vec.o.
9170         (OBJS): Remove hooks.o and vec.o.
9171         (OBJS-libcommon-target): Add vec.o, hooks.o and
9172         common/common-targhooks.o.
9173         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
9174         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
9175         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
9176         cfglayout.o, $(out_object_file), $(common_out_object_file)):
9177         Update dependencies.
9178         (common/common-targhooks.o): New.
9179         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
9180         * common/config/pa/pa-common.c: Include more headers.  Take
9181         copyright dates from pa.c.
9182         (pa_option_optimization_table, pa_handle_option,
9183         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
9184         TARGET_HANDLE_OPTION): Move from pa.c.
9185         * common/config/alpha/alpha-common.c,
9186         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
9187         common/config/bfin/bfin-common.c,
9188         common/config/cris/cris-common.c,
9189         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
9190         common/config/h8300/h8300-common.c,
9191         common/config/i386/i386-common.c,
9192         common/config/ia64/ia64-common.c,
9193         common/config/iq2000/iq2000-common.c,
9194         common/config/lm32/lm32-common.c,
9195         common/config/m32c/m32c-common.c,
9196         common/config/m32r/m32r-common.c,
9197         common/config/m68k/m68k-common.c,
9198         common/config/mcore/mcore-common.c,
9199         common/config/mep/mep-common.c,
9200         common/config/microblaze/microblaze-common.c,
9201         common/config/mips/mips-common.c,
9202         common/config/mmix/mmix-common.c,
9203         common/config/mn10300/mn10300-common.c,
9204         common/config/pdp11/pdp11-common.c,
9205         common/config/picochip/picochip-common.c,
9206         common/config/rs6000/rs6000-common.c,
9207         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
9208         common/config/score/score-common.c, common/config/sh/sh-common.c,
9209         common/config/sparc/sparc-common.c,
9210         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
9211         common/config/vax/vax-common.c,
9212         common/config/xstormy16/xstormy16-common.c,
9213         common/config/xtensa/xtensa-common.c: New.
9214         * config/alpha/alpha.c: Include common/common-target.h.
9215         (alpha_option_optimization_table, alpha_handle_option,
9216         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9217         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
9218         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
9219         * config/arm/arm.c (arm_option_optimization_table,
9220         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
9221         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
9222         arm-common.c.
9223         * config/avr/avr.c (avr_option_optimization_table,
9224         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
9225         to avr-common.c.
9226         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
9227         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
9228         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
9229         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
9230         * config/cris/cris.c (cris_option_optimization_table,
9231         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9232         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
9233         cris-common.c.
9234         * config/fr30/fr30.c (fr30_option_optimization_table,
9235         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
9236         to fr30-common.c.
9237         * config/frv/frv.c (frv_option_optimization_table,
9238         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
9239         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
9240         * config/h8300/h8300.c (h8300_option_optimization_table,
9241         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
9242         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
9243         * config/i386/i386-protos.h (ix86_handle_option): Declare.
9244         * config/i386/i386.c: Include common/common-target.h.
9245         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
9246         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
9247         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
9248         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
9249         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
9250         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
9251         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
9252         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
9253         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
9254         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
9255         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
9256         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
9257         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
9258         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
9259         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
9260         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
9261         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
9262         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
9263         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
9264         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
9265         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
9266         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
9267         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
9268         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
9269         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
9270         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
9271         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
9272         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
9273         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
9274         ix86_option_optimization_table, ix86_option_init_struct,
9275         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
9276         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
9277         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
9278         i386-common.c.
9279         * config/i386/t-i386 (i386.o): Update dependencies.
9280         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
9281         * config/ia64/ia64.c (ia64_option_optimization_table,
9282         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
9283         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9284         ia64_handle_option): Move to ia64-common.c.
9285         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
9286         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
9287         * config/lm32/lm32.c (lm32_option_optimization_table,
9288         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
9289         to lm32-common.c.
9290         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
9291         m32c-common.c.
9292         * config/m32r/m32r.c (m32r_option_optimization_table,
9293         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9294         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
9295         m32r_handle_option): Move to m32r-common.c.
9296         (m32r_memory_move_cost): Remove comment referring to
9297         TARGET_HANDLE_OPTION.
9298         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
9299         Move to m68k-common.c.
9300         * config/mcore/mcore.c (mcore_option_optimization_table,
9301         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
9302         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
9303         * config/mep/mep.c (mep_option_optimization_table,
9304         mep_handle_option, TARGET_HANDLE_OPTION,
9305         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
9306         Move to mep-common.c.
9307         * config/microblaze/microblaze.c
9308         (microblaze_option_optimization_table,
9309         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
9310         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
9311         * config/mips/mips.c (mips_handle_option,
9312         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
9313         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
9314         mips-common.c.
9315         * config/mmix/mmix.c (mmix_option_optimization_table,
9316         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
9317         Move to mmix-common.c.
9318         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
9319         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
9320         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9321         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
9322         * config/pa/pa.c: Include common/common-target.h.
9323         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
9324         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9325         pa_handle_option): Move to pa-common.c.
9326         (pa_option_override): Use targetm_common.except_unwind_info.
9327         (pa_asm_output_mi_thunk, pa_function_section): Use
9328         targetm_common.have_named_sections.
9329         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
9330         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9331         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
9332         pdp11_handle_option, pdp11_option_init_struct): Move to
9333         pdp11-common.c.
9334         * config/picochip/picochip.c (picochip_option_optimization_table,
9335         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
9336         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
9337         * config/rs6000/rs6000.c: Include common/common-target.h.
9338         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
9339         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
9340         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
9341         rs6000_handle_option): Move to rs6000-common.c.
9342         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
9343         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
9344         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
9345         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
9346         * config/s390/s390.c (processor_flags_table,
9347         s390_option_optimization_table, s390_option_init_struct,
9348         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
9349         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
9350         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
9351         * config/s390/s390.h (processor_flags_table): Declare.
9352         * config/score/score.c (score_option_optimization_table,
9353         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9354         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
9355         score_handle_option): Move to score-common.c.
9356         * config/sh/sh.c (sh_option_optimization_table,
9357         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
9358         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9359         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
9360         * config/sparc/sparc.c: Include common/common-target.h.
9361         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
9362         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
9363         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
9364         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
9365         spu_option_init_struct): Move to spu-common.c.
9366         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
9367         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
9368         * config/v850/v850.c (small_memory_physical_max,
9369         v850_handle_memory_optionn v850_handle_option,
9370         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
9371         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
9372         v850-common.c.
9373         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
9374         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
9375         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
9376         Move to xtensa-common.c.
9377         * cfglayout.c: Include common/common-target.h.
9378         (fixup_reorder_chain): Use targetm_common.have_named_sections.
9379         * cfgrtl.c: Include common/common-target.h.
9380         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
9381         targetm_common.have_named_sections.
9382         * dbxout.c: Include common/common-target.h.
9383         (dbxout_function_end): Use targetm_common.have_named_sections.
9384         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
9385         targetm_common.except_unwind_info.
9386         * dwarf2out.c: Include common/common-target.h.
9387         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
9388         dwarf2out_begin_prologue, dwarf2out_frame_init,
9389         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
9390         targetm_common.except_unwind_info.
9391         * except.c: Include common/common-target.h.
9392         (init_eh, finish_eh_generation,
9393         output_one_function_exception_table): Use
9394         targetm_common.except_unwind_info.
9395         (switch_to_exception_section): Use targetm_common.have_named_sections.
9396         * explow.c: Include common/common-target.h.
9397         * expr.c: Include common/common-target.h.
9398         (build_personality_function): Use targetm_common.except_unwind_info.
9399         * function.c: Include common/common-target.h.
9400         (expand_function_end): Use targetm_common.except_unwind_info.
9401         * haifa-sched.c: Include common/common-target.h.
9402         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
9403         * lto-opts.c: Include common/common-target.h instead of target.h.
9404         (lto_reissue_options): Use targetm_common.handle_option.
9405         * opts.c: Include common/common-target.h.
9406         (target_handle_option): Use targetm_common.handle_option.
9407         (init_options_struct): Update comment referring to
9408         targetm.target_option.optimization.  Use
9409         targetm_common.default_target_flags,
9410         targetm_common.unwind_tables_default and
9411         targetm_common.option_init_struct.
9412         (default_options_optimization): Use
9413         targetm_common.option_optimization_table.
9414         (finish_options): Use targetm_common.except_unwind_info,
9415         targetm_common.unwind_tables_default,
9416         targetm_common.have_named_sections and
9417         targetm_common.supports_split_stack.
9418         * toplev.c: Include common/common-target.h.
9419         (process_options): Use targetm_common.have_named_sections.
9420         * tree-tailcall.c: Include common/common-target.h.
9421         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
9422         * tree.c: Include common/common-target.h.
9423         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
9424         * varasm.c: Include common/common-target.h.
9425         (resolve_unique_section, hot_function_section,
9426         default_function_section): Use targetm_common.have_named_sections.
9427
9428 2011-06-14  Easwaran Raman  <eraman@google.com>
9429
9430         PR rtl-optimization/44194
9431         * dse.c: Include tree-flow.h
9432         (insn_info): Add new field non_frame_wild_read.
9433         (group_info): Add new fields escaped_n and escaped_p.
9434         (kill_on_calls): New variable.
9435         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
9436         (dse_step0): Initialize kill_on_calls.
9437         (can_escape): New function.
9438         (set_usage_bits): Add additional parameter; record information
9439         about escaped locations.
9440         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
9441         (dse_step2_nospill): Set kill_on_calls based on
9442         group->escaped_n and group->escaped_n.
9443         (add_wild_read): Refactor into...
9444         (reset_active_stores): ... New function, and
9445         (free_read_records): ... New function.
9446         (add_non_frame_wild_read): New function.
9447         (scan_insn): Call add_non_frame_wild_read on non-const calls.
9448         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
9449         (dse_step5_nospill): Call scan_reads_nospill for instructions
9450         marked as non_frame_wild_read.
9451         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
9452
9453 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
9454
9455         * common/common-target-def.h, common/common-target.def,
9456         common/common-target.h, common/config/default-common.c,
9457         common/config/pa/pa-common.c: New files.
9458         * Makefile.in (common_out_file, common_out_object_file,
9459         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
9460         (OBJS-libcommon-target): Include $(common_out_object_file).
9461         (prefix.o): Update dependencies.
9462         ($(common_out_object_file), common/common-target-hooks-def.h,
9463         s-common-target-hooks-def-h): New.
9464         (s-tm-texi): Also check timestamp on common-target.def.
9465         (build/genhooks.o): Update dependencies.
9466         * config.gcc (common_out_file, target_has_targetm_common): Define.
9467         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
9468         TARGET_ALWAYS_STRIP_DOTDOT.
9469         * configure.ac (common_out_object_file): Define.
9470         (common_out_file, common_out_object_file): Substitute.
9471         (common): Create directory.
9472         * configure: Regenerate.
9473         * doc/tm.texi.in (targetm_common): Document.
9474         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
9475         * doc/tm.texi: Regenerate.
9476         * genhooks.c (hook_array): Also include common/common-target.def.
9477         * prefix.c (tm.h): Don't include.
9478         (common/common-target.h): Include.
9479         (ALWAYS_STRIP_DOTDOT): Don't define.
9480         (update_path): Use targetm_common.always_strip_dotdot instead of
9481         ALWAYS_STRIP_DOTDOT.
9482         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
9483
9484 2011-06-14  David Li  <davidxl@google.com>
9485
9486         * passes.c (execute_function_todo): Remove TODO_dump_func.
9487         (execute_one_pass): Remove TODO_dump_func.
9488         (execute_function_dump): New function.
9489         * tree-vrp.c: Remove TODO_dump_func.
9490         * regrename.c: Remove TODO_dump_func.
9491         * fwprop.c: Remove TODO_dump_func.
9492         * tree-into-ssa.c: Remove TODO_dump_func.
9493         * tree-complex.c: Remove TODO_dump_func.
9494         * tracer.c: Remove TODO_dump_func.
9495         * tree-loop-distribution.c: Remove TODO_dump_func.
9496         * postreload-gcse.c: Remove TODO_dump_func.
9497         * postreload.c: Remove TODO_dump_func.
9498         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
9499         * tree-tailcall.c: Remove TODO_dump_func.
9500         * ipa-cp.c: Remove TODO_dump_func.
9501         * final.c: Remove TODO_dump_func.
9502         * tree-emutls.c: Remove TODO_dump_func.
9503         * omp-low.c: Remove TODO_dump_func.
9504         * tree-ssa-dse.c: Remove TODO_dump_func.
9505         * tree-ssa-uncprop.c: Remove TODO_dump_func.
9506         * auto-inc-dec.c: Remove TODO_dump_func.
9507         * reorg.c: Remove TODO_dump_func.
9508         * tree-ssa-copyrename.c: Remove TODO_dump_func.
9509         * tree-ssa-ccp.c: Remove TODO_dump_func.
9510         * compare-elim.c: Remove TODO_dump_func.
9511         * mode-switching.c: Remove TODO_dump_func.
9512         * modulo-sched.c: Remove TODO_dump_func.
9513         * tree-call-cdce.c: Remove TODO_dump_func.
9514         * cse.c: Remove TODO_dump_func.
9515         * web.c: Remove TODO_dump_func.
9516         * tree-stdarg.c: Remove TODO_dump_func.
9517         * lto-streamer-out.c: Remove TODO_dump_func.
9518         * tree-ssa-math-opts.c: Remove TODO_dump_func.
9519         * tree-ssa-dom.c: Remove TODO_dump_func.
9520         * tree-nrv.c: Remove TODO_dump_func.
9521         * loop-init.c: Remove TODO_dump_func.
9522         * gimple-low.c: Remove TODO_dump_func.
9523         * ipa-inline.c: Remove TODO_dump_func.
9524         * tree-ssa-sink.c: Remove TODO_dump_func.
9525         * jump.c: Remove TODO_dump_func.
9526         * ifcvt.c: Remove TODO_dump_func.
9527         * tree-ssa-loop.c: Remove TODO_dump_func.
9528         * recog.c: Remove TODO_dump_func.
9529         * dse.c: Remove TODO_dump_func.
9530         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
9531         * matrix-reorg.c: Remove TODO_dump_func.
9532         * tree-eh.c: Remove TODO_dump_func.
9533         * regmove.c: Remove TODO_dump_func.
9534         * function.c: Remove TODO_dump_func.
9535         * tree-vectorizer.c: Remove TODO_dump_func.
9536         * ipa-split.c: Remove TODO_dump_func.
9537         * gcse.c: Remove TODO_dump_func.
9538         * tree-if-conv.c: Remove TODO_dump_func.
9539         * init-regs.c: Remove TODO_dump_func.
9540         * tree-ssa-phiopt.c: Remove TODO_dump_func.
9541         * implicit-zee.c: Remove TODO_dump_func.
9542         * lower-subreg.c: Remove TODO_dump_func.
9543         * bt-load.c: Remove TODO_dump_func.
9544         * tree-dfa.c: Remove TODO_dump_func.
9545         * except.c: Remove TODO_dump_func.
9546         * emit-rtl.c: Remove TODO_dump_func.
9547         * store-motion.c: Remove TODO_dump_func.
9548         * cfgexpand.c: Remove TODO_dump_func.
9549         * tree-cfgcleanup.c: Remove TODO_dump_func.
9550         * cfgcleanup.c: Remove TODO_dump_func.
9551         * tree-ssa-pre.c: Remove TODO_dump_func.
9552         * tree-sra.c: Remove TODO_dump_func.
9553         * tree-mudflap.c: Remove TODO_dump_func.
9554         * tree-ssa-copy.c: Remove TODO_dump_func.
9555         * cfglayout.c: Remove TODO_dump_func.
9556         * tree-ssa-forwprop.c: Remove TODO_dump_func.
9557         * tree-ssa-dce.c: Remove TODO_dump_func.
9558         * ira.c: Remove TODO_dump_func.
9559         * tree-ssa.c: Remove TODO_dump_func.
9560         * integrate.c: Remove TODO_dump_func.
9561         * tree-optimize.c: Remove TODO_dump_func.
9562         * tree-ssa-phiprop.c: Remove TODO_dump_func.
9563         * tree-object-size.c: Remove TODO_dump_func.
9564         * combine.c: Remove TODO_dump_func.
9565         * bb-reorder.c: Remove TODO_dump_func.
9566         * cprop.c: Remove TODO_dump_func.
9567         * var-tracking.c: Remove TODO_dump_func.
9568         * tree-profile.c: Remove TODO_dump_func.
9569         * tree-vect-generic.c: Remove TODO_dump_func.
9570         * reg-stack.c: Remove TODO_dump_func.
9571         * sched-rgn.c: Remove TODO_dump_func.
9572         * tree-ssa-structalias.c: Remove TODO_dump_func.
9573         * tree-switch-conversion.c: Remove TODO_dump_func.
9574         * tree-cfg.c: Remove TODO_dump_func.
9575         * tree-ssa-reassoc.c: Remove TODO_dump_func.
9576         * combine-stack-adj.c: Remove TODO_dump_func.
9577         * dce.c: Remove TODO_dump_func.
9578         * tree-ssanames.c: Remove TODO_dump_func.
9579         * regcprop.c: Remove TODO_dump_func.
9580
9581 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
9582
9583         PR middle-end/47364
9584         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
9585         and properly handle result not in Pmode.
9586
9587 2011-06-14  Robert Millan  <rmh@gnu.org>
9588
9589         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
9590         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
9591         `config/linux.h'.
9592
9593         * config/i386/kfreebsd-gnu64.h: New file.
9594         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
9595         with `i386/kfreebsd-gnu64.h'.
9596
9597         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
9598         (GNU_USER_LINK_EMULATION64): New macros.
9599         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
9600         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
9601         of hardcoding `elf_i386' and `elf_x86_64'.
9602
9603 2011-06-14  Nick Clifton  <nickc@redhat.com>
9604
9605         PR target/49403
9606         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
9607
9608         PR target/49402
9609         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
9610
9611 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
9612
9613         PR fortran/49103
9614         * tree.h (DECL_NONSHAREABLE): Define.
9615         (struct tree_decl_common): Change decl_common_unused to
9616         decl_nonshareable_flag.
9617         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
9618         Ignore vars with DECL_NONSHAREABLE bit set.
9619         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
9620         on stores to automatic aggregate vars.
9621
9622         PR rtl-optimization/49390
9623         Revert:
9624         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
9625
9626         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
9627         MEM_ALIAS_SET.
9628
9629 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
9630             Tom de Vries  <tom@codesourcery.com>
9631
9632         PR target/45098
9633         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
9634         Document changed semantics.
9635         (max_stmt_executions, max_stmt_executions_int): Declare.
9636         * tree-data-ref.c (estimated_loop_iterations)
9637         (estimated_loop_iterations_int): Move functions...
9638         * tree-ssa-loop-niter.c (estimated_loop_iterations)
9639         (estimated_loop_iterations_int): here.
9640         (record_estimate): Change nb_iterations_upper_bound and
9641         nb_iterations_estimate semantics.
9642         (max_stmt_executions, max_stmt_executions_int): New function.
9643         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
9644         (max_stmt_executions_tree): this.
9645         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
9646         estimated_loop_iterations_tree.
9647         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
9648         max_stmt_executions_int instead of estimated_loop_iterations_int.
9649         * predict.c (predict_loops): Idem.
9650         * tree-parloops.c (parallelize_loops): Idem.
9651         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
9652         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
9653         (init_omega_for_ddr_1): Idem.
9654         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
9655         (loop_prefetch_arrays): Idem
9656         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
9657         max_stmt_executions instead of estimated_loop_iterations.
9658         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
9659         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
9660         instead of nb_iterations_upper_bound.
9661
9662 2011-06-13  Jan Hubicka  <jh@suse.cz>
9663
9664         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
9665
9666 2011-06-14  Richard Henderson  <rth@redhat.com>
9667
9668         PR debug/48459
9669         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
9670         (based_loc_descr): Assert it's true.
9671         (compute_frame_pointer_to_fb_displacement): Set it, rather than
9672         aborting immediately.
9673
9674 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
9675             Mingfeng Wu  <mingfeng@faraday-tech.com>
9676
9677         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
9678
9679 2011-06-13  Jan Hubicka  <jh@suse.cz>
9680
9681         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
9682
9683 2011-06-13  Jan Hubicka  <jh@suse.cz>
9684
9685         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
9686         similarly to DECL_COMDAT.
9687         * cgraphunit.c (cgraph_analyze_function): Likewise.
9688         * ipa.c (function_and_variable_visibility): Likewise.
9689
9690 2011-06-13  Jan Hubicka  <jh@suse.cz>
9691
9692         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
9693         BINFO_VIRTUALS when streaming for ltrans unit.
9694
9695 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
9696
9697         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
9698         (movdi_internal64): Same.
9699
9700 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
9701
9702         PR target/44618
9703         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
9704         a set of similar patterns, where the MATCH_OPERAND for the function
9705         argument is replaced with individual references to hardware registers.
9706         (save_fpregs_<mode>): Ditto
9707         (restore_gpregs_<mode>): Ditto
9708         (return_and_restore_gpregs_<mode>): Ditto
9709         (return_and_restore_fpregs_<mode>): Ditto
9710         (return_and_restore_fpregs_aix_<mode>): Ditto
9711
9712 2011-06-13  Jan Hubicka  <jh@suse.cz>
9713
9714         * ipa-utils.c (postorder_stack): New structure.
9715         (ipa_reverse_postorder): Handle aliases.
9716
9717 2011-06-13  Jan Hubicka  <jh@suse.cz>
9718
9719         * ipa-inline.c (reset_edge_caches): Walk aliases.
9720         (update_caller_keys): Do not test inlinability of aliases.
9721         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
9722         (do_estimate_growth): Fix typo.
9723
9724 2011-06-13  Jan Hubicka  <jh@suse.cz>
9725
9726         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
9727         (can_remove_node_now_p): ... here; handle same comdat groups.
9728         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
9729         (inline_call): Update use of can_remove_node_now_p.
9730
9731 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
9732
9733         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
9734         condition to disallow non-identical memory locations.
9735         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
9736         preference to bit manipulation instructions.
9737
9738 2011-06-13  Jan Hubicka  <jh@suse.cz>
9739
9740         * cgraph.c (cgraph_for_node_thunks_and_aliases,
9741         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
9742         (nonremovable_p): New function.
9743         (cgraph_can_remove_if_no_direct_calls_p): New function.
9744         (used_from_object_file_p): New functoin.
9745         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
9746         references from aliases.
9747         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
9748         * ipa-inline.c (check_caller_edge): New function.
9749         (want_inline_function_called_once_p): Use it; accept aliases called
9750         once, too.
9751         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
9752
9753 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9754
9755         PR target/48454
9756         * config/arm/neon.md (vec_pack_trunc): Set the lengths
9757         correctly for the case with Quad vectors.
9758
9759 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
9760            Ira Rosen  <ira.rosen@linaro.org>
9761
9762         PR tree-optimization/49352
9763         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
9764         all, make sure loop_use_stmt after the loop is a def stmt of a used
9765         SSA_NAME that is the only one defined inside of the loop.  Don't
9766         check for COND_EXPR and GIMPLE_BINARY_RHS.
9767         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
9768         check_reduction is true.
9769
9770 2011-06-11  Jan Hubicka  <jh@suse.cz>
9771
9772         PR middle-end/49373
9773         * ipa.c (cgraph_externally_visible_p): Check resolution info.
9774
9775 2011-06-11  Jan Hubicka  <jh@suse.cz>
9776
9777         PR middle-end/48836
9778         * ipa-inline-transform.c: Include tree-pass.h
9779         (inline_transform): Set TODO_update_ssa_only_virtuals.
9780         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
9781
9782 2011-06-11  Jan Hubicka  <jh@suse.cz>
9783
9784         PR middle-end/49378
9785         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
9786         aliases and thunks.
9787
9788 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
9789
9790         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
9791         Take number of iterations to peel into account for equally frequent
9792         misalignment values.
9793
9794 2011-06-11  Jan Hubicka  <jh@suse.cz>
9795
9796         * lto-streamer-out.c (produce_symtab): Stream out the newly
9797         represented aliases.
9798
9799 2011-06-11  Jan Hubicka  <jh@suse.cz>
9800
9801         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
9802         varying args.
9803         (ipa_update_after_lto_read): Likewise.
9804         (ipa_write_node_info): Do not sream call_with_var_arguments.
9805         (ipa_read_node_info): Likewise.
9806
9807 2011-06-11  Jan Hubicka  <jh@suse.cz>
9808
9809         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
9810
9811 2011-06-11  Jan Hubicka  <jh@suse.cz>
9812
9813         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
9814         (lto_symtab_resolve_can_prevail_p): Likewise.
9815         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
9816         * cgraph.c (same_body_aliases_done): New global var.
9817         (cgraph_same_body_alias_1): Rename to ...
9818         (cgraph_create_function_alias): ... this one; reorg to new
9819         representation.
9820         (cgraph_same_body_alias): Use cgraph_create_function_alias;
9821         record references when asked to.
9822         (cgraph_add_thunk): Fix formating.
9823         (cgraph_get_node): Kill same body alias code.
9824         (cgraph_node_for_asm): Likewise.
9825         (cgraph_remove_same_body_alias): Remove.
9826         (cgraph_remove_node): Kill same body alias code.
9827         (cgraph_mark_address_taken_node): Mark also the aliased function
9828         as having address taken.
9829         (dump_cgraph_node): Dump same body aliases.
9830         (cgraph_for_node_thunks_and_aliases): Update for new alias
9831         representation.
9832         (cgraph_for_node_and_aliases): Likewise.
9833         * cgraph.h (same_body): Kll pointer.
9834         (same_body_alias): Update comment.
9835         (same_body_aliases_done): Declare.
9836         (cgraph_remove_same_body_alias): Remove declaration.
9837         (cgraph_create_function_alias): Declare.
9838         (cgraph_process_same_body_aliases): Declare.
9839         (cgraph_function_with_gimple_body_p): Check for alias.
9840         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
9841         (cgraph_alias_aliased_node): New function.
9842         (cgraph_function_node): Update for new aliases.
9843         (cgraph_function_or_thunk_node): Likewise.
9844         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
9845         (inline_call): Remove dead aliases.
9846         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
9847         name hack for same body aliases.
9848         (clone_of_p): Look through aliases.
9849         (verify_cgraph_node): Verify aliases.
9850         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
9851         (cgraph_process_same_body_aliases): New function.
9852         (process_function_and_variable_attributes): Disable weakref warning on
9853         alias.
9854         (cgraph_analyze_functions): Handle aliases.
9855         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
9856         (assemble_thunks): Rename to ...
9857         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
9858         (cgraph_expand_function): Remove alias output code.
9859         (cgraph_output_in_order): Skip aliases.
9860         (cgraph_preserve_function_body_p): Aliases don't need preserving.
9861         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
9862         (ipa_record_reference): Do not assert on alias references.
9863         (ipa_ref_has_aliases_p): New function.
9864         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
9865         (ipa_ref_has_aliases_p): Declare.
9866         * lto-cgraph.c (lto_output_node): Handle aliases.
9867         (input_node): Likewise.
9868         * lto-streamer-out.c (lto_output): Skip aliases.
9869         (produce_symtab): Kill same_body_alias code.
9870         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
9871         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
9872         * ipa-inline.c (update_caller_keys): Walk aliases.
9873         (inline_small_functions): Fix thinko in previous patch.
9874         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
9875         (function_and_variable_visibility): Do not walk same body aliases.
9876         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
9877         (ipa_pta_execute): Use it.
9878
9879 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
9880
9881         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
9882         (*vec_dupv2df): Rename from vec_dupv2df.
9883         (vec_dupv2df): New expander.
9884
9885 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
9886
9887         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
9888
9889 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
9890
9891         * config/i386/i386.md: Use default value in "isa" attribute.
9892         * config/i386/sse.md: Ditto.
9893         * config/i386/mmx.md: Ditto.
9894
9895 2011-06-10  Wei Guozhi  <carrot@google.com>
9896
9897         PR target/45335
9898         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
9899         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
9900         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
9901         related peephole2.
9902         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
9903         related peephole2.
9904         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
9905         (arm_legitimate_ldrd_p): New prototype.
9906         (arm_output_ldrd): New prototype.
9907         * config/arm/arm.c (arm_check_ldrd_operands): New function.
9908         (arm_legitimate_ldrd_p): New function.
9909         (arm_output_ldrd): New function.
9910
9911 2011-06-10  David Li  <davidxl@google.com>
9912
9913         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
9914         * passes.c (passr_eq): New function.
9915         (create_pass_tab): New function.
9916         (pass_traverse): New function.
9917         (dump_one_pass): New function.
9918         (dump_pass_list): New function.
9919         (dump_passes): New function.
9920
9921 2011-06-10  Jan Hubicka  <jh@suse.cz>
9922
9923         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
9924         setting the nothrow flag.
9925         * ipa-reference.c (propagate): Skip aliases.
9926         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
9927         (propagate_nothrow): Skip aliases; do not update cgraph.
9928         (local_pure_const): Do not update cgraph.
9929         * tree-profile.c (tree_profiling): Do fixup_cfg.
9930
9931 2011-06-10  Jan Hubicka  <jh@suse.cz>
9932
9933         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
9934         (cgraph_local_node_p): ... here; handle aliases.
9935         (has_addr_references_p): Break out from ...;
9936         (cgraph_remove_unreachable_nodes) ... here.
9937
9938 2011-06-10  Jan Hubicka  <jh@suse.cz>
9939
9940         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
9941         * common.opt (flag_inline_functions_called_once): Do not
9942         initialize to 1.
9943
9944 2011-06-10  Jan Hubicka  <jh@suse.cz>
9945
9946         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
9947         (ipcp_initialize_node_lattices): Do not deal with aliases;
9948         Do not try to propagate through thunks.
9949         (ipcp_change_tops_to_bottom): Do not deal with aliases.
9950
9951 2011-06-10  Jan Hubicka  <jh@suse.cz>
9952
9953         * ipa-prop.c (ipa_write_node_info): Stream jump functions
9954         for indirect calls.
9955         (ipa_read_node_info): Likewise.
9956
9957 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9958
9959         PR lto/49302
9960         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
9961         (build_and_insert_call): Likewise.
9962         (build_and_insert_ref): New.
9963         (gimple_expand_builtin_pow): Minor cleanup.
9964         (gimple_expand_builtin_cabs): New.
9965         (execute_cse_sincos): Add case for BUILT_IN_CABS.
9966
9967 2011-06-10  Jan Hubicka  <jh@suse.cz>
9968
9969         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
9970         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
9971         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
9972         (ipcp_propagate_stage): Skip aliases when propagating.
9973         (ipcp_need_redirect_p): Skip aliases.
9974         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
9975         collect_callers_of_node.
9976         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
9977         for aliases.
9978         (ipa_compute_jump_functions): Look through aliases.
9979
9980 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9981
9982         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
9983
9984 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
9985
9986         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
9987         Adjust comments.
9988         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
9989
9990 2011-06-10  Jan Hubicka  <jh@suse.cz>
9991
9992         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
9993         Update call of gimple_get_virt_method_for_binfo.
9994         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
9995         refuse_thunks parameter.
9996         (gimple_fold_call): Update.
9997         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
9998
9999 2011-06-10  Jan Hubicka  <jh@suse.cz>
10000
10001         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
10002         (not_all_callers_have_enough_arguments_p): ... this one; turn into
10003         worker for cgraph_for_node_and_aliases.
10004         (convert_callers_for_node): Break out from ...
10005         (convert_callers): ... here.
10006         (modify_function): Use collect_callers_of_node.
10007         (ipa_early_sra): Use cgraph_for_node_and_aliases.
10008
10009 2011-06-10  Richard Guenther  <rguenther@suse.de>
10010
10011         PR tree-optimization/49361
10012         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
10013         when not already in gimple form.
10014
10015 2011-06-10  Richard Guenther  <rguenther@suse.de>
10016
10017         PR bootstrap/49344
10018         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
10019         FOR_EACH_PHI_OR_STMT_USE.
10020
10021 2011-06-10  Jan Hubicka  <jh@suse.cz>
10022
10023         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
10024         (clone_inlined_nodes): ... here.
10025         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
10026         to real destination prior inlining.
10027         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
10028         can_early_inline_edge_p, want_early_inline_function_p,
10029         want_early_inline_function_p, want_inline_small_function_p,
10030         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
10031         edge_badness, update_all_callee_keys, lookup_recursive_calls,
10032         add_new_edges_to_heap, inline_small_functions, flatten_function,
10033         inline_always_inline_functions, early_inline_small_functions): Use
10034         cgraph_function_or_thunk_node.
10035         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
10036         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
10037         (do_estimate_edge_growth_1): Break out from ...
10038         (do_estimate_growth) ... here; walk aliases.
10039         (inline_generate_summary): Skip aliases.
10040
10041 2011-06-10  Richard Guenther  <rguenther@suse.de>
10042
10043         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
10044         forward when combining, visit inserted stmts when a stmt was changed.
10045
10046 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
10047
10048         * tree.h (error_operand_p): Add.
10049         * dbxout.c (dbxout_type_fields): Use the latter.
10050         * c-decl.c (add_stmt): Likewise.
10051         * gimplify.c (omp_add_variable, omp_notice_variable,
10052         gimplify_scan_omp_clauses): Likewise.
10053
10054 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
10055
10056         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
10057         when a value is actually passed in regs.
10058
10059 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
10060             Laurent Rougé  <laurent.rouge@menta.fr>
10061
10062         * doc/invoke.texi (SPARC options): Add -mflat.
10063         * config/sparc/sparc.opt: Likewise.
10064         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
10065         (sparc_flat_expand_prologue): Declare.
10066         (sparc_flat_expand_epilogue): Likewise.
10067         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
10068         (CPP_ENDIAN_SPEC): Replace with...
10069         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
10070         (CPP_SPEC): Adjust to above change.
10071         (EXTRA_SPECS): Likewise.
10072         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
10073         (INCOMING_REGNO): Likewise.
10074         (OUTGOING_REGNO): Likewise.
10075         (LOCAL_REGNO): Likewise.
10076         (SETUP_FRAME_ADDRESSES): Likewise.
10077         (FIXED_REGISTERS): Set 0 for %fp.
10078         (CALL_USED_REGISTERS): Likewise.
10079         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
10080         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
10081         (RETURN_ADDR_REGNUM): Define.
10082         (RETURN_ADDR_RTX): Use it.
10083         (INCOMING_RETURN_ADDR_REGNUM): Define.
10084         (INCOMING_RETURN_ADDR_RTX): Use it.
10085         (DWARF_FRAME_RETURN_COLUMN): Likewise.
10086         (EH_RETURN_REGNUM): Define.
10087         (EH_RETURN_STACKADJ_RTX): Use it.
10088         (EH_RETURN_HANDLER_RTX): Delete.
10089         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
10090         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
10091         Delete.
10092         (struct machine_function): Add frame_size, apparent_frame_size,
10093         frame_base_reg, frame_base_offset, n_global_fp_regs and
10094         save_local_in_regs_p fields.
10095         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
10096         sparc_frame_base_offset, sparc_n_global_fp_regs,
10097         sparc_save_local_in_regs_p): New macros.
10098         (sparc_option_override): Error out if -fcall-saved-REG is specified
10099         for Out registers.
10100         (eligible_for_restore_insn): Fix formatting.
10101         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
10102         (eligible_for_sibcall_delay): Likewise.
10103         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
10104         (sparc_legitimate_address_p): Adjust to above change.
10105         (save_global_or_fp_reg_p): New predicate.
10106         (return_addr_reg_needed_p): Likewise.
10107         (save_local_or_in_reg_p): Likewise.
10108         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
10109         (SORR_SAVE, SORR_RESTORE): Delete.
10110         (sorr_pred_t): New typedef.
10111         (sorr_act_t): New enum.
10112         (save_or_restore_regs): Rename to...
10113         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
10114         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
10115         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
10116         mechanism.  Add CFI information for double-word saves in 32-bit mode.
10117         (emit_adjust_base_to_offset): New function extracted from...
10118         (emit_save_or_restore_regs): ...this.  Rename the rest to...
10119         (emit_save_or_restore_regs_global_fp_regs): ...this.
10120         (emit_save_or_restore_regs_local_in_regs): New function.
10121         (gen_create_flat_frame_[123]): New functions.
10122         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
10123         (sparc_flat_expand_prologue): New function.
10124         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
10125         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
10126         (sparc_flat_expand_epilogue): New function.
10127         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
10128         (output_return): Likewise.
10129         (output_sibcall): Likewise.
10130         (sparc_output_mi_thunk): Likewise.
10131         (sparc_frame_pointer_required): Likewise.
10132         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
10133         function optimization.
10134         * config/sparc/sparc.md (flat): New attribute.
10135         (prologue): Add TARGET_FLAT handling.
10136         (save_register_window): Disable if TARGET_FLAT.
10137         (create_flat_frame_[123]): New patterns.
10138         (epilogue): Add TARGET_FLAT handling.
10139         (sibcall_epilogue): Likewise.
10140         (eh_return): New expander.
10141         (eh_return_internal): New insn and splitter.
10142         (return_internal): Add TARGET_FLAT handling.
10143         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
10144         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
10145         (nonlocal_goto): Add TARGET_FLAT handling.
10146         * config/sparc/t-elf: Add -mflat multilib.
10147         * config/sparc/t-leon: Likewise.
10148
10149 2011-06-10  Jan Hubicka  <jh@suse.cz>
10150
10151         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
10152         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
10153         (self_recursive_p): Use cgraph_function_node.
10154         (propagate_pure_const): Likewise.
10155         (propagate_nothrow): Likewise.
10156         * ipa-reference.c (ipa_reference_get_not_read_global): Use
10157         cgraph_function_node.
10158         (propagate_bits): Likewise.
10159         (propagate): Likewise.
10160
10161 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10162             Richard Earnshaw  <rearnsha@arm.com>
10163
10164         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
10165         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
10166         (*thumb2_movdi_vfp): Delete.
10167         (*arm_movdi_vfp_cortexa8): Delete.
10168         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
10169         (*movdi_vfp_cortexa8): Likewise.
10170
10171 2011-06-10  Richard Guenther  <rguenther@suse.de>
10172
10173         * stor-layout.c (initialize_sizetypes): Give names to all
10174         sizetype kinds.
10175
10176 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
10177
10178         PR tree-optimization/49318
10179         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
10180         irrelevant pattern statements.
10181
10182 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
10183
10184         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
10185
10186         PR bootstrap/49354
10187         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
10188         to last assignment.
10189
10190 2011-06-09  Jan Hubicka  <jh@suse.cz>
10191
10192         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
10193         do not recompute reachable flag.
10194         (cgraph_finalize_function, cgraph_analyze_functions): Set
10195         redefined_extern_inline here.
10196
10197 2011-06-09  Jan Hubicka  <jh@suse.cz>
10198
10199         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
10200         (cgraph_only_called_directly_p): ... this one; bring offline.
10201         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
10202         varpool_used_from_object_file_p): Drop names from the declaratoin.
10203         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
10204         collect_callers_of_node): New.
10205         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
10206         (cgraph_edge_recursive_p): Use cgraph_function_node.
10207         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
10208         (cgraph_node_cannot_be_local_p_1): Break out from ...
10209         (cgraph_node_can_be_local_p): ... here; walk aliases.
10210         (cgraph_for_node_thunks_and_aliases): New function.
10211         (cgraph_for_node_and_aliases): New function.
10212         (cgraph_make_node_local_1): Break out from ...
10213         (cgraph_make_node_local) ... here; use
10214         cgraph_for_node_thunks_and_aliases.
10215         (cgraph_set_nothrow_flag_1): Break out from ...
10216         (cgraph_set_nothrow_flag) ... here;
10217         use cgraph_for_node_thunks_and_aliases.
10218         (cgraph_set_const_flag_1): Break out from ...
10219         (cgraph_set_const_flag) ... here;
10220         use cgraph_for_node_thunks_and_aliases.
10221         (cgraph_set_pure_flag_1): Break out from ...
10222         (cgraph_set_pure_flag) ... here;
10223         use cgraph_for_node_thunks_and_aliases.
10224         (cgraph_propagate_frequency_1): Break out from ...
10225         (cgraph_propagate_frequency) ... here; use
10226         cgraph_for_node_thunks_and_aliases.
10227         (cgraph_used_from_object_file_p): Do not care about aliases.
10228         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
10229         New functions.
10230         (collect_callers_of_node_1, collect_callers_of_node): New functions.
10231
10232 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
10233
10234         PR rtl-optimization/49154
10235         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
10236         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
10237         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
10238         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
10239         * config/cris/cris.h (cris_register_move_cost): Remove
10240         !TARGET_V32 code.  Tweak comments.
10241
10242 2011-06-09  Jan Hubicka  <jh@suse.cz>
10243
10244         * cgraphbuild.c (record_eh_tables): Mark personality function as having
10245         address taken.
10246
10247 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
10248
10249         PR rtl-optimization/49154
10250         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
10251         is a matching slot in the hashtable, assign it to classes_ptr.
10252
10253         PR rtl-optimization/49154
10254         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
10255         register classes.
10256         * doc/tm.texi: Regenerate.
10257
10258 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
10259
10260         PR target/49307
10261         * config/sh/sh.md (UNSPEC_CHKADD): New.
10262         (chk_guard_add): New define_insn_and_split.
10263         (symGOT_load): Use chk_guard_add instead of blockage.
10264
10265 2011-06-09  Kai Tietz  <ktietz@redhat.com>
10266
10267         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
10268
10269 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
10270
10271         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
10272
10273 2011-06-09  Wei Guozhi  <carrot@google.com>
10274
10275         PR target/46975
10276         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
10277         (peephole2 for conditional move): Generate 16 bit instructions.
10278
10279 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
10280
10281         * config/i386/i386.md (*movdi_internal_rex64): Merge
10282         alternatives 6 and 8.
10283
10284 2011-06-09  David Li  <davidxl@google.com>
10285
10286         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
10287         * passes.c (passr_eq): New function.
10288         (create_pass_tab): New function.
10289         (pass_traverse): New function.
10290         (dump_one_pass): New function.
10291         (dump_pass_list): New function.
10292         (dump_passes): New function.
10293
10294 2011-06-09  David Li  <davidxl@google.com>
10295
10296         * tree-complex.c (tree_lower_complex): Gate cleanup.
10297         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
10298         (execute_optimize_stdarg): Ditto.
10299         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
10300         (execute_cleanup_eh_1): Ditto.
10301         (execute_cleanup_eh): Ditto.
10302         * gcse.c (gate_rtl_pre): Ditto.
10303         (execute_rtl_pre): Ditto.
10304         * except.c (finish_eh_generation): Ditto.
10305         (convert_to_eh_region_ranges): Ditto.
10306         * cprop.c (one_cprop_pass): Ditto.
10307
10308 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
10309
10310         PR target/48673
10311         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
10312         in all basic blocks.
10313
10314 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10315
10316         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
10317         (HAVE_ENABLE_EXECUTE_STACK): Define.
10318         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
10319         (HAVE_ENABLE_EXECUTE_STACK): Define.
10320         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
10321         (HAVE_ENABLE_EXECUTE_STACK): Define.
10322         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
10323         (ENABLE_EXECUTE_STACK): Remove.
10324         (HAVE_ENABLE_EXECUTE_STACK): Define.
10325         [IN_LIBGCC2]: Don't include <windows.h>.
10326         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
10327         (HAVE_ENABLE_EXECUTE_STACK): Define.
10328         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
10329         (HAVE_ENABLE_EXECUTE_STACK): Define.
10330         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
10331         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
10332         (HAVE_ENABLE_EXECUTE_STACK): Define.
10333         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
10334         (HAVE_ENABLE_EXECUTE_STACK): Define.
10335         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
10336         (HAVE_ENABLE_EXECUTE_STACK): Define.
10337         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
10338         (HAVE_ENABLE_EXECUTE_STACK): Define.
10339         * config/alpha/alpha.c (alpha_trampoline_init): Test
10340         HAVE_ENABLE_EXECUTE_STACK.
10341         * config/i386/i386.c (ix86_trampoline_init): Likewise.
10342         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
10343         (sparc64_initialize_trampoline): Likewise.
10344         * libgcc2.c [L_enable_execute_stack]: Remove.
10345         * system.h (ENABLE_EXECUTE_STACK): Poison.
10346         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
10347         * doc/tm.texi: Regenerate.
10348         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
10349
10350 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
10351
10352         PR middle-end/49308
10353         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
10354         variable.  After resetting and rescanning insn continue with previous
10355         statement.
10356
10357 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10358
10359         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
10360         (gcc_cv_ld_hidden): Likewise.
10361         * configure: Regenerate.
10362         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
10363         (ix86_stack_protect_fail): Mark unused.
10364         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
10365         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
10366         [TARGET_MACHO]: Don't define.
10367         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
10368         (TARGET_STACK_PROTECT_FAIL): Likewise.
10369         (rs6000_stack_protect_fail): Mark unused.
10370         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
10371         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
10372
10373 2011-06-08  Andi Kleen  <ak@linux.intel.com>
10374
10375         * varasm.c (get_section): Print location of other conflict
10376         for section conflicts.
10377
10378 2011-06-08  Andi Kleen  <ak@linux.intel.com>
10379
10380         * config/i386/driver-i386.c (host_detect_local_cpu):
10381         Add model 0x2d Intel CPU.
10382
10383 2011-06-08  Andi Kleen  <ak@linux.intel.com>
10384
10385         * reginfo.c (global_regs_decl): Add.
10386         (globalize_reg): Add decl parameter. Compute location.  Pass location
10387         to warnings and add inform. Store decl in global_regs_decl.
10388         * rtl.h (globalize_reg): Update prototype.
10389         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
10390
10391 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
10392
10393         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
10394
10395 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
10396
10397         PR target/49305
10398         * config/sh/predicates.md (general_movsrc_operand): Check
10399         mode for memory with indexed address for QI and HImode.
10400         (general_movdst_operand): Likewise.
10401
10402 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
10403
10404         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
10405
10406 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
10407
10408         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
10409         (num_ssa_operands): Likewise.
10410         (op_iter_init_phiuse): Forward-declare.
10411         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
10412
10413 2011-06-08  Nick Clifton  <nickc@redhat.com>
10414
10415         * doc/invoke.texi (ARM Options): Update description of
10416         -mthumb-interwork.
10417
10418 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
10419
10420         * config/i386/driver-i386.c (host_detect_local_cpu): Support
10421         unknown Intel family 0x6 CPUs.
10422
10423 2011-06-08  Martin Jambor  <mjambor@suse.cz>
10424
10425         * tree-sra.c (mark_rw_status): Removed.
10426         (analyze_access_subtree): New parameter parent instead of
10427         mark_read and mark_write, propagate from that.
10428
10429 2011-06-08  Julian Brown  <julian@codesourcery.com>
10430
10431         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
10432         for double-precision helper functions in hard-float mode if only
10433         single-precision arithmetic is supported in hardware.
10434
10435 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
10436
10437         PR rtl-optimization/49303
10438         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
10439         code_motion_path_driver returned 0 or 1.
10440         (sel_region_finish): Clear h_d_i_d.
10441
10442 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
10443
10444         * config/sh/sh.c (prepare_move_operands): Set pic register
10445         appropriately for global and local dynamic tls models even
10446         if flag_pic is unset.
10447
10448 2011-06-07  Jason Merrill  <jason@redhat.com>
10449
10450         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
10451
10452 2011-06-07  Xinliang David Li  <davidxl@google.com>
10453         * passes.c (enable_disable_pass): Handle assembler name.
10454         (is_pass_explicitly_enabled_or_disabled): Ditto.
10455
10456 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10457
10458         PR tree-optimization/48497
10459         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
10460
10461 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10462
10463         PR tree-optimization/46728
10464         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
10465         to use gimple_val_nonnegative_real_p.
10466         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
10467         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
10468
10469 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
10470
10471         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
10472
10473 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
10474
10475         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
10476         constant vectors.
10477
10478 2011-06-07  Richard Guenther  <rguenther@suse.de>
10479
10480         * stor-layout.c (initialize_sizetypes): Initialize all
10481         sizetypes based on target definitions.
10482         (set_sizetype): Remove.
10483         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
10484         * tree.h (set_sizetype): Remove.
10485
10486 2011-06-07  Nick Clifton  <nickc@redhat.com>
10487
10488         * config.gcc: Unify V850 architecture options and add support for
10489         newer V850 architectures.
10490         * config/v850/t-v850e: Delete.
10491
10492 2011-06-07  Richard Guenther  <rguenther@suse.de>
10493
10494         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
10495         Call set_sizetype from here.
10496
10497 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
10498
10499         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
10500         (*maddhisi4tb, *maddhisi4tt): New define_insns.
10501
10502 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
10503             Andrew Stubbs  <ams@codesourcery.com>
10504
10505         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
10506         multiplies.
10507         * doc/md.texi (Canonicalization of Instructions): Document widening
10508         multiply canonicalization.
10509
10510 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
10511
10512         PR gcov-profile/49299
10513         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
10514
10515 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
10516
10517         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
10518         a pointer.
10519         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
10520         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
10521         vect_recog_pow_pattern): Likewise.
10522         (vect_pattern_recog_1): Remove declaration.
10523         (widened_name_p): Remove declaration.  Add new argument to specify
10524         whether to check that both types are either signed or unsigned.
10525         (vect_recog_widen_mult_pattern): Update documentation.  Handle
10526         unsigned patterns and multiplication by constants.
10527         (vect_pattern_recog_1): Update vect_recog_func references.  Use
10528         statement information from the statement returned from pattern
10529         detection functions.
10530         (vect_pattern_recog): Update vect_recog_func reference.
10531         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
10532         multiplication by a constant use the type of the other operand.
10533
10534 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
10535
10536         PR rtl-optimization/49145
10537         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
10538
10539 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
10540
10541         PR debug/49262
10542         * dwarf2out.c (native_encode_initializer): Decrement count in each
10543         iteration.
10544
10545         PR debug/49294
10546         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
10547         non-MODE_INT modes.
10548
10549         PR c++/49264
10550         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
10551         if stmt folded into nothing.
10552         * tree-inline.c (fold_marked_statements): If a builtin at the end of
10553         a bb folded into nothing, just update cgraph edges and move to next bb.
10554         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
10555         to be NULL.  Don't compute count and frequency if new_call is NULL.
10556
10557 2011-06-04  Diego Novillo  <dnovillo@google.com>
10558
10559         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
10560         (cgraph.o): Likewise.
10561         (cgraphunit.o): Likewise.
10562         * cgraphunit.c: Include lto-streamer.h
10563         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
10564         if LTO is enabled.
10565         * lto-streamer-in.c (unpack_value_fields): Call
10566         streamer_hooks.unpack_value_fields if set.
10567         (lto_materialize_tree): For unhandled nodes, first try to
10568         call lto_streamer_hooks.alloc_tree, if it exists.
10569         (lto_input_ts_decl_common_tree_pointers): Move reading of
10570         DECL_INITIAL to lto_streamer_read_tree.
10571         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
10572         (lto_streamer_read_tree): New.
10573         (lto_reader_init): Rename from lto_init_reader.
10574         Move initialization code to lto/lto.c.
10575         * lto-streamer-out.c (pack_value_fields): Call
10576         streamer_hooks.pack_value_fields if set.
10577         (lto_output_tree_ref): For tree nodes that are not normally indexable,
10578         call streamer_hooks.indexable_with_decls_p before giving up.
10579         (lto_output_ts_decl_common_tree_pointers): Move handling
10580         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
10581         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
10582         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
10583         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
10584         (lto_streamer_write_tree): New.
10585         (lto_output): Call lto_streamer_init directly.
10586         (lto_writer_init): Remove.
10587         * lto-streamer.c (streamer_hooks): New.
10588         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
10589         instead of lto_preload_common_nodes.
10590         (lto_is_streamable): Move from lto-streamer.h
10591         (lto_streamer_hooks_init): New.
10592         (streamer_hooks): New.
10593         (streamer_hooks_init): New.
10594         * lto-streamer.h (struct output_block): Forward declare.
10595         (struct lto_input_block): Likewise.
10596         (struct data_in): Likewise.
10597         (struct bitpack_d): Likewise.
10598         (struct streamer_hooks): Declare.
10599         (streamer_hooks): Declare.
10600         (lto_streamer_hooks_init): Declare.
10601         (lto_streamer_write_tree): Declare.
10602         (lto_streamer_read_tree): Declare.
10603         (streamer_hooks_init): Declare.
10604         (lto_is_streamable): Move to lto-streamer.c
10605
10606 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10607
10608         * longlong.h (smul_ppmm): The resulting register pair contains the
10609         higher order word first.
10610
10611 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10612
10613         PR tree-optimization/46728
10614         * builtins.c (powi_table): Remove.
10615         (powi_lookup_cost): Remove.
10616         (powi_cost): Remove.
10617         (expand_powi_1): Remove.
10618         (expand_powi): Remove.
10619         (expand_builtin_pow_root): Remove.
10620         (expand_builtin_pow): Remove.
10621         (expand_builtin_powi): Eliminate handling of constant exponent.
10622         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
10623
10624 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
10625
10626         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
10627
10628 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
10629
10630         * dce.c (reset_unmarked_insns_debug_uses): New.
10631         (delete_unmarked_insns): Skip debug insns.
10632         (prescan_insns_for_dce): Likewise.
10633         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
10634         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
10635         active reg can be found.
10636         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
10637         (convert_regs_1): Use it.
10638
10639 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
10640
10641         * tree-pretty-print.c (dump_function_header): Add flags.
10642         Don't dump decl_uid with nouid.
10643         * tree-pretty-print.h (dump_function_header): Adjust.
10644         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
10645         * passes.c (pass_init_dump_file): Pass dump_flags on.
10646         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
10647
10648 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
10649
10650         PR bootstrap/49270
10651         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
10652
10653 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
10654
10655         PR tree-optimization/49243
10656         * calls.c (setjmp_call_p): Also check if fndecl has the
10657         returns_twice attribute.
10658
10659 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10660
10661         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
10662         -ffast-math etc.
10663
10664 2011-06-06  Richard Henderson  <rth@redhat.com>
10665             Georg-Johann Lay  <avr@gjlay.de>
10666
10667         PR target/42210
10668         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
10669         New predicates.
10670         * config/avr/avr.md ("insv"): New insn expander.
10671         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
10672         "*insv.not.io", "*insv.reg"): New insns.
10673
10674 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
10675
10676         PR target/49285
10677         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
10678         to nonimmediate_operand from memory_operand for the operand that is to
10679         be forced to memory by the expander.  Lose the constraints.
10680
10681 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
10682
10683         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
10684         EH return when delayed branches are disabled.
10685
10686 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
10687
10688         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
10689         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
10690         calculation.
10691         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
10692         Simplify MODE_V1DF and MODE_V2SF handling.
10693         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
10694         Simplify MODE_SF handling.
10695
10696 2011-06-04  Jan Hubicka  <jh@suse.cz>
10697
10698         PR tree-optimization/48893
10699         PR tree-optimization/49091
10700         PR tree-optimization/49179
10701         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
10702         Bounds check.
10703
10704 2011-06-04  Jan Hubicka  <jh@suse.cz>
10705
10706         PR lto/48954
10707         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
10708         bitmaps.
10709
10710 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
10711
10712         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
10713
10714 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
10715
10716         PR target/49281
10717         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
10718         to be strictly smaller than 1 << shiftcount.
10719
10720 2011-06-04  Jan Hubicka  <jh@suse.cz>
10721
10722         PR tree-optimize/48929
10723         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
10724         of empty predicate.
10725
10726 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
10727
10728         PR debug/48333
10729         * calls.c (emit_call_1): Prefer the __builtin declaration of
10730         builtin functions.
10731
10732 2011-06-03   Diego Novillo  <dnovillo@google.com>
10733
10734         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
10735         (lto_input_tree_pointers): Likewise.
10736         * lto-streamer-out.c (pack_value_fields): Likewise.
10737         (lto_output_tree_pointers): Likewise.
10738         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
10739         and OPTIMIZATION_NODE.
10740
10741 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10742
10743         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
10744         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
10745         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
10746         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
10747         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
10748         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
10749         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
10750         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
10751         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
10752         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
10753         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
10754         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
10755         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
10756         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
10757         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
10758         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
10759         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
10760         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
10761         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
10762         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
10763         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
10764         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
10765         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
10766         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
10767         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
10768         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
10769         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
10770         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
10771         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
10772         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
10773         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
10774         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
10775         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
10776         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
10777         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
10778         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
10779         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
10780         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
10781         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
10782         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
10783         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
10784         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
10785         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
10786         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
10787         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
10788         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
10789         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
10790         * system.h (MD_UNWIND_SUPPORT): Poison.
10791         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
10792         * doc/tm.texi: Regenerate.
10793         * unwind-dw2.c: Include md-unwind-support.h instead of
10794         MD_UNWIND_SUPPORT.
10795         * config/ia64/unwind-ia64.c: Likewise.
10796         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
10797
10798 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
10799
10800         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
10801
10802 2011-06-03  Richard Henderson  <rth@redhat.com>
10803             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10804
10805         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
10806         (sigill_hdlr): Correct insn, insn size.
10807         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
10808
10809 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10810
10811         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
10812         t-slibgcc-dummy.
10813         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
10814         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
10815         * config/mips/t-iris: Remove.
10816         * config/mips/t-irix6: New file.
10817         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
10818
10819 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10820
10821         * Makefile.in (LIB2ADDEHDEP): Remove.
10822         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
10823         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
10824         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
10825         * config/t-darwin (LIB2ADDEHDEP): Remove.
10826         * config/t-freebsd (LIB2ADDEHDEP): Remove.
10827         * config/t-linux (LIB2ADDEHDEP): Remove.
10828
10829 2011-06-03  Diego Novillo  <dnovillo@google.com>
10830
10831         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
10832         (lto_register_var_decl_in_symtab): Likewise.
10833         (lto_register_function_decl_in_symtab): Likewise.
10834         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
10835         logic to uniquify_nodes.
10836
10837 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10838
10839         * config/alpha/t-osf5: Remove.
10840         * config/alpha/t-osf-pthread: Remove.
10841         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
10842         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
10843
10844 2011-06-03  Julian Brown  <julian@codesourcery.com>
10845
10846         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
10847         (strongarm1110): Use strongarm tuning.
10848         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
10849         * config/arm/arm.c (arm_strongarm_tune): New.
10850         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
10851         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
10852         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
10853         setting, using previous defaults or 1 for Cortex-A5.
10854         (arm_option_override): Set max_insns_skipped from current tuning.
10855
10856 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
10857
10858         * doc/install.texi (Options specification): Document --with-specs.
10859
10860 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10861
10862         * config/arm/neon.md (orndi3_neon): Actually split it.
10863
10864 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
10865
10866         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
10867         * var-tracking.c (reverse_op): Limite recurse depth to 5.
10868
10869 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
10870
10871         PR debug/47590
10872         * target.def (delay_sched2, delay_vartrack): New.
10873         * doc/tm.texi.in: Update.
10874         * doc/tm.texi: Rebuild.
10875         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
10876         * var-tracking.c (gate_handle_var_tracking): Likewise.
10877         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
10878         (bfin_flag_var_tracking): Drop.
10879         (output_file_start): Don't save and override flag_var_tracking.
10880         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
10881         (bfin_reorg): Test original variables.
10882         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
10883         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
10884         (ia64_flag_var_tracking): Drop.
10885         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
10886         (ia64_file_start): Don't save and override flag_var_tracking.
10887         (ia64_override_options_after_change): Ditto
10888         flag_schedule_insns_after_reload.
10889         (ia64_reorg): Test original variables.
10890         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
10891         (picochip_flag_var_tracking): Drop.
10892         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
10893         (picochip_option_override): Don't save and override
10894         flag_schedule_insns_after_reload.
10895         (picochip_asm_file_start): Ditto flag_var_tracking.
10896         (picochip_reorg): Test original variables.
10897         * config/spu/spu.c (spu_flag_var_tracking): Drop.
10898         (TARGET_DELAY_VARTRACK): Define.
10899         (spu_var_tracking): New.
10900         (spu_machine_dependent_reorg): Call it.
10901         (asm_file_start): Don't save and override flag_var_tracking.
10902
10903 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
10904
10905         PR target/49163
10906         * config/sh/predicates.md (general_movsrc_operand): Return 0
10907         for memory and memory subreg of which address is an invalid
10908         indexed address for QI and HImode.
10909         (general_movdst_operand): Likewise.
10910
10911 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
10912
10913         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
10914         edges only, when there is a non-local label in the function.
10915         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
10916
10917 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
10918
10919         * config/i386/constraints.md (Y3): New register constraint.
10920         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
10921         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
10922         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
10923         *sse2_interleave_lowv2df.
10924
10925 2011-06-02  Julian Brown  <julian@codesourcery.com>
10926
10927         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
10928         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
10929         (arm_cortex_a5_tune): New.
10930
10931 2011-06-02  Julian Brown  <julian@codesourcery.com>
10932
10933         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
10934         * config/arm/arm.c (arm_default_branch_cost): New.
10935         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
10936         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
10937         (arm_fa726_tune): Set branch_cost field using
10938         arm_default_branch_cost.
10939         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
10940         current_tune structure.
10941         * dojump.c (tm_p.h): Include file.
10942
10943 2011-06-02  Julian Brown  <julian@codesourcery.com>
10944
10945         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
10946         tuning.
10947         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
10948         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
10949         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
10950         field.
10951         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
10952         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
10953         (arm_fa726te_tune): Add prefer_constant_pool setting.
10954         (arm_v6t2_tune, arm_cortex_tune): New.
10955         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
10956         prefer_constant_pool setting.
10957
10958 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
10959
10960         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
10961         switch statement.
10962         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
10963         (*movdf_internal) <case 6,7,8>: Ditto.
10964
10965         * config/i386/constraints.md (Y4): New register constraint.
10966         * config/i386/sse.md (vec_set<mode>_0): Merge with
10967         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
10968         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
10969         *vec_extractv2di_1_sse.
10970         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
10971         and *vec_concatv2di_rex64_sse.
10972
10973 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
10974
10975         PR target/48807
10976         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
10977         of cgraph_local_info for null before attempting to use it.
10978
10979 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
10980
10981         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
10982         (current_function_dynamic_alloc_count): Delete.
10983         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
10984         (expand_builtin_nonlocal_goto): Remove obsolete comment.
10985         (expand_builtin_update_setjmp_buf): Remove dead code.
10986         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
10987         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
10988         support.
10989         * function.c (instantiate_virtual_regs): Likewise.
10990         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
10991         for a block with a single abnormal incoming edge.
10992         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
10993         (SETJMP_VIA_SAVE_AREA): Delete.
10994         * config/sparc/sparc-protos.h (load_got_register): Declare.
10995         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
10996         (load_got_register): Make global.
10997         (sparc_frame_pointer_required): Add 'static'.
10998         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
10999         (sparc_builtin_setjmp_frame_value): New function.
11000         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
11001         (save_stack_nonlocal): New expander.
11002         (restore_stack_nonlocal): Likewise.
11003         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
11004         (nonlocal_goto_internal): New insn.
11005         (goto_handler_and_restore): Delete.
11006         (builtin_setjmp_setup): Likewise.
11007         (do_builtin_setjmp_setup): Likewise.
11008         (setjmp): Likewise.
11009         (builtin_setjmp_receiver): New expander.
11010
11011 2011-06-01  David Li  <davidxl@google.com>
11012
11013         PR middle-end/49261
11014         * tree-pretty-print.c (dump_function_header): Format cleanup.
11015
11016 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
11017
11018         PR target/49238
11019         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
11020         needed when original operands are used for msw_skip comparison.
11021
11022 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
11023
11024         PR debug/49250
11025         * var-tracking.c (add_uses, add_stores): Don't call
11026         cselib_subst_to_values on ENTRY_VALUE.
11027
11028 2011-06-01  Diego Novillo  <dnovillo@google.com>
11029
11030         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
11031         output_record_start with LTO_null instead of output_zero.
11032         (lto_output_ts_binfo_tree_pointers): Likewise.
11033         (lto_output_tree): Likewise.
11034         (output_eh_try_list): Likewise.
11035         (output_eh_region): Likewise.
11036         (output_eh_lp): Likewise.
11037         (output_eh_regions): Likewise.
11038         (output_bb): Likewise.
11039         (output_function): Likewise.
11040         (output_unreferenced_globals): Likewise.
11041         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
11042         instead of NUM_TREE_CODES.
11043         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
11044         (lto_output_int_in_range): Change << to >> when shifting VAL.
11045
11046 2011-06-01  Diego Novillo  <dnovillo@google.com>
11047
11048         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
11049         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
11050
11051 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
11052
11053         PR target/45074
11054         * optabs.h (valid_multiword_target_p): Declare.
11055         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
11056         doing multi-word operations.
11057         * optabs.c (expand_binop): Likewise.
11058         (expand_doubleword_bswap): Likewise.
11059         (expand_absneg_bit): Likewise.
11060         (expand_unop): Likewise.
11061         (expand_copysign_bit): Likewise.
11062         (multiword_target_p): New function.
11063
11064 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
11065
11066         PR rtl-optimization/48830
11067         PR rtl-optimization/48808
11068         PR rtl-optimization/48792
11069         * reload.c (push_reload): Check contains_reg_of_mode.
11070         * reload1.c (strip_paradoxical_subreg): New function.
11071         (gen_reload_chain_without_interm_reg_p): Use it to handle
11072         paradoxical subregs.
11073         (emit_output_reload_insns, gen_reload): Likewise.
11074
11075 2011-06-01  David Li  <davidxl@google.com>
11076
11077         * predict.c : Change pass name
11078         * ipa.c: Ditto.
11079         * dce.c: Ditto.
11080         * tree-profile.c: Ditto.
11081         * except.c: Ditto.
11082
11083 2011-06-01  David Li  <davidxl@google.com>
11084
11085         * tree-pretty-print.c (dump_function_header): New function.
11086         * final.c (rest_of_clean_state): Use header dumper.
11087         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
11088         * passes.c (pass_init_dump_file): Use header dumper.
11089
11090 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
11091
11092         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
11093         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
11094         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
11095         New functions.
11096         (mem_loc_descriptor): Use them.
11097
11098         * var-tracking.c (create_entry_value): New function.
11099         (vt_add_function_parameter): Use it.
11100
11101 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11102
11103         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
11104         Include <signal.h>, <ucontext.h>.
11105         (sigill_caught): Define.
11106         (sigill_hdlr): New function.
11107         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
11108         insns can be executed.
11109         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
11110         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
11111
11112 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11113
11114         * config/t-slibgcc-darwin: Move to ...
11115         * config/t-slibgcc-dummy: ... this.  Clarify comments.
11116         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
11117         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
11118         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
11119         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
11120         Remove i386/t-crtstuff from tmake_file.
11121         (i[34567]86-*-solaris2*): Remove t-svr4,
11122         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
11123         t-slibgcc-dummy.
11124         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
11125         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
11126         sparc/t-crtfm from tmake_file.
11127         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
11128         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
11129         Remove extra_parts.
11130         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
11131         * config/i386/t-nwld (SHLIB_LINK): Remove.
11132         * config/i386/t-rtems-i386: Rename to ...
11133         * config/i386/t-rtems: ... this.
11134         ($(T)crti.o, $(T)crtn.o): Remove.
11135         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
11136         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
11137         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
11138         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
11139         EXTRA_MULTILIB_PARTS): Remove.
11140         * config/sparc/t-sol2-64: Likewise.
11141         * config/sparc/t-sol2: Remove.
11142         * config/sparc/t-crtin: Remove.
11143         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
11144         * config/i386/gmon-sol2.c: Remove.
11145         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
11146         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
11147         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
11148         * config/i386/sol2-gc1.asm: Remove.
11149         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
11150         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
11151         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
11152         * config/t-slibgcc-sld: Remove.
11153
11154 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
11155
11156         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
11157         base_type_for_mode with op_mode instead of mode.
11158
11159 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
11160
11161         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
11162         Cortex-A15.
11163         * config/arm/arm-tune.md: Regenerate.
11164         * config/arm/arm-tables.opt: Regenerate.
11165         * config/arm/arm.c (FL_DIV): Rename...
11166         (FL_THUMB_DIV): ... to this.
11167         (FL_ARM_DIV): Define.
11168         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
11169         (arm_arch_hwdiv): Remove.
11170         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
11171         (arm_issue_rate): Add cortexr5.
11172         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
11173         __ARM_ARCH_EXT_IDIV__.
11174         (TARGET_IDIV): Define.
11175         (arm_arch_hwdiv): Remove.
11176         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
11177         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
11178         (divsi3, udivsi3): New patterns.
11179         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
11180         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
11181
11182 2011-06-01  Martin Jambor  <mjambor@suse.cz>
11183
11184         * ipa-utils.c (ipa_dfs_info): New field scc_no.
11185         * ipa-utils.c (searchc): Set scc_no.
11186
11187 2011-06-01  Martin Jambor  <mjambor@suse.cz>
11188
11189         * ipa-utils.c (searchc_env): New field allow_overwritable.
11190         (searchc): do not ignore edges to overwritable nodes if indicated
11191         by env->allow_overwritable.
11192         (ipa_reduced_postorder): Set env.allow_overwritable.
11193
11194 2011-06-01  Richard Guenther  <rguenther@suse.de>
11195
11196         * tree.c (free_lang_data): Do not reset boolean_type_node nor
11197         char_type_node.
11198         * lto-streamer.c (lto_record_common_node): Take node pointer,
11199         do not register types.
11200         (lto_preload_common_nodes): Explicitly skip preloading nodes
11201         that differ between frontends.
11202
11203 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
11204
11205         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
11206         NON_FLOAT_REGS.
11207
11208 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
11209
11210         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
11211         parameter value for dump. Dump cost on outermost call only.
11212         (rs6000_memory_move_cost): Dump cost on outermost call only.
11213
11214 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
11215
11216         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
11217         DW_OP_GNU_convert ops.
11218
11219         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
11220         cselib_preserve_constants.
11221         (cselib_lookup_1): If cselib_preserve_constants,
11222         a new VALUE is being created for REG and there is a VALUE for the
11223         same register in wider mode, add another loc with lowpart SUBREG of
11224         the wider VALUE.
11225         (cselib_subst_to_values): Handle ENTRY_VALUE.
11226         * var-tracking.c  (replace_expr_with_values): Return NULL for
11227         ENTRY_VALUE too.
11228         * dwarf2out.c (convert_descriptor_to_signed): New function.
11229         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
11230         instead of two shifts.
11231         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
11232         the right mode if needed.
11233         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
11234         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
11235         convert_descriptor_to_signed.
11236         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
11237         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
11238
11239         PR target/48688
11240         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
11241
11242 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
11243
11244         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
11245         of X87MODEI12 and SWI48x instead of SSEMODEI24.
11246         (SWI248x): New mode iterator, rename from X87MODEI.
11247         (X87MODEI): Remove mode iterator.
11248         (X87MODEI12): Ditto.
11249         (SSEMODEI24): Ditto.
11250
11251 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
11252
11253         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
11254         * doc/invoke.texi: Document max-vartrack-expr-depth.
11255         * var-tracking.c (EXPR_DEPTH): New.
11256         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
11257
11258 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
11259
11260         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
11261         * config/i386/sse.md: Add n to negated FMA pattern names.
11262
11263 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
11264
11265         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
11266
11267 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
11268
11269         * gengtype-state.c (read_state_params_structs): Initialize previous.
11270
11271 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
11272
11273         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
11274         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
11275
11276 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
11277
11278         * config/i386/i386.md (*movtf_internal): Avoid allocating general
11279         registers.  Penalize F*r->o alternative to prevent partial memory
11280         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
11281         CONST_DOUBLE immediates when optimizing function for size.  Do not move
11282         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
11283         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
11284         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
11285         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
11286         alternatives.
11287         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
11288
11289         (fp_register_operand splitters): Use fp_register_operand
11290         constraint.  Do not use FP_REG_P in insn condition.
11291         (any_fp_register_operand splitters): Use any_fp_register_operand
11292         constraint.  Do not use ANY_FP_REG_P in insn condition.
11293
11294 2011-05-31  Jan Hubicka  <jh@suse.cz>
11295
11296         * cgraph.h (cgraph_inline_failed_t): Give enum a name
11297         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
11298         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
11299         (lto_output_edge): Use output_enum and var_len_unsigned.
11300         (lto_output_varpool_node): Likewise.
11301         (input_overwrite_node): Do not take resolution parameter;
11302         extract it from a bitpack.
11303         (input_node): Do not read resolution; use input_enum and
11304         var_len_unsigned.
11305         (input_varpool_node): Likewise.
11306         (input_edge): Likewise.
11307         (input_cgraph_1): Likewise.
11308
11309 2011-05-31  Richard Guenther  <rguenther@suse.de>
11310
11311         * gimple.c (gimple_register_canonical_type): Do not register
11312         any types via gimple_register_type.
11313
11314 2011-05-31  Jan Hubicka  <jh@suse.cz>
11315
11316         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
11317         of thunks.
11318
11319 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
11320
11321         PR rtl-optimization/49235
11322         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
11323         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
11324
11325 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
11326
11327         PR tree-optimization/49093
11328         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
11329         data references.
11330
11331 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
11332
11333         PR debug/49047
11334         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
11335         for concrete functions containing the code of cloned functions.
11336
11337 2011-05-31  Richard Guenther  <rguenther@suse.de>
11338
11339         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
11340         to ...
11341         (forward_propagate_into_comparison_1): ... this.
11342         (forward_propagate_comparison): Rename to ...
11343         (forward_propagate_into_comparison): ... this.  Split out
11344         real forward propagation code to ...
11345         (forward_propagate_comparison): ... this.
11346         (forward_propagate_into_gimple_cond): Remove looping.
11347         (forward_propagate_into_cond): Likewise.
11348         (simplify_not_neg_expr): Return whether we have done something.
11349         (simplify_gimple_switch): Likewise.
11350         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
11351         (ssa_forward_propagate_and_combine): ... this.  Re-structure
11352         to do a forward forward-propagation walk on BBs and a backward
11353         stmt combining walk on BBs.  Consistently re-scan changed statements.
11354         (pass_forwprop): Adjust.
11355
11356 2011-05-30  Ian Lance Taylor  <iant@google.com>
11357
11358         * godump.c (go_format_type): Correct length of name added to
11359         obstack for anonymous field.
11360
11361 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
11362
11363         PR target/49186
11364         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
11365         part of the second operand is 0.
11366
11367 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
11368
11369         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
11370         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
11371         to memory for !TARGET_MEMORY_MISMATCH_STALL.
11372         (*movdf_internal_rex64): Do not penalize F->r alternative.
11373         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
11374         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
11375         when optimizing function for size.  Do not move CONST_DOUBLEs
11376         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
11377         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
11378         SUBREGs.  Do not check for MEM_P operands in the insn condition,
11379         check for ANY_FP_REGNO_P instead.
11380         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
11381         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
11382         function for speed.
11383         * config/i386/i386.c (ix86_option_override_internal): Do not
11384         set TARGET_INTEGER_DFMODE_MOVES here.
11385
11386 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
11387
11388         PR target/49168
11389         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
11390
11391 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
11392
11393         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
11394         DW_TAG_rvalue_reference_type even for
11395         -gdwarf-4 -fno-debug-types-section.
11396
11397 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11398
11399         PR tree-optimization/46728
11400         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
11401         (build_and_insert_binop): New.
11402         (gimple_expand_builtin_pow): Reorder args for
11403         build_and_insert_call; use build_and_insert_binop; add more
11404         optimizations for fractional exponents.
11405
11406 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
11407
11408         PR bootstrap/49190
11409
11410         Revert:
11411         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
11412
11413         * tree.h (struct tree_identifier): Inherit from tree_typed, not
11414         tree_common.
11415         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
11416         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
11417         TS_BASE instead of TS_COMMON.
11418         * varasm.c (assemble_name): Remove assert.
11419
11420 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
11421
11422         * config.gcc: Keep obselete list sorted.
11423
11424 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
11425             Eric Botcazou  <ebotcazou@adacore.com>
11426
11427         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
11428         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
11429         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
11430         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
11431         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
11432
11433 2011-05-30  Richard Guenther  <rguenther@suse.de>
11434
11435         * gimple.c (gimple_types_compatible_p_1): Compare record
11436         and union type members properly.
11437
11438 2011-05-30  Richard Guenther  <rguenther@suse.de>
11439
11440         PR tree-optimization/49210
11441         * ipa-split.c (split_function): Care for the case where the call
11442         result is not trivially convertible to the result holding variable.
11443
11444 2011-05-30  Richard Guenther  <rguenther@suse.de>
11445
11446         PR tree-optimization/49218
11447         * tree-vrp.c (adjust_range_with_scev): Properly check whether
11448         overflow occured.
11449
11450 2011-05-30  Richard Guenther  <rguenther@suse.de>
11451
11452         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
11453         New function split out from ...
11454         (forward_propagate_into_gimple_cond): ... here.  Adjust.
11455         (forward_propagate_into_cond): Likewise.
11456         (forward_propagate_comparison): Also propagate into
11457         comparisons on assignment RHS.  Change return value to
11458         behave similar to forward_propagate_into_cond.
11459         (tree_ssa_forward_propagate_single_use_vars): Handle
11460         strict-overflow warnings properly for forward_propagate_comparison.
11461
11462 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11463
11464         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
11465         from plugin linker.
11466         * configure: Regenerate.
11467
11468 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
11469
11470         PR tree-optimization/49199
11471         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
11472         non-reduction operands are either defined in the loop or by induction.
11473
11474 2011-05-29  Xinliang David Li  <davidxl@google.com>
11475
11476         * opts-global.c (handle_common_deferred_options): Handle new options.
11477         * passes.c (register_one_dump_file): Call register_pass_name.
11478         (execute_one_pass): Check explicit enable/disable flag.
11479         (passr_hash): New function.
11480         (passr_eq): Ditto.
11481         (register_pass_name): Ditto.
11482         (get_pass_by_name): Ditto.
11483         (pass_hash): Ditto.
11484         (pass_eq): Ditto.
11485         (enable_pass): Ditto.
11486         (disable_pass): Ditto.
11487         (is_pass_explicitly_enabled_or_disabled): Ditto.
11488
11489 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
11490
11491         * config/i386/i386.md (*movoi_internal_avx): Use
11492         standard_sse_constant_opcode for alternative 0.
11493         (*movti_internal_sse): Ditto.
11494         (*movti_internal_rex64): Use standard_sse_constant_opcode for
11495         alternative 2.
11496         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
11497         sselog1 type moves.
11498         (*movsi_internal): Ditto.
11499         (*movdi_internal): Ditto.  Add ssecvt type moves.
11500
11501 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
11502
11503         PR target/48830
11504         * rtlanal.c (simplify_subreg_regno): Adjust comment.
11505
11506 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
11507
11508         PR rtl-optimization/49095
11509         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
11510         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
11511
11512 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
11513
11514         PR target/43995
11515         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
11516         recurse_p argument.  Only follow register copies if it is set,
11517         and prevent mips_find_pic_call_symbol from recursing.
11518         (mips_find_pic_call_symbol): Add a recurse_p argument.
11519         Pass it to mips_pic_call_symbol_from_set.
11520         (mips_annotate_pic_calls): Update accordingly.
11521
11522 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
11523
11524         * emit-rtl.c (try_split): Use a loop to search for
11525         NOTE_INSN_CALL_ARG_LOCATIONs.
11526
11527 2011-05-29  Richard Guenther  <rguenther@suse.de>
11528
11529         PR tree-optimization/49217
11530         * ipa-pure-const.c (propagate_pure_const): Fix typos.
11531
11532 2011-05-28  Jan Hubicka  <jh@suse.cz>
11533
11534         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
11535         length.
11536         (string_slot_free): Remove
11537         (create_output_block): Initialize obstack.
11538         (destroy_output_block): Free obstack.
11539         (lto_string_index): Add PERSISTENT parameter; do not duplicate
11540         the string unless it needs to be added into the hash.
11541         (lto_output_string_with_length): Add persistent attribute;
11542         handle NULL strings.
11543         (lto_output_string): Add PERSISTENT parameter.
11544         (output_string_cst, output_identifier): Simplify.
11545         (lto_output_location_bitpack): Update.
11546         (lto_output_builtin_tree): Update.
11547         * lto-streamer.h (struct output_block): Add obstack.
11548         (lto_output_string, lto_output_string_with_length): Remove
11549         declarations; functions are static now.
11550
11551 2011-05-28  Jan Hubicka  <jh@suse.cz>
11552
11553         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
11554         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
11555         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
11556         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
11557         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
11558         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
11559         unpack_ts_decl_with_vis_value_fields,
11560         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
11561         lto_get_builtin_tree): Use enum and variable length i/o.
11562         * basic-block.h (profile_status_d): Add PROFILE_LAST.
11563         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
11564         New functions.
11565         (bp_pack_enum, bp_unpack_enum): New macros.
11566
11567 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
11568
11569         * genrecog.c: Remove redundant forward declarations.
11570
11571 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
11572
11573         * config.gcc: Deprecate mips*-*-openbsd*.
11574
11575 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
11576
11577         PR bootstrap/49195
11578         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
11579         for match_op_dup.
11580
11581 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
11582
11583         PR middle-end/48981
11584         * gengtype.c (vec_prefix_type): New function.
11585         (note_def_vec): Use vec_prefix_type and change the length
11586         attribute to be based on the prefix.
11587         * vec.c: Include coretypes.h before vec.h.
11588         (struct vec_prefix): Remove.
11589         (vec_gc_p_reserve): Change the offsetof to sizeof.
11590         (vec_gc_p_reserve_exact): Likewise.
11591         (vec_heap_p_reserve): Likewise.
11592         (vec_heap_p_reserve_exact): Likewise.
11593         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
11594         (vec_stack_p_reserve): Change the offsetof to sizeof.
11595         (vec_stack_p_reserve_exact): Likewise.
11596         * vec.h (struct vec_prefix): New struct definition.
11597         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
11598         (VEC_T_GTY(T,B)): Likewise.
11599         (DEF_VEC_FUNC_P(T)): Use prefix field.
11600         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
11601         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
11602
11603 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11604
11605         PR tree-optimization/46728
11606         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
11607         (powi_as_mults): Add gimple_set_location.
11608         (build_and_insert_call): New.
11609         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
11610         0.5, 0.25, 0.75, 1./3., or 1./6.
11611
11612 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
11613
11614         * doc/contrib.texi: Update copyright years.
11615         (Contributors): Add Zdenek Sojka.
11616
11617 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
11618
11619         * c-decl.c (c_push_function_context): Copy the current statement
11620         list stack.
11621         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
11622         (finish_struct): Call building_stmt_list_p instead of checking
11623         cur_stmt_list.
11624         * c-parser.c (c_parser_postfix_expression): Likewise.
11625         * c-typeck.c (c_end_compound_stmt): Likewise.
11626         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
11627         * tree-iterator.c (stmt_list_cache): Change to a VEC.
11628         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
11629         (free_stmt_list): Likewise.
11630         * tree.h (struct tree_statement_list): Include typed_tree instead
11631         of tree_common.
11632         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
11633         as TS_TYPED instead of TS_COMMON.
11634
11635 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11636             Uros Bizjak  <ubizjak@gmail.com>
11637
11638         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
11639         (HAVE_AS_IX86_TLSGDPTL): Define.
11640         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
11641         (HAVE_AS_IX86_TLSLDMPLT): Define.
11642         * configure: Regenerate.
11643         * config.in: Regenerate.
11644         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
11645         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
11646         TARGET_SUN_TLS, use @tlsgdplt or @plt.
11647         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
11648         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
11649         @tlsldmplt or @plt.
11650         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
11651
11652 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
11653
11654         * sched-int.h (struct _haifa_deps_insn_data): New members cond
11655         and reverse_cond.
11656         (INSN_COND, INSN_REVERSE_COND): New macros.
11657         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
11658         once.
11659         (sched_get_condition_with_rev): Cache the results, and look them up
11660         if possible.
11661         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
11662         are clobbered by the current insn.
11663         * target.def (exposed_pipline): New sched data hook.
11664         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
11665         * doc/tm.texi: Regenerate.
11666
11667 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11668
11669         PR tree-optimization/49170
11670         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
11671         sincos or cexp.
11672
11673 2011-05-27  Richard Guenther  <rguenther@suse.de>
11674
11675         PR middle-end/49189
11676         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
11677         of comparisons.
11678
11679 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
11680
11681         * haifa-sched.c (sched_scan_info): Remove.
11682         (schedule_block): Call sched_extend_luids rather than sched_init_luids
11683         with NULL args.
11684         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
11685         Remove functions.
11686         (sched_scan): Remove.
11687         (sched_extend_luids): Renamed from luids_extend_insn and no longer
11688         static.  All callers changed.
11689         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
11690         static.  All callers changed.
11691         (sched_init_luids): Remove all arguments except the first.  All
11692         callers changed.  Don't use sched_scan.
11693         (haifa_init_h_i_d): Likewise.
11694         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
11695         manually rather than using sched_init_luids.  Likewise with
11696         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
11697         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
11698         rather than sched_init_luids with NULL args.
11699         * sel-sched-ir.c (new_insns): Remove variable.
11700         (sched_scan): New static function, previously in haifa-sched.c.  Remove
11701         all arguments but the first two; all callers changed.
11702         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
11703         rather than sched_init_luids.
11704         (sel_init_bbs): Remove second argument.  All callers changed.
11705         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
11706         with NULL arguments.
11707         (create_insn_rtx_from_pattern): Likewise.
11708         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
11709         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
11710         (sched_init_insn_luid, sched_extend_luids): Declare.
11711         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
11712         declarations.
11713
11714 2011-05-27  Richard Guenther  <rguenther@suse.de>
11715
11716         PR middle-end/49177
11717         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
11718         A CMP B ? (T) true : (T) false for non-integral types T again.
11719
11720 2011-05-27  Jan Hubicka  <jh@suse.cz>
11721
11722         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
11723         so 0 means NULL string.
11724         (lto_output_string_with_length): ... here.
11725         (lto_output_string, output_string_cst, output_identifier): Update
11726         handling of NULL strings.
11727         (lto_output_location_bitpack): New function.
11728         (lto_output_location): Use it.
11729         (lto_output_tree_ref): Use output_record_start.
11730         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
11731         len values.
11732         * lto-streamer-in.c (string_for_index): Break out from ...; offset
11733         values by 1.
11734         (input_string_internal): ... here;
11735         (input_string_cst, input_identifier, lto_input_string): Update handling
11736         of NULL strings.
11737         (lto_input_location_bitpack): New function
11738         (lto_input_location): Use it.
11739         (unpack_ts_type_common_value_fields): Pack align & alias in var len
11740         values.
11741         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
11742         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
11743         (bp_pack_value): Sanity check the value range.
11744         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
11745         New functions.
11746         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
11747         New functions.
11748
11749 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
11750
11751         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
11752         call_arg_location instructions down the floor.
11753
11754 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
11755
11756         PR rtl-optimization/49154
11757         * ira.c (setup_pressure_classes): Process class without sublcasses
11758         as a candidate for pressure classes.
11759
11760 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
11761
11762         PR rtl-optimization/48575
11763         * genrecog.c (position_type): New enum.
11764         (position): New structure.
11765         (decision): Use position structure instead of a string.
11766         (root_pos, peep2_insn_pos_list): New variables.
11767         (next_position, compare_positions): New functions.
11768         (new_decision): Use position structures instead of strings.
11769         (maybe_both_true): Likewise.
11770         (change_state): Likewise.
11771         (write_tree): Likewise.
11772         (make_insn_sequence): Likewise.
11773
11774 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
11775
11776         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
11777         TS_BASE instead of TS_COMMON.
11778         (find_decls_types_r): Check for TS_TYPED structure before looking at
11779         TREE_TYPE.
11780         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
11781         Add chain field.
11782         (BLOCK_CHAIN): Use new chain field.
11783
11784 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
11785
11786         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
11787         moves expensive on Power7 also.
11788
11789 2011-05-26  Richard Guenther  <rguenther@suse.de>
11790
11791         * fold-const.c (fold_unary_loc): Remove bogus code.
11792
11793 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
11794
11795         * tree.h (struct tree_identifier): Inherit from tree_typed, not
11796         tree_common.
11797         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
11798         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
11799         TS_BASE instead of TS_COMMON.
11800         * varasm.c (assemble_name): Remove assert.
11801
11802 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
11803
11804         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
11805         substituted first.
11806         * libgcc-std.ver: Delete file.
11807
11808 2011-05-26  Richard Guenther  <rguenther@suse.de>
11809
11810         PR tree-optimization/48702
11811         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
11812         only when we know the base address is within bounds.
11813         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
11814         assume the base address of TARGET_MEM_REFs is in bounds.
11815
11816 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11817
11818         PR target/49099
11819         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
11820         declaration in TARGET_SOLARIS.
11821
11822 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
11823
11824         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
11825         The instruction is then expanded explicitly.
11826         (supported_compare): Callable instruction.
11827         (compare): Likewise.
11828
11829 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
11830
11831         PR c++/49165
11832         * gimplify.c (shortcut_cond_r): Don't special case
11833         COND_EXPRs if they have void type on one of their arms.
11834
11835 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
11836
11837         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
11838         to reduce duplication, and to achieve a slightly more logical order
11839         of operations.
11840
11841 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
11842
11843         PR tree-optimization/49161
11844         * tree-vrp.c (struct case_info): New type.
11845         (compare_case_labels): Sort case_info structs instead of
11846         trees, and not primarily by CASE_LABEL uids but by
11847         label_for_block indexes.
11848         (find_switch_asserts): Put case labels into struct case_info
11849         array instead of TREE_VEC, adjust sorting, compare label_for_block
11850         values instead of CASE_LABELs.
11851
11852 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11853
11854         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
11855         ("orndi3_neon"): Likewise.
11856         ("bic<mode>3_neon"): Likewise.
11857
11858 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
11859
11860         PR tree-optimization/49038
11861         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
11862         Ensure at least one epilogue iteration if required by data
11863         accesses with gaps.
11864         * tree-vectorizer.h (struct _loop_vec_info): Add new field
11865         to mark loops that require peeling for gaps.
11866         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
11867         (vect_get_known_peeling_cost): Take peeling for gaps into
11868         account.
11869         (vect_transform_loop): Generate epilogue if required by data
11870         access with gaps.
11871         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
11872         loop as requiring an epilogue if there are gaps in the end of
11873         the strided group.
11874
11875 2011-05-25  Ian Lance Taylor  <iant@google.com>
11876
11877         * godump.c (go_format_type): Output the first field with a usable
11878         Go type, if any.
11879
11880 2011-05-25  Ian Lance Taylor  <iant@google.com>
11881
11882         * godump.c (go_format_type): Check for invalid type names, pointer
11883         target types, and struct field types.
11884
11885 2011-05-25  Jason Merrill  <jason@redhat.com>
11886
11887         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
11888
11889 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
11890
11891         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
11892
11893 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
11894
11895         * config/i386/i386.md (*movqi_extv_1)): Put back
11896         "register_operand" check in "type" calculation.
11897         (*movqi_extzv_2): Likewise.
11898
11899 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
11900
11901         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
11902
11903 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
11904
11905         PR bootstrap/49160
11906         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
11907         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
11908         __divxc3, __divtc3): Wrap definitions in #ifndef.
11909
11910 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
11911
11912         PR target/49142
11913         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
11914         "register_operand" check and replace q_regs_operand with
11915         QIreg_operand in "type" calculation.
11916         (*movqi_extv_1): Likewise.
11917         (*movqi_extzv_2_rex64): Likewise.
11918         (*movqi_extzv_2): Likewise.
11919
11920         * config/i386/predicates.md (QIreg_operand): New.
11921
11922 2011-05-25  Richard Guenther  <rguenther@suse.de>
11923
11924         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
11925         type-based offset disambiguation, streamline MEM_REF and
11926         TARGET_MEM_REF handling.
11927
11928 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
11929
11930         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
11931         (bdesc_special_args): Add pause intrinsic.
11932
11933         * config/i386/i386.md (UNSPEC_PAUSE): New.
11934         (pause): Likewise.
11935         (*pause): Likewise.
11936         * config/i386/ia32intrin.h (__pause): Likewise.
11937
11938         * doc/extend.texi (X86 Built-in Functions): Add documentation for
11939         pause intrinsic.
11940
11941 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11942
11943         PR tree-optimization/46728
11944         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
11945         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
11946
11947 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
11948
11949         * tree.h (struct tree_exp): Inherit from struct tree_typed.
11950         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
11951         instead of TS_COMMON.
11952
11953 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
11954
11955         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
11956         LIBGCC2_GNU_PREFIX is defined.
11957         (__N): New macro.
11958         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
11959         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
11960         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
11961         __clz_tab): Define using __N.
11962         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
11963         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
11964         * target.def (libfunc_gnu_prefix): New hook.
11965         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
11966         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
11967         * doc/tm.texi: Regenerate.
11968         * system.h (LIBGCC2_GNU_PREFIX): Poison.
11969         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
11970         account.
11971         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
11972         (init_optabs): Likewise for the bswap libfuncs.
11973         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
11974         and divide.
11975         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
11976         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
11977         * libgcc-std.ver: Remove.
11978         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
11979         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
11980         libgcc-std.ver.
11981         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
11982         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
11983         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
11984         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
11985         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
11986         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
11987         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
11988         * config/fixed-bit.h (FIXED_OP): Define differently depending on
11989         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
11990         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
11991
11992 2011-05-25  Jan Hubicka  <jh@suse.cz>
11993
11994         * lto-streamer-out.c (output_record_start): Use lto_output_enum
11995         (lto_output_tree): Use output_record_start.
11996         * lto-streamer-in.c (input_record_start): Use lto_input_enum
11997         (lto_get_pickled_tree): Use input_record_start.
11998         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
11999         (lto_value_range_error): New function.
12000         * lto-streamer.h (lto_value_range_error): Declare.
12001         (lto_output_int_in_range, lto_input_int_in_range): New functions.
12002         (lto_output_enum, lto_input_enum): New macros.
12003
12004 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
12005
12006         * common.opt (flag_stack_usage_info): New variable.
12007         (-Wstack-usage): New option.
12008         * doc/invoke.texi (Warning options): Document -Wstack-usage.
12009         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
12010         <OPT_fstack_usage>: Likewise.
12011         * toplev.c (output_stack_usage): Handle -Wstack-usage.
12012         * calls.c (expand_call): Test flag_stack_usage_info variable instead
12013         of flag_stack_usage.
12014         (emit_library_call_value_1): Likewise.
12015         * explow.c (allocate_dynamic_stack_space): Likewise.
12016         * function.c (instantiate_virtual_regs ): Likewise.
12017         (prepare_function_start): Likewise.
12018         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
12019         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
12020         * config/arm/arm.c (arm_expand_prologue): Likewise.
12021         (thumb1_expand_prologue): Likewise.
12022         * config/avr/avr.c (expand_prologue): Likewise.
12023         * config/i386/i386.c (ix86_expand_prologue): Likewise.
12024         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
12025         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
12026         * config/mips/mips.c (mips_expand_prologue): Likewise.
12027         * config/pa/pa.c (hppa_expand_prologue): Likewise.
12028         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
12029         * config/s390/s390.c (s390_emit_prologue): Likewise.
12030         * config/sh/sh.c (sh_expand_prologue): Likewise.
12031         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
12032         * config/spu/spu.c (spu_expand_prologue): Likewise.
12033
12034 2011-05-25  Richard Guenther  <rguenther@suse.de>
12035
12036         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
12037         (gimple_canonical_types_compatible_p): Likewise.
12038
12039 2011-05-25  Jan Hubicka  <jh@suse.cz>
12040
12041         PR middle-end/49062
12042         * ipa.c (function_and_variable_visibility): Only add to same
12043         comdat group list if DECL_ONE_ONLY.
12044
12045 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
12046
12047         PR rtl-optimization/49014
12048         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
12049
12050 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
12051
12052         PR target/49128
12053         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
12054
12055 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
12056
12057         PR rtl-optimization/48757
12058         * ira-build.c (loop_with_eh_edge_p): Rename to
12059         loop_with_complex_edge_p, check edges on complexity, make function
12060         conditional.
12061         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
12062         conditional.
12063
12064 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
12065
12066         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
12067         force flag_ira_share_save_slots to 0.
12068
12069 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
12070
12071         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
12072         (vt_initialize): Set PROLOGUE_BB unconditionally.
12073         Add block comment about CFA_BASE_RTX machinery.
12074         Reset FP_CFA_OFFSET to -1 on all invalid paths.
12075         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
12076
12077 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
12078
12079         PR objc/48187
12080         * c-parser.c (c_parser_objc_class_instance_variables): More robust
12081         parsing of syntax error in ObjC instance variable lists.  In
12082         particular, avoid an infinite loop if there is a stray ']'.
12083         Updated error message.
12084
12085 2011-05-24  Ian Lance Taylor  <iant@google.com>
12086
12087         * godump.c (go_define): Don't accept a string immediately after
12088         another operand.
12089
12090 2011-05-24  Ian Lance Taylor  <iant@google.com>
12091
12092         * godump.c (struct godump_container): Add invalid_hash field.
12093         (go_format_type): Return false if type is found in invalid_hash.
12094         (go_output_typedef): Add invalid type to invalid_hash.
12095         (go_finish): Create and delete invalid_hash.
12096
12097 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12098
12099         PR tree-optimization/46728
12100         * tree-ssa-math-opts.c (powi_table): New.
12101         (powi_lookup_cost): New.
12102         (powi_cost): New.
12103         (powi_as_mults_1): New.
12104         (powi_as_mults): New.
12105         (gimple_expand_builtin_powi): New.
12106         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
12107         (gate_cse_sincos): Remove sincos/cexp restriction.
12108
12109 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12110
12111         PR target/3746
12112         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
12113         mips-tdump native.
12114         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
12115         * mips-tdump.c: Likewise.
12116
12117 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
12118
12119         PR target/49128
12120         * config/i386/driver-i386.c (host_detect_local_cpu): Always
12121         add -mno-XXX.  Handle FMA.
12122
12123 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
12124
12125         PR rtl-optimization/48633
12126         * ira-build.c (loop_with_eh_edge_p): New function.
12127         (mark_loops_for_removal): Use it.
12128
12129 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
12130
12131         PR rtl-optimization/48971
12132         * ira.c (setup_pressure_classes): Don't check register move cost
12133         for classes with one registers.  Don't add pressure class if there
12134         is a pressure class with the same available hard registers.
12135         Check contains_reg_of_mode.  Fix a typo in collecting
12136         temp_hard_regset.  Ignore hard registers not belonging to a class.
12137
12138 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
12139
12140         PR target/49133
12141         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
12142
12143 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
12144             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12145
12146         PR gcov-profile/48845
12147         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
12148
12149 2011-05-24  Richard Guenther  <rguenther@suse.de>
12150
12151         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
12152         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
12153         (gimple_types_compatible_p_1): Adjust.
12154         (iterative_hash_canonical_type): Do not bother about complete vs.
12155         incomplete types.
12156         (gimple_canonical_types_compatible_p): Likewise.
12157
12158 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12159
12160         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
12161
12162 2011-05-24  Richard Guenther  <rguenther@suse.de>
12163
12164         PR bootstrap/49078
12165         * gimple.c (gimple_register_canonical_type): Revert
12166         previous change.
12167         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
12168         does not for a tree for the case where it matters.  Cache
12169         pointer-type alias-sets.
12170
12171 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
12172
12173         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
12174         (OBJS): Remove options.o, opts-common.o and prefix.o.
12175         (OBJS-libcommon-target): New.
12176         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
12177         (BACKEND): Include libcommon-target.a.
12178         (MOSTLYCLEANFILES): Include libcommon-target.a.
12179         (libcommon-target.a): New.
12180         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
12181         prefix.o.
12182
12183 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
12184
12185         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
12186         parts of output shared with the driver.
12187         * optc-gen.awk: Don't generate parts of output not shared with the
12188         driver.
12189         * opth-gen.awk: Remove GCC_DRIVER conditionals.
12190         * doc/options.texi (SourcerInclude): Mention options-save.c.
12191         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
12192         (OBJS): Add options-save.o.
12193         (options-save.c, options-save.o): New.
12194         (options.o): Update dependencies.
12195         (gcc-options.o): Remove.
12196         (mostlyclean): Remove options-save.c.
12197
12198 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
12199
12200         PR debug/49032
12201         * dbxout.c: Include cgraph.h.
12202         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
12203         and without value expr, return NULL if no varpool node exists for
12204         it or if it is not needed.
12205         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
12206
12207         PR c/49120
12208         * c-decl.c (start_decl): Convert expr to void_type_node.
12209
12210 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
12211
12212         PR rtl-optimization/48826
12213         * emit-rtl.c (try_split): When splitting a call that is followed
12214         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
12215
12216 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
12217
12218         * cfgexpand.c (expand_debug_expr): For unused non-addressable
12219         parameters passed in memory prefer using DECL_INCOMING_RTL over
12220         the pseudos it will be copied into.
12221
12222 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
12223
12224         PR target/47315
12225         * config/i386/i386.c (ix86_option_override_internal): Save the
12226         initial options after checking vzeroupper.
12227
12228 2011-05-23  David Li  <davidxl@google.com>
12229
12230         PR tree-optimization/48988
12231         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
12232         Initialize has_valid_pred for each pred chain.
12233
12234 2011-05-23  Richard Guenther  <rguenther@suse.de>
12235
12236         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
12237         (iterative_hash_gimple_type): Always hash type names.
12238
12239 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
12240
12241         * c-typeck.c (build_function_call_vec): Tweak call to
12242         check_function_arguments.
12243
12244 2011-05-23  Richard Guenther  <rguenther@suse.de>
12245
12246         PR tree-optimization/49115
12247         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
12248         is not necessarily carried out, do not claim it kills the ref.
12249         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
12250
12251 2011-05-23  Richard Guenther  <rguenther@suse.de>
12252
12253         PR middle-end/15419
12254         * builtins.c (fold_builtin_memory_op): Be less restrictive about
12255         what pointer types we accept for folding.
12256
12257 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12258
12259         * gthr-gnat.c: Remove.
12260         * gthr-gnat.h: Remove.
12261         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
12262         * config/t-freebsd (LIB2ADDEH): Likewise.
12263         * config/t-linux (LIB2ADDEH): Likewise.
12264         * config/t-sol2 (LIB2ADDEH): Likewise.
12265         * config/ia64/t-vms (LIB2ADDEH): Likewise.
12266         * configure.ac (target_thread_file): Remove gnat handling.
12267         * configure: Regenerate.
12268         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
12269
12270 2011-05-23  Tristan Gingold  <gingold@adacore.com>
12271             Eric Botcazou  <ebotcazou@adacore.com>
12272
12273         * gcov.c (create_file_names): If no object directory is specified,
12274         keep the directory of the file.
12275
12276 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12277
12278         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
12279         * configure: Regenerate.
12280
12281 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
12282
12283         PR middle-end/48973
12284         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
12285         failed and the comparison has a single bit signed type, use
12286         constm1_rtx instead of const1_rtx for true value.
12287         (do_store_flag): If ops->type is single bit signed type, disable
12288         signel bit test optimization and pass -1 instead of 1 as last
12289         parameter to emit_store_flag_force.
12290
12291 2011-05-23  Tom de Vries  <tom@codesourcery.com>
12292
12293         PR target/45098
12294         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
12295         function.
12296         (infer_loop_bounds_from_undefined): Use new function.
12297
12298 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
12299
12300         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
12301         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
12302         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
12303         and -O0 otherwise.
12304         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
12305
12306 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
12307
12308         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
12309         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
12310         returns true.
12311
12312 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
12313
12314         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
12315
12316 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
12317
12318         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
12319         UNSPEC_MOVE_PIC pattern.
12320
12321 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
12322
12323         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
12324         (sparc-*-rtems*): Likewise.
12325         (sparc64-*-elf*): Likewise.
12326         (sparc64-*-rtems*): Likewise.
12327         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
12328         * config/sparc/t-crtin: New file.
12329         * config/sparc/t-sol2 (crti.o): Delete rule.
12330         (crtn.o): Likewise.
12331         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
12332         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
12333         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
12334         (ENDFILE_SPEC): Add crtn.o.
12335
12336 2011-05-22  Tom de Vries  <tom@codesourcery.com>
12337
12338         PR middle-end/48689
12339         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
12340         CODE_CONTAINS_STRUCT (TS_COMMON).
12341
12342 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
12343
12344         PR middle-end/49029
12345         * expmed.c (extract_fixed_bit_field): Test whether target can be used
12346         only after deciding which mode to use.
12347
12348 2011-05-22  Tom de Vries  <tom@codesourcery.com>
12349
12350         PR target/45098
12351         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
12352         for call to get_shiftadd_cost.
12353
12354 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
12355
12356         PR target/49104
12357         * config/i386/cpuid.h (bit_MMXEXT): New define.
12358
12359 2011-05-22  Nick Clifton  <nickc@redhat.com>
12360
12361         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
12362         initialisation of non-existant args[2] element.  Use args[] array
12363         not arg[] array to pass arguments to build_function_type_list.
12364
12365 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
12366
12367         PR tree-optimization/49087
12368         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
12369
12370 2011-05-21  Jason Merrill  <jason@redhat.com>
12371
12372         PR c++/49092
12373         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
12374         static storage duration.
12375
12376 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
12377
12378         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
12379         frame pointer.
12380
12381 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
12382
12383         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
12384         false if there are call-saved registers here...
12385         (sparc_can_use_return_insn_p): ...but here instead.
12386         (save_or_restore_regs): Fix thinko.
12387         (sparc_expand_prologue): Use current_function_is_leaf.
12388         (sparc_frame_pointer_required): Likewise.
12389
12390 2011-05-21  Nick Clifton  <nickc@redhat.com>
12391
12392         PR target/49098
12393         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
12394
12395 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
12396
12397         * gengtype.c (walk_type): Implemented "atomic" GTY option.
12398         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
12399
12400 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
12401
12402         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
12403         * optc-gen.awk: Move common code to opt-read.awk.
12404         * opth-gen.awk: Likewise.
12405         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
12406
12407 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
12408
12409         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
12410
12411 2011-05-20  Tom de Vries  <tom@codesourcery.com>
12412
12413         PR target/45098
12414         * tree-ssa-loop-ivopts.c: Include expmed.h.
12415         (get_shiftadd_cost): New function.
12416         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
12417
12418 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
12419
12420         PR bootstrap/49086
12421         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
12422         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
12423
12424 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
12425
12426         * Makefile.in: Update comment referring to $(OBJS-common).
12427
12428 2011-05-20  Ian Lance Taylor  <iant@google.com>
12429
12430         * godump.c (go_output_typedef): Put enum constants in the macro
12431         hash table to avoid duplicate Go const definitions.
12432
12433 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
12434
12435         * Makefile.in (LIBDEPS): Add libcommon.a.
12436         (LIBS): Likewise.
12437         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
12438         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
12439         pretty-print.o and version.o.
12440         (OBJS-libcommon): New.
12441         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
12442         (BACKEND): Add libcommon.a.
12443         (MOSTLYCLEANFILES): Likewise.
12444         (libcommon.a): New.
12445         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
12446         (cpp$(exeext)): Likewise.
12447         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
12448         pretty-print.o and input.o.
12449         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
12450         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
12451         (errors.o): Remove.
12452         (mips-tfile): Don't explicitly use version.o.
12453         (mips-tdump): Likewise.
12454         (gcov.o): Depend on $(DIAGNOSTIC_H).
12455         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
12456         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
12457         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
12458         * gcov-dump.c: Include intl.h and diagnostic.h.
12459         (main): Initialize diagnostics.
12460         * gcov.c: Include diagnostic.h.
12461         (fnotice): Remove.
12462         (main): Initialize diagnostics.
12463         * lto-wrapper.c: Include diagnostic.h.
12464         (main): Initialize diagnostics.
12465
12466 2011-05-20  Michael Matz  <matz@suse.de>
12467
12468         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
12469
12470 2011-05-20  Michael Matz  <matz@suse.de>
12471             Richard Guenther  <rguenther@suse.de>
12472
12473         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
12474         use lto_streamer_cache_append directly instead of returning a VEC.
12475         (preload_common_node): Remove.
12476         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
12477         track seen nodes.
12478         (lto_streamer_cache_create): Call lto_preload_common_nodes.
12479
12480 2011-05-20  Richard Guenther  <rguenther@suse.de>
12481
12482         PR tree-optimization/49079
12483         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
12484         MEM_REFs correctly for the trailing array access detection.
12485         Special case constants the same way as decls for overall size
12486         constraining.
12487
12488 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
12489
12490         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
12491         argument expansion.
12492
12493 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
12494
12495         PR tree-optimization/49073
12496         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
12497         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
12498         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
12499
12500 2011-05-20  Richard Guenther  <rguenther@suse.de>
12501
12502         PR middle-end/48849
12503         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
12504         of pointer types the same way the middle-end does.
12505
12506 2011-05-20  Richard Guenther  <rguenther@suse.de>
12507
12508         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
12509         or pointer-to chains.  Delay all fixup to uniquify_nodes.
12510
12511 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
12512
12513         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
12514         (fma4_fmaddsub): Likewise
12515
12516 2011-05-19  Jan Hubicka  <jh@suse.cz>
12517
12518         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
12519         (GIMPLE_TYPE_PAIR_SIZE): New macro.
12520         (type_pair_cache): New static var.
12521         (lookup_type_pair): Use fixed sized custom hash; make inline.
12522         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
12523         calls of lookup_type_pair.
12524         (print_gimple_types_stats): Remove cache stats.
12525         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
12526         and gtc_ob.
12527
12528 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
12529
12530         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
12531         when TARGET_RDRND is active.
12532         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
12533         Generate dummy SImode target register when target is NULL.
12534
12535 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
12536
12537         * config/arm/arm-fpus.def: New.
12538         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
12539         arm-fpus.def.
12540         * config/arm/arm-tables.opt: Regenerate.
12541         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
12542         (arm_option_override): Don't decode FPU name to string here.
12543         * config/arm/arm.opt (mfpu=): Use Enum.
12544         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
12545         Update dependencies.
12546
12547 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
12548
12549         * collect2.c: Include diagnostic.h.
12550         (fatal_perror, fatal, error, fancy_abort): Remove.
12551         (main): Set progname.  Call xmalloc_set_program_name and
12552         diagnostic_initialize.
12553         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
12554         scan_libraries, resolve_lib_name): Call fatal_error instead of
12555         fatal and fatal_perror.
12556         * collect2.h (error, fatal, fatal_perror): Don't declare.
12557         * tlink.c: Include diagnostic-core.h.
12558         (recompile_files): Call fatal_error instead of fatal_perror.
12559         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
12560         pretty-print.o and input.o.
12561         (collect2.o, tlink.o): Update dependencies.
12562
12563 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12564
12565         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
12566
12567 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12568
12569         PR target/40483
12570         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
12571         COMDAT group syntax, both SPARC and x86 variants.
12572         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
12573         * configure: Regenerate.
12574         * config/sol2.h (TARGET_SOLARIS): Define.
12575         (PUSHSECTION_FORMAT): Remove.
12576         (SECTION_NAME_FORMAT): Define.
12577         * config/sol2.c: Include hashtab.h.
12578         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
12579         expansion, using SECTION_NAME_FORMAT.
12580         (solaris_comdat_htab): New variable.
12581         (struct comdat_entry): Define.
12582         (comdat_hash): New function.
12583         (comdat_eq): New function.
12584         (solaris_elf_asm_comdat_section): New function.
12585         (solaris_define_comdat_signature): New function.
12586         (solaris_code_end): New function.
12587         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
12588         (solaris_code_end): Declare.
12589         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
12590         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
12591         solaris_code_end.
12592         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
12593         Remove ATTRIBUTE_UNUSED.
12594         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
12595         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
12596         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
12597         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
12598         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
12599         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
12600         (PUSHSECTION_FORMAT): Remove.
12601         (SECTION_NAME_FORMAT): Redefine.
12602
12603 2011-05-19  Kai Tietz  <ktietz@redhat.com>
12604
12605         * tree-cfg.c (verify_gimple_assign_binary): Barf on
12606         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
12607         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
12608
12609 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
12610             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12611
12612         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
12613
12614 2011-05-19  Richard Guenther  <rguenther@suse.de>
12615
12616         PR middle-end/48985
12617         * tree-object-size.c (addr_object_size): If the pointed-to
12618         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
12619
12620 2011-05-19  Richard Guenther  <rguenther@suse.de>
12621
12622         * gimple.c (gimple_types_compatible_p_1): Compare names of
12623         the types themselves.
12624         (iterative_hash_gimple_type): And hash them that way.
12625         (gimple_register_type_1): If we register a main variant properly
12626         initialize the leader to ourselves.
12627
12628 2011-05-19  Tom de Vries  <tom@codesourcery.com>
12629
12630         PR target/45098
12631         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
12632         get_loop_invariant_expr_id.
12633         (get_loop_invariant_expr_id): Use get_expr_id.
12634         (parm_decl_cost): New function.
12635         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
12636         Improve bound cost estimation.  Use different inv_expr_id for elim and
12637         express cases.
12638
12639 2011-05-19  Tom de Vries  <tom@codesourcery.com>
12640
12641         PR target/45098
12642         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
12643         cost_base.cost == 0.
12644
12645 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
12646
12647         PR target/49002
12648         * config/i386/sse.md
12649         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
12650         load cast.
12651
12652 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
12653
12654         PR tree-optimization/49039
12655         * tree-vrp.c (extract_range_from_binary_expr): For
12656         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
12657         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
12658
12659 2011-05-18  Tom de Vries  <tom@codesourcery.com>
12660
12661         PR target/45098
12662         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
12663
12664 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
12665
12666         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
12667         (*tls_global_dynamic_64): Ditto.
12668         (*tls_local_dynamic_base_32_gnu): Ditto.
12669         (*tls_local_dynamic_base_64): Ditto.
12670         (tls_initial_exec_64_sun): Ditto.
12671
12672 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
12673
12674         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
12675         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
12676         bf592-none.
12677         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
12678         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
12679         * config/bfin/bfin.c (bfin_cpus): Add bf592.
12680         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
12681         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
12682         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
12683         * config/bfin/elf.h (LIB_SPEC): Add bf592.
12684
12685 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
12686
12687         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
12688         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
12689         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
12690         target_thread_pointer, arm_structure_size_boundary, struct
12691         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
12692         struct abi_name, arm_all_abis): Remove.
12693         (arm_option_override) Don't process most enumerated option values here.
12694         Don't process target_fpe_name here.  Work with integer not string for
12695         structure size boundary; use separate diagnostics for each case.
12696         * config/arm/arm.h (enum float_abi_type, enum
12697         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
12698         to arm-opts.h.
12699         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
12700         arm_structure_size_boundary): Remove.
12701         * config/arm/arm.opt (mabi=): Use Enum and Init.
12702         (arm_abi_type): New Enum and EnumValue entries.
12703         (mfloat-abi=): Use Enum and Init.
12704         (float_abi_type): New Enum and EnumValue entries.
12705         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
12706         (mfp16-format=): Use Enum and Init.
12707         (arm_fp16_format_type): New Enum and EnumValue entries.
12708         (mstructure-size-boundary=): Use UInteger and Init.
12709         (mtp=): Use Enum and Init.
12710         (arm_tp_type): New Enum and EnumValue entries.
12711
12712 2011-05-18  Richard Guenther  <rguenther@suse.de>
12713
12714         PR tree-optimization/49018
12715         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
12716         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
12717         gimple_has_side_effects.
12718
12719 2011-05-18  Richard Guenther  <rguenther@suse.de>
12720
12721         * gimple.c (gimple_register_type_1): New function, split out from ...
12722         (gimple_register_type): ... here.  Avoid infinite recursion.
12723
12724 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
12725
12726         PR tree-optimization/41881
12727         * tree-vectorizer.h (struct _loop_vec_info): Add new field
12728         reduction_chains along with a macro for its access.
12729         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
12730         (destroy_loop_vec_info): Free reduction chains.
12731         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
12732         (vect_is_slp_reduction): New function.
12733         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
12734         (vect_create_epilog_for_reduction): Support SLP reduction chains.
12735         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
12736         definition types for reduction chains.
12737         (vect_supported_load_permutation_p): Don't allow permutations for
12738         reduction chains.
12739         (vect_analyze_slp_instance): Support reduction chains.
12740         (vect_analyze_slp): Try to build SLP instance from reduction chains.
12741         (vect_get_constant_vectors):  Handle reduction chains.
12742         (vect_schedule_slp_instance): Mark the first statement of the
12743         reduction chain as reduction.
12744
12745 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
12746
12747         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
12748         names for group elements access.
12749         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
12750         reduction chains as well.  Remove data reference and interleaving
12751         related words from the fields names.
12752         * tree-vect-loop.c (vect_transform_loop): Use new names for group
12753         elements access.
12754         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
12755         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
12756         vect_update_interleaving_chain, vect_same_range_drs,
12757         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
12758         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
12759         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
12760         vect_analyze_group_access, vect_analyze_data_ref_access,
12761         vect_create_data_ref_ptr, vect_transform_strided_load,
12762         vect_record_strided_load_vectors): Likewise.
12763         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
12764         vect_model_load_cost, vectorizable_store, vectorizable_load,
12765         vect_remove_stores, new_stmt_vec_info): Likewise.
12766         * tree-vect-slp.c (vect_build_slp_tree,
12767         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
12768
12769 2011-05-18  Richard Guenther  <rguenther@suse.de>
12770
12771         PR middle-end/48989
12772         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
12773         operand verification.
12774         (verify_gimple_assign_binary): Likewise.
12775         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
12776         to non-1-precision BOOLEAN_TYPEs.
12777
12778 2011-05-18  Tom de Vries  <tom@codesourcery.com>
12779
12780         PR target/45098
12781         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
12782
12783 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
12784
12785         PR tree-optimization/49000
12786         * tree-ssa.c (execute_update_addresses_taken): Call
12787         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
12788         be rewritten and decl has been marked for renaming, reset
12789         the debug stmt.
12790
12791 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
12792
12793         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
12794         enum_opts_set when testing if attributes have set -mfpmath=.
12795
12796 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
12797
12798         * config/mips/mips.c (mips_handle_option): Remove unused variable.
12799
12800 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
12801
12802         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
12803         info->entry with 0
12804         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
12805         id.transform_lang_insert_block with NULL.
12806
12807 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
12808
12809         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
12810         (output_fp_compare): Change args 3 and 4 to bool.
12811         (ix86_expand_call): Change arg 6 to bool.
12812         (ix86_attr_length_immediate_default): Change arg 2 to bool.
12813         (ix86_attr_length_vex_default): Change arg 3 to bool.
12814         * config/i386/i386.md: Update all uses.
12815         * config/i386/i386.c: Ditto.
12816         (ix86_flags_dependent): Change return type to bool.
12817
12818 2011-05-17  Richard Guenther  <rguenther@suse.de>
12819
12820         * gimple.c (type_hash_pair_compare): Fix comparison.
12821
12822 2011-05-17  Richard Guenther  <rguenther@suse.de>
12823
12824         * gimple.c (iterative_hash_gimple_type): Simplify singleton
12825         case some more, fix final hash value of the non-singleton case.
12826
12827 2011-05-17  Richard Guenther  <rguenther@suse.de>
12828
12829         PR bootstrap/49013
12830         Revert
12831         2011-05-16  Richard Guenther  <rguenther@suse.de>
12832
12833         * gimple.c (gimple_types_compatible_p_1): Use names of the
12834         type itself, not its main variant.
12835         (iterative_hash_gimple_type): Likewise.
12836
12837 2011-05-17  Richard Guenther  <rguenther@suse.de>
12838
12839         * gimple.c (gimple_register_canonical_type): Use the main-variant
12840         leader for computing the canonical type.
12841
12842 2011-05-17  Nick Clifton  <nickc@redhat.com>
12843
12844         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
12845         moves.
12846
12847         * config/rx/rx.md: Add peephole to remove redundant extensions
12848         after loads.
12849         (bitset_in_memory): Use rx_restricted_mem_operand.
12850         (bitinvert_in_memory): Likewise.
12851         (bitclr_in_memory): Likewise.
12852
12853 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
12854             Nick Clifton  <nickc@redhat.com>
12855
12856         * config/rx/rx.md: Add peepholes to match a register move followed
12857         by a comparison of the moved register.  Replace these with an
12858         addition of zero that does both actions in one instruction.
12859
12860 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
12861
12862         PR target/48986
12863         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
12864         predicate to allow CONST_INT.
12865         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
12866
12867 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
12868
12869         * opts-common.c (opt_enum_arg_to_value): New.
12870         * opts.h (opt_enum_arg_to_value): Declare.
12871         * config/i386/i386.opt (fpmath): Remove.
12872         (mfpmath=): Use Enum, Init and Save.
12873         (fpmath_unit): New Enum and EnumValue entries.
12874         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
12875         name for function fpmath state.
12876         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
12877         * config/i386/i386.c: Include diagnostic.h.
12878         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
12879         (ix86_target_string): Take enum fpmath_unit value instead of string.
12880         (ix86_debug_options): Update call to ix86_target_string.
12881         (ix86_option_override_internal): Don't process fpmath strings here.
12882         (x86_function_specific_save, ix86_function_specific_restore):
12883         Don't handle fpmath state specially.
12884         (ix86_function_specific_print): Pass fpmath state to
12885         ix86_target_string instead of printing in this function.
12886         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
12887         Handle enum attributes.
12888         (IX86_ATTR_ENUM, ix86_opt_enum): New.
12889         (ix86_valid_target_attribute_tree): Update option_strings
12890         handling.  Handle fpmath as enum option.
12891         (ix86_can_inline_p): Update field names for function fpmath state.
12892         (ix86_expand_builtin): Update call to ix86_target_string.
12893         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
12894         (ix86_fpmath): Remove.
12895         * config/i386/t-i386 (i386.o): Update dependencies.
12896
12897 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
12898
12899         PR preprocessor/48677
12900         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
12901         from decoded_options[0], not from itself.
12902
12903 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
12904
12905         * config/i386/constraints.md (z): New constraint.
12906         * config/i386/i386.c (c): New mode attribute.
12907         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
12908         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
12909         constraint for operand 0.
12910         (*call_vzeroupper): Ditto.
12911         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
12912         (*call_rex64_ms_sysv_vzeroupper): Ditto.
12913         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
12914         Use "lzm" constraint for operand 0.
12915         (*call_pop_vzeroupper): Ditto.
12916         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
12917         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
12918         constraint for operand 0.
12919         (*sibcall_vzeroupper): Ditto.
12920         (*sibcall_rex64_ms_sysv): Ditto.
12921         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
12922         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
12923         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
12924         (*sibcall_pop_vzeroupper): Ditto.
12925         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
12926         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
12927         mode iterator.  Use "<c>zm" constraint for operand 1.
12928         (*call_value_vzeroupper): Ditto.
12929         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
12930         for operand 1.
12931         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
12932         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
12933         *call_value_pop_1.  Use "lzm" constraint for operand 1.
12934         (*call_value_pop_vzeroupper): Ditto.
12935         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
12936         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
12937         mode iterator.  Use "Uz" constraint for operand 1.
12938         (*sibcall_value_vzeroupper): Ditto.
12939         (*sibcall_value_rex64_ms_sysv): Ditto.
12940         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
12941         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
12942         constraint for operand 1.
12943         (*sibcall_value_pop_vzeroupper): Ditto.
12944         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
12945         and "z" constraint for operand 2.
12946         (*tls_global_dynamic_32_gnu): Ditto.
12947         (*tls_local_dynamic_base_32_gnu): Ditto.
12948         (*tls_local_dynamic_base_64): Ditto.
12949         (*tls_local_dynamic_32_once): Ditto.
12950         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
12951         Update all callers.
12952         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
12953
12954 2011-05-16  Richard Guenther  <rguenther@suse.de>
12955
12956         * gimple.c (gimple_types_compatible_p_1): Use names of the
12957         type itself, not its main variant.
12958         (iterative_hash_gimple_type): Likewise.
12959
12960 2011-05-16  Richard Guenther  <rguenther@suse.de>
12961
12962         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
12963         always visit pointer target and function result and argument types.
12964
12965 2011-05-16  Jason Merrill  <jason@redhat.com>
12966
12967         PR c++/48999
12968         * tree-inline.c (copy_statement_list): Put back recursion.
12969
12970 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
12971
12972         PR target/27663
12973         PR target/41076
12974         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
12975         * config/avr/avr.md ("*ior<mode>qi.byte0",
12976         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
12977
12978 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
12979
12980         PR target/45099
12981         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
12982         register is needed for a function argument.
12983
12984 2011-05-16  Richard Guenther  <rguenther@suse.de>
12985
12986         * gimple.c (struct type_hash_pair): New type.
12987         (type_hash_pair_compare): New function.
12988         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
12989
12990 2011-05-16  Revital Eres  <revital.eres@linaro.org>
12991
12992         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
12993
12994 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
12995
12996         * config/i386/i386.md (floating point move splitters): Fix
12997         usage of standard_80387_constant_p.
12998         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
12999
13000 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
13001
13002         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
13003
13004 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
13005
13006         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
13007         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
13008         (tree_ssa_lim_finalize): Likewise.
13009
13010 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
13011
13012         * config/i386/constraint.md (Yd, Yx): New register constraints.
13013         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
13014         Yd conditional register constraint.
13015         (*movtf_internal): Use standard_sse_constant_opcode.
13016         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
13017         Yx conditional register constraint.
13018         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
13019         Yd conditional register constraint.  Use standard_sse_constant_p to
13020         check for valid SSE constants and call standard_sse_constant_opcode to
13021         output SSE insn.
13022         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
13023         constants and call standard_sse_constant_opcode to output SSE insn.
13024         * config/i386/i386.c (ix86_option_ovverride_internal): Set
13025         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
13026         optimize_size is set.
13027         (standard_sse_constant_opcode): Output conditional AVX insn templates.
13028
13029 2011-05-14  Tobias Burnus  <burnus@net-b.de>
13030
13031         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
13032
13033 2011-05-13  Martin Jambor  <mjambor@suse.cz>
13034
13035         * ipa-prop.c (ipa_cst_from_jfunc): New function.
13036         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
13037         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
13038         (evaluate_conditions_for_ipcp_clone): Removed.
13039         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
13040         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
13041         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
13042
13043 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
13044
13045         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
13046         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
13047         lieu of MAY_HAVE_DEBUG_STMTS.
13048         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
13049         debug statements if !MAY_HAVE_DEBUG_STMTS.
13050
13051 2011-05-13  Martin Thuresson  <martint@google.com>
13052
13053         PR gcov-profile/47793
13054         * libgcov.c (gcov_exit): Support relative profile paths.
13055         * doc/invoke.texi (-fprofile-dir): Update for above change.
13056
13057 2011-05-13  Richard Guenther  <rguenther@suse.de>
13058
13059         * gimple.c (gimple_canonical_types_compatible_p): Do not use
13060         type-pair caching, do not compare hashes.
13061
13062 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
13063
13064         PR middle-end/48965
13065         * tree-cfg.c (edge_to_cases_cleanup): Return true.
13066         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
13067
13068 2011-05-13  Kai Tietz  <ktietz@redhat.com>
13069
13070         * gimplify.c (gimplify_expr): Make sure operand is boolified.
13071         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
13072         compatible type for TRUTH_NOT_EXPR.
13073
13074 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
13075
13076         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
13077         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
13078         can_create_pseudo_p ().
13079
13080 2011-05-13  Richard Guenther  <rguenther@suse.de>
13081
13082         PR lto/48978
13083         * gimple.c (iterative_hash_gimple_type): Revert change in
13084         pointer target and function result and argument hashing.
13085
13086 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
13087
13088         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
13089         (*movxf_internal_nointeger): Ditto.
13090         (*movdf_internal_rex64): Ditto.
13091         (*movdf_internal): Ditto.
13092         (*movdf_internal_nointeger): Ditto.
13093         (*movsf_internal): Ditto.
13094         (sincos splitters): Use can_create_pseudo ().
13095
13096 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
13097
13098         * config/i386/i386-opts.h: New.
13099         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
13100         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
13101         ix86_section_threshold): Remove.
13102         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
13103         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
13104         OPT_mbranch_cost_.
13105         (ix86_option_override_internal): Don't decode strings for options
13106         other than -march=, -mtune= and -mfpmath=.  Don't allow for
13107         __attribute__ uses in remaining diagnostics for options with
13108         string arguments.  Don't check for integer arguments being negative.
13109         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
13110         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
13111         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
13112         ix86_branch_cost, ix86_section_threshold): Remove.
13113         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
13114         HeaderInclude.
13115         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
13116         but not Var.
13117         (masm=): Use Enum and Init.
13118         (asm_dialect): New Enum and EnumValue entries.
13119         (mbranch-cost=): Use UInteger.
13120         (mlarge-data-threshold=): Use UInteger and Init.
13121         (mcmodel=): Use Enum and Init.
13122         (cmodel): New Enum and EnumValue entries.
13123         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
13124         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
13125         mregparm=): Use UInteger.
13126         (mstringop-strategy=): Use Enum and Init.
13127         (stringop_alg): New Enum and EnumValue entries.
13128         (mtls-dialect=): Use Enum and Init.
13129         (tls_dialect): New Enum and EnumValue entries.
13130         (mabi=): Use Enum and Init.
13131         (calling_abi): New Enum and EnumValue entries.
13132         (mveclibabi=): Use Enum and Init.
13133         (ix86_veclibabi): New Enum and EnumValue entries.
13134
13135 2011-05-13  Nick Clifton  <nickc@redhat.com>
13136
13137         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
13138         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
13139
13140 2011-05-13  Kai Tietz  <ktietz@redhat.com>
13141
13142         PR middle-end/48984
13143         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
13144         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
13145         (gimple_boolify): Check for cast for boolean_type_node instead for
13146         BOOLEAN_TYPE.
13147
13148 2011-05-13  Richard Guenther  <rguenther@suse.de>
13149
13150         PR tree-optimization/48172
13151         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
13152         multiplying by number of iterations for equal step.
13153         (vect_create_cond_for_alias_checks): Likewise.
13154
13155 2011-05-13  Andreas Schwab  <schwab@redhat.com>
13156
13157         * configure.ac: Use AS_HELP_STRING throughout.
13158         * configure: Regenerate.
13159
13160 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
13161
13162         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
13163         (ix86_emit_restore_regs_using_mov): Likewise.
13164         (ix86_emit_restore_sse_regs_using_mov): Likewise.
13165
13166 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
13167
13168         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
13169         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
13170         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
13171         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
13172         RTX_OK_FOR_OLO10_P): ...here.
13173         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
13174         SYMBOLIC_CONST.
13175
13176 2011-05-12  Kai Tietz  <ktietz@redhat.com>
13177
13178         * gimplify.c (gimple_boolify): Re-boolify expression
13179         arguments even if expression type is of kind BOOLEAN_TYPE.
13180         (gimplify_boolean_expr): Removed.
13181         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
13182         and XOR. Additional take care that we keep expression's type.
13183         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
13184         of TRUTH_AND|OR|XOR_EXPR.
13185
13186 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
13187
13188         PR tree-optimization/48975
13189         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
13190         on all bbs here and free and clear ifc_bbs at the end.
13191
13192 2011-05-12  Richard Guenther  <rguenther@suse.de>
13193
13194         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
13195         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
13196         until after simple checks.
13197         (gimple_types_compatible_p): Likewise.
13198         (iterative_hash_gimple_type): Always hash pointer targets
13199         and function return and argument types.
13200         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
13201         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
13202         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
13203         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
13204         completely in the simple compare section.
13205         (gimple_register_canonical_type): Query the cache again after
13206         registering.
13207
13208 2011-05-12  Richard Guenther  <rguenther@suse.de>
13209
13210         PR tree-optimization/48172
13211         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
13212         the number of iterations from the segment size calculation.
13213         (vect_create_cond_for_alias_checks): Adjust.
13214
13215 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
13216
13217         PR debug/48967
13218         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
13219         if validate_subreg fails.
13220
13221 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
13222
13223         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
13224         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
13225         early.
13226
13227 2011-05-12  DJ Delorie  <dj@redhat.com>
13228
13229         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
13230         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
13231         created builtin into rx_builtins array.
13232         (rx_builtin_decl): New function.
13233         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
13234
13235 2011-05-12  DJ Delorie  <dj@redhat.com>
13236             Nick Clifton  <nickc@redhat.com>
13237
13238         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
13239         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
13240         (rx_is_legitimate_address): Add pre-decrement and post-increment
13241         addressing in HImode and QImode.  Fix test for out of range
13242         REG+INT addressing.
13243         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
13244         (rx_align_for_label): Test label before extracting its usage count.
13245         (rx_adjust_insn_lengths): Fix selection of insn codes.
13246         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
13247
13248 2011-05-11  Jason Merrill  <jason@redhat.com>
13249
13250         * tree.c (type_hash_canon): Use struct tree_type_non_common.
13251
13252 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
13253
13254         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
13255         reindent the subsequent block.
13256
13257 2011-05-11  Satoru Takabayashi  <satorux@google.com>
13258             Paul Pluzhnikov  <ppluzhnikov@google.com>
13259
13260         * doc/install.texi (Configuration): Document --with-linker-hash-style.
13261         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
13262         * config.in: Add LINKER_HASH_STYLE.
13263         * configure.ac: Add --with-linker-hash-style.
13264         * configure: Regenerate.
13265
13266 2011-05-11  Richard Guenther  <rguenther@suse.de>
13267
13268         PR middle-end/48964
13269         * gimple.c (iterative_hash_canonical_type): Fix typo.
13270
13271 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
13272
13273         * config/i386/i386.c (legitimize_tls_address)
13274         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
13275         expanders directly for TARGET_GNU2_TLS.  Determine pic and
13276         __tls_get_addr symbol reference here.  Update call to
13277         gen_tls_global_dynamic_{32,64} for added arguments.
13278         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
13279         expanders directly for TARGET_GNU2_TLS.  Determine
13280         __tls_get_addr symbol reference here.  Update call to
13281         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
13282         unique UNSPEC REG_EQUIV to libcall block.
13283         (ix86_tls_get_addr): Declare static.
13284         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
13285         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
13286         Do not determine pic and __tls_get_addr symbol reference here. Do not
13287         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
13288         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
13289         (tls_global_dynamic_64): Add operand 2.  Do not determine
13290         __tls_get_addr symbol reference here.  Do not call
13291         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
13292         (tls_local_dynamic_base64): Ditto for operand 1.
13293
13294 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
13295
13296         * function.c (expand_function_start): Initialize stack_check_probe_note
13297         only if the generic stack checking mechanism is used.
13298
13299 2011-05-11  Richard Guenther  <rguenther@suse.de>
13300
13301         PR tree-optimization/15256
13302         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
13303         (A & B) | C, combine (A op CST1) op CST2.
13304         (tree_ssa_forward_propagate_single_use_vars): Only bother to
13305         visit assigns that have uses.
13306
13307 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
13308
13309         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
13310         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
13311         (unpack_ts_type_common_value_fields): ...this.  Update comment.
13312         (unpack_value_fields): Adjust for renaming.
13313         (lto_input_ts_type_tree_pointers): Split into...
13314         (lto_input_ts_type_common_tree_pointer): ...this and...
13315         (lto_input_ts_type_non_common_tree_pointers): ...this.
13316         (lto_input_tree_pointers): Adjust for above split.
13317         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
13318         (pack_ts_type_common_value_fields): ...this.  Update comment.
13319         (lto_output_ts_type_tree_pointers): Split into...
13320         (lto_output_ts_type_common_tree_pointers): ...this and...
13321         (lto_output_ts_type_non_common_tree_pointers): ...this.
13322         (lto_output_tree_pointers): Adjust for above split.
13323         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
13324         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
13325         * stor-layout.c (vector_type_mode): Adjust location of mode field.
13326         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
13327         Define.
13328         (struct tree_type): Split into...
13329         (struct tree_type_common: ...this and...
13330         (struct tree_type_with_lang_specific): ...this and...
13331         (struct tree_type_non_common): ...this.  Adjust accessor macros
13332         accordingly.
13333         (TYPE_VALUES_RAW): Define.
13334         (union tree_node): Update for above changes.
13335         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
13336         TS_TYPE_NON_COMMON.
13337         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
13338         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
13339         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
13340         * treestructu.def (TS_TYPE): Remove.
13341         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
13342         Define.
13343
13344 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
13345
13346         PR debug/48159
13347         * tree-ssa.c (reset_debug_uses): New function.
13348         * tree-flow.h (reset_debug_uses): New prototype.
13349         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
13350         * tree-loop-distribution.c (generate_loops_for_partition): Call
13351         reset_debug_uses on the stmts that will be removed.  Keep around
13352         all debug stmts, don't count them as bits in partition bitmap.
13353         (generate_builtin): Don't count debug stmts or labels as bits in
13354         partition bitmap.
13355
13356 2011-05-11  Richard Guenther  <rguenther@suse.de>
13357
13358         * gimple.c (gimple_type_hash_1): Merge with ...
13359         (gimple_type_hash): ... this.
13360         (gtc_visit): Remove mode parameter and simplify accordingly.
13361         (gimple_types_compatible_p_1): Likewise.
13362         (gimple_types_compatible_p): Likewise.
13363         (iterative_hash_gimple_type): Likewise.
13364         (visit): Likewise.
13365         (gimple_type_eq): Adjust.
13366
13367 2011-05-11  Revital Eres  <revital.eres@linaro.org>
13368
13369         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
13370         enters the branch create an anti edge in the opposite direction
13371         to prevent the creation of reg-moves.
13372         * modulo-sched.c: Adjust comment to reflect the fact we are
13373         scheduling closing branch.
13374         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
13375         (stage_count): New field in struct partial_schedule.
13376         (calculate_stage_count): New function.
13377         (normalize_sched_times): Rename to reset_sched_times and handle
13378         incrementing the sched time of the nodes by a constant value
13379         passed as parameter.
13380         (duplicate_insns_of_cycles): Skip closing branch.
13381         (sms_schedule_by_order): Schedule closing branch.
13382         (ps_insn_find_column): Handle closing branch.
13383         (sms_schedule): Call reset_sched_times and adjust the code to
13384         support scheduling of the closing branch.
13385         (ps_insert_empty_row): Update calls to normalize_sched_times
13386         and rotate_partial_schedule functions.
13387
13388 2011-05-11  Richard Guenther  <rguenther@suse.de>
13389
13390         PR middle-end/48953
13391         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
13392
13393 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
13394
13395         * opts.c (finish_options): Move warning settings from process_options.
13396         * toplev.c (process_options): Move warning settings to finish_options.
13397
13398 2011-05-11  Richard Guenther  <rguenther@suse.de>
13399
13400         PR tree-optimization/18041
13401         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
13402         (simplify_bitwise_binary): ... this.  Handle operand conversions
13403         by applying them to the result instead.
13404         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
13405
13406 2011-05-11  Richard Guenther  <rguenther@suse.de>
13407
13408         * gimple.c (gimple_canonical_types_compatible_p): Split out
13409         from gimple_types_compatible_p and friends.  Do not recurse
13410         to pointed-to types.
13411         (gimple_canonical_type_eq): Use it.
13412         (iterative_hash_canonical_type): Split out from
13413         iterative_hash_gimple_type and friends.  Do not recurse
13414         to pointed-to types.
13415         (gimple_canonical_type_hash): Use it, allocate the hash here.
13416
13417 2011-05-11  Revital Eres  <revital.eres@linaro.org>
13418
13419         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
13420         recognizing doloop.
13421
13422 2011-05-11  Revital Eres  <revital.eres@linaro.org>
13423
13424         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
13425         instead of PREV_INSN.
13426
13427 2011-05-11  Revital Eres  <revital.eres@linaro.org>
13428
13429         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
13430         * loop-doloop.c (doloop_condition_get): Likewise.
13431         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
13432         (doloop_end): New.
13433         * config/arm/arm.md (*addsi3_compare0): Remove "*".
13434
13435 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
13436
13437         * tree.def (CASE_LABEL_EXPR): Add an operand.
13438         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
13439
13440 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
13441
13442         * c-decl.c (c_override_global_bindings_to_false): Remove.
13443         (global_bindings_p): Don't check
13444         c_override_global_bindings_to_false.
13445         * c-tree.h (c_override_global_bindings_to_false): Remove.
13446         * c-typeck.c (composite_type): Don't set
13447         c_override_global_bindings_to_false.
13448
13449 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
13450
13451         PR target/48857, 48495
13452         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
13453         (VSX_MODE): Ditto.
13454         (VSX_MOVE_MODE): Ditto.
13455         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
13456         VSX vector types.  Add V2DImode.
13457         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
13458         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
13459         (MODES_TIEABLE_P): Ditto.
13460
13461         * config/rs6000/rs6000.c (rs6000_emit_move): Use
13462         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
13463         VSX_VECTOR_MODE.
13464         (init_cumulative_args): Ditto.
13465         (rs6000_function_arg_boundary): Ditto.
13466         (rs6000_function_arg_advance_1): Ditto.
13467         (rs6000_function_arg): Ditto.
13468         (rs6000_function_ok_for_sibcall): Ditto.
13469         (emit_frame_save): Ditto.
13470         (rs6000_function_value): Ditto.
13471         (rs6000_libcall_value): Ditto.
13472
13473 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
13474
13475         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
13476         i386/darwin-lib.h to $libgcc_tm_file.
13477         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
13478
13479 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
13480
13481         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
13482
13483 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
13484
13485         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
13486         * config/rs6000/rs6000-tables.opt: New file (generated).
13487         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
13488         rs6000/rs6000-tables.opt to extra_options.
13489         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
13490         * config/rs6000/rs6000.c (rs6000_select): Remove.
13491         (processor_target_table): Move contents to rs6000-cpus.def.
13492         (darwin_rs6000_override_options): Check
13493         global_options_set.x_rs6000_cpu_index instead of
13494         rs6000_select[1].string.
13495         (rs6000_option_override_internal): Likewise.
13496         (rs6000_handle_option): Don't assert that global structures are in
13497         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
13498         (rs6000_default_cpu): New variable.
13499         (rs6000_file_start): Set it instead of local default_cpu.  Check
13500         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
13501         global_options_set.x_rs6000_tune_index instead of rs6000_select.
13502         (rs6000_darwin_file_start): Check rs6000_default_cpu and
13503         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
13504         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
13505         rs6000_select): Remove.
13506         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
13507         Remove.
13508         (mcpu=, mtune=): Use Var, Init, Enum and Save.
13509         * config/rs6000/t-rs6000
13510         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
13511         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
13512         global_options_set.x_rs6000_cpu_index instead of
13513         rs6000_select[1].string.
13514         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
13515         global_options_set.x_rs6000_cpu_index instead of
13516         rs6000_select[1].string.
13517
13518 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
13519
13520         * config.gcc (libgcc_tm_file): Define instead of including files
13521         from ../../libgcc/config/ in tm_file.
13522         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
13523         * configure: Regenerate.
13524         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
13525         libgcc_tm.h, cs-libgcc_tm.h): New.
13526         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
13527         (clean): Remove libgcc_tm.h.
13528         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
13529         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
13530         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
13531
13532 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
13533
13534         PR target/48896
13535         * config/avr/avr.c (avr_ret_register): Return unsigned int
13536         instead of int.
13537         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
13538         it to avr_libcall_value.
13539         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
13540         expand_expr.
13541         (avr_expand_binop_builtin): Ditto.
13542         (avr_expand_unop_builtin): Ditto.
13543
13544 2011-05-10  DJ Delorie  <dj@redhat.com>
13545
13546         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
13547         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
13548         * config/rx/rx.c (rx_align_for_label): Add label and
13549         uses_threshold parameters.  Do not align when the label is not
13550         used enough.
13551         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
13552
13553 2011-05-10  Richard Guenther  <rguenther@suse.de>
13554
13555         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
13556         a series of conversions and apply foldings similar to what
13557         fold-const does.
13558         (tree_ssa_forward_propagate_single_use_vars): Call it.
13559
13560 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
13561
13562         PR tree-optimization/48611
13563         PR tree-optimization/48794
13564         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
13565         referenced from RESX or EH_DISPATCH arguments.
13566
13567         PR debug/48928
13568         * dfp.c (decimal_to_decnumber): Handle conversion from
13569         dconst{1,2,m1,half}.
13570
13571 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
13572
13573         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
13574         for !flag_prefer_avx128.
13575         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
13576
13577 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
13578
13579         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
13580         (fold_ternary_loc): Use expr_location_or.
13581
13582 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
13583
13584         PR debug/48853
13585         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
13586         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
13587         Pmode and mem_mode is not VOIDmode.
13588
13589 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
13590
13591         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
13592         TYPE_QUAL_RESTRICT): Convert to enum.
13593
13594 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
13595
13596         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
13597         (const_pow2_1_to_8_operand): Ditto.
13598         (const_pow2_1_to_128_operand): Ditto.
13599         (const_pow2_1_to_32768_operand): Ditto.
13600         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
13601         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
13602         in insn constraint to check integer value of operand 3.
13603         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
13604
13605         (PINSR_MODE): New mode iterator.
13606         (sse2p4_1): New mode attribute.
13607         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
13608         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
13609         iterator.  Use const_int_operand instead of
13610         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
13611         exact_log2 in insn constraint to check integer value of operand 3.
13612
13613 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
13614
13615         * config/i386/sse.md (blendbits): Remove mode attribute.
13616         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
13617         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
13618         Check integer value of operand 3 in insn constraint.
13619
13620 2011-05-09  Richard Guenther  <rguenther@suse.de>
13621
13622         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
13623         for diagnostics.
13624         (lto_symtab_merge): Likewise.  Do not register types here.
13625         (lto_symtab_merge_decls_2): Likewise.
13626         (lto_symtab_merge_decls_1): Likewise.
13627         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
13628         * gimple.c (enum gtc_mode): Declare.
13629         (gimple_types_compatible_p): Make static.
13630
13631 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13632
13633         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
13634         temporary register to match Pmode.
13635
13636 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
13637
13638         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
13639         and *vec_concatv4si_1_avx.
13640
13641 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
13642
13643         PR rtl-optimization/48927
13644         * ira-conflicts.c (commutative_constraint_p): Use
13645         recog_data.alternative_enabled_p to disable alternatives where
13646         "enabled" attribute is false.
13647         (get_dup_num): Ditto.
13648         * ira-lives.c (single_reg_class): Ditto.
13649         (ira_implicitly_set_insn_hard_regs): Ditto.
13650
13651 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
13652
13653         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
13654         (dataflow_set_preserve_mem_locs): Likewise.
13655
13656 2011-05-09  Philipp Thomas  <pth@suse.de>
13657
13658         * config/mep/mep.c (mep_validate_vliw): Syntax description
13659         should not be translated.
13660
13661 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
13662
13663         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
13664         * config/mips/mips-tables.opt: New file (generated).
13665         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
13666         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
13667         MIPS_ARCH_OPTION_NATIVE): Define.
13668         * config/mips/mips.c (mips_cpu_info_table): Move contents to
13669         mips-cpus.def.
13670         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
13671         mips_parse_cpu): Remove.
13672         (mips_cpu_info_from_opt, mips_default_arch): New.
13673         (mips_handle_option): Don't assert that global structures are in
13674         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
13675         (mips_option_override): Use new variables and functions to set
13676         state of these options.  Use strcmp to check for individual CPU names.
13677         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
13678         definition.
13679         * config/mips/mips.opt (march=): Use ToLower and Enum.
13680         (mips): Use ToLower, Enum and Var.
13681         (mtune=): Use ToLower and Enum.
13682         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
13683
13684 2011-05-08  Jan Hubicka  <jh@suse.cz>
13685
13686         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
13687         Arrange type pairs to be UID ordered.
13688         (gimple_lookup_type_leader): Make inline.
13689
13690 2011-05-09  Nick Clifton  <nickc@redhat.com>
13691
13692         PR target/48899
13693         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
13694         PROCESSOR_DEFAULT.
13695
13696         PR target/48897
13697         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
13698         variable 's'.
13699
13700 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
13701
13702         * combine.c (simplify_comparison): Abstract out parts into...
13703         (simplify_compare_const): ... new function.
13704         (try_combine): Generalize parallel arithmetic/compare combining
13705         to call simplify_compare_const() and CANONICALIZE_COMPARE().
13706
13707 2011-05-08  Jan Hubicka  <jh@suse.cz>
13708
13709         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
13710         (cgraph_create_virtual_clone): Call hooks once virtual clone
13711         is finished.
13712         * cgraph.h (cgraph_clone_node): Update prototype.
13713         * ipa-cp.c (ipcp_estimate_growth): Use
13714         estimate_ipcp_clone_size_and_time.
13715         * ipa-inline-transform.c (clone_inlined_nodes): Update.
13716         * lto-cgraph.c (input_node): Update.
13717         * ipa-inline.c (recursive_inlining): Update.
13718         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
13719         (evaluate_conditions_for_known_args): Break out from ...
13720         (evaluate_conditions_for_edge): ... here.
13721         (evaluate_conditions_for_ipcp_clone): New function.
13722         (inline_node_duplication_hook): Update clone summary based
13723         on parameter map.
13724         (estimate_callee_size_and_time): Rename to ...
13725         (estimate_node_size_and_time): take NODE instead of EDGE;
13726         take POSSIBLE_TRUTHS as argument.
13727         (estimate_callee_size_and_time): Update.
13728         (estimate_ipcp_clone_size_and_time): New function.
13729         (do_estimate_edge_time): Update.
13730
13731 2011-05-08  Richard Guenther  <rguenther@suse.de>
13732
13733         PR middle-end/48908
13734         PR middle-end/48905
13735         * expmed.c (expand_shift_1): Compute adjusted constant shift
13736         amount manually.
13737
13738 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
13739
13740         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
13741
13742 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
13743
13744         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
13745
13746 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
13747
13748         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
13749
13750 2011-05-07  Jan Hubicka  <jh@suse.cz>
13751
13752         * ipa-inline-transform.c (inline_call): Account when program size
13753         decreases.
13754         * ipa-inline.c (relative_time_benefit): New function.
13755         (edge_badness): Reorganize to be power 2 based; fix thinko when
13756         computing badness for negative growth; update comments to match
13757         reality; better dumps.
13758
13759 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
13760
13761         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
13762         type to bool and adjust comment.
13763         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
13764         (fold_mathfn_compare): Remove calls to global_bindings_p.
13765         (fold_inf_compare): Likewise.
13766         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
13767         * c-tree.h (global_bindings_p): Adjust prototype.
13768         * c-decl.c (global_bindings_p): Return bool and simplify.
13769
13770 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
13771
13772         PR tree-optimization/48837
13773         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
13774         when accumulator transformation is performed.
13775
13776 2011-05-06  Jan Hubicka  <jh@suse.cz>
13777
13778         * i386.h (ix86_tune_indices): Add
13779         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
13780         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
13781         * i386.c (initial_ix86_tune_features): Add
13782         X86_SOFTARE_PREFETCHING_BENEFICIAL.
13783         (software_prefetching_beneficial_p): Remove predicate.
13784         (ix86_option_override_internal): Use new macro.
13785
13786 2011-05-06  Jan Hubicka  <jh@suse.cz>
13787
13788         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
13789
13790 2011-05-06  Jan Hubicka  <jh@suse.cz>
13791
13792         * cgraph.c (cgraph_add_thunk): Create real function node instead
13793         of alias node; finalize it and mark needed/reachale; arrange visibility
13794         to be right and add it into the corresponding same comdat group list.
13795         (dump_cgraph_node): Dump thunks.
13796         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
13797         cgraph_function_with_gimple_body_p,
13798         cgraph_first_function_with_gimple_body,
13799         cgraph_next_function_with_gimple_body): New functions.
13800         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
13801         New macros.
13802         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
13803         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
13804         * cgraphunit.c (cgraph_finalize_function): Only look into possible
13805         devirtualization when optimizing.
13806         (verify_cgraph_node): Verify thunks.
13807         (cgraph_analyze_function): Analyze thunks.
13808         (cgraph_mark_functions_to_output): Output thunks only in combination
13809         with function they are assigned to.
13810         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
13811         alias into normal node.
13812         (assemble_thunks): New functoin.
13813         (cgraph_expand_function): Use it.
13814         * lto-cgraph.c (lto_output_node): Stream thunks.
13815         (input_overwrite_node): Stream in thunks.
13816         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
13817         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
13818         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
13819         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
13820         (inline_analyze_function): Do not care about thunk jump functions.
13821         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
13822         * ipa-prop.c (ipa_prop_write_jump_functions): Use
13823         cgraph_function_with_gimple_body_p.
13824         * passes.c (do_per_function_toporder): Use
13825         cgraph_function_with_gimple_body_p.
13826         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
13827         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
13828         (function_called_by_processed_nodes_p): Likewise.
13829
13830 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
13831
13832         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
13833         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
13834         entries.
13835         (mabi=): Replace with separate entries for mabi=altivec,
13836         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
13837         mabi=ieeelongdouble and mabi=ibmlongdouble.
13838         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
13839         check for -mabi=spe without SPE ABI support here.
13840         (rs6000_handle_option): Replace OPT_mabi_ handling with
13841         OPT_mabi_altivec and OPT_mabi_spe handling.
13842
13843 2011-05-06  Cary Coutant  <ccoutant@google.com>
13844
13845         * dwarf2out.c (contains_subprogram_definition): New function.
13846         (should_move_die_to_comdat): Call it.
13847
13848 2011-05-06  Jeff Law  <law@redhat.com>
13849
13850         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
13851         remove_ctrl_stmt_and_useless_edges.
13852         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
13853         (fixup_template_block, thread_single_edge): Likewise.
13854         (mark_threaded_blocks): Use THREAD_TARGET.
13855
13856 2011-05-06  Alan Modra  <amodra@gmail.com>
13857
13858         PR target/48900
13859         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
13860         const0_rtx as the arg to the dummy __tls_get_addr libcall.
13861
13862 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
13863
13864         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
13865         constraint modifier to "r".
13866
13867 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
13868
13869         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
13870         fall through for OPT_mcmodel_.
13871
13872 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13873
13874         * config/s390/s390.c (s390_asm_trampoline_template): Comment
13875         instruction sizes.
13876         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
13877
13878 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13879
13880         PR target/47930
13881         * config/arm/arm.opt (marm): Document it.
13882         (mthumb): Reject negative variant.
13883
13884 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
13885
13886         PR target/48898
13887         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
13888         Fix typo in "ccvt" variable name.
13889
13890 2011-05-06  Tristan Gingold  <gingold@adacore.com>
13891
13892         PR target/48895
13893         * config/vms/vms-ar.c (main): Remove cwd variable.
13894
13895 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
13896
13897         PR debug/48902
13898         * var-tracking.c (prepare_call_arguments): Move else before #endif.
13899
13900 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
13901
13902         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
13903         * gimplify.c (gimplify_switch_expr): Likewise.
13904         * omp-low.c (expand_omp_sections): Likewise.
13905         * tree-eh.c (lower_try_finally_switch): Likewise.
13906         (lower_eh_dispatch): Likewise.
13907         * tree.h (build_case_label): Declare.
13908         * tree.c (build_case_label): Define.
13909
13910 2011-05-05  Jason Merrill  <jason@redhat.com>
13911
13912         PR c++/40975
13913         * tree-inline.c (copy_tree_r): Use copy_statement_list.
13914         (copy_statement_list): Don't recurse.
13915         * stor-layout.c (copy_self_referential_tree_r): Don't allow
13916         STATEMENT_LIST.
13917
13918 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
13919
13920         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
13921         through from -mfpu= handling.
13922         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
13923
13924 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
13925
13926         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
13927         POST_MODIFY.
13928
13929 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
13930
13931         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
13932         for 11.31.
13933         (hppa[12]*-*-hpux11*): Ditto.
13934         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
13935         * config/ia64/hpux-unix2003.h: New.
13936         * config/pa/pa-hpux1131.opt: New.
13937         * config/pa/pa-hpux1131.h: New.
13938         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
13939         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
13940         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
13941
13942 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
13943
13944         PR debug/48853
13945         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
13946         instead of mode as 3rd argument to recursive call.
13947         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
13948         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
13949         VOIDmode.
13950         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
13951         don't give up if mode is Pmode and mem_mode is not VOIDmode.
13952         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
13953         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
13954
13955 2011-05-05  Julian Brown  <julian@codesourcery.com>
13956
13957         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
13958         parenthesis in D-register case.
13959
13960 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
13961
13962         * opt-functions.awk (var_type_struct): Handle Enum options.
13963         * optc-gen.awk: Don't check range of variables of character type.
13964         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
13965         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
13966         rs6000_sdata_name, rs6000_explicit_options): Remove.
13967         (rs6000_option_override_internal): Check for -malign-power here.
13968         Use global_options_set instead of rs6000_explicit_options.
13969         (rs6000_parse_fpu_option): Remove.
13970         (rs6000_handle_option): Access variables via opts and opts_set
13971         pointers.  Use error_at and warning_at.  Add fall-through
13972         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
13973         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
13974         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
13975         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
13976         here.  Don't use rs6000_parse_fpu_option.
13977         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
13978         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
13979         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
13980         (mrecip=): Use Var.
13981         (mspe): Use Var and Save.
13982         (mtraceback=): Use Enum and Var.
13983         (rs6000_traceback_type): New Enum and EnumValue entries.
13984         (mfloat-gprs=): Use Enum, Var and Save.
13985         (rs6000_float_gprs): New Enum and EnumValue entries.
13986         (mlong-double-): use Var and Save.
13987         (msched-costly-dep=, minsert-sched-nops=): Use Var.
13988         (malign-): Use Enum and Var.
13989         (rs6000_alignment_flags): New Enum and EnumValue entries.
13990         (mfpu=): Use Enum.
13991         (fpu_type_t): New Enum and EnumValue entries.
13992         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
13993         global_options_set instead of rs6000_explicit_options.
13994         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
13995         global_options_set instead of rs6000_explicit_options.
13996         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
13997         global_options_set instead of rs6000_explicit_options.
13998         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
13999         global_options_set instead of rs6000_explicit_options.
14000         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
14001         global_options_set instead of rs6000_explicit_options.
14002         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
14003         global_options_set instead of rs6000_explicit_options.
14004         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
14005         definition.
14006         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
14007         global_options_set instead of rs6000_explicit_options.
14008         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
14009         (rs6000_cmodel): New Enum and EnumValue entries.
14010         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
14011         global_options_set instead of rs6000_explicit_options.
14012         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
14013         (mtls-size=): Use Enum and Var.
14014         (rs6000_tls_size): New Enum and EnumValue entries.
14015
14016 2011-05-05  Michael Matz  <matz@suse.de>
14017
14018         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
14019         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
14020         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
14021         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
14022         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
14023         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
14024         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
14025         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
14026         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
14027         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
14028         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
14029         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
14030         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
14031         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
14032         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
14033         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
14034
14035 2011-05-05  Richard Guenther  <rguenther@suse.de>
14036
14037         * expmed.c (expand_variable_shift): Rename to ...
14038         (expand_shift_1): ... this.  Take an expanded shift amount.
14039         For rotates recurse directly not building trees for the shift amount.
14040         (expand_variable_shift): Wrap around expand_shift_1.
14041         (expand_shift): Adjust.
14042
14043 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
14044
14045         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
14046
14047 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
14048
14049         * tree.h (get_pending_sizes): Remove prototype.
14050         (put_pending_size): Likewise.
14051         (put_pending_sizes): Likewise.
14052         * stor-layout.c (pending_sizes): Delete.
14053         (get_pending_sizes): Likewise.
14054         (put_pending_size): Likewise.
14055         (put_pending_sizes): Likewise.
14056         (variable_size): Do not call put_pending_size and tidy up.
14057         * function.h (struct function): Remove dont_save_pending_sizes_p.
14058         * lto-streamer-in.c (input_function): Do not stream it.
14059         * lto-streamer-out.c (output_function): Likewise.
14060         * tree-inline.c (initialize_cfun): Do not copy it.
14061         * c-decl.c (store_parm_decls): Do not set it.
14062         * omp-low.c (create_task_copyfn): Likewise.
14063         * tree-optimize.c (tree_rest_of_compilation): Likewise.
14064
14065 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
14066
14067         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
14068         conditions.
14069         (*movdf_internal): Ditto.
14070         (*movdf_internal_nointeger): Ditto.
14071         (*movsf_internal): Ditto.
14072
14073 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
14074
14075         * c-decl.c (finish_decl): Don't call get_pending_sizes.
14076         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
14077         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
14078         (c_variable_size): Remove.
14079         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
14080         call put_pending_sizes.
14081         (get_parm_info): Add parameter expr.  Use it to set
14082         arg_info->pending_sizes.
14083         (store_parm_decls): Use arg_info->pending_sizes instead or calling
14084         get_pending_sizes.
14085         * c-parser.c (c_parser_parms_declarator): Update call to
14086         c_parser_parms_list_declarator.
14087         (c_parser_parms_list_declarator): Take parameter expr.  Update
14088         call to push_parm_decl.  Update recursive call.  Don't call
14089         get_pending_sizes.  Update calls to get_parm_info.
14090         (c_parser_objc_method_definition): Update calls to
14091         c_parser_objc_method_decl and objc_start_method_definition.
14092         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
14093         (c_parser_objc_method_decl): Add parameter expr.  Update call to
14094         grokparm.
14095         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
14096         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
14097         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
14098
14099 2011-05-05  Michael Hope  <michael.hope@linaro.org>
14100
14101         PR pch/45979
14102         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
14103         __ARM_EABI__ hosts.
14104
14105 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14106
14107         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
14108         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
14109         (spu_output_mi_thunk): New function.
14110
14111 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14112
14113         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
14114         targetm.asm_out.print_operand.
14115         * config/sol2.c: Include target.h.
14116
14117 2011-05-04  Jan Hubicka  <jh@suse.cz>
14118
14119         * ipa-inline.c (reset_edge_caches): New function.
14120         (update_caller_keys): Add check_inlinablity_for; do not
14121         reset edge caches; remove now unnecesary loop.
14122         (update_callee_keys): Add comments; reset node_growth_cache of callee.
14123         (update_all_callee_keys): Likewise.
14124         (inline_small_functions): Sanity check cache; update code
14125         recomputing it.
14126
14127 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
14128
14129         PR rtl-optimization/47612
14130         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
14131         as the last insn of the sequence to be moved.
14132
14133 2011-05-04  Tobias Burnus  <burnus@net-b.de>
14134
14135         PR fortran/48864
14136         * doc/invoke.texi (Ofast): Document that it
14137         enables Fortran's -fno-protect-parens.
14138
14139 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
14140
14141         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
14142
14143 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
14144
14145         * stor-layout.c (variable_size): Do not issue errors.
14146
14147 2011-05-04  Richard Guenther  <rguenther@suse.de>
14148
14149         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
14150         for array-ref indices.
14151         (tree_coverage_counter_addr): Likewise.
14152         (build_fn_info_type): Use size_int for index types.
14153         (build_gcov_info): Likewise.
14154
14155 2011-05-04  Richard Guenther  <rguenther@suse.de>
14156
14157         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
14158         to build_int_cst.
14159         * c-typeck.c (really_start_incremental_init): Use bitsize_int
14160         for constructor indices.
14161         (push_init_level): Likewise.
14162
14163 2011-05-04  Richard Guenther  <rguenther@suse.de>
14164
14165         * explow.c (promote_mode): Move variable declarations before code.
14166
14167 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
14168
14169         * tree.h (build_function_type_array): Declare.
14170         (build_varargs_function_type_array): Declare.
14171         (build_function_type_vec, build_varargs_function_type_vec): Define.
14172         * tree.c (build_function_type_array_1): New function.
14173         (build_function_type_array): New function.
14174         (build_varargs_function_type_array): New function.
14175
14176 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
14177
14178         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
14179         before setting STMT_VINFO_TYPE.
14180
14181 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14182
14183         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
14184         instead of spu_pass_by_reference.
14185
14186 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14187
14188         * calls.c (emit_library_call_value_1): Invoke
14189         promote_function_mode hook on libcall arguments.
14190         * explow.c (promote_function_mode, promote_mode): Handle TYPE
14191         argument being NULL.
14192         * targhooks.c (default_promote_function_mode): Lisewise.
14193         * config/s390/s390.c (s390_promote_function_mode): Likewise.
14194         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
14195
14196         * doc/tm.texi: Document that TYPE argument might be NULL.
14197
14198 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
14199
14200         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
14201
14202 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
14203
14204         From Bernd Schmidt
14205         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
14206
14207 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14208
14209         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
14210         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
14211         Move ...
14212         * mips-tfile.c: ... here.
14213         Don't include coretypes.h, tm.h, filenames.h.
14214         (saber_stop): Remove definition and all calls.
14215         [__SABER__]: Remove.
14216         (__LINE__): Remove default.
14217         (Size_t, Ptrdiff_t): Remove definitions.
14218         Replace by size_t, ptrdiff_t.
14219         [!MIPS_DEBUGGING_INFO]: Remove.
14220         (SHASH_SIZE, THASH_SIZE): Remove defaults.
14221         (progname): Add const.
14222         (STATIC): Remove.
14223         Replace all uses by static.
14224         (ALIGN_SYMTABLE_OFFSET): Remove default.
14225         * mips-tdump.c: Don't include coretypes.h, tm.h.
14226         Remove !MIPS_IS_STAB guard.
14227         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
14228         $(TM_H), filenames.h dependencies.
14229         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
14230
14231 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
14232
14233         From Jie Zhang
14234         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
14235         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
14236
14237 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
14238
14239         From Bernd Schmidt
14240         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
14241         account and save/restore RETS.
14242         (PROFILE_BEFORE_PROLOGUE): Define.
14243         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
14244         the push insn to use predecrement.
14245
14246 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
14247
14248         From Jie Zhang
14249         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
14250
14251 2011-05-04  Nick Clifton  <nickc@redhat.com>
14252
14253         * config/mn10300/mn10300.c: Include cfgloop.h.
14254         (DUMP): New macro.
14255         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
14256         Lcc or a FLcc insn into the instruction stream.
14257         (mn10300_block_contains_call): New function.  Returns true if the
14258         given basic block contains a CALL insn.
14259         (mn10300_loop_contains_call_insn): New function.  Returns true if
14260         the given loop contains a CALL insn.
14261         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
14262         to use the SETLB and Lcc or FLcc insns.
14263         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
14264         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
14265         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
14266         disable the SETLB optimization.
14267         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
14268         __SETLB__ or __NO_SETLB__.
14269         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
14270         (movsf_internal): Handle MDR register.
14271         (cmpsi): Make visible.
14272         (setlb): New pattern.
14273         (Lcc): New pattern.
14274         (FLcc): New pattern.
14275
14276 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
14277
14278         PR target/48860
14279         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
14280         for reg<->xmm moves.
14281         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
14282         (vec_concatv2di_rex64_sse): Ditto.
14283         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
14284         (*vec_extractv2di_1_rex64): Ditto.
14285
14286         Revert:
14287         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
14288
14289         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
14290         reg<->xmm moves.
14291         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
14292
14293 2011-05-04  Richard Guenther  <rguenther@suse.de>
14294
14295         * tree.h (int_const_binop): Remove notrunc argument.
14296         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
14297         create integer constants that are properly truncated.
14298         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
14299         (const_binop): Remove zero notrunc argument to int_const_binop.
14300         (size_binop_loc): Likewise.
14301         (fold_div_compare): Likewise.
14302         (maybe_canonicalize_comparison_1): Likewise.
14303         (fold_comparison): Likewise.
14304         (fold_binary_loc): Likewise.
14305         (multiple_of_p): Likewise.
14306         * expr.c (store_constructor): Likewise.
14307         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
14308         (maybe_fold_stmt_addition): Likewise.
14309         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
14310         * stor-layout.c (layout_type): Likewise.
14311         * tree-data-ref.c (tree_fold_divides_p): Likewise.
14312         * tree-sra.c (build_ref_for_offset): Likewise.
14313         (build_user_friendly_ref_for_offset): Likewise.
14314         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
14315         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
14316         * tree-ssa-loop-niter.c (inverse): Likewise.
14317         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
14318         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
14319         * tree-switch-conversion.c (check_range): Likewise.
14320         (build_constructors): Likewise.
14321         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
14322         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
14323         (extract_range_from_assert): Likewise.
14324         (vrp_int_const_binop): Likewise.
14325         (extract_range_from_binary_expr): Likewise.
14326         (extract_range_from_unary_expr): Likewise.
14327         (check_array_ref): Likewise.
14328         (find_case_label_range): Likewise.
14329         (simplify_div_or_mod_using_ranges): Likewise.
14330         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
14331         comparing case labels for merging.
14332
14333 2011-05-03  Mark Wielaard  <mjw@redhat.com>
14334
14335         * dwarf2out.c (debug_str_hash_forced): Removed.
14336         (gen_label_for_indirect_string): Removed.
14337         (get_debug_string_label): Removed.
14338         (AT_string_form): Generate label directly.
14339         (output_indirect_string): Test indirect_string_node for
14340         DW_FORM_strp instead of checking label and refcount.
14341         (prune_indirect_string): Removed.
14342         (prune_unused_types): Don't check debug_str_hash_forced or
14343         call prune_indirect_string.
14344
14345 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
14346
14347         PR other/48093
14348         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
14349
14350 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
14351
14352         PR debug/47994
14353         PR debug/47919
14354         * combine.c (try_combine): Skip debug insns at m_split tests.
14355
14356 2011-04-26  Mark Wielaard  <mjw@redhat.com>
14357
14358         PR42288
14359         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
14360         when info_section_emitted.
14361
14362 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
14363
14364         * config/mips/mips-opts.h: New.
14365         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
14366         to mips-opts.h.
14367         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
14368         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
14369         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
14370         via opts pointer.
14371         * config/mips/mips.h (enum mips_code_readable_setting): Move to
14372         mips-opts.h.
14373         (mips_abi, mips_code_readable): Don't declare.
14374         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
14375         (mabi=): Use Enum and Var.
14376         (mips_abi): New Enum and EnumValue entries.
14377         (mcode-readable=): Use Enum and Var.
14378         (mips_code_readable_setting): New Enum and EnumValue entries.
14379         (mr10k-cache-barrier=): Use Enum and Var.
14380         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
14381
14382 2011-05-03  Jan Hubicka  <jh@suse.cz>
14383
14384         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
14385         replace hash by pointer map.
14386         (cgraph_node_set_element_def, cgraph_node_set_element,
14387         const_cgraph_node_set_element, varpool_node_set_element_def,
14388         varpool_node_set_element, const_varpool_node_set_element): Remove.
14389         (free_cgraph_node_set, free_varpool_node_set): New function.
14390         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
14391         * tree-emutls.c: Free varpool node set.
14392         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
14393         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
14394         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
14395         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
14396         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
14397         Move here from ipa.c; implement using pointer_map
14398         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
14399         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
14400         debug_cgraph_node_set, varpool_node_set_new,
14401         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
14402         dump_varpool_node_set, debug_varpool_node_set):
14403         Move to ipa-uitls.c.
14404         * passes.c (ipa_write_summaries): Update.
14405
14406 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14407
14408         From Mike Frysinger:
14409         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
14410         bf542/bf544/bf547/bf548/bf549.
14411
14412 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
14413
14414         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
14415
14416 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14417
14418         From Bernd Schmidt:
14419         * config/bfin/bfin.md (MOVCC): New mode_macro.
14420         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
14421         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
14422         comments from generated assembly.
14423
14424 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14425
14426         From Bernd Schmidt
14427         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
14428         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
14429         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
14430         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
14431         * config/bfin/lib1funcs.asm (___muldi3): New function.
14432
14433 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14434
14435         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
14436         build_function_type_list instead of build_function_type.
14437         Rearrange initialization of `args' to do so.
14438
14439 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14440
14441         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
14442         instead of build_function_type.
14443
14444 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14445
14446         * config/rs6000/rs6000.c (spe_init_builtins): Call
14447         build_function_type_list instead of build_function_type.
14448         (paired_init_builtins, altivec_init_builtins): Likewise.
14449         (builtin_function_type): Likewise.
14450
14451 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14452
14453         * config/sh/sh.c (sh_media_init_builtins): Call
14454         build_function_type_list instead of build_function_type.
14455
14456 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14457
14458         * config/sparc/sparc.c (sparc_file_end): Call
14459         build_function_type_list instead of build_function_type.
14460
14461 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14462
14463         * config/alpha/alpha.c (alpha_init_builtins): Call
14464         build_function_type_list instead of build_function_type.
14465
14466 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14467
14468         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
14469         build_function_type_list instead of build_function_type.
14470
14471 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14472
14473         * config/iq2000/i2000.c (iq2000_init_builtins): Call
14474         build_function_type_list instead of build_function_type.
14475         Delete `endlink' variable.
14476
14477 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14478
14479         * config/avr/avr.c (avr_init_builtins): Call
14480         build_function_type_list instead of build_function_type.
14481
14482 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14483
14484         * config/picochip/picochip.c (picochip_init_builtins): Call
14485         build_function_type_list instead of build_function_type.
14486         Delete `endlink' variable.
14487
14488 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
14489
14490         * config/bfin/bfin.c (bfin_init_builtins): Call
14491         build_function_type_list instead of build_function_type.
14492
14493 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14494
14495         From Bernd Schmidt
14496         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
14497         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
14498
14499 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14500
14501         From Jie Zhang:
14502         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
14503         libbffastfp overrides libgcc when -mfast-fp.
14504
14505 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14506
14507         Originally from Bernd Schmidt
14508         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
14509         * config/bfin/bfin.c (override_options): Test it and error if
14510         TARGET_FDPIC.
14511
14512 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
14513
14514         Originally From Bernd Schmidt
14515         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
14516         FD-PIC.
14517
14518 2011-05-03  Jeff Law  <law@redhat.com>
14519
14520         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
14521         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
14522         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
14523         than accessing AUX field directly.  Free the AUX field before
14524         clearing it.
14525         (thread_block, thread_through_loop_header): Likewise.
14526         (thread_single_edge, mark_threaded_blocks): Likewise.
14527         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
14528         (register_jump_thread): Do not attempt to thread to a NULL edge.
14529
14530 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
14531
14532         * function.c (init_function_start): Call decide_function_section.
14533         * varasm.c (decide_function_section): New function.
14534         (assemble_start_function): When not using
14535         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
14536         or first_function_block_is_cold.
14537         * rtl.h (decide_function_section): Declare.
14538
14539 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
14540             Jakub Jelinek  <jakub@redhat.com>
14541
14542         PR target/48774
14543         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
14544         only succeed if req_mode is the same as set_mode.
14545
14546 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
14547
14548         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
14549         * genemit.c (gen_exp): Handle RETURN.
14550         * emit-rtl.c (verify_rtx_sharing): Likewise.
14551         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
14552         * rtl.c (copy_rtx): RETURN is shared.
14553         * rtl.h (enum global_rtl_index): Add GR_RETURN.
14554         (ret_rtx): New.
14555         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
14556         * config/s390/s390.c (s390_emit_epilogue): Likewise.
14557         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
14558         * config/cris/cris.c (cris_expand_return): Likewise.
14559         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
14560         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
14561         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
14562         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
14563         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
14564         Likewise.
14565         * config/v850/v850.c (expand_epilogue): Likewise.
14566         * config/bfin/bfin.c (bfin_expand_call): Likewise.
14567         * config/arm/arm.md (epilogue): Likewise.
14568         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
14569         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
14570         variable to ret_reg.
14571
14572 2011-05-03  Richard Guenther  <rguenther@suse.de>
14573
14574         PR lto/48846
14575         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
14576         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
14577         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
14578
14579 2011-05-03  Richard Guenther  <rguenther@suse.de>
14580
14581         * c-decl.c (grokdeclarator): Instead of looking at
14582         TREE_OVERFLOW check if the constant fits in the index type.
14583
14584 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
14585
14586         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
14587         (vec_store_lanes<mode><mode>): Likewise.
14588
14589 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
14590
14591         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
14592         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
14593         convert_optab_index values.
14594         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
14595         * genopinit.c (optabs): Initialize the new optabs.
14596         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
14597         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
14598         (expand_STORE_LANES): New functions.
14599         * tree.h (build_array_type_nelts): Declare.
14600         * tree.c (build_array_type_nelts): New function.
14601         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
14602         (vect_model_load_cost): Likewise.
14603         (vect_store_lanes_supported, vect_load_lanes_supported)
14604         (vect_record_strided_load_vectors): Declare.
14605         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
14606         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
14607         (vect_transform_strided_load): Split out statement recording into...
14608         (vect_record_strided_load_vectors): ...this new function.
14609         * tree-vect-stmts.c (create_vector_array, read_vector_array)
14610         (write_vector_array, create_array_ref): New functions.
14611         (vect_model_store_cost): Add store_lanes_p argument.
14612         (vect_model_load_cost): Add load_lanes_p argument.
14613         (vectorizable_store): Try to use store-lanes functions for
14614         interleaved stores.
14615         (vectorizable_load): Likewise load-lanes and loads.
14616         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
14617         to vect_model_store_cost.
14618         (vect_build_slp_tree): Likewise vect_model_load_cost.
14619
14620 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
14621
14622         * hooks.h (hook_bool_mode_uhwi_false): Declare.
14623         * hooks.c (hook_bool_mode_uhwi_false): New function.
14624         * target.def (array_mode_supported_p): New hook.
14625         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
14626         * doc/tm.texi: Regenerate.
14627         * stor-layout.c (mode_for_array): New function.
14628         (layout_type): Use it.
14629         * config/arm/arm.c (arm_array_mode_supported_p): New function.
14630         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
14631
14632 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
14633
14634         PR target/48723
14635         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
14636         for -fstack-check if the size to allocate is negative.
14637
14638 2011-05-02  Lawrence Crowl  <crowl@google.com>
14639
14640         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
14641         (timevar_cond_start): New for starting a timer only when it is not
14642         already running.
14643         (timevar_cond_stop): New for stopping a timer when it was not already
14644         running.
14645
14646         * timevar.c (timevar_stop): Enable start/stop timers to start again.
14647         (timevar_cond_start): New as above.
14648         (timevar_cond_stop): New as above.
14649
14650         * timevar.def: Add start/stop timers for compiler phases,
14651         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
14652         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
14653         and TV_PHASE_FINALIZE.
14654         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
14655         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
14656         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
14657         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
14658         Make unused TV_OVERLOAD into a start/stop timer.
14659
14660         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
14661         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
14662         to indicate that they are start/stop timers.
14663
14664         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
14665         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
14666         Move initialization to do_compile.
14667         (do_compile): Add initialization from above.
14668         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
14669
14670         * c-decl.c (c_write_global_declarations): Add start/stop of
14671         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
14672
14673         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
14674         or TV_PARSE_INLINE, as appropriate.
14675         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
14676         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
14677
14678 2011-05-02  Jason Merrill  <jason@redhat.com>
14679
14680         PR c++/40975
14681         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
14682
14683 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
14684
14685         PR c/35445
14686         * c-decl.c (finish_decl): Only create a composite if the types are
14687         compatible.
14688
14689 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
14690
14691         * config/fr30/fr30-protos.h (Mmode): Don't define.
14692         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
14693         definition where used.
14694         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
14695         define.  Expand definitions where used.
14696         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
14697         Expand definitions where used.
14698         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
14699         rx_function_arg, rx_function_arg_advance,
14700         rx_function_arg_boundary): Expand definitions of those macros.
14701         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
14702         definition where used.
14703
14704 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
14705
14706         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
14707         reg<->xmm moves.
14708         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
14709         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
14710         with *movv2sf_internal_rex64_avx.
14711         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
14712         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
14713         Use %v prefix in insn mnemonic to handle TARGET_AVX.
14714         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
14715         "vex" in "prefix" attribute calculation.
14716         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
14717
14718 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
14719
14720         PR target/47951
14721         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
14722         inputs match the output.
14723
14724 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
14725
14726         PR target/47955
14727         * config/m68k/m68k.c (m68k_expand_prologue): Set
14728         current_function_static_stack_size.
14729
14730 2011-05-02   Jan Hubicka  <jh@suse.cz>
14731
14732         * lto-streamer.c (lto_streamer_cache_insert_1,
14733         lto_streamer_cache_lookup, lto_streamer_cache_create,
14734         lto_streamer_cache_delete): Use pointer map instead of hashtable.
14735         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
14736
14737 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
14738
14739         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
14740         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
14741         config/m68k/t-opts: New files.
14742         * config/m68k/m68k-tables.opt: New file (generated).
14743         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
14744         extra_options and m68k/t-opts to tmake_file.
14745         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
14746         (all_isas): Initialize using m68k-isas.def.
14747         (all_microarchs): Initialize using m68k-microarchs.def.
14748         (m68k_find_selection): Remove.
14749         (m68k_handle_option): Don't assert that global structures are in
14750         use.  Use error_at.  Access variables via opts pointer.  Don't
14751         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
14752         directly for -m68020-40 and -m68020-60.
14753         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
14754         m68k_tune_entry here.
14755         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
14756         to m68k-opts.h.
14757         (m68k_library_id_string): Remove declaration.
14758         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
14759         (m68k_library_id_string): New Variable.
14760         (march=, mcpu=, mtune=): Use Enum and Var.
14761
14762 2011-05-02  Richard Guenther  <rguenther@suse.de>
14763
14764         * varasm.c (output_constructor_regular_field): Compute zero-based
14765         index with double-ints.  Make sure to ICE instead of producing
14766         wrong code.
14767         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
14768         in asserts.  Properly use a signed type.
14769
14770 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
14771
14772         * config/i386/sse.md (V): New mode iterator.
14773         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
14774         TARGET_SSE2.
14775         (V_256): Rename from AVX256MODE.
14776         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
14777         condition to all users.
14778         (VF1): Ditto.
14779         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
14780         condition to all users.
14781         (VF_128): Make V4SF mode unconditional.
14782         (VF_256): Rename from AVX256MODEF2P.
14783         (VI4F_128): Rename from SSEMODE4S.
14784         (VI8F_128): Rename from SSEMODE2D.
14785         (VI4F_256): Rename from AVX256MODE8P.
14786         (VI8F_256): Rename from AVX256MODE4P.
14787         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
14788         (ssescalarmodesuffix): Remove SF and DF modes.
14789         (SSEMODE124): Remove.
14790         (SSEMODE1248): Ditto.
14791         (SSEMODEF2P): Ditto.
14792         (AVXMODEF2P): Ditto.
14793         (AVXMODEFDP): Ditto.
14794         (AVXMODEFSP): Ditto.
14795         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
14796         unconditional.
14797         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
14798         unconditional.
14799         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
14800         xop_pcmov_<mode>256.  Use V mode iterator.
14801
14802         Adjust RTX patterns globally for renamed mode attributes.
14803
14804 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14805
14806         * haifa-sched.c (sched_emit_insn): Emit insn before first
14807         non-scheduled insn.  Inform back-end about new insn.  Add
14808         new insn to scheduled_insns list.
14809
14810 2011-05-02  Richard Guenther  <rguenther@suse.de>
14811
14812         PR tree-optimization/48822
14813         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
14814         (process_scc): Indicate which iteration we start.
14815
14816 2011-05-02  Jan Hubicka  <jh@suse.cz>
14817
14818         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
14819         (lto_section_overrun): New.
14820         * lto-section-out.c (append_block): Rename to ...
14821         (lto_append_block): ... this one; export.
14822         (lto_output_1_stream): Move lto lto-streamer.h
14823         (lto_output_data_stream): Update.
14824         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
14825         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
14826         functions.
14827
14828 2011-05-02  Richard Guenther  <rguenther@suse.de>
14829
14830         * tree.c (tree_code_counts): New global array.
14831         (record_node_allocation_statistics): Count individual tree codes.
14832         (dump_tree_statistics): Dump individual code stats.
14833
14834 2011-05-01  Jan Hubicka  <jh@suse.cz>
14835
14836         * ipa-inline.c (caller_growth_limits): Fix thinko when
14837         looking for largest stack frame.
14838         * ipa-inline.h (dump_inline_summary): Declare.
14839         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
14840         on stack usage.
14841         (dump_inline_summary): Export.
14842         (debug_inline_summary): Declare as DEBUG_FUNCTION.
14843
14844 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
14845
14846         * reginfo.c (memory_move_cost): Change rclass argument type form
14847         'enum reg_class' to reg_class_t.
14848         * reload.h (memory_move_cost): Update prototype.
14849         * postreload.c reload_cse_simplify_set): Change type dclass var to
14850         reg_class_t.
14851         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
14852         Update prototype.
14853         (ira_allocate_and_set_costs): Change aclass argument type form
14854         'enum reg_class' to reg_class_t.
14855         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
14856         Change aclass argument type to reg_class_t.
14857         (update_conflict_hard_reg_costs): Change type aclass and pref vars
14858         to reg_class_t.
14859         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
14860         memory_move_cost call.
14861
14862         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
14863         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
14864         Change type tmp var to reg_class_t.
14865
14866 2011-04-30  Jan Hubicka  <jh@suse.cz>
14867
14868         * ipa-inline.c (can_inline_edge_p): Disregard limits when
14869         inlining into function with flatten attribute.
14870         (want_inline_small_function_p): Be more realistic about inlining
14871         cold calls where callee size grows.
14872
14873 2011-04-30  Jan Hubicka  <jh@suse.cz>
14874
14875         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
14876         flags.
14877
14878 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
14879
14880         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
14881         PRINT_OPERAND_PUNCT_VALID_P): Remove.
14882         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
14883         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
14884         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
14885         (print_operand): Rename to...
14886         (sparc_print_operand): ...this. Make static. Adjust
14887         sparc_print_operand function call.
14888         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
14889         functions.
14890
14891 2011-04-30  Jan Hubicka  <jh@suse.cz>
14892
14893         PR middle-end/48752
14894         * ipa-inline.c (early_inliner): Disable when doing late
14895         addition of function.
14896
14897 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
14898
14899         * dwarf2out.c (get_address_mode): New inline.
14900         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
14901         if not dwarf_strict emit
14902         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
14903         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
14904         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
14905         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
14906         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
14907         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
14908         mem_loc_descriptor callers.
14909         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
14910         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
14911         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
14912         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
14913         (base_types): New variable.
14914         (get_base_type_offset, calc_base_type_die_sizes,
14915         base_type_for_mode, mark_base_types, base_type_cmp,
14916         move_marked_base_types): New functions.
14917         (calc_die_sizes): Assert that die_offset is 0 or equal to
14918         next_die_offset.
14919         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
14920         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
14921         callers.  If not dwarf_strict, call mem_loc_descriptor even for
14922         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
14923         (gen_subprogram_die): Don't give up on call site parameters
14924         with non-integral or large integral modes.  Adjust
14925         mem_loc_descriptor callers.
14926         (prune_unused_types): Call prune_unused_types_mark on base_types
14927         vector entries.
14928         (resolve_addr): Call mark_base_types.
14929         (dwarf2out_finish): Call move_marked_base_types.
14930
14931         PR tree-optimization/48809
14932         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
14933         type.
14934         (gen_inbound_check): Don't compute index_expr - range_min in utype
14935         again, instead reuse SSA_NAME initialized in build_arrays.
14936         Remove two useless gsi_for_stmt calls.
14937
14938 2011-04-29  Jeff Law  <law@redhat.com>
14939
14940         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
14941
14942 2011-04-29  Martin Jambor  <mjambor@suse.cz>
14943
14944         * cgraph.h (cgraph_postorder): Remove declaration.
14945         * ipa-utils.h (ipa_free_postorder_info): Declare.
14946         (ipa_reverse_postorder): Likewise.
14947         * cgraphunit.c: Include ipa-utils.h.
14948         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
14949         * ipa-inline.c: Include ipa-utils.h.
14950         (ipa_inline): Update call to ipa_reverse_postorder.
14951         * ipa-pure-const.c (propagate_pure_const): Update call to
14952         ipa_reduced_postorder and ipa_print_order.  Call
14953         ipa_free_postorder_info to clean up.
14954         (propagate_nothrow): Likewise.
14955         * ipa-reference.c (propagate): Removed a useless call to
14956         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
14957         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
14958         * ipa.c: Include ipa-utils.h.
14959         (ipa_profile): Update call to ipa_reverse_postorder.
14960         (cgraph_postorder): Moved to...
14961         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
14962         (ipa_utils_print_order): Renamed to ipa_print_order.
14963         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
14964         comments.
14965         (ipa_free_postorder_info): New function.
14966         * passes.c: Include ipa-utils.h.
14967         (do_per_function_toporder): Update call to ipa_reverse_postorder.
14968         (ipa_write_summaries): Likewise.
14969         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
14970         (cgraphunit.o): Likewise.
14971         (ipa.o): Likewise.
14972         (ipa-inline.o): Likewise.
14973
14974 2011-04-29  Jan Hubicka  <jh@suse.cz>
14975
14976         * gcc.dg/tree-ssa/inline-10.c: New testcase.
14977         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
14978         * ipa-inline.h (clause_t): Turn into unsigned int.
14979         * ipa-inline-analysis.c (add_clause): Do more simplification.
14980         (and_predicates): Shortcut more cases.
14981         (predicates_equal_p): Move forward; check that clauses are properly
14982         ordered.
14983         (or_predicates): Shortcut more cases.
14984         (edge_execution_predicate): Rewrite as...
14985         (set_cond_stmt_execution_predicate): ... this function; handle
14986         __builtin_constant_p.
14987         (set_switch_stmt_execution_predicate): New .
14988         (compute_bb_predicates): New.
14989         (will_be_nonconstant_predicate): Update TODO.
14990         (estimate_function_body_sizes): Use compute_bb_predicates
14991         and free them later, always try to estimate if stmt is constant.
14992         (estimate_time_after_inlining, estimate_size_after_inlining):
14993         Gracefully handle optimized out edges.
14994         (read_predicate): Fix off by one error.
14995
14996 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
14997
14998         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
14999
15000 2011-04-27  Xinliang David Li  <davidxl@google.com>
15001
15002         * tree-profile.c (init_ic_make_global_vars): Set
15003         tls attribute on ic vars.
15004         * coverage.c (coverage_end_function): Initialize
15005         function_list with zero.
15006
15007 2011-04-29  Richard Guenther  <rguenther@suse.de>
15008
15009         * builtins.c (fold_builtin_classify_type): Use integer_type_node
15010         for the type of the result.
15011         (fold_builtin_isascii): Likewise.
15012         (fold_builtin_toascii): Use integer_type_node where appropriate.
15013         (fold_builtin_logb): Likewise.
15014         (fold_builtin_frexp): Likewise.
15015         (fold_builtin_strstr): Likewise.
15016         (fold_builtin_strpbrk): Likewise.
15017         (fold_builtin_fputs): Likewise.
15018         (fold_builtin_sprintf): Likewise.
15019         (fold_builtin_snprintf): Likewise.
15020         (fold_builtin_printf): Likewise.
15021         (do_mpfr_remquo): Use a proper type for the assigned constant.
15022         (do_mpfr_lgamma_r): Likewise.
15023         * dwarf2out.c (resolve_one_addr): Use size_int.
15024         * except.c (init_eh): Likewise.
15025         (assign_filter_values): Use integer_type_node for filter values.
15026         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
15027         indices.
15028         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
15029         for EH region numbers.
15030         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
15031         for the shift amount.
15032
15033 2011-04-29  Richard Guenther  <rguenther@suse.de>
15034
15035         * expr.h (expand_shift): Rename to ...
15036         (expand_variable_shift): ... this.
15037         (expand_shift): Take a constant shift amount.
15038         * expmed.c (expand_shift): Rename to ...
15039         (expand_variable_shift): ... this.
15040         (expand_shift): New wrapper around expand_variable_shift.
15041         * expr.c (convert_move, emit_group_load_1, emit_group_store,
15042         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
15043         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
15044         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
15045         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
15046         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
15047         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
15048         emit_store_flag_1, emit_store_flag): Likewise.
15049         * builtins.c (expand_builtin_signbit): Likewise.
15050         * calls.c (load_register_parameters): Likewise.
15051         * function.c (assign_parm_setup_block): Likewise.
15052         * lower-subreg.c (resolve_shift_zext): Likewise.
15053         * optabs.c (widen_bswap, expand_abs_nojump,
15054         expand_one_cmpl_abs_nojump, expand_float): Likewise.
15055         * spu/spu.c (spu_expand_extv): Likewise.
15056         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
15057
15058 2011-04-29  Richard Guenther  <rguenther@suse.de>
15059
15060         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
15061         for the remapped region number.
15062         * predict.c (build_predict_expr): Use integer_type_node for the
15063         predict kind.
15064         * fold-const.c (fold_binary_loc): Use integer_type_node for
15065         the shift amount.  Use a proper type for the PLUS_EXPR operand.
15066
15067 2011-04-29  Michael Matz  <matz@suse.de>
15068
15069         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
15070         other trees that just builtins.
15071         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
15072
15073 2011-04-29  Richard Guenther  <rguenther@suse.de>
15074
15075         * tree-nested.c (get_trampoline_type): Use size_int.
15076         (get_nl_goto_field): Likewise.
15077         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
15078         for all indexes.
15079         (lower_eh_constructs_2): Likewise.
15080         (lower_resx): Likewise.
15081         (lower_eh_dispatch): Likewise.
15082         * tree-mudflap.c (mf_build_string): Use size_int.
15083         (mudflap_register_call): Use integer_type_node for the flag.
15084         (mudflap_enqueue_constant): Use size_int.
15085         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
15086         instead of rebuilding it.
15087
15088 2011-04-29  Richard Guenther  <rguenther@suse.de>
15089
15090         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
15091         Handle OBJ_TYPE_REF.
15092         (find_func_aliases_for_call): Use it more consistently.
15093
15094 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
15095
15096         * haifa-sched.c (last_nondebug_scheduled_insn): New.
15097         (rank_for_schedule): Use it.
15098         (schedule_block): Set it.
15099
15100 2011-04-28  David Li  <davidxl@google.com>
15101
15102         * tree.c (crc32_string): Use crc32_byte.
15103         (crc32_byte): New function.
15104         * tree.h (crc32_byte): New function.
15105         * gcov.c (read_graph_file): Handle new cfg_cksum.
15106         (read_count_file): Ditto.
15107         * profile.c (instrument_values): Ditto.
15108         (get_exec_counts): Ditto.
15109         (read_profile_edge_counts): Ditto.
15110         (compute_branch_probabilities): Ditto.
15111         (compute_value_histograms): Ditto.
15112         (branch_prob): Ditto.
15113         (end_branch_prob): Ditto.
15114         * coverage.c (read_counts_file): Ditto.
15115         (get_coverage_counts): Ditto.
15116         (tree_coverage_counter_addr): Ditto.
15117         (coverage_checksum_string): Ditto.
15118         (coverage_begin_output): Ditto.
15119         (coverage_end_function): Ditto.
15120         (build_fn_info_type): Ditto.
15121         (build_fn_info_value): Ditto.
15122         * libgcov.c (gcov_exit): Ditto.
15123         * gcov-dump.c (tag_function): Ditto.
15124         (compute_checksum): Remove.
15125
15126 2011-04-29  Alan Modra  <amodra@gmail.com>
15127
15128         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
15129         unspec plus offset.  Tidy macho code.
15130
15131 2011-04-29  Martin Jambor  <mjambor@suse.cz>
15132
15133         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
15134         node instead of a decl.  Update all callers.
15135         * cgraph.h: Update declaration.
15136
15137 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
15138
15139         PR tree-optimization/48765
15140         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
15141         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
15142         to indicate if loop aware SLP is being used.  Scan the statements
15143         and update the vectorization factor according to the type of
15144         vectorization before statement analysis.
15145         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
15146         pass it to vect_analyze_loop_operations.
15147         (vectorizable_reduction): Set number of copies to 1 in case of pure
15148         SLP statement.
15149         * tree-vect-stmts.c (vectorizable_conversion,
15150         vectorizable_assignment, vectorizable_shift,
15151         vectorizable_operation, vectorizable_type_demotion,
15152         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
15153         Likewise.
15154         (vectorizable_condition): Move the check that it is not SLP
15155         vectorization before the number of copies check.
15156         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
15157         to vectorize the loop using SLP.
15158
15159 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
15160
15161         PR middle-end/48597
15162         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
15163         inline asm.
15164
15165 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
15166
15167         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
15168         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
15169         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
15170         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
15171         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
15172         linux*.h headers.
15173         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
15174         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
15175         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
15176         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
15177         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
15178         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
15179         REG_NAME.
15180         * config/i386/linux.h (REG_NAME): Don't define.
15181         * config/i386/linux64.h (REG_NAME): Don't define.
15182         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
15183         Undefine before defining.
15184
15185 2011-04-28  Jan Hubicka  <jh@suse.cz>
15186
15187         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
15188         nonconstant_names array.
15189         (estimate_function_body_sizes): Build nonconstant_names array; handle
15190         BUILT_IN_CONSTANT_P.
15191
15192 2011-04-28  Richard Guenther  <rguenther@suse.de>
15193
15194         PR bootstrap/48804
15195         Revert
15196         2011-04-28  Richard Guenther  <rguenther@suse.de>
15197
15198         * tree-ssa-structalias.c (solve_constraints): Build succ graph
15199         as late as possible.
15200
15201 2011-04-28  Richard Guenther  <rguenther@suse.de>
15202
15203         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
15204         (debug_constraint): Do it here.
15205         (dump_constraints): And here.
15206         (rewrite_constraints): And here.
15207         (dump_constraint_edge): Remove.
15208         (dump_constraint_graph): Rewrite to produce DOT output.
15209         (solve_constraints): Build succ graph as late as possible.
15210         Dump constraint graphs before and after solving.
15211
15212 2011-04-28  Richard Guenther  <rguenther@suse.de>
15213
15214         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
15215         New function split out from ...
15216         (find_func_aliases): ... here.  Call it.
15217         (find_func_aliases_for_call): Likewise.
15218
15219 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
15220
15221         * internal-fn.h (internal_fn_name_array): Declare.
15222         (internal_fn_flags_array): Likewise.
15223
15224 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
15225
15226         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
15227         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
15228         Move from sse.md.
15229         (ssemodefsuffix): Remove.
15230         (ssevecmodesuffix): New mode attribute.
15231         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
15232         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
15233         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
15234         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
15235         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
15236         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
15237         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
15238         ssemodesuffix mode attribute.
15239         (float splitters): Use ssevecmodesuffix mode attribute.
15240         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
15241         (sseinsmode): Rename from avxvecmode.
15242         (avxsizesuffix): Rename from avxmodesuffix.
15243         (sseintvecmode): Rename from avxpermvecmode.
15244         (ssedoublevecmode): Rename from ssedoublesizemode.
15245         (ssehalfvecmode): Rename from avxhalfvecmode.
15246         (ssescalarmode): Rename from avxscalarmode.
15247         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
15248         templates for ssemodesuffix mode attribute.
15249         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
15250         mode attribute.
15251
15252         Adjust RTX patterns globally for renamed mode attributes.
15253
15254 2011-04-27  Jan Hubcika  <jh@suse.cz>
15255
15256         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
15257         * ipa-inline-analysis.c: Include alloc-pool.h.
15258         (edge_predicate_pool): New.
15259         (trye_predicate_p): New function
15260         (false_predicate_p): New function.
15261         (add_clause): Sanity check that false clauses are "optimized";
15262         never add clauses to predicate that is already known to be false.
15263         (and_predicate): Use flase_predicate_p.
15264         (evaulate_predicate): Rename to ...
15265         (evaluate_predicate): ... this one; update all callers; assert
15266         that false is not listed among possible truths.
15267         (dump_predicate): Use true_predicate_p.
15268         (account_size_time): Use false_predicate_p.
15269         (evaulate_conditions_for_edge): Rename to ...
15270         (evaluate_conditions_for_edge) ... this one.
15271         (edge_set_predicate): New function.
15272         (inline_edge_duplication_hook): Duplicate edge predicates.
15273         (inline_edge_removal_hook): Free edge predicates.
15274         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
15275         (dump_inline_summary): Update.
15276         (estimate_function_body_sizes): Set edge predicates.
15277         (estimate_calls_size_and_time): Handle predicates.
15278         (estimate_callee_size_and_time): Update.
15279         (remap_predicate): Add toplev_predicate; update comment.
15280         (remap_edge_predicates): New function.
15281         (inline_merge_summary): Compute toplev predicate; update.
15282         (read_predicate): New function.
15283         (read_inline_edge_summary): Use it.
15284         (inline_read_section): Likewise.
15285         (write_predicate): New function.
15286         (write_inline_edge_summary): Use it.
15287         (inline_write_summary): Likewise.
15288         (inline_free_summary): Free alloc pool and edge summary vec.
15289
15290 2011-04-27  Richard Guenther  <rguenther@suse.de>
15291
15292         * tree-ssa-structalias.c (changed_count): Remove.
15293         (changed): Use a bitmap.
15294         (unify_nodes): Adjust.
15295         (do_sd_constraint): Likewise.
15296         (do_ds_constraint): Likewise.
15297         (do_complex_constraint): Likewise.
15298         (solve_graph): Likewise.
15299
15300 2011-04-27  Jan Hubicka  <jh@suse.cz>
15301
15302         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
15303
15304 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
15305
15306         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
15307         (avx_vperm2f128_*_operand): Ditto.
15308         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
15309         Use avx_vpermilp_parallel in insn condition.
15310         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
15311         Use avx_vperm2f128_parallel in insn condition.
15312
15313 2011-04-27  Richard Guenther  <rguenther@suse.de>
15314
15315         * Makefile.in (tree-ssa-structalias.o): Remove
15316         gt-tree-ssa-structalias.h dependency.
15317         (GTFILES): Remove tree-ssa-structalias.c.
15318         * tree.c (allocate_decl_uid): New function.
15319         (make_node_stat): Use it.
15320         (copy_node_stat): Likewise.
15321         * tree.h (allocate_decl_uid): Declare.
15322         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
15323         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
15324         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
15325         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
15326         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
15327         (struct heapvar_map): Likewise.
15328         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
15329         heapvar_insert): Likewise.
15330         (make_heapvar_for): Rename to ...
15331         (make_heapvar): ... this.  Simplify.
15332         (fake_var_decl_obstack): New global var.
15333         (build_fake_var_decl): New function.
15334         (make_constraint_from_heapvar): Adjust.
15335         (handle_lhs_call): Likewise.
15336         (create_function_info_for): Likewise.
15337         (intra_create_variable_infos): Likewise.
15338         (init_alias_vars): Allocate fake_var_decl_obstack.
15339         (init_alias_heapvars, delete_alias_heapvars): Remove.
15340         (compute_points_to_sets): Do not call init_alias_heapvars.
15341         (ipa_pta_execute): Likewise.
15342         (delete_points_to_sets): Free fake_var_decl_obstack.
15343
15344 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15345
15346         * config/spu/divmovti4.c (union qword_UTItype): New data type.
15347         (si_from_UTItype, si_to_UTItype): New functions.
15348         (__udivmodti4): Use them to implement type-punning.
15349         * config/spu/multi3.c (union qword_TItype): New data type.
15350         (si_from_TItype, si_to_TItype): New functions.
15351         (__multi3): Use them to implement type-punning.
15352
15353 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15354
15355         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
15356
15357 2011-04-27  Jan Hubicka  <jh@suse.cz>
15358
15359         * ipa-prop.c (function_insertion_hook_holder): New holder.
15360         (ipa_add_new_function): New function.
15361         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
15362         Register/deregister holder.
15363
15364 2011-04-27  Richard Guenther  <rguenther@suse.de>
15365
15366         PR tree-optimization/48772
15367         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
15368
15369 2011-04-27  Richard Guenther  <rguenther@suse.de>
15370
15371         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
15372         TARGET_MEM_REF handling.
15373
15374 2011-04-27  Nick Clifton  <nickc@redhat.com>
15375
15376         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
15377         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
15378         (REG_CLASS_NAMES): Likewise.
15379         (REG_CLASS_CONTENTS): Likewise.
15380         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
15381         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
15382         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
15383         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
15384         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
15385         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
15386         duplicate register classes.
15387         (frv_class_likely_spilled_p): Likewise.
15388         (frv_register_move_cost): Likewise.
15389
15390         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
15391         end of the regno_reg_class array.
15392
15393 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
15394
15395         PR c/48742
15396         * c-typeck.c (build_binary_op): Don't wrap arguments if
15397         int_operands is true.
15398
15399 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
15400
15401         PR target/48767
15402         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
15403         targetm.calls.must_pass_in_stack for void type.
15404
15405 2011-04-26  Jan Hubicka  <jh@suse.cz>
15406
15407         * cgraphbuild.c (build_cgraph_edges): Update call
15408         of cgraph_create_edge and cgraph_create_indirect_edge.
15409         * cgraph.c (cgraph_create_edge_including_clones,
15410         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
15411         cgraph_update_edges_for_call_stmt_node): Do not take nest
15412         argument; do not initialize call_stmt_size/time.
15413         (dump_cgraph_node): Do not dump nest.
15414         (cgraph_clone_edge): Do not take loop_nest argument;
15415         do not propagate it; do not clone call_stmt_size/time.
15416         (cgraph_clone_node): Likewise.
15417         (cgraph_create_virtual_clone): Update.
15418         * cgraph.h (struct cgraph_edge): Remove
15419         call_stmt_size/call_stmt_time/loop_nest.
15420         (cgraph_create_edge, cgraph_create_indirect_edge,
15421         cgraph_create_edge_including_clones, cgraph_clone_node): Update
15422         prototype.
15423         * tree-emutls.c (gen_emutls_addr): Update.
15424         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
15425         loop_nest; handle indirect calls, too.
15426         (clone_inlined_nodes): Do not care about updating inline summaries.
15427         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
15428         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
15429         stream call_stmt_size/call_stmt_time/loop_nest.
15430         * ipa-inline.c (edge_badness): Update.
15431         (ipa_inline): dump summaries after inlining.
15432         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
15433         New.
15434         (inline_edge_summary): New function.
15435         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
15436         (inline_edge_removal_hook): Handle edge summaries.
15437         (inline_edge_duplication_hook): New hook.
15438         (inline_summary_alloc): Alloc hooks.
15439         (initialize_growth_caches): Do not register removal hooks.
15440         (free_growth_caches); Do not free removal hook.
15441         (dump_inline_edge_summary): New function.
15442         (dump_inline_summary): Use it.
15443         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
15444         (inline_update_callee_summaries): New function.
15445         (inline_merge_summary): Use it.
15446         (do_estimate_edge_time, do_estimate_edge_growth): Update.
15447         (read_inline_edge_summary): New function.
15448         (inline_read_section): Use it.
15449         (write_inline_edge_summary): New function.
15450         (inline_write_summary): Use it.
15451         (inline_free_summary): Free edge new holders.
15452         * tree-inline.c (copy_bb): Update.
15453
15454 2011-04-26  Jason Merrill  <jason@redhat.com>
15455
15456         * tree-eh.c (lower_try_finally_switch): Create the label along with
15457         the CASE_LABEL_EXPR.
15458
15459 2011-04-26  David S. Miller  <davem@davemloft.net>
15460             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15461
15462         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
15463         * configure: Regenerate.
15464
15465 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
15466
15467         PR target/48258
15468         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
15469         reduction.
15470         (VEC_reduc): New code iterator and splitters for vector reduction.
15471         (VEC_reduc_name): Ditto.
15472         (VEC_reduc_rtx): Ditto.
15473         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
15474         (reduc_<VEC_reduc_name>_v4sf): Ditto.
15475
15476         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
15477         support for extracting SF on VSX.
15478
15479         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
15480         generating xscvspdp.
15481         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
15482         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
15483         double add, minimum, maximum vector reduction.
15484         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
15485         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
15486         optimize double vector reduction.
15487         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
15488
15489 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
15490
15491         * config/fr30/fr30.h (inhibit_libc): Don't define.
15492         * config/m32r/m32r-protos.h: Correct comment.
15493         * config/v850/v850.h (GHS_default_section_names,
15494         GHS_current_section_names): Use tree, not union tree_node *.
15495
15496 2011-04-26  Xinliang David Li  <davidxl@google.com>
15497
15498         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
15499         * c-family/c-opts.c (c_common_handle_option): Set
15500         warn_maybe_uninitialized.
15501         * opts.c (common_handle_option): Ditto.
15502         * common.opt:  New option.
15503         * tree-ssa.c (warn_uninit): Add one more parameter.
15504         (warn_uninitialized_var): Pass warning code.
15505         * tree-flow.h: Interface change.
15506
15507 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15508
15509         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
15510         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
15511         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
15512
15513 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15514
15515         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
15516         * config/mips/mips.opt (mmips-tfile): Remove.
15517
15518         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
15519         mips-tdump reference to ...
15520         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
15521         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
15522         reference by Tru64 UNIX.
15523
15524 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
15525
15526         PR debug/48768
15527         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
15528         is error_mark_node, set value to NULL.
15529
15530         PR tree-optimization/48734
15531         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
15532         if return value from maybe_fold_*_comparsions isn't something
15533         the code is prepared to handle.
15534
15535 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
15536
15537         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
15538         mode check.
15539         (ext_QIreg_nomode_operands): Remove.
15540         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
15541         (*andsi_1): Ditto.
15542         (*andhi_1): Ditto.
15543
15544 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
15545
15546         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
15547
15548 2011-04-26  Richard Guenther  <rguenther@suse.de>
15549
15550         * c-typeck.c (build_unary_op): Do not expand array-refs via
15551         pointer arithmetic.  Only adjust qualifiers for function types.
15552
15553 2011-04-26  Richard Guenther  <rguenther@suse.de>
15554
15555         PR middle-end/48694
15556         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
15557         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
15558         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
15559         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
15560
15561 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
15562
15563         * doc/extend.texi: Document __underlying_type.
15564
15565 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
15566
15567         * config/rs6000/titan.md (automata_option "progress"): Remove.
15568
15569 2011-04-25  Jeff Law  <law@redhat.com>
15570
15571         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
15572
15573 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
15574
15575         * system.h (ENUM_BITFIELD): Remove.
15576
15577 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
15578             Eric Botcazou  <ebotcazou@adacore.com>
15579
15580         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
15581         for STORE_FLAG_VALUE==-1 case.
15582
15583 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
15584
15585         PR target/43804
15586         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
15587         LEGITIMATE_PIC_OPERAND_P.
15588
15589 2011-04-24  Jan Hubicka  <jh@suse.cz>
15590
15591         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
15592         WPA hack.
15593         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
15594         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
15595         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
15596         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
15597         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
15598         Sanity check predicate length.
15599         (remap_predicate): Likewise; sanity check jump functions.
15600         (inline_read_section, inline_write_summary): Sanity check
15601         predicate length.
15602
15603 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
15604
15605         PR other/48748
15606         * doc/extend.texi (Type Traits): Document __is_standard_layout,
15607         __is_literal_type, and __is_trivial; update throughout about
15608         possibly cv-qualified void types.
15609
15610 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
15611
15612         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
15613         testsuite and make it version agnostic.
15614
15615 2011-04-22  Jan Hubicka  <jh@suse.cz>
15616
15617         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
15618
15619 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
15620
15621         PR c/48685
15622         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
15623         to VOID_TYPE even around MODIFY_EXPR.
15624
15625 2011-04-22  Mike Stump  <mikestump@comcast.net>
15626
15627         * gensupport.c (read_md_rtx): Fix typo in comment.
15628         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
15629         comment.
15630
15631 2011-04-22  Jan Hubicka  <jh@suse.cz>
15632
15633         * gengtype.c (open_base_files): Add ipa-inline.h include.
15634         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
15635         ipa-prop.c; update all uses.
15636         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
15637         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
15638         merge summary of inlined function into former caller.
15639         * ipa-inline.c (max_benefit): Remove.
15640         (edge_badness): Compensate for removal of benefits.
15641         (update_caller_keys): Use
15642         reset_node_growth_cache/reset_edge_growth_cache.
15643         (update_callee_keys): Likewise.
15644         (update_all_callee_keys): Likewise.
15645         (inline_small_functions): Do not collect max_benefit; do not reset
15646         estimated_growth; call free_growth_caches and initialize_growth_caches.
15647         * ipa-inline.h (struct condition, type clause_t, struct predicate,
15648         struct size_time_entry): New structures.
15649         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
15650         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
15651         and estimated_growth.
15652         (edge_growth_cache_entry): New structure.
15653         (node_growth_cache, edge_growth_cache): New global vars.
15654         (estimate_growth): Turn into inline.
15655         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
15656         initialize_growth_caches, free_growth_caches): Declare.
15657         (estimate_edge_growth): Rewrite.
15658         (estimate_edge_time): Implement as inline cache lookup.
15659         (reset_node_growth_cache, reset_edge_growth_cache): New inline
15660         functions.
15661         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
15662         (NUM_CONDITIONS): New constant.
15663         (predicate_conditions): New enum.
15664         (IS_NOT_CONSTANT): New constant.
15665         (edge_removal_hook_holder): New var.
15666         (node_growth_cache, edge_growth_cache): New global vars.
15667         (true_predicate, single_cond_predicate, false_predicate,
15668         not_inlined_predicate, add_condition, add_clause, and_predicates,
15669         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
15670         dump_clause, dump_predicate, account_size_time,
15671         evaulate_conditions_for_edge): New functions.
15672         (inline_summary_alloc): Move to heap.
15673         (inline_node_removal_hook): Clear condition and entry vectors.
15674         (inline_edge_removal_hook): New function.
15675         (initialize_growth_caches, free_growth_caches): New function.
15676         (dump_inline_summary): Update.
15677         (edge_execution_predicate): New function.
15678         (will_be_nonconstant_predicate): New function.
15679         (estimate_function_body_sizes): Compute BB and constantness predicates.
15680         (compute_inline_parameters): Do not clear estimated_growth.
15681         (estimate_edge_size_and_time): New function.
15682         (estimate_calls_size_and_time): New function.
15683         (estimate_callee_size_and_time): New function.
15684         (remap_predicate): New function.
15685         (inline_merge_summary): New function.
15686         (do_estimate_edge_time): New function based on...
15687         (estimate_edge_time): ... this one.
15688         (do_estimate_edge_growth): New function.
15689         (do_estimate_growth): New function based on....
15690         (estimate_growth): ... this one.
15691         (inline_analyze_function): Analyze after deciding on jump functions.
15692         (inline_read_section): New function.
15693         (inline_read_summary): Use it.
15694         (inline_write_summary): Write all the new data.
15695         * ipa-prop.c (ipa_get_param_decl_index): Export.
15696         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
15697         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
15698         Declare.
15699         (ipa_get_lattice): Move here from ipa-cp.c
15700         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
15701         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
15702         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
15703         cgraph_edge_inlinable_p): Remove.
15704         * cgraphunit.c: Include ipainline.h
15705         (cgraph_process_new_functions): Update call of
15706         compute_inline_parameters.
15707
15708 2011-04-22  Richard Guenther  <rguenther@suse.de>
15709
15710         * tree.c (build_int_cst): Properly create canonicalized integer
15711         constants.
15712         (build_int_cst_type): Remove scary comments.
15713
15714 2011-04-22  Xinliang David Li  <davidxl@google.com>
15715
15716         * toplev.c (process_options): Enable -Werror=coverage-mismatch
15717         by default when -Wno-error is not specified.
15718         * opts-global.c (decode_options): Remove call to
15719         control_warning_options.
15720
15721 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
15722
15723         PR tree-optimization/48717
15724         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
15725         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
15726
15727 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
15728
15729         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
15730         definition where used.
15731
15732 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
15733
15734         PR c/48716
15735         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
15736         TREE_STATIC variables declared inside of some OpenMP construct.
15737
15738 2011-04-22  Martin Jambor  <mjambor@suse.cz>
15739
15740         PR middle-end/48585
15741         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
15742
15743 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
15744
15745         PR c/36750
15746         * c-typeck.c (pop_init_level): Do not warn about initializing
15747         with ` = {0}'.
15748
15749 2011-04-22  Alan Modra  <amodra@gmail.com>
15750
15751         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
15752         when returning call_cookie.
15753         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
15754         pointers, to functions with no more vector args than the current
15755         function, and some non-local calls for ABI_V4.
15756         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
15757         sibcall_nonlocal_aix64): Combine to ..
15758         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
15759         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
15760         (sibcall_value_nonlocal_aix<mode>): ..likewise.
15761         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
15762         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
15763         operand.
15764         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
15765         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
15766         sibcall_value_symbolic_64): Delete.
15767
15768 2011-04-21  Xinliang David Li  <davidxl@google.com>
15769
15770         * cgraph.h: Remove pid.
15771         * cgraph.c: Remove pid.
15772         * value-prof.c (init_node_map): New function.
15773         (del_node_map): New function.
15774         (find_func_by_funcdef_no): New function.
15775         (gimple_ic_transform): Call new function.
15776         * cgraphunit.c (cgraph_finalize_function): Remove pid.
15777         * function.c (get_last_funcdef_no): New function.
15778         * function.h (get_last_funcdef_no): New function.
15779         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
15780         to libgcov function.
15781         (tree-profiling): Call node map init and delete function.
15782
15783 2011-04-21  Ian Lance Taylor  <iant@google.com>
15784
15785         * godump.c (go_format_type): Use exported Go name for anonymous
15786         field name.
15787
15788 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
15789
15790         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
15791         Call builtin_function_type_list instead of builtin_function_type.
15792         (UNARY, BINARY, TRINARY, QUAD): Likewise.
15793
15794 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
15795
15796         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
15797         build_function_type_list instead of build_function_type.
15798         Delete variable `endlink'.
15799
15800 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
15801
15802         * config/s390/s390.c (s390_init_builtins): Call
15803         build_function_type_list instead of build_function_type.
15804
15805 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
15806
15807         * config/ia64/ia64.c (ia64_init_builtins): Call
15808         build_function_type_list instead of builtin_function_type.
15809
15810 2011-04-21  Easwaran Raman  <eraman@google.com>
15811
15812         * cfgexpand.c (stack_var): Remove OFFSET...
15813         (add_stack_var): ...and its reference here...
15814         (expand_stack_vars): ...and here.
15815         (stack_var_cmp): Sort by descending order of size.
15816         (partition_stack_vars): Change heuristic.
15817         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
15818         (dump_stack_var_partition): Add newline after each partition.
15819
15820 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
15821             Jeff Law  <law@redhat.com>
15822
15823         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
15824         * gengtype.c (matching_file_name_substitute): Likewise.
15825
15826 2011-04-21  Richard Guenther  <rguenther@suse.de>
15827
15828         PR lto/48703
15829         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
15830
15831 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
15832
15833         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
15834
15835 2011-04-21  Richard Guenther  <rguenther@suse.de>
15836
15837         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
15838         file name.
15839
15840 2011-04-21  Richard Guenther  <rguenther@suse.de>
15841
15842         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
15843         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
15844         Use DECL_P, not SSA_VAR_P.
15845         (ptr_derefs_may_alias_p): Likewise.
15846         (ptr_deref_may_alias_ref_p_1): Likewise.
15847         (decl_refs_may_alias_p): Likewise.
15848         (refs_may_alias_p_1): Likewise.
15849         (ref_maybe_used_by_call_p_1): Likewise.
15850         (call_may_clobber_ref_p_1): Likewise.
15851         (indirect_ref_may_alias_decl_p): Assume indirect refrences
15852         are either MEM_REF or TARGET_MEM_REF.
15853         (indirect_refs_may_alias_p): Likewise.
15854         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
15855         for MEM_EXPR of indirect calls.
15856
15857 2011-04-21  Tristan Gingold  <gingold@adacore.com>
15858
15859         * vmsdbgout.c (write_srccorr): Compute file length from the string.
15860         (dst_file_info_struct): Remove flen field.
15861         (lookup_filename): Remove code that set flen field.
15862
15863 2011-04-21  Tristan Gingold  <gingold@adacore.com>
15864
15865         * config/ia64/ia64.c (ia64_start_function): Add a guard.
15866
15867 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
15868
15869         PR target/48708
15870         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
15871         vec_extract and vec_concat for non-SSE4_1 targets.
15872
15873 2011-04-21  Richard Guenther  <rguenther@suse.de>
15874
15875         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
15876         return statements.
15877
15878 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
15879
15880         * config/i386/cygming.h (union tree_node, TREE): Don't define or
15881         undefine.
15882         (FILE): Don't undefine.
15883
15884 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
15885
15886         * config/alpha/alpha.c (struct machine_function): Use rtx, not
15887         struct rtx_def *.
15888         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
15889         struct rtx_def *.
15890         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
15891         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
15892         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
15893         rtx_def *.
15894         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
15895         definitions where used.
15896         * config/microblaze/microblaze.h (struct microblaze_args): Use
15897         rtx, not struct rtx_def *.
15898         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
15899         rtx_def *.
15900         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
15901         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
15902         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
15903         not struct rtx_def *.
15904         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
15905         struct rtx_def *.
15906         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
15907         rtx_def *.
15908         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
15909
15910 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
15911
15912         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
15913         operand_equal_p to compare DR_BASE_ADDRESSes.
15914         (vect_check_interleaving): Likewise.
15915
15916 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
15917
15918         PR target/46329
15919         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
15920         for all Neon struct constants.
15921
15922 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
15923
15924         * target.def (legitimate_constant_p): New hook.
15925         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
15926         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
15927         * doc/tm.texi: Regenerate.
15928         * hooks.h (hook_bool_mode_rtx_true): Declare.
15929         * hooks.c (hook_bool_mode_rtx_true): Define.
15930         * system.h (LEGITIMATE_CONSTANT_P): Poison.
15931         * calls.c (precompute_register_parameters): Replace uses of
15932         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
15933         (emit_library_call_value_1): Likewise.
15934         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
15935         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
15936         * ira-costs.c (scan_one_insn): Likewise.
15937         * recog.c (general_operand, immediate_operand): Likewise.
15938         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
15939         * reload1.c (init_eliminable_invariants): Likewise.
15940
15941         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
15942         mode argument.
15943         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
15944         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
15945         argument.
15946         (TARGET_LEGITIMATE_CONSTANT_P): Define.
15947         * config/alpha/predicates.md (input_operand): Update call to
15948         alpha_legitimate_constant_p.
15949
15950         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
15951         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
15952         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
15953         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
15954         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
15955         (arm_legitimate_constant_p): New functions.
15956         (arm_cannot_force_const_mem): Make static.
15957
15958         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
15959
15960         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
15961         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
15962         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
15963         instead of bfin_legitimate_constant_p.
15964         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
15965         (TARGET_LEGITIMATE_CONSTANT_P): Define.
15966
15967         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
15968
15969         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
15970
15971         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
15972         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
15973         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
15974         (frv_legitimate_constant_p): Make static.  Add a mode argument.
15975
15976         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
15977         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
15978         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
15979
15980         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
15981         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
15982         * config/i386/i386.c (legitimate_constant_p): Rename to...
15983         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
15984         argument.
15985         (ix86_cannot_force_const_mem): Update accordingly.
15986         (ix86_legitimate_address_p): Likewise.
15987         (TARGET_LEGITIMATE_CONSTANT_P): Define.
15988         * config/i386/i386.md: Update commentary.
15989
15990         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
15991         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
15992         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
15993         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
15994
15995         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
15996
15997         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
15998         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
15999         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16000         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
16001
16002         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
16003         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
16004         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
16005
16006         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
16007         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16008         (m32r_legitimate_constant_p): New function.
16009
16010         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
16011         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
16012         LEGITIMATE_CONSTANT_P.
16013         (LEGITIMATE_CONSTANT_P): Delete.
16014         * config/m68k/m68k.c (m68k_expand_prologue): Call
16015         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
16016         (m68k_legitimate_constant_p): New function.
16017         * config/m68k/m68k.md: Update comments.
16018
16019         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
16020         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16021         (mcore_legitimate_constant_p): New function.
16022
16023         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
16024         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
16025         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
16026         Add a mode argument.
16027         (mep_legitimate_address): Update accordingly.
16028         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16029
16030         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
16031         Delete.
16032         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
16033         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
16034         static.  Check OP's mode for VOIDmode.
16035         (microblaze_legitimate_constant_p): New function.
16036         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16037
16038         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
16039         * config/mips/mips.c (mips_legitimate_constant_p): New function.
16040         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
16041         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16042         * config/mips/predicates.md: Update comments.
16043
16044         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
16045         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
16046         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16047         (mmix_legitimate_constant_p): Make static, return a bool, and take
16048         a mode argument.
16049         (mmix_print_operand_address): Update accordingly.
16050
16051         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
16052         Delete.
16053         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
16054         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
16055         static.  Add a mode argument.
16056         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16057
16058         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
16059
16060         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
16061         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16062         (pa_legitimate_constant_p): New function.
16063
16064         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
16065
16066         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
16067         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16068         (pdp11_legitimate_constant_p): New function.
16069
16070         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
16071         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16072         (rs6000_legitimate_constant_p): New function.
16073
16074         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
16075         (rx_legitimate_constant_p): ...this.
16076         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
16077         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
16078         (rx_legitimate_constant_p): ...this.
16079         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16080         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
16081
16082         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
16083         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
16084         * config/s390/s390.c (legitimate_constant_p): Rename to...
16085         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
16086         and add a mode argument.
16087         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16088
16089         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
16090
16091         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
16092         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16093         (sh_legitimate_constant_p): New function.
16094
16095         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
16096         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
16097         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16098         (legitimate_constant_p): Rename to...
16099         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
16100         argument.
16101         (constant_address_p): Update accordingly.
16102
16103         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
16104         argument and return a bool.
16105         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
16106         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16107         (spu_legitimate_constant_p): Add a mode argument and return a bool.
16108         (spu_rtx_costs): Update accordingly.
16109         * config/spu/predicates.md (vec_imm_operand): Likewise.
16110
16111         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
16112
16113         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
16114         * config/v850/v850.c (v850_legitimate_constant_p): New function.
16115         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16116
16117         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
16118         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
16119         * config/vax/vax.c (legitimate_constant_p): Likewise.
16120
16121         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
16122         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16123         (xtensa_legitimate_constant_p): New function.
16124
16125 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
16126
16127         * target.def (cannot_force_const_mem): Add a mode argument.
16128         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
16129         * doc/tm.texi: Regenerate.
16130         * hooks.h (hook_bool_mode_rtx_false): Declare.
16131         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
16132         (hook_bool_mode_const_rtx_true): Likewise.
16133         (hook_bool_mode_rtx_false): New function.
16134         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
16135         to be non-VOID.  Update call to cannot_force_const_mem.
16136         (find_reloads): Update accordingly.
16137         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
16138         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
16139         argument.
16140         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
16141         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
16142         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
16143         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
16144         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
16145         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
16146         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
16147         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
16148         (m68k_cannot_force_const_mem): ...this new function.
16149         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
16150         argument.
16151         (mips_const_insns, mips_legitimize_const_move): Update calls.
16152         (mips_secondary_reload_class): Likewise.
16153         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
16154         (pa_cannot_force_const_mem): ...this new function.
16155         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
16156         (rs6000_cannot_force_const_mem): ...this new function.
16157         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
16158         argument.
16159         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
16160         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
16161         to...
16162         (xtensa_cannot_force_const_mem): ...this new function.
16163
16164 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
16165
16166         * config/mips/mips.c (mips16_build_function_stub): Call
16167         build_function_type_list instead of build_function_type.
16168         (mips16_build_call_stub): Likewise.
16169
16170 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
16171
16172         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
16173         instead of build_function_type.
16174
16175 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
16176
16177         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
16178         instead of build_function_type.
16179
16180 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
16181
16182         PR target/48678
16183         * config/i386/i386.md (insv): Change operand 0 constraint to
16184         "register_operand".  Change operand 1 and 2 constraint to
16185         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
16186         * config/i386/sse.md (sse4_1_pinsrb): Export.
16187         (sse2_pinsrw): Ditto.
16188         (sse4_1_pinsrd): Ditto.
16189         (sse4_1_pinsrq): Ditto.
16190         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
16191         * config/i386/i386.c (ix86_expand_pinsr): New.
16192
16193 2011-04-20  Easwaran Raman  <eraman@google.com>
16194
16195         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
16196         containing union type only with -fstrict-aliasing.
16197
16198 2011-04-20  Jim Meyering  <meyering@redhat.com>
16199
16200         Remove useless if-before-free tests.
16201         * calls.c (expand_call, save_area): Likewise.
16202         * cfgcleanup.c (try_forward_edges): Likewise.
16203         * collect2.c (collect_execute): Likewise.
16204         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
16205         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
16206         * coverage.c (coverage_checksum_string): Likewise.
16207         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
16208         * cselib.c (cselib_init): Likewise.
16209         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
16210         (df_set_clean_cfg): Likewise.
16211         * function.c (free_after_compilation): Likewise.
16212         * gcc.c (do_spec_1, main): Likewise.
16213         * gcov.c (create_file_names): Likewise.
16214         * gensupport.c (identify_predicable_attribute): Likewise.
16215         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
16216         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
16217         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
16218         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
16219         * ipa-pure-const.c (local_pure_const): Likewise.
16220         * ipa-reference.c (propagate): Likewise.
16221         * ira-costs.c (free_ira_costs): Likewise.
16222         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
16223         * matrix-reorg.c (mat_free): Likewise.
16224         * prefix.c (get_key_value): Likewise.
16225         * profile.c (compute_value_histograms): Likewise.
16226         * reload1.c (free_reg_equiv): Likewise.
16227         * sched-deps.c (free_deps): Likewise.
16228         * sel-sched-ir.c (fence_clear): Likewise.
16229         * sese.c (set_rename, if_region_set_false_region): Likewise.
16230         * tree-data-ref.c (free_rdg): Likewise.
16231         * tree-eh.c (lower_try_finally): Likewise.
16232         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
16233         * tree-ssa-live.c (delete_var_map): Likewise.
16234         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
16235         * tree-ssa-pre.c (phi_trans_add): Likewise.
16236
16237 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
16238
16239         PR tree-optimization/48611
16240         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
16241         beyond ERT_MUST_NOT_THROW region.
16242
16243 2011-04-20  Catherine Moore  <clm@codesourcery.com>
16244
16245         * config/mips/mips.opt (mfix-24k): New.
16246         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
16247         * config/mips/mips.md (length): Increase by 4 for stores if
16248         fixing 24K errata.
16249         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
16250         all noreorder if fixing 24K errata.
16251         * doc/invoke.texi: Document mfix-24k.
16252
16253 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
16254
16255         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
16256         quad-word modes, reduce to 9-bit index range when above 1016 limit.
16257
16258 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
16259
16260         * config/arm/arm.c (arm_gen_constant): Move movw support ....
16261         (const_ok_for_op): ... to here.
16262
16263 2011-04-20  Kai Tietz  <ktietz@redhat.com>
16264
16265         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
16266         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
16267
16268 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
16269
16270         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
16271
16272 2011-04-20  Richard Guenther  <rguenther@suse.de>
16273
16274         PR tree-optimization/47892
16275         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
16276         are if-convertible.
16277
16278 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
16279
16280         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
16281
16282 2011-04-20  Tristan Gingold  <gingold@adacore.com>
16283
16284         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
16285
16286 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
16287
16288         PR target/18145
16289
16290         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
16291         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
16292         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
16293         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
16294         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
16295
16296         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
16297         New prototype.
16298
16299         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
16300         (avr_asm_named_section, avr_asm_output_aligned_common,
16301         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
16302         New functions to update...
16303         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
16304         (avr_asm_init_sections): Overwrite section callbacks for
16305         data_section, bss_section.
16306         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
16307         from here to...
16308         (avr_file_end): ...here.
16309
16310 2011-04-20  Richard Guenther  <rguenther@suse.de>
16311
16312         PR middle-end/48695
16313         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
16314         objects and types here.  Adjust for their offset before comparing.
16315
16316 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
16317
16318         * tree-vect-stmts.c (vectorizable_store): Only chain one related
16319         statement per copy.
16320
16321 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
16322
16323         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
16324         (GIMPLE_H): Include $(INTERNAL_FN_H).
16325         (OBJS-common): Add internal-fn.o.
16326         (internal-fn.o): New rule.
16327         * internal-fn.def: New file.
16328         * internal-fn.h: Likewise.
16329         * internal-fn.c: Likewise.
16330         * gimple.h: Include internal-fn.h.
16331         (GF_CALL_INTERNAL): New gf_mask.
16332         (gimple_statement_call): Put fntype into a union with a new
16333         internal_fn field.
16334         (gimple_build_call_internal): Declare.
16335         (gimple_build_call_internal_vec): Likewise.
16336         (gimple_call_same_target_p): Likewise.
16337         (gimple_call_internal_p): New function.
16338         (gimple_call_internal_fn): Likewise.
16339         (gimple_call_fntype): Return null for internal calls.
16340         (gimple_call_set_fntype): Assert that the function is not internal.
16341         (gimple_call_set_fn): Likewise.
16342         (gimple_call_set_fndecl): Likewise.
16343         (gimple_call_set_internal_fn): New function.
16344         (gimple_call_addr_fndecl): Handle null functions.
16345         (gimple_call_return_type): Likewise null types.
16346         * gimple.c (gimple_build_call_internal_1): New function.
16347         (gimple_build_call_internal): Likewise.
16348         (gimple_build_call_internal_vec): Likewise.
16349         (gimple_call_same_target_p): Likewise.
16350         (gimple_call_flags): Handle calls to internal functions.
16351         (gimple_call_fnspec): New function.
16352         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
16353         (gimple_has_side_effects): Handle null functions.
16354         (gimple_rhs_has_side_effects): Likewise.
16355         (gimple_call_copy_skip_args): Handle calls to internal functions.
16356         * cfgexpand.c (expand_call_stmt): Likewise.
16357         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
16358         * gimple-fold.c (gimple_fold_call): Handle null functions.
16359         (gimple_fold_stmt_to_constant_1): Don't fold
16360         calls to internal functions.
16361         * gimple-low.c (gimple_check_call_args): Handle calls to internal
16362         functions.
16363         * gimple-pretty-print.c (dump_gimple_call): Likewise.
16364         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
16365         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
16366         (do_warn_unused_result): Likewise.
16367         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
16368         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
16369         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
16370         the target of a call.
16371         (initialize_hash_element): Update accordingly.
16372         (hashable_expr_equal_p): Use gimple_call_same_target_p.
16373         (iterative_hash_hashable_expr): Handle calls to internal functions.
16374         (print_expr_hash_elt): Likewise.
16375         * tree-ssa-pre.c (can_value_number_call): Likewise.
16376         (eliminate): Handle null functions.
16377         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
16378         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
16379         (find_func_aliases): Likewise.
16380         * value-prof.c (gimple_ic_transform): Likewise.
16381         (gimple_indirect_call_to_profile): Likewise.
16382         * lto-streamer-in.c (input_gimple_stmt): Likewise.
16383         * lto-streamer-out.c (output_gimple_stmt): Likewise.
16384
16385 2011-04-19  Jan Hubicka  <jh@suse.cz>
16386
16387         * ipa-inline-transform.c (save_inline_function_body): Add comments.
16388         * ipa-inline.c (inline_small_functions): Compute summaries first,
16389         populate heap later.
16390
16391 2011-04-19  Jan Hubicka  <jh@suse.cz>
16392
16393         * cgraph.h (save_inline_function_body): Remove.
16394         * ipa-inline-transform.c: New file, broke out of...
16395         * ipa-inline.c: ... this one; Update toplevel comment.
16396         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
16397         make global.
16398         (update_noncloned_frequencies): Move to ipa-inline-transform.c
16399         (cgraph_mark_inline_edge): Rename to inline_call; move to
16400         ipa-inline-transform.c.
16401         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
16402         move to ipa-inline-transform.c
16403         (recursive_inlining, inline_small_functions, flatten_function,
16404         ipa_inline, inline_always_inline_functions,
16405         early_inline_small_functions): Update.
16406         (inline_transform): Move to ipa-inline-transform.c.
16407         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
16408         Declare.
16409         * Makefile.in (ipa-inline-transform.o): New file.
16410         * cgraphunit.c (save_inline_function_body): Move to
16411         ipa-inline-transform.c
16412
16413 2011-04-19  DJ Delorie  <dj@redhat.com>
16414
16415         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
16416         registers if we already know there aren't any.
16417         (m32c_emit_epilogue): Don't emit a barrier here.
16418         (m32c_emit_eh_epilogue): Likewise.
16419         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
16420         operands at expand time.
16421         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
16422         int" wchar type.
16423         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
16424         duplicates.  Provide aliases instead.
16425         * config/m32c/prologue.md (eh_return): Emit a barrier here.
16426         (eh_epilogue): Add a "(return)" here as a hint to other parts of
16427         the compiler.
16428
16429 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
16430
16431         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
16432         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
16433         (general_or_i64_p, sparc_register_move_cost): New function.
16434
16435 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16436
16437         * doc/install.texi (Configuration, --enable-threads): Remove mach.
16438         Add lynx, mipssde.  Sort table.
16439
16440 2011-04-19  Xinliang David Li  <davidxl@google.com>
16441
16442         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
16443         not negative.
16444
16445 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
16446
16447         PR target/48678
16448         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
16449         is a SUBREG with non-MODE_INT mode inside of it.
16450
16451 2011-04-19  Martin Jambor  <mjambor@suse.cz>
16452
16453         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
16454         also according to actual contants.
16455         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
16456         (gimple_fold_call): Use it.
16457         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
16458
16459 2011-04-19  Martin Jambor  <mjambor@suse.cz>
16460
16461         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
16462         non-pointer assignments.
16463
16464 2011-04-19  Martin Jambor  <mjambor@suse.cz>
16465
16466         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
16467         account anc_offset and otr_type from the indirect edge info.
16468         * ipa-prop.c (get_ancestor_addr_info): New function.
16469         (compute_complex_ancestor_jump_func): Assignment analysis moved to
16470         get_ancestor_addr_info, call it.
16471         (ipa_note_param_call): Do not initialize information about polymorphic
16472         calls, return the indirect call graph edge.  Remove the last
16473         parameter, adjust all callers.
16474         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
16475         parameters.  Initialize polymorphic information in the indirect edge.
16476
16477 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
16478
16479         PR lto/48148
16480         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
16481         the types if they have different enumeration identifiers.
16482
16483 2011-04-19  Jan Hubicka  <jh@suse.cz>
16484
16485         * cgraph.h (cgraph_optimize_for_size_p): Declare.
16486         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
16487         * predict.c (cgraph_optimize_for_size_p): Break out from ...
16488         (optimize_function_for_size_p) ... here.
16489
16490 2011-04-19  Richard Guenther  <rguenther@suse.de>
16491
16492         PR lto/48207
16493         * tree.c (free_lang_data): Do not reset the decl-assembler-name
16494         langhook.
16495
16496 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
16497
16498         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
16499         if DECL_NO_INLINE_WARNING_P is set on the function.
16500
16501 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
16502
16503         PR fortran/47976
16504         * reload1.c (inc_for_reload): Return void. All callers changed.
16505         (emit_input_reload_insns): Don't try to delete previous output
16506         reloads to a register, or record spill_reg_store for autoincs.
16507
16508 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
16509
16510         * gengtype.h: Updated copyright year.
16511         (struct input_file_st): Add inpisplugin field.
16512         (type_fileloc): New function.
16513         * gengtype.c
16514         (write_typed_struct_alloc_def): Add gcc_assert.
16515         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
16516         (write_typed_alloc_defns): Don't output for plugin files.
16517         (input_file_by_name): Clear inpisplugin field.
16518         (main): Set inpisplugin field for plugin files.
16519
16520 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
16521
16522         * gengtype-state.c (string_eq): New.
16523         (read_state): Use string_eq instead of strcmp when creating the
16524         state_ident_tab.
16525
16526 2011-04-19  Wei Guozhi  <carrot@google.com>
16527
16528         PR target/47855
16529         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
16530         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
16531         linkage.
16532         * config/arm/constraints.md (Uu): New constraint.
16533         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
16534
16535 2011-04-19  Tristan Gingold  <gingold@adacore.com>
16536
16537         * config.gcc (-*-*-*vms): Added.
16538         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
16539         definitions moved.
16540         * config/vms/vms-ld.c: New file.
16541         * config/vms/vms-ar.c: New file.
16542         * config/vms/t-vmsnative: New file.
16543
16544 2011-04-18  Xinliang David Li  <davidxl@google.com>
16545
16546         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
16547
16548 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
16549
16550         PR middle-end/48661
16551         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
16552         if TREE_TYPE (v) is non-NULL.
16553
16554         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
16555         gimple_get_virt_mehtod_for_binfo.
16556         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
16557         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
16558         callers.
16559         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
16560
16561 2011-04-18  Michael Matz  <matz@suse.de>
16562             Steve Ellcey  <sje@cup.hp.com>
16563
16564         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
16565         use its mode as source mode if it isn't VOIDmode.
16566
16567 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
16568
16569         * doc/passes.texi: Fill crossref nodes.
16570
16571 2011-04-18  Jim Meyering  <meyering@redhat.com>
16572
16573         Fix doubled-word typos in comments and strings
16574         * config/alpha/vms-unwind.h: s/for for/for/
16575         * config/arm/unwind-arm.h: Likewise.
16576         * config/microblaze/microblaze.c: Likewise.
16577         * config/sh/constraints.md: s/in in/in/
16578         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
16579
16580 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
16581
16582         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
16583         (AVX_FLOAT_MODE_P): Ditto.
16584         (AVX128_VEC_FLOAT_MODE_P): Ditto.
16585         (AVX256_VEC_FLOAT_MODE_P): Ditto.
16586         (AVX_VEC_FLOAT_MODE_P): Ditto.
16587         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
16588         (UNSPEC_MASKSTORE): Ditto.
16589         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
16590         Merge from <sse>_movmsk<ssemodesuffix> and
16591         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
16592         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
16593         iterator.
16594         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
16595         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
16596         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
16597
16598 2011-04-18  Jan Hubicka  <jh@suse.cz>
16599
16600         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
16601
16602         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
16603         (want_inline_function_called_once_p): Break out the logic from
16604         ipa_inline.
16605         (edge_badness): Ensure that profile is not misupdated.
16606         (lookup_recursive_calls): Prioritize by call frequencies.
16607         (inline_small_functions): Move program size estimates here;
16608         actually process whole queue even when unit growth has been
16609         met. (to properly compute inline_failed reasons and for the
16610         case unit size decrease.) Revisit comments on recursive inlining.
16611         (ipa_inline): Remove unit summary code; first inline hot calls
16612         of functions called once, cold calls next.
16613         (order, nnodes): Remove unused variables.
16614         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
16615         (GTFILES): Remove ipa-inline.c
16616         * sel-sched.c (fill_insns): Silence uninitialized var warning.
16617
16618 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
16619
16620         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
16621
16622 2011-04-18  Jie Zhang  <jie@codesourcery.com>
16623             Richard Earnshaw  <rearnsha@arm.com>
16624
16625         * arm.c (neon_builtin_type_bits): Remove.
16626         (typedef enum neon_builtin_mode): New.
16627         (T_MAX): Don't define.
16628         (typedef enum neon_builtin_datum): Remove bits, codes[],
16629         num_vars and base_fcode.  Add mode, code and fcode.
16630         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
16631         VAR10): Change accordingly.
16632         (neon_builtin_data[]): Change accordingly
16633         (arm_init_neon_builtins): Change accordingly.
16634         (neon_builtin_compare): Remove.
16635         (locate_neon_builtin_icode): Remove.
16636         (arm_expand_neon_builtin): Change accordingly.
16637
16638         * arm.h (enum arm_builtins): Move to ...
16639         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
16640
16641         * arm.c (arm_builtin_decl): Declare.
16642         (TARGET_BUILTIN_DECL): Define.
16643         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
16644         (arm_builtin_decls[]): New.
16645         (arm_init_neon_builtins): Store builtin declarations in
16646         arm_builtin_decls[].
16647         (arm_init_tls_builtins): Likewise.
16648         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
16649         (arm_builtin_decl): New.
16650
16651 2011-04-18  Richard Guenther  <rguenther@suse.de>
16652
16653         * tree.c (upper_bound_in_type): Build properly canonicalized
16654         INTEGER_CSTs.
16655         (lower_bound_in_type): Likewise.
16656
16657 2011-04-18  Richard Guenther  <rguenther@suse.de>
16658
16659         * gimple.h (gimple_call_addr_fndecl): New function.
16660         (gimple_call_fndecl): Use it.
16661         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
16662         for direct calls.
16663         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
16664         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
16665
16666 2011-04-18  Richard Guenther  <rguenther@suse.de>
16667
16668         PR middle-end/48650
16669         * tree.c (build_string): STRING_CST is now derived from tree_typed.
16670
16671 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
16672
16673         PR lto/48492
16674         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
16675         DECL_IN_CONSTANT_POOL without RTL.
16676
16677 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
16678             Ira Rosen  <ira.rosen@linaro.org>
16679
16680         PR target/48252
16681         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
16682         to match neon_vzip/vuzp/vtrn_internal.
16683         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
16684         outputs explicitly dependent on both inputs.
16685         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
16686
16687 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
16688
16689         PR tree-optimization/48616
16690         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
16691         whether the shift is by scalar or vector based on whether all SLP
16692         scalar stmts have the same rhs.
16693
16694 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
16695
16696         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
16697         memory operands.
16698
16699 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
16700
16701         PR target/43700
16702         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
16703         registers.
16704
16705 2011-04-17  Jan Hubicka  <jh@suse.cz>
16706
16707         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
16708         * cgrpahunit.c (cgraph_finalize_function): Do not set
16709         finalized_by_frontend.
16710         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
16711         finalized_by_frontend.
16712
16713 2011-04-17  Jan Hubicka  <jh@suse.cz>
16714
16715         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
16716         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
16717         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
16718         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
16719         method.
16720         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
16721         gimple-fold.c
16722         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
16723
16724 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
16725
16726         PR lto/48538
16727         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
16728         is non-null before accessing it.
16729         (input_cgraph): Remove trailing spaces.
16730
16731 2011-04-17  Revital Eres  <revital.eres@linaro.org>
16732
16733         * params.def (sms-min-sc): New param flag.
16734         * modulo-sched.c (sms_schedule): Use it.
16735         * doc/invoke.texi (sms-min-sc): Document it.
16736
16737 2011-04-17  Jan Hubicka  <jh@suse.cz>
16738
16739         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
16740         present, also set gimple_call_set_cannot_inline.
16741         * ipa-inline.c: Update toplevel comment.
16742         (MAX_TIME): Remove.
16743         (cgraph_clone_inlined_nodes): Fix linebreaks.
16744         (cgraph_check_inline_limits): Restructure to ...
16745         (caller_growth_limits): ... this one; be more tolerant
16746         on growth in nested inline chains; add explanatory comment;
16747         fix stack accounting thinko introduced by previous patch.
16748         (cgraph_default_inline_p): Remove.
16749         (report_inline_failed_reason): New function.
16750         (can_inline_edge_p): New function.
16751         (can_early_inline_edge_p): New function.
16752         (leaf_node_p): Move upwards in file.
16753         (want_early_inline_function_p): New function.
16754         (want_inline_small_function_p): New function.
16755         (want_inline_self_recursive_call_p): New function.
16756         (cgraph_edge_badness): Rename to ...
16757         (edge_badness) ... this one; fix linebreaks.
16758         (update_edge_key): Update call of edge_baddness; add
16759         detailed dump about queue updates.
16760         (update_caller_keys): Use can_inline_edge_p and
16761         want_inline_small_function_p.
16762         (cgraph_decide_recursive_inlining): Rename to...
16763         (recursive_inlining): Use can_inline_edge_p and
16764         want_inline_self_recursive_call_p; simplify and remove no longer
16765         valid FIXME.
16766         (cgraph_set_inline_failed): Remove.
16767         (add_new_edges_to_heap): Use can_inline_edge_p and
16768         want_inline_small_function_p.
16769         (cgraph_decide_inlining_of_small_functions): Rename to ...
16770         (inline_small_functions): ... this one; cleanup; use
16771         can/want predicates; cleanup debug ouput; work edges till fibheap
16772         is exhausted and do not stop once unit growth is reached; remove
16773         later loop processing remaining edges.
16774         (cgraph_flatten): Rename to ...
16775         (flatten_function): ... this one; use can_inline_edge_p
16776         and can_early_inline_edge_p predicates.
16777         (cgraph_decide_inlining): Rename to ...
16778         (ipa_inline): ... this one; remove unreachable nodes before
16779         inlining functions called once; simplify the pass.
16780         (cgraph_perform_always_inlining): Rename to ...
16781         (inline_always_inline_functions): ... this one; use
16782         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
16783         (cgraph_decide_inlining_incrementally): Rename to ...
16784         (early_inline_small_functions): ... this one; simplify
16785         using new predicates; cleanup; make dumps prettier.
16786         (cgraph_early_inlining): Rename to ...
16787         (early_inliner): newer inline regular functions into always-inlines;
16788         fix updating of call stmt summaries.
16789         (pass_early_inline): Update for new names.
16790         (inline_transform): Fix formating.
16791         (gate_cgraph_decide_inlining): Rename to ...
16792         (pass_ipa_inline): ... this one.
16793         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
16794         * ipa-inline-analysis.c (dump_inline_summary): Update.
16795         (compute_inline_parameters): Do not compute disregard_inline_limits;
16796         look for mismatching arguments.
16797         (estimate_growth): Fix handlig of non-trivial self recursion.
16798         (inline_read_summary): Do not read info->disregard_inline_limits.
16799         (inline_write_summary): Do not write info->disregard_inline_limits.
16800         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
16801         and move all checks into can_inline_edge_p predicate; re-enable code
16802         comparing optimization levels.
16803         (expand_call_inline): Do not test inline_forbidden_into_p.
16804         * Makefile.in (ipa-inline.o): Update arguments.
16805
16806 2011-04-17  Revital Eres  <revital.eres@linaro.org>
16807
16808         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
16809
16810 2011-04-17  Revital Eres  <revital.eres@linaro.org>
16811
16812         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
16813
16814 2011-04-17  Michael Matz  <matz@suse.de>
16815
16816         PR tree-optimization/48622
16817         PR lto/48645
16818         * ipa-inline-analysis.c (inline_read_summary): Read size/time
16819         in same order as they're written.
16820
16821 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16822
16823         * config/pa/predicates.md: Reorganize and simplify predicates.
16824         Eliminate duplicate code checks.
16825         (arith_operand): Rename to arith14_operand
16826         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
16827         * config/pa/pa.md: Use renamed operands.
16828         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
16829         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
16830         arith11_operand, adddi3_operand, indexed_memory_operand,
16831         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
16832         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
16833         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
16834         move_dest_operand, move_src_operand, prefetch_cc_operand,
16835         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
16836         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
16837         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
16838         div_operand, int5_operand, movb_comparison_operator,
16839         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
16840         arith_double_operand, ireg_operand, lhs_lshift_operand,
16841         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
16842         integer_store_memory_operand): Likewise.
16843         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
16844         (integer_store_memory_operand, read_only_operand,
16845         function_label_operand, borx_reg_operand,
16846         non_hard_reg_operand): Likewise.
16847         (eq_neq_comparison_operator): Delete unused operator.
16848         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
16849         function_label_operand.
16850         (emit_move_sequence): Likewise.
16851
16852 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
16853
16854         * config/i386/sse.md (sseunpackmode): New mode attribute.
16855         (ssepackmode): Ditto.
16856         (vec_pack_trunc_<mode>): Macroize expander from
16857         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
16858         (vec_unpacks_lo_<mode>): Macroize expander from
16859         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
16860         (vec_unpacks_hi_<mode>): Macroize expander from
16861         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
16862         (vec_unpacku_lo_<mode>): Macroize expander from
16863         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
16864         (vec_unpacku_hi_<mode>): Macroize expander from
16865         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
16866         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
16867         ix86_expand_sse4_unpack.
16868         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
16869
16870 2011-04-16  Jan Hubicka  <jh@suse.cz>
16871
16872         * cgraphbuild.c: Include ipa-inline.h.
16873         (reset_inline_failed): Use initialize_inline_failed.
16874         * cgraph.c: Include ipa-inline.h.
16875         (cgraph_create_node_1): Do not initialize estimated_growth.
16876         (initialize_inline_failed): More to ipa-inline-analysis.c
16877         (dump_cgraph_node): Do not dump inline flags.
16878         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
16879         and disregard_inline_limits flags.
16880         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
16881         time, size, estimated_growth.
16882         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
16883         Update.
16884         * cgraphunit.c (cgraph_decide_is_function_needed): Use
16885         DECL_DISREGARD_INLINE_LIMITS.
16886         (cgraph_analyze_function): Do not initialize
16887         node->local.disregard_inline_limits.
16888         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
16889         inlinable, versionable and disregard_inline_limits.
16890         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
16891         cgraph_check_inline_limits, cgraph_default_inline_p,
16892         cgraph_edge_badness, update_caller_keys, update_callee_keys,
16893         add_new_edges_to_heap): Update.
16894         (cgraph_decide_inlining_of_small_function): Update; set
16895         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
16896         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
16897         cgraph_decide_inlining_incrementally): Update.
16898         * ipa-inline.h (inline_summary): Add inlinable, versionable,
16899         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
16900         time, size and estimated_growth parameters.
16901         (estimate_edge_growth): Update.
16902         (initialize_inline_failed): Declare.
16903         * ipa-split.c: Include ipa-inline.h
16904         (execute_split_functions): Update.
16905         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
16906         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
16907         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
16908         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
16909         estimated_growth to INT_MIN.
16910         (inline_node_duplication_hook): Likewise.
16911         (dump_inline_summary): Dump new fields.
16912         (compute_inline_parameters): Update.
16913         (estimate_edge_time, estimate_time_after_inlining,
16914         estimate_size_after_inlining, estimate_growth, inline_read_summary,
16915         inline_write_summary):
16916         (initialize_inline_failed): Move here from cgraph.c.
16917         * tree-sra.c: Include ipa-inline.h.
16918         (ipa_sra_preliminary_function_checks): Update.
16919         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
16920         ipa-inline.h.
16921
16922 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
16923
16924         * config/i386/sse.md (V16): New mode iterator.
16925         (VI1, VI8): Ditto.
16926         (AVXMODEQI, AVXMODEDI): Remove.
16927         (sse2, sse3): New mode attribute.
16928         (mov<mode>): Use V16 mode iterator.
16929         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
16930         (push<mode>1): Use V16 mode iterator.
16931         (movmisalign<mode>): Ditto.
16932         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
16933         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
16934         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
16935         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
16936         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
16937         avx_movdqu<avxmodesuffix>.
16938         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
16939         *avx_movdqu<avxmodesuffix>.
16940         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
16941         avx_lddqu<avxmodesuffix>.
16942         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
16943         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
16944         avx_movnt<AVXMODEDI:mode>.
16945         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
16946         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
16947
16948 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
16949
16950         PR target/48629
16951         * haifa-sched.c (prune_ready_list, schedule_block): Use
16952         sched_pressure_p rather than flag_sched_pressure.
16953
16954 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
16955
16956         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
16957         cgraph_get_node instead of cgraph_get_create_node.
16958
16959 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
16960
16961         * cfgexpand.c (expand_debug_expr): Use
16962         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
16963
16964 2011-04-15  Michael Matz  <matz@suse.de>
16965
16966         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
16967         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
16968         * function.c (gimplify_parameters): Ditto.
16969         * gimplify.c (gimplify_vla_decl): Ditto.
16970
16971         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
16972         (gimple_call_set_alloca_for_var): New inline function.
16973         (gimple_call_alloca_for_var_p): Ditto.
16974         * gimple.c (gimple_build_call_from_tree): Remember
16975         CALL_ALLOCA_FOR_VAR_P state.
16976         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
16977
16978         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
16979         calls if they were for VLA objects.
16980
16981 2011-04-15  Martin Jambor  <mjambor@suse.cz>
16982
16983         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
16984         of ADR_EXPRs.
16985
16986 2011-04-15  Martin Jambor  <mjambor@suse.cz>
16987
16988         PR middle-end/48601
16989         * tree-emutls.c (lower_emutls_function_body): Call
16990         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
16991         result is non-NULL.
16992
16993 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
16994
16995         * c-decl.c (detect_field_duplicates): Call
16996         objc_detect_field_duplicates instead of objc_get_interface_ivars.
16997
16998 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
16999
17000         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
17001         * gimple.c (gimple_asm_clobbers_memory_p): Define.
17002         * ipa-pure-const.c (check_stmt): Call it.
17003         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
17004
17005 2011-04-15  Richard Guenther  <rguenther@suse.de>
17006
17007         PR tree-optimization/48290
17008         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
17009         Properly decide inhibiting propagation based on the valueized
17010         operand.  Do loop-closed SSA form preserving here ...
17011         (init_copy_prop): ... not here.
17012
17013 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
17014
17015         PR target/48612
17016         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
17017         (*ieee_smax<mode>3): Likewise.
17018
17019 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17020
17021         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
17022         Replace match_operand with match_dup for the third operand in
17023         these expanders.
17024
17025 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
17026
17027         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
17028         to track processing of conditionals.  Update all callers.
17029         (try_combine, simplify_if_then_else): Update.
17030
17031 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
17032
17033         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
17034         -fsched-pressure.
17035
17036 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
17037
17038         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
17039         instead of match_operand for operand 3.
17040
17041 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
17042
17043         * recog.h (insn_operand_data): Add an "allows_mem" field.
17044         * genoutput.c (output_operand_data): Initialize it.
17045         * optabs.c (maybe_legitimize_operand_same_code): New function.
17046         (maybe_legitimize_operand): Use it when matching the original
17047         op->value.
17048
17049 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
17050
17051         * gimplify.c: Fix issues in comments throughout.
17052         (voidify_wrapper_expr): Fix long line.
17053         (build_stack_save_restore): Likewise.
17054         (gimplify_loop_expr): Likewise.
17055         (gimplify_compound_lval): Likewise.
17056         (gimplify_init_ctor_eval): Likewise.
17057         (gimplify_modify_expr_rhs): Likewise.
17058         (omp_notice_threadprivate_variable): Likewise.
17059
17060 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
17061
17062         * cfgexpand.c (expand_call_stmt): Convert the function type to the
17063         original one if this is not a builtin function.
17064
17065 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
17066
17067         PR target/48605
17068         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
17069         offset it as needed based on top 2 bits in operands[3], change
17070         MEM mode to SFmode and mask those 2 bits away from operands[3].
17071
17072 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
17073
17074         * c-parser.c (c_parser_objc_protocol_definition): Updated for
17075         change from objc_declare_protocols() to objc_declare_protocol().
17076
17077 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
17078
17079         * config/i386/sse.md (sse4_1): New mode attribute.
17080         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
17081         avx_blend<ssemodesuffix><avxmodesuffix> and
17082         sse4_1_blend<ssemodesuffix> using VF mode iterator.
17083         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
17084         avx_blendv<ssemodesuffix><avxmodesuffix> and
17085         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
17086         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
17087         avx_dp<ssemodesuffix><avxmodesuffix> and
17088         sse4_1_dp<ssemodesuffix> using VF mode iterator.
17089         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
17090         (sse4_1_packusdw): Merge with *avx_packusdw.
17091         (sse4_1_pblendvb): Merge with *avx_pblendvb.
17092         (sse4_1_pblendw): Merge with *avx_pblendw.
17093         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
17094         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
17095         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
17096         VF mode iterator.
17097         (sse4_1_round<ssescalarmodesuffix>): Merge with
17098         *avx_round<ssescalarmodesuffix>.
17099         (aesenc): Merge with *avx_aesenc.
17100         (aesenclast): Merge with *avx_aesenclast.
17101         (aesdec): Merge with *avx_aesdec.
17102         (aesdeclast): Merge with *avx_aesdeclast.
17103         (pclmulqdq): Merge with *pclmulqdq.
17104         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
17105         New predicate.
17106         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
17107
17108 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
17109
17110         PR middle-end/48608
17111         * cfgexpand.c (get_decl_align_unit): Renamed to ...
17112         (align_local_variable): This.  Update DECL_ALIGN.
17113         (add_stack_var): Updated.
17114         (expand_one_stack_var): Likewise.
17115
17116 2011-04-14  Richard Guenther  <rguenther@suse.de>
17117
17118         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
17119         Remove.
17120         (dse_initialize_block_local_data, dse_leave_block,
17121         record_voperand_set, get_stmt_uid): Likewise.
17122         (dse_possible_dead_store_p): Allow any kind of killing stmt.
17123         (dse_optimize_stmt): Remove voperand set handling code.
17124         Simplify and improve to handle any kind of killing stmt.
17125         (dse_record_phi): Remove.
17126         (dse_enter_block): Simplify.
17127         (tree_ssa_dse): Likewise.
17128         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
17129
17130 2011-04-14  Jan Hubicka  <jh@suse.cz>
17131
17132         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
17133         * cgraph.h (struct inline_summary): Move to ipa-inline.h
17134         (cgraph_local_info): Remove inline_summary.
17135         * ipa-cp.c: Include ipa-inline.h.
17136         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
17137         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
17138         accesor.
17139         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
17140         (input_overwrite_node): Do not set inline summary.
17141         (input_node): Do not stream inline summary.
17142         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
17143         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
17144         growth; we do not have inline parameters computed for that anyway.
17145         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
17146         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
17147         (inline_summary_t): New type and VECtor.
17148         (debug_inline_summary, dump_inline_summaries): Declare.
17149         (inline_summary): Use VOCtor.
17150         (estimate_edge_growth): Kill hack computing call stmt size directly.
17151         * lto-section-in.c (lto_section_name): Add inline section.
17152         * ipa-inline-analysis.c: Include lto-streamer.h
17153         (node_removal_hook_holder, node_duplication_hook_holder): New holders
17154         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
17155         (inline_summary_vec): Define.
17156         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
17157         dump_inline_summaries): New functions.
17158         (estimate_function_body_sizes): Properly compute size/time of outgoing
17159         calls.
17160         (compute_inline_parameters): Alloc inline_summary; do not compute
17161         size/time of incomming calls.
17162         (estimate_edge_time): Avoid missing time summary hack.
17163         (inline_read_summary): Read inline summary info.
17164         (inline_write_summary): Write inline summary info.
17165         (inline_free_summary): Free all hooks and inline summary vector.
17166         * lto-streamer.h: Add LTO_section_inline_summary section.
17167         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
17168         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
17169
17170 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
17171
17172         * tree-vectorizer.h (vect_strided_store_supported): Add a
17173         HOST_WIDE_INT argument.
17174         (vect_strided_load_supported): Likewise.
17175         (vect_permute_store_chain): Return void.
17176         (vect_transform_strided_load): Likewise.
17177         (vect_permute_load_chain): Delete.
17178         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
17179         count argument.  Check that the count is a power of two.
17180         (vect_strided_load_supported): Likewise.
17181         (vect_permute_store_chain): Return void.  Update after above changes.
17182         Assert that the access is supported.
17183         (vect_permute_load_chain): Likewise.
17184         (vect_transform_strided_load): Return void.
17185         * tree-vect-stmts.c (vectorizable_store): Update calls after
17186         above interface changes.
17187         (vectorizable_load): Likewise.
17188         (vect_analyze_stmt): Don't check for strided powers of two here.
17189
17190 2011-04-14  Richard Guenther  <rguenther@suse.de>
17191
17192         PR tree-optimization/48590
17193         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
17194         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
17195         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
17196         BUILT_IN_STACK_SAVE.
17197         * tree-ssa-dce.c (propagate_necessity): Handle
17198         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
17199
17200 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
17201
17202         * c-parser.c (c_parser_objc_class_declaration): Updated call to
17203         objc_declare_class.
17204
17205 2011-04-14  Richard Guenther  <rguenther@suse.de>
17206
17207         * tree.h (get_object_alignment_1): Declare.
17208         * builtins.c (get_object_alignment_1): Split out worker from ...
17209         (get_object_alignment): ... here.
17210         * fold-const.c (get_pointer_modulus_and_residue): Use
17211         get_object_alignment_1.
17212
17213 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
17214
17215         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
17216         type parameter.
17217         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
17218         parameter.  Generalise code to handle arrays as well as vectors.
17219         (vect_setup_realignment): Update accordingly.
17220         * tree-vect-stmts.c (vectorizable_store): Likewise.
17221         (vectorizable_load): Likewise.
17222
17223 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
17224
17225         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
17226         within the per-copy loop.
17227
17228 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
17229
17230         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
17231         in the dump file.
17232
17233 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
17234
17235         * doc/options.texi (Negative): Explicitly mention that the
17236         Negative chain must be circular.
17237
17238 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
17239
17240         * function.h (block_chainon): Declare.
17241         * function.c (block_chainon): Define.
17242
17243 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
17244             Eric Weddington  <eric.weddington@atmel.com>
17245             Georg-Johann Lay  <avr@gjlay.de>
17246
17247         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
17248         New Includes
17249         (avr_init_builtins, avr_expand_builtin,
17250         avr_expand_delay_cycles, avr_expand_unop_builtin,
17251         avr_expand_binop_builtin ): New functions.
17252         (avr_builtin_id): New enum
17253         (struct avr_builtin_description): New struct
17254         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
17255         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
17256
17257         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
17258         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
17259         UNSPECV_DELAY_CYCLES): new enumeration values
17260         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
17261         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
17262         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
17263         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
17264         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
17265         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
17266         "fmulsu"): New insns
17267
17268         * config/avr/avr-c.c: fix line endings
17269         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
17270         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
17271         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
17272         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
17273         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
17274
17275         * doc/extend.texi (AVR Built-in Functions): New node
17276         (Target Builtins): Add documentation of AVR
17277         built-in functions.
17278
17279 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
17280
17281         PR target/44643
17282         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
17283         alone. Error if non-const data has attribute progmem.
17284
17285 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
17286
17287         * tree.h (struct tree_constructor): Include tree_typed instead of
17288         tree_common.
17289         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
17290         TS_TYPED instead of TS_COMMON.
17291
17292 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
17293
17294         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
17295         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
17296         (sse2_psadbw): Merge with *avx_psadbw.
17297         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
17298         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
17299         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
17300         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
17301         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
17302         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
17303         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
17304         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
17305         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
17306         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
17307         (ssse3_palignrti): Merge with *avx_palignrti.
17308
17309 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
17310
17311         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
17312         * tree-ssanames.c (fini_ssanames): VEC_free it.
17313         (make_ssa_name_fn): Update for VECness of free_ssanames.
17314         (release_ssa_name, release_dead_ssa_names): Likewise.
17315         * tree.h (struct tree_ssa_name): Include tree_typed instead of
17316         tree_common.
17317         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
17318         TS_TYPED instead of TS_COMMON.
17319
17320 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
17321
17322         * postreload-gcse.c (gcse_after_reload_main): Add calls to
17323         statistics_counter_event.
17324         * tree-ssa-copyrename.c (stats): Define.
17325         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
17326         statistics_counter_event.
17327         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
17328         (bswap_stats, widen_mul_stats): Define.
17329         (insert_reciprocals): Increment rdivs_inserted.
17330         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
17331         rfuncs_inserted.  Add calls to statistics_counter_event.
17332         (execute_cse_sincos_1): Increment inserted.
17333         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
17334         statistics_counter_event.
17335         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
17336         of bswap_stats.  Add calls to statistics_counter_event.
17337         (convert_mult_to_widen): Increment widen_mults_inserted.
17338         (convert_plusminus_to_widen): Increment maccs_inserted.
17339         (convert_mult_to_fma): Increment fmas_inserted.
17340         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
17341         calls to statistics_counter_event.
17342
17343 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
17344
17345         PR rtl-optimization/48455
17346         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
17347         `temp_costs->mem_cost'.
17348
17349 2011-04-13  Jan Hubicka  <jh@suse.cz>
17350
17351         * ipa-inline.h: New file.
17352         * ipa-inline-analysis.c: New file. Broken out of ...
17353         * ipa-inline.c: ... this file; update toplevel comment;
17354         include ipa-inline.h
17355         (inline_summary): Move to ipa-inline.h
17356         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
17357         ipa-inline-analysis.c.
17358         (cgraph_estimate_time_after_inlining): Rename to
17359         estiamte_time_after_inlining; move to ipa-inline-analysis.c
17360         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
17361         to estimate_edge_growth.
17362         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
17363         rename to estimate_size_after_inlining.
17364         (cgraph_mark_inline_edge): Update for new naming convention.
17365         (cgraph_check_inline_limits): Likewise.
17366         (cgraph_edge_badness): Likewise.
17367         (cgraph_decide_recursive_inlining): Likewise.
17368         (cgraph_decide_inlining_of_small_functions): Likewise.
17369         (cgraph_decide_inlining_incrementally): Likewise.
17370         (cgraph_estimate_growth): Rename to estimate_growth; move to
17371         ipa-inline-analysis.c.
17372         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
17373         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
17374         (compute_inline_parameters): Likewise.
17375         (compute_inline_parameters_for_current): Likewise.
17376         (pass_inline_parameters): Likewise.
17377         (inline_indirect_intraprocedural_analysis): Likewise.
17378         (analyze_function): Rename to inline_analyze_function; likewise.
17379         (add_new_function): Move to ipa-inline-analysis.c.
17380         (inline_generate_summary): Likewise.
17381         (inline_read_summary): Likewise.
17382         (inline_write_summary): Likewise.
17383         * Makefile.in (ipa-inline-analysis.c): New file.
17384
17385 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17386
17387         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
17388         * configure: Regenerate.
17389
17390 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
17391
17392         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
17393         instead of tree_common.
17394         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
17395         Likewise.
17396         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
17397         TS_TYPED rather than TS_COMMON.
17398         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
17399
17400 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
17401
17402         PR target/45263
17403         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
17404         r20 around calls of __tablejump_elpm__
17405
17406 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
17407
17408         PR middle-end/48591
17409         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
17410         NULL.
17411         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
17412
17413 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
17414
17415         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
17416         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
17417         (cfi_vec): New typedef.
17418         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
17419         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
17420         (cie_cfi_vec): New static variable.
17421         (cie_cfi_head): Delete.
17422         (add_cfi): Accept a cfi_vec * as first argument. All callers and
17423         declaration changed. Use vector rather than list operations.
17424         (new_cfi): Don't initialize the dw_cfi_next field.
17425         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
17426         rather than list operations.
17427         (lookup_cfa): Use vector rather than list operations.
17428         (output_cfis): New argument upto. Accept a cfi_vec rather than
17429         a dw_cfi_ref list head as argument. All callers changed.
17430         Iterate over the vector using upto as a maximum index.
17431         (output_all_cfis): New static function.
17432         (output_fde): Use vector rather than list operations. Use the
17433         new upto argument for output_cfis rather than manipulating a
17434         list.
17435         (dwarf2out_begin_prologue): Change initializations to match
17436         new struct members.
17437         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
17438         from the vector length rather than searching for the end of a list.
17439         Use output_all_cfis.
17440         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
17441
17442 2011-04-13  Nick Clifton  <nickc@redhat.com>
17443
17444         * config/rx/rx.md (movmemsi): Do not use this pattern when
17445         volatile pointers are involved.
17446
17447 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
17448
17449         * config/i386/sse.md (pinsrbits): Remove.
17450         (sse2_packsswb): Merge with *avx_packsswb.
17451         (sse2_packssdw): Merge with *avx_packssdw.
17452         (sse2_packuswb): Merge with *avx_packuswb.
17453         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
17454         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
17455         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
17456         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
17457         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
17458         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
17459         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
17460         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
17461         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
17462         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
17463         (sse2_loadld): Merge with *avx_loadld.
17464         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
17465         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
17466         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
17467         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
17468         (vec_concatv2di): Merge with *vec_concatv2di_avx.
17469
17470 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
17471
17472         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
17473         calling TREE_CHAIN.
17474         * print-tree.c (print_node): Likewise.
17475         * tree-inline.c (copy_tree_r): Likewise.
17476         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
17477         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
17478         instead of TS_COMMON.
17479         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
17480         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
17481         (copy_node_stat): Zero TREE_CHAIN only if necessary.
17482         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
17483         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
17484         ...and these...
17485         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
17486         * tree.h: ...here.
17487         (TREE_CHAIN): Check for a TS_COMMON structure.
17488         (TREE_TYPE): Check for a TS_TYPED structure.
17489
17490 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
17491
17492         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
17493         cgraph_get_create_node instead of cgraph_node.
17494
17495 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
17496
17497         * c-parser.c (c_parser_initelt): Updated call to
17498         objc_build_message_expr.
17499         (c_parser_postfix_expression): Likewise.
17500
17501 2011-04-12  Kai Tietz  <ktietz@redhat.com>
17502
17503         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
17504         MASK_MS_BITFIELD_LAYOUT bit.
17505
17506 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
17507
17508         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
17509         assert it is always true.
17510         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
17511         moves.
17512
17513 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
17514
17515         * c-parser.c (c_lex_one_token): Rewritten conditional used when
17516         compiling Objective-C to be more efficient.
17517
17518 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
17519
17520         * opts-common.c (decode_cmdline_options_to_array): Remove variable
17521         argv_copied.
17522
17523 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
17524
17525         * recog.h, genoutput.c, optabs.c: Revert last patch.
17526
17527 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
17528
17529         PR target/48090
17530         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
17531
17532 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
17533
17534         * recog.h (insn_operand_data): Add an "allows_mem" field.
17535         * genoutput.c (output_operand_data): Initialize it.
17536         * optabs.c (maybe_legitimize_operand_same_code): New function.
17537         (maybe_legitimize_operand): Use it when matching the original
17538         op->value.
17539
17540 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
17541
17542         * genpreds.c (process_define_predicate): Move most processing
17543         to gensupport.c.  Continue to validate the expression.
17544         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
17545         (process_define_predicate): Move processing to gensupport.c.
17546         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
17547         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
17548         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
17549         argument.
17550         (valid_predicate_name_p): New function, split out from old
17551         genpreds.c:process_define_predicate.
17552         (process_define_predicate): New function, combining code from
17553         old genpreds.c and genrecog.c functions.
17554         (process_rtx): Call it for DEFINE_PREDICATE and
17555         DEFINE_SPECIAL_PREDICATE.
17556
17557 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
17558
17559         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
17560         size of a '%A' memory reference.
17561         (T_DREG, T_QREG): New neon_builtin_type_bits.
17562         (arm_init_neon_builtins): Assert that the load and store operands
17563         are neon_struct_operands.
17564         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
17565         (NEON_ARG_MEMORY): New builtin_arg.
17566         (neon_dereference_pointer): New function.
17567         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
17568         Handle NEON_ARG_MEMORY.
17569         (arm_expand_neon_builtin): Update after above interface changes.
17570         Use NEON_ARG_MEMORY for loads and stores.
17571         * config/arm/predicates.md (neon_struct_operand): New predicate.
17572         * config/arm/iterators.md (V_two_elem): Tweak formatting.
17573         (V_three_elem): Use BLKmode for accesses that have no associated mode.
17574         (V_four_elem): Tweak formatting.
17575         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
17576         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
17577         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
17578         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
17579         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
17580         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
17581         (neon_vst4<mode>): Replace pointer operand with a memory operand.
17582         Use %A in the output template.
17583         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
17584         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
17585         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
17586         the width of the memory access.  Remove post-increment.
17587         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
17588
17589 2011-04-12  Nick Clifton  <nickc@redhat.com>
17590
17591         * config/v850/v850.c (expand_prologue): Do not use the CALLT
17592         instruction for interrupt handlers if the target is the basic V850
17593         architecture.
17594         (expand_epilogue): Likewise.
17595
17596 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
17597
17598         PR rtl-optimization/48549
17599         * combine.c (propagate_for_debug): Also stop after BB_END of
17600         this_basic_block.  Process LAST and just stop processing after it.
17601         (combine_instructions): If last_combined_insn has been deleted,
17602         set last_combined_insn to its PREV_INSN.
17603
17604 2011-04-12  Richard Guenther  <rguenther@suse.de>
17605
17606         PR tree-optimization/46076
17607         * gimple.h (struct gimple_statement_call): Add fntype field.
17608         (gimple_call_fntype): Adjust.
17609         (gimple_call_set_fntype): New function.
17610         * gimple.c (gimple_build_call_1): Set the call function type.
17611         * gimplify.c (gimplify_call_expr): Preserve the function
17612         type the frontend used for the call.
17613         (gimplify_modify_expr): Likewise.
17614         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
17615         function type.
17616         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
17617         function type.
17618         * tree-ssa.c (useless_type_conversion_p): Function pointer
17619         conversions are useless.
17620
17621 2011-04-12  Martin Jambor  <mjambor@suse.cz>
17622
17623         * cgraph.h (cgraph_node): Remove function declaration.
17624         (cgraph_create_node): Declare.
17625         (cgraph_get_create_node): Likewise.
17626         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
17627         Updated all callers.
17628         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
17629         the decl does not already exist.  Call cgraph_get_create_node instead
17630         of cgraph_node.
17631         (cgraph_get_create_node): New function.
17632         (cgraph_same_body_alias): Update comment.
17633         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
17634         assert it does not return NULL.
17635         (cgraph_update_edges_for_call_stmt): Likewise.
17636         (cgraph_clone_edge): Likewise.
17637         (cgraph_create_virtual_clone): Likewise.
17638         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
17639         instead of cgraph_node.
17640         (cgraph_add_new_function): Call cgraph_create_node or
17641         cgraph_get_create_node instead of cgraph_node.
17642         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
17643         instead of cgraph_node.
17644         (record_eh_tables): Likewise.
17645         (mark_address): Likewise.
17646         (mark_load): Likewise.
17647         (build_cgraph_edges): Call cgraph_get_create_node instead
17648         of cgraph_node.
17649         (rebuild_cgraph_edges): Likewise.
17650         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
17651         instead of cgraph_node.
17652         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
17653         cgraph_node.
17654         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
17655         cgraph_create_node instead of cgraph_node.
17656         * c-decl.c (finish_function): Call cgraph_get_create_node instead
17657         of cgraph_node.
17658         * lto-cgraph.c (input_node): Likewise.
17659         * lto-streamer-in.c (input_function): Likewise.
17660         * varasm.c (mark_decl_referenced): Likewise.
17661         (assemble_alias): Likewise.
17662
17663 2011-04-12  Martin Jambor  <mjambor@suse.cz>
17664
17665         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
17666         instead of cgraph_node and assert it does not return NULL.
17667         * lto-streamer-in.c (lto_read_body): Likewise.
17668         * omp-low.c (new_omp_context): Likewise.
17669         (create_task_copyfn): Likewise.
17670         * tree-emutls.c (lower_emutls_function_body): Likewise.
17671         * matrix-reorg.c (transform_allocation_sites): Likewise.
17672
17673 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
17674
17675         PR c/48552
17676         * c-typeck.c (build_asm_expr): Error out on attempts to use
17677         void type outputs or inputs for constraints that allow reg or
17678         don't allow memory.
17679
17680 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
17681             Richard Earnshaw  <rearnsha@arm.com>
17682
17683         PR target/48250
17684         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
17685         to use sign-magnitude offsets. Reject unsupported unaligned
17686         cases. Add detailed description in comments.
17687         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
17688         condition from TARGET_32BIT to TARGET_ARM.
17689
17690 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
17691
17692         * tree.h (struct typed_tree): New.
17693         (struct tree_common): Include it instead of tree_base.
17694         (TREE_TYPE): Update for new location of type field.
17695         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
17696         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
17697         (union tree_node): Add typed field.
17698         * treestruct.def (TS_TYPED): New.
17699         * lto-streamer.c (check_handled_ts_structures): Handle it.
17700         * tree.c (MARK_TS_TYPED): New macro.
17701         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
17702
17703 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
17704
17705         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
17706         (force_nonfallthru): Do not alter the loop nest if no basic block
17707         was created.
17708
17709 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
17710
17711         * config/i386/sse.md (VI): New mode iterator.
17712         (SSEMODEI): Remove.
17713         (AVX256MODEI): Ditto.
17714         (AVXMODEF4P): Ditto.
17715         (avxvecpsmode): Ditto.
17716         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
17717         (sse2_andnot<mode>3): New expander.
17718         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
17719         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
17720         (<any_logic:code><mode>3): Use VI mode iterator.
17721         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
17722         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
17723         (*andnottf3): Handle AVX three-operand constraints.
17724         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
17725
17726 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
17727             Robert Millan  <rmh@gnu.org>
17728
17729         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
17730         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
17731         GNU_USER_DYNAMIC_LINKER64): Define.
17732         (REG_NAME): Don't undefine.
17733         (MD_UNWIND_SUPPORT): Undefine.
17734         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
17735         (REG_NAME): Don't undefine.
17736         (MD_UNWIND_SUPPORT): Undefine.
17737         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
17738
17739 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
17740
17741         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
17742         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
17743
17744 2011-04-11  Xinliang David Li  <davidxl@google.com>
17745
17746         * value-profile.c (check_ic_target): New function.
17747         (gimple_ic_transform): Sanity check indirect call target.
17748         * gimple-low.c (gimple_check_call_args): Interface change.
17749         (gimple_check_call_matching_types): New function.
17750         * tree-inline.c (tree_can_inline_p): Call new function.
17751
17752 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
17753
17754         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
17755         tree-pretty-print.h & realmpfr.h.
17756
17757 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
17758
17759         PR middle-end/48464
17760         * ira.c (setup_pressure_classes): Fix typo in loop condition.
17761         (setup_allocno_and_important_classes): Ditto.
17762
17763 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
17764
17765         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
17766         GNU_USER_DYNAMIC_LINKER.
17767         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
17768         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17769         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
17770         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
17771         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
17772         GNU_USER_TARGET_OS_CPP_BUILTINS.
17773         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
17774         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17775         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
17776         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17777         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
17778         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
17779         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
17780         GNU_USER_TARGET_OS_CPP_BUILTINS.
17781         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
17782         GNU_USER_DYNAMIC_LINKER.
17783         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
17784         GNU_USER_TARGET_OS_CPP_BUILTINS.
17785         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
17786         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17787         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
17788         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17789         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
17790         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
17791         GNU_USER_DYNAMIC_LINKER64): Remove.
17792         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
17793         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17794         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
17795         GNU_USER_DYNAMIC_LINKER.
17796         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
17797         GNU_USER_TARGET_OS_CPP_BUILTINS.
17798         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
17799         GNU_USER_TARGET_OS_CPP_BUILTINS.
17800         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
17801         to GNU_USER_TARGET_OS_CPP_BUILTINS.
17802         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
17803         GNU_USER_TARGET_OS_CPP_BUILTINS.
17804         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
17805         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
17806         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
17807         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
17808         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17809         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
17810         GNU_USER_DYNAMIC_LINKER.
17811         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
17812         GNU_USER_TARGET_OS_CPP_BUILTINS.
17813         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
17814         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17815         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
17816         GNU_USER_DYNAMIC_LINKER.
17817         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
17818         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17819         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
17820         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17821         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
17822         GNU_USER_DYNAMIC_LINKER.
17823         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
17824         GNU_USER_DYNAMIC_LINKERN32.
17825         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
17826         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
17827         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
17828         GNU_USER_DYNAMIC_LINKER32.
17829         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
17830         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17831         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
17832         GNU_USER_DYNAMIC_LINKER.
17833         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
17834         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17835         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
17836         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17837         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
17838         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
17839         GNU_USER_DYNAMIC_LINKER32.
17840         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
17841         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
17842         GNU_USER_DYNAMIC_LINKER.
17843         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
17844         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17845         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
17846         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
17847         GNU_USER_DYNAMIC_LINKER64.
17848         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
17849         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17850         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
17851         GNU_USER_DYNAMIC_LINKER.
17852         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
17853         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17854         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
17855         GNU_USER_DYNAMIC_LINKER.
17856         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
17857         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17858         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
17859         GNU_USER_DYNAMIC_LINKER32.
17860         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
17861         GNU_USER_DYNAMIC_LINKER64.
17862         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
17863         GNU_USER_DYNAMIC_LINKER64.
17864         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
17865         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17866         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
17867         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17868         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
17869
17870 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
17871
17872         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
17873         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
17874         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
17875         GNU_USER_DYNAMIC_LINKER.
17876         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
17877         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
17878         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
17879         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
17880         GNU_USER_DYNAMIC_LINKER64.
17881         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
17882         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
17883         GNU_USER_LINK_EMULATION.
17884         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
17885         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
17886         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
17887         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
17888         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
17889         CPP_SPEC, CC1_SPEC): Remove.
17890         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
17891         (GNU_USER_DYNAMIC_LINKER): Define.
17892         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
17893         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
17894         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
17895         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
17896         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
17897         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
17898         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
17899         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
17900         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
17901         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
17902         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
17903         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
17904         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
17905         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
17906         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
17907         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
17908         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
17909         GNU_USER_DYNAMIC_LINKER.
17910         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
17911         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
17912         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
17913         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
17914         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
17915         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
17916         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
17917         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
17918         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
17919         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
17920
17921 2011-04-11  Kai Tietz  <ktietz@redhat.com>
17922
17923         PR target/9601
17924         PR target/11772
17925         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
17926         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
17927         comment.
17928         (ix86_is_msabi_thiscall): Removed.
17929         (ix86_is_type_thiscall): Likewise.
17930         (ix86_get_callcvt): New function.
17931         (ix86_comp_type_attributes): Simplify check.
17932         (ix86_function_regparm): Use ix86_get_callcvt for calling
17933         convention attribute checks.
17934         (ix86_return_pops_args): Likewise.
17935         (ix86_static_chain): Likewise.
17936         (x86_this_parameter): Likewise.
17937         (x86_output_mi_thunk): Likewise.
17938         (ix86_function_type_abi): Optimize check for types without attributes.
17939         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
17940         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
17941         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
17942         by flag-values.
17943         (IX86_BASE_CALLCVT): Helper macro.
17944         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
17945         Use ix86_get_callcvt for calling convention attribute checks and avoid
17946         symbol-decoration for stdcall in TARGET_RTD case.
17947         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
17948         Likewise.
17949         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
17950         for declaration.
17951
17952 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
17953
17954         * config/i386/sse.md (VI_128): New mode iterator.
17955         (VI12_128): Rename from SSEMODE12.
17956         (VI14_128): Rename from SSEMODE14.
17957         (VI124_128): New mode iterator.
17958         (VI24_128): Rename from SSEMODE248.
17959         (VI248_128): Rename from SSEMODE248.
17960         (SSEMODE124C8): Remove.
17961         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
17962         (*sse2_<plusminus_insn><mode>3): Merge with
17963         *avx_<plusminus_insn><mode>3.
17964         (*mulv8hi3): Merge with *avx_mulv8hi3.
17965         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
17966         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
17967         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
17968         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
17969         (ashr<mode>3): Merge with *avx_ashr<mode>3.
17970         (lshr<mode>3): Merge with *avx_lshr<mode>3.
17971         (ashl<mode>3): Merge with *avx_ashl<mode>3.
17972         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
17973         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
17974         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
17975         (*<smaxmin:code>v8hi3): Ditto.
17976         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
17977         (*<smaxmin:code>v16qi3): Ditto.
17978         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
17979         (*sse2_eq<mode>3): Ditto.
17980         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
17981         (*sse2_gt<mode>3): Ditto.
17982         (vcondv2di): Split out of vcond<mode>.
17983         (vconduv2di): Split out of vcondu<mode>.
17984
17985 2011-04-11  Richard Guenther  <rguenther@suse.de>
17986
17987         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
17988         before calling tree_low_cst.
17989
17990 2011-04-11  Richard Guenther  <rguenther@suse.de>
17991
17992         * stor-layout.c (layout_type): Compute all array index size operations
17993         in the original type.
17994         (initialize_sizetypes): Add comment.
17995         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
17996
17997 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
17998
17999         * common.opt (Tbss=, Tdata=, Ttext=): New options.
18000
18001 2011-04-11  Martin Jambor  <mjambor@suse.cz>
18002
18003         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
18004         of cgraph_node, handle NULL return value.
18005         (cgraph_global_info): Likewise.
18006         (cgraph_rtl_info): Likewise.
18007         * tree-inline.c (estimate_num_insns): Likewise.
18008         * gimplify.c (unshare_body): Likewise.
18009         (unvisit_body): Likewise.
18010         (gimplify_body): Likewise.
18011         * predict.c (optimize_function_for_size_p): Likewise.
18012         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
18013         (call_may_clobber_ref_p_1): Likewise.
18014         * varasm.c (function_section_1): Likewise.
18015         (assemble_start_function): Likewise.
18016
18017 2011-04-11  Martin Jambor  <mjambor@suse.cz>
18018
18019         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
18020         of cgraph_node.
18021         * final.c (rest_of_clean_state): Likewise.
18022         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
18023         * passes.c (pass_init_dump_file): Likewise.
18024         (execute_all_ipa_transforms): Likewise.
18025         (function_called_by_processed_nodes_p): Likewise.
18026         * predict.c (maybe_hot_frequency_p): Likewise.
18027         (probably_never_executed_bb_p): Likewise.
18028         (compute_function_frequency): Likewise.
18029         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
18030         (unnest_nesting_tree_1): Likewise.
18031         (lower_nested_functions): Likewise.
18032         * tree-optimize.c (execute_fixup_cfg): Likewise.
18033         (tree_rest_of_compilation): Likewise.
18034         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
18035         * tree-sra.c (ipa_early_sra): Likewise.
18036         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
18037         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
18038         * ipa.c (record_cdtor_fn): Likewise.
18039         * ipa-inline.c (cgraph_early_inlining): Likewise.
18040         (compute_inline_parameters_for_current): Likewise.
18041         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
18042         * ipa-pure-const.c (local_pure_const): Likewise.
18043         * ipa-split.c (split_function): Likewise.
18044         (execute_split_functions): Likewise.
18045         * cgraphbuild.c (build_cgraph_edges): Likewise.
18046         (rebuild_cgraph_edges): Likewise.
18047         (cgraph_rebuild_references): Likewise.
18048         (remove_cgraph_callee_edges): Likewise.
18049         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
18050         (verify_cgraph_node): Likewise.
18051         (cgraph_analyze_functions): Likewise.
18052         (cgraph_preserve_function_body_p): Likewise.
18053         (save_inline_function_body): Likewise.
18054         (save_inline_function_body): Likewise.
18055         * tree-inline.c (copy_bb): Likewise.
18056         (optimize_inline_calls): Likewise.
18057
18058 2011-04-11  Martin Jambor  <mjambor@suse.cz>
18059
18060         PR tree-optimization/48195
18061         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
18062         ipa_check_create_edge_args.
18063         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
18064         ipa_check_create_edge_args.
18065         * ipa-inline.c (inline_generate_summary): Do not call
18066         ipa_check_create_node_params and ipa_check_create_edge_args.
18067         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
18068         ipa_check_create_edge_args.
18069
18070 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
18071
18072         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
18073         instead of loop.
18074         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
18075         * function.c (record_hard_reg_sets): Likewise.
18076         * ira.c (compute_regs_asm_clobbered): Likewise.
18077         * sched-deps.c (sched_analyze_1): Likewise.
18078         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
18079
18080 2011-04-09  Xinliang David Li  <davidxl@google.com>
18081
18082         PR tree-optimization/PR48484
18083         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
18084         has_valid_pred lazily
18085
18086 2011-04-09  Duncan Sands  <baldrick@free.fr>
18087
18088         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
18089
18090 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
18091
18092         * combine.c (combine_validate_cost): Adjust comments.  Set registered
18093         cost of I0 to zero at the end, if any.
18094
18095 2011-04-08  Xinliang David Li  <davidxl@google.com>
18096
18097         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
18098         to insane profile data.
18099
18100 2011-04-08  Xinliang David Li  <davidxl@google.com>
18101
18102         * ipa-cp.c (ipcp_update_profiling): Correct
18103          negative scale factor due to insane profile data.
18104
18105 2011-04-08  Xinliang David Li  <davidxl@google.com>
18106
18107         * final.c (dump_basic_block_info): New function.
18108         (final): Dump basic block.
18109         (final_scan_insn): Remove old dump.
18110
18111 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
18112
18113         PR target/47829
18114         * config.gcc (i386-*-freebsd): Disable unwind table generation for
18115         crtbegin/crtend.
18116
18117 2011-04-08  Michael Matz  <matz@suse.de>
18118
18119         PR middle-end/48389
18120         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
18121         functions.
18122         (rebuild_jump_labels): Call rebuild_jump_labels_1.
18123         * rtl.h (rebuild_jump_labels_chain): Declare.
18124         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
18125         insns inserted on edges.
18126
18127 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
18128
18129         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
18130         * config/arm/arm-arches.def: New.
18131         * config/arm/arm-opts.h: New.
18132         * config/arm/genopt.sh: New.
18133         * config/arm/arm-tables.opt: New (generated).
18134         * config/arm/arm.c (arm_handle_option, arm_target_help,
18135         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
18136         (all_architectures): Get most table contents from arm-arches.def.
18137         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
18138         arm_selected_tune here.
18139         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
18140         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
18141         (march=, mcpu=, mtune=): Use Enum and Var.
18142         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
18143         (arm.o): Update dependencies.
18144
18145 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
18146
18147         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
18148         of header_file.
18149         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
18150         (write_typed_alloc_defns): Likewise.
18151         (main): Calls write_typed_alloc_defns with output_header.
18152
18153 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
18154
18155         PR inline-asm/48435
18156         * ira-color.c (setup_profitable_hard_regs): Add comments.
18157         Don't take prohibited hard regs into account.
18158         (setup_conflict_profitable_regs): Rename to
18159         get_conflict_profitable_regs.
18160         (check_hard_reg_p): Check prohibited hard regs.
18161
18162 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
18163
18164         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
18165         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
18166         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
18167
18168 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18169
18170         PR target/48366
18171         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
18172         move from floating point to shift amount register.
18173         (emit_move_sequence): Remove secondary reload support for floating
18174         point to shift amount amount register copies.
18175         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
18176         amount register copies.
18177         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
18178         register, return false if mode isn't a scalar integer mode.
18179         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
18180
18181 2011-04-08  Richard Guenther  <rguenther@suse.de>
18182
18183         * gimple.c (gimple_call_flags): Remove kludge.
18184
18185 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
18186
18187         * sel-sched.c (sel_region_init): Move call to
18188         sel_setup_region_sched_flags after setup_current_loop_nest.
18189
18190 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
18191
18192         PR rtl-optimization/48272
18193         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
18194         init_insn_reg_pressure_info.  Adjust a caller.
18195         * sched-int.h (init_insn_reg_pressure_info): Declare.
18196         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
18197         when sched-pressure is enabled.
18198
18199 2011-04-08  Richard Guenther  <rguenther@suse.de>
18200
18201         * gimple.c (gimple_set_modified): Do not queue calls to
18202         MODIFIED_NORETURN_CALLS here ...
18203         * tree-ssa-operands.c (update_stmt_operands): ... but here.
18204
18205 2011-04-08  Richard Guenther  <rguenther@suse.de>
18206
18207         PR lto/48467
18208         * toplev.c (lang_dependent_init): Do not open asm_out_file
18209         in WPA mode, nor perform debug machinery initialization.
18210         (finalize): Do not unlink asm_out_file in WPA mode.
18211
18212 2011-04-08  Richard Guenther  <rguenther@suse.de>
18213
18214         * gimple.h (gimple_call_fntype): New function.
18215         (gimple_call_return_type): Use it.
18216         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
18217         * gimple-low.c (gimple_check_call_args): Likewise.
18218         * gimple.c (gimple_call_flags): Likewise.
18219         (gimple_call_arg_flags): Likewise.
18220         (gimple_call_return_flags): Likewise.
18221         * tree-cfg.c (verify_gimple_call): Likewise.
18222         (do_warn_unused_result): Likewise.
18223         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
18224         * value-prof.c (gimple_ic_transform): Fix fndecl check.
18225
18226 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
18227
18228         PR rtl-optimization/48235
18229         * sel-sched.c (code_motion_process_successors): Recompute the last
18230         insn in basic block if control flow changed.
18231         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
18232         Update condition for ilist_remove.
18233
18234 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
18235
18236         PR rtl-optimization/48302
18237         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
18238         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
18239         it to record added preheader blocks.
18240         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
18241         on to sel_add_loop_preheaders.
18242         (sel_region_init): Move call to setup_current_loop_nest after
18243         sel_init_bbs.
18244
18245 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
18246
18247         PR target/48273
18248         * cfgloop.h (loop_has_exit_edges): New helper.
18249         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
18250         non-clonable.
18251         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
18252         that have no exit edges.
18253
18254 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
18255
18256         PR rtl-optimization/48442
18257         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
18258         all callers.  Adjust assert.
18259
18260 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
18261
18262         PR tree-optimization/48377
18263         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
18264         is_packed to true even for types with smaller TYPE_ALIGN than
18265         TYPE_SIZE.
18266
18267 2011-04-08  Richard Guenther  <rguenther@suse.de>
18268
18269         PR bootstrap/48513
18270         * doc/tm.texi: Re-generate.
18271
18272 2011-04-08  Wei Guozhi  <carrot@google.com>
18273
18274         PR target/47855
18275         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
18276         * config/arm/arm.c (arm_attr_length_push_multi): New function.
18277         * config/arm/arm.md (*push_multi): Change the length computation to
18278         call a C function.
18279
18280 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
18281
18282         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
18283         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
18284         * doc/tm.texi: Regenerate.
18285         * system.h (ASM_OUTPUT_BSS): Poison.
18286         * varasm.c (asm_output_bss): Remove function.
18287         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
18288
18289         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
18290         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
18291         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
18292         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
18293         Likewise.
18294         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
18295         Likewise.
18296         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
18297         Likewise.
18298         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
18299
18300 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
18301
18302         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
18303         EnumValue lines.
18304
18305 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
18306
18307         * config/m68k/m68k.c (m68k_handle_option): Don't handle
18308         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
18309         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
18310         OPT_mcpu32.
18311         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
18312         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
18313         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
18314         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
18315         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
18316         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
18317         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
18318         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
18319         options.  Don't map other m68k options manually.  Don't handle
18320         old-style options as canonical.
18321         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
18322         * doc/install.texi (m68k-*-*): Document binutils version requirement.
18323
18324 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
18325
18326         * basic-block.h (force_nonfallthru): Move to...
18327         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
18328         (force_nonfallthru): ...here.
18329         * cfghooks.c (force_nonfallthru): New function.
18330         * cfgrtl.c (force_nonfallthru): Rename into...
18331         (rtl_force_nonfallthru): ...this.
18332         (commit_one_edge_insertion): Do not set AUX field.
18333         (commit_edge_insertions): Do not discover new basic blocks.
18334         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
18335         (cfg_layout_rtl_cfg_hooks): Likewise.
18336         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
18337         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
18338         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
18339
18340 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
18341
18342         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
18343         Remove macros.
18344
18345 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
18346
18347         * config/i386/sse.md: Update copyright year.
18348         (avxcvtvecmode): Remove.
18349         (sse_movhlps): Merge with *avx_movhlps.
18350         (sse_movlhps): Merge with *avx_movlhps.
18351         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
18352         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
18353         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
18354         (sse_loadhps): Merge with *avx_loadhps.
18355         (sse_storelps): Merge with *avx_storelps.
18356         (sse_loadlps): Merge with *avx_loadlps.
18357         (sse_movss): Merge with *avx_movss.
18358         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
18359         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
18360         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
18361         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
18362         (vec_set<mode>_0): Ditto.
18363         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
18364         (sse4_1_insertps): Merge with *avx_insertps.
18365         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
18366         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
18367         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
18368         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
18369         (sse2_storehpd): Merge with *avx_storehpd.
18370         (sse2_loadhpd): Merge with *avx_loadhpd.
18371         (sse2_loadlpd): Merge with *avx_loadlpd.
18372         (sse2_movsd): Merge with *avx_movsd.
18373         (*vec_concatv2df): Merge with *vec_concatv2df.
18374
18375 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
18376
18377         PR debug/48343
18378         * combine.c (combine_instructions): Add last_combined_insn,
18379         update it if insn is after it, pass it to all try_combine calls.
18380         (try_combine): Add last_combined_insn parameter, pass it instead of
18381         i3 to propagate_for_debug.
18382
18383 2011-04-07  Nick Clifton  <nickc@redhat.com>
18384
18385         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
18386         to handle MDR <-> data register transfers.
18387         (movhi_internal): Likewise.
18388
18389 2011-04-07  Alan Modra  <amodra@gmail.com>
18390
18391         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
18392         previous stack info.
18393
18394 2011-04-07  Tom de Vries  <tom@codesourcery.com>
18395
18396         PR target/43920
18397         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
18398         flow_find_cross_jump.  Swap variables to implement backward replacement.
18399         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
18400
18401 2011-04-07  Tom de Vries  <tom@codesourcery.com>
18402
18403         PR target/43920
18404         * cfgcleanup.c (walk_to_nondebug_insn): New function.
18405         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
18406         and bb2.
18407         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
18408         src1 or src2.  Redirect edges to the last basic block.  Update
18409         frequency and count on multiple basic blocks in case of fallthru.
18410
18411 2011-04-07  Tom de Vries  <tom@codesourcery.com>
18412
18413         PR target/43920
18414         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
18415         function.
18416         (old_insns_match_p): Change return type.  Replace return false/true
18417         with return dir_none/dir_both.  Use can_replace_by.
18418         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
18419         direction from dir_p.  Register replacement direction in dir, last_dir
18420         and afterlast_dir.  Handle new return type of old_insns_match_p using
18421         merge_dir.  Return replacement direction in dir_p.
18422         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
18423         return type of old_insns_match_p.
18424         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
18425         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
18426         flow_find_cross_jump.
18427         * basic-block.h (enum replace_direction): New type.
18428         (flow_find_cross_jump): Add parameter to declaration.
18429
18430 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
18431
18432         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
18433         (AVXMODEDCVTPS2DQ): Ditto.
18434         (VEC_FLOAT_MODE): Ditto.
18435         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
18436         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
18437         (<any_logic:code><mode>3): Use VF mode iterator.
18438         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
18439         Use VF mode iterator.
18440         (copysign<mode>3): Use VF mode iterator.
18441         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
18442         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
18443         (*<any_logic:code><MODEF:mode>3): Merge with
18444         *avx_<any_logic:code><MODEF:mode>3.
18445         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
18446         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
18447         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
18448         (avx_cvtdq2ps<avxmodesuffix>): Remove.
18449         (sse2_cvtdq2ps): Use %v modifier.
18450         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
18451         (avx_cvtps2dq<avxmodesuffix>): Remove.
18452         (sse2_cvtps2dq): Use %v modifier.
18453         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
18454         (avx_cvttps2dq<avxmodesuffix>): Remove.
18455         (sse2_cvttps2dq): Use %v modifier.
18456         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
18457         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
18458         (sse2_cvtsd2siq): Fix insn template.
18459         (sse2_cvtsd2siq_2): Ditto.
18460         (sse2_cvttsd2siq): Ditto.
18461         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
18462         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
18463
18464 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
18465
18466         * gcov-io.c: Use GCC Runtime Library Exception.
18467
18468 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
18469
18470         PR debug/48466
18471         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
18472         as base_reg whatever register reg has been eliminated to, instead
18473         of hardcoding STACK_POINTER_REGNUM.
18474
18475 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
18476
18477         * doc/tm.texi.in: Document C target hooks as separate from general
18478         target hooks.
18479         * doc/tm.texi: Regenerate.
18480         * genhooks.c (struct hook_desc): Add docname field.
18481         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
18482         docname field.
18483         (hook_array): Include c-target.def.
18484         (emit_documentation): Use docname field in output.
18485         (emit_init_macros): Take docname argument.  Only emit definitions
18486         for hooks matching docname.
18487         (main): Expect additional arguments in all cases.  Pass argument
18488         to emit_init_macros.
18489         * target.def: Move initial macro definitions and comments to
18490         target-hooks-macros.h.
18491         (gcc_targetcm): Move to c-family/c-target.def.
18492         * target.h (targetcm): Move declaration to c-family/c-target.h.
18493         * targhooks.c (default_handle_c_option): Move to
18494         c-family/c-opts.c.
18495         * targhooks.h (default_handle_c_option): Move declaration to
18496         c-family/c-common.h.
18497         * target-hooks-macros.h: New file.
18498         * config.gcc (target_has_targetcm): Define and use to add to
18499         c_target_objs and cxx_target_objs.
18500         * config/default-c.c: New file.
18501         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
18502         of target.h and target-def.h.
18503         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
18504         (darwin_objc_construct_string, darwin_cfstring_ref_p,
18505         darwin_check_cfstring_format_arg): Make static.
18506         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
18507         TARGET_STRING_OBJECT_REF_TYPE_P,
18508         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
18509         * config/darwin-protos.h (darwin_objc_construct_string,
18510         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
18511         declare.
18512         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
18513         TARGET_STRING_OBJECT_REF_TYPE_P,
18514         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
18515         * config/t-darwin (darwin-c.o): Update dependencies.
18516         * system.h (TARGET_HAS_TARGETCM): Poison.
18517         * Makefile.in (TARGET_H): Update.
18518         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
18519         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
18520         (default-c.o): New target.
18521         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
18522         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
18523         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
18524         c-target.def.
18525         (build/genhooks.o): Update dependencies.
18526
18527 2011-04-06  Richard Guenther  <rguenther@suse.de>
18528
18529         * ipa-inline.c (enum inlining_mode): Remove.
18530         (cgraph_flatten): Use some other token.
18531         (cgraph_edge_early_inlinable_p): New function, split out from ...
18532         (cgraph_perform_always_inlining): New function, split out from ...
18533         (cgraph_decide_inlining_incrementally): ... here.
18534         (cgraph_mark_inline_edge): Adjust.
18535         (cgraph_early_inlining): Re-structure.
18536         (pass_early_inline): Require SSA form.
18537
18538 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
18539             Julian Brown  <julian@codesourcery.com>
18540             Mark Shinwell  <shinwell@codesourcery.com>
18541
18542         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
18543         LO_REGS only for Thumb-1.
18544         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
18545         be used in short instructions when optimising for size on Thumb-2.
18546
18547 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
18548
18549         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
18550         associated with user returns to be preserved.
18551
18552 2011-04-06  Tristan Gingold  <gingold@adacore.com>
18553
18554         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
18555         symbol_queue_size, DBXOUT_DECR_NESTING,
18556         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
18557         if XCOFF_DEBUGGING_INFO.
18558
18559 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
18560
18561         * config/i386/i386.md (attribute isa): New.
18562         (attribute enabled): New.
18563         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
18564         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
18565         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
18566         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
18567         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
18568         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
18569         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
18570         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
18571
18572         * config/i386/sse.md (VF): New mode iterator.
18573         (VF1): Ditto.
18574         (VF2): Ditto.
18575         (VF_128): Ditto.
18576         (SSEMODEF4): Remove.
18577         (attribute sse): Handle V8SF and V4DF modes.
18578         (<absneg:code><mode>2): Use VF mode iterator.
18579         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
18580         mode iterator.
18581         (<plusminus_insn><mode>3): Use VF mode iterator.
18582         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
18583         Use VF mode iterator.
18584         (<sse>_vm<plusminus_insn><mode>3): Merge with
18585         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
18586         (mul<mode>3): Use VF mode iterator.
18587         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
18588         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
18589         mode iterator.
18590         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
18591         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
18592         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
18593         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
18594         mode iterator.
18595         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
18596         Use VF1 mode iterator.
18597         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
18598         (sqrt<VF2:mode>2): New expander.
18599         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
18600         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
18601         and sqrtv2df2.  Use VF mode iterator.
18602         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
18603         mode iterator.
18604         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
18605         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
18606         Use VF1 mode iterator.
18607         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
18608         (<smaxmin:code><mode>3): Use VF mode iterator.
18609         (*<smaxmin:code><mode>3_finite): Merge with
18610         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
18611         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
18612         (<sse>_vm<smaxmin:code><mode>2): Merge with
18613         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
18614         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
18615         mode iterator.
18616         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
18617         mode iterator.
18618         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
18619         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
18620         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
18621         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
18622         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
18623         VF mode iterator.
18624         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
18625         Use VF_128 mode iterator.
18626         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
18627         mode iterator.
18628         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
18629         VF_128 mode iterator.
18630         (vcond<mode>): Use VF mode iterator.
18631         * config/i386/predicates.md (sse_comparison_operator): Merge with
18632         avx_comparison_float_operator.  Do not declare as special_predicate.
18633         * config/i386/i386.c (struct builtin_description): Update for renamed
18634         compare patterns.
18635         (ix86_expand_args_builtin): Ditto.
18636         (ix86_expand_sse_compare_mask): Ditto.
18637
18638 2011-04-06  Richard Guenther  <rguenther@suse.de>
18639
18640         * tree-inline.c (estimate_num_insns): For calls simply account
18641         for all passed arguments and a used return value.
18642
18643 2011-04-06  Richard Guenther  <rguenther@suse.de>
18644
18645         PR tree-optimization/47663
18646         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
18647         call_stmt_time fields.
18648         (cgraph_edge_inlinable_p): Declare.
18649         (cgraph_edge_recursive_p): New inline function.
18650         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
18651         (cgraph_clone_edge): Copy it.
18652         * ipa-inline.c (cgraph_estimate_edge_time): New function.
18653         Account for call stmt time.
18654         (cgraph_estimate_time_after_inlining): Take edge argument.
18655         (cgraph_estimate_edge_growth): Account call stmt size.
18656         (cgraph_estimate_size_after_inlining): Take edge argument.
18657         (cgraph_mark_inline_edge): Adjust.
18658         (cgraph_check_inline_limits): Likewise.
18659         (cgraph_recursive_inlining_p): Remove.
18660         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
18661         (cgraph_decide_recursive_inlining): Take edge argument and
18662         adjust.
18663         (cgraph_decide_inlining_of_small_functions): Do not avoid
18664         diags for recursive inlining here.
18665         (cgraph_flatten): Adjust.
18666         (cgraph_decide_inlining_incrementally): Likewise.
18667         (estimate_function_body_sizes): Remove call cost handling.
18668         (compute_inline_parameters): Initialize caller edge call costs.
18669         (cgraph_estimate_edge_growth): New function.
18670         (cgraph_estimate_growth): Use it.
18671         (cgraph_edge_badness): Likewise.
18672         (cgraph_check_inline_limits): Take an edge argument.
18673         (cgraph_decide_inlining_of_small_functions): Adjust.
18674         (cgraph_decide_inlining): Likewise.
18675         * tree-inline.c (estimate_num_insns): Only account for call
18676         return value if it is used.
18677         (expand_call_inline): Avoid diagnostics on recursive inline
18678         functions here.
18679         * lto-cgraph.c (lto_output_edge): Output edge call costs.
18680         (input_edge): Input edge call costs.
18681
18682 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18683
18684         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
18685
18686 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
18687
18688         * doc/invoke.texi (Spec Files): Fix typo.
18689
18690 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
18691
18692         * profile.c (branch_prob): Move declaration of local variable.  Remove
18693         obsolete ??? comment.  Expand the location explicitly instead of using
18694         the LOCATION_FILE and LOCATION_LINE macros.
18695
18696 2011-04-06  Wei Guozhi  <carrot@google.com>
18697
18698         PR target/47855
18699         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
18700         (arm_cond_branch): Likewise.
18701         (arm_cond_branch_reversed): Likewise.
18702         (arm_jump): Likewise.
18703         (push_multi): Likewise.
18704         * config/arm/constraints.md (Py): New constraint.
18705
18706 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
18707
18708         PR bootstrap/48471
18709         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
18710         Move these...
18711         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
18712         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
18713         #ifdef DBX_DEBUGGING_INFO.
18714
18715 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
18716
18717         PR bootstrap/48403
18718         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
18719         if old and new states differ.
18720
18721 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
18722
18723         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
18724         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
18725         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
18726         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
18727         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
18728         mcfv4e): Use Alias.
18729         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
18730         ColdFire options to -mcpu= options.
18731
18732 2011-04-05  Jeff Law  <law@redhat.com>
18733
18734         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
18735         check if BB is a successor of LOOP->header and return
18736         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
18737
18738 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
18739
18740         * cprop.c (struct reg_use): Remove.
18741         (reg_use_table): Make an array of RTX.
18742         (find_used_regs, constprop_register, local_cprop_pass,
18743         bypass_block): Simplify users of reg_use_table.
18744         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
18745         on one of the uses found by find_used_regs.
18746
18747 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
18748
18749         PR bootstrap/48469
18750         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
18751         declaration.
18752
18753 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
18754
18755         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
18756         as an rtx.
18757         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
18758
18759 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
18760
18761         PR middle-end/48441
18762         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
18763
18764 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
18765
18766         * combine.c: Include obstack.h.
18767         (struct insn_link): Define.
18768         (uid_log_links): Adjust type.
18769         (FOR_EACH_LOG_LINK): New macro.
18770         (insn_link_obstack): Declare.
18771         (alloc_insn_link): Define.
18772         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
18773         type of link variables.
18774         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
18775         (try_combine, record_promoted_values, distribute_notes): Likewise.
18776         (distribute_links): Likewise.  Tweak prototype.
18777         (clear_log_links): Delete.
18778         (adjust_for_new_dest): Call alloc_insn_link.
18779         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
18780
18781 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
18782
18783         * gcse.c (modify_mem_list): Convert to an array of VECs.
18784         (canon_modify_mem_list, compute_transp): Tweak formatting.
18785         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
18786         (load_killed_in_block_p): Likewise.
18787         (record_last_mem_set_info): Likewise.
18788         (clear_modify_mem_tables): Likewise.
18789
18790 2011-04-05  Tom de Vries  <tom@codesourcery.com>
18791
18792         PR middle-end/48461
18793         * function.c (emit_use_return_register_into_block): Only define if
18794         HAVE_return.
18795
18796 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
18797
18798         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
18799
18800 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
18801
18802         * config/rx/rx-opts.h: New.
18803         * config/rx/rx.c (rx_cpu_type): Remove.
18804         (rx_handle_option): Don't assert that global structures are in
18805         use.  Access variables via opts pointer.  Defer most handling of
18806         OPT_mint_register_.  Use error_at.
18807         (rx_option_override): Handle deferred OPT_mint_register_ here.
18808         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
18809         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
18810         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
18811         (rx_cpu_types): New Enum and EnumValue entries.
18812         (mint-register=): Use Defer and use Var accordingly.
18813
18814 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
18815
18816         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
18817         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
18818         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
18819         Move these...
18820         (debug_free_queue, debug_nesting, symbol_queue_index):
18821         ...and these...
18822         * dbxout.c: ...to here.  Make static.
18823
18824 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
18825
18826         * gcse.c (modify_pair): Define.  Define a VEC of it.
18827         (canon_modify_mem_list): Convert to an array of VECs.
18828         (free_insn_expr_list_list): Delete.
18829         (clear_modify_mem_tables): Call VEC_free instead.
18830         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
18831         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
18832         (canon_list_insert, compute_transp): Likewise.
18833
18834 2011-04-05  Tom de Vries  <tom@codesourcery.com>
18835
18836         PR target/43920
18837         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
18838         for size.
18839
18840 2011-04-05  Tom de Vries  <tom@codesourcery.com>
18841
18842         PR target/43920
18843         * function.c (emit_use_return_register_into_block): New function.
18844         (thread_prologue_and_epilogue_insns): Use
18845         emit_use_return_register_into_block.
18846
18847 2011-04-05  Tom de Vries  <tom@codesourcery.com>
18848
18849         PR target/43920
18850         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
18851         insn.
18852
18853 2011-04-05  Tom de Vries  <tom@codesourcery.com>
18854
18855         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
18856
18857 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
18858
18859         * config/arm/arm.md (define_constants for unspec): Replace with
18860         define_c_enum.
18861         (define_constants for unspecv): Replace with define_c_enum.
18862         * config/arm/neon.md (define_constants for unspec): Replace with
18863         define_c_enum.
18864
18865 2011-04-04  Richard Henderson  <rth@redhat.com>
18866
18867         PR bootstrap/48400
18868         * dwarf2out.c (output_line_info): Always emit line info from
18869         at least one section.
18870         (dwarf2out_init): Create text_section_line_info here ...
18871         (set_cur_line_info_table): ... not here.
18872
18873 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
18874
18875         PR target/48380
18876         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
18877         not called.
18878
18879         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
18880
18881 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
18882
18883         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
18884         (expr_equiv_p): Remove.
18885         (insert_set_in_table): Look at <dest, src> pair instead of expr.
18886         (hash_scan_set): Update call to insert_set_in_table.
18887         (dump_hash_table): Dump <dest, src> pair.
18888         (lookup_set): Simplify.  Lookup <dest, src> pair.
18889         (compute_transp): Remove, fold heavily simplified code into...
18890         (compute_local_properties): ...here.  Expect COMP and TRANSP
18891         unconditionally.
18892         (find_avail_set): Take set directly from struct expr.
18893         (find_bypass-set): Likewise.
18894         (bypass_block): Likewise.
18895         (cprop_insn): Likewise.  Remove redundant INSN_P test.
18896
18897         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
18898         checks on form of COND from find_implicit_sets to here.
18899         (find_implicit_sets): Cleanup control flow. Split critical edges
18900         if it exposes implicit sets.  Allocate/resize implicit_sets as
18901         necessary.
18902         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
18903         changed something.  Run df_analyze after find_implicit_sets if any
18904         edges were split.  Do not allocate implicit_sets here.
18905
18906         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
18907         (gcse_obstack): Renamed to cprop_obstack.
18908         (GNEW, GNEWVEC, GNEWVAR): Remove.
18909         (gmalloc): Remove.
18910         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
18911         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
18912         (gcse_alloc): Likewise, and rename to cprop_alloc.
18913         (alloc_gcse_men, free_gcse_mem): Remove.
18914         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
18915         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
18916         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
18917
18918         * cprop.c (oprs_not_set_p): Remove.
18919         (mark_set, mark_clobber): Remove.
18920         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
18921         (reg_not_set_p): New function.
18922         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
18923         (cprop_insn): Likewise.
18924         (cprop_jump): Use FOR_EACH_EDGE.
18925
18926 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
18927
18928         PR bootstrap/48403
18929         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
18930         (rank_for_schedule): Use scheduled_insns vector instead of
18931         last_scheduled_insn.
18932         (ok_for_early_queue_removal): Likewise.
18933         (queue_to_ready): Search forward in nonscheduled_insns_begin if
18934         we have a dbg_cnt.
18935         (choose_ready): Likewise.
18936         (commit_schedule): Use VEC_iterate.
18937         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
18938         a dbg_cnt, use it and ensure the first insn is in the ready list.
18939         (haifa_sched_init): Allocate scheduled_insns.
18940         (sched_extend_ready_list): Don't allocate it; reserve space.
18941         (haifa_sched_finish): Free it.
18942
18943 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
18944
18945         * optc-gen.awk: Always remove type from Variable entry before
18946         recording in var_seen.
18947
18948 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
18949
18950         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
18951         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
18952         call to tidy_fallthru_edges.
18953
18954 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
18955
18956         * doc/options.texi (ToLower): Document.
18957         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
18958         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
18959         * opts.h (cl_option): Add cl_tolower field.
18960         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
18961         arguments with lowercase strings.
18962         * config/rx/rx.opt (mcpu=): Add ToLower.
18963         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
18964         argument.
18965
18966 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
18967
18968         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
18969
18970 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
18971
18972         * config/vax/vax.c: Include reload.h.
18973
18974 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
18975
18976         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
18977         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
18978         (sparc_preferred_reload_class): New function.
18979
18980 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
18981
18982         PR debug/48401
18983         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
18984         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
18985
18986 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
18987
18988         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
18989         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
18990
18991 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
18992
18993         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
18994         (ASM_OUTPUT_ALIGNED_BSS): Define.
18995
18996 2011-04-03  Michael Matz  <matz@suse.de>
18997
18998         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
18999         and next_slot members.
19000         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
19001         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
19002         (lto_streamer_cache_append): Declare.
19003         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
19004         unsigned index, remove offset parameter, ensure that we append
19005         or update existing entries.
19006         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
19007         parameter, update next_slot for append.
19008         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
19009         parameter.
19010         (lto_streamer_cache_insert_at): Likewise.
19011         (lto_streamer_cache_append): New function.
19012         (lto_streamer_cache_lookup): Use unsigned index.
19013         (lto_streamer_cache_get): Likewise.
19014         (lto_record_common_node): Don't test tree_node_can_be_shared.
19015         (preload_common_node): Adjust call to lto_streamer_cache_insert.
19016         (lto_streamer_cache_delete): Don't free offsets member.
19017         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
19018         (lto_output_string_with_length): Use lto_output_data_stream.
19019         (lto_output_tree_header): Remove ix parameter, don't write it.
19020         (lto_output_builtin_tree): Likewise.
19021         (lto_write_tree): Adjust callers to above, don't track and write
19022         offset, write unsigned index.
19023         (output_unreferenced_globals): Don't emit all global vars.
19024         (write_global_references): Use unsigned indices.
19025         (lto_output_decl_state_refs): Likewise.
19026         (write_symbol): Likewise.
19027         * lto-streamer-in.c (lto_input_chain): Move earlier.
19028         (input_function): Use unsigned index.
19029         (input_alias_pairs): Don't read and then ignore all global vars.
19030         (lto_materialize_tree): Remove ix_p parameter, don't read index,
19031         don't pass it back, use lto_streamer_cache_append.
19032         (lto_register_var_decl_in_symtab): Use unsigned index.
19033         (lto_register_function_decl_in_symtab): Likewise.
19034         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
19035         index.
19036         (lto_get_builtin_tree): Don't read index, use
19037         lto_streamer_cache_append.
19038         (lto_read_tree): Adjust call to lto_materialize_tree.
19039
19040         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
19041         don't use function calls in arguments to MIN.
19042
19043         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
19044         twice.
19045
19046         * gimple.c (gimple_type_leader_entry): Mark deletable.
19047
19048 2011-04-03  Alan Modra  <amodra@gmail.com>
19049
19050         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
19051
19052 2011-04-03  Michael Matz  <matz@suse.de>
19053
19054         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
19055         an integer.
19056         * tree.h (tree_decl_non_common.vindex): Adjust comment.
19057
19058 2011-04-03  Michael Matz  <matz@suse.de>
19059
19060         * cgraphbuild.c (record_reference): Canonicalize constructor values.
19061         * gimple-fold.c (canonicalize_constructor_val): Accept being called
19062         without function context.
19063         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
19064         current_function_decl and cfun.
19065
19066 2011-04-03  Michael Matz  <matz@suse.de>
19067
19068         * tree.c (decl_init_priority_insert): Don't create entry for
19069         default priority.
19070         (decl_fini_priority_insert): Ditto.
19071         (fields_compatible_p, find_compatible_field): Remove.
19072         * tree.h (fields_compatible_p, find_compatible_field): Remove.
19073         * gimple.c (gimple_compare_field_offset): Adjust block comment.
19074
19075 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
19076
19077         * combine.c (try_combine): Remove useless local variable.
19078
19079 2011-04-03  Richard Guenther  <rguenther@suse.de>
19080             Ira Rosen  <ira.rosen@linaro.org>
19081
19082         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
19083         non-variable offsets and compare the remaining bases of the two
19084         accesses instead of looking for exact same data-ref.
19085
19086 2011-04-02  Kai Tietz  <ktietz@redhat.com>
19087
19088         PR target/48416
19089         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
19090
19091         * i386.c (ix86_is_msabi_thiscall): New helper function.
19092         (ix86_is_type_thiscall): New helper function.
19093         (ix86_comp_type_attributes): Handle thiscall for method-functions
19094         special.
19095         (init_cumulative_args): Likewise.
19096         (find_drap_reg): Likewise.
19097         (ix86_static_chain): Likewise.
19098         (x86_this_parameter): Likewise.
19099         (x86_output_mi_thunk): Likewise.
19100
19101 2011-04-01  Olivier Hainque  <hainque@adacore.com>
19102             Nicolas Setton  <setton@adacore.com>
19103             Eric Botcazou  <ebotcazou@adacore.com>
19104
19105         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
19106         (add_gnat_descriptive_type_attribute): New function.
19107         (gen_array_type_die): Call it.
19108         (gen_enumeration_type_die): Likewise.
19109         (gen_struct_or_union_type_die): Likewise.
19110         (modified_type_die): Likewise.
19111         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
19112         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
19113         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
19114
19115 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
19116
19117         PR bootstrap/48148
19118         * dwarf2out.c (resolve_addr): Don't call force_decl_die
19119         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
19120
19121         Revert:
19122         2011-03-17  Richard Guenther  <rguenther@suse.de>
19123
19124         PR bootstrap/48148
19125         * lto-cgraph.c (input_overwrite_node): Clear the abstract
19126         origin for decls in other ltrans units.
19127         (input_varpool_node): Likewise.
19128
19129 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
19130
19131         PR middle-end/48335
19132         * expr.c (expand_assignment): Handle all possibilities
19133         if TO_RTX is CONCAT.
19134         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19135         (store_split_bit_field): If SUBREG_REG (op0) or
19136         op0 itself has smaller mode than word, return it
19137         for offset 0 and const0_rtx for out-of-bounds stores.
19138         If word is const0_rtx, skip it.
19139
19140 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
19141
19142         * config/h8300/h8300.c (print_operand_address): Rename to...
19143         (h8300_print_operand_address): ...this. Make static. Adjust comments.
19144         Call h8300_print_operand and h8300_print_operand_address instead of
19145         print_operand and print_operand_address. Declare.
19146         (print_operand): Renake to...
19147         (h8300_print_operand): ...this. Make static. Adjust comments.
19148         Call h8300_print_operand instead of print_operand. Declare.
19149         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
19150         (h8300_register_move_cost): Likewise.
19151         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
19152         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
19153         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
19154         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
19155         * config/h8300/h8300-protos.h (print_operand): Delete.
19156         (print_operand_address): Delete.
19157
19158 2011-04-01  Richard Henderson  <rth@redhat.com>
19159
19160         PR 48400
19161         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
19162         in strict mode before dwarf4.  Re-order tests to early out
19163         before switching sections.
19164
19165 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
19166
19167         * config/h8300/constraints.md: New file.
19168         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
19169         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
19170         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
19171         * config/h8300/predicates.md (bit_operand): Likewise.
19172         (incdec_operand): Use satisfies_constraint_M and
19173         satisfies_constraint_O.  Don't use C code block.
19174         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
19175         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
19176         (compute_mov_length): Use satisfies_constraint_G.
19177         (fix_bit_operand): Use satisfies_constraint_U.
19178         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
19179         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
19180         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
19181         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
19182         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
19183         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
19184         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19185         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
19186         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
19187         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
19188         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
19189         (EXTRA_MEMORY_CONSTRAINT): Delete.
19190
19191 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
19192             Michael Meissner  <meissner@linux.vnet.ibm.com>
19193
19194         PR target/48262
19195         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
19196         operands, as per the specifications.
19197
19198         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
19199         (vec_extract_evenv4sf): Ditto.
19200         (vec_extract_evenv8hi): Ditto.
19201         (vec_extract_evenv16qi): Ditto.
19202         (vec_extract_oddv4si): Ditto.
19203
19204 2011-03-31  Mark Wielaard  <mjw@redhat.com>
19205
19206         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
19207         high_pc attribute if the CU has no associated code. Only output
19208         DW_AT_entry_pc for CU if not generating strict dwarf and
19209         dwarf_version < 4.
19210
19211 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
19212
19213         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
19214         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
19215         out of ...
19216         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
19217         * final.c (final_start_function): Call the new function rather
19218         than using a NULL argument for dwarf2out_frame_debug.
19219
19220         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
19221         that contains the prologue.
19222
19223         * haifa-sched.c (queue_insn): New arg REASON.  All callers
19224         changed.  Print it in debugging output.
19225
19226         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
19227
19228         * sched-ebb.c (begin_schedule_ready): Remove second argument.
19229         Split most of the code into...
19230         (begin_move_insn): ... here.  New function.
19231         (ebb_sched_info): Add a pointer to it.
19232         * haifa-sched.c (scheduled_insns): New static variable.
19233         (sched_extend_ready_list): Allocate it.
19234         (schedule_block): Use it to record the order of scheduled insns.
19235         Perform RTL changes to move insns only after all scheduling
19236         decisions have been made.
19237         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
19238         begin_move_insn field.
19239         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
19240         * sched-int.h (struct haifa_sched_info): Remove second argument
19241         from begin_schedule_ready hook.  Add new member begin_move_insn.
19242         * sched-rgn.c (begin_schedule_ready): Remove second argument.
19243         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
19244
19245         * haifa-sched.c (prune_ready_list): New function, broken out of
19246         schedule_block.
19247         (schedule_block): Use it.
19248
19249 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19250
19251         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
19252
19253 2011-04-01  Kai Tietz  <ktietz@redhat.com>
19254
19255         * config.gcc (*-*-mingw*): Allow as option the
19256         posix threading model.
19257         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
19258         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
19259         definition.
19260         (CPP_SPEC): Add pthread/no-pthread handling.
19261         (LIB_SPEC): Likewise.
19262         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
19263         (LIB_SPEC): Likewise.
19264         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
19265         flag to pass -pthread option for shared libgcc build.
19266         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
19267         for shared libgcc build.
19268         * config/i386/t-mingw-pthread: New file.
19269         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
19270         New define to enable use of library pthread by default.
19271         * config/i386/mingw.opt (pthread): New driver option.
19272         (no-pthread): New driver option.
19273         * config/i386/cygming.opt: Make sure trailing empty line is retained.
19274         * config/i386/mingw-w64.opt: Likewise.
19275
19276 2011-04-01  Gary Funck  <gary@intrepid.com>
19277
19278         * c-decl.c (grokdeclarator): Fix formatting.
19279
19280 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
19281
19282         * expr.c (emit_block_move_via_movmem): Use n_generator_args
19283         instead of n_operands.
19284         (set_storage_via_setmem): Likewise.
19285         * optabs.c (maybe_gen_insn): Likewise.
19286         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
19287         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
19288         (mips_expand_builtin_direct): Likewise.
19289         * config/spu/spu.c (expand_builtin_args): Likewise.
19290
19291 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
19292
19293         * recog.h (insn_data_d): Add n_generator_args.
19294         * genoutput.c (data): Likewise.
19295         (output_insn_data): Print it.
19296         (max_opno, num_dups): Delete.
19297         (scan_operands): Just fill in "d->operand[...]".
19298         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
19299
19300 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
19301
19302         * gensupport.h (pattern_stats): New structure.
19303         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
19304         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
19305         (max_operand_1, max_operand_vec): Delete.
19306         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
19307
19308 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
19309
19310         * emit-rtl.c (emit_pattern_after_setloc): New function.
19311         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
19312         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
19313         (emit_pattern_after): New function.
19314         (emit_insn_after, emit_jump_insn_after): Call it.
19315         (emit_call_insn_after, emit_debug_insn_after): Likewise.
19316         (emit_pattern_before_setloc): New function.
19317         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
19318         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
19319         Likewise.
19320         (emit_pattern_before): New function.
19321         (emit_insn_before, emit_jump_insn_before): Call it.
19322         (emit_call_insn_before, emit_debug_insn_before): Likewise.
19323
19324 2011-03-31  Richard Henderson  <rth@redhat.com>
19325
19326         * dwarf2out.c (dw_separate_line_info_ref): Remove.
19327         (dw_separate_line_info_entry): Remove.
19328         (enum dw_line_info_opcode): New.
19329         (dw_line_info_entry): Use it.
19330         (dw_line_info_table, dw_line_info_table_p): New.
19331         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
19332         (line_info_table, line_info_label_num): Remove.
19333         (line_info_table_in_use): Remove.
19334         (separate_line_info_table): Remove.
19335         (separate_line_info_table_allocated): Remove.
19336         (separate_line_info_table_in_use): Remove.
19337         (LINE_INFO_TABLE_INCREMENT): Remove.
19338         (line_info_label_num): New.
19339         (cur_line_info_table): New.
19340         (text_section_line_info, cold_text_section_line_info): New.
19341         (separate_line_info): New.
19342         (SEPARATE_LINE_CODE_LABEL): Remove.
19343         (print_dwarf_line_table): Remove.
19344         (debug_dwarf): Don't dump it.
19345         (output_one_line_info_table): New.
19346         (output_line_info): Use it.
19347         (new_line_info_table): New.
19348         (set_cur_line_info_table): New.
19349         (dwarf2out_switch_text_section): Use it.
19350         (dwarf2out_begin_function): Likewise.
19351         (push_dw_line_info_entry): New.
19352         (dwarf2out_source_line): Rewrite for new line info tables.
19353         (dwarf2out_init): Remove dead initailizations.
19354
19355 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
19356
19357         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
19358         various flags.
19359         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
19360         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
19361         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
19362         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
19363         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
19364         * opt-functions.awk (flag_init, switch_bit_fields): New.
19365         (switch_flags): Don't handle flags moved to bit-fields.  Don't
19366         generate CL_MISSING_OK or CL_SAVE.
19367         * optc-gen.awk: Update to generate bit-field output as well as
19368         flags field.
19369         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
19370         bit-field instead of CL_REJECT_DRIVER flag.
19371         * opts-common.c (generate_canonical_option,
19372         decode_cmdline_option): Use bit-fields instead of CL_* flags.
19373         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
19374         instead of CL_REJECT_NEGATIVE flag.
19375         * toplev.c (print_switch_values): Use cl_report bit-field instead
19376         of CL_REPORT flag.
19377
19378 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
19379
19380         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
19381         a zero minimum index only if it is redundant.
19382
19383 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
19384
19385         PR rtl-optimization/48381
19386         * ira-color.c (assign_hard_reg): Use hard reg set intersection
19387         instead of ira_class_hard_reg_index for calculating conflicting
19388         hard registers.
19389
19390 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
19391
19392         * cprop.c: Clean up hash table building.
19393         (reg_avail_info): Remove.
19394         (oprs_available_p): Remove.
19395         (record_last_reg_set_info): Remove.
19396         (record_last_set_info): Remove.
19397         (reg_available_p): New function.
19398         (gcse_constant_p): Do not treat unfolded conditions as constants.
19399         (make_set_regs_unavailable): New function.
19400         (hash_scan_set): Simplify with new reg_available_p.
19401         (compute_hash_table_work): Traverse insns stream only once.
19402         Do not compute reg_avail_info. Traverse insns in reverse order.
19403         Record implicit sets after recording explicit sets from the block.
19404
19405 2011-03-31  Michael Matz  <matz@suse.de>
19406
19407         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
19408
19409 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
19410
19411         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
19412         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
19413         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19414         (h8300_mode_dependent_address_p): New function.
19415         (h8300_get_index): Make static.
19416
19417 2011-03-31  Jeff Law  <law@redhat.com>
19418
19419         * reload1.c (elimination_effects): Fix typo in recent change.
19420
19421         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
19422         typo potentially leading to null pointer dereference.
19423
19424         * caller-save.c (new_saved_hard_reg): Eliminate return value.
19425         (setup_save_areas): Corresponding changes to avoid useless
19426         assignments.
19427
19428         * jump.c (reversed_comparison_code_parts): Avoid successive return
19429         statements when REVERSE_CONDITION is defined.
19430
19431         * expr.c (expand_assignment): Avoid useless assignments.
19432         (expand_expr_real_1): Likewise.
19433         (expand_expr_real_2): Avoid useless statements.
19434
19435         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
19436
19437         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
19438
19439         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
19440         statements.
19441
19442         * stmt.c (expand_expr_stmt): Avoid useless assignment.
19443
19444 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
19445
19446         PR target/47109
19447         * doc/tm.texi.in (TARGET_VERSION): Remove.
19448         * doc/tm.texi: Regenerate.
19449         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
19450         * collect2.c (main): Don't use TARGET_VERSION.
19451         * mips-tdump.c (main): Don't use TARGET_VERSION.
19452         * mips-tfile.c (main): Don't use TARGET_VERSION.
19453         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
19454         * config/rs6000/vxworksae.h: Remove.
19455         * config/alpha/alpha.h (TARGET_VERSION): Remove.
19456         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
19457         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
19458         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
19459         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
19460         * config/arm/arm.h (TARGET_VERSION): Remove.
19461         * config/arm/coff.h (TARGET_VERSION): Remove.
19462         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
19463         * config/arm/elf.h (TARGET_VERSION): Remove.
19464         * config/arm/freebsd.h (TARGET_VERSION): Remove.
19465         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
19466         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
19467         * config/arm/pe.h (TARGET_VERSION): Remove.
19468         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
19469         * config/arm/semi.h (TARGET_VERSION): Remove.
19470         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
19471         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
19472         * config/arm/vxworks.h (TARGET_VERSION): Remove.
19473         * config/avr/avr.h (TARGET_VERSION): Remove.
19474         * config/bfin/bfin.h (TARGET_VERSION): Remove.
19475         * config/fr30/fr30.h (TARGET_VERSION): Remove.
19476         * config/frv/frv.h (TARGET_VERSION): Remove.
19477         * config/h8300/h8300.h (TARGET_VERSION): Remove.
19478         * config/i386/cygwin.h (TARGET_VERSION): Remove.
19479         * config/i386/darwin.h (TARGET_VERSION): Remove.
19480         * config/i386/darwin64.h (TARGET_VERSION): Remove.
19481         * config/i386/djgpp.h (TARGET_VERSION): Remove.
19482         * config/i386/freebsd.h (TARGET_VERSION): Remove.
19483         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
19484         * config/i386/gnu.h (TARGET_VERSION): Remove.
19485         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
19486         * config/i386/i386elf.h (TARGET_VERSION): Remove.
19487         * config/i386/linux.h (TARGET_VERSION): Remove.
19488         * config/i386/linux64.h (TARGET_VERSION): Remove.
19489         * config/i386/lynx.h (TARGET_VERSION): Remove.
19490         * config/i386/mingw32.h (TARGET_VERSION): Remove.
19491         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
19492         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
19493         * config/i386/netware.h (TARGET_VERSION): Remove.
19494         * config/i386/nto.h (TARGET_VERSION): Remove.
19495         * config/i386/openbsd.h (TARGET_VERSION): Remove.
19496         * config/i386/vxworks.h (TARGET_VERSION): Remove.
19497         * config/ia64/elf.h (TARGET_VERSION): Remove.
19498         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
19499         * config/ia64/hpux.h (TARGET_VERSION): Remove.
19500         * config/ia64/linux.h (TARGET_VERSION): Remove.
19501         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
19502         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
19503         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
19504         * config/lm32/lm32.h (TARGET_VERSION): Remove.
19505         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
19506         * config/m32c/m32c.h (TARGET_VERSION): Remove.
19507         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
19508         * config/m32r/m32r.h (TARGET_VERSION): Remove.
19509         * config/m68k/linux.h (TARGET_VERSION): Remove.
19510         * config/m68k/m68k.h (TARGET_VERSION): Remove.
19511         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
19512         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
19513         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
19514         * config/mep/mep.h (TARGET_VERSION): Remove.
19515         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
19516         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
19517         * config/mips/iris6.h (MACHINE_TYPE): Remove.
19518         * config/mips/linux.h (TARGET_VERSION): Remove.
19519         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
19520         * config/mips/vxworks.h (TARGET_VERSION): Remove.
19521         * config/mmix/mmix.h (TARGET_VERSION): Remove.
19522         * config/mn10300/linux.h (TARGET_VERSION): Remove.
19523         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
19524         * config/pa/pa.h (TARGET_VERSION): Remove.
19525         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
19526         * config/picochip/picochip.h (TARGET_VERSION): Remove.
19527         * config/rs6000/aix.h (TARGET_VERSION): Remove.
19528         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
19529         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
19530         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
19531         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
19532         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
19533         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
19534         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
19535         * config/rs6000/linux.h (TARGET_VERSION): Remove.
19536         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
19537         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
19538         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
19539         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
19540         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
19541         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
19542         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
19543         * config/s390/linux.h (TARGET_VERSION): Remove.
19544         * config/s390/s390.h (TARGET_VERSION): Remove.
19545         * config/s390/tpf.h (TARGET_VERSION): Remove.
19546         * config/score/score.h (TARGET_VERSION): Remove.
19547         * config/sh/linux.h (TARGET_VERSION): Remove.
19548         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
19549         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
19550         * config/sh/sh.h (TARGET_VERSION): Remove.
19551         * config/sh/sh64.h (TARGET_VERSION): Remove.
19552         * config/sh/superh.h (TARGET_VERSION): Remove.
19553         * config/sh/vxworks.h (TARGET_VERSION): Remove.
19554         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
19555         * config/sparc/linux.h (TARGET_VERSION): Remove.
19556         * config/sparc/linux64.h (TARGET_VERSION): Remove.
19557         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
19558         TARGET_NAME32, TARGET_NAME): Remove.
19559         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
19560         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
19561         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
19562         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
19563         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
19564         * config/spu/spu.h (TARGET_VERSION): Remove.
19565         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
19566         * config/v850/v850.h (TARGET_VERSION): Remove.
19567         * config/vax/linux.h (TARGET_VERSION): Remove.
19568         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
19569         * config/xtensa/elf.h (TARGET_VERSION): Remove.
19570         * config/xtensa/linux.h (TARGET_VERSION): Remove.
19571
19572 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
19573
19574         PR target/48142
19575         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
19576         frame-related from frame-unrelated adjustments to the stack pointer.
19577
19578 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
19579
19580         * common.opt (fdebug-types-section): Move earlier.
19581         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
19582
19583 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
19584
19585         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
19586         var.
19587
19588 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
19589
19590         * tree.h (CASE_CHAIN): Define.
19591         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
19592         (gimple_redirect_edge_and_branch): Likewise.
19593
19594 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
19595
19596         PR middle-end/48367
19597         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
19598         calculation.
19599
19600 2011-03-30  Jeff Law  <law@redhat.com>
19601
19602         * PR bootstrap/48371
19603         * reload1.c (reload): Fix botch in last change.
19604
19605         * reload.h (struct reload): Fix typo introduced in last change.
19606
19607 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
19608
19609         * config/arm/arm.opt (mhard-float, msoft-float): Mark
19610         Undocumented.  Remove help text.
19611         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
19612         -mhard-float.
19613
19614 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
19615
19616         * doc/options.texi (NegativeAlias): Document.
19617         (Alias): Mention NegativeAlias.
19618         * opt-functions.awk: Handle NegativeAlias.
19619         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
19620         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
19621         * opts.h (CL_NEGATIVE_ALIAS): Define.
19622         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
19623         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
19624         OPT_mspe_.
19625         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
19626         Alias entries.
19627         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
19628         mno-spe and mno-isel instead of mspe=no and -misel=no.
19629
19630 2011-03-29  Mark Wielaard  <mjw@redhat.com>
19631
19632         * common.opt (fdebug-types-section): New flag.
19633         * doc/invoke.texi: Document new -fno-debug-types-section flag.
19634         * dwarf2out.c (use_debug_types): New define.
19635         (struct die_struct): Mark die_id with GTY desc use_debug_types.
19636         (print_die): Guard output of type unit signatures using
19637         use_debug_types.
19638         (build_abbrev_table): Replace assert of dwarf_version >= 4
19639         with assert on use_debug_types.
19640         (size_of_die): Likewise.
19641         (unmark_dies): Likewise.
19642         (value_format): Decide AT_ref_external form on use_debug_types.
19643         (output_die): Replace dwarf_version version check guard with
19644         use_debug_types where appropriate.
19645         (modified_type_die): Likewise.
19646         (gen_reference_type_die): Likewise.
19647         (dwarf2out_start_source_file): Likewise.
19648         (dwarf2out_end_source_file): Likewise.
19649         (prune_unused_types_walk_attribs): Likewise.
19650         (dwarf2out_finish): Likewise.
19651
19652 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
19653
19654         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
19655
19656 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
19657
19658         PR rtl-optimization/48332
19659         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
19660         mode of input operand N and modeN to its actual mode.
19661
19662 2011-03-30  Jeff Law  <law@redhat.com>
19663
19664         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
19665         define accessor macro.
19666         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
19667         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
19668         (reg_equiv_init): Likewise.
19669         (reg_equivs_size): New variable.
19670         (reg_equiv_init_size): Remove.
19671         (allocate_initial_values): Move prototype to here from....
19672         * integrate.h (allocate_initial_values): Remove prototype.
19673         * integrate.c: Include reload.h.
19674         (allocate_initial_values): Corresponding changes.
19675         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
19676         (fix_reg_equiv_init, no_equiv): Corresponding changes.
19677         (update_equiv_regs): Corresponding changes.
19678         (ira): Corresponding changes.
19679         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
19680         (push_secondary_reload): Corresponding changes.
19681         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
19682         (make_memloc, find_reloads_address): Corresponding changes.
19683         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
19684         (find_reloads_address_1): Corresponding changes.
19685         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
19686         (refers_to_regno_for_reload_p): Corresponding changes.
19687         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
19688         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
19689         * reload1.c: Include ggc.h.
19690         (grow_reg_equivs): New function.
19691         (replace_pseudos_in, reload): Corresponding changes.
19692         (calculate_needs_all_insns, alter_regs): Corresponding changes.
19693         (eliminate_regs_1, elimination_effects): Corresponding changes.
19694         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
19695         (delete_output_reload): Likewise.
19696         * caller-save.c (mark_referenced_regs): Corresponding changes.
19697         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
19698         * frv/predicates.md (frv_load_operand): Corresponding changes.
19699         * microblaze/microblaze.c (double_memory_operand): Corresponding
19700         changes.
19701         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
19702         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
19703         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
19704         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
19705         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
19706         changes.
19707         * pa/pa.c (emit_move_sequence): Corresponding changes.
19708         * vax/vax.c (nonindexed_address_p): Corresponding changes.
19709
19710 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
19711
19712         PR target/47551
19713         * config/arm/arm.c (coproc_secondary_reload_class): Handle
19714         structure modes.  Don't check neon_vector_mem_operand for
19715         vector or structure modes.
19716
19717 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
19718             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
19719
19720         PR target/43590
19721         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
19722         operand 1 and reshuffle the operands to match.
19723         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
19724
19725 2011-03-30  Christian Schüler  <cschueler@gmx.de>
19726
19727         PR driver/48208
19728         * config/c.opt (F): Added 'Driver' to -F option.
19729
19730         PR driver/48260
19731         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
19732           handler function.
19733         * config/darwin.opt: Added '-arch' option.
19734
19735 2011-03-30  Nick Clifton  <nickc@redhat.com>
19736
19737         * config/rx/rx.md: Add peepholes and patterns to combine
19738         extending loads and simple arithmetic instructions.
19739         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
19740         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
19741         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
19742         modes to use pre-decrement and post-increment addressing.
19743         (rx_is_restricted_memory_address): Add range checking of REG+INT
19744         addresses.
19745         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
19746         (rx_memory_move_cost): Adjust cost of stores.
19747         (rx_adjust_insn_length): New function.
19748
19749 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
19750
19751         PR c/48305
19752         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
19753         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
19754         matching arg00/arg01 types.
19755
19756 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
19757
19758         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
19759         last_location to UNKNOWN_LOCATION.
19760
19761 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
19762
19763         PR target/48349
19764         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
19765         FLOAT_SSE_REGS.
19766
19767 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
19768             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19769
19770         PR bootstrap/48337
19771         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
19772         Init(PROCESSOR_V7).
19773         (sparc_cpu): Likewise.
19774         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
19775         PROCESSOR_V7.
19776
19777 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
19778
19779         PR target/48336
19780         PR middle-end/48342
19781         PR rtl-optimization/48345
19782         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
19783         hard regs for given mode from profitable regs when doing secondary
19784         allocation.
19785
19786 2011-03-29  Jeff Law  <law@redhat.com>
19787
19788         PR bootstrap/48327
19789         * tree-ssa-threadupdate.c (struct redirection_data): Remove
19790         do_not_duplicate field.
19791         (lookup_redirection_data): Corresponding changes.
19792         (create_duplicates): Always create a template block.
19793         (redirect_edges): Remove code which reused the original block
19794         when it was going to become unreachable code.
19795         (thread_block): Don't set do_not_duplicate field.
19796
19797 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
19798
19799         * lto-opts.c (register_user_option_p, lto_register_user_option):
19800         Make type argument unsigned.
19801         * lto-streamer.h (lto_register_user_option): Make type argument
19802         unsigned.
19803         * opth-gen.awk: Make CL_* macros unsigned.
19804         * opts-common.c (find_opt): Make lang_mask argument unsigned.
19805         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
19806         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
19807         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
19808         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
19809         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
19810         (find_opt): Make lang_mask argument unsigned.
19811
19812 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
19813
19814         PR rtl-optimization/48331
19815         PR rtl-optimization/48334
19816         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
19817         for any used algorithm.
19818
19819 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
19820
19821         * ira-conflicts.c (build_object_conflicts): Add unused attribute
19822         to parent_max.
19823
19824 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
19825
19826         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
19827         (alpha_option_override): Don't set alpha_sr_alias_set.
19828         (emit_frame_store_1): Use gen_frame_mem rather than calling
19829         set_mem_alias_set.
19830         (alpha_expand_epilogue): Ditto.
19831
19832 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
19833
19834         PR tree-optimization/48290
19835         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
19836         vectorization, check that relevant phis in the basic block after
19837         the inner loop are really inner loop's exit phis.
19838
19839 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
19840
19841         PR debug/48190
19842         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
19843         (cached_dw_loc_list_def): New structure.
19844         (cached_dw_loc_list): New typedef.
19845         (cached_dw_loc_list_table): New variable.
19846         (cached_dw_loc_list_table_hash): New function.
19847         (cached_dw_loc_list_table_eq): Likewise.
19848         (add_location_or_const_value_attribute): Take a bool cache_p.
19849         Cache the list when the parameter is true.
19850         (gen_formal_parameter_die): Update caller.
19851         (gen_variable_die): Likewise.
19852         (dwarf2out_finish): Likewise.
19853         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
19854         while generating debug info for the decl.
19855         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
19856         (dwarf2out_init): Initialize cached_dw_loc_list_table.
19857         (resolve_addr): Cache the result of resolving a chain of
19858         location lists.
19859
19860 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
19861
19862         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
19863         conflict object hard regset nodes have intersecting hard reg sets.
19864
19865         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
19866         after regstat_init_n_sets_and_refs.
19867
19868         * ira.c: Add more comments at the top.
19869         (setup_stack_reg_pressure_class, setup_pressure_classes):
19870         Add comments how we compute the register pressure classes.
19871         (setup_allocno_and_important_classes): Add more comments.
19872         (setup_class_translate_array, reorder_important_classes)
19873         (setup_reg_class_relations): Add comments.
19874
19875         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
19876         start of the file.
19877
19878         * ira-color.c: Add 2011 to the Copyright line.
19879         (assign_hard_reg):  Add more comments.
19880         (improve_allocation): Ditto.
19881
19882         * ira-costs.c: Add 2011 to the Copyright line.
19883         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
19884         comments.
19885         (setup_regno_cost_classes_by_mode): Ditto.
19886
19887         Initial patches from ira-improv branch:
19888
19889         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
19890
19891         * ira-build.c (ira_create_object): Remove initialization of
19892         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
19893         (ira_create_allocno): Remove initialization of
19894         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
19895         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
19896         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
19897         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
19898         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
19899         Initialize ALLOCNO_ADD_DATA.
19900         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
19901         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
19902         ALLOCNO_REG.
19903         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
19904         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
19905
19906         * ira.c (ira_reallocate): Remove.
19907         (setup_pressure_classes): Call
19908         ira_init_register_move_cost_if_necessary.  Use
19909         ira_register_move_cost instead of ira_get_register_move_cost.
19910         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
19911         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
19912
19913         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
19914         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
19915         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
19916         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
19917         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
19918         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
19919         Fix formatting.
19920         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
19921         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
19922         (struct allocno_color_data): New.
19923         (allocno_color_data_t): New typedef.
19924         (allocno_color_data): New definition.
19925         (ALLOCNO_COLOR_DATA): New macro.
19926         (struct object_color_data): New.
19927         (object_color_data_t): New typedef.
19928         (object_color_data): New definition.
19929         (OBJECT_COLOR_DATA): New macro.
19930         (update_copy_costs, calculate_allocno_spill_cost): Call
19931         ira_init_register_move_cost_if_necessary.  Use
19932         ira_register_move_cost instead of ira_get_register_move_cost.
19933         (move_spill_restore, update_curr_costs): Ditto.
19934         (allocno_spill_priority): Make it inline.
19935         (color_pass): Allocate and free allocno_color_dat and object_color_data.
19936         (struct coalesce_data, coalesce_data_t): New.
19937         (allocno_coalesce_data): New definition.
19938         (ALLOCNO_COALESCE_DATA): New macro.
19939         (merge_allocnos, coalesced_allocno_conflict_p): Use
19940         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
19941         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
19942         (coalesce_allocnos): Ditto.
19943         (setup_coalesced_allocno_costs_and_nums): Ditto.
19944         (collect_spilled_coalesced_allocnos): Ditto.
19945         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
19946         (setup_slot_coalesced_allocno_live_ranges): Ditto.
19947         (coalesce_spill_slots): Ditto.
19948         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
19949         free allocno_coalesce_data.
19950
19951         * ira-conflicts.c: Fix formatting.
19952         (process_regs_for_copy): Call
19953         ira_init_register_move_cost_if_necessary.  Use
19954         ira_register_move_cost instead of ira_get_register_move_cost.
19955         (build_object_conflicts): Optimize.
19956
19957         * ira-costs.c (record_reg_classes): Optimize.  Call
19958         ira_init_register_move_cost_if_necessary.  Use
19959         ira_register_move_cost, ira_may_move_in_cost, and
19960         ira_may_move_out_cost instead of ira_get_register_move_cost and
19961         ira_get_may_move_cost.
19962         (record_address_regs): Ditto.
19963         (scan_one_insn): Optimize.
19964         (find_costs_and_classes): Optimize.
19965         (process_bb_node_for_hard_reg_moves): Call
19966         ira_init_register_move_cost_if_necessary.  Use
19967         ira_register_move_cost instead of ira_get_register_move_cost.
19968
19969         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
19970         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
19971         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
19972         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
19973         definitions.
19974         (ira_initiate_emit_data, ira_finish_emit_data)
19975         (create_new_allocno): New functions.
19976         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
19977         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
19978         Use ira_register_move_cost instead of ira_get_register_move_cost.
19979
19980         * ira-int.h: Fix some comments.
19981         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
19982         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
19983         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
19984         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
19985         add_data.
19986         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
19987         bitfield after mode.  Make hard_regno a short int.  Make
19988         hard_regno short.  Remove first_coalesced_allocno and
19989         next_coalesced_allocno.  Move mem_optimized_dest_p,
19990         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
19991         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
19992         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
19993         temp, colorable_p.  Add new member add_data.
19994         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
19995         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
19996         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
19997         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
19998         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
19999         (ALLOCNO_ADD_DATA): New macro.
20000         (ira_emit_data_t): New typedef.
20001         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
20002         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
20003         from struct ira_allocno.
20004         (ALLOCNO_EMIT_DATA): New macro.
20005         (ira_allocno_emit_data, allocno_emit_reg): New.
20006         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
20007         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
20008         (OBJECT_ADD_DATA): New macro.
20009         (ira_reallocate): Remove.
20010         (ira_initiate_emit_data, ira_finish_emit_data): New.
20011         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
20012         (ira_init_register_move_cost_if_necessary): New.
20013         (ira_object_conflict_iter_next): Merge into
20014         ira_object_conflict_iter_cond.
20015         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
20016
20017         * ira-live.c (process_single_reg_class_operands): Call
20018         ira_init_register_move_cost_if_necessary.  Use
20019         ira_register_move_cost instead of ira_get_register_move_cost.
20020
20021         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
20022
20023         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
20024
20025         * ira-costs.c: Fix formatting.
20026         (cost_classes, cost_classes_num): Remove.
20027         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
20028         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
20029         (cost_classes_del, cost_classes_htab): New.
20030         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
20031         (initiate_regno_cost_classes, setup_cost_classes): New.
20032         (setup_regno_cost_classes_by_aclass): New.
20033         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
20034         (record_reg_classes): Use regno_cost_classes instead of
20035         cost_classes.  Move checking opposite operand up.
20036         (record_address_regs): Use regno_cost_classes
20037         instead of cost_classes.
20038         (scan_one_insn): Ditto.  Use always general register.
20039         (print_allocno_costs): Use regno_cost_classes instead of
20040         cost_classes.
20041         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
20042         (find_costs_and_classes): Set up cost classes for each registers.
20043         Use also their mode for this.  Use regno_cost_classes instead of
20044         cost_classes.
20045         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
20046         cost_classes.
20047         (free_ira_costs, ira_init_costs): Don't use cost_classes.
20048         (ira_costs, ira_set_pseudo_classes): Call
20049         initiate_regno_cost_classes and finish_regno_cost_classes.
20050
20051         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
20052
20053         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
20054
20055         * target.def (ira_cover_classes): Remove.
20056
20057         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
20058
20059         * doc/tm.texi.in: Ditto.
20060
20061         * ira-conflicts.c: Remove mentioning cover classes from the file.
20062         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
20063         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
20064
20065         * targhooks.c (default_ira_cover_classes): Remove.
20066
20067         * targhooks.h (default_ira_cover_classes): Ditto.
20068
20069         * haifa-sched.c: Remove mentioning cover classes from the file.
20070         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
20071         ira_pressure_classes and ira_pressure_classes_num instead of
20072         ira_reg_class_cover_size and ira_reg_class_cover.  Use
20073         sched_regno_pressure_class instead of sched_regno_cover_class.
20074         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
20075         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
20076
20077         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
20078         classes from the file.
20079         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
20080         (struct object_hard_regs, struct object_hard_regs_node): New.
20081         (struct ira_object): New members profitable_hard_regs,
20082         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
20083         (struct ira_allocno): Rename cover_class to aclass.  Rename
20084         cover_class_cost and updated_cover_class_cost to class_cost and
20085         updated_class_cost.  Remove splay_removed_p and
20086         left_conflict_size.  Add new members colorable_p.
20087         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
20088         (ALLOCNO_COLORABLE_P): New macro.
20089         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
20090         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
20091         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
20092         (OBJECT_...): Rename parameter C to O.
20093         (OBJECT_PROFITABLE_HARD_REGS): New macro.
20094         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
20095         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
20096         (struct target_ira_int): New members x_ira_max_memory_move_cost,
20097         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
20098         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
20099         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
20100         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
20101         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
20102         x_ira_reg_class_subunion.
20103         (ira_max_memory_move_cost, ira_max_register_move_cost)
20104         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
20105         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
20106         (ira_important_class_nums, ira_reg_class_superunion): New macros.
20107         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
20108         (ira_reg_class_union): Rename to ira_reg_class_subunion.
20109         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
20110         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
20111         (ira_tune_allocno_costs_and_cover_classes): Rename to
20112         ira_tune_allocno_costs.
20113         (ira_debug_hard_regs_forest): New.
20114         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
20115         (ira_object_conflict_iter_next): Fix comments.
20116         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
20117         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
20118         cover_class to aclass.
20119         (ira_allocate_and_accumulate_costs): Ditto.
20120         (ira_allocate_and_set_or_copy_costs): Ditto.
20121
20122         * opts.c (decode_options): Remove ira_cover_class check.
20123
20124         * ira-color.c: Remove mentioning cover classes from the file.  Use
20125         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
20126         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
20127         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
20128         (splay-tree.h): Remove include.
20129         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
20130         before copy_freq_compare_func.
20131         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
20132         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
20133         New definitions.
20134         (hard_regs_roots, hard_regs_node_vec): Ditto.
20135         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
20136         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
20137         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
20138         (create_new_object_hard_regs_node): Ditto.
20139         (add_new_object_hard_regs_node_to_forest): Ditto.
20140         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
20141         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
20142         Ditto.
20143         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
20144         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
20145         (remove_unused_object_hard_regs_nodes): Ditto.
20146         (enumerate_object_hard_regs_nodes): Ditto.
20147         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
20148         (object_hard_regs_subnode_t): Ditto.
20149         (struct object_hard_regs_subnode): Ditto.
20150         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
20151         (setup_object_hard_regs_subnode_index): Ditto.
20152         (get_object_hard_regs_subnodes_num): Ditto.
20153         (form_object_hard_regs_nodes_forest): Ditto.
20154         (finish_object_hard_regs_nodes_tree): Ditto.
20155         (finish_object_hard_regs_nodes_forest): Ditto.
20156         (allocnos_have_intersected_live_ranges_p): Rename to
20157         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
20158         (pseudos_have_intersected_live_ranges_p): Rename to
20159         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
20160         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
20161         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
20162         (update_copy_costs): Remove assert.  Skip cost update if the hard
20163         reg does not belong the class.
20164         (assign_hard_reg): Process only profitable hard regs.
20165         (uncolorable_allocnos_num): Make it scalar.
20166         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
20167         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
20168         and ira_reg_class_max_nregs.
20169         (bucket_allocno_compare_func): Check frequency first.
20170         (sort_bucket): Add compare function as a parameter.
20171         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
20172         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
20173         (push_allocno_to_stack): Rewrite for checking new allocno
20174         colorability.
20175         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
20176         (push_only_colorable): Pass new parameter to sort_bucket.
20177         (push_allocno_to_spill): Remove.
20178         (allocno_spill_priority_compare): Make it inline and rewrite.
20179         (splay_tree_allocate, splay_tree_free): Remove.
20180         (allocno_spill_sort_compare): New function.
20181         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
20182         build and use splay tree.  Choose first allocno in uncolorable
20183         allocno bucket to spill.  Remove setting spill cost.
20184         (all_conflicting_hard_regs): Remove.
20185         (setup_allocno_available_regs_num): Check only profitable hard
20186         regs.  Print info about hard regs nodes.
20187         (setup_allocno_left_conflicts_size): Remove.
20188         (put_allocno_into_bucket): Don't call
20189         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
20190         (improve_allocation): New.
20191         (color_allocnos): Call setup_profitable_hard_regs,
20192         form_object_hard_regs_nodes_forest, improve_allocation,
20193         finish_object_hard_regs_nodes_forest.  Setup spill cost.
20194         (print_loop_title): Use pressure classes.
20195         (color_allocnso): Ditto.
20196         (do_coloring): Remove allocation and freeing splay_tree_node_pool
20197         and allocnos_for_spilling.
20198         (ira_sort_regnos_for_alter_reg): Don't setup members
20199         {first,next}_coalesced_allocno.
20200         (color): Remove allocating and freeing removed_splay_allocno_vec.
20201         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
20202         prohibited_class_mode_regs.
20203
20204         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
20205         formatting.
20206         (update_allocno_pressure_excess_length): Use pressure classes.
20207         (inc_register_pressure, dec_register_pressure): Check for pressure
20208         class.
20209         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
20210         pressure class.  Use ira_reg_class_nregs instead of
20211         ira_reg_class_max_nregs.
20212         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
20213         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
20214         (single_reg_class): Use ira_reg_class_nregs instead of
20215         ira_reg_class_max_nregs.
20216         (process_bb_node_lives): Use pressure classes.
20217
20218         * ira-emit.c: Remove mentioning cover classes from the file.  Use
20219         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
20220         (change_loop): Use pressure classes.
20221         (modify_move_list): Call ira_set_allocno_class instead of
20222         ira_set_allocno_cover_class.
20223
20224         * ira-build.c: Remove mentioning cover classes from the file.  Use
20225         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
20226         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
20227         ALLOCNO_UPDATED_CLASS_COST instead of
20228         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
20229         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
20230         (ira_create_allocno): Remove initialization of
20231         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
20232         ALLOCNO_COLORABLE_P.
20233         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
20234         Update conflict regs for the objects.
20235         (create_cap_allocno): Remove assert.  Don't propagate
20236         ALLOCNO_AVAILABLE_REGS_NUM.
20237         (ira_free_allocno_costs): New function.
20238         (finish_allocno): Change a part of code into call of
20239         ira_free_allocno_costs.
20240         (low_pressure_loop_node_p): Use pressure classes.
20241         (object_range_compare_func): Don't compare classes.
20242         (setup_min_max_conflict_allocno_ids): Ditto.
20243
20244         * loop-invariant.c: Remove mentioning cover classes from the file.
20245         Use ira_pressure_classes and ira_pressure_classes_num instead of
20246         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
20247         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
20248         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
20249         Use reg_allocno_class instead of reg_cover_class.
20250         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
20251         STACK_REG_COVER_CLASS.
20252         (get_regno_cover_class): Rename to get_regno_pressure_class.
20253         (move_loop_invariants): Initialize and finalize regstat.
20254
20255         * ira.c: Remove mentioning cover classes from the file.  Add
20256         comments about coloring without cover classes.  Use ALLOCNO_CLASS
20257         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
20258         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
20259         setup_class_subset_and_memory_move_costs.
20260         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
20261         (setup_cover_and_important_classes): Rename to
20262         setup_allocno_and_important_classes.
20263         (setup_class_translate_array): New.
20264         (setup_class_translate): Call it for allocno and pressure classes.
20265         (cover_class_order): Rename to allocno_class_order.
20266         (comp_reg_classes_func): Use ira_allocno_class_translate instead
20267         of ira_class_translate.
20268         (reorder_important_classes): Set up ira_important_class_nums.
20269         (setup_reg_class_relations): Set up ira_reg_class_superunion.
20270         (print_class_cover): Rename to print_classes.  Add parameter.
20271         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
20272         Print pressure classes too.
20273         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
20274         setup_reg_subclasses.
20275         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
20276         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
20277         (setup_prohibited_class_mode_regs): Use
20278         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
20279         (clarify_prohibited_class_mode_regs): New function.
20280         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
20281         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
20282         (ira_init_once): Initialize them.
20283         (free_register_move_costs): Process them.
20284         (ira_init): Move calls of find_reg_classes and
20285         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
20286         Call clarify_prohibited_class_mode_regs.
20287         (ira_no_alloc_reg): Remove.
20288         (too_high_register_pressure_p): Use pressure classes.
20289
20290         * sched-deps.c: Remove mentioning cover classes from the file.
20291         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
20292         ira_pressure_classes and ira_pressure_classes_num instead of
20293         ira_reg_class_cover_size and ira_reg_class_cover.
20294         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
20295         sched_regno_pressure_class instead of sched_regno_cover_class.
20296         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
20297         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
20298
20299         * ira.h: Add 2010 to Copyright.
20300         (ira_no_alloc_reg): Remove external.
20301         (struct target_ira): Rename x_ira_hard_regno_cover_class,
20302         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
20303         x_ira_class_translate to x_ira_hard_regno_allocno_class,
20304         x_ira_allocno_classes_num, x_ira_allocno_classes, and
20305         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
20306         x_ira_pressure_classes, x_ira_pressure_class_translate, and
20307         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
20308         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
20309         x_ira_no_alloc_regs.
20310         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
20311         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
20312         ira_allocno_classes_num and ira_allocno_classes.
20313         (ira_class_translate): Rename to ira_allocno_class_translate.
20314         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
20315         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
20316         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
20317         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
20318         (ira_no_alloc_regs): New.
20319
20320         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
20321         classes from the file.  Use ALLOCNO_CLASS instead of
20322         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
20323         ALLOCNO_COVER_CLASS_COST.
20324         (regno_cover_class): Rename to regno_aclass.
20325         (record_reg_classes): Use ira_reg_class_subunion instead of
20326         ira_reg_class_union.
20327         (record_address_regs): Check overflow.
20328         (scan_one_insn): Ditto.
20329         (print_allocno_costs): Print total mem cost fore regional allocation.
20330         (print_pseudo_costs): Use REG_N_REFS.
20331         (find_costs_and_classes): Use classes intersected with them on the
20332         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
20333         ira_reg_class_union.  Use ira_allocno_class_translate and
20334         regno_aclass instead of ira_class_translate and regno_cover_class.
20335         Modify code for finding regno_aclass.  Setup preferred classes for
20336         the next pass.
20337         (setup_allocno_cover_class_and_costs): Rename to
20338         setup_allocno_class_and_costs.  Use regno_aclass instead of
20339         regno_cover_class.  Use ira_set_allocno_class instead of
20340         ira_set_allocno_cover_class.
20341         (init_costs, finish_costs): Use regno_aclass instead of
20342         regno_cover_class.
20343         (ira_costs): Use setup_allocno_class_and_costs instead of
20344         setup_allocno_cover_class_and_costs.
20345         (ira_tune_allocno_costs_and_cover_classes): Rename to
20346         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
20347         by processing objects.  Use ira_reg_class_max_nregs instead of
20348         ira_reg_class_nregs.
20349
20350         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
20351
20352         * sched-int.h: Remove mentioning cover classes from the file.
20353         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
20354
20355         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
20356         classes from the file.
20357         (struct reg_pref): Rename coverclass into allocnoclass.
20358         (reg_cover_class): Rename to reg_allocno_class.
20359
20360         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
20361
20362         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
20363
20364         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
20365
20366         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
20367
20368         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
20369
20370         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
20371
20372         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
20373
20374         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
20375
20376         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
20377
20378         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
20379
20380         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
20381         (i386_ira_cover_classes): Ditto.
20382
20383         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
20384
20385         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
20386
20387         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
20388
20389         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
20390
20391         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
20392
20393         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
20394
20395         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
20396         (mips_ira_cover_classes): Ditto.
20397
20398         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
20399
20400         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
20401
20402         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
20403
20404         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
20405
20406         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
20407
20408         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
20409         (IRA_COVER_CLASSES_VSX): Ditto.
20410
20411         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
20412         (rs6000_ira_cover_classes): Ditto.
20413
20414         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
20415
20416         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
20417
20418         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
20419
20420         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
20421
20422         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
20423
20424         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
20425
20426         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
20427
20428         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
20429
20430         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
20431
20432         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
20433
20434 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
20435
20436         PR debug/48253
20437         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
20438         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
20439         dw_fde_unlikely_section_end_label, cold_in_std_section,
20440         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
20441         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
20442         fields.
20443         (output_fde): Use dw_fde_second_{begin,end} if second is
20444         true, otherwise dw_fde_{begin,end}.
20445         (output_call_frame_info): Test dw_fde_second_begin != NULL
20446         instead of dw_fde_switched_sections.
20447         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
20448         fields, initialize new fields.  Initialize in_std_section
20449         unconditionally from the first partition.
20450         (dwarf2out_end_epilogue): Don't override dw_fde_end when
20451         dw_fde_second_begin is non-NULL.
20452         (dwarf2out_switch_text_section): Stop initializing removed
20453         dw_fde_struct fields, initialize new fields, initialize
20454         also dw_fde_end here.  Set dw_fde_switch_cfi even when
20455         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
20456         (struct var_loc_list_def): Add last_before_switch field.
20457         (arange_table, arange_table_allocated, arange_table_in_use,
20458         ARANGE_TABLE_INCREMENT, add_arange): Removed.
20459         (size_of_aranges): Count !in_std_section and !second_in_std_section
20460         hunks in fdes, instead of looking at arange_table_in_use.
20461         (output_aranges): Add aranges_length argument, don't call
20462         size_of_aranges here.  Instead of using aranges_table*
20463         emit ranges for fdes when !in_std_section resp.
20464         !second_in_std_section.
20465         (dw_loc_list): Break ranges crossing section switch.
20466         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
20467         use dw_fde_second_end instead of dw_fde_end as end of last range.
20468         (gen_subprogram_die): Don't call add_arange.  Use
20469         dw_fde_{begin,end} for first partition and if switched
20470         section dw_fde_second_{begin,end} for the second.
20471         (var_location_switch_text_section_1,
20472         var_location_switch_text_section): New functions.
20473         (dwarf2out_begin_function): Initialize cold_text_section even
20474         when function_section () isn't text_section.
20475         (prune_unused_types): Don't walk arange_table.
20476         (dwarf2out_finish): Don't needlessly test
20477         flag_reorder_blocks_and_partition when testing cold_text_section_used.
20478         If info_section_emitted, call size_of_aranges and if it indicates
20479         non-empty .debug_aranges, call output_aranges with the computed
20480         size.  Stop using removed dw_fde_struct fields, use
20481         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
20482         for second.
20483
20484         PR debug/48203
20485         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
20486         create ENTRY_VALUE if incoming or address of incoming's MEM
20487         is a hard REG.
20488         * dwarf2out.c (mem_loc_descriptor): Don't emit
20489         DW_OP_GNU_entry_value of DW_OP_fbreg.
20490         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
20491         on ENTRY_VALUE is able to find the canonical parameter VALUE.
20492         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
20493         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
20494         ENTRY_VALUE_EXPs.
20495         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
20496         is a REG_P or MEM_P with REG_P address, compute hash directly
20497         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
20498         (preserve_only_constants): Don't clear VALUES forwaring
20499         ENTRY_VALUE to some other VALUE.
20500
20501 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
20502
20503         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
20504         instead of GEN_INT.
20505
20506 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
20507
20508         * cfgexpand.c (expand_gimple_cond): Always set the source location and
20509         block before expanding the statement.
20510         (expand_gimple_stmt_1): Likewise.  Set them here...
20511         (expand_gimple_stmt): ...and not here.  Tidy.
20512         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
20513         unknown.
20514
20515 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
20516
20517         * Makefile.in: New rule for cprop.o.
20518         * gcse.c: Move constant/copy propagation to cprop.c.
20519         (compute_local_properties): Only handle expression tables.
20520         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
20521         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
20522         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
20523         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
20524         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
20525         compute_cprop_data, find_used_regs, try_replace_reg,
20526         find_avail_set, cprop_jump, constprop_register, cprop_insn,
20527         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
20528         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
20529         find_bypass_set, reg_killed_on_edge, bypass_block,
20530         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
20531         execute_rtl_cprop, pass_rtl_cprop): Move to...
20532         * cprop.c: ...here.  New file, constant/copy propagation for RTL
20533         moved from gcse.c to here with minor cleanups in duplicated code.
20534
20535 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
20536
20537         * config/i386/i386.c (flag_opts): Fix a typo in
20538         -mavx256-split-unaligned-store.
20539
20540 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
20541
20542         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
20543         LIBCALL_VALUE): Remove macros.
20544         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
20545         TARGET_FUNCTION_VALUE_REGNO_P): Define.
20546         (h8300_function_value, h8300_libcall_value,
20547         h8300_function_value_regno_p): New functions.
20548
20549 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
20550
20551         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
20552
20553 2011-03-28  Jeff Law  <law@redhat.com>
20554
20555         * tree-ssa-threadupdate.c (redirect_edges): Call
20556         create_edge_and_update_destination_phis as needed.
20557         (create_edge_and_update_destination_phis): Accept new BB argument.
20558         All callers updated.
20559         (thread_block): Do not update the profile when threading around
20560         intermediate blocks.
20561         (thread_single_edge): Likewise.
20562         (determine_bb_domination_status): If BB is not a successor of the
20563         loop header, return NONDOMINATING.
20564         (register_jump_thread): Note when we register a jump thread around
20565         an intermediate block.
20566         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
20567         (thread_across_edge): Use it.
20568
20569 2011-03-28  Tristan Gingold  <gingold@adacore.com>
20570
20571         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
20572         when for_return is 2.
20573
20574 2011-03-28  Jeff Law  <law@redhat.com>
20575
20576         * var-tracking.c (canonicalize_values_mark): Delete unused
20577         lhs assignment.
20578         (canonicalize_values_star, set_variable_part): Likewise.
20579         (clobber_variable_part, delete_variable_part): Likewise.
20580
20581 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
20582
20583         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
20584
20585 2011-03-28  Martin Jambor  <mjambor@suse.cz>
20586
20587         * tree-inline.c (expand_call_inline): Do not check that destination
20588         node is analyzed.
20589         (optimize_inline_calls): Assert that destination node is analyzed.
20590         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
20591         not call tree_lowering_passes.
20592         * cgraph.h (cgraph_analyze_function): Declare.
20593         * cgraphunit.c (cgraph_analyze_function): Make public.
20594
20595 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
20596
20597         * config/sparc/sparc-opts.h: New.
20598         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
20599         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
20600         (sparc_option_override): Store processor_type enumeration rather
20601         than string in cpu_default.  Remove name and enumeration from
20602         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
20603         without using sparc_select.  Use target_flags_explicit instead of
20604         fpu_option_set.
20605         * config/sparc/sparc.h (enum processor_type): Move to
20606         sparc-opts.h.
20607         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
20608         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
20609         HeaderInclude entry.
20610         (mcpu=, mtune=): Use Var and Enum.
20611         (sparc_processor_type): New Enum and EnumValue entries.
20612
20613 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20614             Iain Sandoe  <iains@gcc.gnu.org>
20615
20616         PR target/48245
20617         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
20618
20619 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
20620
20621         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
20622         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
20623         Insert new statements at it in lieu of STMT.
20624         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
20625         * tree-vect-stmts.c (vectorizable_store): Likewise.
20626         (vectorizable_load): Likewise.
20627
20628 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
20629
20630         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
20631         (divtf3): Ditto.
20632         (multf3): Ditto.
20633         (subtf3): Ditto.
20634
20635 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
20636
20637         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
20638         unaligned 256bit load/store.
20639         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
20640         (*avx_movdqu<avxmodesuffix>): Likewise.
20641
20642 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20643
20644         PR target/48288
20645         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
20646         * config/pa/pa.md (iordi3): Use new predicate in expander.
20647         (iorsi3): Likewise.
20648
20649 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
20650
20651         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
20652         FUNCTION_VALUE_REGNO_P): Remove macros.
20653         * config/mips/mips-protos.h (mips_function_value): Remove.
20654         * config/mips/mips.c (mips_function_value): Rename to...
20655         (mips_function_value_1): ... this. Make static.  Handle receiving
20656         the function type in 'fn_decl_or_type' argument.
20657         (mips_function_value, mips_libcall_value,
20658         mips_function_value_regno_p): New function.
20659         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
20660         TARGET_FUNCTION_VALUE_REGNO_P): Define.
20661
20662 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
20663
20664         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
20665         and -mavx256-split-unaligned-store.
20666         (ix86_option_override_internal): Split 32-byte AVX unaligned
20667         load/store by default.
20668         (ix86_avx256_split_vector_move_misalign): New.
20669         (ix86_expand_vector_move_misalign): Use it.
20670
20671         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
20672         -mavx256-split-unaligned-store.
20673
20674         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
20675         256bit load/store.  Generate unaligned store on misaligned memory
20676         operand.
20677         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
20678         256bit load/store.
20679         (*avx_movdqu<avxmodesuffix>): Likewise.
20680
20681         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
20682         -mavx256-split-unaligned-store.
20683
20684 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
20685
20686         PR target/38598
20687         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
20688         Update commentary.
20689
20690 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
20691
20692         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
20693         opno arguments with an expand_operand.  Use create_input_operand.
20694         (mips_prepare_builtin_target): Delete.
20695         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
20696         functions.
20697         (mips_expand_builtin_direct): Use create_output_operand and
20698         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
20699         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
20700         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
20701
20702 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
20703
20704         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
20705         function.
20706         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
20707
20708 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
20709
20710         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
20711         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
20712         basic blocks and call commit_edge_insertions directly.
20713         (fixup_abnormal_edges): Move from here to...
20714         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
20715         on the edges and return whether some have actually been inserted.
20716         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
20717         compensation code.
20718
20719 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
20720
20721         PR rtl-optimization/48144
20722         * sel-sched-ir.c (merge_history_vect): Factor out from ...
20723         (merge_expr_data): ... here.
20724         (av_set_intersect): Rename to av_set_code_motion_filter.
20725         Update all callers.  Call merge_history_vect when an expression
20726         is found in both sets.
20727         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
20728
20729 2011-03-26  Alan Modra  <amodra@gmail.com>
20730
20731         * config/rs6000/predicates.md (word_offset_memref_op): Handle
20732         cmodel medium addresses.
20733         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
20734         64-bit gpr loads and stores.
20735         (rs6000_secondary_reload_ppc64): New function.
20736         * config/rs6000/rs6000-protos.h: Declare it.
20737         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
20738
20739 2011-03-26  Alan Modra  <amodra@gmail.com>
20740
20741         PR target/47487
20742         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
20743         GNU Go in traceback table.
20744
20745 2011-03-25  Richard Henderson  <rth@redhat.com>
20746
20747         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
20748         if there are exactly 6 operands.
20749         (set_storage_via_setmem): Similarly.
20750
20751 2011-03-25  Kai Tietz  <ktietz@redhat.com>
20752
20753         * collect2.c (write_c_file_stat): Handle backslash
20754         as right-hand directory separator.
20755         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
20756         checking just for slash.
20757         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
20758         instead of checking for trailing slash.
20759         * gcc.c (record_temp_file): Use filename_cmp instead
20760         of strcmp.
20761         (do_spec_1): Likewise.
20762         (replace_outfile_spec_function): Likewise.
20763         (is_directory): Use filename_ncmp instead of strncmp.
20764         (print_multilib_info): Likewise.
20765         * gcov.c (find_source): Use filename_cmp instead
20766         instead of strcmp.
20767         (make_gcov_file_name): Fix order of slash/backslash
20768         checks.
20769         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
20770         (add_standard_paths): Likewise.
20771         * mips-tfile.c (saber_stop): Handle backslash.
20772         * prefix.c (update_path): Use filename_ncmp instead of
20773         strncmp.
20774         * profile.c (output_location): Use filename_cmp instead
20775         of strcmp.
20776         * read-md.c (handle_toplevel_file): Handle backslash.
20777         * tlink.c (frob_extension):  Likewise.
20778         * tree-cfg.c (same_line_p): Use filename_cmp instead of
20779         strcmp.
20780         * tree-dump.c (dequeue_and_dump): Handle backslash.
20781         * tree.c (get_file_function_name): Likewise.
20782         * gengtype.c (read_input_list): Likewise.
20783         (get_file_realbasename): Likewise.
20784         (get_output_file_with_visibility): Use filename_cmp
20785         instead of strcmp.
20786
20787 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
20788
20789         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
20790         case to VFPv1.
20791
20792 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
20793
20794         * fold-const.c (expr_location_or): New function.
20795         (fold_truth_not_expr): Call it.
20796
20797 2011-03-25  Jeff Law  <law@redhat.com>
20798
20799         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
20800         va_end.
20801         * c-family/c-common.c (def_fn_type): Likewise.
20802         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
20803         * emit-rtl.c (gen_rtvec): Likewise.
20804         * lto/lto-lang.c (def_fn_type): Likewise.
20805
20806 2011-03-25  Richard Guenther  <rguenther@suse.de>
20807
20808         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
20809         also generate copies.
20810         (fini_copy_prop): Handle constant values properly.
20811
20812 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
20813
20814         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
20815         mode size instead of bitsize with DWARF2_ADDR_SIZE.
20816         (hash_loc_operands, compare_loc_operands): Handle
20817         DW_OP_GNU_entry_value.
20818
20819 2011-03-25  Kai Tietz  <ktietz@redhat.com>
20820
20821         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
20822         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
20823         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
20824         comment and use macro TARGET_64BIT_MS_ABI instead.
20825         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
20826         and change default behavior for 32-bit MS_ABI.
20827         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
20828         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
20829         32-bit, too.
20830         (ix86_cfun_abi): Likewise.
20831         (ix86_maybe_switch_abi): Adjust comment.
20832         (init_cumulative_args): Check for bit-ness in MS_ABI case.
20833         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
20834         instead of checking for SYSV_ABI.
20835         (ix86_nsaved_sseregs): Likewise.
20836         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
20837         to 16 bytes.
20838         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
20839         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
20840         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
20841         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
20842         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
20843
20844 2011-03-25  Richard Guenther  <rguenther@suse.de>
20845
20846         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
20847         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
20848         (verify_gimple): Remove.
20849         * tree-cfg.c (verify_gimple_call): Merge verification
20850         from verify_stmts.
20851         (verify_gimple_phi): Merge verification from verify_stmts.
20852         (verify_gimple_label): New function.
20853         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
20854         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
20855         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
20856         (verify_stmts): Rename to verify_gimple_in_cfg.
20857         (verify_gimple_in_cfg): New function.
20858         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
20859         * tree-ssa.c (verify_ssa): Likewise.
20860         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
20861
20862 2011-03-25  Richard Guenther  <rguenther@suse.de>
20863
20864         * passes.c (init_optimization_passes): Add FRE pass after
20865         early SRA.
20866
20867 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
20868             Andrew Stubbs  <ams@codesourcery.com>
20869
20870         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
20871         for Cortex-A8.
20872         (arm_movdi_vfp_cortexa8): New pattern.
20873         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
20874         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
20875         instructions when tuning for Cortex-A8.  Set attribute "arch".
20876         * config/arm/arm.md: Move include arm-tune.md up a bit.
20877         (define_attr "arch"): Add "onlya8" and "nota8" values.
20878         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
20879
20880 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
20881
20882         PR bootstrap/48282
20883         Revert:
20884         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
20885
20886         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
20887         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
20888         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
20889         * passes.c (init_optimization_passes): Move
20890         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
20891
20892 2011-03-25  Kai Tietz  <ktietz@redhat.com>
20893
20894         * c-typeck.c (comptypes_internal): Replace target
20895         hook call of comp_type_attributes by version in tree.c file.
20896         * gimple.c (gimple_types_compatible_p_1): Likewise.
20897         * tree-ssa.c (useless_type_conversion_p): Likewise.
20898         * tree.c (build_type_attribute_qual_variant): Likewise.
20899         (attribute_value_equal): New static helper function.
20900         (comp_type_attributes): New function.
20901         (merge_attributes): Use attribute_value_equal for comparison.
20902         (attribute_list_contained): Likewise.
20903         * tree.h (comp_type_attributes): New prototype.
20904
20905 2011-03-25  Richard Guenther  <rguenther@suse.de>
20906
20907         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
20908         of complex types at -O0.
20909         (verify_gimple_assign_binary): Likewise.
20910         (verify_gimple_assign_ternary): Likewise.
20911
20912 2011-03-24  Mark Wielaard  <mjw@redhat.com>
20913
20914         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
20915         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
20916
20917 2011-03-24  Mark Wielaard  <mjw@redhat.com>
20918
20919         PR debug/48041
20920         * dwarf2out.c (output_abbrev_section): Only write table when
20921         abbrev_die_table_in_use > 1.
20922
20923 2011-02-24  Richard Henderson  <rth@redhat.com>
20924
20925         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
20926         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
20927         (alpha_expand_unaligned_load_words): Use extql.
20928         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
20929         (emit_insxl): Handle all modes for consistency.
20930
20931 2011-02-24  Richard Henderson  <rth@redhat.com>
20932
20933         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
20934         (alpha_expand_unaligned_load): Likewise.
20935         (alpha_expand_unaligned_store): Likewise.
20936         (alpha_expand_unaligned_load_words): Likewise.
20937         (alpha_expand_unaligned_store_words): Likewise.
20938         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
20939         (alpha_split_lock_test_and_set_12): Likewise.
20940         (print_operand, alpha_fold_builtin_extxx): Likewise.
20941         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
20942         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
20943         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
20944         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
20945         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
20946         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
20947         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
20948         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
20949         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
20950         (extwl, extll, extql): Similarly.
20951         (inswh, inslh, insqh): Similarly.
20952         (mskbl, mskwl, mskll, mskql): Similarly.
20953         (mskwh, msklh, mskqh): Similarly.
20954
20955 2011-02-24  Richard Henderson  <rth@redhat.com>
20956
20957         * config/alpha/alpha.md (attribute isa): Add er, ner.
20958         (attribute enabled): Handle them.
20959         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
20960
20961 2011-02-24  Richard Henderson  <rth@redhat.com>
20962
20963         * config/alpha/alpha.md (attribute isa): Add vms.
20964         (attribute enabled): Handle it.
20965         (*movsf): Merge *movsf_{nofix,fix,nofp}.
20966         (*movdf): Merge *movdf_{nofix,fix,nofp}.
20967         (*movtf): Rename from *movtf_internal for consistency.
20968         (*movsi): Merge with *movsi_nt_vms.
20969         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
20970         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
20971         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
20972         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
20973
20974 2011-02-24  Richard Henderson  <rth@redhat.com>
20975
20976         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
20977         (extendqisi2, extendhisi2): Likewise.
20978         (extendqidi2): Simplify BWX/non-BWX expansions.
20979         (extendhidi2): Similarly.
20980
20981 2011-02-24  Richard Henderson  <rth@redhat.com>
20982
20983         * config/alpha/alpha.md (attribute isa): New.
20984         (attribute enabled): New.
20985         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
20986         (zero_extendqisi2, zero_extendqidi2): Similarly.
20987         (zero_extendhisi2, zero_extendhidi2): Similarly.
20988         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
20989
20990 2011-02-24  Richard Henderson  <rth@redhat.com>
20991
20992         * config/alpha/predicates.md (input_operand): Revert last change;
20993         update comment to mention 32-bit VMS rather than Windows.
20994
20995 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
20996
20997         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
20998         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
20999         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
21000         * passes.c (init_optimization_passes): Move
21001         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
21002
21003 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
21004
21005         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
21006
21007 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
21008
21009         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
21010         correctly.
21011
21012 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
21013
21014         PR debug/48204
21015         * simplify-rtx.c (simplify_const_unary_operation): Call
21016         real_convert when changing mode class with FLOAT_EXTEND.
21017
21018 2011-03-24  Nick Clifton  <nickc@redhat.com>
21019
21020         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
21021         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
21022         * config/rx/rx.c (rx_option_override): Set align_jumps,
21023         align_loops and align_labels if not set by the user.
21024         (rx_align_for_label): New function.
21025         (rx_max_skip_for_label): New function.
21026         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
21027         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
21028         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
21029         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
21030         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
21031
21032 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
21033
21034         PR rtl-optimization/48263
21035         * optabs.c (expand_binop_directly): Reinstate convert_modes code
21036         and original commutative_p handling.  Use maybe_gen_insn.
21037
21038 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21039
21040         * reload.c (find_reloads_subreg_address): Add address_reloaded
21041         parameter and return true there if the full address has been
21042         reloaded.
21043         (find_reloads_toplev): Pass address_reloaded flag.
21044         (find_reloads_address_1): Don't use address_reloaded parameter.
21045
21046 2011-03-24  Jeff Law  <law@redhat.com>
21047
21048         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
21049         unused variable "ann".
21050         (remove_unused_locals): Likewise.
21051
21052         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
21053         statement.
21054
21055         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
21056         after it is freed.
21057
21058 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21059
21060         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
21061         for invalid symbolic addresses.
21062         (s390_secondary_reload): Don't use s390_check_symref_alignment for
21063         larl operands.
21064
21065 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
21066
21067         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
21068         the argument in calls to fold_truth_not_expr.
21069
21070 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
21071
21072         * tree.c (record_node_allocation_statistics): New function.
21073         (make_node_stat, copy_node_stat, build_string): Call it.
21074         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
21075         (build1_stat, build_omp_clause): Likewise.
21076
21077 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
21078
21079         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
21080         last commit.
21081
21082 2011-03-24  Richard Guenther  <rguenther@suse.de>
21083
21084         PR tree-optimization/48271
21085         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
21086         blocks that still exist.
21087
21088 2011-03-24  Richard Guenther  <rguenther@suse.de>
21089
21090         PR tree-optimization/48270
21091         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
21092         not free datarefs before ddrs.
21093
21094 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
21095
21096         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
21097         from the address built for a reference with variable offset.
21098
21099 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
21100
21101         PR target/48237
21102         * config/i386/i386.md (*movdf_internal_rex64): Do not split
21103         alternatives that can be handled with movq or movabsq insn.
21104         (*movdf_internal): Disable for !TARGET_64BIT.
21105         (*movdf_internal_nointeger): Ditto.
21106         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
21107
21108 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
21109
21110         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
21111         (FUNCTION_ARG_ADVANCE): Likewise.
21112         * tm.texi.in: Change references to them to hook references.
21113         * tm.texi: Regenerate.
21114         * targhooks.c (default_function_arg): Eliminate check for target macro.
21115         (default_function_incoming_arg): Likewise.
21116         (default_function_arg_advance): Likewise.
21117         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
21118         (function_arg_advance): Likewise.
21119         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
21120
21121 2011-03-24  Richard Guenther  <rguenther@suse.de>
21122
21123         PR middle-end/48269
21124         * tree-object-size.c (addr_object_size): Do not double-account
21125         for MEM_REF offsets.
21126
21127 2011-03-24  Diego Novillo  <dnovillo@google.com>
21128
21129         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
21130         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
21131         (lto_input_data_block): Move from lto-opts.c.  Make extern.
21132         Update all users.
21133         (lto_input_string): Rename from input_string.  Make extern.
21134         Update all users.
21135         * lto-streamer-out.c (lto_output_string_with_length): Rename from
21136         output_string_with_length.
21137         Output 0 to indicate a non-NULL string.  Update all callers to
21138         not emit 0.
21139         (lto_output_string): Rename from output_string.  Make extern.
21140         Update all users.
21141         (lto_output_decl_state_streams): Make extern.
21142         (lto_output_decl_state_refs): Make extern.
21143         * lto-streamer.h (lto_input_string): Declare.
21144         (lto_input_data_block): Declare.
21145         (lto_output_string): Declare.
21146         (lto_output_string_with_length): Declare.
21147         (lto_output_decl_state_streams): Declare.
21148         (lto_output_decl_state_refs): Declare.
21149
21150 2011-03-24  Richard Guenther  <rguenther@suse.de>
21151
21152         PR tree-optimization/46562
21153         * tree.c (build_invariant_address): New function.
21154         * tree.h (build_invariant_address): Declare.
21155         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
21156         a renamed function moved ...
21157         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
21158         Take valueization callback parameter.
21159         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
21160         * gimple-fold.h: New file.
21161         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
21162         (ccp_fold, fold_const_aggregate_ref,
21163         fold_ctor_reference, fold_nonarray_ctor_reference,
21164         fold_array_ctor_reference, fold_string_cst_ctor_reference,
21165         get_base_constructor): Move ...
21166         * gimple-fold.c: ... here.
21167         (gimple_fold_stmt_to_constant_1): New function
21168         split out from ccp_fold.  Take a valueization callback parameter.
21169         Valueize all operands.
21170         (gimple_fold_stmt_to_constant): New wrapper function.
21171         (fold_const_aggregate_ref_1): New function split out from
21172         fold_const_aggregate_ref.  Take a valueization callback parameter.
21173         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
21174         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
21175         invariant POINTER_PLUS_EXPRs to invariant form.
21176         (vn_valueize): New function.
21177         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
21178         * tree-vrp.c (vrp_valueize): New function.
21179         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
21180         to fold statements to constants.
21181         * tree-ssa-pre.c (eliminate): Properly guard propagation of
21182         function declarations.
21183         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
21184         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
21185
21186 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
21187
21188         * config/h8300/predicates.md (jump_address_operand): Fix register
21189         mode check.
21190
21191 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
21192
21193         * doc/invoke.texi (max-stores-to-sink): Document.
21194         * params.h (MAX_STORES_TO_SINK): Define.
21195         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
21196         if either vectorization or if-conversion is disabled.
21197         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
21198         tree-vect-data-refs.c vect_equal_offsets.
21199         (dr_equal_offsets_p): New function.
21200         (find_data_references_in_bb): Remove static.
21201         * tree-data-ref.h (find_data_references_in_bb): Declare.
21202         (dr_equal_offsets_p): Likewise.
21203         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
21204         (vect_drs_dependent_in_basic_block): Update calls to
21205         vect_equal_offsets.
21206         (vect_check_interleaving): Likewise.
21207         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
21208         (cond_if_else_store_replacement): Rename to...
21209         (cond_if_else_store_replacement_1): ... this.  Change arguments and
21210         documentation.
21211         (cond_if_else_store_replacement): New function.
21212         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
21213         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
21214
21215 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
21216
21217         PR target/46934
21218         * config/arm/arm.md (casesi): Use the gen_int_mode() function
21219         to subtract lower bound instead of GEN_INT().
21220
21221 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
21222
21223         PR other/48179
21224         PR other/48221
21225         PR other/48234
21226         * doc/extend.texi (Alignment): Move section to match order in TOC.
21227         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
21228         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
21229
21230 2011-03-23  Jeff Law  <law@redhat.com>
21231
21232         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
21233         before removing the edge.
21234
21235         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
21236         it may have been freed by redirect_branch_edge or
21237         redirect_edge_succ_nodup.
21238
21239 2011-03-23  Richard Guenther  <rguenther@suse.de>
21240
21241         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
21242         (check_va_list_escapes): Likewise.
21243         (check_all_va_list_escapes): Likewise.
21244
21245 2011-03-23  Richard Guenther  <rguenther@suse.de>
21246
21247         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
21248         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
21249         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
21250         (alias.o): Likewise.
21251         (ipa-type-escape.o): Remove.
21252         (ipa-struct-reorg.o): Likewise.
21253         (GTFILES): Remove ipa-struct-reorg.c.
21254         * alias.c: Do not include ipa-type-escape.h.
21255         * tree-ssa-alias.c: Likewise.
21256         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
21257         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
21258         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
21259         and ipa-type-escape passes.
21260         * tree-pass.h (pass_ipa_type_escape): Remove.
21261         (pass_ipa_struct_reorg): Likewise.
21262         * ipa-struct-reorg.h: Remove.
21263         * ipa-struct-reorg.c: Likewise.
21264         * ipa-type-escape.h: Likewise.
21265         * ipa-type-escape.c: Likewise.
21266         * doc/invoke.texi (-fipa-struct-reorg): Remove.
21267         (--param struct-reorg-cold-struct-ratio): Likewise.
21268         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
21269         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
21270         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
21271
21272 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21273
21274         * config/s390/2084.md: Enable all insn reservations also for z9_ec
21275         cpu attribute value.
21276         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
21277         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
21278         * config/s390/s390.c (processor_flags_table): New constant array.
21279         (s390_handle_arch_option): Remove.
21280         (s390_handle_option): Remove s390_handle_arch_option invocations
21281         and OPT_mwarn_framesize_ handling.
21282         (s390_option_override): Remove s390_handle_arch_option invocation.
21283         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
21284         warnings.
21285         * config/s390/s390.md (cpu attribute): Add z9_ec value.
21286         * config/s390/s390.opt (s390_tune, s390_arch)
21287         (march=): Replace s390_arch_option enum and values with
21288         processor_type.  Set variable name to s390_arch.  Set
21289         initialization value.
21290         (mtune=): Replace s390_arch_option with processor_type.  Set
21291         variable name to s390_tune.  Set initialization value.
21292
21293 2011-03-23  Julian Brown  <julian@codesourcery.com>
21294
21295         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
21296         accesses which are not naturally aligned.
21297
21298 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
21299
21300         PR target/47553
21301         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
21302
21303 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
21304
21305         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
21306         parameter from "int" to "enum insn_code".
21307         (expand_operand_type): New enum.
21308         (expand_operand): New structure.
21309         (create_expand_operand): New function.
21310         (create_fixed_operand, create_output_operand): Likewise
21311         (create_input_operand, create_convert_operand_to): Likewise.
21312         (create_convert_operand_from, create_address_operand): Likewise.
21313         (create_integer_operand): Likewise.
21314         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
21315         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
21316         (expand_insn, expand_jump_insn): Likewise.
21317         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
21318         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
21319         (expand_movstr, expand_builtin___clear_cache): Likewise.
21320         (expand_builtin_lock_release): Likewise.
21321         * explow.c (allocate_dynamic_stack_space): Likewise.
21322         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
21323         and use the default handling in that case.
21324         * expmed.c (check_predicate_volatile_ok): Delete.
21325         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
21326         (emit_cstore): Likewise.
21327         * expr.c (emit_block_move_via_movmem): Likewise.
21328         (set_storage_via_setmem, expand_assignment): Likewise.
21329         (emit_storent_insn, try_casesi): Likewise.
21330         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
21331         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
21332         (expand_vec_shift_expr, expand_binop_directly): Likewise.
21333         (expand_twoval_unop, expand_twoval_binop): Likewise.
21334         (expand_unop_direct, emit_indirect_jump): Likewise.
21335         (emit_conditional_move, vector_compare_rtx): Likewise.
21336         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
21337         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
21338         (expand_sync_lock_test_and_set): Likewise.
21339         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
21340         (emit_unop_insn): Likewise.
21341         (expand_copysign_absneg): Change icode to an insn_code.
21342         (create_convert_operand_from_type): New function.
21343         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
21344         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
21345         (expand_insn, expand_jump_insn): Likewise.
21346         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
21347         than const_int_operand for operand 2.
21348
21349 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21350
21351         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
21352         if possible.
21353
21354 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
21355
21356         * emit-rtl.c (emit_pattern_before_noloc): New function.
21357         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
21358         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
21359         (emit_pattern_after_noloc): New function.
21360         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
21361         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
21362
21363 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
21364
21365         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
21366         (__ffsDI2): Likewise.
21367
21368 2011-03-22  Richard Henderson  <rth@redhat.com>
21369
21370         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
21371         of !TARGET_ABI_OPEN_VMS.
21372         (alpha_trampoline_init, alpha_start_function): Likewise.
21373         (alpha_expand_epilogue, alpha_file_start): Likewise.
21374         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
21375         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
21376         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
21377         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
21378         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
21379
21380 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21381
21382         * config/s390/s390-opts.h: New.
21383         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
21384         s390_arch_flags, s390_warn_framesize, s390_stack_size,
21385         s390_stack_guard): Remove.
21386         (s390_handle_arch_option): Return void.  Take enum
21387         s390_arch_option value instead of string and searching array.
21388         (s390_handle_option): Don't assert that global structures are in
21389         use.  Access variables via opts pointer.  Use error_at.  Don't use
21390         sscanf for -mstack-guard= or -mstack-size=.  Update call to
21391         s390_handle_arch_option.
21392         (s390_option_override): Update call to s390_handle_arch_option.
21393         (s390_emit_prologue): Use %d format for s390_stack_size in
21394         diagnostic.  Use %wd for HOST_WIDE_INT.
21395         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
21396         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
21397         * config/s390/s390.opt (config/s390/s390-opts.h): New
21398         HeaderInclude entry.
21399         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
21400         s390_arch_flags, s390_warn_framesize): New Variable entries.
21401         (s390_arch_option): New Enum and EnumValue entries.
21402         (march=): Use Enum instead of Var.
21403         (mstack-guard=, mstack-size=): Use UInteger and Var.
21404         (mtune=): Use Enum.
21405
21406 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21407
21408         * config/score/score.c (score_handle_option): Don't assert that
21409         global structures are in use.  Access target_flags via opts
21410         pointer.  Use value of -march= option to determine target_flags
21411         settings.
21412         * config/score/score.opt (march=): Use Enum.
21413         (score_arch): New Enum and EnumValue entries.
21414
21415 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21416
21417         * config/mep/mep.c (option_mtiny_specified): Remove.
21418         (mep_option_override): Move register handling for -mivc2 from
21419         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
21420         instead of option_mtiny_specified.
21421         (mep_handle_option): Access target_flags via opts pointer.  Don't
21422         assert that global structures are in use.  Defer part of -mivc2
21423         handling and move it to mep_option_override.
21424         * config/mep/mep.opt (IVC2): New Mask entry.
21425         (mivc2): Use Var and Defer instead of Mask.
21426
21427 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21428
21429         * config/v850/v850-opts.h: New.
21430         * config/v850/v850.c (small_memory): Replace with
21431         small_memory_physical_max array.  Make that array static const.
21432         (v850_handle_memory_option): Take integer value of argument.  Take
21433         gcc_options pointer, option text and location.  Return void.
21434         Update for changes to small memory structures.
21435         (v850_handle_option): Access target_flags via opts pointer.  Don't
21436         assert that global structures are in use.  Update calls to
21437         v850_handle_memory_option.
21438         (v850_encode_data_area): Update references to small memory settings.
21439         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
21440         (enum small_memory_type): Move to v850-opts.h.
21441         * config/v850/v850.opt (config/v850/v850-opts.h): New
21442         HeaderInclude entry.
21443         (small_memory_max): New Variable entry.
21444         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
21445         (mtda, mzda): Likewise.
21446
21447 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21448
21449         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
21450         pointer.  Don't assert that global structures are in use.
21451
21452 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21453
21454         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
21455         via opts pointer.  Don't assert that global structures are in use.
21456
21457 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21458
21459         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
21460         (munix=93): Use Var.
21461         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
21462         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
21463         * config/pa/pa-opts.h: New.
21464         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
21465         (pa_handle_option): Don't assert that global structures are in
21466         use.  Access target_flags via opts pointer.  Don't handle
21467         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
21468         OPT_munix_98 here.
21469         (pa_option_override): Handle deferred OPT_mfixed_range_.
21470
21471 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21472
21473         * config/mn10300/mn10300-opts.h: New.
21474         * config/mn10300/mn10300.c (mn10300_processor,
21475         mn10300_tune_string): Remove.
21476         (mn10300_handle_option): Don't assert that global structures are
21477         in use.  Access mn10300_processor via opts pointer.  Don't handle
21478         OPT_mtune_ here.
21479         * config/mn10300/mn10300.h (enum processor_type): Move to
21480         mn10300-opts.h.
21481         (mn10300_processor): Remove.
21482         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
21483         HeaderInclude entry.
21484         (mn10300_processor): New Variable entry.
21485         (mtune=): Use Var.
21486
21487 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21488
21489         * config/microblaze/microblaze.c: Don't include opts.h.
21490         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
21491         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
21492         (mno-clearbss): Use Var and Warn.
21493
21494 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21495
21496         * config/m32r/m32r-opts.h: New.
21497         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
21498         (m32r_handle_option): Don't assert that global structures are in
21499         use.  Access target_flags and m32r_cache_flush_func via opts
21500         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
21501         OPT_mno_flush_trap here.
21502         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
21503         include of m32r-opts.h.
21504         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
21505         HeaderInclude entry.
21506         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
21507         (mmodel=): Use Enum and Var.
21508         (m32r_model): New Enum and EnumValue entries.
21509         (mno-flush-trap): Use Var.
21510         (msdata=): Use Enum and Var.
21511         (m32r_sdata): New Enum and EnumValue entries.
21512
21513 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21514
21515         * config/m32c/m32c.c: Don't include opts.h.
21516         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
21517         m32c_handle_option): Remove.
21518         (m32c_option_override): Check global_options_set.x_target_memregs
21519         instead of target_memregs_set.
21520         * config/m32c/m32c.h (target_memregs): Remove.
21521         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
21522         variable.
21523
21524 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21525
21526         * config/iq2000/iq2000-opts.h: New.
21527         * config/iq2000/iq2000.c: Don't include opts.h.
21528         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
21529         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
21530         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
21531         HeaderInclude entry.
21532         (iq2000_tune): New Variable entry.
21533         (march=): Add comment.  Use Enum.
21534         (iq2000_arch): New Enum and EnumValue entries.
21535         (mcpu=): Use Enum and Var.
21536         (iq2000_tune): New Enum and EnumValue entries.
21537
21538 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21539
21540         * config/ia64/ia64-opts.h: New.
21541         * config/ia64/ia64.c (ia64_tune): Remove.
21542         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
21543         here.  Use error_at.
21544         (ia64_option_override): Handle deferred OPT_mfixed_range_.
21545         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
21546         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
21547         HeaderInclude entry.
21548         (ia64_tune): New Variable entry.
21549         (mfixed-range=): Use Defer and Var.
21550         (mtune=): Use Enum and Var.
21551         (ia64_tune): New Enum and EnumValue entries.
21552
21553 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21554
21555         * config/frv/frv-opts.h: New.
21556         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
21557         frv-opts.h.
21558         (frv_cpu_type): Remove.
21559         * config/frv/frv.c: Don't include opts.h.
21560         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
21561         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
21562         (frv_cpu_type): New Variable entry.
21563         (frv_cpu): New Enum and EnumValue entries.
21564
21565 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21566
21567         * config/cris/cris.c (cris_handle_option): Access target_flags via
21568         opts pointer.  Don't assert that global structures are in use.
21569         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
21570         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
21571
21572 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21573
21574         * config/bfin/bfin-opts.h: New.
21575         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
21576         bfin_si_revision, bfin_workarounds): Remove.
21577         (bfin_cpus): Make static const.
21578         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
21579         not bfin_lib_id_given.
21580         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
21581         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
21582         pointer. Use error_at.  Don't assert that global structures are in use.
21583         * config/bfin/bfin.h: Include bfin-opts.h.
21584         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
21585         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
21586         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
21587         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
21588         entries.
21589
21590 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21591
21592         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
21593         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
21594         or -msoft-float here.
21595         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
21596         -msoft-float and -mhard-float.
21597         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
21598         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
21599         msoft-float.
21600         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
21601         -msoft-float.
21602         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
21603         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
21604         not mhard-float.
21605         (LIBGCC_SPEC): Don't handle -msoft-float.
21606         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
21607         -mhard-float.
21608         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
21609         msoft-float.
21610         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
21611         -mfloat-abi=*, not -msoft-float and -mhard-float.
21612         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
21613         -msoft-float.
21614         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
21615         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
21616         mhard-float and msoft-float.
21617         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
21618         mfloat-abi=soft in comments, not mhard-float and msoft-float.
21619         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
21620         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
21621         mhard-float.
21622         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
21623         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
21624         msoft-float.
21625         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
21626         not mhard-float.
21627         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
21628         not msoft-float.
21629
21630 2011-03-22  Richard Henderson  <rth@redhat.com>
21631
21632         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
21633         TARGET_ABI_WINDOWS_NT.
21634         (alpha_output_function_end_prologue): Likewise.
21635         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
21636         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
21637         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
21638         (trap, *movsi_nt_vms): Likewise.
21639         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
21640         (*tablejump_osf_nt_internal): Remove.
21641         * config/alpha/predicates.md (input_operand): Only test Pmode.
21642
21643 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21644
21645         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
21646         via opts pointer.  Use error_at.  Don't assert that global
21647         structures are in use.
21648
21649 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21650
21651         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
21652         (ix86_handle_option): Access ix86_isa_flags and
21653         ix86_isa_flags_explicit via opts pointer.  Don't assert that
21654         global structures are in use.
21655         (ix86_function_specific_save, ix86_function_specific_restore):
21656         Update ix86_isa_flags_explicit field name.
21657         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
21658         (ix86_isa_flags_explicit): Rename TargetSave entry to
21659         x_ix86_isa_flags_explicit.
21660
21661 2011-03-22  Richard Henderson  <rth@redhat.com>
21662
21663         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
21664         (alpha_option_override, direct_return): Likewise.
21665         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
21666         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
21667         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
21668         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
21669         (alpha_expand_epilogue, alpha_end_function): Likewise.
21670         (alpha_init_libfuncs): Likewise.
21671         (struct machine_function): Remove unicosmk members.
21672         (print_operand) ['t']: Remove.
21673         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
21674         unicosmk_output_module_name, unicosmk_output_common,
21675         current_section_align, unicosmk_output_text_section_asm_op,
21676         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
21677         unicosmk_section_type_flags, unicosmk_unique_section,
21678         unicosmk_asm_named_section, unicosmk_insert_attributes,
21679         unicosmk_output_align, unicosmk_defer_case_vector,
21680         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
21681         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
21682         unicosmk_output_ssib, unicosmk_add_call_info_word,
21683         unicosmk_extern_head, unicosmk_output_default_externs,
21684         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
21685         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
21686         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
21687         * config/alpha/alpha-protos.h: Update.
21688         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
21689         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
21690         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
21691         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
21692         (*mulsi_se, mulvsi3): Likewise.
21693         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
21694         (*divmodsi_internal, call, call_value, realign): Likewise.
21695         (moddi3, umoddi3): Likewise; remove duplicate expander.
21696         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
21697         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
21698         (*movdi_nofix): Remove r/U alternative.
21699         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
21700         * config/alpha/constraints.md ("U"): Remove.
21701         * config/alpha/predicates.md (call_operand"): Don't test
21702         TARGET_ABI_UNICOSMK.
21703
21704 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21705
21706         * target.def (handle_option): Take gcc_options and
21707         cl_decoded_option pointers and location_t.
21708         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
21709         * doc/tm.texi: Regenerate.
21710         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
21711         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
21712         * lto-opts.c (lto_reissue_options): Generate option structure for
21713         targetm.handle_option call.
21714         * opts.c (target_handle_option): Update call to
21715         targetm.handle_option.  Remove assertions about values now passed
21716         down to hook.
21717         * targhooks.c (default_target_handle_option): New.
21718         * targhooks.h (default_target_handle_option): Declare.
21719         * config/alpha/alpha.c: Include opts.h.
21720         (alpha_handle_option): Update to new hook interface.
21721         * config/arm/arm.c: Include opts.h.
21722         (arm_handle_option): Update to new hook interface.
21723         * config/arm/t-arm (arm.o): Update dependencies.
21724         * config/bfin/bfin.c: Include opts.h.
21725         (bfin_handle_option): Update to new hook interface.
21726         * config/cris/cris.c: Include opts.h.
21727         (cris_handle_option): Update to new hook interface.
21728         * config/frv/frv.c: Include opts.h.
21729         (frv_handle_option): Update to new hook interface.
21730         * config/i386/i386.c: Include opts.h.
21731         (ix86_handle_option): Update to new hook interface.
21732         (ix86_valid_target_attribute_inner_p): Generate option structure
21733         for call to ix86_handle_option.
21734         * config/i386/t-i386 (i386.o): Update dependencies.
21735         * config/ia64/ia64.c: Include opts.h.
21736         (ia64_handle_option): Update to new hook interface.
21737         * config/ia64/t-ia64 (ia64.o): Update dependencies.
21738         * config/iq2000/iq2000.c: Include opts.h.
21739         (iq2000_handle_option): Update to new hook interface.
21740         * config/m32c/m32c.c: Include opts.h.
21741         (m32c_handle_option): Update to new hook interface.
21742         * config/m32r/m32r.c: Include opts.h.
21743         (m32r_handle_option): Update to new hook interface.
21744         * config/m68k/m68k.c: Include opts.h.
21745         (m68k_handle_option): Update to new hook interface.
21746         * config/mep/mep.c: Include opts.h.
21747         (mep_handle_option): Update to new hook interface.
21748         * config/microblaze/microblaze.c: Include opts.h.
21749         (microblaze_handle_option): Update to new hook interface.
21750         * config/mips/mips.c: Include opts.h.
21751         (mips_handle_option): Update to new hook interface.
21752         * config/mn10300/mn10300.c: Include opts.h.
21753         (mn10300_handle_option): Update to new hook interface.
21754         * config/pa/pa.c: Include opts.h.
21755         (pa_handle_option): Update to new hook interface.
21756         * config/pdp11/pdp11.c: Include opts.h.
21757         (pdp11_handle_option): Update to new hook interface.
21758         * config/rs6000/rs6000.c: Include opts.h.
21759         (rs6000_handle_option): Update to new hook interface.
21760         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
21761         * config/rx/rx.c: Include opts.h.
21762         (rx_handle_option): Update to new hook interface.
21763         * config/s390/s390.c: Include opts.h.
21764         (s390_handle_option): Update to new hook interface.
21765         * config/score/score.c: Include opts.h.
21766         (score_handle_option): Update to new hook interface.
21767         * config/sh/sh.c: Include opts.h.
21768         (sh_handle_option): Update to new hook interface.
21769         * config/sparc/sparc.c: Include opts.h.
21770         (sparc_handle_option): Update to new hook interface.
21771         * config/v850/v850.c: Include opts.h.
21772         (v850_handle_option): Update to new hook interface.
21773
21774 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21775
21776         * gcc.c (driver_unknown_option_callback): Only permit and save
21777         unknown -Wno- options.
21778         (driver_wrong_lang_callback): Save options directly instead of via
21779         driver_unknown_option_callback.
21780
21781 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
21782
21783         * combine.c (simplify_set): Try harder to find the best CC mode when
21784         simplifying a nested COMPARE on the RHS.
21785
21786 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
21787
21788         * config/alpha/gnu.h: Remove.
21789         * config/arc: Remove directory.
21790         * config/arm/netbsd.h: Remove.
21791         * config/arm/t-pe: Remove.
21792         * config/crx: Remove directory.
21793         * config/i386/netbsd.h: Remove.
21794         * config/m68hc11: Remove directory.
21795         * config/m68k/uclinux-oldabi.h: Remove.
21796         * config/mcore/mcore-pe.h: Remove.
21797         * config/mcore/t-mcore-pe: Remove.
21798         * config/netbsd-aout.h: Remove.
21799         * config/rs6000/gnu.h: Remove.
21800         * config/sh/sh-symbian.h: Remove.
21801         * config/sh/symbian-base.c: Remove.
21802         * config/sh/symbian-c.c: Remove.
21803         * config/sh/symbian-cxx.c: Remove.
21804         * config/sh/symbian-post.h: Remove.
21805         * config/sh/symbian-pre.h: Remove.
21806         * config/sh/t-symbian: Remove.
21807         * config/svr3.h: Remove.
21808         * config/vax/netbsd.h: Remove.
21809         * config.build: Don't handle i[34567]86-*-pe.
21810         * config.gcc: Remove handling of deprecations for most deprecated
21811         targets.
21812         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
21813         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
21814         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
21815         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
21816         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
21817         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
21818         Remove cases.
21819         * config.host: Don't handle i[34567]86-*-pe.
21820         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
21821         (ASM_SPEC32): Don't handle -mcall-gnu.
21822         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
21823         -mcall-gnu.
21824         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
21825         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
21826         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
21827         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
21828         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
21829         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
21830         conditional on SYMBIAN.
21831         * configure.ac: Don't handle powerpc*-*-gnu*.
21832         * configure: Regenerate.
21833         * doc/extend.texi (interrupt attribute): Don't mention CRX.
21834         * doc/install-old.texi (m6811, m6812): Don't mention.
21835         * doc/install.texi (arc-*-elf*): Don't document multilib option.
21836         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
21837         (m68k-uclinuxoldabi): Don't mention.
21838         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
21839         Remove.
21840         (-mcall-gnu): Remove.
21841         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
21842         families): Remove constraint documentation.
21843
21844 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
21845
21846         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
21847         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
21848         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
21849
21850 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
21851
21852         PR target/48226
21853         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
21854         vector when peeking at the next token for vector, don't expand the
21855         keywords.
21856
21857 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
21858
21859         * config/avr/avr-protos.h (expand_epilogue): Change prototype
21860         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
21861         * config/avr/avr.c (init_cumulative_args)
21862         (avr_function_arg_advance): Use it.
21863         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
21864         sibcall epilogues.
21865         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
21866         (avr_function_ok_for_sibcall): ...this new function.
21867         (avr_lookup_function_attribute1): New static Function.
21868         (avr_naked_function_p, interrupt_function_p)
21869         (signal_function_p, avr_OS_task_function_p)
21870         (avr_OS_main_function_p): Use it.
21871         * config/avr/avr.md ("sibcall", "sibcall_value")
21872         ("sibcall_epilogue"): New expander.
21873         ("*call_insn", "*call_value_insn"): New insn.
21874         ("call_insn", "call_value_insn"): Remove
21875         ("call", "call_value", "epilogue"): Change expander to handle
21876         sibling calls.
21877
21878 2011-03-21  Nick Clifton  <nickc@redhat.com>
21879
21880         * doc/invoke.texi (Overall Options): Move closing brace to end of
21881         options list.
21882         (Optimization Options): Add missing @gol.
21883         (Directory Options): Likewise.
21884         (i386 and x86-64 Options): Likewise.
21885         (RS6000 and PowerPC Options): Likewise.
21886         (i386 and x86-64 Windows Options): Likewise.
21887         (V850 Options): Add text missing from descriptions.
21888
21889 2011-03-22  Richard Henderson  <rth@redhat.com>
21890
21891         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
21892         (avr_incoming_return_addr_rtx): New.
21893         (emit_push_byte): New.
21894         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
21895         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
21896         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
21897         (emit_pop_byte): New.
21898         (expand_epilogue): Use it.  Pop frame pointer by bytes.
21899         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
21900         (INCOMING_RETURN_ADDR_RTX): New.
21901         (INCOMING_FRAME_SP_OFFSET): New.
21902         (ARG_POINTER_CFA_OFFSET): New.
21903         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
21904         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
21905         (pophi): Remove.
21906
21907         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
21908
21909 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
21910
21911         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
21912         (FUNCTION_ARG_ADVANCE): Likewise.
21913         * tm.texi.in: Change references to them to hook references.
21914         * tm.texi: Regenerate.
21915         * targhooks.c (default_function_arg): Eliminate check for target
21916         macro.
21917         (default_function_incoming_arg): Likewise.
21918         (default_function_arg_advance): Likewise.
21919         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
21920         (function_arg_advance): Likewise.
21921         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
21922
21923 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
21924
21925         * tree.c (build_call_1): New function.
21926         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
21927
21928 2011-03-22  Richard Guenther  <rguenther@suse.de>
21929
21930         PR tree-optimization/48228
21931         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
21932         for single-arg PHIs.
21933
21934 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
21935
21936         PR rtl-optimization/48143
21937         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
21938         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
21939         sse2_cvtps2pd): Likewise.
21940
21941 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21942
21943         * recog.c (canonicalize_change_group): Use validate_unshare_change.
21944
21945 2011-03-22  Richard Guenther  <rguenther@suse.de>
21946
21947         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
21948         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
21949         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
21950         and REALIGN_LOAD_EXPR.
21951         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
21952         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
21953         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
21954         DOT_PROD_EXPR case ...
21955         (expand_expr_real_2): ... here.
21956         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
21957         and REALIGN_LOAD_EXPR.
21958         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
21959         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
21960         (vect_create_epilog_for_reduction): Likewise.
21961         (vectorizable_reduction): Likewise.
21962         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
21963         * tree-vect-stmts.c (vectorizable_load): Likewise.
21964
21965 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
21966
21967         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
21968
21969 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21970
21971         * config/s390/s390.c (s390_delegitimize_address): Fix offset
21972         handling for PLTOFF/GOTOFF.
21973
21974 2011-03-22  Nick Clifton  <nickc@redhat.com>
21975
21976         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
21977         trailing backslash from the end of the macro definition.
21978
21979 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21980
21981         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
21982         and PLT unspecs.
21983
21984 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
21985
21986         * expr.h (prepare_operand): Move to...
21987         * optabs.h (prepare_operand): ...here and change the insn code
21988         parameter from "int" to "enum insn_code".
21989         (insn_operand_matches): Declare.
21990         * expr.c (init_expr_target): Use insn_operand_matches.
21991         (compress_float_constant): Likewise.
21992         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
21993         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
21994         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
21995         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
21996         Likewise.
21997         (gen_cond_trap): Likewise.
21998         (prepare_operand): Likewise.  Change icode to an insn_code.
21999         (insn_operand_matches): New function.
22000         * reload.c (find_reloads_address_1): Use insn_operand_matches.
22001         * reload1.c (gen_reload): Likewise.
22002         * targhooks.c (default_secondary_reload): Likewise.
22003
22004 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
22005
22006         * config/alpha/alpha.md (unspec): New define_c_enum.
22007         (unspecv): Ditto.
22008
22009 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
22010
22011         PR debug/48214
22012         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
22013         between a call and its CALL_ARG_LOCATION note.
22014
22015 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
22016
22017         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
22018
22019 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
22020
22021         PR c/42544
22022         PR c/48197
22023         * c-common.c (shorten_compare): If primopN is first sign-extended
22024         to opN and then zero-extended to result type, set primopN to opN.
22025
22026 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
22027
22028         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
22029         for barrier handlers.
22030
22031 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
22032
22033         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
22034         UNSPEC constants to be in the unspec enumeration, and redefine
22035         all UNSPECV constants to be in the unspecv enumeration, so that
22036         dumps print which unspec/unspec_volatile this is.
22037         * config/rs6000/vector.md (UNSPEC_*): Ditto.
22038         * config/rs6000/paired.md (UNSPEC_*): Ditto.
22039         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
22040         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
22041         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
22042
22043         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
22044         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
22045         UNSPECV_LWSYNC, since these are used as unspec_volatile.
22046         * config/rs6000/sync.md (isync, lwsync): Ditto.
22047
22048 2011-03-21  Richard Guenther  <rguenther@suse.de>
22049
22050         * params.def (lto-min-partition): Fix typo.
22051
22052 2011-03-21  Richard Guenther  <rguenther@suse.de>
22053
22054         PR c/47939
22055         * c-decl.c (grokdeclarator): Drop to the main variant only
22056         for array types.  Drop flag_gen_aux_info check.
22057
22058 2011-03-21  Richard Guenther  <rguenther@suse.de>
22059
22060         PR translation/47911
22061         * params.def (lto-partitions): Fix typo.
22062         (lto-min-partition): Fix wording.
22063
22064 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
22065
22066         * config/rs6000/t-freebsd: Remove duplication from file.
22067
22068 2011-03-21  Richard Guenther  <rguenther@suse.de>
22069
22070         PR middle-end/47661
22071         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
22072
22073 2011-03-21  Richard Guenther  <rguenther@suse.de>
22074
22075         PR lto/48210
22076         * params.def (lto-partitions): Require at least 1 partition.
22077
22078 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22079
22080         * gthr-solaris.h: Remove.
22081         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
22082         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
22083         (LIB_SPEC): Likewise.
22084         * config/sol2.opt (threads): Remove.
22085         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
22086         (sparc*-*-solaris2*): Likewise.
22087         * configure.ac (enable_threads): Enable solaris support.
22088         * configure: Regenerate.
22089         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
22090         * doc/install.texi (Configuration, --enable-threads=lib): Remove
22091         solaris.
22092
22093 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22094
22095         * config.gcc: Obsolete *-*-solaris2.8*.
22096         * doc/install.texi (Specific, *-*-solaris2*): Document it.
22097
22098 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22099
22100         PR bootstrap/48135
22101         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
22102         reference.  Solaris 8 perl works.
22103
22104 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22105
22106         PR bootstrap/48135
22107         * doc/install.texi (Prerequisites): Move jar etc. up.
22108         Explain support library version requirements.
22109
22110 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22111
22112         PR bootstrap/48135
22113         * doc/install.texi (Prerequisites): Move Perl to build
22114         requirements.  Always necessary on Solaris 2 with Sun ld.
22115
22116 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22117
22118         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
22119         binutils 2.21.
22120         (Specific, i?86-*-solaris2.[89]): Likewise.
22121         (Specific, i?86-*-solaris2.10): Likewise.
22122         (Specific, mips-sgi-irix6): Likewise.
22123         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
22124         Update for binutils 2.21.
22125
22126 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22127
22128         * configure.ac (gcc_cv_lto_plugin): Fix typo.
22129         Allow -fuse-linker-plugin for non-default plugin linker.
22130         * configure: Regenerate.
22131
22132 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
22133
22134         PR bootstrap/48167
22135         * gengtype.c (files_rules): Added rule for cp/parser.h.
22136
22137 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
22138
22139         PR target/48213
22140         * config/s390/s390.c (s390_delegitimize_address): Don't call
22141         lowpart_subreg if orig_x has BLKmode.
22142
22143 2011-03-21  Kai Tietz  <ktietz@redhat.com>
22144
22145         PR target/12171
22146         * doc/plugins.texi: Adjust documentation for plugin register_callback.
22147         * tree.h (attribute_spec): Add new member affects_type_identity.
22148         * attribs.c (empty_attribute_table): Adjust attribute_spec
22149         initializers.
22150         * config/alpha/alpha.c: Likewise.
22151         * config/arc/arc.c: Likewise.
22152         * config/arm/arm.c: Likewise.
22153         * config/avr/avr.c: Likewise.
22154         * config/bfin/bfin.c: Likewise.
22155         * config/crx/crx.c: Likewise.
22156         * config/darwin.h: Likewise.
22157         * config/h8300/h8300.c: Likewise.
22158         * config/i386/cygming.h: Likewise.
22159         * config/i386/i386.c: Likewise.
22160         * config/ia64/ia64.c: Likewise.
22161         * config/m32c/m32c.c: Likewise.
22162         * config/m32r/m32r.c: Likewise.
22163         * config/m68hc11/m68hc11.c: Likewise.
22164         * config/m68k/m68k.c: Likewise.
22165         * config/mcore/mcore.c: Likewise.
22166         * config/mep/mep.c: Likewise.
22167         * config/microblaze/microblaze.c: Likewise.
22168         * config/mips/mips.c: Likewise.
22169         * config/rs6000/rs6000.c: Likewise.
22170         * config/rx/rx.c: Likewise.
22171         * config/sh/sh.c: Likewise.
22172         * config/sol2.h: Likewise.
22173         * config/sparc/sparc.c: Likewise.
22174         * config/spu/spu.c: Likewise.
22175         * config/stormy16/stormy16.c: Likewise.
22176         * config/v850/v850.c: Likewise.
22177
22178 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
22179
22180         * simplify-rtx.c (simplify_binary_operation_1): Handle
22181         (xor (and A B) C) case when B and C are both constants.
22182
22183 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
22184
22185         * tree-dfa.c (add_referenced_var): Fix typo in comment.
22186
22187 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
22188
22189         PR bootstrap/48168
22190         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
22191
22192 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
22193
22194         PR rtl-optimization/48156
22195         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
22196         assume df and df_lr are not NULL.
22197
22198 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
22199
22200         PR debug/48023
22201         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
22202         between a call and its CALL_ARG_LOCATION note.
22203
22204 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
22205
22206         PR debug/48178
22207         * config/sh/sh.c (find_barrier): Don't emit a constant pool
22208         between a call and its corresponding CALL_ARG_LOCATION note.
22209
22210 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
22211
22212         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
22213         instead of loop. Use HARD_REGISTER_NUM_P predicate.
22214         * haifa-sched.c (setup_ref_regs): Ditto.
22215         * caller-save.c (add_used_regs_1): Ditto.
22216         * dse.c (look_for_hardregs): Ditto.
22217         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
22218         * sched-rgn.c (check_live_1): Ditto.
22219
22220 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
22221
22222         * c-decl.c (diagnose_mismatched_decls): Give an error for
22223         redefining a typedef with variably modified type.
22224
22225 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
22226
22227         * c-decl.c (grokfield): Don't allow typedefs for structures or
22228         unions with no tag by default.
22229         * doc/extend.texi (Unnamed Fields): Update.
22230
22231 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
22232
22233         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
22234         Rewrite using indirect functions.
22235         (lwp_slwpcb): Ditto.
22236         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
22237         (avx_vinsertf128<mode>): Ditto.
22238
22239 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22240
22241         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
22242         unspecs.
22243
22244 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22245
22246         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
22247         splitting between a call and its corresponding CALL_ARG_LOCATION note.
22248
22249 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
22250
22251         PR rtl-optimization/48170
22252         * gcse.c (hoist_code): Remove bogus asserts.
22253
22254 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
22255
22256         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
22257         computation for prologue/epilogue.
22258
22259 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22260
22261         * Makefile.in (check-consistency): Remove.
22262
22263 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
22264
22265         PR debug/48176
22266         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
22267         arange_table_in_use is 0, but either text_section_used or
22268         cold_text_section_used is true.  Don't call it if
22269         !info_section_emitted.
22270
22271 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
22272
22273         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
22274         FUNCTION_VALUE_REGNO_P): Remove.
22275         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
22276         Remove.
22277         * config/avr/avr.c (avr_ret_register): Make static inline.
22278         (avr_function_value_regno_p): New function.
22279         (avr_libcall_value): Make static. Add 'func' argument.
22280         (avr_function_value): Make static. Rename 'func' argument to
22281         'fn_decl_or_type', forward it to avr_libcall_value. Call
22282         avr_ret_register function instead of RET_REGISTER macro.
22283         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
22284
22285 2011-03-18  Jason Merrill  <jason@redhat.com>
22286
22287         PR c++/23372
22288         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
22289
22290 2011-03-18  Richard Guenther  <rguenther@suse.de>
22291
22292         * doc/install.texi (--enable-gold): Remove.
22293         (--with-plugin-ld): Document.
22294         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
22295
22296 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
22297
22298         PR middle-end/47790
22299         * expr.c (optimize_bitfield_assignment_op): Revamp to work
22300         again after expansion changes.
22301
22302 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
22303
22304         * combine.c (try_combine): Do simplification only call of
22305         subst() on i2 even when i1 is present. Update comments.
22306
22307 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
22308
22309         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
22310         and UNSPEC_PCREL_SYMOFF.
22311
22312 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22313
22314         * config/s390/s390.md: Use define_c_enum for the unspec constant
22315         definitions.
22316
22317 2011-03-18  Richard Henderson  <rth@redhat.com>
22318             Jakub Jelinek  <jakub@redhat.com>
22319
22320         PR bootstrap/48161
22321         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
22322         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
22323
22324 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
22325
22326         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
22327         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
22328         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
22329         Change return type to bool.
22330         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
22331
22332 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
22333
22334         PR debug/48163
22335         * var-tracking.c (prepare_call_arguments): If CALL target
22336         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
22337         pc instead of looking it up using cselib_lookup and use
22338         Pmode for it if x has VOIDmode.
22339         * dwarf2out.c (gen_subprogram_die): If also both first and
22340         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
22341
22342         PR debug/48163
22343         * function.c (assign_parms): For data.passed_pointer parms
22344         use MEM of data.entry_parm instead of data.entry_parm itself
22345         as DECL_INCOMING_RTL.
22346         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
22347         also when passed and declared mode is the same, DECL_RTL
22348         is a MEM with pseudo as address and DECL_INCOMING_RTL is
22349         a MEM too.
22350
22351 2011-03-16  Jeff Law  <law@redhat.com>
22352
22353         PR rtl-optimization/37273
22354         * ira-costs.c (scan_one_insn): Detect constants living in memory and
22355         handle them like argument loads from stack slots.  Do not double
22356         count memory for memory constants and argument loads from stack slots.
22357
22358 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
22359
22360         PR debug/48160
22361         * var-tracking.c (prepare_call_arguments): Check SUBREG.
22362
22363 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
22364
22365         PR target/48171
22366         * config/i386/i386.opt: Add Save to -mavx and -mfma.
22367
22368 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
22369
22370         PR bootstrap/48153
22371         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
22372         if dwarf_strict.
22373         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
22374         Clear call_arg_locations and call_arg_loc_last always.
22375
22376         PR middle-end/48152
22377         * var-tracking.c (prepare_call_arguments): If argument needs to be
22378         passed by reference, adjust argtype and mode.
22379
22380 2011-03-17  Richard Guenther  <rguenther@suse.de>
22381
22382         PR middle-end/48134
22383         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
22384         a value make sure to fold the statement.
22385
22386 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
22387
22388         PR target/43872
22389         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
22390         return condition with !cfun->calls_alloca.
22391
22392 2011-03-17  Richard Guenther  <rguenther@suse.de>
22393
22394         PR bootstrap/48148
22395         * lto-cgraph.c (input_overwrite_node): Clear the abstract
22396         origin for decls in other ltrans units.
22397         (input_varpool_node): Likewise.
22398
22399 2011-03-17  Richard Guenther  <rguenther@suse.de>
22400
22401         PR middle-end/48165
22402         * tree-object-size.c (compute_object_offset): Properly return
22403         the offset operand of MEM_REFs as sizetype.
22404
22405 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
22406
22407         PR rtl-optimization/48141
22408         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
22409         * dse.c: Include params.h.
22410         (active_local_stores_len): New variable.
22411         (add_wild_read, dse_step1): Clear it when setting active_local_stores
22412         to NULL.
22413         (record_store, check_mem_read_rtx): Decrease it when removing
22414         from the chain.
22415         (scan_insn): Likewise.  Increase it when adding to chain, if it
22416         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
22417         set active_local_stores to NULL before the addition.
22418         * Makefile.in (dse.o): Depend on $(PARAMS_H).
22419
22420         PR rtl-optimization/48141
22421         * dse.c (record_store): If no positions are needed in an insn
22422         that cannot be deleted, at least unchain it from active_local_stores.
22423
22424 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
22425
22426         PR debug/47510
22427         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
22428         (lookup_type_die_strip_naming_typedef): ... here.
22429         (get_context_die): Use it.
22430         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
22431         the anonymous struct named by the naming typedef.
22432
22433 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
22434
22435         PR target/48154
22436         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
22437         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
22438
22439 2011-03-16  Jeff Law  <law@redhat.com>
22440
22441         * tree-vrp.c (identify_jump_threads): Slightly simplify type
22442         check for operands of conditional.  Allow type to be a pointer.
22443
22444 2011-03-16  Richard Guenther  <rguenther@suse.de>
22445
22446         PR tree-optimization/48149
22447         * fold-const.c (fold_binary_loc): Fold
22448         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
22449
22450 2011-03-16  Richard Guenther  <rguenther@suse.de>
22451
22452         PR tree-optimization/26134
22453         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
22454         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
22455         (non_rewritable_mem_ref_base): Handle complex type component
22456         accesses, constrain offsets for vector and complex extracts
22457         more properly.
22458
22459 2011-03-16  Richard Guenther  <rguenther@suse.de>
22460
22461         PR tree-optimization/48146
22462         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
22463         operands avoiding the need for renaming.
22464
22465 2011-03-16  Richard Guenther  <rguenther@suse.de>
22466
22467         * gimple-fold.c (maybe_fold_reference): Open-code relevant
22468         constant folding.  Move MEM_REF canonicalization first.
22469         Rely on fold_const_aggregate_ref for initializer folding.
22470         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
22471
22472 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
22473
22474         PR middle-end/48136
22475         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
22476         arg0/arg1 or their arguments are always fold converted to matching
22477         types.
22478
22479         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
22480         to nargs.
22481
22482 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22483
22484         PR lto/46944
22485         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
22486         Handle in-tree gold.
22487         (ld_vers): Extract binutils version for gold.
22488         (gcc_cv_ld_hidden): Handle gold here.
22489         (gcc_cv_lto_plugin): Determine level of linker plugin support.
22490         * configure: Regenerate.
22491         * config.in: Regenerate.
22492         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
22493         -fuse-linker-plugin otherwise.
22494         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
22495         (LINK_COMMAND_SPEC): Use it.
22496         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
22497
22498 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
22499
22500         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
22501         * calls.c: Remove debug.h include.
22502         (emit_call_1): Don't call virtual_call_token debug hook.
22503         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
22504         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
22505         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
22506         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
22507         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
22508         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
22509         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
22510         dwarf2out_virtual_call): Remove.
22511         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
22512         copy_call_info and virtual_call hooks.
22513         (dwarf2out_init): Don't initialize vcall_insn_table,
22514         debug_dcall_section and debug_vcall_section.
22515         (prune_unused_types): Don't mark nodes from dcall_table.
22516         (dwarf2out_finish): Don't output dcall or vcall tables.
22517         * final.c (final_scan_insn): Don't call direct_call or
22518         virtual_call debug hooks.
22519         * debug.h (struct gcc_debug_hooks): Remove direct_call,
22520         virtual_call_token, copy_call_info and virtual_call hooks.
22521         (debug_nothing_uid): Remove prototype.
22522         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
22523         copy_call_info and virtual_call hooks.
22524         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
22525         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
22526         * debug.c (do_nothing_debug_hooks): Likewise.
22527         (debug_nothing_uid): Remove.
22528         * doc/invoke.texi (-fenable-icf-debug): Remove.
22529         * common.opt (-fenable-icf-debug): Likewise.
22530
22531         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
22532         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
22533         call's MEM.  Handle functions returning aggregate through a hidden
22534         first pointer.  For virtual calls add clobbered pc to call arguments
22535         chain.
22536         * dwarf2out.c (gen_subprogram_die): Emit
22537         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
22538         can't be emitted.
22539
22540         PR debug/45882
22541         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
22542         * rtl.h (ENTRY_VALUE_EXP): Define.
22543         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
22544         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
22545         * print-rtl.c (print_rtx): Likewise.
22546         * gengtype.c (adjust_field_rtx_def): Likewise.
22547         * var-tracking.c (vt_add_function_parameter): Adjust
22548         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
22549         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
22550         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
22551         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
22552         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
22553
22554         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
22555         Call var_location debug hook even on CALL_INSNs.
22556         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
22557         * rtl.def (ENTRY_VALUE): New.
22558         * dwarf2out.c: Include cfglayout.h.
22559         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
22560         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
22561         (struct call_arg_loc_node): New type.
22562         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
22563         tail_call_site_count): New variables.
22564         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
22565         DW_TAG_GNU_call_site_parameter.
22566         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
22567         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
22568         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
22569         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
22570         and DW_AT_GNU_all_source_call_sites.
22571         (mem_loc_descriptor): Handle ENTRY_VALUE.
22572         (add_src_coords_attributes): Don't add enything if
22573         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
22574         (dwarf2out_abstract_function): Save and clear call_arg_location,
22575         call_site_count and tail_call_site_count around dwarf2out_decl call.
22576         (gen_call_site_die): New function.
22577         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
22578         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
22579         (dwarf2out_function_decl): Clear call_arg_locations,
22580         call_arg_loc_last, set call_site_count and tail_call_site_count
22581         to -1 and free block_map.
22582         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
22583         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
22584         followed by any real instructions.
22585         (dwarf2out_begin_function): Set call_site_count and
22586         tail_call_site_count to 0.
22587         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
22588         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
22589         attempt to force a DIE for it and worst case remove the attribute.
22590         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
22591         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
22592         the decl itself.
22593         * var-tracking.c: Include tm_p.h.
22594         (vt_stack_adjustments): For calls call note_register_arguments.
22595         (argument_reg_set): New variable.
22596         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
22597         ensure the VALUE is resolved.
22598         (call_arguments): New variable.
22599         (prepare_call_arguments): New function.
22600         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
22601         (struct expand_loc_callback_data): Add ignore_cur_loc field.
22602         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
22603         always use the best expression.
22604         (vt_expand_loc): Add ignore_cur_loc argument.
22605         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
22606         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
22607         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
22608         note for all calls.
22609         (vt_add_function_parameter): Use cselib_lookup_from_insn.
22610         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
22611         argument.  Don't call cselib_preserve_only_values and
22612         cselib_reset_table.
22613         (note_register_arguments): New function.
22614         (vt_initialize): Compute argument_reg_set.  Call
22615         vt_add_function_parameters before processing basic blocks instead of
22616         afterwards.  For calls call prepare_call_arguments before calling
22617         cselib_process_insn.
22618         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
22619         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
22620         (var-tracking.o): Depend on $(TM_P_H).
22621         * cfglayout.h (insn_scope): New prototype.
22622         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
22623         * cfglayout.c (insn_scope): No longer static.
22624         * insn-notes.def (CALL_ARG_LOCATION): New.
22625         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
22626         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
22627         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
22628         nothing for DECL_EXTERNAL BLOCK_VARS.
22629
22630 2011-03-16  Alan Modra  <amodra@gmail.com>
22631
22632         PR target/45844
22633         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
22634         create invalid offset address for vsx splat insn.
22635         * config/rs6000/predicates.md (splat_input_operand): New.
22636         * config/rs6000/vsx.md (vsx_splat_*): Use it.
22637
22638 2011-03-15  Xinliang David Li  <davidxl@google.com>
22639
22640         PR c/47837
22641         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
22642         (normalize_preds): New function.
22643         (is_use_properly_guarded): Normalize def predicates.
22644
22645 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
22646
22647         PR target/46788
22648         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
22649         in the output template.
22650
22651 2011-03-15  Richard Guenther  <rguenther@suse.de>
22652
22653         PR middle-end/47650
22654         * tree-pretty-print.c (dump_function_declaration): Properly
22655         dump unprototyped and varargs function types.
22656
22657 2011-03-15  Richard Guenther  <rguenther@suse.de>
22658
22659         PR tree-optimization/13954
22660         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
22661         and friends.
22662
22663 2011-03-15  Richard Guenther  <rguenther@suse.de>
22664
22665         PR tree-optimization/48037
22666         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
22667         selects into BIT_FIELD_REFs.
22668         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
22669         vector select.
22670
22671 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
22672
22673         PR tree-optimization/48129
22674         * builtins.c (fold_builtin_snprintf): Convert to type of
22675         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
22676         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
22677
22678 2011-03-15  Richard Guenther  <rguenther@suse.de>
22679
22680         PR tree-optimization/41490
22681         * tree-ssa-dce.c (propagate_necessity): Handle returns without
22682         value but with VUSE.
22683         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
22684         return statements.
22685         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
22686         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
22687         * tree-tailcall.c (find_tail_calls): Ignore returns.
22688
22689 2011-03-15  Richard Guenther  <rguenther@suse.de>
22690
22691         PR middle-end/48031
22692         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
22693         or variable-indexed array accesses when in gimple form.
22694
22695 2011-03-15  Richard Guenther  <rguenther@suse.de>
22696
22697         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
22698
22699 2011-03-15  Alan Modra  <amodra@gmail.com>
22700
22701         PR target/48032
22702         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
22703         presume symbol_refs without a symbol_ref_decl are suitably
22704         aligned, nor other trees we may see here.  Handle anchor symbols.
22705         (legitimate_constant_pool_address_p): Comment.  Add mode param.
22706         Check cmodel=medium addresses.  Adjust all calls.
22707         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
22708         creating cmodel=medium optimized access to locals.
22709         * config/rs6000/constraints.md (R): Pass QImode to
22710         legitimate_constant_pool_address_p.
22711         * config/rs6000/predicates.md (input_operand): Pass mode to
22712         legitimate_constant_pool_address_p.
22713         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
22714         Update prototype.
22715
22716 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
22717
22718         PR target/48053
22719         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
22720         64-bit constants being loaded into registers other than GPRs such
22721         as loading 0 into a VSX register.
22722
22723 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22724
22725         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
22726
22727 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
22728
22729         PR middle-end/47917
22730         * builtins.c (fold_builtin_snprintf): New function.
22731         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
22732         (fold_builtin_4): Likewise.
22733
22734         PR middle-end/38878
22735         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
22736         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
22737         and C - X == X also strip nops from +/-/p+ operand.
22738         When optimizing -X == C, fold C to arg0's type.
22739
22740         PR debug/47946
22741         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
22742         emit it as add_AT_int instead of add_AT_unsigned.
22743
22744 2011-03-14  Tom Tromey  <tromey@redhat.com>
22745
22746         * unwind-dw2.c: Include sys/sdt.h if it exists.
22747         (_Unwind_DebugHook): Use STAP_PROBE2.
22748         * config.in, configure: Rebuild.
22749         * configure.ac: Check for sys/sdt.h.
22750
22751 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
22752
22753         * config/i386/i386.md (ROUND_FLOOR): New constant.
22754         (ROUND_CEIL): Ditto.
22755         (ROUND_TRUNC): Ditto.
22756         (ROUND_MXCSR): Ditto.
22757         (ROUND_NO_EXC): Ditto.
22758         (rint<mode>2): Use new defines instead of numerical constants.
22759         (floor<mode>2): Ditto.
22760         (ceil<mode>2): Ditto.
22761         (btrunc<mode>2): Ditto.
22762         * config/i386/i386-builtin-types.def: Define ROUND function type
22763         aliases.
22764         * config/i386/i386.c (enum ix86_builtins): Add
22765         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
22766         (struct builtin_description): Add
22767         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
22768         (ix86_expand_sse_round): New static function.
22769         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
22770         function types.
22771         (ix86_builtin_vectorized_function): Handle
22772         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
22773
22774 2011-03-14  Tom Tromey  <tromey@redhat.com>
22775
22776         * c-parser.c (c_parser_asm_string_literal): Clear
22777         warn_overlength_strings.
22778
22779 2011-03-14  Tom Tromey  <tromey@redhat.com>
22780
22781         * c-parser.c (disable_extension_diagnostics): Save
22782         warn_overlength_strings.
22783         (restore_extension_diagnostics): Restore warn_overlength_strings.
22784
22785 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
22786
22787         * BASE-VER: Change to 4.7.0.
22788
22789 2011-03-14  Richard Guenther  <rguenther@suse.de>
22790
22791         PR middle-end/48098
22792         * tree.c (build_vector_from_val): Adjust assert to requirements
22793         and reality.
22794
22795 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
22796
22797         PR bootstrap/48102
22798         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
22799
22800 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
22801
22802         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
22803         terms of target_flags_explicit. Adjust copyright year.
22804
22805         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
22806         * config/rs6000/t-freebsd: New file. Add override for
22807         LIB2FUNCS_EXTRA.
22808
22809 2011-03-13  Chris Demetriou  <cgd@google.com>
22810
22811         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
22812         (-fno-diagnostics-show-option): this, to reflect current default.
22813         (-Werror=): Update text about -fno-diagnostics-show-option.
22814
22815 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
22816
22817         PR target/48053
22818         * config/rs6000/predicates.md (easy_vector_constant_add_self,
22819         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
22820         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
22821         mode is not V2DImode or V2DFmode.
22822         (vspltis_constant): Do not handle V2DImode and V2DFmode.
22823         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
22824         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
22825         registers to 0.
22826         (movdi_internal64): Likewise.
22827
22828 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
22829
22830         PR tree-optimization/47127
22831         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
22832         parameter.
22833         (set_cloog_options): Same.
22834         (scop_to_clast): Same.
22835         (print_clast_stmt): Do not call cloog_state_malloc and
22836         cloog_state_free.
22837         (print_generated_program): Same.
22838         (gloog): Same.
22839         * graphite-clast-to-gimple.h (cloog_state): Declared.
22840         (scop_to_clast): Adjust declaration.
22841         * graphite.c (cloog_state): Defined here.
22842         (graphite_initialize): Call cloog_state_malloc.
22843         (graphite_finalize): Call cloog_state_free.
22844
22845 2011-03-11  Jason Merrill  <jason@redhat.com>
22846
22847         * attribs.c (lookup_attribute_spec): Take const_tree.
22848         * tree.h: Adjust.
22849
22850 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
22851
22852         * config/sparc/sparc.c (sparc_option_override): Use
22853         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
22854
22855 2011-03-11  Richard Guenther  <rguenther@suse.de>
22856
22857         PR tree-optimization/48067
22858         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
22859         multiplication result will be only used once on the target
22860         stmt.
22861
22862 2011-03-11  Richard Guenther  <rguenther@suse.de>
22863
22864         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
22865
22866 2011-03-11  Richard Guenther  <rguenther@suse.de>
22867
22868         PR lto/48073
22869         * tree.c (find_decls_types_r): Do not walk types only reachable
22870         from IDENTIFIER_NODEs.
22871
22872 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
22873
22874         PR middle-end/48044
22875         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
22876         all vnode->force_output nodes as needed.
22877
22878 2011-03-11  Jason Merrill  <jason@redhat.com>
22879
22880         PR c++/48069
22881         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
22882         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
22883
22884 2011-03-11  Martin Jambor  <mjambor@suse.cz>
22885
22886         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
22887         cgraph_node.
22888
22889 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
22890
22891         PR tree-optimization/48063
22892         * ipa-inline.c (cgraph_decide_inlining): Don't try to
22893         inline functions called once if !tree_can_inline_p (node->callers).
22894
22895 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
22896
22897         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
22898         extra_objs.
22899         * config/score/score3.c: Delete.
22900         * config/score/score3.h: Delete.
22901         * config/score/mul-div.S: Delete.
22902         * config/score/sfp-machine.h: Add new file.
22903         * config/score/constraints.md: Add new file.
22904         * config/score/t-score-softfp: Add new file.
22905         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
22906         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
22907         (score7_extra_constraint): Delete.
22908         (score7_option_override): Remove unused code.
22909         * config/score/score.c: Remove score3 and score5 define and code.
22910         * config/score/score.h: Remove score3 and score5 define and code.
22911         * config/score/score.md: Remove score3 template and unusual insn.
22912         * config/score/score.opt: Remove score3 and score5 options.
22913
22914 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22915
22916         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
22917         when _HPUX_SOURCE is defined.
22918         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
22919
22920 2011-03-10  Jason Merrill  <jason@redhat.com>
22921
22922         PR c++/48029
22923         * stor-layout.c (layout_type): Don't set structural equality
22924         on arrays of incomplete type.
22925         * tree.c (type_hash_eq): Handle comparing them properly.
22926
22927 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
22928
22929         PR debug/48043
22930         * config/s390/s390.c (s390_delegitimize_address): Make sure the
22931         result mode matches original rtl mode.
22932
22933 2011-03-10  Nick Clifton  <nickc@redhat.com>
22934
22935         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
22936         (andsi3, andsi3_flags): Fix timings for three operand alternative.
22937
22938 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
22939
22940         PR rtl-optimization/47866
22941         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
22942         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
22943         if target wasn't scalar.
22944         * function.c (assign_stack_temp_for_type): Assert that neither
22945         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
22946         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
22947         macro.
22948         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
22949
22950 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22951
22952         * config/s390/s390-protos.h (s390_label_align): New prototype.
22953         * config/s390/s390.c (s390_label_align): New function.
22954         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
22955
22956 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
22957
22958         PR target/47755
22959         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
22960         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
22961         (output_vec_const_move): Ditto.
22962
22963 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
22964
22965         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
22966         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
22967         * config/mips/mips.c (mips_preferred_reload_class): Make static.
22968         Change 'rclass' argument and result type to reg_class_t.
22969         (TARGET_PREFERRED_RELOAD_CLASS): Define.
22970
22971 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
22972
22973         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
22974         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
22975         (TARGET_MEMORY_MOVE_COST): Define.
22976         (avr_register_move_cost, avr_memory_move_cost): New Functions.
22977
22978 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
22979
22980         PR debug/47881
22981         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
22982         removed anything.
22983
22984         PR tree-optimization/48022
22985         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
22986         for EQ/NE_EXPR.
22987
22988 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
22989
22990         PR debug/47991
22991         * var-tracking.c (find_use_val): Return NULL for
22992         cui->sets && cui->store_p BLKmode MEMs.
22993
22994 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
22995
22996         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
22997         Remove.
22998         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
22999         xstormy16_print_operand_address): Remove.
23000         * config/stormy16/stormy16.c (xstormy16_print_operand,
23001         xstormy16_print_operand_address): Make static.
23002         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23003
23004 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
23005
23006         PR target/47862
23007         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
23008         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
23009         before definition.
23010
23011 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
23012
23013         PR bootstrap/48000
23014         * cfgloopmanip.c (fix_bb_placements): Return immediately
23015         if FROM is BASE_LOOP's header.
23016
23017 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
23018
23019         * gimplify.c (gimplify_function_tree): Fix building calls
23020         to __builtin_return_address.
23021
23022 2011-03-07  Alan Modra  <amodra@gmail.com>
23023
23024         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
23025         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
23026         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
23027         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
23028         return_mode args.
23029         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
23030         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
23031         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
23032         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
23033         * config/rs6000/rs6000.c
23034         (rs6000_elf_end_indicate_exec_stack): Rename to..
23035         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
23036         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
23037         (rs6000_file_start): ..here.
23038         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
23039         file scope variables.
23040         (call_ABI_of_interest): New function.
23041         (init_cumulative_args): Set above vars when function return value
23042         is a float, vector, or small struct.
23043         (rs6000_function_arg_advance_1): Likewise for function args.
23044         (rs6000_va_start): Set rs6000_passes_float if variable arg function
23045         references float args.
23046
23047 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
23048
23049         * doc/cfg.texi: Remove "See" before @ref.
23050         * doc/invoke.texi: Likewise.
23051
23052 2011-03-05  Jason Merrill  <jason@redhat.com>
23053
23054         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
23055
23056 2011-03-05  Anthony Green  <green@moxielogic.com>
23057
23058         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
23059
23060 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
23061
23062         PR rtl-optimization/47899
23063         * cfgloopmanip.c (fix_bb_placements): Fix first argument
23064         to flow_loop_nested_p when moving the loop upward.
23065
23066 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
23067
23068         PR target/47719
23069         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
23070
23071 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
23072
23073         PR tree-optimization/47967
23074         * ipa-cp.c (build_const_val): Return NULL instead of creating
23075         VIEW_CONVERT_EXPR for mismatching sizes.
23076         (ipcp_create_replace_map): Return NULL if build_const_val failed.
23077         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
23078         give up on versioning.
23079
23080 2011-03-05  Alan Modra  <amodra@gmail.com>
23081
23082         PR target/47986
23083         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
23084         full cmodel medium/large lo_sum + high addresses.
23085
23086 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23087
23088         * config/s390/s390.c (s390_decompose_address): Reject non-literal
23089         pool references in UNSPEC_LTREL_OFFSET.
23090
23091 2011-03-04  Jan Hubicka  <jh@suse.cz>
23092
23093         PR lto/47497
23094         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
23095         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
23096         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
23097         Add node pointers.
23098         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
23099         cgraph_add_thunk): Add node pointers.
23100         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
23101         associated to right node.
23102         (input_node): Update use of cgraph_same_body_alias
23103         and cgraph_add_thunk.
23104
23105 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
23106
23107         * config/i386/i386.opt (mprefer-avx128): New flag.
23108         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
23109         modes when the flag -mprefer-avx128 is on.
23110
23111 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
23112
23113         * dwarf2out.c (compare_loc_operands): Fix address handling.
23114
23115 2011-03-04  Alan Modra  <amodra@gmail.com>
23116
23117         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
23118
23119 2011-03-04  Richard Guenther  <rguenther@suse.de>
23120
23121         PR middle-end/47968
23122         * expmed.c (extract_bit_field_1): Prefer vector modes that
23123         vec_extract patterns can handle.
23124
23125 2011-03-04  Richard Guenther  <rguenther@suse.de>
23126
23127         PR middle-end/47975
23128         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
23129
23130 2011-03-04  Richard Henderson  <rth@redhat.com>
23131
23132         * explow.c (emit_stack_save): Remove 'after' parameter.
23133         (emit_stack_restore): Likewise.
23134         * expr.h: Update to match.
23135         * builtins.c, calls.c, stmt.c: Likewise.
23136         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
23137         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
23138         * function.c (expand_function_end): Insert the emit_stack_save
23139         sequence before parm_birth_insn instead of after.
23140
23141 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
23142
23143         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
23144         (ssse3_pmaddubsw128): Ditto.
23145         (ssse3_pmaddubsw): Ditto.
23146
23147 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
23148
23149         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
23150
23151 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
23152
23153         PR c/47963
23154         * gimplify.c (omp_add_variable): Only call omp_notice_variable
23155         on TYPE_SIZE_UNIT if it is a DECL.
23156
23157         PR debug/47283
23158         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
23159         first operand is not is_gimple_mem_ref_addr, try to fold it.
23160         If the operand still isn't is_gimple_mem_ref_addr, clear
23161         MEM_EXPR on op0.
23162
23163 2011-03-03  Richard Guenther  <rguenther@suse.de>
23164
23165         PR middle-end/47283
23166         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
23167         match comment.
23168         (refs_may_alias_p_1): For release branches return true if
23169         we are confused by our input.
23170
23171 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23172
23173         * config/s390/s390.c (s390_function_value): Rename to ...
23174         (s390_function_and_libcall_value): ... this.
23175         (s390_function_value): New function.
23176         (s390_libcall_value): New function.
23177         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
23178         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
23179         target macro definitions.
23180         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
23181
23182 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
23183
23184         * config/i386/freebsd64.h (CC1_SPEC): Define.
23185         * config/i386/linux64.h (CC1_SPEC): Define.
23186         * config/i386/x86-64.h (CC1_SPEC): Don't define.
23187
23188 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
23189
23190         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
23191         Remove.
23192         * config/stormy16/stormy16.c: Include reload.h.
23193         (xstormy16_memory_move_cost): New function.
23194         (TARGET_MEMORY_MOVE_COST): Define.
23195
23196 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
23197
23198         PR rtl-optimization/47925
23199         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
23200         with side effects.  Remove the more-specific check for volatile asms.
23201
23202 2011-03-02  Alan Modra  <amodra@gmail.com>
23203
23204         PR target/47935
23205         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
23206         toc relative addresses for valid offsets.
23207
23208 2011-03-01  Richard Guenther  <rguenther@suse.de>
23209
23210         PR tree-optimization/47890
23211         * tree-vect-loop.c (get_initial_def_for_induction): Set
23212         related stmt properly.
23213
23214 2011-03-01  Richard Guenther  <rguenther@suse.de>
23215
23216         PR lto/47924
23217         * lto-streamer.c (lto_record_common_node): Also register
23218         the canonical type.
23219
23220 2011-03-01  Richard Guenther  <rguenther@suse.de>
23221
23222         PR lto/46911
23223         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
23224         Do not stream DECL_ABSTRACT_ORIGIN.
23225         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
23226         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
23227         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
23228         Do not stream DECL_ABSTRACT_ORIGIN.
23229         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
23230         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
23231
23232 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
23233
23234         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
23235         FUNCTION_VALUE_REGNO_P): Remove.
23236         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
23237         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
23238         Add 'outgoing' argument.
23239         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
23240         function.
23241         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23242         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23243
23244 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
23245
23246         PR debug/28047
23247         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
23248         (lookup_filename): Likewise.
23249         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
23250
23251 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
23252             Jakub Jelinek  <jakub@redhat.com>
23253
23254         PR middle-end/47893
23255         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
23256         (assign_stack_local_1): Change last argument type to int.
23257         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
23258         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
23259         don't record padding space into frame_space_list nor use those areas.
23260         (assign_stack_local): Adjust caller.
23261         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
23262         of assign_stack_local, pass 0 as last argument.
23263         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
23264         callers.
23265
23266 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
23267
23268         PR debug/47283
23269         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
23270         Use target address_mode and pointer_mode hooks instead of hardcoded
23271         Pmode and ptr_mode.  Handle some simple cases of extending if
23272         POINTERS_EXTEND_UNSIGNED < 0.
23273         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
23274         Call convert_debug_memory_address.
23275         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
23276         convert_debug_memory_address.
23277
23278         PR middle-end/46790
23279         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
23280         * configure: Regenerated.
23281         * config.in: Regenerated.
23282         * varasm.c (default_function_section): Return NULL
23283         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
23284
23285 2011-02-28  Martin Jambor  <mjambor@suse.cz>
23286
23287         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
23288         the description to match the printed values.
23289
23290 2011-02-28  Richard Guenther  <rguenther@suse.de>
23291
23292         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
23293         of the copied scope tree.
23294
23295 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23296
23297         * doc/extend.texi (Function Attributes): Avoid deeply (and
23298         wrongly) nested tables.
23299
23300 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
23301
23302         PR middle-end/47903
23303         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
23304         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
23305         r isn't op0 nor op1.
23306
23307 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
23308
23309         * config/avr/avr.md: Remove magic comment for emacs.
23310
23311 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
23312
23313         PR target/45261
23314         * config/avr/avr.c (avr_option_override): Use error on bad options.
23315         (avr_help): New function.
23316         (TARGET_HELP): Define.
23317
23318 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
23319
23320         PR target/42240
23321         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
23322         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
23323
23324 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
23325
23326         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
23327         (ARM Options): Ditto.
23328         (i386 and x86-64 Options): Ditto.
23329         (RX Options): Ditto.
23330         (SPARC Options): Ditto.
23331
23332 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
23333
23334         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
23335         FreeBSD 6 and later.  Generally use cpu generic.
23336
23337 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
23338
23339         * doc/cpp.texi: Update copyright years.
23340
23341 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
23342
23343         PR target/46898
23344         * config/lm32/lm32.md (ashrsi3): Added needed variable.
23345
23346 2011-02-25  Jon Beniston  <jon@beniston.com>
23347
23348         PR target/46898
23349         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
23350         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
23351         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
23352         (lm32_block_move_inline): Add type cast to remove warning.
23353         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
23354         (gen_int_relational): Move declarations to start of function.
23355
23356 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
23357
23358         PR tree-optimization/45470
23359         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
23360         can throw internally only.
23361         * tree-vect-stmts.c (vectorizable_call): Likewise.
23362
23363 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
23364
23365         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
23366         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
23367         * config/stormy16/stormy16-protos.h
23368         (xstormy16_preferred_reload_class): Remove.
23369         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
23370         static. Change 'rclass' argument and return type to reg_class_t.
23371         (TARGET_PREFERRED_RELOAD_CLASS,
23372         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
23373
23374 2011-02-24  Richard Guenther  <rguenther@suse.de>
23375
23376         * lto-streamer-in.c (input_bb): Do not find referenced vars
23377         in debug statements.
23378
23379 2011-02-23  Jason Merrill  <jason@redhat.com>
23380
23381         * common.opt (fabi-version): Document v5 and v6.
23382
23383 2011-02-23  Richard Guenther  <rguenther@suse.de>
23384
23385         PR tree-optimization/47849
23386         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
23387
23388 2011-02-23  Jie Zhang  <jie@codesourcery.com>
23389
23390         * opts-common.c (decode_cmdline_option): Print empty string
23391         argument as "" in decoded->orig_option_with_args_text.
23392         * gcc.c (execute): Print empty string argument as ""
23393         in the verbose output.
23394         (do_spec_1): Keep empty string argument.
23395
23396 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
23397
23398         * config.gcc: Declare score-* and crx-* obsolete.
23399
23400 2011-02-23  Jie Zhang  <jie@codesourcery.com>
23401
23402         PR rtl-optimization/47763
23403         * web.c (web_main): Ignore naked clobber when replacing register.
23404
23405 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
23406
23407         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
23408         Remove.
23409
23410 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
23411
23412         PR doc/47848
23413         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
23414
23415 2011-02-22  Mike Stump  <mikestump@comcast.net>
23416
23417         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
23418         assembler.
23419         * configure: Regenerate.
23420
23421 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
23422
23423         PR rtl-optimization/46002
23424         * ira-color.c (update_copy_costs): Change class intersection
23425         test to reg_class_contents[] test of 'hard_regno'.
23426
23427 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
23428
23429         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
23430         than Driver option.
23431         * config/hpux11.opt (mt): Likewise.
23432         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
23433         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
23434         * config/vax/elf.opt (mno-asm-pic): Likewise.
23435         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
23436
23437 2011-02-21  Mike Stump  <mikestump@comcast.net>
23438
23439         PR target/47822
23440         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
23441         tree so we can get save the type.
23442         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
23443         for CFString instead of trying to use past the end of the builtins.
23444         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
23445         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
23446         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
23447         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
23448         Rename to darwin_builtin_cfstring.
23449         (darwin_init_cfstring_builtins): Return the built type.
23450
23451 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
23452
23453         PR target/47840
23454         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
23455         (_mm256_insert_epi64): Use _mm_insert_epi64.
23456
23457 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
23458
23459         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
23460         * config/stormy16/stormy16-protos.h
23461         (xstormy16_mode_dependent_address_p): Remove.
23462         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
23463         Make static. Change return type to bool. Change argument type to
23464         const_rtx. Remove dead code.
23465         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
23466
23467 2011-02-21  Richard Guenther  <rguenther@suse.de>
23468
23469         PR lto/47820
23470         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
23471         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
23472         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
23473         TUs context.
23474         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
23475         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
23476
23477 2011-02-20  Richard Guenther  <rguenther@suse.de>
23478
23479         PR lto/47822
23480         * tree.c (free_lang_data_in_decl): Clean builtins from
23481         the TU decl BLOCK_VARS.
23482
23483 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
23484
23485         PR debug/47620
23486         PR debug/47630
23487         * haifa-sched.c (fix_tick_ready): Skip tick computation
23488         for debug insns.
23489
23490 2011-02-19  Richard Guenther  <rguenther@suse.de>
23491
23492         PR lto/47647
23493         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
23494         Remove lazy BLOCK_VARS streaming.
23495         (lto_input_ts_block_tree_pointers): Likewise.
23496         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
23497
23498 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
23499
23500         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
23501
23502 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
23503
23504         * config/i386/biarch32.h, config/i386/mach.h,
23505         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
23506
23507 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
23508
23509         PR target/47800
23510         * config/i386/i386.md (peephole2 for shift and plus): Use
23511         operands[1] original mode in the first insn.
23512
23513 2011-02-18  Mike Stump  <mikestump@comcast.net>
23514
23515         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
23516
23517 2011-02-18  Jan Hubicka  <jh@suse.cz>
23518
23519         PR middle-end/47788
23520         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
23521         to zero when the function is not inlinable at all.
23522
23523 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23524
23525         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
23526         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
23527         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
23528         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
23529         * config/pa/t-pa64: Likewise.
23530         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
23531
23532 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
23533
23534         PR driver/47787
23535         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
23536
23537 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23538
23539         PR target/47792
23540         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
23541
23542 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
23543
23544         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
23545         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
23546         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
23547         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
23548         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
23549         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
23550         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
23551         m32r_load_postinc_p, m32r_store_preinc_predec_p,
23552         m32r_legitimate_address_p): New functions.
23553         * config/m32r/constraints.md (constraint "S"): Don't use
23554         STORE_PREINC_PREDEC_P.
23555         (constraint "U"): Don't use LOAD_POSTINC_P.
23556
23557 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
23558
23559         PR rtl-optimization/46178
23560         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
23561         compute ira_hard_regno_cover_class[].
23562
23563 2011-02-18  Richard Guenther  <rguenther@suse.de>
23564
23565         PR lto/47798
23566         * lto-streamer.h (lto_global_var_decls): Declare.
23567         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
23568         statics for global var processing.
23569
23570 2011-02-18  Richard Guenther  <rguenther@suse.de>
23571
23572         PR tree-optimization/47737
23573         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
23574         edge dominance check.
23575
23576 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
23577
23578         PR debug/47780
23579         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
23580         avoid invalid rtx sharing.
23581
23582 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
23583
23584         * doc/cpp.texi (Obsolete Features): Add background on the
23585         origin of assertions.
23586
23587 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
23588
23589         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23590         objc_abi == 2.
23591         * config/darwin.c (output_objc_section_asm_op): Added support for
23592         ABI v1 and v2.
23593         (is_objc_metadata): New.
23594         (darwin_objc2_section): New.
23595         (darwin_objc1_section): New.
23596         (machopic_select_section): Added support for ABI v1 and v2.
23597         (darwin_emit_objc_zeroed): New.
23598         (darwin_output_aligned_bss): Detect objc metadata and treat it
23599         appropriately.
23600         (darwin_asm_output_aligned_decl_common): Same.
23601         (darwin_asm_output_aligned_decl_local): Same.
23602         * config/darwin-sections.def: Updated for ABI v1 and v2.
23603         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
23604         compiling Objective-C code for the NeXT runtime, default to using
23605         ABI version 0 for 32-bit, and version 2 for 64-bit.
23606
23607 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
23608
23609         * common.opt (optimize_fast): New Variable.
23610         * opts.c (default_options_optimization): Use opts->x_optimize_fast
23611         instead of local variable ofast.
23612
23613 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
23614
23615         * doc/invoke.texi (fobjc-abi-version): Documented.
23616         (fobjc-nilcheck): Documented.
23617         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
23618         version.
23619
23620 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
23621
23622         PR driver/47390
23623         * common.opt (export-dynamic): New Driver option.
23624         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
23625
23626 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
23627
23628         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
23629
23630 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
23631             Jan Hubicka  <jh@suse.cz>
23632
23633         PR debug/47106
23634         PR debug/47402
23635         * cfgexpand.c (account_used_vars_for_block): Remove.
23636         (estimated_stack_frame_size): Use referenced vars.
23637         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
23638         that were referenced in the original function.  Test src_fn
23639         rather than cfun.  Drop redundant get_var_ann.
23640         (setup_one_parameter): Drop redundant get_var_ann.
23641         (declare_return_variable): Likewise.
23642         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
23643         (copy_arguments_for_versioning): Drop redundant get_var_ann.
23644         * ipa-inline.c (compute_inline_parameters): Do not compute
23645         disregard_inline_limits here.
23646         (compute_inlinable_for_current, pass_inlinable): New.
23647         (pass_inline_parameters): Require PROP_referenced_vars.
23648         * cgraphunit.c (cgraph_process_new_functions): Don't run
23649         compute_inline_parameters explicitly unless function is in SSA form.
23650         (cgraph_analyze_function): Set .disregard_inline_limits.
23651         * tree-sra.c (convert_callers): Compute inliner parameters
23652         only for functions already in SSA form.
23653
23654 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
23655
23656         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
23657         -mlittle-endian-data.
23658
23659 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
23660
23661         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
23662         -mno-fpu, not -fpu and -no-fpu.
23663         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
23664         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
23665
23666 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
23667
23668         PR target/43653
23669         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
23670         input reload with PLUS RTX.
23671
23672 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
23673
23674         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
23675         of InverseVar(MDMX).
23676
23677 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
23678
23679         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
23680         --m4-340.
23681
23682 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
23683
23684         * config/mn10300/mn10300.opt (mno-crt0): New.
23685
23686 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
23687
23688         * config/m68k/uclinux.opt (static-libc): New Driver option.
23689
23690 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
23691
23692         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
23693
23694 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
23695
23696         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
23697         %{muser-extend-enabled}.
23698
23699 2011-02-16  Richard Guenther  <rguenther@suse.de>
23700
23701         PR tree-optimization/47738
23702         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
23703         the TODO from tree_predictive_commoning.
23704
23705 2011-02-15  Jeff Law  <law@redhat.com>
23706
23707         Revert
23708         2011-01-25  Jeff Law  <law@redhat.com>
23709
23710         PR rtl-optimization/37273
23711         * ira-costs.c (scan_one_insn): Detect constants living in memory and
23712         handle them like argument loads from stack slots.  Do not double
23713         count memory for memory constants and argument loads from stack slots.
23714
23715 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
23716
23717         PR target/47755
23718         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
23719         mode for vector constants.  Remove code that checks for TImode.
23720
23721 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
23722
23723         PR debug/47106
23724         PR debug/47402
23725         * cgraph.h (compute_inline_parameters): Return void.
23726         * ipa-inline.c (compute_inline_parameters): Adjust.
23727
23728 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
23729
23730         PR debug/47106
23731         PR debug/47402
23732         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
23733         rather than decl.
23734         * cfgexpand.c (estimated_stack_frame_size): Likewise.
23735         * ipa-inline.c (compute_inline_parameters): Adjust.
23736
23737 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
23738
23739         PR debug/47106
23740         PR debug/47402
23741         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
23742         Adjust all users.  Pass FN to...
23743         * tree-flow-inline.h (first_referenced_var): ... this.  Add
23744         fn argument.
23745         * ipa-struct-reorg.c: Adjust.
23746         * tree-dfa.c: Adjust.
23747         * tree-into-ssa.c: Adjust.
23748         * tree-sra.c: Adjust.
23749         * tree-ssa-alias.c: Adjust.
23750         * tree-ssa-live.c: Adjust.
23751         * tree-ssa.c: Adjust.
23752         * tree-ssanames.c: Adjust.
23753         * tree-tailcall.c: Adjust.
23754
23755 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
23756
23757         PR debug/47106
23758         PR debug/47402
23759         * tree-flow.h (referenced_var_lookup): Add fn parameter.
23760         Adjust all callers.
23761         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
23762         * tree-flow-inline.h: Adjust.
23763         * gimple-pretty-print.c: Adjust.
23764         * tree-into-ssa.c: Adjust.
23765         * tree-ssa.c: Adjust.
23766         * cfgexpand.c: Adjust.
23767
23768 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
23769
23770         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
23771         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
23772         (EXTRA_CONSTRAINT): Delete.
23773         * config/iq2000/constraints.md: New file.
23774         * config/iq2000/iq2000.md: Include it.
23775         (define_insn ""): Delete.
23776         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
23777         unsupported constraint letters from patterns.
23778         (call_value, call_value_internal1): Likewise.
23779         (call_value_multiple_internal1): Likewise.
23780
23781 2011-02-15  Nick Clifton  <nickc@redhat.com>
23782
23783         * config/mn10300/mn10300.c: Include tm-constrs.h.
23784         (struct liw_data): New data structure describing an LIW candidate
23785         instruction.
23786         (extract_bundle): Use struct liw_data.  Allow small integer
23787         operands for some instructions.
23788         (check_liw_constraints): Use struct liw_data.  Remove swapped
23789         parameter.  Add comments describing the checks.  Fix bug when
23790         assigning the source of liw1 to the source of liw2.
23791         (liw_candidate): Delete.  Code moved into extract_bundle.
23792         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
23793         before swapping.
23794         * config/mn10300/predicates.md (liw_operand): New predicate.
23795         Allows registers and small integer constants.
23796         * config/mn10300/constraints.md (O): New constraint.  Accetps
23797         integers in the range -8 to +7 inclusive.
23798         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
23799         for moving a small integer into a register.  Give this alternative
23800         LIW attributes.
23801         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
23802         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
23803         using the J,K,L and M constraints,
23804         (liw): Remove SI mode on second operands to allow for HI and QI
23805         mode values.
23806         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
23807         instruction.
23808
23809 2011-02-15  Richard Guenther  <rguenther@suse.de>
23810
23811         PR tree-optimization/47743
23812         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
23813         for a non-type-compatible VN lookup bail out.
23814
23815 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
23816
23817         * config/fr30/constraints.md: New file.
23818         * config/fr30/fr30.md: Include it.
23819         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
23820         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
23821         (EXTRA_CONSTRAINT): Delete.
23822
23823 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
23824
23825         * config/frv/constraints.md: New file.
23826         * config/frv/predicates.md: Include it.
23827         * config/frv/frv.c (reg_class_from_letter): Delete.
23828         (frv_option_override): Don't initialize it.
23829         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
23830         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
23831         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
23832         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
23833         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
23834         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
23835         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
23836         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
23837         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
23838         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
23839         (REG_CLASS_FROM_CONSTRAINT): Delete.
23840
23841 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
23842
23843         PR middle-end/47581
23844         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
23845         if frame size is 0 in a leaf function.
23846
23847 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23848
23849         PR pch/14940
23850         * config/alpha/host-osf.c: New file.
23851         * config/alpha/x-osf: New file.
23852         * config.host (alpha*-dec-osf*): Use it.
23853
23854 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
23855
23856         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
23857         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
23858         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
23859         (rx_mode_dependent_address_p): ...this. Make static. Change argument
23860         type to const_rtx.
23861         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
23862
23863 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
23864
23865         * config/stormy16/constraints.md: New file.
23866         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
23867         Use satisfies_constraint_Q and satisfies_constraint_R.
23868         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
23869         Delete.
23870         (xstormy16_legitiamte_address_p): Declare.
23871         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
23872         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
23873         (EXTRA_CONSTRAINT): Delete.
23874         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
23875         Un-staticize.
23876         (xstormy16_extra_constraint_p): Delete.
23877
23878 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
23879
23880         PR tree-optimization/46494
23881         * loop-unroll.c (split_edge_and_insert): Adjust comment.
23882         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
23883         (pass_rtl_loop_done): Add TODO_verify_flow.
23884         * fwprop.c (pass_rtl_fwprop): Likewise.
23885         * modulo-sched.c (pass_sms): Likewise.
23886         * tree-ssa-dom.c (pass_dominator): Likewise.
23887         * tree-ssa-loop-ch.c (pass_ch): Likewise.
23888         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
23889         (pass_tree_loop_done): Likewise.
23890         * tree-ssa-pre.c (execute_pre): Likewise.
23891         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
23892         * tree-ssa-sink.c (pass_sink_code): Likewise.
23893         * tree-vrp.c (pass_vrp): Likewise.
23894
23895 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
23896
23897         * config/v850/constraints.md: New file.
23898         * config/v850/v850.md: Include it.
23899         * config/v850/predicates.md (reg_or_0_operand): Use
23900         satisfies_constraint_G.
23901         (special_symbolref_operand): Use satisfies_constraint_K.
23902         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
23903         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
23904         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
23905         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
23906         (EXTRA_CONSTRAINT): Delete.
23907         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
23908         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
23909         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
23910
23911 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
23912
23913         PR target/47696
23914         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
23915         description.
23916
23917 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
23918
23919         * config/mcore/constraints.md: New file.
23920         * config/mcore/mcore.md: Include it.
23921         * config/mcore/mcore.c (reg_class_from_letter): Delete.
23922         * config/mcore/mcore.h (reg_class_from_letter): Delete.
23923         (REG_CLASS_FROM_LETTER): Delete.
23924         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
23925         insn_const_int_ok_for_constraint.
23926         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
23927         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
23928         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
23929         (EXTRA_CONSTRAINT): Delete.
23930
23931 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23932
23933         PR ada/41929
23934         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
23935         (IS_SIGHANDLER): Define.
23936         (sparc64_is_sighandler): New function, split off from
23937         sparc64_fallback_frame_state.
23938         (sparc_is_sighandler): New function, split off from
23939         sparc_fallback_frame_state.
23940         (sparc64_fallback_frame_state): Merge with ...
23941         (sparc_fallback_frame_state): ... this into ...
23942         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
23943         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
23944         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
23945         stack instead of hardcoded offsets.
23946
23947 2011-02-14  Andriy Gapon  <avg@freebsd.org>
23948
23949         PR target/45808
23950         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
23951
23952 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23953
23954         * configure: Regenerate.
23955
23956 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
23957
23958         PR driver/45731
23959         * gcc.c (asm_options): Correct spec matching --target-help.
23960
23961 2011-02-12  Martin Jambor  <mjambor@suse.cz>
23962
23963         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
23964         to gimple call error.
23965
23966 2011-02-12  Mike Stump  <mikestump@comcast.net>
23967
23968         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
23969         comments in backslash regions.
23970
23971 2011-02-12  Mike Stump  <mikestump@comcast.net>
23972             Jakub Jelinek  <jakub@redhat.com>
23973             Iain Sandoe  <iains@gcc.gnu.org>
23974
23975         PR target/47324
23976         * dwarf2out.c (output_cfa_loc): When required, apply the
23977         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
23978         (output_loc_sequence): Likewise.
23979         (output_loc_operands_raw): Likewise.
23980         (output_loc_sequence_raw): Likewise.
23981         (output_cfa_loc): Likewise.
23982         (output_loc_list): Suppress register number adjustment when
23983         calling output_loc_sequence()
23984         (output_die): Likewise.
23985
23986 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
23987
23988         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
23989         Remove macros.
23990         * config/xtensa/xtensa.c (xtensa_register_move_cost,
23991         xtensa_memory_move_cost): New functions.
23992         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
23993
23994 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
23995
23996         PR lto/47225
23997         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
23998         in the current directory.
23999         * configure: Rebuilt.
24000
24001 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
24002
24003         * config/darwin.c (darwin_override_options): Add a hunk missed
24004         from the commit of r168571.  Trim comment line lengths and
24005         correct indents of the preceding block.
24006
24007 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
24008
24009         * gcc.c (driver_handle_option): Concatenate the argument to -F with
24010         the switch.
24011
24012 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
24013
24014         * common.opt (nostartfiles): New Driver option.
24015
24016 2011-02-11  Xinliang David Li  <davidxl@google.com>
24017
24018         PR tree-optimization/47707
24019         * tree-chrec.c (convert_affine_scev): Keep type precision.
24020
24021 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
24022
24023         PR tree-optimization/47420
24024         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
24025
24026 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
24027
24028         PR rtl-optimization/47614
24029         * rtl.h (check_for_inc_dec): Declare.
24030         * dse.c (check_for_inc_dec): Externalize...
24031         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
24032         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
24033
24034 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
24035
24036         PR driver/47678
24037         * gcc.c (main): Do not compile inputs if there were errors in
24038         option handling.
24039         * opts-common.c (read_cmdline_option): Check for wrong language
24040         after other error checks.
24041
24042 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
24043
24044         * cgraph.c: Fix comment typos.
24045         * cgraph.h: Likewise.
24046         * cgraphunit.c: Likewise.
24047         * ipa-cp.c: Likewise.
24048         * ipa-inline.c: Likewise.
24049         * ipa-prop.c: Likewise.
24050         * ipa-pure-const.c: Likewise.
24051         * ipa-ref.c: Likewise.
24052         * ipa-reference.c: Likewise.
24053
24054 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
24055
24056         PR debug/47684
24057         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
24058
24059 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24060
24061         PR testsuite/47400
24062         * doc/sourcebuild.texi (Require Support): Document
24063         dg-require-ascii-locale.
24064
24065 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
24066
24067         * doc/lto.texi (Write summary): Fix missing parentheses.
24068
24069 2011-02-10  DJ Delorie  <dj@redhat.com>
24070
24071         * config/m32c/m32c.c (m32c_option_override): Disable
24072         -fcombine-stack-adjustments until flag value tracking and compare
24073         optimization can be rewritten.
24074
24075 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
24076
24077         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
24078         PROCESSOR_POWER7.
24079         (PROCESSOR_DEFAULT64): Likewise.
24080
24081 2011-02-10  Richard Henderson  <rth@redhat.com>
24082
24083         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
24084         change from 2011-02-03.
24085         * config/rx/rx.c (flags_from_code): Likewise.
24086         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
24087         is valid, n/pz otherwise.
24088         (rx_select_cc_mode): Return CCmode if Y is not zero.
24089
24090 2011-02-10  Richard Guenther  <rguenther@suse.de>
24091
24092         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
24093
24094 2011-02-10  Richard Guenther  <rguenther@suse.de>
24095
24096         PR tree-optimization/47677
24097         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
24098
24099 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
24100
24101         PR target/47665
24102         * combine.c (make_compound_operation): Only change shifts into
24103         multiplication for SCALAR_INT_MODE_P.
24104
24105 2011-02-10  Jie Zhang  <jie@codesourcery.com>
24106
24107         PR testsuite/47622
24108         Revert
24109         2011-02-05  Jie Zhang  <jie@codesourcery.com>
24110         PR debug/42631
24111         * web.c (entry_register): Don't clobber the number of the
24112         first uninitialized reference in used[].
24113
24114 2011-02-09  Richard Guenther  <rguenther@suse.de>
24115
24116         PR tree-optimization/47664
24117         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
24118         all edges again.
24119
24120 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
24121
24122         PR target/46481
24123         PR target/47032
24124         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
24125         PROCESSOR_POWER7.
24126         (PROCESSOR_DEFAULT64): Same.
24127         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
24128
24129 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24130
24131         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
24132
24133 2011-02-09  Martin Jambor  <mjambor@suse.cz>
24134
24135         PR middle-end/45505
24136         * tree-sra.c (struct access): New flags grp_scalar_read and
24137         grp_scalar_write.  Changed description of assignment read and write
24138         flags.
24139         (dump_access): Dump new flags, reorder all of them.
24140         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
24141         to detect multiple scalar reads.
24142         (analyze_access_subtree): Use the new scalar read write flags instead
24143         of the old flags.  Adjusted comments.
24144
24145 2011-02-08  DJ Delorie  <dj@redhat.com>
24146
24147         PR target/47548
24148         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
24149         patterns.
24150
24151 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24152
24153         * config/m68k/uclinux.opt: New.
24154         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
24155
24156 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24157
24158         * config/cris/elf.opt (sim): New Driver option.
24159
24160 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24161
24162         * config/xtensa/elf.opt: New.
24163         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
24164
24165 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24166
24167         * config/vax/elf.opt: New.
24168         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
24169
24170 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24171
24172         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
24173
24174 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24175
24176         * config/gnu-user.opt: New.
24177         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
24178         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
24179         *-*-uclinux*): Use gnu-user.opt.
24180
24181 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
24182
24183         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
24184         * config/i386/gnu.h (CPP_SPEC): Likewise.
24185
24186 2011-02-08  Ian Lance Taylor  <iant@google.com>
24187
24188         * common.opt (fcx-limited-range): Add SetByCombined flag.
24189         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
24190         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
24191         (fassociative-math, freciprocal-math): Likewise.
24192         (funsafe-math-optimizations): Likewise.
24193         * opth-gen.awk: Handle SetByCombined.
24194         * optc-gen.awk: Likewise.
24195         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
24196         (set_unsafe_math_optimizations_flags): Likewise.
24197         * doc/options.texi (Option properties): Document SetByCombined.
24198
24199 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24200
24201         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
24202         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
24203         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
24204         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
24205         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
24206
24207 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
24208
24209         PR tree-optimization/46834
24210         PR tree-optimization/46994
24211         PR tree-optimization/46995
24212         * graphite-sese-to-poly.c (used_outside_reduction): New.
24213         (detect_commutative_reduction): Call used_outside_reduction.
24214         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
24215         translate_scalar_reduction_to_array only when at least one
24216         loop-phi/close-phi tuple has been detected.
24217
24218 2011-02-08  Richard Guenther  <rguenther@suse.de>
24219
24220         PR middle-end/47639
24221         * tree-vect-generic.c (expand_vector_operations_1): Update
24222         stmts here ...
24223         (expand_vector_operations): ... not here.  Cleanup EH info
24224         and the CFG if required.
24225
24226 2011-02-08  Richard Guenther  <rguenther@suse.de>
24227
24228         PR tree-optimization/47641
24229         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
24230         require type compatibility.
24231
24232 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24233
24234         * gimple-low.c (lower_function_body): Don't remove the location of
24235         the return statement here.
24236         (lower_gimple_return): Do it here instead but only if the return
24237         statement is actually used twice.
24238
24239 2011-02-08  Richard Guenther  <rguenther@suse.de>
24240
24241         PR tree-optimization/47632
24242         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
24243         unused up_to_stmt parameter, return whether cfg-cleanup is
24244         necessary, remove EH info properly.
24245         (forward_propagate_into_gimple_cond): Adjust caller.
24246         (forward_propagate_into_cond): Likewise.
24247         (forward_propagate_comparison): Likewise.
24248         (tree_ssa_forward_propagate_single_use_vars): Make
24249         forward_propagate_comparison case similar to the two others.
24250
24251 2011-02-08  Nick Clifton  <nickc@redhat.com>
24252
24253         * config/mn10300/mn10300.opt (mliw): New command line option.
24254         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
24255         (liw_bundling): New automaton.
24256         (liw): New attribute.
24257         (liw_op): New attribute.
24258         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
24259         (movsi_internal): Add LIW attributes.
24260         (andsi3): Likewise.
24261         (iorsi3): Likewise.
24262         (xorsi3): Likewise.
24263         (addsi3): Separate register and immediate alternatives.
24264         Add LIW attributes.
24265         (subsi3): Likewise.
24266         (cmpsi): Likewise.
24267         (aslsi3): Likewise.
24268         (lshrsi3): Likewise.
24269         (ashrsi3): Likewise.
24270         (liw): New pattern.
24271         * config/mn10300/mn10300.c (liw_op_names): New
24272         (mn10300_print_operand): Handle 'W' operand descriptor.
24273         (extract_bundle): New function.
24274         (check_liw_constraints): New function.
24275         (liw_candidate): New function.
24276         (mn10300_bundle_liw): New function.
24277         (mn10300_reorg): New function.
24278         (TARGET_MACHINE_DEPENDENT_REORG): Define.
24279         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
24280         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
24281         __LIW__ or __NO_LIW__.
24282         * doc/invoke.texi: Describe the -mliw command line option.
24283
24284 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24285
24286         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
24287         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
24288         pthread_mutex_unlock): Remove.
24289         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
24290         * config/pa/t-pa64: Likewise.
24291         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
24292         shared libc if not linking against libpthread.
24293         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
24294
24295 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
24296
24297         PR target/47558
24298         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
24299         on 10.6 and later to ensure that we always use the unwinder from
24300         the system.  Only add -no_compact_unwind when tarteting darwin
24301         10.6 or later.
24302
24303 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
24304
24305         PR target/46997
24306         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
24307         (vec_interleave_lowv2sf): Ditto.
24308         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
24309         (vec_extract_oddv2sf): Ditto.
24310
24311 2011-02-07  Mike Stump  <mikestump@comcast.net>
24312
24313         PR target/42333
24314         Add __ieee_divdc3 entry point.
24315         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
24316         entry point.
24317         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
24318         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
24319         * config/darwin.c (darwin_rename_builtins): Add.
24320         * config/darwin-protos.h (darwin_rename_builtins): Add.
24321
24322 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
24323
24324         PR target/47636
24325         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
24326         for the condition.
24327
24328 2011-02-07  Mike Stump  <mikestump@comcast.net>
24329
24330         * config/darwin.opt (mmacosx-version-min): Update default OS version.
24331
24332 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
24333
24334         PR target/47534
24335         * config/avr/libgcc.S (exit): Move .endfunc
24336
24337 2011-02-07  Richard Guenther  <rguenther@suse.de>
24338
24339         PR tree-optimization/47615
24340         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
24341         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
24342         (run_scc_vn): Initialize it.
24343         (visit_reference_op_load): Use it.
24344         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
24345
24346 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24347
24348         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
24349         DImode trapping arithmetic libfuncs.
24350
24351 2011-02-07  Richard Guenther  <rguenther@suse.de>
24352
24353         PR tree-optimization/47621
24354         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
24355         two duplicates ...
24356         (execute_update_addresses_taken): ... here.  Make it more
24357         conservative in what we accept.
24358
24359 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
24360
24361         * config/sparc/freebsd.h (ASM_SPEC): Define.
24362         * config/sparc/vxworks.h (ASM_SPEC): Define.
24363
24364 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
24365
24366         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
24367
24368 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
24369
24370         * doc/invoke.texi: Remove reference to compiler internals from
24371         user documentation.
24372
24373         * reg-notes.def: Remove REG_VALUE_PROFILE.
24374         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
24375
24376 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
24377
24378         PR middle-end/47610
24379         * varasm.c (default_section_type_flags): If decl is NULL,
24380         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
24381
24382 2011-02-05  Jie Zhang  <jie@codesourcery.com>
24383
24384         PR debug/42631
24385         * web.c (entry_register): Don't clobber the number of the
24386         first uninitialized reference in used[].
24387
24388 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
24389
24390         PR tree-optimization/46194
24391         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
24392         (build_classic_dist_vector_1): Do not represent classic distance
24393         vectors when the access functions are variating in different loops.
24394
24395 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
24396
24397         * config/mips/iris6.opt: New.
24398         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
24399
24400 2011-02-04  Richard Henderson  <rth@redhat.com>
24401             Steve Ellcey  <sje@cup.hp.com>
24402
24403         PR target/46997
24404         * config/ia64/predicates.md (mux1_brcst_element): New.
24405         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
24406         * config/ia64/ia64.c (ia64_unpack_assemble): New.
24407         (ia64_unpack_sign): New.
24408         (ia64_expand_unpack): Rewrite using new routines.
24409         (ia64_expand_widen_sum): Ditto.
24410         (ia64_expand_dot_prod_v8qi): Ditto.
24411         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
24412         routines, add endian check.
24413         (pmpy2_even): Rename from pmpy2_r, add endian check.
24414         (pmpy2_odd): Rename from pmpy2_l, add endian check.
24415         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
24416         (vec_widen_smult_hi_v4hi): Ditto.
24417         (vec_widen_umult_lo_v4hi): Ditto.
24418         (vec_widen_umult_hi_v4hi): Ditto.
24419         (mulv2si3): Change endian checks.
24420         (sdot_prodv4hi): Rewrite with new calls.
24421         (udot_prodv4hi): New.
24422         (vec_pack_ssat_v4hi): Add endian check.
24423         (vec_pack_usat_v4hi): Ditto.
24424         (vec_pack_ssat_v2si): Ditto.
24425         (max1_even): Rename from max1_r, add endian check.
24426         (max1_odd): Rename from max1_l, add endian check.
24427         (*mux1_rev): Format change.
24428         (*mux1_mix): Ditto.
24429         (*mux1_shuf): Ditto.
24430         (*mux1_alt): Ditto.
24431         (*mux1_brcst_v8qi): Use new predicate.
24432         (vec_extract_evenv8qi): Remove endian check.
24433         (vec_extract_oddv8qi): Ditto.
24434         (vec_interleave_lowv4hi): Format change.
24435         (vec_interleave_highv4hi): Ditto.
24436         (mix2_even): Rename from mix2_r, add endian check.
24437         (mix2_odd): Rename from mux2_l, add endian check.
24438         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
24439         (vec_extract_evenodd_helper): Format change.
24440         (vec_extract_evenv4hi): Remove endian check.
24441         (vec_extract_oddv4hi): Remove endian check.
24442         (vec_interleave_lowv2si): Format change.
24443         (vec_interleave_highv2si): Format change.
24444         (vec_initv2si): Remove endian check.
24445         (vecinit_v2si): Add endian check.
24446         (reduc_splus_v2sf): Add endian check.
24447         (reduc_smax_v2sf): Ditto.
24448         (reduc_smin_v2sf): Ditto.
24449         (vec_initv2sf): Remove endian check.
24450         (fpack): Add endian check.
24451         (fswap): Add endian check.
24452         (vec_interleave_highv2sf): Add endian check.
24453         (vec_interleave_lowv2sf): Add endian check.
24454         (fmix_lr): Add endian check.
24455         (vec_setv2sf): Format change.
24456         (*vec_extractv2sf_0_be): Use shift to extract operand.
24457         (*vec_extractv2sf_1_be): New.
24458         (vec_pack_trunc_v4hi): Add endian check.
24459         (vec_pack_trunc_v2si): Format change.
24460
24461 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
24462
24463         PR inline-asm/23200
24464         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
24465         do bb, locus and block comparison and disallow loads if it is not set.
24466         (stmt_is_replaceable_p): New function.
24467         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
24468         callers.
24469         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
24470         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
24471         SSA_NAME_DEF_STMT.
24472         * tree-flow.h (stmt_is_replaceable_p): New prototype.
24473
24474 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
24475
24476         * config/rs6000/xilinx.opt: New.
24477         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
24478
24479 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
24480
24481         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
24482
24483 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
24484
24485         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
24486         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
24487         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
24488         secondary_reload_info, xtensa_secondary_reload): Remove.
24489         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
24490         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
24491         (xtensa_preferred_reload_class): Make static. Change return and
24492         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
24493         Use CONST_DOUBLE_P predicate.
24494         (xtensa_preferred_output_reload_class): New function.
24495         (xtensa_secondary_reload): Make static.
24496
24497 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
24498
24499         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
24500         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
24501         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
24502
24503 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
24504
24505         PR middle-end/31490
24506         * output.h (SECTION_RELRO): Define.
24507         (SECTION_MACH_DEP): Adjust.
24508         (get_variable_section): New prototype.
24509         * varpool.c (varpool_finalize_named_section_flags): New function.
24510         (varpool_assemble_pending_decls): Call it.
24511         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
24512         * cgraphunit.c (cgraph_output_in_order): Call
24513         varpool_finalize_named_section_flags.
24514         * varasm.c (get_section): Allow section flags conflicts between
24515         relro and read-only sections if the section hasn't been declared yet.
24516         Set SECTION_OVERRIDE after diagnosing section type conflict.
24517         (get_variable_section): No longer static.
24518         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
24519         readonly sections that need relocations.
24520         (decl_readonly_section_1): New function.
24521         (decl_readonly_section): Use it.
24522
24523         Revert:
24524         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
24525                     Steve Ellcey  <sje@cup.hp.com>
24526
24527         PR middle-end/31490
24528         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
24529         if section attribute used.
24530
24531 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
24532
24533         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
24534         * config/darwin.c (SECTION_NO_ANCHOR): Define.
24535         (darwin_init_sections): Remove assertion.
24536
24537 2011-02-03  Nick Clifton  <nickc@redhat.com>
24538
24539         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
24540         lt and ge.
24541         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
24542         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
24543         instead of "n" and "pz".
24544         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
24545         CC_FLAG_S.
24546
24547 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
24548
24549         PR target/47312
24550         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
24551         fma, expand FMA_EXPR as fma{,f,l} call.
24552
24553         PR lto/47274
24554         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
24555         copy them into a unsigned char variable and pass address of it to
24556         lto_output_data_stream.
24557
24558         PR target/47564
24559         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
24560         around backend_init_target and lang_dependent_init_target calls.
24561         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
24562         (verify_cgraph_node): Don't call set_cfun here.  Use
24563         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
24564         Set error_found for incorrectly represented calls to thunks.
24565
24566 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
24567
24568         PR debug/43092
24569         PR rtl-optimization/43494
24570         * rtl.h (for_each_inc_dec_fn): New type.
24571         (for_each_inc_dec): Declare.
24572         * rtlanal.c (struct for_each_inc_dec_ops): New type.
24573         (for_each_inc_dec_find_inc_dec): New fn.
24574         (for_each_inc_dec_find_mem): New fn.
24575         (for_each_inc_dec): New fn.
24576         * dse.c (struct insn_size): Remove.
24577         (replace_inc_dec, replace_inc_dec_mem): Remove.
24578         (emit_inc_dec_insn_before): New fn.
24579         (check_for_inc_dec): Use it, along with for_each_inc_dec.
24580         (canon_address): Pass mem modes to cselib_lookup.
24581         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
24582         (cselib_lookup_from_insn): Likewise.
24583         (cselib_subst_to_values): Likewise.
24584         * cselib.c (find_slot_memmode): New var.
24585         (cselib_find_slot): New fn.  Use it instead of
24586         htab_find_slot_with_hash everywhere.
24587         (entry_and_rtx_equal_p): Use find_slot_memmode.
24588         (autoinc_split): New fn.
24589         (rtx_equal_for_cselib_p): Rename and implement in terms of...
24590         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
24591         Deal with autoinc.  Special-case recursion into MEMs.
24592         (cselib_hash_rtx): Likewise.
24593         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
24594         address and MEM modes.
24595         (cselib_subst_to_values): Add memmode, pass it on.
24596         Deal with autoinc.
24597         (cselib_lookup): Add memmode argument, pass it on.
24598         (cselib_lookup_from_insn): Add memmode.
24599         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
24600         (struct cselib_record_autoinc_data): New.
24601         (cselib_record_autoinc_cb): New fn.
24602         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
24603         mode to cselib_lookup.  Reset autoinced REGs here instead of...
24604         (cselib_process_insn): ... here.
24605         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
24606         to cselib_lookup.
24607         (add_uses): Likewise, also to cselib_subst_to_values.
24608         (add_stores): Likewise.
24609         * sched-deps.c (add_insn_mem_dependence): Pass mode to
24610         cselib_subst_to_values.
24611         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
24612         * gcse.c (do_local_cprop): Adjusted.
24613         * postreload.c (reload_cse_simplify_set): Adjusted.
24614         (reload_cse_simplify_operands): Adjusted.
24615         * sel-sched-dump (debug_mem_addr_value): Pass mode.
24616
24617 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
24618
24619         PR tree-optimization/45122
24620         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
24621         unsafe assumptions when there's more than one loop exit.
24622
24623 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
24624
24625         PR target/47272
24626         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
24627         Document using vector double with the load/store builtins, and
24628         that the load/store builtins always use Altivec instructions.
24629
24630         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
24631         to use altivec memory instructions, even on VSX.
24632         (vector_altivec_store_<mode>): Ditto.
24633
24634         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
24635         function.
24636
24637         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
24638         V2DF, V2DI support to load/store overloaded builtins.
24639
24640         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
24641         altivec load/store builtins for V2DF/V2DI types.
24642
24643         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
24644         set avoid indexed addresses on power6 if -maltivec.
24645         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
24646         vector_altivec_load/vector_altivec_store builtins.
24647         (altivec_expand_st_builtin): Ditto.
24648         (altivec_expand_builtin): Add VSX memory builtins.
24649         (rs6000_init_builtins): Add V2DI types to internal types.
24650         (altivec_init_builtins): Add support for V2DF/V2DI altivec
24651         load/store builtins.
24652         (rs6000_address_for_altivec): Insure memory address is appropriate
24653         for Altivec.
24654
24655         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
24656         vec_vsx_ld and vec_vsx_st.
24657         (vsx_store_<mode>): Ditto.
24658
24659         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
24660         variables to hold long long types for VSX vector memory builtins.
24661         (RS6000_BTI_unsigned_long_long): Ditto.
24662         (long_long_integer_type_internal_node): Ditti.
24663         (long_long_unsigned_type_internal_node): Ditti.
24664
24665         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
24666         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
24667         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
24668
24669         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
24670         short cuts.
24671         (vec_vsx_st): Ditto.
24672
24673 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
24674
24675         * config/pa/pa-hpux10.opt: New.
24676         * config/hpux11.opt (pthread): New Driver option.
24677         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
24678         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
24679
24680 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
24681
24682         * config/ia64/vms.opt: New.
24683         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
24684
24685 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
24686
24687         PR target/47580
24688         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
24689         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
24690         generator functions.
24691         (vsx_floatuns<VSi><mode>2): Ditto.
24692         (vsx_fix_trunc<mode><VSi>2): Ditto.
24693         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
24694
24695 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
24696
24697         * config/i386/djgpp.opt (posix): New Driver option.
24698
24699 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
24700
24701         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
24702         Move to the unsupported targets list.
24703
24704 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
24705
24706         PR rtl-optimization/47525
24707         * df-scan.c: Update copyright years.
24708         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
24709         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
24710
24711 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24712
24713         * config/i386/sysv4.h (TARGET_VERSION): Remove.
24714         (SUBTARGET_RETURN_IN_MEMORY): Remove.
24715         (ASM_OUTPUT_ASCII): Remove.
24716         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
24717
24718 2011-02-02  Jeff Law  <law@redhat.com>
24719
24720         PR middle-end/47543
24721         * reload.c (find_reloads_address): Handle reg+d address where both
24722         components are invalid by reloading the entire address.
24723
24724 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
24725             Richard Guenther  <rguenther@suse.de>
24726
24727         PR tree-optimization/40979
24728         PR bootstrap/47044
24729         * passes.c (init_optimization_passes): After LIM call copy_prop
24730         and DCE to clean up.
24731         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
24732
24733 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
24734
24735         PR tree-optimization/47576
24736         PR tree-optimization/47555
24737         * doc/invoke.texi (scev-max-expr-complexity): Documented.
24738         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
24739         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
24740         * tree-scalar-evolution.c (follow_ssa_edge): Use
24741         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
24742
24743 2011-02-02  Richard Guenther  <rguenther@suse.de>
24744
24745         PR tree-optimization/47566
24746         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
24747
24748 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
24749
24750         PR debug/47106
24751         PR debug/47402
24752         * tree-inline.c (declare_return_variable): Remove unused caller
24753         variable.
24754
24755         PR debug/47106
24756         PR debug/47402
24757         * tree-flow-inline.h (clear_is_used, is_used_p): New.
24758         * cfgexpand.c (account_used_vars_for_block): Use them.
24759         * tree-nrv.c (tree_nrv): Likewise.
24760         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
24761         (dump_scope_block): Likewise.
24762         (remove_unused_locals): Likewise.
24763
24764         PR debug/47106
24765         PR debug/47402
24766         * tree-inline.c (declare_return_variable): Add result decl to
24767         local decls only once.
24768         * gimple-low.c (record_vars_into): Mark newly-created variables
24769         as referenced.
24770
24771 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
24772
24773         PR debug/47498
24774         PR debug/47501
24775         PR debug/45136
24776         PR debug/45130
24777         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
24778         debug insns.
24779         (no_real_insns_p, schedule_block, set_priorities): Drop special
24780         treatment of boundary debug insns.
24781         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
24782         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
24783         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
24784         (BOUNDARY_DEBUG_INSN_P): Likewise.
24785         (SCHEDULE_DEBUG_INSN_P): Likewise.
24786         * sched-rgn.c (init_ready_list): Drop special treatment of
24787         boundary debug insns.
24788         * final.c (rest_of_clean_state): Clear notes' BB.
24789
24790 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
24791
24792         * config/openbsd.opt (assert=): New Driver option.
24793
24794 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
24795
24796         * config/i386/nto.opt: New.
24797         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
24798
24799 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
24800
24801         * config/i386/netware.opt: New.
24802         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
24803
24804 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
24805
24806         * config/interix.opt (posix): New Driver option.
24807
24808 2011-02-01  DJ Delorie  <dj@redhat.com>
24809
24810         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
24811
24812         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
24813         class for A0/A1.
24814
24815 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
24816
24817         PR tree-optimization/47561
24818         * toplev.c (process_options): Print the Graphite flags.  Add
24819         flag_loop_flatten to the list of options requiring Graphite.
24820
24821 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
24822
24823         * config/i386/cygming.opt (posix): New Driver option.
24824
24825 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
24826
24827         * config/arm/vxworks.opt: New.
24828         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
24829
24830 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
24831
24832         * config/alpha/elf.opt: New.
24833         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
24834         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
24835
24836 2011-02-01  Richard Guenther  <rguenther@suse.de>
24837
24838         PR tree-optimization/47559
24839         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
24840         store-motion on references that can throw.
24841
24842 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
24843
24844         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
24845         * tree-pass.h (TDF_CSELIB): New macro.
24846         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
24847         cselib_lookup): Check for it rather than for TDF_DETAILS.
24848
24849 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
24850
24851         PR driver/47547
24852         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
24853         is HOST_BIT_BUCKET.
24854
24855         * opts.c (finish_options): Don't add x_aux_base_name if it is
24856         HOST_BIT_BUCKET.
24857
24858 2011-02-01  Richard Guenther  <rguenther@suse.de>
24859
24860         PR tree-optimization/47555
24861         Revert
24862         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
24863
24864         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
24865
24866 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
24867
24868         PR gcc/46692
24869         * config/lm32/t-lm32: Add multilib for all CPU options.
24870
24871 2011-02-01  Richard Guenther  <rguenther@suse.de>
24872
24873         PR tree-optimization/47541
24874         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
24875         sure to have a field at offset zero.
24876
24877 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
24878
24879         * config/arc/arc.opt (EB, EL): New Driver options.
24880
24881 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
24882
24883         * config/alpha/osf5.opt: New.
24884         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
24885
24886 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
24887
24888         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
24889
24890 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
24891
24892         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
24893         -floop-interchange.
24894         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
24895         is an alias of -floop-interchange and that it requires the
24896         Graphite infrastructure.
24897         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
24898         flag_loop_interchange based on the value of flag_tree_loop_linear.
24899
24900 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
24901             Richard Guenther  <rguenther@suse.de>
24902
24903         PR tree-optimization/47538
24904         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
24905         type instead of r1type, except for comparisons.  For right
24906         shifts and comparisons punt if there are mismatches in
24907         sizetype vs. non-sizetype types.
24908
24909 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24910
24911         * doc/sourcebuild.texi (Effective-Target Keywords): Document
24912         avx_runtime.
24913
24914 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24915
24916         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
24917         version number.
24918         * configure: Regenerate.
24919
24920 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24921
24922         * configure.ac (gcc_cv_ld_static_option): Define.
24923         (gcc_cv_ld_dynamic_option): Define.
24924         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
24925         instead.
24926         (HAVE_LD_STATIC_DYNAMIC): Update message.
24927         (LD_STATIC_OPTION): Define.
24928         (LD_DYNAMIC_OPTION): Define.
24929         * configure: Regenerate.
24930         * config.in: Regenerate.
24931         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
24932         HAVE_LD_STATIC_DYNAMIC]: Use them.
24933
24934 2011-01-31  Nick Clifton  <nickc@redhat.com>
24935
24936         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
24937         registers inside interrupt handlers if the handler is not a leaf
24938         function.
24939
24940 2011-01-31  Nick Clifton  <nickc@redhat.com>
24941
24942         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
24943         reg_renumber returning an INVALID_REGNUM.
24944
24945 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
24946
24947         PR libgcj/44341
24948         * doc/install.texi: Document host options discarded when cross
24949         configuring target libraries.
24950
24951 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
24952
24953         Reverted:
24954         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
24955         PR debug/45136
24956         PR debug/45130
24957         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
24958         debug insns.
24959         (no_real_insns_p, schedule_block, set_priorities): Drop special
24960         treatment of boundary debug insns.
24961         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
24962         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
24963         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
24964         (BOUNDARY_DEBUG_INSN_P): Likewise.
24965         (SCHEDULE_DEBUG_INSN_P): Likewise.
24966         * sched-rgn.c (init_ready_list): Drop special treatment of
24967         boundary debug insns.
24968         * final.c (rest_of_clean-state): Clear notes' BB.
24969
24970 2011-01-31  Alan Modra  <amodra@gmail.com>
24971
24972         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
24973         toc relative expressions as we do in print_operand_address.
24974
24975 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
24976
24977         * doc/extend.texi: Follow spelling conventions.
24978         * doc/invoke.texi: Fix a typo.
24979
24980 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
24981
24982         * config/hpux11.opt: New.
24983         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
24984         ia64*-*-hpux*): Use hpux11.opt.
24985
24986 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
24987
24988         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
24989         to tmake_file.
24990
24991 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
24992
24993         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
24994         support sites.
24995
24996 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
24997
24998         * doc/install.texi (Binaries): Remove outdated reference for
24999         Motorola 68HC11/68HC12 downloads.
25000
25001 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
25002
25003         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
25004         Drepper's paper.
25005
25006 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
25007
25008         PR bootstrap/47147
25009         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
25010         used by NetBSD.
25011
25012 2011-01-28  Ahmad Sharif  <asharif@google.com>
25013
25014         * value-prof.c (check_counter): Corrected error message.
25015
25016 2011-01-29  Jie Zhang  <jie@codesourcery.com>
25017
25018         * config/arm/arm.c (arm_legitimize_reload_address): New.
25019         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
25020         arm_legitimize_reload_address.
25021         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
25022
25023 2011-01-28  Ian Lance Taylor  <iant@google.com>
25024
25025         * godump.c (go_define): Ignore macros whose definitions include
25026         two adjacent operands.
25027
25028 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
25029
25030         PR target/42894
25031         * varasm.c (force_const_mem): Store copy of x in desc->constant
25032         instead of x itself.
25033         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
25034         itself into REG_EQUAL note.
25035
25036 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
25037
25038         * config/freebsd.opt (posix, rdynamic): New Driver options.
25039
25040 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25041
25042         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
25043         -Bstatic/-Bdynamic.
25044         * configure: Regenerate.
25045
25046 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
25047
25048         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
25049         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
25050
25051 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
25052
25053         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
25054         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
25055         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
25056         (s390_preferred_reload_class): Make static. Change return and
25057         'rclass' argument type to reg_class_t.
25058
25059 2011-01-27  Jan Hubicka  <jh@suse.cz>
25060
25061         PR middle-end/46949
25062         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
25063         (process_function_and_variable_attributes): Check defined weakrefs.
25064
25065 2011-01-27  Martin Jambor  <mjambor@suse.cz>
25066
25067         PR tree-optimization/47228
25068         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
25069         build_ref_for_offset.
25070
25071 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25072
25073         * config/spu/spu-elf.h (ASM_SPEC): Remove.
25074
25075 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
25076
25077         PR rtl-optimization/46856
25078         * postreload.c (reload_combine_recognize_const_pattern): Do not
25079         separate cc0 setter and user on cc0 targets.
25080
25081 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
25082
25083         PR c/43082
25084         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
25085         passed a VOID_TYPE expression, immediately emit an error and
25086         return error_mark_node.
25087
25088 2011-01-26  Jeff Law  <law@redhat.com>
25089
25090         PR rtl-optimization/47464
25091         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
25092         rather than may_trap_p as needed.
25093
25094 2011-01-26  DJ Delorie  <dj@redhat.com>
25095
25096         PR rtl-optimization/46878
25097         * combine.c (insn_a_feeds_b): Check for the implicit cc0
25098         setter/user dependency as well.
25099
25100 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
25101
25102         PR rtl-optimization/44469
25103         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
25104         after removing trivially dead basic blocks.
25105
25106 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
25107
25108         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
25109         * config/frv/frv.h (LINK_SPEC): Likewise.
25110         * config/i386/netware.h (LINK_SPEC): Likewise.
25111         * config/m68k/linux.h (ASM_SPEC): Likewise.
25112         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
25113         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
25114         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
25115         * config/sparc/linux.h (ASM_SPEC): Likewise.
25116         * config/sparc/linux64.h (ASM_SPEC): Likewise.
25117         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
25118
25119 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
25120
25121         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
25122         * config/frv/frv.h (ASM_SPEC): Likewise.
25123         * config/m68k/linux.h (ASM_SPEC): Likewise.
25124         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
25125         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
25126         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
25127         * config/sparc/linux.h (ASM_SPEC): Likewise.
25128         * config/sparc/linux64.h (ASM_SPEC): Likewise.
25129         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
25130
25131 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
25132
25133         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
25134         * config/frv/frv.h (LINK_SPEC): Likewise.
25135         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
25136
25137 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
25138
25139         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
25140         * config/frv/frv.h (ASM_SPEC): Likewise.
25141         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
25142         * config/m68k/linux.h (ASM_SPEC): Likewise.
25143         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
25144         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
25145         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
25146         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
25147         * config/sparc/linux.h (ASM_SPEC): Likewise.
25148         * config/sparc/linux64.h (ASM_SPEC): Likewise.
25149         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
25150         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
25151
25152 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
25153
25154         PR target/46997
25155         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
25156         (*mux2): Ditto.
25157         (vec_extract_evenodd_help): Ditto.
25158         (vec_extract_evenv4hi): Ditto.
25159         (vec_extract_oddv4hi): Ditto.
25160         (vec_interleave_lowv2si): Ditto.
25161         (vec_interleave_highv2si): Ditto.
25162         (vec_extract_evenv2si): Ditto.
25163         (vec_extract_oddv2si: Ditto.
25164         (vec_pack_trunc_v2si): Ditto.
25165
25166 2011-01-22  Jan Hubicka  <jh@suse.cz>
25167
25168         PR target/47237
25169         * cgraph.h (cgraph_local_info): New field can_change_signature.
25170         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
25171         signature can change.
25172         (ipcp_estimate_growth): Call sequence simplify only if calle signature
25173         can change.
25174         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
25175         (cgraph_function_versioning): We can not change signature of functions
25176         that don't allow that.
25177         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
25178         (lto_input_node): Likewise.
25179         * ipa-inline.c (compute_inline_parameters): Compute
25180         local.can_change_signature.
25181         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
25182         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
25183         functions that can not change signature.
25184         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
25185         init_cumulative_args): Do not use local calling conventions
25186         for functions that can not change signature.
25187
25188 2011-01-22  Jan Hubicka  <jh@suse.cz>
25189
25190         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
25191
25192 2011-01-26  Richard Guenther  <rguenther@suse.de>
25193
25194         PR tree-optimization/47190
25195         * cgraphunit.c (process_common_attributes): New function.
25196         (process_function_and_variable_attributes): Use it.
25197
25198 2011-01-26  Richard Guenther  <rguenther@suse.de>
25199
25200         PR lto/47423
25201         * cgraphbuild.c (record_eh_tables): Record reference to personality
25202         function.
25203
25204 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
25205
25206         PR debug/45454
25207         * sel-sched.c (moveup_expr): Don't let debug insns prevent
25208         non-debug insns from moving up.
25209
25210 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
25211
25212         PR target/40125
25213         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
25214         t-dlldir{,-x} fragment for build and add it to tmake_file.
25215         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
25216         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
25217         * config/i386/t-dlldir: New file.
25218         (SHLIB_DLLDIR): Define.
25219         * config/i386/t-dlldir-x: New file.
25220         (SHLIB_DLLDIR): Define.
25221         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
25222         (SHLIB_INSTALL): Use it.
25223
25224 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
25225
25226         PR target/47246
25227         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
25228         lower bound of the allowed Thumb-2 coprocessor load/store
25229         index range to -256. Add explaining comment.
25230
25231 2011-01-25  Ian Lance Taylor  <iant@google.com>
25232
25233         * godump.c (go_define): Improve lexing of macro expansion to only
25234         accept expressions which match Go spec.
25235
25236 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
25237
25238         PR c++/43601
25239         * tree.c (handle_dll_attribute): Handle it.
25240         * doc/extend.texi (@item dllexport): Mention it.
25241         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
25242
25243 2011-01-25  Ian Lance Taylor  <iant@google.com>
25244
25245         PR tree-optimization/26854
25246         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
25247         (decl_jump_unsafe): Move higher in file, with no other change.
25248         (bind): Set has_jump_unsafe_decl if appropriate.
25249         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
25250         (check_earlier_gotos): Likewise.
25251         (c_check_switch_jump_warnings): Likewise.
25252
25253 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
25254
25255         * doc/invoke.texi (Warning Options): Add missing hyphen.
25256         (-fprofile-dir): Minor grammatical fixes.
25257         (-fbranch-probabilities): Likewise.
25258
25259 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
25260
25261         PR debug/45136
25262         PR debug/45130
25263         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
25264         debug insns.
25265         (no_real_insns_p, schedule_block, set_priorities): Drop special
25266         treatment of boundary debug insns.
25267         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
25268         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
25269         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
25270         (BOUNDARY_DEBUG_INSN_P): Likewise.
25271         (SCHEDULE_DEBUG_INSN_P): Likewise.
25272         * sched-rgn.c (init_ready_list): Drop special treatment of
25273         boundary debug insns.
25274         * final.c (rest_of_clean-state): Clear notes' BB.
25275
25276 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25277
25278         * Makefile.in (LAMBDA_H): Removed.
25279         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
25280         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
25281         lambda-trans.o, and tree-loop-linear.o.
25282         (lto-symtab.o): Remove dependence on LAMBDA_H.
25283         (tree-loop-linear.o): Remove rule.
25284         (lambda-mat.o): Same.
25285         (lambda-trans.o): Same.
25286         (lambda-code.o): Same.
25287         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
25288         (tree-vect-slp.o): Same.
25289         * hwint.h (gcd): Moved here.
25290         (least_common_multiple): Same.
25291         * lambda-code.c: Removed.
25292         * lambda-mat.c: Removed.
25293         * lambda-trans.c: Removed.
25294         * lambda.h: Removed.
25295         * tree-loop-linear.c: Removed.
25296         * lto-symtab.c: Do not include lambda.h.
25297         * omega.c (gcd): Removed.
25298         * passes.c (init_optimization_passes): Remove pass_linear_transform.
25299         * tree-data-ref.c (print_lambda_vector): Moved here.
25300         (lambda_vector_copy): Same.
25301         (lambda_matrix_copy): Same.
25302         (lambda_matrix_id): Same.
25303         (lambda_vector_first_nz): Same.
25304         (lambda_matrix_row_add): Same.
25305         (lambda_matrix_row_exchange): Same.
25306         (lambda_vector_mult_const): Same.
25307         (lambda_vector_negate): Same.
25308         (lambda_matrix_row_negate): Same.
25309         (lambda_vector_equal): Same.
25310         (lambda_matrix_right_hermite): Same.
25311         * tree-data-ref.h: Do not include lambda.h.
25312         (lambda_vector): Moved here.
25313         (lambda_matrix): Same.
25314         (dependence_level): Same.
25315         (lambda_transform_legal_p): Removed declaration.
25316         (lambda_collect_parameters): Same.
25317         (lambda_compute_access_matrices): Same.
25318         (lambda_vector_gcd): Same.
25319         (lambda_vector_new): Same.
25320         (lambda_vector_clear): Same.
25321         (lambda_vector_lexico_pos): Same.
25322         (lambda_vector_zerop): Same.
25323         (lambda_matrix_new): Same.
25324         * tree-flow.h (least_common_multiple): Removed declaration.
25325         * tree-parloops.c (lambda_trans_matrix): Moved here.
25326         (LTM_MATRIX): Same.
25327         (LTM_ROWSIZE): Same.
25328         (LTM_COLSIZE): Same.
25329         (LTM_DENOMINATOR): Same.
25330         (lambda_trans_matrix_new): Same.
25331         (lambda_matrix_vector_mult): Same.
25332         (lambda_transform_legal_p): Same.
25333         * tree-pass.h (pass_linear_transform): Removed declaration.
25334         * tree-ssa-loop.c (tree_linear_transform): Removed.
25335         (gate_tree_linear_transform): Removed.
25336         (pass_linear_transform): Removed.
25337         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
25338         flag_loop_interchange.
25339
25340 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
25341
25342         PR tree-optimization/47265
25343         PR tree-optimization/47443
25344         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
25345         if name still has some uses.
25346
25347 2011-01-25  Martin Jambor  <mjambor@suse.cz>
25348
25349         PR tree-optimization/47382
25350         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
25351         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
25352
25353 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
25354
25355         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
25356         sjlj_except_unwind_info.
25357
25358 2011-01-25  Richard Guenther  <rguenther@suse.de>
25359
25360         PR tree-optimization/47426
25361         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
25362         visible functions results escape.
25363
25364 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
25365
25366         PR target/45701
25367         * config/arm/arm.c (any_sibcall_uses_r3): New function.
25368         (arm_get_frame_offsets): Use it.
25369
25370 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25371             Jakub Jelinek  <jakub@redhat.com>
25372
25373         PR tree-optimization/47271
25374         * tree-if-conv.c (bb_postdominates_preds): New.
25375         (if_convertible_bb_p): Call bb_postdominates_preds.
25376         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
25377         (predicate_scalar_phi): Call bb_postdominates_preds.
25378
25379 2011-01-25  Nick Clifton  <nickc@redhat.com>
25380
25381         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
25382         * config/rx/rx.c (rx_function_value): Likewise.
25383         (rx_promote_function_mode): Likewise.
25384         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
25385         in order to make it legitimate.
25386         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
25387         make sure that the first operand is the same as the result register.
25388         (addsi3_unspec): Delete.
25389         (subdi3): Do not accept immediate operands.
25390         (subdi3_internal): Likewise.
25391
25392 2011-01-25  Jeff Law  <law@redhat.com>
25393
25394         PR rtl-optimization/37273
25395         * ira-costs.c (scan_one_insn): Detect constants living in memory and
25396         handle them like argument loads from stack slots.  Do not double
25397         count memory for memory constants and argument loads from stack slots.
25398
25399 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
25400
25401         PR tree-optimization/47427
25402         PR tree-optimization/47428
25403         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
25404         coalesce if the new root var would be TREE_READONLY.
25405
25406 2011-01-25  Richard Guenther  <rguenther@suse.de>
25407
25408         PR middle-end/47414
25409         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
25410         correct type for TBAA.
25411
25412 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25413
25414         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
25415         (close_phi_written_to_memory): Call for_each_index with
25416         dr_indices_valid_in_loop.
25417
25418 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25419
25420         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
25421         when it is initialized.
25422
25423 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25424
25425         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
25426         call to graphite_find_data_references_in_stmt.
25427         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
25428         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
25429         call to graphite_find_data_references_in_stmt.
25430         (analyze_drs_in_stmts): Same.
25431         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
25432         in which the scalar analysis of indices is performed.
25433         (create_data_ref): Same.  Update call to dr_analyze_indices.
25434         (find_data_references_in_stmt): Update call to create_data_ref.
25435         (graphite_find_data_references_in_stmt): Same.
25436         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
25437         declaration.
25438         (create_data_ref): Same.
25439         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
25440         call to create_data_ref.
25441
25442 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25443
25444         * graphite-sese-to-poly.c (build_poly_scop): Move
25445         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
25446
25447 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25448
25449         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
25450         VAR_DECL, PARM_DECL, and RESULT_DECL.
25451
25452 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25453
25454         * graphite-dependences.c (reduction_dr_1): Allow several reductions
25455         in a reduction PBB.
25456         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
25457         that have already been marked as PBB_IS_REDUCTION.
25458
25459 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25460
25461         * graphite-scop-detection.c (same_close_phi_node): New.
25462         (remove_duplicate_close_phi): New.
25463         (make_close_phi_nodes_unique): New.
25464         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
25465
25466 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25467
25468         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
25469         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
25470         of both data references to be the same.
25471
25472 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25473
25474         * graphite-dependences.c (build_lexicographical_constraint): Remove
25475         the gdim parameter.
25476         (build_lexicographical_constraint): Adjust call to
25477         ppl_powerset_is_empty.
25478         (dependence_polyhedron): Same.
25479         (graphite_legal_transform_dr): Same.
25480         (graphite_carried_dependence_level_k): Same.
25481         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
25482         parameter.
25483         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
25484
25485 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25486
25487         * graphite-sese-to-poly.c
25488         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
25489         (close_phi_written_to_memory): New.
25490         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
25491         and unshare_expr.
25492
25493 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25494
25495         * doc/install.texi: Update the expected version number of PPL to 0.11.
25496         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
25497         #if PPL_VERSION_MINOR < 11.
25498
25499 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25500
25501         * graphite-dependences.c: Include graphite-cloog-util.h.
25502         (new_poly_ddr): Inlined into dependence_polyhedron.
25503         (free_poly_ddr): Moved close by new_poly_ddr.
25504         (dependence_polyhedron_1): Renamed dependence_polyhedron.
25505         Early return NULL when ppl_powerset_is_empty returns true.
25506         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
25507         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
25508         (graphite_legal_transform_dr): Call new_poly_ddr.
25509         (graphite_carried_dependence_level_k): Same.
25510         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
25511         (dot_transformed_deps_stmt_1): Removed.
25512         (dot_deps_stmt_1): Call dot_deps_stmt_2.
25513         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
25514         (dot_deps_1): Call dot_deps_2.
25515         * Makefile.in (graphite-dependences.o): Add missing dependence on
25516         graphite-cloog-util.h.
25517
25518 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25519
25520         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
25521         (build_lexicographical_constraint): Same.
25522         (dependence_polyhedron_1): Same.
25523         (graphite_legal_transform_dr): Same.
25524         (graphite_carried_dependence_level_k): Same.
25525         * graphite-ppl.c (ppl_powerset_is_empty): New.
25526         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
25527         * tree-data-ref.c (dump_data_reference): Print the basic block index.
25528
25529 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25530
25531         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
25532         the "a followed by b" relation and document it.
25533
25534 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25535
25536         * graphite-dependences.c (build_lexicographical_constraint): Stop the
25537         iteration when the bag of constraints is empty.
25538
25539 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25540
25541         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
25542
25543 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25544
25545         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
25546         nest and two loop depths as parameters.
25547         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
25548         lst_perfect_nestify.
25549
25550 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25551
25552         * graphite-dependences.c (print_pddr): Call
25553         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
25554
25555 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
25556
25557         * graphite-ppl.c (debug_gmp_value): New.
25558         * graphite-ppl.h (debug_gmp_value): Declared.
25559
25560 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
25561
25562         * doc/install.texi: Document availability of cloog-0.16.
25563
25564 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
25565
25566         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
25567         invalid postdominance info.
25568
25569 2011-01-24  Jan Hubicka  <jh@suse.cz>
25570
25571         PR c/21659
25572         * doc/extend.texi (weak pragma): Drop claim that it must
25573         appear before definition.
25574         * varasm.c (merge_weak, declare_weak): Only sanity check
25575         that DECL is not output at a time it is declared weak.
25576
25577 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
25578
25579         * machmode.def: Fixed comments.
25580
25581 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
25582
25583         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
25584
25585 2011-01-24  Paul Koning  <ni1d@arrl.net>
25586
25587         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
25588         WORDS_BIG_ENDIAN.
25589
25590 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
25591
25592         PR target/46519
25593         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
25594         (block_info): Add scanned and prev.
25595         (move_or_delete_vzeroupper_2): Return if the basic block
25596         has been scanned and the upper 128bit state is unchanged
25597         from the last scan.
25598         (move_or_delete_vzeroupper_1): Return true if the exit
25599         state is changed.
25600         (move_or_delete_vzeroupper): Visit basic blocks using the
25601         work-list based algorithm based on vt_find_locations in
25602         var-tracking.c.
25603
25604         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
25605
25606 2011-01-24  Nick Clifton  <nickc@redhat.com>
25607
25608         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
25609         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
25610         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
25611         then define __v850e1__.
25612         * doc/invoke.texi: Document -mv850es.
25613
25614 2011-01-24  Richard Henderson  <rth@redhat.com>
25615
25616         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
25617         compound unordered comparisons.
25618         * config/rx/rx.c (rx_split_fp_compare): Remove.
25619         * config/rx/rx-protos.h: Update.
25620         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
25621         (cbranchsf4): Don't call rx_split_fp_compare.
25622         (*cbranchsf4): Use rx_split_cbranch.
25623         (*cmpsf): Don't accept "i" constraint.
25624         (*conditional_branch): Only valid after reload.
25625         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
25626
25627 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
25628
25629         PR target/47385
25630         * config/rs6000/altivec.md (vector constant splitters): Add
25631         support for creating vector single precision constants if -mvsx is
25632         used and we would create the constant using Altivec primitives.
25633
25634 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
25635             Richard Sandiford  <rdsandiford@googlemail.com>
25636
25637         PR rtl-optimization/47166
25638         * reload1.c (emit_reload_insns): Disable the spill_reg_store
25639         mechanism for PRE_MODIFY and POST_MODIFY.
25640         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
25641         reloadreg.
25642
25643 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
25644
25645         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
25646
25647 2011-01-22  Jan Hubicka  <jh@suse.cz>
25648
25649         PR lto/47333
25650         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
25651
25652 2011-01-22  Jan Hubicka  <jh@suse.cz>
25653
25654         PR tree-optimization/43884
25655         PR lto/44334
25656         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
25657         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
25658
25659 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
25660
25661         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
25662         * config/s390/s390.c (s390_register_move_cost,
25663         s390_memory_move_cost): New.
25664         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
25665
25666 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25667
25668         PR middle-end/47401
25669         * except.c (sjlj_assign_call_site_values): Move setting the
25670         crtl->uses_eh_lsda flag to ...
25671         (sjlj_mark_call_sites): ... here.
25672         (sjlj_emit_function_enter): Support NULL dispatch label.
25673         (sjlj_build_landing_pads): In a function with no landing pads
25674         that still has must-not-throw regions, generate code to register
25675         a personality function with empty LSDA.
25676
25677 2011-01-21  Richard Henderson  <rth@redhat.com>
25678
25679         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
25680
25681         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
25682
25683         * compare-elim.c: New file.
25684         * Makefile.in (OBJS-common): Add it.
25685         (compare-elim.o): New.
25686         * common.opt (fcompare-elim): New.
25687         * opts.c (default_options_table): Add OPT_fcompare_elim.
25688         * tree-pass.h (pass_compare_elim_after_reload): New.
25689         * passes.c (init_optimization_passes): Add it.
25690         * recog.h: Protect against re-inclusion.
25691         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
25692         * doc/invoke.texi (-fcompare-elim): Document it.
25693         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
25694         * doc/tm.texi: Rebuild.
25695
25696 2011-01-22  Nick Clifton  <nickc@redhat.com>
25697
25698         * config/rx/rx.md (cstoresf4): Pass comparison operator to
25699         rx_split_fp_compare.
25700
25701 2011-01-22  Nick Clifton  <nickc@redhat.com>
25702
25703         * config/rx/rx.md (UNSPEC_CONST): New.
25704         (deallocate_and_return): Wrap the amount popped off the stack in
25705         an UNSPEC_CONST in order to stop it being rejected by
25706         -mmax-constant-size.
25707         (pop_and_return): Add a "(return)" rtx.
25708         (call): Drop the immediate operand.
25709         (call_internal): Likewise.
25710         (call_value): Likewise.
25711         (call_value_internal): Likewise.
25712         (sibcall_internal): Likewise.
25713         (sibcall_value_internal): Likewise.
25714         (sibcall): Likewise.  Generate an explicit call using
25715         sibcall_internal.
25716         (sibcall_value): Likewise.
25717         (mov<>): FAIL if a constant operand is not legitimate.
25718         (addsi3_unpsec): New pattern.
25719
25720         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
25721         (ok_for_max_constant): New function.
25722         (gen_safe_add): New function.
25723         (rx_expand_prologue): Use gen_safe_add.
25724         (rx_expand_epilogue): Likewise.
25725         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
25726         UNSPEC CONSTs.
25727
25728 2011-01-21  Jeff Law  <law@redhat.com>
25729
25730         PR tree-optimization/47053
25731         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
25732         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
25733         statements are deleted.
25734         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
25735         is nonempty, then purge dead edges and cleanup the CFG.
25736
25737 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
25738
25739         PR debug/47402
25740         Temporarily revert:
25741         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
25742         PR debug/47106
25743         * tree-dfa.c (create_var_ann): Mark variable as used.
25744
25745 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
25746
25747         PR middle-end/45566
25748         * except.c (convert_to_eh_region_ranges): Emit queued no-region
25749         notes from other section in hot/cold partitioning even if
25750         last_action is -3.  Increment call_site_base.
25751
25752         PR rtl-optimization/47366
25753         * fwprop.c (forward_propagate_into): Return bool.  If
25754         any changes are made, -fnon-call-exceptions is used and
25755         REG_EH_REGION note is present, call purge_dead_edges
25756         and return true if it purged anything.
25757         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
25758         any EH edges were purged.
25759
25760 2011-01-21  Jeff Law  <law@redhat.com>
25761
25762         PR rtl-optimization/41619
25763         * caller-save.c (setup_save_areas): Break out code to determine
25764         which hard regs are live across calls by examining the reload chains
25765         so that it is always used.
25766         Eliminate code which checked REG_N_CALLS_CROSSED.
25767
25768 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
25769
25770         PR tree-optimization/47355
25771         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
25772         NOP has non-debug uses beyond PHIs in new_bb.
25773
25774 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
25775
25776         PR debug/47106
25777         * cfgexpand.c (account_used_vars_for_block): Only account vars
25778         that are annotated as used.
25779         (estimated_stack_frame_size): Don't set TREE_USED.
25780         * tree-dfa.c (create_var_ann): Mark variable as used.
25781
25782 2011-01-21  Richard Guenther  <rguenther@suse.de>
25783
25784         PR middle-end/47395
25785         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
25786
25787 2011-01-21  Richard Guenther  <rguenther@suse.de>
25788
25789         PR tree-optimization/47365
25790         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
25791         (vn_reference_lookup_pieces): Adjust.
25792         (vn_reference_lookup): Likewise.
25793         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
25794         (vn_reference_lookup_3): Only look through kills if in
25795         VN_WALKREWRITE mode.
25796         (vn_reference_lookup_pieces): Adjust.
25797         (vn_reference_lookup): Likewise.
25798         (visit_reference_op_load): Likewise.
25799         (visit_reference_op_store): Likewise.
25800         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
25801         (compute_avail): Likewise.
25802         (eliminate): Likewise.
25803
25804 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
25805
25806         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
25807         DECL_IGNORED_P non-reg vars if they are used.
25808
25809         PR tree-optimization/47391
25810         * varpool.c (const_value_known_p): Return false if
25811         decl is volatile.
25812
25813 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
25814
25815         PR bootstrap/47215
25816         * config/i386/i386.c (ix86_local_alignment): Handle
25817         case for va_list_type_node is nil.
25818         (ix86_canonical_va_list_type): Likewise.
25819
25820 2011-01-21  Alan Modra  <amodra@gmail.com>
25821
25822         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
25823         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
25824
25825 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25826
25827         * config/arm/arm.md (define_attr type): Rename f_load
25828         and f_store to f_fpa_load and f_fpa_store. Update.
25829         (write_conflict): Deal with rename fallout.
25830         (*push_fp_multi): Likewise.
25831         * config/arm/fpa.md (f_load): Use f_fpa_load.
25832         (f_store): Use f_fpa_store.
25833         (*movsf_fpa): Likewise.
25834         (*movdf_fpa): Likewise.
25835         (*movxf_fpa): Likewise.
25836         (*thumb2_movsf_fpa): Likewise.
25837         (*thumb2_movdf_fpa): Likewise.
25838         (*thumb2_movxf_fpa): Likewise.
25839         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
25840         f_loadd and f_stored.
25841         (*thumb2_movdi_vfp): Likewise.
25842         (*thumb2_movsf_vfp): Fix attribute to f_loads.
25843         (*thumb2_movsi_vfp): Likewise.
25844         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
25845         Use f_loads instead of f_load.
25846         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
25847
25848 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
25849
25850         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
25851         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
25852         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
25853         (xtensa_mode_dependent_address_p): New function.
25854         (constantpool_address_p): Make static. Change return type to bool.
25855         Change argument type to const_rtx. Use CONST_INT_P predicate.
25856
25857 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
25858
25859         PR debug/46583
25860         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
25861
25862 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
25863
25864         PR debug/47283
25865         * cfgexpand.c (expand_debug_expr): Instead of generating
25866         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
25867         etc. handling.
25868
25869 2011-01-20  Richard Guenther  <rguenther@suse.de>
25870
25871         PR middle-end/47370
25872         * tree-inline.c (remap_gimple_op_r): Recurse manually for
25873         the pointer operand of MEM_REFs.
25874
25875 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
25876
25877         PR tree-optimization/46130
25878         * ipa-split.c (consider_split): If return_bb contains non-virtual
25879         PHIs other than for retval or if split_function would not adjust it,
25880         refuse to split.
25881
25882 2011-01-20  Richard Guenther  <rguenther@suse.de>
25883
25884         PR tree-optimization/47167
25885         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
25886         Revert previous change, only avoid enumeral type changes.
25887
25888 2011-01-19  Mike Stump  <mikestump@comcast.net>
25889
25890         * doc/tm.texi.in (BRANCH_COST): Englishify.
25891         * doc/tm.texi (BRANCH_COST): Likewise.
25892
25893 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
25894
25895         PR c++/47291
25896         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
25897         (gen_scheduled_generic_parms_dies): New functions.
25898         (gen_struct_or_union_type_die): Schedule template parameters DIEs
25899         generation for the end of CU compilation.
25900         (dwarf2out_finish): Generate template parameters DIEs here.
25901
25902 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
25903
25904         PR debug/46240
25905         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
25906         debug bind stmt on merge edges.
25907
25908 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
25909
25910         PR debug/47079
25911         PR debug/46724
25912         * function.c (instantiate_expr): Instantiate incoming rtl of
25913         implicit arguments, and recurse on VALUE_EXPRs.
25914         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
25915         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
25916
25917 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
25918
25919         * c-parser.c (c_parser_for_statement): Initialize
25920         collection_expression.
25921
25922 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
25923
25924         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
25925
25926 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
25927
25928         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
25929         (LINK_SHLIB_SPEC): Don't use %(link_path).
25930         (SUBTARGET_EXTRA_SPECS): Remove link_path.
25931
25932 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
25933
25934         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
25935         (NO_SHARED_LIB_SUPPORT): Remove.
25936         (LINK_SHLIB_SPEC): Remove one conditional definition.
25937
25938 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
25939
25940         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
25941         %{call_shared}.
25942         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
25943         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
25944         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
25945         %{call_shared} and conditionals on these options not being passed.
25946         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
25947         %{call_shared}.
25948
25949 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
25950
25951         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
25952         simplify.
25953
25954         * ipa-split.c: Spelling fixes.
25955
25956 2011-01-19  Richard Henderson  <rth@redhat.com>
25957
25958         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
25959         (*mulsi3): Likewise.
25960
25961         * longlong.h [__mn10300__] (count_leading_zeros): New.
25962         [__mn10300__] (umul_ppmm, smul_ppmm): New.
25963         [__mn10300__] (add_ssaaaa, subddmmss): New.
25964         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
25965         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
25966
25967 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25968
25969         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
25970
25971 2011-01-19  Richard Henderson  <rth@redhat.com>
25972
25973         * config/mn10300/mn10300.md (addsi3_flags): New.
25974         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
25975         (subsi3_flags, subc_internal, subdi3): New.
25976         (subdi3_internal, *subdi3_degenerate): New.
25977         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
25978
25979         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
25980         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
25981         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
25982         * config/mn10300/mn10300-protos.h: Update.
25983         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
25984         (return_ret): Likewise.  Rename from return_internal_regs.
25985         (return_internal): Remove.
25986
25987         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
25988         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
25989         (mn10300_legitimate_constant_p): Likewise.
25990         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
25991         (mn10300_frame_size): New.
25992         (mn10300_expand_prologue): Use it.
25993         (mn10300_expand_epilogue): Likewise.
25994         (mn10300_initial_offset): Likewise.
25995         * config/mn10300/mn10300-protos.h: Update.
25996         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
25997         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
25998         (prologue, epilogue, return_internal): Tidy output code.
25999         (mn10300_store_multiple_operation, return): Likewise.
26000         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
26001         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
26002         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
26003         (load_pic, am33_load_pic): New.
26004         (mn10300_load_pic0, mn10300_load_pic1): New.
26005
26006         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
26007         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
26008         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
26009         (cc_flags_for_mode, cc_flags_for_code): New.
26010         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
26011         overflow flag is not valid.  Validate that the flags we need
26012         for the comparison are valid.
26013         (mn10300_output_cmp): Remove.
26014         (mn10300_output_add): New.
26015         (mn10300_select_cc_mode): Use cc_flags_for_code.
26016         (mn10300_split_cbranch): New.
26017         (mn10300_match_ccmode): New.
26018         (mn10300_split_and_operand_count): New.
26019         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
26020         to the function.
26021         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
26022         (addsi3): ... here.  Use mn10300_output_add.
26023         (*addsi3_flags): New.
26024         (*am33_subsi3, *mn10300_subsi3): Merge...
26025         (subsi3): ... here.  Use attribute isa.
26026         (*subsi3_flags): New.
26027         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
26028         when possible.
26029         (*am33_andsi3, *mn10300_andsi3): Merge...
26030         (andsi3): ... here.
26031         (*andsi3_flags): New.
26032         (andsi3 splitters): New.
26033         (*am33_iorsi3, *mn10300_iorsi3): Merge...
26034         (iorsi3): ... here.
26035         (*iorsi3_flags): New.
26036         (*am33_xorsi3, *mn10300_xorsi3): Merge...
26037         (xorsi3): ... here.
26038         (*xorsi3_flags): New.
26039         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
26040         (one_cmplsi2): ... here.
26041         (*one_cmplsi2_flags): New.
26042         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
26043         instead of "dax" in constraints.  Use mn10300_split_cbranch.
26044         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
26045         use matching constraints to eliminate a self-comparison.
26046         (*integer_conditional_branch): Rename from integer_conditional_branch.
26047         Use int_mode_flags to match CC_REG.
26048         (*cbranchsi4_btst, *btstsi): New.
26049         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
26050         mn10300_split_cbranch.
26051         (*am33_cmpsf): Rename from am33_cmpsf.
26052         (*float_conditional_branch): Rename from float_conditional_branch.
26053         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
26054         (zero_extendqisi2): ... here.
26055         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
26056         (zero_extendhisi2): ... here.
26057         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
26058         (extendqisi2): ... here.
26059         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
26060         (extendhisi2): ... here.
26061         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
26062         (ashlsi3): ... here.
26063         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
26064         (lshrsi3): ... here.
26065         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
26066         (ashrsi3): ... here.
26067         (consecutive add peephole): Remove.
26068         * config/mn10300/predicates.md (label_ref_operand): New.
26069         (int_mode_flags): New.
26070         (CCZN_comparison_operator): New.
26071
26072         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
26073         (throughput_42_latency_43): New reservation.
26074         (mulsidi3, umulsidi3): New expanders.
26075         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
26076         the MDR register to allocation; separately allocate the low and
26077         high parts of the DImode result.
26078         (umulsidi3_internal): Similarly.
26079         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
26080         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
26081         (udivsi3, umodsi3): Remove.
26082         (udivmodsi4, divmodsi4): New expanders.
26083         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
26084         (*divmodsi4): Simiarly.
26085         (ext_internal): New.
26086
26087         * config/mn10300/constraints.md ("z"): New constraint.
26088         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
26089         (FIXED_REGISTERS): Don't fix MDR.
26090         (CALL_USED_REGSITERS): Reformat nicely.
26091         (REG_ALLOC_ORDER): Add MDR.
26092         (enum regclass): Add MDR_REGS.
26093         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
26094         (IRA_COVER_CLASSES): Add MDR_REGS.
26095         (REGNO_REG_CLASS): Handle MDR_REG.
26096         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
26097         (mn10300_register_move_cost): Likewise.
26098         * config/mn10300/mn10300.md (MDR_REG): New.
26099         (*movsi_internal): Handle moves to/from MDR_REGS.
26100
26101         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
26102         POST_MODIFY.
26103         (mn10300_secondary_reload): Tidy combination reload classes.
26104         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
26105         addresses for AM33.  Allow symbolic offsets for reg+imm.
26106         (mn10300_regno_in_class_p): New.
26107         (mn10300_legitimize_reload_address): New.
26108         * config/mn10300/mn10300.h (enum reg_class): Remove
26109         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
26110         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
26111         SP_OR_GENERAL_REGS.
26112         (REG_CLASS_NAMES): Update to match.
26113         (REG_CLASS_CONTENTS): Likewise.
26114         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
26115         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
26116         (REGNO_IN_RANGE_P): Remove.
26117         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
26118         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
26119         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
26120         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
26121         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
26122         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
26123         (REGNO_GENERAL_P): New.
26124         (HAVE_POST_MODIFY_DISP): New.
26125         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
26126         (LEGITIMIZE_RELOAD_ADDRESS): New.
26127         * config/mn10300/mn10300-protos.h: Update.
26128
26129         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
26130         DATA_REGS for AM33 stack-pointer destination.
26131         (mn10300_preferred_output_reload_class): Likewise.
26132         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
26133         into a form appropriate for ...
26134         (TARGET_SECONDARY_RELOAD): New.
26135         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
26136         * config/mn10300/mn10300-protos.h: Update.
26137         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
26138         reload_insi; use the "A" constraint for the scratch; handle AM33
26139         moves of sp to non-address registers.
26140
26141         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
26142         (*movqi_internal): ... here.
26143         (*am33_movhi, *mn10300_movhi): Merge into...
26144         (*movhi_internal): ... here.
26145         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
26146         as the source/destination of moves from/to SP.
26147         (movsf): Only allow for AM33-2.
26148         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
26149         any integer constant constraint.  Only allow for AM33-2.  Tidy
26150         all of the alternative outputs.
26151         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
26152         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
26153         for MN103.
26154         (udivsi3, umodsi3): New patterns for MN103 only.
26155
26156 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
26157
26158         * doc/tm.texi.in: Spell out that a lack of register class unions
26159         can lead to ICEs.
26160         * doc/tm.texi: Regenerate.
26161
26162 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
26163
26164         PR rtl-optimization/47337
26165         * dce.c (check_argument_store): New function.
26166         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
26167
26168         PR tree-optimization/47290
26169         * tree-eh.c (infinite_empty_loop_p): New function.
26170         (cleanup_empty_eh): Use it.
26171
26172 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
26173
26174         PR target/46997
26175         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
26176         (a64_expand_widen_sum): Ditto.
26177         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
26178         (vec_extract_evenodd_help): Ditto.
26179         (vec_extract_evenv4hi): Ditto.
26180         (vec_extract_oddv4hi): Ditto.
26181         (vec_extract_evenv2si): Ditto.
26182         (vec_extract_oddv2si): Ditto.
26183         (vec_extract_evenv2sf): Ditto.
26184         (vec_extract_oddv2sf): Ditto.
26185         (vec_pack_trunc_v4hi: Ditto.
26186         (vec_pack_trunc_v2si): Ditto.
26187         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
26188         (vec_interleave_highv8qi): Ditto.
26189         (mix1_r): Ditto.
26190         (vec_extract_oddv8qi): Ditto.
26191         (vec_interleave_lowv4hi): Ditto.
26192         (vec_interleave_highv4hi): Ditto.
26193         (vec_interleave_lowv2si): Ditto.
26194         (vec_interleave_highv2si): Ditto.
26195
26196 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26197
26198         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
26199         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
26200         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
26201         (pa_c_mode_for_suffix): New.
26202         (TARGET_EXPAND_BUILTIN): Define.
26203         (TARGET_C_MODE_FOR_SUFFIX): Define.
26204         (pa_builtins): Define.
26205         (pa_init_builtins): Register __float128 type and init new support
26206         builtins.
26207         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
26208         * config/pa/quadlib.c (_U_Qfcopysign): New.
26209
26210 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
26211
26212         PR middle-end/46894
26213         * explow.c (allocate_dynamic_stack_space): Do not assume more than
26214         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
26215         are defined.
26216
26217 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26218
26219         PR tree-optimization/47179
26220         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
26221         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
26222
26223 2011-01-18  Richard Guenther  <rguenther@suse.de>
26224
26225         PR rtl-optimization/47216
26226         * emit-rtl.c: Include tree-flow.h.
26227         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
26228         of replicating it with different semantics.
26229         * Makefile.in (emit-rtl.o): Adjust.
26230
26231 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26232
26233         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
26234         (cortex_a9_dp): Handle neon types correctly.
26235
26236 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
26237
26238         PR rtl-optimization/47299
26239         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
26240         subtarget.  Use normal multiplication if both operands are constants.
26241         * expmed.c (expand_widening_mult): Don't try to optimize constant
26242         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
26243         before using it.
26244
26245 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26246
26247         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
26248         spacing after 'e.g.', typos, comma, hyphenation.
26249
26250 2011-01-17  Richard Henderson  <rth@redhat.com>
26251
26252         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
26253         (rx_restricted_mem_operand): New.
26254         (rx_shift_operand): Use register_operand.
26255         (rx_source_operand, rx_compare_operand): Likewise.
26256         * config/rx/rx.md (addsi3_flags): New expander.
26257         (adddi3): Rewrite as expander.
26258         (adc_internal, *adc_flags, adddi3_internal): New patterns.
26259         (subsi3_flags): New expander.
26260         (subdi3): Rewrite as expander.
26261         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
26262
26263         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
26264         (rx_init_builtins): Remove sat builtin.
26265         (rx_expand_builtin): Likewise.
26266         * config/rx/rx.md (ssaddsi3): New.
26267         (*sat): Rename from sat.  Represent the CC_REG input.
26268
26269         * config/rx/predicates.md (rshift_operator): New.
26270         * config/rx/rx.c (rx_expand_insv): Remove.
26271         * config/rx/rx-protos.h: Update.
26272         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
26273         operand to the canonical position.
26274         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
26275         (*bitclr, *bitclr_in_memory): Similarly.
26276         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
26277         (insv): Retain the zero_extract in the expansion.
26278
26279         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
26280         (bswaphi2, bitinvert, revw): Likewise.
26281
26282         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
26283         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
26284         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
26285         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
26286         (bitset, bitset_in_memory): Likewise.
26287         (bitinvert, bitinvert_in_memory): Likewise.
26288         (bitclr, bitclr_in_memory): Likewise.
26289         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
26290         (rx_strend, rx_cmpstrn): Likewise.
26291         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
26292         (bitop peep2 patterns): Remove.
26293
26294         * config/rx/rx.c (rx_match_ccmode): New.
26295         * config/rx/rx-protos.h: Update.
26296         * config/rx/rx.md (abssi2): Clobber, don't set flags.
26297         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
26298         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
26299         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
26300         (fix_truncsfsi2, floatsisf2): Likewise.
26301         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
26302         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
26303         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
26304         (*subsi3_flags, *xorsi3_flags): New.
26305
26306         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
26307
26308         * config/rx/rx.c (rx_print_operand): Remove workaround for
26309         unsplit comparison operations.
26310
26311         * config/rx/rx.md (movsicc): Split after reload.
26312         (*movsicc): Merge *movsieq and *movsine via match_operator.
26313         (*stcc): New pattern.
26314
26315         * config/rx/rx.c (rx_float_compare_mode): Remove.
26316         * config/rx/rx.h (rx_float_compare_mode): Remove.
26317         * config/rx/rx.md (cstoresi4): Split after reload.
26318         (*sccc): New pattern.
26319
26320         * config/rx/predicates.md (label_ref_operand): New.
26321         (rx_z_comparison_operator): New.
26322         (rx_zs_comparison_operator): New.
26323         (rx_fp_comparison_operator): New.
26324         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
26325         Validate that the flags are set properly for the comparison.
26326         (rx_gen_cond_branch_template): Remove.
26327         (rx_cc_modes_compatible): Remove.
26328         (mode_from_flags): New.
26329         (flags_from_code): Rename from flags_needed_for_conditional.
26330         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
26331         (rx_select_cc_mode): Likewise.
26332         (rx_split_fp_compare): New.
26333         (rx_split_cbranch): New.
26334         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
26335         (*cbranchsi4): Use match_operator and rx_split_cbranch.
26336         (*cbranchsf4): Similarly.
26337         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
26338         match_operator and rx_split_cbranch.
26339         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
26340         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
26341         (*cmpsi): Rename from cmpsi.
26342         (*tstsi): Rename from tstsi.
26343         (*cmpsf): Rename from cmpsf; use CC_Fmode.
26344         (*conditional_branch): Rename from conditional_branch.
26345         (*reveresed_conditional_branch): Remove.
26346         (b<code>): Remove expander.
26347         * config/rx/rx-protos.h: Update.
26348
26349         * config/rx/rx.c (rx_compare_redundant): Remove.
26350         * config/rx/rx.md (cmpsi): Don't use it.
26351         * config/rx/rx-protos.h: Update.
26352
26353         * config/rx/rx-modes.def (CC_F): New mode.
26354         * config/rx/rx.c (rx_select_cc_mode): New.
26355         * config/rx/rx.h (SELECT_CC_MODE): Use it.
26356         * config/rx/rx-protos.h: Update.
26357
26358 2011-01-17  Richard Henderson  <rth@redhat.com>
26359
26360         * except.c (dump_eh_tree): Fix stray ; after for statement.
26361
26362 2011-01-17  Richard Guenther  <rguenther@suse.de>
26363
26364         PR tree-optimization/47313
26365         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
26366         handling before copying the body.  Properly deal with
26367         by-reference result in SSA form.
26368
26369 2011-01-17  Ian Lance Taylor  <iant@google.com>
26370
26371         PR target/47219
26372         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
26373         (struct_value_alias_set): Don't define.
26374         (sparc_option_override): Don't set sparc_sr_alias_set and
26375         struct_value_alias_set.
26376         (save_or_restore_regs): Use gen_frame_mem rather than calling
26377         set_mem_alias_set.
26378         (sparc_struct_value_rtx): Likewise.
26379
26380 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
26381
26382         PR target/47318
26383         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
26384         (_mm_maskstore_pd): Likewise.
26385         (_mm_maskload_ps): Likewise.
26386         (_mm_maskstore_ps): Likewise.
26387         (_mm256_maskload_pd): Change mask to __m256i.
26388         (_mm256_maskstore_pd): Likewise.
26389         (_mm256_maskload_ps): Likewise.
26390         (_mm256_maskstore_ps): Likewise.
26391
26392         * config/i386/i386-builtin-types.def: Updated.
26393         (ix86_expand_special_args_builtin): Likewise.
26394
26395         * config/i386/i386.c (bdesc_special_args): Update
26396         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
26397         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
26398         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
26399         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
26400
26401         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
26402         Use <avxpermvecmode> on mask register.
26403         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
26404
26405 2011-01-17  Olivier Hainque  <hainque@adacore.com>
26406             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
26407             Eric Botcazou  <ebotcazou@adacore.com>
26408
26409         PR target/46655
26410         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
26411         if <= USHRT_MAX in 32-bit mode.
26412
26413 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26414
26415         * doc/install.texi (Configuration, Specific): Wrap long
26416         lines in examples.  Allow line wrapping in long options
26417         and URLs where beneficial for PDF output.
26418
26419 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
26420
26421         * config/mips/mips.c (mips_classify_symbol): Don't return
26422         SYMBOL_PC_RELATIVE for nonlocal labels.
26423
26424 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
26425
26426         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
26427
26428 2011-01-15  Jan Hubicka  <jh@suse.cz>
26429
26430         PR tree-optimization/47276
26431         * ipa.c (function_and_variable_visibility): Do not try to mark alias
26432         declarations as needed.
26433
26434 2011-01-15  Martin Jambor  <mjambor@suse.cz>
26435
26436         * common.opt (fdevirtualize): New flag.
26437         * doc/invoke.texi (Option Summary): Document it.
26438         * opts.c (default_options_table): Add devirtualize flag.
26439         * ipa-prop.c (detect_type_change): Return immediately if
26440         devirtualize flag is not set.
26441         (detect_type_change_ssa): Likewise.
26442         (compute_known_type_jump_func): Likewise.
26443         (ipa_analyze_virtual_call_uses): Likewise.
26444
26445 2011-01-14  Martin Jambor  <mjambor@suse.cz>
26446
26447         PR tree-optimization/45934
26448         PR tree-optimization/46302
26449         * ipa-prop.c (type_change_info): New type.
26450         (stmt_may_be_vtbl_ptr_store): New function.
26451         (check_stmt_for_type_change): Likewise.
26452         (detect_type_change): Likewise.
26453         (detect_type_change_ssa): Likewise.
26454         (compute_complex_assign_jump_func): Check for dynamic type change.
26455         (compute_complex_ancestor_jump_func): Likewise.
26456         (compute_known_type_jump_func): Likewise.
26457         (compute_scalar_jump_functions): Likewise.
26458         (ipa_analyze_virtual_call_uses): Likewise.
26459         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
26460
26461 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26462
26463         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
26464         * config/i386/i386.opt (msse5): New Alias.
26465
26466 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26467
26468         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
26469         * config/sparc/linux64.h (CC1_SPEC): Likewise.
26470         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
26471         * config/sparc/sparc.h (CC1_SPEC): Likewise.
26472
26473 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26474
26475         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
26476         -mcpu options.
26477         * config/sparc/linux64.h (CC1_SPEC): Likewise.
26478         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
26479         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
26480         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
26481         Likewise.
26482         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
26483
26484 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26485
26486         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
26487
26488 2011-01-14  Mike Stump  <mikestump@comcast.net>
26489
26490         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
26491         * config/fr30/fr30.md: Likweise
26492         (movsi_push): Likewise.
26493         (movsi_pop): Likewise.
26494         (enter_func): Likewise.
26495         * config/moxie/moxie.md (movsi_push): Likewise.
26496         (movsi_pop): Likewise.
26497
26498 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26499
26500         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
26501         %{no_archive} %{exact_version}.
26502         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
26503         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
26504         %{no_archive} %{exact_version}.
26505         * config/mips/openbsd.h (LINK_SPEC): Likewise.
26506         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
26507         * config/mips/vxworks.h: Likewise.
26508
26509 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26510
26511         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
26512
26513 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26514
26515         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
26516         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
26517
26518 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26519
26520         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
26521         -nodefaultlib.
26522
26523 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26524
26525         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
26526         for mcpu not cpu.
26527         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
26528         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
26529         not cpu.
26530         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
26531         Don't handle -shlib.
26532
26533 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26534
26535         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
26536         (CC1_SPEC): Don't handle -profile.
26537
26538 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26539
26540         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
26541         * config/mips/mips.h (CC1_SPEC): Likewise.
26542
26543 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26544
26545         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
26546         * config/mips/mips.h (CC1_SPEC): Likewise.
26547
26548 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26549
26550         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
26551         * config/m32r/linux.h (LINK_SPEC): Likewise.
26552         * config/mips/linux.h (LINK_SPEC): Likewise.
26553         * config/mips/linux64.h (LINK_SPEC): Likewise.
26554         * config/sparc/linux.h (LINK_SPEC): Likewise.
26555         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
26556         LINK_SPEC): Likewise.
26557         * config/xtensa/linux.h (LINK_SPEC): Likewise.
26558
26559 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26560
26561         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
26562         %{version:-v}.
26563         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
26564
26565 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26566
26567         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
26568         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
26569
26570 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
26571
26572         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
26573
26574 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26575
26576         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
26577         supports -Bstatic/-Bdynamic.
26578         * configure: Regenerate.
26579
26580 2011-01-14  Jan Hubicka  <jh@suse.cz>
26581             Jack Howarth  <howarth@bromo.med.uc.edu>
26582
26583         PR target/46037
26584         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
26585         when checking debug_info_level. Test write_symbols instead of
26586         debug_hooks->var_location when setting flag_var_tracking_uninit.
26587
26588 2011-01-14  Richard Guenther  <rguenther@suse.de>
26589
26590         PR tree-optimization/47179
26591         * target.def (ref_may_alias_errno): New target hook.
26592         * targhooks.h (default_ref_may_alias_errno): Declare.
26593         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
26594         (default_ref_may_alias_errno): New function.
26595         * target.h (struct ao_ref_s): Declare.
26596         * tree-ssa-alias.c: Include target.h.
26597         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
26598         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
26599         (targhooks.o): Likewise.
26600         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
26601         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
26602
26603 2011-01-14  Richard Guenther  <rguenther@suse.de>
26604
26605         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
26606
26607 2011-01-14  Richard Guenther  <rguenther@suse.de>
26608
26609         PR tree-optimization/47280
26610         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
26611         return CFG changes.
26612         (tree_ssa_forward_propagate_single_use_vars): Deal with
26613         CFG changes from associate_plusminus.
26614
26615 2011-01-14  Richard Guenther  <rguenther@suse.de>
26616
26617         PR middle-end/47281
26618         Revert
26619         2011-01-11  Richard Guenther  <rguenther@suse.de>
26620
26621         PR tree-optimization/46076
26622         * tree-ssa.c (useless_type_conversion_p): Conversions from
26623         unprototyped to empty argument list function types are useless.
26624
26625 2011-01-14  Richard Guenther  <rguenther@suse.de>
26626
26627         PR tree-optimization/47286
26628         * tree-ssa-structalias.c (new_var_info): Register variables are global.
26629
26630 2011-01-14  Martin Jambor  <mjambor@suse.cz>
26631
26632         PR middle-end/46823
26633         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
26634
26635 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
26636
26637         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
26638         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26639         * config/xtensa/xtensa.c (xtensa_libcall_value,
26640         xtensa_function_value_regno_p): New functions.
26641         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
26642
26643 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
26644
26645         PR c++/47213
26646         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
26647         PE specific hook.
26648         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
26649         New function prototype.
26650         * config/i386/winnt.c (i386_pe_assemble_visibility):
26651         Warn only if attribute was specified by user.
26652
26653 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
26654
26655         PR target/47251
26656         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
26657         floating point.
26658         (floatunsdidf2_fcfidu): Ditto.
26659
26660 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26661
26662         * config/s390/s390.c (print_operand_address): Replace 'error' with
26663         'output_operand_lossage'.
26664         (print_operand): Likewise.
26665
26666 2011-01-13  Jeff Law  <law@redhat.com>
26667
26668         PR rtl-optimization/39077
26669         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
26670         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
26671         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
26672         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
26673         * gcse.c (prune_insertions_deletions): New function.
26674         (compute_pre_data): Use it.
26675
26676 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
26677
26678         PR debug/PR46973
26679         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
26680         static function.
26681         (prune_unused_types_mark): Use it.
26682
26683 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
26684
26685         PR rtl-optimization/45352
26686         * sel-sched.c: Update copyright years.
26687         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
26688         in the advancing loop when we have issued issue_rate insns.
26689
26690 2011-01-12  Richard Henderson  <rth@redhat.com>
26691
26692         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
26693         (TARGET_MD_ASM_CLOBBERS): New.
26694
26695         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
26696         (TARGET_DELEGITIMIZE_ADDRESS): New.
26697
26698         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
26699         (clzsi2, *bsch): New patterns.
26700
26701         * config/mn10300/mn10300.md (INT): New mode iterator.
26702         (*mov<INT>_clr): New pattern, and peep2 to generate it.
26703
26704         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
26705         flag_split_wide_types.
26706
26707         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
26708         (mn10300_trampoline_init): Rewrite without a template, an immediate
26709         load and a direct branch.
26710         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
26711
26712 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
26713
26714         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
26715         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
26716         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
26717         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
26718
26719 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
26720
26721         PR debug/47209
26722         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
26723         of type.
26724
26725 2011-01-12  Jan Hubicka  <jh@suse.cz>
26726
26727         PR driver/47244
26728         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
26729         (PLUGIN_COND_CLOSE): New macro.
26730         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
26731
26732 2011-01-12  Richard Guenther  <rguenther@suse.de>
26733
26734         PR lto/47259
26735         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
26736         register variables in a MEM_REF.
26737
26738 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
26739
26740         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
26741         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
26742         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
26743         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
26744         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
26745         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
26746         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
26747         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
26748         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
26749         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
26750         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
26751         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
26752         * config/gnu-user.h: New.  Copied from linux.h.
26753         (LINUX_TARGET_STARTFILE_SPEC): Rename to
26754         GNU_USER_TARGET_STARTFILE_SPEC.
26755         (LINUX_TARGET_ENDFILE_SPEC): Rename to
26756         GNU_USER_TARGET_ENDFILE_SPEC.
26757         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
26758         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
26759         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
26760         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
26761         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
26762         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
26763         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
26764         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
26765         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
26766         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
26767         * config/arm/linux-eabi.h (CC1_SPEC): Use
26768         GNU_USER_TARGET_CC1_SPEC.
26769         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
26770         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
26771         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
26772         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
26773         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
26774         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
26775         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
26776         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
26777
26778 2011-01-12  Richard Guenther  <rguenther@suse.de>
26779
26780         PR other/46946
26781         * doc/invoke.texi (ffast-math): Document it is turned on
26782         with -Ofast.
26783
26784 2011-01-12  Jan Hubicka  <jh@suse.cz>
26785
26786         PR tree-optimization/47233
26787         * opts.c (common_handle_option): Disable ipa-reference with profile
26788         feedback.
26789
26790 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
26791
26792         * c-parser.c (c_parser_objc_at_property_declaration): Improved
26793         error message.
26794
26795 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
26796
26797         * c-parser.c (c_lex_one_token): Updated and reindented some
26798         comments.  No changes in code.
26799
26800 2011-01-11  Ian Lance Taylor  <iant@google.com>
26801
26802         * godump.c (go_output_var): Don't output the variable if there is
26803         already a type with the same name.
26804
26805 2011-01-11  Ian Lance Taylor  <iant@google.com>
26806
26807         * godump.c (go_format_type): Don't generate float80.
26808
26809 2011-01-11  Richard Henderson  <rth@redhat.com>
26810
26811         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
26812         declaration.  Rewrite for both speed and size.
26813         (mn10300_address_cost_1): Remove.
26814         (mn10300_register_move_cost): New.
26815         (mn10300_memory_move_cost): New.
26816         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
26817         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
26818         extensions, shifts, BSWAP, CLZ.
26819         (mn10300_wide_const_load_uses_clr): Remove.
26820         (TARGET_REGISTER_MOVE_COST): New.
26821         (TARGET_MEMORY_MOVE_COST): New.
26822         * config/mn10300/mn10300-protos.h: Update.
26823         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
26824
26825         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
26826         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
26827         * config/mn10300/mn10300-protos.h: Update.
26828         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
26829         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
26830         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
26831         (*test_int_bitfield, *test_byte_bitfield): Remove.
26832         (*bit_test, *subreg_bit_test): Remove.
26833         * config/mn10300/predicates.md (const_8bit_operand): Remove.
26834
26835         * config/mn10300/constraints.md ("c"): Rename from "A".
26836         ("A", "D"): New constraint letters.
26837         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
26838         (fmssf4, fnmasf4, fnmssf4): Likewise.
26839
26840         * config/mn10300/mn10300.md (isa): New attribute.
26841         (enabled): New attribute.
26842
26843         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
26844         (abssf2, negsf2): Define only for hardware fp.
26845         (sqrtsf2): Reformat.
26846         (addsf3, subsf3, mulsf3): Merge expander and insn.
26847
26848         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
26849         (DEBUGGER_AUTO_OFFSET): Remove.
26850         (DEBUGGER_ARG_OFFSET): Remove.
26851
26852         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
26853         Emit register stores with the same offsets as the hardware.
26854         (mn10300_store_multiple_operation): Don't check that the register
26855         save offsets are monotonic.
26856         * config/mn10300/mn10300-protos.h: Update.
26857
26858         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
26859
26860         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
26861         in terms of the value on the stack, not the MDR register.
26862
26863 2011-01-11  Jan Hubicka  <jh@suse.cz>
26864
26865         PR lto/45721
26866         PR lto/45375
26867         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
26868         (symbol_alias_set_destroy, symbol_alias_set_contains,
26869         propagate_aliases_backward): Declare.
26870         * lto-streamer-out.c (struct sets): New sturcture.
26871         (trivally_defined_alias): New function.
26872         (output_alias_pair_p): Rewrite.
26873         (output_unreferenced_globals): Fix output of alias pairs.
26874         (produce_symtab): Likewise.
26875         * ipa.c (function_and_variable_visibility): Set weak alias destination
26876         as needed in lto.
26877         * varasm.c (symbol_alias_set_t): Remove.
26878         (symbol_alias_set_destroy): Export.
26879         (propagate_aliases_forward, propagate_aliases_backward): New functions
26880         based on ...
26881         (compute_visible_aliases): ... this one; remove.
26882         (trivially_visible_alias): New
26883         (trivially_defined_alias): New.
26884         (remove_unreachable_alias_pairs): Rewrite.
26885         (finish_aliases_1): Reorganize code checking if alias is defined.
26886         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
26887         in LTO mode.
26888
26889 2011-01-11  Richard Guenther  <rguenther@suse.de>
26890
26891         PR tree-optimization/46076
26892         * tree-ssa.c (useless_type_conversion_p): Conversions from
26893         unprototyped to empty argument list function types are useless.
26894
26895 2011-01-11  Richard Guenther  <rguenther@suse.de>
26896
26897         PR middle-end/45235
26898         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
26899         volatile MEMs as MEM_READONLY_P.
26900
26901 2011-01-11  Richard Guenther  <rguenther@suse.de>
26902
26903         PR tree-optimization/47239
26904         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
26905
26906 2011-01-11  Jeff Law  <law@redhat.com>
26907
26908         PR tree-optimization/47086
26909         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
26910         IVs from statements that might throw.
26911
26912 2011-01-10  Jan Hubicka  <jh@suse.cz>
26913
26914         PR lto/45375
26915         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
26916
26917 2011-01-10  Jan Hubicka  <jh@suse.cz>
26918
26919         PR lto/45375
26920         * profile.c (read_profile_edge_counts): Ignore profile inconistency
26921         when correcting profile.
26922
26923 2011-01-10  Jan Hubicka  <jh@suse.cz>
26924
26925         PR lto/46083
26926         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
26927         DECL_FINI_PRIORITY.
26928         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
26929         Restore DECL_FINI_PRIORITY.
26930
26931 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26932
26933         * doc/gimple.texi: Fix quoting of multi-word return values in
26934         @deftypefn statements.  Ensure presence of return value.  Wrap
26935         overlong @deftypefn lines.
26936         (is_gimple_operand, is_gimple_min_invariant_address): Remove
26937         descriptions of removed functions.
26938         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
26939         of multi-word return value in @deftypefn statement.
26940
26941 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26942
26943         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
26944         (Conditional Expressions, Logical Operators)
26945         (Statement and operand traversals): Do not indent smallexample
26946         code.  Fix duplicate function argument in example.
26947
26948 2011-01-10  Jeff Law  <law@redhat.com>
26949
26950         PR tree-optimization/47141
26951         * ipa-split.c (split_function): Handle case where we are
26952         returning a value and the return block has a virtual operand phi.
26953
26954 2011-01-10  Jan Hubicka  <jh@suse.cz>
26955
26956         PR tree-optimization/47234
26957         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
26958         (pass_feedback_split_functions): Declare.
26959         * passes.c (init_optimization_passes): Add ipa-split as subpass of
26960         tree-profile.
26961         * ipa-split.c (gate_split_functions): Update comments; disable
26962         split-functions for profile_arc_flag and branch_probabilities.
26963         (gate_feedback_split_functions): New function.
26964         (execute_feedback_split_functions): New function.
26965         (pass_feedback_split_functions): New global var.
26966
26967 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
26968
26969         PR lto/46760
26970         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
26971         calling gimple_call_set_cannot_inline.
26972
26973 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
26974
26975         * config/darwin-sections.def: Remove unused section.
26976
26977 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
26978
26979         PR c++/47218
26980         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
26981
26982 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
26983
26984         PR objc/47232
26985         * c-parser.c (c_parser_declaration_or_fndef): Improved
26986         error message.
26987
26988 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
26989
26990         * config/i386/winnt.c (i386_pe_start_function): Make sure
26991         to switch back to function's section.
26992
26993 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
26994
26995         PR gcc/46902
26996         PR testsuite/46912
26997         * plugin.c: Move include of dlfcn.h from here...
26998         * system.h: ... to here.
26999
27000 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27001
27002         * doc/cpp.texi (C++ Named Operators): Fix markup for header
27003         file name.
27004         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
27005         two extra empty pages in PDF output.
27006
27007 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
27008
27009         PR objc/47078
27010         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
27011         for error recovery purposes behave as if it was not specified so
27012         that the default type is usd.
27013
27014 2011-01-07  Jan Hubicka  <jh@suse.cz>
27015
27016         PR tree-optmization/46469
27017         * ipa.c (function_and_variable_visibility): Clear needed flags on
27018         nodes with external decls; handle weakrefs merging correctly.
27019
27020 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
27021
27022         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
27023         not false.
27024
27025 2011-01-07  Jan Hubicka  <jh@suse.cz>
27026
27027         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
27028         and no longer claim that gold is required for linker plugin.
27029         * configure: Regenerate.
27030         * gcc.c (PLUGIN_COND): New macro.
27031         (LINK_COMMAND_SPEC): Use it.
27032         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
27033         * config.in (HAVE_LTO_PLUGIN): New.
27034         * configure.ac (--with-lto-plugin): New parameter; autodetect
27035         HAVE_LTO_PLUGIN.
27036
27037 2011-01-07  Jan Hubicka  <jh@suse.cz>
27038
27039         PR tree-optimization/46367
27040         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
27041         when we can update original.
27042         (cgraph_mark_inline_edge): Sanity check.
27043         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
27044
27045 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27046
27047         * config/spu/spu.h (ASM_COMMENT_START): Define.
27048
27049 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
27050
27051         PR driver/42445
27052         * gcc.c (%>S): New.
27053         (SWITCH_KEEP_FOR_GCC): Likewise.
27054         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
27055         (do_spec_1): Handle "%>".
27056
27057         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
27058
27059 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
27060
27061         PR target/47201
27062         * config/i386/i386.c (ix86_delegitimize_address): If
27063         simplify_gen_subreg fails, return orig_x.
27064
27065         PR bootstrap/47187
27066         * value-prof.c (gimple_stringop_fixed_value): Handle
27067         lhs of the call properly.
27068
27069 2011-01-07  Jan Hubicka  <jh@suse.cz>
27070
27071         PR lto/45375
27072         * lto-opt.c (lto_reissue_options): Set flag_shlib.
27073
27074 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
27075
27076         * target.def (function_switched_text_sections): New hook.
27077         * doc/tm.texi: Regenerated.
27078         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
27079         * final.c (default_function_switched_text_sections): New.
27080         (final_scan_insn): Call function_switched_text_sections when a
27081         mid-function section change occurs.
27082         * output.h (default_function_switched_text_sections): Declare.
27083         * config/darwin-protos.h (darwin_function_switched_text_sections):
27084         Likewise.
27085         * config/darwin.c (darwin_function_switched_text_sections): New.
27086         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
27087
27088 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
27089
27090         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
27091         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
27092         the secondary code fragment when outputting for DWARF == 2.
27093
27094 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
27095
27096         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
27097         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
27098         Remove.
27099         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
27100         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
27101
27102 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
27103
27104         PR debug/46704
27105         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
27106         when it is not empty.
27107
27108 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
27109
27110         Bobcat Enablement
27111         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
27112         (case ${target}): Add btver1.
27113         * config/i386/driver-i386.c (host_detect_local_cpu): Let
27114         -march=native recognize btver1 processors.
27115         * config/i386/i386-c.c (ix86_target_macros_internal): Add
27116         btver1 def_and_undef
27117         * config/i386/i386.c (struct processor_costs btver1_cost): New
27118         btver1 cost table.
27119         (m_BTVER1): New definition.
27120         (m_AMD_MULTIPLE): Includes m_BTVER1.
27121         (initial_ix86_tune_features): Add btver1 tune.
27122         (processor_target_table): Add btver1 entry.
27123         (static const char *const cpu_names): Add btver1 entry.
27124         (software_prefetching_beneficial_p): Add btver1.
27125         (ix86_option_override_internal): Add btver1 instruction sets.
27126         (ix86_issue_rate): Add btver1.
27127         (ix86_adjust_cost): Add btver1.
27128         * config/i386/i386.h (TARGET_BTVER1): New definition.
27129         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
27130         (enum processor_type): Add PROCESSOR_BTVER1.
27131         * config/i386/i386.md (define_attr "cpu"): Add btver1.
27132
27133 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27134
27135         PR target/43309
27136         * config/i386/i386.c (legitimize_tls_address)
27137         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
27138         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
27139         (tls_initial_exec_64_sun): New pattern.
27140
27141 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
27142
27143         * doc/invoke.texi (Overall Options): Improve wording and markup
27144         of the description of -wrapper.
27145
27146 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
27147
27148         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
27149         rdynamic, threads): New Driver options.
27150
27151 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27152
27153         PR target/38118
27154         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
27155         if coming from .tdata.
27156         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
27157
27158 2011-01-06  Jan Hubicka  <jh@suse.cz>
27159
27160         PR lto/47188
27161         * collect2.c (main): Do not enable LTOmode when plugin is active.
27162
27163 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27164
27165         PR other/45915
27166         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
27167         --version output if supported.
27168         * configure: Regenerate.
27169
27170 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
27171
27172         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
27173         Driver options.
27174
27175 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
27176
27177         PR c/47150
27178         * c-convert.c (convert): When converting a complex expression
27179         other than COMPLEX_EXPR to a different complex type, ensure
27180         c_save_expr is called instead of save_expr, unless in_late_binary_op.
27181         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
27182         when converting COMPLEX_TYPE.
27183
27184 2011-01-06  Ira Rosen  <irar@il.ibm.com>
27185
27186         PR tree-optimization/47139
27187         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
27188         only the last reduction value is used outside the loop.  Update
27189         documentation.
27190
27191 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
27192
27193         * config/rtems.opt: New.
27194         * config.gcc (*-*-rtems*): Use rtems.opt.
27195
27196 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
27197
27198         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
27199         processors do not support 3DNow instructions.
27200
27201 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27202
27203         * config/spu/spu.c (spu_option_override): Set parameter
27204         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
27205
27206 2011-01-05  Jan Hubicka  <jh@suse.cz>
27207
27208         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
27209         at the command line.
27210
27211 2011-01-05  Martin Jambor  <mjambor@suse.cz>
27212
27213         PR lto/47162
27214         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
27215         deltas on streamed outgoing edges.
27216         (output_node_opt_summary): Output info for outgoing edges only when
27217         the node is in new parameter set.
27218         (output_cgraph_opt_summary): New parameter set, passed to the two
27219         aforementioned functions.  Update its forward declaration and its
27220         callee too.
27221
27222 2011-01-05  Tom Tromey  <tromey@redhat.com>
27223
27224         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
27225         operator to c_finish_omp_atomic.
27226         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
27227         (build_unary_op): Update.
27228         (build_modify_expr): Update.
27229         (build_asm_expr): Update.
27230
27231 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27232
27233         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
27234         newly inserted insns.
27235         (pad_bb): Likewise.
27236         (spu_emit_branch_hint): Likewise.
27237         (insert_hbrp_for_ilb_runout): Likewise.
27238         (spu_machine_dependent_reorg): Call df_finish_pass after
27239         schedule_insns returns.
27240
27241 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27242
27243         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
27244
27245 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
27246
27247         PR tree-optimization/47005
27248         * tree-sra.c (struct access): Add 'non_addressable' bit.
27249         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
27250         (decide_one_param_reduction): Return 0 if the parameter is passed by
27251         reference and one of the accesses in the group is non_addressable.
27252
27253 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
27254
27255         PR tree-optimization/47056
27256         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
27257         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
27258         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
27259
27260 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
27261
27262         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
27263         initializer.  Skip view conversions from aggregate types.
27264
27265 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
27266
27267         PR bootstrap/47055
27268         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
27269
27270 2011-01-04  Philipp Thomas  <pth@suse.de>
27271
27272         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
27273         obvious typo.
27274
27275 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27276
27277         * function.c (thread_prologue_and_epilogue_insns): Do not crash
27278         on empty epilogue sequences.
27279
27280 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
27281
27282         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
27283         non-static): New Driver options.
27284
27285 2011-01-04  Jie Zhang  <jie@codesourcery.com>
27286
27287         PR driver/47137
27288         * gcc.c (default_compilers[]): Set combinable field to 0
27289         for all assembly languages.
27290
27291 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
27292
27293         * config/mips/loongson3a.md: New file.
27294         * config/mips/mips.md: Include loongson3a.md.
27295         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
27296         TUNE_LOONGSON_3A.
27297
27298 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
27299
27300         PR middle-end/47017
27301         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
27302         instead of convert_memory_address_addr_space on the base expression.
27303
27304 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27305
27306         * config/spu/spu.c (spu_option_override): Update error text
27307         for bad -march= / -mtune= values.
27308
27309 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27310
27311         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
27312         if branch-hint optimization will be performed.
27313
27314 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
27315
27316         PR tree-optimization/47148
27317         * ipa-split.c (split_function): Convert arguments to
27318         DECL_ARG_TYPE if possible.
27319
27320         PR tree-optimization/47155
27321         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
27322         when computing uns.
27323
27324         PR rtl-optimization/47157
27325         * combine.c (try_combine): If undobuf.other_insn becomes
27326         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
27327         and set *new_direct_jump_p too.
27328
27329 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
27330
27331         PR tree-optimization/47021
27332         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
27333
27334 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
27335
27336         * gcc.c (process_command): Update copyright notice dates.
27337         * gcov.c (print_version): Likewise.
27338         * gcov-dump.c (print_version): Likewise.
27339         * mips-tfile.c (main): Likewise.
27340         * mips-tdump.c (main): Likewise.
27341
27342 2011-01-03  Martin Jambor  <mjambor@suse.cz>
27343
27344         PR tree-optimization/46801
27345         * tree-sra.c (type_internals_preclude_sra_p): Check whether
27346         aggregate fields start at byte boundary instead of the bit-field flag.
27347
27348 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
27349
27350         PR driver/47137
27351         * gcc.c (main): Revert revision 168407.
27352
27353 2011-01-03  Martin Jambor  <mjambor@suse.cz>
27354
27355         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
27356
27357 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27358
27359         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
27360         vector optab to expand vector/scalar shift, update gimple to vector.
27361
27362 2011-01-03  Martin Jambor  <mjambor@suse.cz>
27363
27364         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
27365         a thunk.
27366
27367 2011-01-03  Martin Jambor  <mjambor@suse.cz>
27368
27369         PR tree-optimization/46984
27370         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
27371         HOST_WIDE_INT.
27372         (cgraph_create_indirect_edge): Fixed line length.
27373         (cgraph_indirect_call_info): Declare.
27374         (cgraph_make_edge_direct) Update declaration.
27375         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
27376         (cgraph_create_indirect_edge): Use it.
27377         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
27378         callees.
27379         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
27380         the new thunk_delta representation.
27381         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
27382         HOST_WIDE_INT.
27383         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
27384         (ipa_read_indirect_edge_info): Likewise.
27385         * lto-cgraph.c (output_edge_opt_summary): New function.
27386         (output_node_opt_summary): Call it on all outgoing edges.
27387         (input_edge_opt_summary): New function.
27388         (input_node_opt_summary): Call it on all outgoing edges.
27389
27390 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
27391
27392         PR driver/47137
27393         * gcc.c (main): Don't check have_o when settting combine_inputs.
27394
27395 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
27396
27397         * regrename.c: Add general comment describing the pass.
27398         (struct du_head): Remove 'length' field.
27399         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
27400         (regrename_optimize): Do not sort chains.  Rework comments, add others.
27401         Force renaming to the preferred class (if any) in the first pass and do
27402         not consider registers that belong to it in the second pass.
27403         (create_new_chain): Do not set 'length' field.
27404         (scan_rtx_reg): Likewise.
27405
27406 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
27407
27408         PR tree-optimization/47140
27409         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
27410         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
27411         to bit_value_binop.
27412
27413         PR rtl-optimization/47028
27414         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
27415         parm_birth_insn instead of at the beginning of first bb.
27416
27417 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
27418
27419         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
27420         Remove the word "see" before "@pxref".
27421         * doc/rtl.texi: Remove the word "see" before "@pxref".
27422
27423 2011-01-01  Jan Hubicka  <jh@suse.cz>
27424
27425         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
27426         memory.
27427
27428 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
27429
27430         PR target/38662
27431         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
27432
27433 \f
27434 Copyright (C) 2011 Free Software Foundation, Inc.
27435
27436 Copying and distribution of this file, with or without modification,
27437 are permitted in any medium without royalty provided the copyright
27438 notice and this notice are preserved.