OSDN Git Service

5ec343af7ed5815ddced63ace3492c95882acee4
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-10-20  Dodji Seketeli  <dodji@redhat.com>
2
3         PR other/50659
4         * doc/cppopts.texi: Use @smallexample/@end smallexample in
5         documentation for -fdebug-cpp instead of @quotation/@end quotation
6         that is not supported by contrib/texi2pod.pl.
7
8 2011-10-19  Jan Hubicka  <jh@suse.cz>
9
10         * ipa-inline.c (inline_small_functions): Always update all calles after
11         inlining.
12
13 2011-10-19  Jan Hubicka  <jh@suse.cz>
14
15         PR bootstrap/50709
16         * ipa-inline.c (inline_small_functions): Fix checking code to not make
17         effect on fibheap stability.
18
19 2011-10-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
20
21         * config/m68k/t-linux (M68K_MLIB_CPU): Add ColdFire CPUs.
22
23 2011-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
24
25        PR target/50106
26        * config/arm/arm.c (thumb_unexpanded_epilogue): Handle return
27         reg size from 1-3.
28
29 2011-10-20  Richard Guenther  <rguenther@suse.de>
30
31         * tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR
32         and rotates to the set of expensive operations.
33
34 2011-10-19  David S. Miller  <davem@davemloft.net>
35
36         * config/sparc/sparc.c (sparc_expand_move): Use
37         can_create_pseudo_p.
38         (sparc_emit_set_const32): Likewise.
39         (sparc_emit_set_const64_longway): Likewise.
40         (sparc_emit_set_const64): Likewise.
41         (sparc_legitimize_pic_address): Likewise.
42         (memory_ok_for_ldd): Likewise.
43
44 2011-10-20  Dehao Chen  <dehao@google.com>
45
46         * profile.c (compute_branch_probabilities): Compute and dump the
47         overlap between the static estimation and the instrumentation profile.
48         (OVERLAP_BASE): New macro.
49         (compute_frequency_overlap): New function
50
51 2011-10-19  Jakub Jelinek  <jakub@redhat.com>
52
53         * config/i386/i386.c (expand_vec_perm_vpshufb2_vpermq_even_odd): Use
54         d->op1 instead of d->op0 for the second vpshufb.
55         (expand_vec_perm_even_odd_1): For V8SImode fix vpshufd immediates.
56         (ix86_expand_vec_perm_const): If mask indicates two operands are
57         needed, but both are the same and expanding them as d.op0 == d.op1
58         failed, retry with d.op0 != d.op1.
59         (ix86_expand_vec_perm_builtin): Likewise.  Handle sorry printing
60         also for d.nelt == 32.
61
62         PR middle-end/50754
63         * cfgexpand.c (expand_debug_expr): Handle WIDEN_LSHIFT_EXPR, ignore
64         VEC_PERM_EXPR.
65
66 2011-10-19  Bernd Schmidt  <bernds@codesourcery.com>
67
68         * regrename.h: New file.
69         * regrename.c: Include it.  Also include "emit-rtl.h".
70         (struct du_head, struct du_chain, du_head_p DEF_VEC and
71         DEF_VEC_ALLOC_P): Move to regrename.h.
72         (do_replace): Remove declaration.
73         (insn_rr): New variable.
74         (cur_operand): New static variable.
75         (regrename_chain_from_id): Renamed from chain_from_id and no longer
76         static.  All callers changed.
77         (record_operand_use): New static function.
78         (scan_rtx_reg): Use it.
79         (find_best_rename_reg): New function, broken out of rename_chains.
80         (rename_chains): Use it.  Don't update chain regno and nregs here, ...
81         (regrename_do_replace): ... do it here instead.  Renamed from
82         do_replace, and no longer static.  All callers changed.
83         (regrename_analyze): No longer static.  New arg bb_mask.
84         All callers changed.  If bb_mask is nonzero, use it to limit the
85         number of basic blocks we analyze.  If we failed to analyze a block,
86         clear insn operand data.
87         (record_out_operands): New arg insn_info.  Update cur_operand if it is
88         nonnull.
89         (build_def_use): If insn_rr is nonnull, pass an insn_info to
90         record_out_operands, and update cur_operand here as well.
91         (regrename_init, regrename_finish): New functions.
92         (regrename_optimize): Use them.
93         * Makefile.in (regrename.o): Adjust dependencies.
94
95 2011-10-19  Tom de Vries  <tom@codesourcery.com>
96
97         PR tree-optimization/50769
98         * tree-ssa-tail-merge.c (replace_block_by): Calculate phi_vuse2
99         unconditionally.  Handle case that phi_vuse2 is not an SSA_NAME.  Add
100         dummy argument .MEM to phi when increasing number of arguments of phi by
101         redirecting edges to the block with phi.
102
103 2011-10-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
104
105         PR bootstrap/50777
106         * configure.ac: Save and restore CXXFLAGS around
107         gcc_AC_CHECK_DECLS uses.
108         Check for madvise() declaration with g++ if --enable-build-with-cxx.
109         * configure: Regenerate.
110         * config.in: Regenerate.
111         * ggc-page.c (USING_MADVISE): Also check HAVE_DECL_MADVISE.
112
113 2011-10-19  Alexandre Oliva  <aoliva@redhat.com>
114
115         PR debug/49310
116         * var-tracking.c (loc_exp_dep, onepart_aux): New structs.
117         (variable_part): Replace offset with union.
118         (enum onepart_enum, onepart_enum_t): New.
119         (variable_def): Drop cur_loc_changed, add onepart.
120         (value_chain_def, const_value_chain): Remove.
121         (VAR_PART_OFFSET, VAR_LOC_1PAUX): New macros, with checking.
122         (VAR_LOC_DEP_LST, VAR_LOC_DEP_LSTP): New macros.
123         (VAR_LOC_FROM, VAR_LOC_DEPTH, VAR_LOC_DEP_VEC): Likewise.
124         (value_chain_pool, value_chains): Remove.
125         (dropped_values): New.
126         (struct parm_reg): Only if HAVE_window_save.
127         (vt_stack_adjustments): Don't record register arguments.
128         (dv_as_rtx): New.
129         (dv_onepart_p): Return a onepart_enum_t.
130         (onepart_pool): New.
131         (dv_pool): Remove.
132         (dv_from_rtx): New.
133         (variable_htab_free): Release onepart aux data.  Reset flags.
134         (value_chain_htab_hash, value_chain_htab_eq): Remove.
135         (unshare_variable): Use onepart field.  Propagate onepart aux
136         data or offset.  Drop cur_loc_changed.
137         (val_store): Cope with NULL insn.  Rephrase dump output.  Check
138         for unsuitable locs.  Add FIXME on using cselib locs.
139         (val_reset): Remove FIXME of unfounded concerns.
140         (val_resolve): Check for unsuitable locs.  Add FIXME on using
141         cselib locs.
142         (variable_union): Use onepart field, adjust access to offset.
143         (NO_LOC_P): New.
144         (VALUE_CHANGED, DECL_CHANGED): Update doc.
145         (set_dv_changed): Clear NO_LOC_P when changed.
146         (find_loc_in_1pdv): Use onepart field.
147         (intersect_loc_chains): Likewise.
148         (unsuitable_loc): New.
149         (loc_cmp): Keep ENTRY_VALUEs at the end of the loc list.
150         (add_value_chain, add_value_chains): Remove.
151         (add_cselib_value_chains, remove_value_chain): Likewise.
152         (remove_value_chains, remove_cselib_value_chains): Likewise.
153         (canonicalize_loc_order_check): Use onepart.  Drop cur_loc_changed.
154         (canonicalize_values_star, canonicalize_vars_star): Use onepart.
155         (variable_merge_over_cur): Likewise.  Adjust access to offset.
156         Drop cur_loc_changed.
157         (variable_merge_over_src): Use onepart field.
158         (remove_duplicate_values): Likewise.
159         (variable_post_merge_new_vals): Likewise.
160         (find_mem_expr_in_1pdv): Likewise.
161         (dataflow_set_preserve_mem_locs): Likewise.  Drop cur_loc_changed
162         and value chains.
163         (dataflow_set_remove_mem_locs): Likewise.  Use VAR_LOC_FROM.
164         (variable_different_p): Use onepart field.  Move onepart test out
165         of the loop.
166         (argument_reg_set): Drop.
167         (add_uses, add_stores): Preserve but do not record in dynamic
168         tables equivalences for ENTRY_VALUEs and CFA_based addresses.
169         Avoid unsuitable address expressions.
170         (EXPR_DEPTH): Unlimit.
171         (EXPR_USE_DEPTH): Repurpose PARAM_MAX_VARTRACK_EXPR_DEPTH.
172         (prepare_call_arguments): Use DECL_RTL_IF_SET.
173         (dump_var): Adjust access to offset.
174         (variable_from_dropped, recover_dropped_1paux): New.
175         (variable_was_changed): Drop cur_loc_changed.  Use onepart.
176         Preserve onepart aux in empty_var.  Recover empty_var and onepart
177         aux from dropped_values.
178         (find_variable_location_part): Special-case onepart.  Adjust
179         access to offset.
180         (set_slot_part): Use onepart.  Drop cur_loc_changed.  Adjust
181         access to offset.  Initialize onepaux.  Drop value chains.
182         (delete_slot_part): Drop value chains.  Use VAR_LOC_FROM.
183         (VEC (variable, heap), VEC (rtx, stack)): Define.
184         (expand_loc_callback_data): Drop dummy, cur_loc_changed,
185         ignore_cur_loc.  Add expanding, pending, depth.
186         (loc_exp_dep_alloc, loc_exp_dep_clear): New.
187         (loc_exp_dep_insert, loc_exp_dep_set): New.
188         (notify_dependents_of_resolved_value): New.
189         (update_depth, vt_expand_var_loc_chain): New.
190         (vt_expand_loc_callback): Revamped.
191         (resolve_expansions_pending_recursion): New.
192         (INIT_ELCD, FINI_ELCD): New.
193         (vt_expand_loc): Use the new macros above.  Drop ignore_cur_loc
194         parameter, adjust all callers.
195         (vt_expand_loc_dummy): Drop.
196         (vt_expand_1pvar): New.
197         (emit_note_insn_var_location): Operate on non-debug decls only.
198         Revamp multi-part cur_loc recomputation and one-part expansion.
199         Drop cur_loc_changed.  Adjust access to offset.
200         (VEC (variable, heap)): Drop.
201         (changed_variables_stack, changed_values_stack): Drop.
202         (check_changed_vars_0, check_changed_vars_1): Remove.
203         (check_changed_vars_2, check_changed_vars_3): Remove.
204         (values_to_stack, remove_value_from_changed_variables): New.
205         (notify_dependents_of_changed_value, process_changed_values): New.
206         (emit_notes_for_changes): Revamp onepart updates.
207         (emit_notes_for_differences_1): Use onepart.  Drop cur_loc_changed
208         and value chains.  Propagate onepaux.  Recover empty_var and onepaux
209         from dropped_values.
210         (emit_notes_for_differences_2): Drop value chains.
211         (emit_notes_in_bb): Adjust.
212         (vt_emit_notes): Drop value chains, changed_variables_stack.
213         Initialize and release dropped_values.
214         (create_entry_value): Revamp.
215         (vt_add_function_parameter): Use new interface.
216         (note_register_arguments): Remove.
217         (vt_initialize): Drop value chains and register arguments.
218         (vt_finalize): Drop value chains.  Release windowed_parm_regs only
219         if HAVE_window_save.
220         * rtl.h: Document various pass-local uses of RTL flags.
221         * tree.h (DECL_RTL_KNOWN_SET): New.
222         * doc/invoke.texi (param max-vartrack-expr-depth): Update
223         description and default.
224
225 2011-10-19  Georg-Johann Lay  <avr@gjlay.de>
226
227         PR target/50447
228         * config/avr/avr.md (cc): New alternative out_plus_noclobber.
229         (adjust_len): Ditto.
230         (addhi3): Don't pipe through short; use gen_int_mode instead.
231         Prior to reload, expand to gen_addhi3_clobber.
232         (*addhi3): Use avr_out_plus_noclobber if applicable, use
233         out_plus_noclobber in cc and adjust_len attribute.
234         (addhi3_clobber): 2 new RTL peepholes.
235         (addhi3_clobber): New insn.
236         * config/avr/avr-protos.h: (avr_out_plus_noclobber): New prototype.
237         * config/avr/avr.c (avr_out_plus_noclobber): New function.
238         (notice_update_cc): Handle CC_OUT_PLUS_NOCLOBBER.
239         (avr_out_plus_1): Tweak if only MSB is +/-1 and other bytes are 0.
240         Set cc0 to set_zn for adiw on 16-bit values.
241         (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS_NOCLOBBER.
242         (expand_epilogue): No need to add 0 to frame_pointer_rtx.
243
244 2011-10-19  Richard Guenther  <rguenther@suse.de>
245
246         PR middle-end/50780
247         * tree-ssa-forwprop.c (forward_propagate_into_cond): Verify
248         the condition is properly gimple before using it.
249         * tree-eh (stmt_could_throw_1_p): Properly extract the
250         operation type from comparisons.
251
252 2011-10-19  Roland Stigge  <stigge@antcom.de>
253
254         PR translation/48638
255         * plugin.c (add_new_plugin): Fix typo in fatal_error message.
256
257 2011-10-19  Roland Stigge  <stigge@antcom.de>
258
259         PR translation/49517
260         * config/rx/rx.c (rx_print_operand): Fix typo in warning message.
261
262 2011-10-19  Richard Guenther  <rguenther@suse.de>
263
264         PR middle-end/50768
265         * gimple-fold.c (gimplify_and_update_call_from_tree): Rewrite.
266
267 2011-10-19  Andrey Belevantsev  <abel@ispras.ru>
268
269         PR rtl-optimization/50340
270         * sel-sched-ir.c (update_target_availability): LHS register
271         availability is not known if the unavailable LHS of the other
272         expression is a different register.
273
274 2011-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
275
276         PR target/50310
277         * config/spu/spu.c (spu_emit_vector_compare): Support unordered
278         floating-point comparisons.
279
280 2011-10-19  Jan Hubicka  <jh@suse.cz>
281
282         * cgraphunit.c (handle_alias_pairs): Also handle wekref with destination
283         declared.
284         (output_weakrefs): New function.
285         * varpool.c (varpool_create_variable_alias): Handle external aliases.
286
287 2011-10-19  Jakub Jelinek  <jakub@redhat.com>
288
289         * dwarf2out.c (loc_descriptor): For SUBREG pass SUBREG_REG's mode as
290         second argument instead of mode.
291
292 2011-10-18  Jakub Jelinek  <jakub@redhat.com>
293
294         * config/i386/i386.c (ix86_expand_vec_perm): In merge_two use
295         mode SUBREG of operands[0] as target.
296         (valid_perm_using_mode_p): Don't ignore higher bits of d->perm.
297         (expand_vec_pshufb): For V8SImode vmode emit avx2_permvarv8si.
298         (expand_vec_perm_1): Handle identity and some broadcast
299         permutations.
300         (expand_vec_perm_interleave2): Handle also 32-byte modes, using
301         vperm2[fi]128 or vpunpck[lh]* followed by single insn permutation.
302         For d->testing_p return true earlier to avoid creating more GC
303         garbage.
304         (expand_vec_perm_vpermq_perm_1): New function.
305         (expand_vec_perm_vpshufb2_vpermq): For d->testing_p return true
306         earlier to avoid creating more GC garbage.  Fix handling of
307         V16HImode.  Avoid some SUBREGs in SET_DEST.
308         (expand_vec_perm_broadcast_1): Return false for 32-byte integer
309         vector modes.
310         (expand_vec_perm_vpshufb4_vpermq2): New function.
311         (ix86_expand_vec_perm_builtin_1): Call expand_vec_perm_vpermq_perm_1
312         and expand_vec_perm_vpshufb4_vpermq2.
313
314 2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
315
316         * config/arm/driver-arm.c (host_detect_local_cpu): Close the file
317         before exiting.
318
319 2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
320
321         PR tree-optimization/50717
322
323         * tree-ssa-math-opts.c (is_widening_mult_p): Remove the 'type'
324         parameter.  Calculate 'type' from stmt.
325         (convert_mult_to_widen): Update call the is_widening_mult_p.
326         (convert_plusminus_to_widen): Likewise.
327
328 2011-10-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
329
330         * config/spu/spu.c (struct machine_function): New data structure.
331         (spu_init_machine_status): New function.
332         (spu_option_override): Install it.
333         (get_pic_reg): Set and use cfun->machine->pic_reg.
334         (spu_split_immediate): Do not set crtl->uses_pic_offset_table.
335         (need_to_save_reg): Use cfun->machine->pic_reg instead of
336         checking crtl->uses_pic_offset_table.
337         (spu_expand_prologue): Likewise.
338
339 2011-10-18  Jakub Jelinek  <jakub@redhat.com>
340
341         PR tree-optimization/50735
342         * function.c (gimplify_parameters): Use create_tmp_var instead of
343         create_tmp_reg.  If parm is not TREE_ADDRESSABLE and type is complex
344         or vector type, set DECL_GIMPLE_REG_P.
345
346 2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
347
348         * config.host (arm*-*-linux*): Add driver-arm.o and x-arm.
349         * config/arm/arm.opt: Add 'native' processor_type and
350         arm_arch enum values.
351         * config/arm/arm.h (host_detect_local_cpu): New prototype.
352         (EXTRA_SPEC_FUNCTIONS): New define.
353         (MCPU_MTUNE_NATIVE_SPECS): New define.
354         (DRIVER_SELF_SPECS): New define.
355         * config/arm/driver-arm.c: New file.
356         * config/arm/x-arm: New file.
357         * doc/invoke.texi (ARM Options): Document -mcpu=native,
358         -mtune=native and -march=native.
359
360 2011-10-18  Alexander Monakov  <amonakov@ispras.ru>
361
362         PR rtl-optimization/50205
363         * sel-sched.c (count_occurrences_1): Simplify on the assumption that
364         p->x is a register.  Forbid substitution when the same register is
365         found in a different mode.
366         (count_occurrences_equiv): Assert that 'what' is a register.
367
368 2011-10-18  Richard Guenther  <rguenther@suse.de>
369
370         PR tree-optimization/50767
371         * tree-ssa-pre.c (create_expression_by_pieces): Update the
372         folded statement.
373
374 2011-10-18  Julian Brown  <julian@codesourcery.com>
375
376         * config/arm/arm.c (arm_block_move_unaligned_straight)
377         (arm_adjust_block_mem, arm_block_move_unaligned_loop)
378         (arm_movmemqi_unaligned): New.
379         (arm_gen_movmemqi): Support unaligned block copies.
380
381 2011-10-18  Ira Rosen  <ira.rosen@linaro.org>
382
383         * doc/md.texi (vec_widen_ushiftl_hi, vec_widen_ushiftl_lo,
384         vec_widen_sshiftl_hi, vec_widen_sshiftl_lo): Document.
385         * tree-pretty-print.c (dump_generic_node): Handle WIDEN_LSHIFT_EXPR,
386         VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
387         (op_code_prio): Likewise.
388         (op_symbol_code): Handle WIDEN_LSHIFT_EXPR.
389         * optabs.c (optab_for_tree_code): Handle
390         VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
391         (init-optabs): Initialize optab codes for vec_widen_u/sshiftl_hi/lo.
392         * optabs.h (enum optab_index): Add OTI_vec_widen_u/sshiftl_hi/lo.
393         * genopinit.c (optabs): Initialize the new optabs.
394         * expr.c (expand_expr_real_2): Handle
395         VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
396         * gimple-pretty-print.c (dump_binary_rhs): Likewise.
397         * tree-vectorizer.h (NUM_PATTERNS): Increase to 8.
398         * tree.def (WIDEN_LSHIFT_EXPR, VEC_WIDEN_LSHIFT_HI_EXPR,
399         VEC_WIDEN_LSHIFT_LO_EXPR): New.
400         * cfgexpand.c (expand_debug_expr): Handle new tree codes.
401         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
402         vect_recog_widen_shift_pattern.
403         (vect_handle_widen_mult_by_const): Rename...
404         (vect_handle_widen_op_by_const): ...to this.  Handle shifts.
405         Add a new argument, update documentation.
406         (vect_recog_widen_mult_pattern): Assume that only second
407         operand can be constant.  Update call to
408         vect_handle_widen_op_by_const.
409         (vect_recog_over_widening_pattern): Fix typo.
410         (vect_recog_widen_shift_pattern): New.
411         * tree-vect-stmts.c (vectorizable_type_promotion): Handle
412         widening shifts.
413         (supportable_widening_operation): Likewise.
414         * tree-inline.c (estimate_operator_cost): Handle new tree codes.
415         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
416         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
417         * config/arm/neon.md (neon_vec_<US>shiftl_<mode>): New.
418         (vec_widen_<US>shiftl_lo_<mode>, neon_vec_<US>shiftl_hi_<mode>,
419         vec_widen_<US>shiftl_hi_<mode>, neon_vec_<US>shift_left_<mode>):
420         Likewise.
421         * config/arm/predicates.md (const_neon_scalar_shift_amount_operand):
422         New.
423         * config/arm/iterators.md (V_innermode): New.
424         * tree-vect-slp.c (vect_build_slp_tree): Require same shift operand
425         for widening shift.
426
427 2011-10-18  Richard Guenther  <rguenther@suse.de>
428
429         * tree-ssa-alias.h (struct pt_solution): Remove
430         vars_contains_restrict member.
431         (pt_solutions_same_restrict_base): Remove.
432         (pt_solution_set): Adjust.
433         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Remove
434         vars_contains_restrict handling.
435         (dump_points_to_solution): Likewise.
436         (ptr_derefs_may_alias_p): Do not call pt_solutions_same_restrict_base.
437         * tree-ssa-structalias.c (struct variable_info): Remove is_restrict_var
438         field.
439         (new_var_info): Do not initialize it.
440         (ipa_escaped_pt): Adjust.
441         (make_constraint_from_restrict): Make the tag global.
442         (make_constraint_from_global_restrict): New function.
443         (make_constraint_from_heapvar): Remove.
444         (create_variable_info_for): Do not make restrict vars point
445         to NONLOCAL.
446         (intra_create_variable_infos): Likewise.
447         (find_what_var_points_to): Remove vars_contains_restrict handling.
448         (pt_solution_set): Adjust.
449         (pt_solution_ior_into): Likewise.
450         (pt_solutions_same_restrict_base): Remove.
451         (compute_points_to_sets): Do not test is_restrict_var.
452         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
453         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
454
455 2011-10-18  Tom de Vries  <tom@codesourcery.com>
456
457         PR tree-optimization/50672
458         * tree-ssa-dce.c (mark_virtual_operand_for_renaming): New function,
459         factored out of ...
460         (mark_virtual_phi_result_for_renaming): Use
461         mark_virtual_operand_for_renaming.
462         * tree-flow.h (mark_virtual_operand_for_renaming): Declare.
463         * tree-ssa-tail-merge.c (release_last_vdef): New function.
464         (purge_bbs): Add update_vops parameter.  Call release_last_vdef for each
465         deleted basic block.
466         (tail_merge_optimize): Add argument to call to purge_bbs.
467
468 2011-10-18  Richard Guenther  <rguenther@suse.de>
469
470         PR middle-end/50716
471         * expr.c (get_object_or_type_alignment): New function.
472         (expand_assignment): Use it.
473         (expand_expr_real_1): Likewise.
474
475 2011-10-18  Dodji Seketeli  <dodji@redhat.com>
476
477         PR bootstrap/50760
478         * input.c (dump_line_table_statistics): Use long, not size_t.
479
480 2011-10-17  Eric Botcazou  <ebotcazou@adacore.com>
481
482         * config/sparc/sparc.md (in_call_delay): Fix formatting issues.
483
484 2011-10-17  Simon Baldwin  <simonb@google.com>
485             Ian Lance Taylor  <iant@google.com>
486
487         * configure.ac: Add --with-native-system-header-dir.  Set and
488         substitute NATIVE_SYSTEM_HEADER_DIR.  Use native_system_header
489         when setting target_header_dir.
490         * config.gcc: Always set native_system_header_dir.
491         (*-*-gnu*): Set native_system_header_dir.  Don't use t-gnu.
492         (i[34567]86-pc-msdosdjgpp*): Set native_system_header_dir.  Don't
493         use i386/t-djgpp.
494         (i[34567]86-*-mingw* | x86_64-*-mingw*): Set
495         native_system_header_dir.
496         (spu-*-elf*): Set native_system_header_dir.
497         * Makefile.in (NATIVE_SYSTEM_HEADER_DIR): Set to
498         @NATIVE_SYSTEM_HEADER_DIR@.
499         (PREPROCESSOR_DEFINES): Define NATIVE_SYSTEM_HEADER_DIR.
500         * cppdefault.c (STANDARD_INCLUDE_DIR): Don't define.
501         (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
502         STANDARD_INCLUDE_COMPONENT.
503         (cpp_include_defaults): Don't use SYSTEM_INCLUDE_DIR.  Rename
504         STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
505         * system.h: Poison SYSTEM_INCLUDE_DIR, STANDARD_INCLUDE_DIR, and
506         STANDARD_INCLUDE_COMPONENT.
507         * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Remove.
508         * config/i386/t-mingw-w32: Likewise.
509         * config/i386/t-mingw-w64: Likewise.
510         * config/spu/t-spu-elf: Likewise.
511         * config/i386/t-djgpp: Remove.
512         * config/t-gnu: Remove.
513         * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Don't define.
514         (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
515         STANDARD_INCLUDE_COMPONENT.
516         * config/i386/djgpp.h (STANDARD_INCLUDE_DIR): Don't define.
517         * config/spu/spu-elf.h: Likewise.
518         * config/vms/xm-vms.h: Likewise.
519         * config/gnu.h: Likewise.
520         * config/openbsd.h (INCLUDE_DEFAULTS): Change STANDARD_INCLUDE_DIR
521         and STANDARD_INCLUDE_COMPONENT to NATIVE_SYSTEM_HEADER_DIR and
522         NATIVE_SYSTME_HEADER_COMPONENT.
523         * doc/install.texi (Configuration): Document
524         --with-native-system-header-dir.  Mention it in the documentation
525         for --with-sysroot and --with-build-sysroot.
526         * doc/tm.texi.in (Driver): Don't document SYSTEM_INCLUDE_DIR or
527         STANDARD_INCLUDE_DIR.  Rename STANDARD_INCLUDE_COMPONENT to
528         NATIVE_SYSTEM_HEADER_COMPONENT.  Rename uses of
529         STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
530         * doc/fragments.texi (Target Fragment): Don't document
531         NATIVE_SYSTEM_HEADER_DIR.
532         * configure, doc/tm.texi: Rebuild.
533
534 2011-10-17  Richard Henderson  <rth@redhat.com>
535
536         * config/sparc/sparc.md: Use register_or_zero_operand where rJ
537         is the constraint.
538
539         * config/sparc/sparc.md (vec_perm_constv8qi, vec_perm<mode>): New
540         patterns.
541         * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): New function.
542         * config/sparc/sparc-protos.h (sparc_expand_vec_perm_bmask): Declare.
543
544 2011-10-17  David S. Miller  <davem@davemloft.net>
545
546         * config/sparc/sparc-modes.def: Add single entry vector modes for
547         DImode and SImode.
548         * config/sparc/sparc.md (V32, V32I, V64, V64I, V64N8): Delete
549         mode iterators.
550         (mov<V32:mode>): Revert back to plain SFmode pattern.
551         (*movsf_insn): Likewise.
552         (mov<V64:mode>): Revert back to plain DFmode pattern.
553         (*movdf_insn_sp32): Likewise.
554         (*movdf_insn_sp32_v9): Likewise.
555         (*movdf_insn_sp64): Likewise.
556         (V64 mode splitters) Likewise.
557         (addsi3): Remove VIS alternatives.
558         (subsi3): Likewise.
559         (and<V64I:mode>3): Revert to DImode only pattern.
560         (and<V64I:mode>3_sp32): Likewise.
561         (*and<V64I:mode>3_sp64): Likewise.
562         (and<V32I:mode>3): Likewise.
563         (*and_not_<V64I:mode>_sp32): Likewise.
564         (*and_not_<V64I:mode>_sp64): Likewise.
565         (*and_not_<V32I:mode>): Likewise.
566         (ior<V64I:mode>3): Likewise.
567         (*ior<V64I:mode>3_sp32): Likewise.
568         (*ior<V64I:mode>3_sp64): Likewise.
569         (ior<V32I:mode>3): Likewise.
570         (*or_not_<V64I:mode>_sp32): Likewise.
571         (*or_not_<V64I:mode>_sp64): Likewise.
572         (*or_not_<V32I:mode>): Likewise.
573         (xor<V64I:mode>3): Likewise.
574         (*xor<V64I:mode>3_sp32): Likewise.
575         (*xor<V64I:mode>3_sp64): Likewise.
576         (xor<V32I:mode>3): Likewise.
577         (V64I mode splitters): Likewise.
578         (*xor_not_<V64I:mode>_sp32): Likewise.
579         (*xor_not_<V64I:mode>_sp64): Likewise.
580         (*xor_not_<V32I:mode>): Likewise.
581         (one_cmpl<V64I:mode>2): Likewise.
582         (*one_cmpl<V64I:mode>2_sp32): Likewise.
583         (*one_cmpl<V64I:mode>2_sp64): Likewise.
584         (one_cmpl<V32I:mode>2): Likewise.
585         (VM32, VM64, VMALL): New mode iterators.
586         (vbits, vconstr, vfptype): New mode attributes.
587         (mov<VMALL:mode>): New expander.
588         (*mov<VM32:mode>_insn): New insn.
589         (*mov<VM64:mode>_insn_sp64): New insn.
590         (*mov<VM64:mode>_insn_sp32): New insn, and associated splitter
591         specifically for the register to memory case.
592         (vec_init<mode>): New expander.
593         (VADDSUB): New mode iterator.
594         (<plusminus_insn>v2si3, <plusminus_insn>v2hi3): Remove and replace
595         with...
596         (<plusminus_insn><mode>3): New consolidated pattern.
597         (VL): New mode iterator for logical operations.
598         (vlsuf): New more attribute.
599         (vlop): New code iterator.
600         (vlinsn, vlninsn): New code attributes.
601         (<code><mode>3): New insn to non-negated vector logical ops.
602         (*not_<code><mode>3): Likewise for negated variants.
603         (*nand<mode>_vis): New insn.
604         (vlnotop): New code iterator.
605         (*<code>_not1<mode>_vis, *<code>_not2<mode>_vis): New insns.
606         (one_cmpl<mode>2): New insn.
607         (faligndata<V64I:mode>_vis): Rewrite to use VM64 iterator.
608         (bshuffle<VM64:mode>_vis): Likewise.
609         (v<vis3_shift_patname><mode>3): Use GCM mode iterator.
610         (fp<plusminus_insn>64_vis): Use V1DI mode.
611         (VASS mode iterator): Use V1SI not SI mode.
612         * config/sparc/sparc.c (sparc_vis_init_builtins): Account for
613         single-entry vector mode changes.
614         (sparc_expand_builtin): Likewise.
615         (sparc_expand_vector_init): New function.
616         * config/sparc/sparc-protos.h (sparc_expand_vector_init): Declare.
617
618 2011-10-17  Kai Tietz  <ktietz@redhat.com>
619
620         * fold-const.c (simple_operand_p_2): New function.
621         (fold_truthop): Rename to
622         (fold_truth_andor_1): function name.
623         Additionally remove branching creation for logical and/or.
624         (fold_truth_andor): Handle branching creation for logical and/or here.
625
626 2011-10-17  Andi Kleen  <ak@linux.intel.com>
627
628         * ggc-page.c (USING_MADVISE): Adjust ifdef to check for USING_MMAP.
629
630 2011-10-17  Georg-Johann Lay  <avr@gjlay.de>
631
632         * config/avr/avr.h (ASSEMBLER_DIALECT): Remove.
633         * config/avr/avr.md (mcu_have_movw, mcu_mega): Remove attributes.
634         (adjust_len): Add alternative "call".
635         (isa, enabled): New insn attributes.
636         (length): Use match_test with AVR_HAVE_JMP_CALL instead of
637         mcu_mega attribute.
638         (*sbrx_branch<mode>): Ditto.
639         (*sbrx_and_branch<mode>): Ditto.
640         (*sbix_branch): Ditto.
641         (*sbix_branch_bit7): Ditto.
642         (*sbix_branch_tmp): Ditto.
643         (*sbix_branch_tmp_bit7): Ditto.
644         (jump): Ditto.
645         (negsi2): Use attribute "isa" instead of assembler dialect.
646         (extendhisi2): Ditto.
647         (call_insn, call_value_insn): Set adjust_len attribute.
648         (indirect_jump): Indent to coding rules.
649         (call_prologue_saves): Use isa attribute instead of mcu_mega.
650         (epilogue_restores): Ditto.  Fix setting of SP as described in the
651         RTX pattern.
652         (*indirect_jump): Fusion of *jcindirect_jump, *njcindirect_jump
653         and *indirect_jump_avr6.
654         (*tablejump): Fusion of *tablejump_rjmp and *tablejump_lib.
655         (*jcindirect_jump, *njcindirect_jump, *indirect_jump_avr6): Remove.
656         (*tablejump_rjmp, *tablejump_lib): Remove.
657         * config/avr/avr.c (adjust_insn_length): Handle ADJUST_LEN_CALL.
658
659 2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>
660
661         PR c++/50757
662         * doc/invoke.texi ([Wnonnull]): Update.
663
664 2011-10-17  Richard Henderson  <rth@redhat.com>
665
666         PR 50746
667         * optabs.c (expand_vec_perm_expr): Fix indexing error.
668
669 2011-10-17  Sergio Durigan Junior  <sergiodj@redhat.com>
670
671         * configure.ac: Display `yes' if the SystemTap header has been
672         found.
673         * configure: Regenerate.
674
675 2011-10-08  Andi Kleen  <ak@linux.intel.com>
676
677         PR other/50636
678         * config.in, configure: Regenerate.
679         * configure.ac (madvise): Add to AC_CHECK_FUNCS.
680         * ggc-page.c (USING_MADVISE): Add.
681         (page_entry): Add discarded field.
682         (alloc_page): Check for discarded pages.
683         (release_pages): Add USING_MADVISE branch.
684
685 2011-10-17  Richard Guenther  <rguenther@suse.de>
686
687         PR tree-optimization/50729
688         * tree-vrp.c (extract_range_from_unary_expr_1): Remove
689         redundant test.
690         (simplify_conversion_using_ranges): Properly test the
691         intermediate result.
692
693 2011-10-15  Tom Tromey  <tromey@redhat.com>
694             Dodji Seketeli  <dodji@redhat.com>
695
696         * ggc.h (ggc_round_alloc_size): Declare new public entry point.
697         * ggc-none.c (ggc_round_alloc_size): New public stub function.
698         * ggc-page.c (ggc_alloced_size_order_for_request): New static
699         function.  Factorized from ggc_internal_alloc_stat.
700         (ggc_round_alloc_size): New public function.  Uses
701         ggc_alloced_size_order_for_request.
702         (ggc_internal_alloc_stat): Use ggc_alloced_size_order_for_request.
703         * ggc-zone.c (ggc_round_alloc_size): New public function extracted
704         from ggc_internal_alloc_zone_stat.
705         (ggc_internal_alloc_zone_stat): Use ggc_round_alloc_size.
706         * toplev.c (general_init): Initialize
707         line_table->alloced_size_for_request.
708
709 2011-10-15  Tom Tromey  <tromey@redhat.com>
710             Dodji Seketeli  <dodji@redhat.com>
711
712         * input.c (ONE_K, ONE_M, SCALE, STAT_LABEL, FORMAT_AMOUNT): New
713         macros.
714         (num_expanded_macros_counter, num_macro_tokens_counter): Declare
715         new counters.
716         (dump_line_table_statistics): Define new function.
717         * input.h (dump_line_table_statistics): Declare new function.
718         * toplev.c (dump_memory_report): Call dump_line_table_statistics.
719
720 2011-10-15  Tom Tromey  <tromey@redhat.com>
721             Dodji Seketeli  <dodji@redhat.com>
722
723         * doc/cppopts.texi: Document -fdebug-cpp.
724         * doc/invoke.texi: Add -fdebug-cpp to the list of preprocessor
725         options.
726
727 2011-10-15  Tom Tromey  <tromey@redhat.com>
728             Dodji Seketeli  <dodji@redhat.com>
729
730         * gcc/diagnostic.h (diagnostic_report_current_module): Add a
731         location parameter.
732         * diagnostic.c (diagnostic_report_current_module): Add a location
733         parameter to the function definition.  Use it instead of
734         input_location.  Resolve the virtual location rather than just
735         looking up its map and risking to touch a resulting macro map.
736         (default_diagnostic_starter): Pass the relevant diagnostic
737         location to diagnostic_report_current_module.
738         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): New.
739         (virt_loc_aware_diagnostic_finalizer): Likewise.
740         (diagnostic_report_current_function): Pass the
741         relevant location to diagnostic_report_current_module.
742         * tree-diagnostic.h (virt_loc_aware_diagnostic_finalizer): Declare
743         new function.
744         * toplev.c (general_init): By default, use the new
745         virt_loc_aware_diagnostic_finalizer as diagnostic finalizer.
746         * Makefile.in: Add vec.h dependency to tree-diagnostic.c.
747
748 2011-10-15  Tom Tromey  <tromey@redhat.com>
749             Dodji Seketeli  <dodji@redhat.com>
750
751         * doc/cppopts.texi (-ftrack-macro-expansion): Document new option.
752         * doc/invoke.texi (-ftrack-macro-expansion): Add this to the list of
753         preprocessor related options.
754
755 2011-10-15  Tom Tromey  <tromey@redhat>
756             Dodji Seketeli  <dodji@redhat.com>
757
758         * input.h (struct expanded_location): Move to libcpp/line-map.h.
759         (LOCATION_COLUMN): New accessor
760         (in_system_header_at): Use linemap_location_in_system_header_p.
761         * diagnostic.c (diagnostic_report_current_module): Adjust to avoid
762         touching the internals of struct line_map.  Use the public API.
763         instead.
764         (diagnostic_report_diagnostic): Don't use relational operator '<'
765         on virtual locations.  Use linemap_location_before_p instead.
766         * input.c (expand_location): Adjust to expand to the tokens'
767         spelling location when macro location tracking is on.
768
769
770 2011-10-08  Andi Kleen  <ak@linux.intel.com>
771
772         * ggc-page.c (GGC_QUIRE_SIZE): Increase to 512
773
774 2011-10-13  Andi Kleen  <ak@linux.intel.com>
775
776         * toplev.c (compile_file): Rename __gnu_slim_lto to __gnu_lto_slim.
777
778 2011-10-16  Ira Rosen  <ira.rosen@linaro.org>
779
780         PR tree-optimization/50727
781         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Add
782         DEF_STMT to the list of statements to be replaced by the
783         pattern statements.
784
785 2011-10-16  Eric Botcazou  <ebotcazou@adacore.com>
786
787         PR rtl-optimization/50615
788         * combine.c (distribute_notes) <REG_ARGS_SIZE>: Skip if I3 is a no-op.
789
790 2011-10-16  Jakub Jelinek  <jakub@redhat.com>
791
792         PR tree-optimization/50596
793         * tree-vectorizer.h (NUM_PATTERNS): Increase to 7.
794         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
795         vect_recog_bool_pattern.
796         (check_bool_pattern, adjust_bool_pattern_cast,
797         adjust_bool_pattern, vect_recog_bool_pattern): New functions.
798
799 2011-10-16  Ira Rosen  <ira.rosen@linaro.org>
800
801         * tree-vect-stmts.c (vectorizable_load): For SLP without permutation
802         treat the first load of the node as the first element in its
803         interleaving chain.
804         * tree-vect-slp.c (vect_get_and_check_slp_defs): Swap the operands if
805         necessary and possible.
806         (vect_build_slp_tree): Add new argument.  Allow load groups of any size
807         in basic blocks.  Keep all the loads for further permutation check.
808         Use the new argument to determine if there is a permutation.  Update
809         the recursive calls.
810         (vect_supported_load_permutation_p): Allow subchains of interleaving
811         chains in basic block vectorization.
812         (vect_analyze_slp_instance): Update the call to vect_build_slp_tree.
813         Check load permutation based on the new parameter.
814         (vect_schedule_slp_instance): Don't start from the first element in
815         interleaving chain unless the loads are permuted.
816
817 2011-10-15  Jan Hubicka  <jh@suse.cz>
818
819         PR target/48668
820         PR target/50689
821         * cgraphunit.c (cgraph_expand_function): Expand thunks and alises
822         after function body.
823
824 2011-10-15  Richard Henderson  <rth@redhat.com>
825
826         * tree-vect-slp.c: Include langhooks.h.
827         (vect_create_mask_and_perm): Emit VEC_PERM_EXPR, not a builtin.
828         (vect_transform_slp_perm_load): Use can_vec_perm_expr_p.  Simplify
829         mask creation for VEC_PERM_EXPR.
830         * tree-vect-stmts.c (perm_mask_for_reverse): Return the mask,
831         not the builtin.
832         (reverse_vec_elements): Emit VEC_PERM_EXPR not a builtin.
833         * Makefile.in (tree-vect-slp.o): Update dependency.
834         * optabs.c (can_vec_perm_expr_p): Allow NULL as unknown constant.
835
836 2011-10-15  Alan Modra  <amodra@gmail.com>
837
838         PR bootstrap/50738
839         * ifcvt.c (dead_or_predicable): Revert accidental commit with
840         HAVE_simple_return test.
841
842 2011-10-15  Alan Modra  <amodra@gmail.com>
843
844         * ifcvt.c (dead_or_predicable): Disable if-conversion when
845         doing so is likely to kill a shrink-wrapping opportunity.
846
847         PR rtl-optimization/49941
848         * jump.c (mark_jump_label_1): Set JUMP_LABEL for simple_return jumps.
849
850         * rtl.h (set_return_jump_label): Declare.
851         * function.c (set_return_jump_label): New function, extracted..
852         (thread_prologue_and_epilogue_insns): ..from here.  Use it in
853         another instance to set return jump_label.
854         * cfgrtl.c (force_nonfallthru_and_redirect): Use set_return_jump_label.
855         * reorg.c (find_end_label): Likewise.
856
857 2011-10-14  David S. Miller  <davem@davemloft.net>
858
859         * config/sparc/sol2.h: Protect -m{cpu,tune}=native handling
860         with a more complete cpp test.
861         * config/sparc/linux64.h: Likewise.
862         * config/sparc/linux.h: Likewise.
863         * config/sparc/sparc.opt (sparc_debug): New target variable.
864         (mdebug): New target option.
865         * config/sparc/sparc.h (MASK_DEBUG_OPTIONS, MASK_DEBUG_ALL,
866         TARGET_DEBUG_OPTIONS): New defines.
867         * config/sparc/sparc.c (debug_target_flag_bits,
868         debug_target_flags): New functions.
869         (sparc_option_override): Add name strings back to cpu_table[].
870         Parse -mdebug string.  When TARGET_DEBUG_OPTIONS is true, print
871         out the target flags before and after override processing as well
872         as the selected cpu.  If MASK_V8PLUS, make sure that the selected
873         cpu is at least v9.
874
875 2011-10-15  Oleg Endo  <oleg.endo@t-online.de>
876
877         PR target/49263
878         * config/sh/sh.h (ZERO_EXTRACT_ANDMASK): New macro.
879         * config/sh/sh.c (sh_rtx_costs): Add test instruction case.
880         * config/sh/sh.md (tstsi_t): Name existing insn.  Make inner
881         and instruction commutative.
882         (tsthi_t, tstqi_t, tstqi_t_zero, tstsi_t_and_not,
883         tstsi_t_zero_extract_eq, tstsi_t_zero_extract_xor,
884         tstsi_t_zero_extract_subreg_xor_little,
885         tstsi_t_zero_extract_subreg_xor_big): New insns.
886         (*movsicc_t_false, *movsicc_t_true): Replace space with tab in
887         asm output.
888         (*andsi_compact): Reorder alternatives so that K08 is considered first.
889
890 2011-10-14  Eric Botcazou  <ebotcazou@adacore.com>
891
892         PR target/50354
893         * config/sparc/linux64.h (TARGET_DEFAULT): Only override if the default
894         processor is at least V9 and TARGET_64BIT_DEFAULT is defined.
895
896 2011-10-14  Gerald Pfeifer  <gerald@pfeifer.com>
897
898         * invoke.texi (AVR Options): Avoid \leq{}.
899
900 2011-10-14  Kai Tietz  <ktietz@redhat.com>
901
902         * gimplify.c (gimplify_expr): Take care that for bitwise-binary
903         transformation the operands have compatible types.
904
905 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
906
907         * config/i386/sse.md (vec_widen_smult_hi_v8hi,
908         vec_widen_smult_lo_v8hi, vec_widen_umult_hi_v8hi,
909         vec_widen_umult_lo_v8hi): Macroize using VI2_AVX2
910         mode iterator and any_extend code iterator.
911         (vec_widen_<s>mult_hi_v8si, vec_widen_<s>mult_lo_v8si): New expanders.
912         (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si): Enable
913         also for TARGET_SSE4_1 using pmuldq insn.
914         (sdot_prodv8hi): Macroize using VI2_AVX2 iterator.
915         (sse2_sse4_1): New code attr.
916         (udot_prodv4si): Macroize using any_extend code iterator.
917         (<s>dot_prodv8si): New expander.
918
919 2011-10-14  Yakovlev Vladimir  <vladimir.b.yakovlev@intel.com>
920
921         * config/i386/i386.c (atom_cost): Changed cost for loading
922         QImode using movzbl.
923
924 2011-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
925
926         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo in my
927         change on October 11th, 2011.
928
929 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
930
931         * config/i386/sse.md (vec_interleave_high<mode>,
932         vec_interleave_low<mode>): Add AVX2 expanders for VI_256 modes.
933         * config/i386/i386.c (expand_vec_perm_interleave3): New function.
934         (ix86_expand_vec_perm_builtin_1): Call it.
935
936 2011-10-14  Georg-Johann Lay  <avr@gjlay.de>
937
938         Fix thinko from r179765
939         * config/avr/avr.c (avr_option_override): Don't override
940         flag_omit_frame_pointer if not actually needed.
941
942 2011-10-14  Georg-Johann Lay  <avr@gjlay.de>
943
944         PR target/46278
945         * doc/invoke.texi (AVR Options): Document -mstrict-X.
946
947         * config/avr/avr.opt (-mstrict-X): New option.
948         (avr_strict_X): New variable reflecting -mstrict-X.
949         * config/avr/avr.c (avr_reg_ok_for_addr_p): Add parameter
950         outer_code and pass it down to avr_regno_mode_code_ok_for_base_p.
951         (avr_legitimate_address_p): Pass outer_code to
952         avr_reg_ok_for_addr_p and use that function in case PLUS.
953         (avr_mode_code_base_reg_class): Depend on avr_strict_X.
954         (avr_regno_mode_code_ok_for_base_p): Ditto, and depend on outer_code.
955         (avr_option_override): Disable -fcaller-saves if -mstrict-X is on.
956
957 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
958
959         * config/i386/sse.md (neg<mode>2): Use VI_AVX2 iterator instead
960         of VI_128.
961
962         * config/i386/sse.md (mulv2di3): Macroize using VI8_AVX2 iterator.
963         (ashl<mode>3): Use VI248_AVX2 iterator instead of VI248_128.
964         Use <sseinsnmode> instead of TI in mode attr.
965
966 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
967
968         * config/arm/linux-atomic-64bit.c: New (based on linux-atomic.c).
969         * config/arm/linux-atomic.c: Change comment to point to 64bit version.
970         (SYNC_LOCK_RELEASE): Instantiate 64bit version.
971         * config/arm/t-linux-eabi: Pull in linux-atomic-64bit.c.
972
973 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
974
975         * config/arm/arm.c (arm_output_ldrex): Support ldrexd.
976         (arm_output_strex): Support strexd.
977         (arm_output_it): New helper to output it in Thumb2 mode only.
978         (arm_output_sync_loop): Support DI mode.  Change comment to
979         not support const_int.
980         (arm_expand_sync): Support DI mode.
981         * config/arm/arm.h (TARGET_HAVE_LDREXBHD): Split into LDREXBH
982         and LDREXD.
983         * config/arm/iterators.md (NARROW): move from sync.md.
984         (QHSD): New iterator for all current ARM integer modes.
985         (SIDI): New iterator for SI and DI modes only.
986         * config/arm/sync.md (sync_predtab): New mode_attr.
987         (sync_compare_and_swapsi): Fold into sync_compare_and_swap<mode>.
988         (sync_lock_test_and_setsi): Fold into sync_lock_test_and_setsi<mode>.
989         (sync_<sync_optab>si): Fold into sync_<sync_optab><mode>.
990         (sync_nandsi): Fold into sync_nand<mode>.
991         (sync_new_<sync_optab>si): Fold into sync_new_<sync_optab><mode>.
992         (sync_new_nandsi): Fold into sync_new_nand<mode>.
993         (sync_old_<sync_optab>si): Fold into sync_old_<sync_optab><mode>.
994         (sync_old_nandsi): Fold into sync_old_nand<mode>.
995         (sync_compare_and_swap<mode>): Support SI & DI.
996         (sync_lock_test_and_set<mode>): Likewise.
997         (sync_<sync_optab><mode>): Likewise.
998         (sync_nand<mode>): Likewise.
999         (sync_new_<sync_optab><mode>): Likewise.
1000         (sync_new_nand<mode>): Likewise.
1001         (sync_old_<sync_optab><mode>): Likewise.
1002         (sync_old_nand<mode>): Likewise.
1003         (arm_sync_compare_and_swapsi): Turn into iterator on SI & DI.
1004         (arm_sync_lock_test_and_setsi): Likewise.
1005         (arm_sync_new_<sync_optab>si): Likewise.
1006         (arm_sync_new_nandsi): Likewise.
1007         (arm_sync_old_<sync_optab>si): Likewise.
1008         (arm_sync_old_nandsi): Likewise.
1009         (arm_sync_compare_and_swap<mode> NARROW): use sync_predtab, fix indent.
1010         (arm_sync_lock_test_and_setsi<mode> NARROW): Likewise.
1011         (arm_sync_new_<sync_optab><mode> NARROW): Likewise.
1012         (arm_sync_new_nand<mode> NARROW): Likewise.
1013         (arm_sync_old_<sync_optab><mode> NARROW): Likewise.
1014         (arm_sync_old_nand<mode> NARROW): Likewise.
1015
1016 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
1017
1018         PR target/48126
1019         * config/arm/arm.c (arm_output_sync_loop): Move label before barrier.
1020
1021 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
1022
1023         * config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1.
1024
1025 2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
1026
1027         * doc/invoke.texi ([Wformat-zero-length]): Tidy.
1028
1029 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
1030
1031         * gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr also
1032         on COND_EXPR/VEC_COND_EXPR comparison operands if they are ADDR_EXPRs.
1033
1034 2011-10-14  Richard Guenther  <rguenther@suse.de>
1035
1036         PR tree-optimization/50723
1037         * ipa-split.c (split_function): Use GSI_CONTINUE_LINKING.
1038
1039 2011-10-14  Nicola Pero  <nicola.pero@meta-innovation.com>
1040
1041         * gengtype.c (files_rules): Added rules for objc/objc-map.h and
1042         objc/objc-map.c.
1043
1044 2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
1045
1046         PR c++/17212
1047         * doc/invoke.texi ([Wformat-zero-length]): Update.
1048
1049 2011-10-14  Iain Sandoe  <iains@gcc.gnu.org>
1050
1051         PR bootstrap/50699
1052         * config/darwin.c (darwin_patch_builtin): Adjust argument type. Only
1053         build for powerpc targets.  (darwin_patch_builtins): Only build for
1054         powerpc targets.
1055
1056 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
1057
1058         * config/i386/sse.md (*avx_cvtdq2pd256_2): Rename to...
1059         (avx_cvtdq2pd256_2): ... this.
1060         (sseunpackfltmode): New mode attr.
1061         (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi,
1062         vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): Macroize
1063         using VI2_AVX2 iterator.
1064         (vec_unpacku_float_hi_v8si, vec_unpacku_float_lo_v8si): New expanders.
1065
1066 2011-10-13  David S. Miller  <davem@davemloft.net>
1067
1068         * config/sparc/sparc.md (plusminus): New code iterator.
1069         (plusminus_insn): New code attr.
1070         (addv2si3, subv2si3, addv4hi3, subv4hi3, addv2hi3, subv2hi3): Merge
1071         using plusminus and plusminus_insn.
1072         (fpadd64_vis, fpsub64_vis): Likewise.
1073
1074 2011-10-13  Richard Henderson  <rth@redhat.com>
1075
1076         * doc/md.texi (vec_perm): Document fallback to byte permutation.
1077         * genopinit.c (optabs): Add vec_perm_const.
1078         * optabs.c (can_vec_perm_expr_p): Rename from expand_vec_perm_expr_p.
1079         Reject non-vector modes.  Allow fallback to byte permutation.
1080         (expand_vec_perm_expr_1): Split out from ...
1081         (expand_vec_perm_expr): ... here.  Allow fallback to byte permutation.
1082         * optabs.h (DOI_vec_perm_const, vec_perm_const_optab): New.
1083         * tree-vect-generic.c (lower_vec_perm): Update for name change.
1084
1085 2011-10-13  Richard Henderson  <rth@redhat.com>
1086
1087         * config/rs6000/altivec.md (vec_permv16qi): New pattern.
1088
1089         * config/rs6000/spu.md (vec_permv16qi): New pattern.
1090
1091         * config/i386/i386.c (ix86_expand_vec_perm_const): New.
1092         * config/i386/i386-protos.h: Update.
1093         * config/i386/sse.md (VEC_PERM_CONST): New mode iterator.
1094         (vec_perm_const<VEC_PERM_CONST>): New expander.
1095
1096         * optabs.c (expand_vector_broadcast): New.
1097         (expand_binop): Expand scalar shifts of vectors to vector shifts
1098         of vectors, if the former isn't supported.
1099         * tree-vect-generic.c (expand_vector_operations_1): Don't do that
1100         here; always simplify to scalar shift of vector if possible.
1101
1102         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix mode
1103         test for vector splat.
1104
1105 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
1106
1107         * config/i386/sse.md (vec_set<mode>): Change V_128 iterator mode to V.
1108
1109 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
1110             Richard Guenther  <rguenther@suse.de>
1111
1112         * tree-ssa.c (maybe_optimize_var): Drop TREE_ADDRESSABLE from vector
1113         or complex vars even if their DECL_UID is in not_reg_needs bitmap.
1114
1115 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
1116
1117         * config/i386/sse.md (reduc_umin_v8hi): New pattern.
1118         * config/i386/i386.c (ix86_build_const_vector): Handle
1119         also V32QI, V16QI, V16HI and V8HI modes.
1120         (emit_reduc_half): New function.
1121         (ix86_expand_reduc): Use phminposuw insn for V8HImode UMIN.
1122         Use emit_reduc_half helper function.
1123
1124 2011-10-13  Lawrence Crowl  <crowl@google.com>
1125             Diego Novillo  <dnovillo@google.com>
1126
1127         * lto-streamer-in.c (input_struct_function_base): Factor out of ...
1128         (input_function): ... here.
1129         * lto-streamer-out.c (output_struct_function_base): Factor out of ...
1130         (output_function): ... here.
1131
1132 2011-10-13  Gabriel Charette  <gchare@google.com>
1133             Diego Novillo  <dnovillo@google.com>
1134
1135         * streamer-hooks.h (struct streamer_hooks): Add hooks
1136         input_location and output_location.
1137         * lto-streamer-in.c (lto_input_location): Use
1138         streamer_hooks.input_location, if set.
1139         * lto-streamer-out.c (lto_output_location): Use
1140         streamer_hooks.output_location, if set.
1141
1142 2011-10-13  Eric Botcazou  <ebotcazou@adacore.com>
1143
1144         * doc/invoke.texi (SPARC options): Document -mfix-at697f.
1145         * config/sparc/sparc.opt (mfix-at697f): New option.
1146         * config/sparc/sparc.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
1147         (sparc_reorg): New function.
1148
1149 2011-10-13  Richard Guenther  <rguenther@suse.de>
1150
1151         PR tree-optimization/50712
1152         * ipa-split.c (split_function): Always re-gimplify parameters
1153         when they are not gimple vals before passing them.  Properly
1154         check for type compatibility.
1155
1156 2011-10-13  Tom de Vries  <tom@codesourcery.com>
1157
1158         * function.c (gimplify_parameters): Set number of arguments of call to
1159         BUILT_IN_ALLOCA_WITH_ALIGN to 2.
1160
1161 2011-10-13  Tom de Vries  <tom@codesourcery.com>
1162
1163         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_READONLY_P
1164         for static const strings.
1165         * varasm.c (build_constant_desc): Generate the memory location of the
1166         constant using gen_const_mem.
1167
1168 2011-10-13  Richard Guenther  <rguenther@suse.de>
1169
1170         PR tree-optimization/50698
1171         * tree-data-ref.c (split_constant_offset_1): Also process
1172         offsets of &MEM.
1173
1174 2011-10-12  David S. Miller  <davem@davemloft.net>
1175
1176         * config/sparc/sparc.md (UNSPEC_FPMERGE): Delete.
1177         (UNSPEC_MUL16AU, UNSPEC_MUL8, UNSPEC_MUL8SU, UNSPEC_MULDSU): New
1178         unspecs.
1179         (fpmerge_vis): Remove inaccurate comment, represent using vec_select
1180         of a vec_concat.
1181         (vec_interleave_lowv8qi, vec_interleave_highv8qi): New insns.
1182         (fmul8x16_vis, fmul8x16au_vis, fmul8sux16_vis, fmuld8sux16_vis):
1183         Reimplement as unspecs and remove inaccurate comments.
1184         (vis3_shift_patname): New code attr.
1185         (<vis3_shift_insn><vbits>_vis): Rename to
1186         "v<vis3_shift_patname><mode>3".
1187         (vis3_addsub_ss_patname): New code attr.
1188         (<vis3_addsub_ss_insn><vbits>_vis): Rename to
1189         "<vis3_addsub_ss_patname><mode>3".
1190         * config/sparc/sparc.c (sparc_vis_init_builtins): Update to
1191         accommodate pattern name changes.
1192
1193         * config/sparc/sparc.h: Do not force TARGET_VIS3 and TARGET_FMAF
1194         to zero when assembler lacks support for such instructions.
1195         * config/sparc/sparc.c (sparc_option_override): Clear MASK_VIS3
1196         and MASK_FMAF in defaults when assembler lacks necessary support.
1197
1198 2011-10-12  Jakub Jelinek  <jakub@redhat.com>
1199
1200         * config/i386/sse.md (vec_unpacks_lo_<mode>,
1201         vec_unpacks_hi_<mode>, vec_unpacku_lo_<mode>,
1202         vec_unpacku_hi_<mode>): Change VI124_128 mode to VI124_AVX2.
1203         * config/i386/i386.c (ix86_expand_sse_unpack): Handle
1204         V32QImode, V16HImode and V8SImode for TARGET_AVX2.
1205
1206         * config/i386/sse.md (vec_avx2): New mode_attr.
1207         (mulv16qi3): Macroize to cover also mulv32qi3 for TARGET_AVX2 into ...
1208         (mul<mode>3): ... this.
1209
1210         * config/i386/i386.md (UNSPEC_VPERMDI): Remove.
1211         * config/i386/i386.c (ix86_expand_vec_perm): Handle
1212         V16QImode and V32QImode for TARGET_AVX2.
1213         (MAX_VECT_LEN): Increase to 32.
1214         (expand_vec_perm_blend): Add support for 32-byte integer
1215         vectors with TARGET_AVX2.
1216         (valid_perm_using_mode_p): New function.
1217         (expand_vec_perm_pshufb): Add support for 32-byte integer
1218         vectors with TARGET_AVX2.
1219         (expand_vec_perm_vpshufb2_vpermq): New function.
1220         (expand_vec_perm_vpshufb2_vpermq_even_odd): New function.
1221         (expand_vec_perm_even_odd_1): Handle 32-byte integer vectors
1222         with TARGET_AVX2.
1223         (ix86_expand_vec_perm_builtin_1): Try expand_vec_perm_vpshufb2_vpermq
1224         and expand_vec_perm_vpshufb2_vpermq_even_odd.
1225         * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Add for TARGET_AVX2
1226         32-byte integer vector modes.
1227         (vec_pack_trunc_<mode>): Use VI248_AVX2 instead of VI248_128.
1228         (avx2_interleave_highv32qi, avx2_interleave_lowv32qi): Remove pasto.
1229         (avx2_pshufdv3, avx2_pshuflwv3, avx2_pshufhwv3): Generate
1230         4 new operands.
1231         (avx2_pshufd_1, avx2_pshuflw_1, avx2_pshufhw_1): Don't use
1232         match_dup, instead add 4 new operands and require they have
1233         right cross-lane values.
1234         (avx2_permv4di): Change into define_expand.
1235         (avx2_permv4di_1): New instruction.
1236         (avx2_permv2ti): Use nonimmediate_operand instead of register_operand
1237         for "xm" constrained operand.
1238         (VEC_PERM_AVX2): Add V32QI and V16QI for TARGET_AVX2.
1239
1240         * config/i386/sse.md (avx2_gathersi<mode>,
1241         avx2_gatherdi<mode>, avx2_gatherdi<mode>256): Add clobber of
1242         match_scratch, change memory_operand to register_operand,
1243         add (mem:BLK (scratch)) use.
1244         (*avx2_gathersi<mode>, *avx2_gatherdi<mode>,
1245         *avx2_gatherdi<mode>256): Add clobber of match_scratch,
1246         add earlyclobber to the output operand and match_scratch,
1247         add (mem:BLK (scratch)) use, change the other mem to match_operand.
1248         Use %p6 instead of %c6 in the pattern.
1249         * config/i386/i386.c (ix86_expand_builtin): Adjust for
1250         operand 2 being a Pmode register_operand instead of memory_operand.
1251
1252 2011-10-12  Kai Tietz  <ktietz@redhat.com>
1253
1254         * config/i386/i386.md (simple_return): Disable if TARGET_SEH is active.
1255
1256 2011-10-12  Steve Ellcey  <sje@cup.hp.com>
1257
1258         * config/ia64/ia64.c (ia64_init_builtins): Fix unbalanced parentheses.
1259
1260 2011-10-12  Richard Guenther  <rguenther@suse.de>
1261
1262         * tree-ssa-alias.c (maybe_skip_until): Cache also at the point
1263         of the first store we visit in a basic-block.
1264         (get_continuation_for_phi): Search for a candidate VUSE that
1265         might dominates all others.  Do pairwise disambiguation against
1266         that candidate.
1267
1268 2011-10-12  Paul Koning  <pkoning@gcc.gnu.org>
1269
1270         PR tree-optimization/50189
1271         * tree-vrp.c (extract_range_from_assert): Use the type of
1272         the variable, not the limit.
1273
1274 2011-10-12  Richard Guenther  <rguenther@suse.de>
1275
1276         PR tree-optimization/50700
1277         * tree-object-size.c (addr_object_size): Simplify and treat
1278         MEM_REF bases consistently.
1279
1280 2011-10-12  Bernd Schmidt  <bernds@codesourcery.com>
1281
1282         * function.c (prepare_shrink_wrap, bb_active_p): New function.
1283         (thread_prologue_and_epilogue_insns): Use bb_active_p.
1284         Call prepare_shrink_wrap, then recompute bb_active_p for the
1285         last block.
1286
1287 2011-10-12  Joseph Myers  <joseph@codesourcery.com>
1288
1289         PR c/50565
1290         * convert.c (convert_to_integer): Do not narrow operands of
1291         pointer subtraction.
1292
1293 2011-10-12  Nick Clifton  <nickc@redhat.com>
1294
1295         * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): New macro.  Used to
1296         emit a .eabi_attribute assembler directive, possibly with a
1297         comment attached.
1298         * config/arm/arm.c (arm_file_start): Use the new macro.
1299         * config/arm/arm-c.c (arm_output_c_attributes): Likewise.
1300
1301 2011-10-12  Georg-Johann Lay  <avr@gjlay.de>
1302
1303         PR target/49939
1304         * config/avr/avr.md (*movqi): Rename to movqi_insn.
1305         (*call_insn): Rename to call_insn.
1306         (*call_value_insn): Rename to call_value_insn.
1307         * config/avr/avr.c (avr_2word_insn_p): New static function.
1308         (jump_over_one_insn_p): Use it.
1309
1310 2011-10-12  Richard Sandiford  <richard.sandiford@linaro.org>
1311
1312         * expr.h (copy_blkmode_to_reg): Declare.
1313         * expr.c (copy_blkmode_to_reg): New function.
1314         (expand_assignment): Don't expand register RESULT_DECLs before
1315         the lhs.  Use copy_blkmode_to_reg to copy BLKmode values into a
1316         RESULT_DECL register.
1317         (expand_expr_real_1): Handle BLKmode decls when looking for promotion.
1318         * stmt.c (expand_return): Move BLKmode-to-register code into
1319         copy_blkmode_to_reg.
1320
1321 2011-10-11  Eric Botcazou  <ebotcazou@adacore.com>
1322
1323         PR target/49965
1324         * config/sparc/sparc.md (mov<I:mode>cc): Do not save comparison code.
1325         (mov<F:mode>cc): Likewise.
1326
1327 2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1328
1329         * tree-ssa-address.c (copy_ref_info): Remove copy of TREE_THIS_NOTRAP.
1330
1331 2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
1332
1333         * tree.h (built_in_decls): Delete old interface with two parallel
1334         arrays to hold standard builtin declarations, and replace it with
1335         a function based interface that can support creating builtins on
1336         the fly in the future.  Change all uses, and poison the old
1337         names.  Make sure 0 is not a legitimate builtin index.
1338         (implicit_built_in_decls): Ditto.
1339         (built_in_info): Ditto.
1340         (BUILTIN_VALID_P): Ditto.
1341         (builtin_decl_explicit): Ditto.
1342         (builtin_decl_implicit): Ditto.
1343         (set_builtin_decl): Ditto.
1344         (set_builtin_decl_implicit_p): Ditto.
1345         (builtin_decl_explicit_p): Ditto.
1346         (builtin_decl_implicit_p): Ditto.
1347         * tree-complex.c (expand_complex_libcall): Ditto.
1348         * tree-loop-distribution.c (generate_memset_zero): Ditto.
1349         * tree-ssa-strlen.c (get_string_length): Ditto.
1350         (handle_builtin_strcpy): Ditto.
1351         (handle_builtin_strcat): Ditto.
1352         * tree.c (iterative_hash_expr): Ditto.
1353         (local_define_builtin): Ditto.
1354         (build_common_builtin_nodes): Ditto.
1355         * builtins.c (built_in_decls): Ditto.
1356         (implicit_built_in_decls): Ditto.
1357         (built_in_info): Ditto
1358         (expand_builtin_classify_type): Ditto.
1359         (mathfn_built_in_1): Ditto.
1360         (expand_builtin_cexpi): Ditto.
1361         (expand_builtin_mempcpy_args): Ditto.
1362         (expand_builtin_stpcpy): Ditto.
1363         (gimplify_va_arg_expr): Ditto.
1364         (expand_builtin_sync_operation): Ditto.
1365         (build_builtin_expect_predicate): Ditto.
1366         (fold_builtin_memory_op): Ditto.
1367         (fold_builtin_strcpy): Ditto.
1368         (fold_builtin_stpcpy): Ditto.
1369         (fold_builtin_strncpy): Ditto.
1370         (fold_builtin_interclass_mathfn): Ditto.
1371         (fold_builtin_classify): Ditto.
1372         (fold_builtin_2): Ditto.
1373         (fold_builtin_strstr): Ditto.
1374         (fold_builtin_strrchr): Ditto.
1375         (fold_builtin_strpbrk): Ditto.
1376         (fold_builtin_strcat): Ditto.
1377         (fold_builtin_strncat): Ditto.
1378         (fold_builtin_strcspn): Ditto.
1379         (fold_builtin_fputs): Ditto.
1380         (fold_builtin_sprintf): Ditto.
1381         (fold_builtin_snprintf): Ditto.
1382         (expand_builtin_memory_chk): Ditto.
1383         (fold_builtin_memory_chk): Ditto.
1384         (fold_builtin_stxcpy_chk): Ditto.
1385         (fold_builtin_strncpy_chk): Ditto.
1386         (fold_builtin_strcat_chk): Ditto.
1387         (fold_builtin_strncat_chk): Ditto.
1388         (fold_builtin_sprintf_chk_1): Ditto.
1389         (fold_builtin_snprintf_chk_1): Ditto.
1390         (fold_builtin_printf): Ditto.
1391         (fold_builtin_fprintf): Ditto.
1392         (fold_call_stmt): Ditto.
1393         (set_builtin_user_assembler_name): Ditto.
1394         * tree-emutls.c (emutls_common_1): Ditto.
1395         * omp-low.c (scan_omp): Ditto.
1396         (lower_rec_input_clauses): Ditto.
1397         (lower_reduction_clauses): Ditto.
1398         (expand_parallel_call): Ditto.
1399         (expand_task_call): Ditto.
1400         (maybe_catch_exception): Ditto.
1401         (optimize_omp_library_calls): Ditto.
1402         (expand_omp_for_generic): Ditto.
1403         (expand_omp_for_static_nochunk): Ditto.
1404         (expand_omp_for_static_chunk): Ditto.
1405         (expand_omp_sections): Ditto.
1406         (expand_omp_atomic_fetch_op): Ditto.
1407         (expand_omp_atomic_pipeline): Ditto.
1408         (expand_omp_atomic_mutex): Ditto.
1409         (lower_omp_single_simple): Ditto.
1410         (lower_omp_single_copy): Ditto.
1411         (lower_omp_master): Ditto.
1412         (lower_omp_ordered): Ditto.
1413         (lower_omp_critical): Ditto.
1414         * tree-ssa-ccp.c (optimize_stdarg_builtin): Ditto.
1415         * builtins.c (DEF_BUILTIN_STUB): Ditto.
1416         (BUILT_IN_NONE): Ditto.
1417         * tree-ssa-math-opts.c (execute_optimize_bswap): Ditto.
1418         * gimple-low.c (lower_function_body): Ditto.
1419         (lower_builtin_setjmp): Ditto.
1420         * c-decl.c (merge_decls): Ditto.
1421         * tree-eh.c (lower_resx): Ditto.
1422         (lower_resx): Ditto.
1423         (lower_eh_dispatch): Ditto.
1424         * function (gimplify_parameters): Ditto.
1425         * c-typeck.c (build_function_call_vec): Ditto.
1426         * gimplify.c (build_stack_save_restore): Ditto.
1427         (gimplify_vla_decl): Ditto.
1428         (gimplify_modify_expr_to_memcpy): Ditto.
1429         (gimplify_modify_expr_to_memset): Ditto.
1430         (gimplify_variable_sized_compare): Ditto.
1431         (gimplify_function_tree): Ditto.
1432         * calls.c (emit_call_1): Ditto.
1433         * tree-ssa-forprop.c (simplify_builtin_call): Ditto.
1434         * tree-nested.c (convert_nl_goto_reference): Ditto.
1435         (convert_tramp_reference_op): Ditto.
1436         (finalize_nesting_tree_1): Ditto.
1437         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
1438         (tree_ssa_prefetch_arrays): Ditto.
1439         * tree-streamer-in.c (streamer_get_builtin_tree): Ditto.
1440         * system.h (built_in_decls): Ditto.
1441         (implicit_built_in_decls): Ditto.
1442         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1443         * config/sparc/sparc.c (sparc_gimplify_va_arg): Ditto.
1444         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
1445         (ix86_veclibabi_svml): Ditto.
1446         (ix86_veclibabi_acml): Ditto.
1447         * config/vms/vms.c (vms_patch_builtins): Ditto.
1448         * config/ia64/ia64.c (ia64_init_builtins): Ditto.
1449         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Ditto.
1450         (rs6000_builtin_vectorized_libmass): Ditto.
1451         (rs6000_init_builtins): Ditto.
1452         * config/darwin.c (darwin_override_options): Ditto.
1453         (darwin_patch_builtin): Ditto.
1454         (darwin_rename_builtins): Ditto.
1455         * config/pa/pa.c (pa_init_builtins): Ditto.
1456
1457 2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1458
1459         * tree.h (copy_ref_info): Expose existing function.
1460         * tree-ssa-loop-ivopts.c (copy_ref_info): Move function to...
1461         * tree-ssa-address.c (copy_ref_info): ...here, and remove static token.
1462
1463 2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
1464
1465         * config/avr/avr-protos.h (avr_mode_code_base_reg_class): New
1466         prototype.
1467         (avr_regno_mode_code_ok_for_base_p): New prototype.
1468         * config/avr/avr.h (BASE_REG_CLASS): Remove.
1469         (REGNO_OK_FOR_BASE_P): Remove.
1470         (REG_OK_FOR_BASE_NOSTRICT_P): Remove.
1471         (REG_OK_FOR_BASE_STRICT_P): Remove.
1472         (MODE_CODE_BASE_REG_CLASS): New define.
1473         (REGNO_MODE_CODE_OK_FOR_BASE_P): New define.
1474         * config/avr/avr.c (avr_mode_code_base_reg_class): New function.
1475         (avr_regno_mode_code_ok_for_base_p): New function.
1476         (avr_reg_ok_for_addr_p): New static function.
1477         (avr_legitimate_address_p): Use it.  Beautify.
1478
1479 2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
1480
1481         PR target/50447
1482         * config/avr/avr.md (cc): Add out_plus attribute alternative.
1483         (addsi3): Use it.  Adapt avr_out_plus to new prototype.  Use
1484         avr_out_plus for all CONST_INT addends.
1485         * config/avr/avr-protos.h (avr_out_plus): Change prototype.
1486         * config/avr/avr.c (notice_update_cc): Call avr_out_plus on
1487         CC_OUT_PLUS.
1488         (avr_out_plus_1): Change prototype and report effect on cc0.
1489         (avr_out_plus): Ditto.
1490         (adjust_insn_length): Adapt call to avr_out_plus to new prototype.
1491
1492 2011-10-11  H.J. Lu  <hongjiu.lu@intel.com>
1493
1494         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove
1495         the extra break.
1496
1497 2011-10-11  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
1498
1499         * doc/invoke.texi: Document new warning.
1500         * common.opt (Wvector-operation-performance): Define new warning.
1501         * tree-vect-generic.c (expand_vector_piecewise): Warn about expanded
1502         vector operation.
1503         (exapnd_vector_parallel): Warn about expanded vector operation.
1504         (lower_vec_shuffle): Warn about expanded vector operation.
1505         * c-typeck.c (c_build_vec_perm_expr): Store correct location
1506         when creating VEC_PERM_EXPR.
1507
1508 2011-10-11  Richard Guenther  <rguenther@suse.de>
1509
1510         PR tree-optimization/50204
1511         * tree-ssa-alias.c (get_continuation_for_phi_1): Split out
1512         two argument handling from ...
1513         (get_continuation_for_phi): ... here.  Handle arbitrary number
1514         of PHI args.
1515
1516 2011-10-11  Richard Sandiford  <richard.sandiford@linaro.org>
1517
1518         * modulo-sched.c: Fix comment typo.  Mention the possibility
1519         of using scheduling windows of II+1 cycles.
1520
1521 2011-10-11  Tristan Gingold  <gingold@adacore.com>
1522
1523         * doc/invoke.texi (C Dialect Options): Document
1524         -fallow-parameterless-variadic-functions.
1525         * c-parser.c (c_parser_parms_list_declarator): Handle it.
1526
1527 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
1528
1529         * config/avr/avr.c (avr_option_override): Set
1530         flag_omit_frame_pointer to 0 if frame pointer is needed for unwinding.
1531
1532 2011-10-10  Uros Bizjak  <ubizjak@gmail.com>
1533
1534         PR bootstrap/50665
1535         * optabs.h (DOI_vec_perm): Rename from OTI_vec_perm.  Move from enum
1536         optab_index to enum direct_optab_index.
1537         (vec_perm_optab): Update.
1538
1539 2011-10-10  Anatoly Sokolov  <aesok@post.ru>
1540
1541         * config/cris/cris.c (cris_preferred_reload_class): New function.
1542         (TARGET_PREFERRED_RELOAD_CLASS): Define.
1543         * config/cris/cris.h (PREFERRED_RELOAD_CLASS): Remove.
1544
1545 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
1546
1547         * config/avr/avr.md (*tablejump_rjmp): Change insn condition to
1548         !AVR_HAVE_JMP_CALL.
1549         (*tablejump_lib): Change insn condition to AVR_HAVE_JMP_CALL.
1550         (*tablejump_enh, *tablejump): Remove insns.
1551         * config/avr/libgcc.S (__tablejump__): Use RET instead of EIND +
1552         EIJMP for indirect jump.  Use LPM Z+ where available.
1553
1554 2011-10-10  Richard Henderson  <rth@redhat.com>
1555
1556         * doc/md.texi (vec_perm_const): Fix typo in cindex.
1557
1558 2011-10-10  Kirill Yukhin  <kirill.yukhin@intel.com>
1559             Yakovlev Vladimir  <vladimir.b.yakovlev@intel.com>
1560
1561         * config/i386/sse.md (fma_fnmsub_<mode>): Fix a typo.
1562
1563 2011-10-10  Richard Guenther  <rguenther@suse.de>
1564
1565         PR middle-end/50389
1566         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
1567         mark symbols for renaming.  Append the VUSE to all statements
1568         that possibly can have one.
1569
1570 2011-10-10  Richard Guenther  <rguenther@suse.de>
1571
1572         * ipa-split.c (pass_split_functions): Add verification TODOs.
1573         (pass_feedback_split_functions): Likewise.
1574
1575 2011-10-10  Richard Guenther  <rguenther@suse.de>
1576
1577         PR middle-end/50195
1578         * fold-const.c (fold_binary_loc): Canonicalize x*x to pow (x, 2)
1579         only when optimizing.
1580
1581 2011-10-10  Nick Clifton  <nickc@redhat.com>
1582
1583         PR middle-end/49801
1584         * compare-elim.c (find_comparisons_in_bb): Use df_get_live_in and
1585         df_get_live_out instead of accessing the bitmaps directly.
1586         (execute_compare_elim_after_reload): Remove calls to df_set_flags,
1587         df_live_add_problem and df_analyze.
1588
1589 2011-10-10  Michael Matz  <matz@suse.de>
1590
1591         PR middle-end/50638
1592         * tree-emutls.c (gen_emutls_addr): Call add_referenced_var.
1593
1594 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
1595
1596         * modulo-sched.c (ps_reg_move_info): Add num_consecutive_stages.
1597         (SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES): Delete.
1598         (node_sched_params): Remove first_reg_move and nreg_moves.
1599         (ps_num_consecutive_stages, extend_node_sched_params): New functions.
1600         (update_node_sched_params): Move up file.
1601         (print_node_sched_params): Print the stage.  Don't dump info related
1602         to first_reg_move and nreg_moves.
1603         (set_columns_for_row): New function.
1604         (set_columns_for_ps): Move up file and use set_columns_for_row.
1605         (schedule_reg_move): New function.
1606         (schedule_reg_moves): Call extend_node_sched_params and
1607         schedule_reg_move.  Extend size of uses bitmap.  Initialize
1608         num_consecutive_stages.  Return false if a move could not be
1609         scheduled.
1610         (apply_reg_moves): Don't emit moves here.
1611         (permute_partial_schedule): Handle register moves.
1612         (duplicate_insns_of_cycles): Remove for_prolog.  Emit moves according
1613         to the same stage-count test as ddg nodes.
1614         (generate_prolog_epilog): Update calls accordingly.
1615         (sms_schedule): Allow move-scheduling to add a new first stage.
1616
1617 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
1618
1619         * modulo-sched.c (ps_insn): Adjust comment.
1620         (ps_reg_move_info): New structure.
1621         (partial_schedule): Add reg_moves field.
1622         (SCHED_PARAMS): Use node_sched_param_vec instead of node_sched_params.
1623         (node_sched_params): Turn first_reg_move into an identifier.
1624         (ps_reg_move): New function.
1625         (ps_rtl_insn): Cope with register moves.
1626         (ps_first_note): Adjust comment and assert that the instruction
1627         isn't a register move.
1628         (node_sched_params): Replace with...
1629         (node_sched_param_vec): ...this vector.
1630         (set_node_sched_params): Adjust accordingly.
1631         (print_node_sched_params): Take a partial schedule instead of a ddg.
1632         Use ps_rtl_insn and ps_reg_move.
1633         (generate_reg_moves): Rename to...
1634         (schedule_reg_moves): ...this.  Remove rescan parameter.  Record each
1635         move in the partial schedule, but don't emit it here.  Don't perform
1636         register substitutions here either.
1637         (apply_reg_moves): New function.
1638         (duplicate_insns_of_cycles): Use register indices directly,
1639         rather than finding instructions using PREV_INSN.  Use ps_reg_move.
1640         (sms_schedule): Call schedule_reg_moves before committing to
1641         a partial schedule.   Try the next ii if the schedule fails.
1642         Use apply_reg_moves instead of generate_reg_moves.  Adjust
1643         call to print_node_sched_params.  Free node_sched_param_vec
1644         instead of node_sched_params.
1645         (create_partial_schedule): Initialize reg_moves.
1646         (free_partial_schedule): Free reg_moves.
1647
1648 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
1649
1650         * modulo-sched.c (ps_insn): Replace node field with an identifier.
1651         (SCHED_ASAP): Replace with..
1652         (NODE_ASAP): ...this macro.
1653         (SCHED_PARAMS): New macro.
1654         (SCHED_TIME, SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES, SCHED_ROW)
1655         (SCHED_STAGE, SCHED_COLUMN): Redefine using SCHED_PARAMS.
1656         (node_sched_params): Remove asap.
1657         (ps_rtl_insn, ps_first_note): New functions.
1658         (set_node_sched_params): Use XCNEWVEC.  Don't copy across the
1659         asap values.
1660         (print_node_sched_params): Use SCHED_PARAMS and NODE_ASAP.
1661         (generate_reg_moves): Pass ids to the SCHED_* macros.
1662         (update_node_sched_params): Take a ps insn identifier rather than
1663         a node as parameter.  Use ps_rtl_insn.
1664         (set_columns_for_ps): Update for above field and SCHED_* macro changes.
1665         (permute_partial_schedule): Use ps_rtl_insn and ps_first_note.
1666         (optimize_sc): Update for above field and SCHED_* macro changes.
1667         Update calls to try_scheduling_node_in_cycle and
1668         update_node_sched_params.
1669         (duplicate_insns_of_cycles): Adjust for above field and SCHED_*
1670         macro changes.  Use ps_rtl_insn and ps_first_note.
1671         (sms_schedule): Pass ids to the SCHED_* macros.
1672         (get_sched_window): Adjust for above field and SCHED_* macro changes.
1673         Use NODE_ASAP instead of SCHED_ASAP.
1674         (try_scheduling_node_in_cycle): Remove node parameter.  Update
1675         call to ps_add_node_check_conflicts.  Pass ids to the SCHED_* macros.
1676         (sms_schedule_by_order): Update call to try_scheduling_node_in_cycle.
1677         (ps_insert_empty_row): Adjust for above field changes.
1678         (compute_split_row): Use ids rather than nodes.
1679         (verify_partial_schedule): Adjust for above field changes.
1680         (print_partial_schedule): Use ps_rtl_insn.
1681         (create_ps_insn): Take an id rather than a node.
1682         (ps_insn_find_column): Adjust for above field changes.
1683         Use ps_rtl_insn.
1684         (ps_insn_advance_column): Adjust for above field changes.
1685         (add_node_to_ps): Remove node parameter.  Update call to
1686         create_ps_insn.
1687         (ps_has_conflicts): Use ps_rtl_insn.
1688         (ps_add_node_check_conflicts): Replace node parameter than an id.
1689
1690 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
1691
1692         * modulo-sched.c (undo_replace_buff_elem): Delete.
1693         (generate_reg_moves): Don't build and return an undo list.
1694         (free_undo_replace_buff): Delete.
1695         (sms_schedule): Adjust call to generate_reg_moves.
1696         Don't call free_undo_replace_buff.
1697
1698 2011-10-10  Matthias Klose <doko@ubuntu.com>
1699
1700         * common/config/m32c: Remove empty directory.
1701
1702 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
1703
1704         * config/avr/avr.md (*mulhi3_enh): Treat squaring smarter.
1705
1706 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
1707
1708         PR target/50652
1709         * config/avr/avr-mcus.def (AVR_MCU): Set .data_section_start of
1710         atmega164a to 0x100.
1711
1712 2011-10-09  Eric Botcazou  <ebotcazou@adacore.com>
1713
1714         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Do not make
1715         the replacement if the conversion to the LHS type is not useless.
1716
1717 2011-10-09  Ira Rosen  <ira.rosen@linaro.org>
1718
1719         PR tree-optimization/50635
1720         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add
1721         DEF_STMT to the list of statements to be replaced by the
1722         pattern statements.
1723         (vect_handle_widen_mult_by_const): Don't check TYPE_OUT.
1724
1725 2011-10-09  Anatoly Sokolov  <aesok@post.ru>
1726
1727         * system.h: Commit forgotten hunk in previous patch.
1728         (OUTPUT_ADDR_CONST_EXTRA): Poison.
1729
1730 2011-10-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1731
1732         PR libobjc/50428
1733         * doc/objc.texi (Garbage Collection): Updated example to protect
1734         +initialize against execution in subclasses.
1735
1736 2011-10-07  Richard Henderson  <rth@redhat.com>
1737
1738         * doc/extend.texi (__builtin_shuffle): Improve the description to
1739         include the modulus of the selector.  Mention OpenCL.
1740         * doc/md.texi (vec_perm, vec_perm_const): Document named patterns.
1741
1742         * tree.def (VEC_PERM_EXPR): Rename from VEC_SHUFFLE_EXPR.
1743         * genopinit.c (optabs): Rename vshuffle to vec_perm.
1744         * c-typeck.c (c_build_vec_perm_expr): Rename from
1745         c_build_vec_shuffle_expr.  Update for name changes.
1746         * optabs.c (expand_vec_perm_expr_p): Rename from
1747         expand_vec_shuffle_expr_p.
1748         (expand_vec_perm_expr): Rename from expand_vec_shuffle_expr.
1749         * optabs.h (OTI_vec_perm): Rename from DOI_vshuffle.
1750         (vec_perm_optab): Rename from vshuffle_optab.
1751         * expr.c, gimple-pretty-print.c, gimple.c, gimplify.c,
1752         c-tree.h, c-parser.c, tree-cfg.c, tree-inline.c, tree-pretty-print.c,
1753         tree-ssa-operands.c, tree-vect-generic.c: Update for name changes.
1754
1755         * config/i386/i386.c (ix86_expand_vec_perm): Rename from
1756         ix86_expand_vshuffle.
1757         * config/i386/i386-protos.h: Update.
1758         * config/i386/sse.md (VEC_PERM_AVX2): Rename from VSHUFFLE_AVX2.
1759         (vec_perm<VEC_PERM_AVX2>): Rename from vshuffle<VSHUFFLE_AVX2>.
1760
1761 2011-10-07  Richard Henderson  <rth@redhat.com>
1762
1763         * config/i386/predicates.md (avx2_pblendw_operand): New.
1764         * config/i386/sse.md (sse4_1_pblendw): Un-macroize.
1765         (avx2_pblendw, *avx2_pblendw): New expander and insn.
1766
1767 2011-10-07  Richard Henderson  <rth@redhat.com>
1768
1769         * config/i386/i386.c (bdesc_args): Update code for
1770         __builtin_ia32_palignr256.  Change type of __builtin_ia32_pslldqi256,
1771         and __builtin_ia32_psrldqi256 to V4DI_FTYPE_V4DI_INT_CONVERT.
1772         (ix86_expand_args_builtin): Handle V4DI_FTYPE_V4DI_INT_CONVERT.
1773         * config/i386/sse.md (mode iterator V16): Add V2TI.
1774         (mode iterator SSESCALARMODE): Use V2TI not V4DI.
1775         (mode attr ssse3_avx2): Add V2TI.
1776         (avx2_lshrqv4di3, avx2_lshlqv4di3): Remove.
1777
1778 2011-10-07  David S. Miller  <davem@davemloft.net>
1779
1780         PR 50655
1781         * configure.ac: Add .register directives to VIS3 test.
1782         * configure: Regenerate.
1783
1784 2011-10-07  Richard Henderson  <rth@redhat.com>
1785
1786         * config.gcc (x86_64-*): Add core-avx-i, core-avx2 for with_cpu.
1787
1788 2011-10-07  Richard Henderson  <rth@redhat.com>
1789
1790         PR 49752
1791         * fold-const.c (fold_checksum_tree): Remove out-of-date assert.
1792
1793 2011-10-07  Andrew Stubbs  <ams@codesourcery.com>
1794
1795         * config/arm/predicates.md (shift_amount_operand): Remove constant
1796         range check.
1797         (shift_operator): Check range of constants for all shift operators.
1798
1799 2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1800
1801         * config/s390/s390.c (s390_emit_tls_call_insn): Remove assertion.
1802         Load GOT pointer for non-pic builds.
1803         (s390_load_got): Replace pic_offset_table_rtx with hardcoded r12.
1804         (s390_emit_call): Likewise.
1805
1806 2011-10-07  Tom de Vries  <tom@codesourcery.com>
1807
1808         PR middle-end/50527
1809         * tree.c (build_common_builtin_nodes): Add local_define_builtin for
1810         BUILT_IN_ALLOCA_WITH_ALIGN.  Mark that BUILT_IN_ALLOCA_WITH_ALIGN can
1811         throw.
1812         * builtins.c (expand_builtin_alloca): Handle BUILT_IN_ALLOCA_WITH_ALIGN
1813         arglist.  Set align for BUILT_IN_ALLOCA_WITH_ALIGN.
1814         (expand_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
1815         (is_inexpensive_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
1816         * tree-ssa-ccp.c (evaluate_stmt): Set align for
1817         BUILT_IN_ALLOCA_WITH_ALIGN.
1818         (fold_builtin_alloca_for_var): Rename to ...
1819         (fold_builtin_alloca_with_align): Set DECL_ALIGN from 2nd
1820         BUILT_IN_ALLOCA_WITH_ALIGN argument.
1821         (ccp_fold_stmt): Try folding BUILT_IN_ALLOCA_WITH_ALIGN using
1822         fold_builtin_alloca_with_align.
1823         (optimize_stack_restore): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
1824         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN): Declare using
1825         DEF_BUILTIN_STUB.
1826         * ipa-pure-const.c (special_builtin_state): Handle
1827         BUILT_IN_ALLOCA_WITH_ALIGN.
1828         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1)
1829         (call_may_clobber_ref_p_1): Same.
1830         * function.c (gimplify_parameters): Lower vla to
1831         BUILT_IN_ALLOCA_WITH_ALIGN.
1832         * gimplify.c (gimplify_vla_decl): Same.
1833         * cfgexpand.c (expand_call_stmt): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
1834         * tree-mudflap.c (mf_xform_statements): Same.
1835         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
1836         (mark_all_reaching_defs_necessary_1, propagate_necessity): Same.
1837         * varasm.c (incorporeal_function_p): Same.
1838         * tree-object-size.c (alloc_object_size): Same.
1839         * gimple.c (gimple_build_call_from_tree): Same.
1840
1841 2011-10-07  Bernd Schmidt  <bernds@codesourcery.com>
1842
1843         * function.c (frame_required_for_rtx): Remove function.
1844         (requires_stack_frame_p): New arg set_up_by_prologue.  All callers
1845         changed.  Compute a set of mentioned registers and compare against
1846         the new arg rather than calling frame_required_for_rtx.
1847         (thread_prologue_and_epilogue_insns): Compute the set_up_by_prologue
1848         reg set.  Convert the unconverted_simple_returns mechanism to store
1849         jump insns rather than their basic blocks.  Also check the
1850         orig_entry_edge destination for new blocks.
1851
1852 2011-10-07  Jakub Jelinek  <jakub@redhat.com>
1853
1854         PR tree-optimization/50650
1855         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Don't
1856         call vect_is_simple_cond here, instead fail if cond_expr isn't
1857         COMPARISON_CLASS_P or if get_vectype_for_scalar_type returns NULL
1858         for cond_expr's first operand.
1859         * tree-vect-stmts.c (vect_is_simple_cond): Static again.
1860         * tree-vectorizer.h (vect_is_simple_cond): Remove prototype.
1861
1862 2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1863
1864         * config/s390/s390.md (DWH, dwh): New mode macros.
1865         ("umulsidi3"): Extend to support "umulditi3" as well.
1866
1867 2011-10-07  Uros Bizjak  <ubizjak@gmail.com>
1868             H.J. Lu  <hongjiu.lu@intel.com>
1869
1870         PR target/50603
1871         * config/i386/i386.c (ix86_fixup_binary_operands): Force src2 of
1872         integer PLUS RTX to a register to improve address combine.
1873
1874 2011-10-06  Richard Henderson  <rth@redhat.com>
1875
1876         * combine-stack-adjust.c (maybe_move_args_size_note): Add after
1877         parameter; use it to decide whether to merge two notes.
1878         (combine_stack_adjustments_for_block): Use maybe_move_args_size_note
1879         for the deallocation case as well.
1880
1881 2011-10-06  Anatoly Sokolov  <aesok@post.ru>
1882
1883         * system.h (OUTPUT_ADDR_CONST_EXTRA): Poison.
1884         * doc/tm.texi.in (OUTPUT_ADDR_CONST_EXTRA): Remove documentation.
1885         * doc/tm.texi: Regenerate.
1886         * target.def (output_addr_const_extra): Use
1887         hook_bool_FILEptr_rtx_false.
1888         * targhooks.c (default_asm_output_addr_const_extra): Remove.
1889         * targhooks.h (default_asm_output_addr_const_extra): Remove.
1890         * hooks.c (hook_bool_FILEptr_rtx_false): New functions.
1891         * hooks.h (hook_bool_FILEptr_rtx_false): Declare.
1892
1893 2011-10-06  David S. Miller  <davem@davemloft.net>
1894
1895         * config/sparc/sparc.md (popcount<mode>2, clz<mode>2): Split up into...
1896         (popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the
1897         SI mode 64-bit code gen case explicitly zero-extend and truncate.
1898         (*popcount<mode>_sp64): Split up into...
1899         (*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the
1900         SImode case use truncate.
1901         (*clzsi_sp64): Rewrite to use truncate, and let the expander emit the
1902         subtract so the compiler can optimize it.
1903         (SIDI): Remove unused mode iterator.
1904
1905 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
1906
1907         * function.c (thread_prologue_and_epilogue_insns): Emit split prologue
1908         on the orig_entry_edge. Don't account for it in prologue_clobbered.
1909
1910 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
1911
1912         PR tree-optimization/50596
1913         * tree-vectorizer.h (vect_is_simple_cond): New prototype.
1914         (NUM_PATTERNS): Change to 6.
1915         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New
1916         function.
1917         (vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern.
1918         (vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt
1919         if it already has one, and don't set STMT_VINFO_VECTYPE in it
1920         if it is already set.
1921         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle
1922         COND_EXPR in pattern stmts.
1923         (vect_is_simple_cond): No longer static.
1924
1925 2001-10-06  Richard Henderson  <rth@redhat.com>
1926
1927         * config/i386/i386.c (ix86_expand_vshuffle): Add AVX2 support.
1928         * config/i386/sse.md (sseshuffint): Remove.
1929         (sseintvecmode): Support V16HI, V8HI, V32QI, V16QI.
1930         (VSHUFFLE_AVX2): New mode iterator.
1931         (vshuffle<mode>): Use it.
1932         (avx_vec_concat<V_256>): Rename from *vec_concat<V_256>_avx.
1933
1934         * config/i386/i386.c (ix86_expand_sse_movcc): Use correct mode
1935         for vector_all_ones_operand.
1936         (ix86_expand_int_vcond): Distinguish between comparison mode
1937         and data mode.  Allow them to differ.
1938         (ix86_expand_vshuffle): Don't force data mode to match maskmode.
1939
1940 2001-10-06  Richard Henderson  <rth@redhat.com>
1941
1942         * optabs.c (expand_vec_shuffle_expr): Use the proper mode for the
1943         mask operand.  Tidy the code.
1944
1945 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
1946
1947         * tree-vect-patterns.c (vect_pattern_recog_1): Use
1948         vect_recog_func_ptr typedef for the first argument.
1949         (vect_pattern_recog): Rename vect_recog_func_ptr variable
1950         to vect_recog_func, use vect_recog_func_ptr typedef for it.
1951
1952         PR tree-optimization/49279
1953         * tree-ssa-structalias.c (find_func_aliases): Don't handle
1954         CAST_RESTRICT.
1955         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow
1956         restrict propagation.
1957         * tree-ssa.c (useless_type_conversion_p): Don't return false
1958         if TYPE_RESTRICT differs.
1959
1960 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
1961
1962         * function.c (thread_prologue_and_epilogue_insns): Build a vector
1963         of unconverted simple return blocks rather than trying to
1964         recompute them later based on bb_flags bitmap tests.
1965
1966 2011-10-06  Michael Matz  <matz@suse.de>
1967
1968         * tree-flow.h (get_var_ann): Don't declare.
1969         * tree-flow-inline.h (get_var_ann): Remove.
1970         (set_is_used): Use var_ann, not get_var_ann.
1971         * tree-dfa.c (add_referenced_var): Inline body of get_var_ann.
1972         * tree-profile.c (gimple_gen_edge_profiler): Call
1973         find_referenced_var_in.
1974         (gimple_gen_interval_profiler): Ditto.
1975         (gimple_gen_pow2_profiler): Ditto.
1976         (gimple_gen_one_value_profiler): Ditto.
1977         (gimple_gen_average_profiler): Ditto.
1978         (gimple_gen_ior_profiler): Ditto.
1979         (gimple_gen_ic_profiler): Ditto plus call add_referenced_var.
1980         (gimple_gen_ic_func_profiler): Call add_referenced_var.
1981         * tree-mudflap.c (execute_mudflap_function_ops): Call
1982         add_referenced_var.
1983
1984 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
1985
1986         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs
1987         don't set SSA_NAME_DEF_STMT that has been already set by
1988         gimple_build_assign_with_ops.
1989         (vect_recog_pow_pattern, vect_recog_widen_sum_pattern,
1990         vect_operation_fits_smaller_type, vect_recog_over_widening_pattern):
1991         Likewise.
1992
1993         * tree.h (avoid_folding_inline_builtin): New prototype.
1994         * builtins.c (avoid_folding_inline_builtin): No longer static.
1995         * gimple-fold.c (gimple_fold_builtin): Give up if
1996         avoid_folding_inline_builtin returns true.
1997
1998 2011-10-06  Richard Guenther  <rguenther@suse.de>
1999
2000         * tree-vect-generic.c (vector_element): Look at previous
2001         generated results.
2002
2003 2011-10-06  David Edelsohn  <dje.gcc@gmail.com>
2004
2005         PR target/39950
2006         * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Define
2007         __powerpc__, __PPC__, __unix__.
2008
2009 2011-10-06  Michael Matz  <matz@suse.de>
2010
2011         * i386/i386.opt (recip_mask, recip_mask_explicit,
2012         x_recip_mask_explicit): New variables and cl_target member.
2013         (mrecip=): New option.
2014         * i386/i386.h (RECIP_MASK_DIV, RECIP_MASK_SQRT, RECIP_MASK_VEC_DIV,
2015         RECIP_MASK_VEC_SQRT, RECIP_MASK_ALL, RECIP_MASK_NONE): New bitmasks.
2016         (TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_VEC_DIV,
2017         TARGET_RECIP_VEC_SQRT): New tests.
2018         * i386/i386.md (divsf3): Check TARGET_RECIP_DIV.
2019         (sqrt<mode>2): Check TARGET_RECIP_SQRT.
2020         * i386/sse.md (div<mode>3): Check TARGET_RECIP_VEC_DIV.
2021         (sqrt<mode>2): Check TARGET_RECIP_VEC_SQRT.
2022         * i386/i386.c (ix86_option_override_internal): Set recip_mask
2023         for -mrecip and -mrecip=options.
2024         (ix86_function_specific_save): Save recip_mask_explicit.
2025         (ix86_function_specific_restore): Restore recip_mask_explicit.
2026
2027         * doc/invoke.texi (ix86 Options): Document the new option.
2028
2029 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
2030
2031         PR target/49049
2032         * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.
2033
2034 2011-10-06  Ulrich Weigand  <ulrich.weigand@linaro.org>
2035
2036         PR target/50305
2037         * config/arm/arm.c (arm_legitimize_reload_address): Recognize
2038         output of a previous pass through legitimize_reload_address.
2039         Do not attempt to optimize addresses if the base register is
2040         equivalent to a constant.
2041
2042 2011-10-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2043
2044         * function.c (thread_prologue_and_epilogue_insns): Mark
2045         last_bb_active as possibly unused.  It is unused for targets which
2046         do neither have "return" nor "simple_return" expanders.
2047
2048 2011-10-06  Richard Guenther  <rguenther@suse.de>
2049
2050         * fold-const.c (fold_ternary_loc): Also fold non-constant
2051         vector CONSTRUCTORs.  Make more efficient.
2052         * tree-ssa-dom.c (cprop_operand): Don't handle virtual operands.
2053         (cprop_into_stmt): Don't propagate into virtual operands.
2054         (optimize_stmt): Really dump original statement.
2055
2056 2011-10-06  Nick Clifton  <nickc@redhat.com>
2057
2058         * config/rx/rx.md (smin3): Revert previous delta.
2059
2060 2011-10-06  Richard Guenther  <rguenther@suse.de>
2061
2062         PR tree-optimization/38884
2063         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial
2064         reads from aggregate SSA names.
2065
2066 2011-10-05  Jakub Jelinek  <jakub@redhat.com>
2067
2068         * tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace
2069         argument, truncate it at the beginning instead of allocating there
2070         and freeing at the end.
2071         (vect_pattern_recog): Allocate stmts_to_replace here and free at end,
2072         pass its address to vect_pattern_recog_1.
2073
2074 2011-10-05  David S. Miller  <davem@davemloft.net>
2075
2076         * config/sparc/sparc.opt (POPC): New option.
2077         * doc/invoke.texi: Document it.
2078         * config/sparc/sparc.c (sparc_option_override): Enable MASK_POPC by
2079         default on Niagara-2 and later.
2080         * config/sparc/sparc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
2081         * config/sparc/sparc.md (SIDI): New mode iterator.
2082         (ffsdi2): Delete commented out pattern and comments.
2083         (popcount<mode>2, clz<mode>2): New expanders.
2084         (*popcount<mode>_sp64, popcountsi_v8plus, popcountdi_v8plus,
2085         *clzdi_sp64, clzdi_v8plus, *clzsi_sp64, clzsi_v8plus): New insns.
2086
2087 2011-10-06  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
2088
2089         PR middle-end/50607
2090         * c-tree.h (c_expr_t): New typedef for struct c_expr.
2091         (C_EXPR_APPEND): New macro.
2092         * c-parser.c (c_parser_get_builtin_args): Preserve
2093         original_tree_code of c_expr structure.
2094         (c_parser_postfix_expression): Adjust to the new function.
2095
2096 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
2097
2098         * function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap
2099         if profiling after the prologue.
2100
2101 2011-10-05  Jakub Jelinek  <jakub@redhat.com>
2102
2103         PR tree-optimization/50613
2104         * tree-ssa-strlen.c (find_equal_ptrs): If CASE_CONVERT
2105         operand is ADDR_EXPR, fallthru into ADDR_EXPR handling,
2106         and if it is neither that not SSA_NAME, give up.
2107
2108 2011-10-05  Richard Henderson  <rth@redhat.com>
2109
2110         * tree-vect-generic.c (vector_element): Never fail.  Use
2111         build_zero_cst.  Tidy up type references.
2112         (lower_vec_shuffle): Never fail.  Mask shuffle indicies.  Reduce
2113         code duplication.  Do update_stmt here ...
2114         (expand_vector_operations_1): ... not here.
2115
2116         * config/i386/i386.c (ix86_expand_vshuffle): Never fail.  Handle
2117         TARGET_XOP.  Fix pshufb constant vector creation.  Reduce code
2118         duplication.  Handle V2DI without SSE4.1.
2119         * config/i386/i386-protos.h (ix86_expand_vshuffle): Update decl.
2120         * config/i386/i386.md (vshuffle<V_128>): Remove assert for ok.
2121
2122 2011-10-05  Uros Bizjak  <ubizjak@gmail.com>
2123
2124         * config/i386/i386.c (distance_non_agu_define): Simplify calculation
2125         of "found".  Simplify return value calculation.
2126         (distance_agu_use): Ditto.
2127
2128 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
2129
2130         PR bootstrap/50621
2131         * config/i386/i386.c (ix86_add_cfa_restore_note): Omit notes only
2132         if the function was not shrink-wrapped.
2133         (ix86_expand_epilogue): Ensure queued cfa_adjust notes are attached
2134         to an insn.
2135         * function.c (thread_prologue_and_epilogue_insns): Make sure the
2136         shrink_wrapped flag is set even if there is no dump file.
2137
2138 2011-10-05  DJ Delorie  <dj@redhat.com>
2139             Nick Clifton  <nickc@redhat.com>
2140
2141         * config/rx/rx.opt (mpid): Define.
2142         * config/rx/t-rx (MULTILIB_OPTIONS): Add -mpid
2143         (MULTILIB_DIRNAMES): Add pid.
2144         * config/rx/rx.c (rx_gp_base_regnum_val, rx_pid_base_regnum_val)
2145         (rx_num_interrupt_regs): New variable.
2146         (rx_gp_base_regnum): New function.  Returns the number of the
2147         small data area register.
2148         (rx_pid_base_regnum): New function.  Returns the number of the pid
2149         base register.
2150         (rx_decl_for_addr): New function.  Returns the symbolic part of a MEM.
2151         (rx_pid_data_operand): New function.  Returns whether an object is
2152         in the position independent data area.
2153         (rx_legitimize_address): New function.  Puts undecided PID
2154         objects in the PID data area.
2155         (rx_is_legitimate_address): Add support for PID operands.
2156         (rx_print_operand_address): Likewise.
2157         (rx_print_operand): Likewise.
2158         (rx_maybe_pidify_operand): New function.  Determine if an operand
2159         is suitable for PID addressing.
2160         (rx_gen_move_template): Add PID support.
2161         (rx_conditional_register_usage): Likewise.
2162         (rx_option_override): Initialise rx_num_interrupt_regs.
2163         (rx_is_legitimate_constant): Add support for PID constants.
2164         (TARGET_LEGITIMIZE_ADDRESS): Define.
2165         * config/rx/constraints.md (Rpid): Define.
2166         (Rpda): Define.
2167         * config/rx/rx.md (UNSPEC_PID_ADDR): Define.
2168         (tablejump): Add PID support.
2169         (mov<>): Likewise.
2170         (mov<>_internal): Likewise.
2171         (addsi3): Convert to an expander.  Add PID support.
2172         (pid_addr): New pattern.
2173         * config/rx/rx.h (CPP_SPEC): Define.
2174         (ASM_SPEC): Pass -mpid and -mint-register on to assembler.
2175         (CASE_VECTOR_PC_RELATIVE): Define.
2176         (JUMP_TABLES_IN_TEXT_SECTION): Enable for PID mode.
2177         * config/rx/rx-protos.h (rx_maybe_pidify_operand): Prototype.
2178         * doc/invoke.texi (RX Options): Document -mpid command line option.
2179
2180 2011-10-05  Richard Guenther  <rguenther@suse.de>
2181
2182         PR tree-optimization/38885
2183         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial reads
2184         from constants.
2185
2186 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
2187
2188         * doc/invoke.texi (-fshrink-wrap): Document.
2189         * opts.c (default_options_table): Add it.
2190         * common.opt (fshrink-wrap): Add.
2191         * function.c (emit_return_into_block): Remove useless declaration.
2192         (record_hard_reg_uses_1, record_hard_reg_uses, frame_required_for_rtx,
2193         requires_stack_frame_p, gen_return_pattern): New static functions.
2194         (emit_return_into_block): New arg simple_p.  All callers changed.
2195         Use gen_return_pattern.
2196         (thread_prologue_and_epilogue_insns): Implement shrink-wrapping.
2197         * config/i386/i386.md (return): Expand into a simple_return.
2198         (simple_return): New expander):
2199         (simple_return_internal, simple_return_internal_long,
2200         simple_return_pop_internal_long, simple_return_indirect_internal):
2201         Renamed from return_internal, return_internal_long,
2202         return_pop_internal_long and return_indirect_internal; changed to use
2203         simple_return.
2204         * config/i386/i386.c (ix86_expand_epilogue): Adjust to expand
2205         simple returns.
2206         (ix86_pad_returns): Likewise.
2207         * function.h (struct rtl_data): Add member shrink_wrapped.
2208         * cfgcleanup.c (outgoing_edges_match): If shrink-wrapped, edges that
2209         are not jumps or sibcalls can't be compared.
2210
2211 2011-10-05  Richard Guenther  <rguenther@suse.de>
2212
2213         * tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of
2214         vector type.
2215         (simplify_unary_expression): Handle BIT_FIELD_REFs.
2216         (try_to_simplify): Handle BIT_FIELD_REFs.
2217
2218 2011-10-05  Georg-Johann Lay  <avr@gjlay.de>
2219
2220         * config/avr/avr-protos.h (avr_out_addto_sp): New prototype.
2221         * config/avr/avr.c (avr_out_addto_sp): New function.
2222         (adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP.
2223         * config/avr/avr.md (adjust_len): Add "addto_sp".
2224         (*movhi_sp): Remove insn.
2225         (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R.
2226
2227 2011-10-05  Richard Guenther  <rguenther@suse.de>
2228
2229         * gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops
2230         with an embedded expression valueize and fold that as well.
2231         * tree-ssa-sccvn.c (try_to_simplify): Also allow SSA name
2232         results from gimple_fold_stmt_to_constant_1.
2233
2234 2011-10-05  Nick Clifton  <nickc@redhat.com>
2235
2236         * config/rx/rx.md (tablejump): Add missing label.
2237         (adddi3_internal): Mark operand 0 as early-clobbered.
2238         (smaxsi3): Revert previous delta.
2239         (adc_internal): Fix whitespace in generated asm.
2240         (adc_flags): Likewise.
2241
2242 2011-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2243
2244         * expmed.c (expand_mult_highpart_optab): Replace optab_handler
2245         with the new widening_optab_handler.
2246
2247 2011-10-05  Richard Guenther  <rguenther@suse.de>
2248
2249         PR tree-optimization/50609
2250         * gimple-fold.c (fold_array_ctor_reference): Also handle
2251         vector typed constructors.
2252         (fold_ctor_reference): Dispatch to fold_array_ctor_reference
2253         for vector typed constructors.
2254
2255 2011-10-05  Uros Bizjak  <ubizjak@gmail.com>
2256
2257         * config/i386/i386.c (ix86_emit_binop): New static function.
2258         (ix86_split_lea_for_addr): Use ix86_emit_binop to emit add and shl
2259         instructions.
2260         (x86_output_mi_thunk): Use ix86_emit_binop to emit add instructions.
2261
2262 2011-10-04  David S. Miller  <davem@davemloft.net>
2263
2264         * config/sparc/sparc.md (UNSPEC_FHADD, UNSPEC_FHSUB,
2265         UNSPEC_XMUL): New unspecs.
2266         (muldi3_v8plus): Use output_v8plus_mult.
2267         (*naddsf3, *nadddf3, *nmulsf3, *nmuldf3, *nmuldf3_extend):
2268         New VIS 3.0 combiner patterns.
2269         (fhaddsf_vis, fhadddf_vis, fhsubsf_vis, fhsubdf_vis,
2270         fnhaddsf_vis, fnhaddf_vis, umulxhi_vis, *umulxhi_sp64,
2271         umulxhi_v8plus, xmulx_vis, *xmulx_sp64, xmulx_v8plus,
2272         xmulxhi_vis, *xmulxhi_sp64, xmulxhi_v8plus): New VIS 3.0
2273         builtins patterns.
2274         * config/sparc/sparc.c (sparc_vis_init_builtins): Emit new builtins.
2275         (output_v8plus_mult): New function.
2276         * config/sparc/sparc-protos.h: Declare it.
2277         * config/sparc/visintrin.h (__vis_fhadds, __vis_fhaddd,
2278         __vis_fhsubs, __vis_fhsubd, __vis_fnhadds, __vis_fnhaddd,
2279         __vis_umulxhi, __vis_xmulx, __vis_xmulxhi): New intrinsics.
2280         * doc/extend.texi: Document new builtins.
2281
2282 2011-10-04  Richard Henderson  <rth@redhat.com>
2283
2284         * c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable.
2285         Avoid save_expr unless two_arguments.
2286
2287 2011-10-04  Ozkan Sezer  <sezeroz@gmail.com>
2288
2289         * config/i386/mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to _REENTRANT.
2290         * config/i386/mingw32.h (CPP_SPEC): Likewise.
2291
2292 2011-10-04  David S. Miller  <davem@davemloft.net>
2293
2294         * config/sparc/driver-sparc.c (cpu_names): Fix string for supersparc
2295         under Linux.
2296
2297 2011-10-04  Jakub Jelinek  <jakub@redhat.com>
2298
2299         PR tree-optimization/50604
2300         * builtins.c (fold_builtin_strcpy, fold_builtin_stpcpy,
2301         fold_builtin_strncpy, fold_builtin_stxcpy_chk): Ensure
2302         last argument to memcpy has size_type_node type instead of ssizetype.
2303         * tree-ssa-strlen.c (handle_builtin_memcpy): Use size_type_node
2304         instead of TREE_TYPE (len) as type for newlen.
2305
2306         PR tree-optimization/50522
2307         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Don't test
2308         TYPE_RESTRICT.
2309         (ptr_derefs_may_alias_p): Call pt_solutions_same_restrict_base
2310         unconditionally.
2311
2312         * fold-const.c (fold_unary_loc): Don't optimize
2313         POINTER_PLUS_EXPR casted to TYPE_RESTRICT pointer by
2314         casting the inner pointer if it isn't TYPE_RESTRICT.
2315         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't through
2316         casts from non-TYPE_RESTRICT pointer to TYPE_RESTRICT pointer.
2317
2318 2011-10-04  Joseph Myers  <joseph@codesourcery.com>
2319
2320         * config.gcc (i[34567]86-*-elf*, x86_64-*-elf*): Use i386/t-crtstuff.
2321
2322 2011-10-04  Jan Hubicka  <jh@suse.cz>
2323
2324         * lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter.
2325         * lto-streamer-in.c (lto_input_toplevel_asms): Stream in order.
2326         * lto-streamer-out.c (lto_output_toplevel_asms): Stream out order.
2327         * lto-cgraph.c (order_base): New static var.
2328         (lto_output_node): Stream in order.
2329         (lto_output_varpool_node): Stream out order.
2330         (input_node): Stream in order.
2331         (input_varpool_node): Stream out order.
2332         (input_cgraph_1): Initialize order base; update call of
2333         lto_input_toplevel_asms.
2334
2335 2011-10-04  Georg-Johann Lay  <avr@gjlay.de>
2336
2337         PR target/50566
2338         * config/avr/avr-protos.h (avr_legitimize_reload_address): New
2339         prototype.
2340         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Copy worker code
2341         from here...
2342         * config/avr/avr.c (avr_legitimize_reload_address) ...to this new
2343         function.  Log if avr_log.legitimize_reload_address.
2344
2345 2011-10-04  Eric Botcazou  <ebotcazou@adacore.com>
2346
2347         * config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests.
2348
2349 2011-10-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2350
2351         * longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local
2352         variables.  Fix second operand of DR.  Swap inputs for sdiv_qrnnd.
2353
2354 2011-10-03  David S. Miller  <davem@davemloft.net>
2355
2356         * config/sparc/sparc.md (fpack16_vis, fpackfix_vis, fpack32_vis): Make
2357         GSR_REG an input operand to UNSPEC instead of a parallel USE.
2358         (faligndata<V64I:mode>_vis): Likewise and use DI mode.
2359         (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis, alignaddrldi_vis):
2360         Reference GSR_REG in DI mode, simplify convoluted expressions by using
2361         zero_extract.
2362         (bshuffle<V64I:mode>_vis): Reference GSR_REG in DI mode.
2363
2364 2011-10-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
2365
2366         * tree-eh.c (remove_unreachable_handlers): Obvious cleanup.
2367
2368 2011-10-03  Jakub Jelinek  <jakub@redhat.com>
2369             Ian Lance Taylor  <iant@google.com>
2370
2371         * godump.c (go_output_typedef): Support printing enum values that
2372         don't fit in a signed HOST_WIDE_INT.
2373
2374 2011-10-03  Anatoly Sokolov  <aesok@post.ru>
2375
2376         * config/cris/cris.c (cris_output_addr_const_extra): Make static.
2377         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2378         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
2379         * config/cris/cris-protos.h (cris_output_addr_const_extra): Remove.
2380
2381 2011-10-03  Anatoly Sokolov  <aesok@post.ru>
2382
2383         * config/m68k/m68k.c (m68k_output_addr_const_extra): Make static.
2384         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2385         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
2386         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Remove.
2387
2388 2011-10-03  Steve Ellcey  <sje@cup.hp.com>
2389
2390         PR target/49967
2391         * configure.ac (gcc_cv_ld_static_dynamic): Define for *-*-hpux*.
2392         (gcc_cv_ld_static_option): Ditto.
2393         (gcc_cv_ld_dynamic_option): Ditto.
2394         * configure: Regenerate.
2395
2396 2011-10-03  David S. Miller  <davem@davemloft.net>
2397
2398         * config/sparc/sparc.md (bmask<P:mode>_vis): Split into explicit 'di'
2399         and 'si' patterns which describe the GSR changes explicitly in the
2400         RTL using zero_extract.
2401         (bshuffle<V64I:mode>_vis): Put the GSR use inside of the unspec.
2402
2403         * config/sparc/sparc.md (bshuffle<V64I:mode>_vis): Don't wrap
2404         GSR_REG in a USE, since it's now a true arg to the UNSPEC.
2405
2406 2011-10-03  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
2407
2408         * optabs.c (expand_vec_shuffle_expr_p): New function. Checks
2409         if given expression can be expanded by the target.
2410         (expand_vec_shuffle_expr): New function. Expand VEC_SHUFFLE_EXPR
2411         using target vector instructions.
2412         * optabs.h: New optab vshuffle.
2413         (expand_vec_shuffle_expr_p): New prototype.
2414         (expand_vec_shuffle_expr): New prototype.
2415         (vshuffle_optab): New optab.
2416         * genopinit.c: Adjust to support vecshuffle.
2417         * c-tree.h (c_build_vec_shuffle_expr): New prototype.
2418         * expr.c (expand_expr_real_2): Adjust.
2419         * c-typeck.c: (c_build_vec_shuffle_expr): Build a VEC_SHUFFLE_EXPR
2420         recognizing the cases of two and three arguments.
2421         (convert_arguments) (build_binary_op)
2422         (scalar_to_vector) (build_array_ref): Spurious whitespace.
2423         * gimplify.c (gimplify_exp): Adjusted to support VEC_SHUFFLE_EXPR.
2424         * tree.def: New tree code VEC_SHUFFLE_EXPR.
2425         * tree-inline.c (estimate_operator_cost): Recognize VEC_SHUFFLE_EXPR.
2426         * tree-vect-generic.c (vector_element): New function. Returns an
2427         element of the vector at the given position.
2428         (lower_vec_shuffle): Checks if VEC_SHUFLLE_EXPR is supported
2429         by the backend or expand an expression piecewise.
2430         (expand_vector_operations_1): Adjusted.
2431         (gate_expand_vector_operations_noop): New gate function.
2432         * Makefile.in (tree-vect-generic.o): New include.
2433         * gimple.c (get_gimple_rhs_num_ops): Adjust.
2434         * tree-cfg.c (verify_gimple_assign_trenary): Verify VEC_SHUFFLE_EXPR.
2435         * passes.c: Move veclower down.
2436         * tree-pretty-print.c (dump_generic_node): Recognize
2437         VEC_SHUFFLE_EXPR as valid expression.
2438         * c-parser.c (c_parser_get_builtin_args): Helper function for the
2439         builtins with variable number of arguments.
2440         (c_parser_postfix_expression): Use a new helper function for
2441         RID_CHOOSE_EXPR, RID_BUILTIN_COMPLEX and RID_BUILTIN_SHUFFLE.
2442         * tree-ssa-operands: Adjust.
2443         * c-family/c-common.c: New __builtin_shuffle keyword.
2444         * c-family/c-common.h: New __builtin_shuffle keyword.
2445         * gcc/doc/extend.texi: Adjust.
2446
2447         * gcc/config/i386/sse.md: (sseshuffint) New mode_attr.  Correspondence
2448         between the vector and the type of the mask when shuffling.
2449         (vecshuffle<mode>): New expansion.
2450         * gcc/config/i386/i386-protos.h (ix86_expand_vshuffle): New prototype.
2451         * gcc/config/i386/i386.c (ix86_expand_vshuffle): New function.
2452         (ix86_vectorize_builtin_vec_perm_ok): Adjust.
2453
2454 2011-10-03  Jakub Jelinek  <jakub@redhat.com>
2455
2456         PR tree-optimization/50587
2457         * tree-ssa-reassoc.c (init_range_entry): Stop iterating when
2458         arg0 is not a SSA_NAME.
2459
2460 2011-10-03  Richard Sandiford  <rdsandiford@googlemail.com>
2461
2462         * ipa-inline-analysis.c (MAX_TIME): Update comment.
2463
2464 2011-10-02  Richard Henderson  <rth@redhat.com>
2465             David S. Miller  <davem@davemloft.net>
2466
2467         * config/sparc/sparc.md (ashlsi3, *ashldi3_sp64): Remove
2468         conditional insn type setting, we always emit a shift.
2469         (*ashlsi3_extend, *lshrsi3_extend0): New patterns.
2470         (*lshrsi3_extend): Rename to *lshrsi3_extend1.
2471         * config/sparc/predicates.md (const_one_operand): Delete.
2472
2473 2011-10-02  Gerald Pfeifer  <gerald@pfeifer.com>
2474
2475         * invoke.texi (SPARC Options): Refer to GNU/Linux.
2476
2477 2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
2478
2479         * config/mips/mips.c (mips_frame_barrier): New function.
2480         (mips_expand_prologue): Call it after allocating stack space.
2481         (mips_deallocate_stack): New function.
2482         (mips_expand_epilogue): Call mips_frame_barrier and
2483         mips_deallocate_stack.
2484
2485 2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
2486
2487         PR target/49696
2488         * config/mips/sync.md (sync_<optab>_12): Allow zero operands.
2489         (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
2490         (sync_old_nand_12, sync_new_nand_12, test_and_set_12): Likewise.
2491
2492 2011-10-02  Jan Hubicka  <jh@suse.cz>
2493
2494         * cgraphunit.c (verify_edge_count_and_frequency): Bounds check.
2495
2496         * cgraphunit.c (ipa_passes): Remove unrechable nodes.
2497         * lto-streamer-out.c (produce_symtab): Skip unused extern declarations.
2498         * ipa.c (cgraph_remove_unreachable_nodes): Do not assume that external
2499         functions are reachable when address is taken.
2500         * tree-sra.c (modify_function): Free dominance info.
2501
2502 2011-10-02  Jan Hubicka  <jh@suse.cz>
2503
2504         * ipa-inline-analysis.c (inline_summary_alloc): Bounds check.
2505
2506         * ipa-inline-analysis.c (reset_inline_edge_summary): New function.
2507         (reset_inline_summary): New function.
2508         (compute_inline_parameters, inline_node_removal_hook,
2509         inline_edge_removal_hook): Use it.
2510         (inline_free_summary): Reset holders correctly.
2511         (inline_generate_summary): Free summary before computing it.
2512
2513 2011-10-02  Paolo Carlini  <paolo.carlini@oracle.com>
2514
2515         PR preprocessor/36819
2516         * incpath.c (merge_include_chains): Call free_path on
2517         heads[QUOTE] and tails[QUOTE].
2518
2519 2011-10-02  Jan Hubicka  <jh@suse.cz>
2520
2521         PR lto/47247
2522         * lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve
2523         when resolution is already availbale from plugin.
2524         (lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP.
2525         * cgraph.c (ld_plugin_symbol_resolution): Add
2526         prevailing_def_ironly_exp.
2527         * lto-cgraph.c (LDPR_NUM_KNOWN): Update.
2528         * ipa.c (varpool_externally_visible_p): IRONLY variables are never
2529         externally visible.
2530         * varasm.c (resolution_to_local_definition_p): Add
2531         LDPR_PREVAILING_DEF_IRONLY_EXP.
2532         (resolution_local_p): Likewise.
2533
2534 2011-10-01  David S. Miller  <davem@davemloft.net>
2535
2536         * config/sparc/sparc.opt (VIS3): New option.
2537         * doc/invoke.texi: Document it.
2538         * config/sparc/sparc.h: Force TARGET_VIS3 to zero if assembler is
2539         not capable of such instructions.
2540         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
2541         to 0x300 when TARGET_VIS3.
2542         * config/sparc/sparc-modes.def: Create 16-byte vector modes.
2543         * config/sparc/sparc.md (UNSPEC_CMASK8, UNSPEC_CMASK16, UNSPEC_CMASK32,
2544         UNSPEC_FCHKSM16, UNSPEC_PDISTN, UNSPC_FUCMP): New unspecs.
2545         (V64N8, VASS): New mode iterators.
2546         (vis3_shift, vis3_addsub_ss): New code iterators.
2547         (vbits, vconstr): New mode attributes.
2548         (vis3_shift_insn, vis3_addsub_ss_insn): New code attributes.
2549         (cmask8<P:mode>_vis, cmask16<P:mode>_vis, cmask32<P:mode>_vis,
2550         fchksm16_vis, <vis3_shift_insn><vbits>_vis, pdistn<mode>_vis,
2551         fmean16_vis, fpadd64_vis, fpsub64_vis,
2552         <vis3_addsub_ss_insn><vbits>_vis, fucmp<code>8<P:mode>_vis): New
2553         VIS 3.0 instruction patterns.
2554         * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS3 by
2555         default when targetting capable cpus.  TARGET_VIS3 implies
2556         TARGET_VIS2 and TARGET_VIS, and clear them when TARGET_FPU is disabled.
2557         (sparc_vis_init_builtins): Emit new VIS 3.0 builtins.
2558         (sparc_fold_builtin): Do not eliminate cmask{8,16,32} when result
2559         is ignored.
2560         * config/sparc/visintrin.h (__vis_cmask8, __vis_cmask16,
2561         __vis_cmask32, __vis_fchksm16, __vis_fsll16, __vis_fslas16,
2562         __vis_fsrl16, __vis_fsra16, __vis_fsll32, __vis_fslas32,
2563         __vis_fsrl32, __vis_fsra32, __vis_pdistn, __vis_fmean16,
2564         __vis_fpadd64, __vis_fpsub64, __vis_fpadds16, __vis_fpadds16s,
2565         __vis_fpsubs16, __vis_fpsubs16s, __vis_fpadds32, __vis_fpadds32s,
2566         __vis_fpsubs32, __vis_fpsubs32s, __vis_fucmple8, __vis_fucmpne8,
2567         __vis_fucmpgt8, __vis_fucmpeq8): New VIS 3.0 interfaces.
2568         * doc/extend.texi: Document new VIS 3.0 builtins.
2569
2570 2011-10-01  Eric Botcazou  <ebotcazou@adacore.com>
2571
2572         * ira-color.c (assign_hard_reg): Fix typo.
2573
2574 2011-09-30  H.J. Lu  <hongjiu.lu@intel.com>
2575
2576         * doc/extend.texi: Add missing ','.
2577
2578 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
2579
2580         * common/config/c6x/c6x-common.c (c6x_option_optimization_table):
2581         Enable -fmodulo-sched at -O2 and above.
2582         * config/c6x/c6x.md (doloop_end): New expander.
2583         (mvilc, sploop, spkernel, loop_end): New patterns.
2584         (loop_end with memory destination splitter): New.
2585         * config/c6x/c6x.c: Include "hw-doloop.h".
2586         (enum unitreqs): New.
2587         (unit_req_table): New typedef.
2588         (unit_reqs): New static variable.
2589         (unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs,
2590         res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch,
2591         hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above,
2592         hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions.
2593         (struct c6x_sched_context): New member last_scheduled_iter0.
2594         (init_sched_state): Initialize it.
2595         (c6x_variable_issue): Update it.
2596         (sploop_max_uid_iter0): New static variable.
2597         (c6x_sched_reorder_1): Be careful about issuing sploop.
2598         (c6x_reorg): Call c6x_hwlooops before the final schedule.
2599
2600 2011-09-30  Georg-Johann Lay  <avr@gjlay.de>
2601
2602         PR target/50566
2603         * config/avr/avr-protos.h (avr_log_t): New field address_cost.
2604         * config/avr/avr.c (avr_address_cost): Use it.
2605         * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
2606         (avr_log_vadump): Unknown %-codes finish printing.
2607
2608 2011-09-30  Jakub Jelinek  <jakub@redhat.com>
2609
2610         PR inline-asm/50571
2611         * gimple-fold.c (fold_stmt_1) <case GIMPLE_ASM>: If
2612         input constraints allow mem and not reg, pass true instead of
2613         false as second argument to maybe_fold_reference.
2614
2615         PR tree-optimization/46309
2616         * fold-const.c (make_range, merge_ranges): Remove prototypes.
2617         (make_range_step): New function.
2618         (make_range): Use it.
2619         * tree.h (make_range_step): New prototypes.
2620         * Makefile.in (tree-ssa-reassoc.o): Depend on $(DIAGNOSTIC_CORE_H).
2621         * tree-ssa-reassoc.c: Include diagnostic-core.h.
2622         (struct range_entry): New type.
2623         (init_range_entry, range_entry_cmp, update_range_test,
2624         optimize_range_tests): New functions.
2625         (reassociate_bb): Call optimize_range_tests.
2626
2627 2011-09-30  Jakub Jelinek  <jakub@redhat.com>
2628             Richard Guenther  <rguenther@suse.de>
2629
2630         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle
2631         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
2632         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.  Fix
2633         handling of BUILT_IN_STRNCAT and BUILT_IN_STRNCAT_CHK.
2634         (ref_maybe_used_by_call_p_1): Fix handling of BUILT_IN_STRCAT,
2635         BUILT_IN_STRNCAT, BUILT_IN_STRCAT_CHK and BUILT_IN_STRNCAT_CHK.
2636
2637 2011-09-30  Jan Beulich  <jbeulich@suse.com>
2638
2639         * lto-cgraph.c (output_cgraph): Remove processing of
2640         'cgraph_asm_nodes', call lto_output_toplevel_asms() instead.
2641         (input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call
2642         lto_input_toplevel_asms() instead.
2643         * lto-section-in.c (lto_section_name): Add "asm" entry.
2644         * lto-streamer-in.c (lto_input_toplevel_asms): New.
2645         * lto-streamer-out.c (lto_output_toplevel_asms): New.
2646         * lto-streamer.h (LTO_minor_version): Bump.
2647         (enum lto_section_type): Add LTO_section_asm.
2648         (struct lto_asm_header): New.
2649         (lto_input_toplevel_asms, lto_output_toplevel_asms): Declare.
2650         * tree-streamer.h (streamer_write_string_cst): Declare.
2651         * tree-streamer-out.c (write_string_cst): Rename to
2652         streamer_write_string_cst and make global. Handle incoming string
2653         being NULL.
2654         (streamer_write_tree_header): Adjust call to renamed function.
2655
2656 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
2657
2658         * haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns,
2659         modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left,
2660         modulo_last_stage): New static variables.
2661         (set_modulo_params, discard_delay_pairs_above): New functions.
2662         (struct delay_pair): New member stages.
2663         (htab_i2_traverse, htab_i1_traverse): New static functions.
2664         (record_delay_slot_pair): New arg stages.  All callers changed.
2665         Record it.
2666         (pair_delay): Take stages into account.
2667         (add_delay_dependencies): Don't do so for stage pairs.
2668         (struct sched_block_state): New member modulo_epilogue.
2669         (save_backtrack_point): Don't set SHADOW_P for stage pairs.
2670         (unschedule_insns_until): Decrease modulo_insns_scheduled.
2671         Set HARD_DEP without using or.
2672         (resolve_dependencies): New static function.
2673         (prune_ready_list): New arg modulo_epilogue_p.  All callers changed.
2674         If it is true, allow only insns with INSN_EXACT_TICK set.
2675         (schedule_block): Return bool, always true for normal scheduling,
2676         true or false depending on modulo scheduling success otherwise.
2677         Add bookkeeping for modulo scheduling, and call resolve_dependencies
2678         on everything left over after a modulo schedule.
2679         (haifa_sched_init): Remove check_cfg call.  Clear modulo_ii.
2680         * sched-int.h (schedule_block, record_delay_slot_pair): Adjust
2681         declarations.
2682         (set_modulo_params, discard_delay_pairs_above): Declare.
2683         * params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New.
2684         * doc/invoke.texi (--param): Document it.
2685
2686         * sched-ebb.c (schedule_ebb): No longer static.  Remove declaration.
2687         New arg modulo_scheduling.  All callers changed.  Move note handling
2688         code here from schedule_ebbs.
2689         (schedule_ebbs_finish, schedule_ebbs_init): New functions, broken
2690         out of schedule_ebbs.
2691         (schedule_ebbs): Call them.  Remove note handling code moved to
2692         schedule_ebb.
2693         * sched-int.h (schedule_ebb, schedule_ebbs_init,
2694         schedule_ebbs_finish): Declare.
2695
2696 2011-09-30  Richard Guenther  <rguenther@suse.de>
2697
2698         PR middle-end/50574
2699         * tree-cfg.c (verify_gimple_comparison): Compare component
2700         mode sizes for vector comparisons.
2701
2702 2011-09-30  Revital Eres  <revital.eres@linaro.org>
2703
2704         * ddg.c (autoinc_var_is_used_p): New function.
2705         (create_ddg_dep_from_intra_loop_link,
2706         add_cross_iteration_register_deps): Call it.
2707         * ddg.h (autoinc_var_is_used_p): Declare.
2708         * modulo-sched.c (generate_reg_moves): Call autoinc_var_is_used_p.
2709         (sms_schedule): Handle instructions with REG_INC.
2710
2711 2011-09-30  Revital Eres  <revital.eres@linaro.org>
2712
2713         * modulo-sched.c (generate_reg_moves): Skip instructions that
2714         do not set a register and verify no regmoves are created for
2715         !single_set instructions.
2716
2717 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
2718
2719         * hw-doloop.c (scan_loop): Compute register usage only for non-debug
2720         insns.
2721
2722 2011-09-30  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2723
2724         PR target/50099
2725         * config/arm/iterators.md (qhs_zextenddi_cstr): New.
2726         (qhs_zextenddi_op): New.
2727         * config/arm/arm.md ("zero_extend<mode>di2"): Use them.
2728         * config/arm/predicates.md ("arm_extendqisi_mem_op"):
2729         Distinguish between ARM and Thumb2 states.
2730
2731 2011-09-30  David S. Miller  <davem@davemloft.net>
2732
2733         * config/sparc/sparc.opt (VIS2): New option.
2734         * doc/invoke.texi: Document it.
2735         * config/sparc/sparc.md (UNSPEC_EDGE8N, UNSPEC_EDGE8LN,
2736         UNSPEC_EDGE16N, UNSPEC_EDGE16LN, UNSPEC_EDGE32N,
2737         UNSPEC_EDGE32LN, UNSPEC_BSHUFFLE): New unspecs.
2738         (define_attr type): New insn type 'edgen'.
2739         (bmask<P:mode>_vis, bshuffle<V64I:mode>_vis, edge8n<P:mode>_vis,
2740         edge8ln<P:mode>_vis, edge16n<P:mode>_vis, edge16ln<P:mode>_vis,
2741         edge32n<P:mode>_vis, edge32ln<P:mode>_vis): New insn VIS 2.0
2742         patterns.
2743         * niagara.md: Handle edgen.
2744         * niagara2.md: Likewise.
2745         * ultra1_2.md: Likewise.
2746         * ultra3.md: Likewise.
2747         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
2748         to 0x200 when TARGET_VIS2.
2749         * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS2 by
2750         default when targetting capable cpus.  TARGET_VIS2 implies
2751         TARGET_VIS, clear and it when TARGET_FPU is disabled.
2752         (sparc_vis_init_builtins): Emit new VIS 2.0 builtins.
2753         (sparc_expand_builtin): Fix predicate indexing when builtin returns
2754         void.
2755         (sparc_fold_builtin): Do not eliminate bmask when result is ignored.
2756         * config/sparc/visintrin.h (__vis_bmask, __vis_bshuffledi,
2757         __vis_bshufflev2si, __vis_bshufflev4hi, __vis_bshufflev8qi,
2758         __vis_edge8n, __vis_edge8ln, __vis_edge16n, __vis_edge16ln,
2759         __vis_edge32n, __vis_edge32ln): New VIS 2.0 interfaces.
2760         * doc/extend.texi: Document new VIS 2.0 builtins.
2761
2762 2011-09-29  Nick Clifton  <nickc@redhat.com>
2763             Bernd Schmidt  <bernds@codesourcery.com>
2764
2765         * config/frv/frvbegin.c: Fix location of unwind-dw2-fde.h header file.
2766         * config/frv/frvend.c: Likewise.
2767         * config/frv/frv.c (frv_function_prologue): Move misplaced
2768         CALL_ARG_LOCATION notes back to their proper locations.
2769
2770 2011-09-29  Georg-Johann Lay  <avr@gjlay.de>
2771
2772         PR target/50566
2773         * config/avr/avr-log.c (avr_log_vadump): Use %b to print bool.
2774         * config/avr/avr.c (avr_rtx_costs_1): New static function, renamed
2775         from avr_rtx_costs.
2776         (avr_legitimate_address_p): Use avr_edump to print log information
2777         filtered by avr_log.
2778         (extra_constraint_Q): Ditto.
2779         (avr_legitimize_address): Ditto.
2780         (avr_rtx_costs): Ditto.  Rewrite as wrapper for avr_rtx_costs_1.
2781         (final_prescan_insn): Use avr_log.rtx_costs as filter.
2782
2783 2011-09-29  Richard Sandiford  <richard.sandiford@linaro.org>
2784
2785         * config/arm/arm-protos.h (arm_modes_tieable_p): Declare.
2786         * config/arm/arm.h (MODES_TIEABLE_P): Use it.
2787         * config/arm/arm.c (arm_modes_tieable_p): New function.  Allow
2788         NEON vector and structure modes to be tied.
2789
2790 2011-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2791
2792         * graphite-scop-detection.c (make_close_phi_nodes_unique):  New
2793         forward declaration.
2794         (remove_duplicate_close_phi): Detect and repair creation of
2795         duplicate close-phis for a containing loop.
2796
2797 2011-09-27   Andi Kleen <ak@linux.intel.com>
2798
2799         * gcc.c (get_local_tick). Rename to get_random_number.  Read from
2800         /dev/urandom.  Add getpid call.
2801         (compare_debug_dump_opt_spec_function): Drop getpid call.
2802
2803 2011-09-26   Andi Kleen <ak@linux.intel.com>
2804
2805         * toplev.c (init_local_tick): Try reading random seed
2806         from /dev/urandom.
2807
2808 2011-09-26   Andi Kleen <ak@linux.intel.com>
2809
2810         * hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add.
2811         * lto-streamer.c (lto_get_section_name): Remove crc32_string.
2812         Handle numerical random seed.
2813         * lto-streamer.h (lto_file_decl_data): Change id to
2814         unsigned HOST_WIDE_INT.
2815         * toplev.c (random_seed): Add.
2816         (init_random_seed): Change for numerical random seed.
2817         (get_random_seed): Return as HOST_WIDE_INT.
2818         (set_random_seed): Crc32 existing string.
2819         * toplev.h (get_random_seed): Change to numercal return.
2820         * tree.c (get_file_function_name): Remove CRC. Handle
2821         numerical random seed.
2822
2823 2011-09-29  Georg-Johann Lay  <avr@gjlay.de>
2824
2825         PR target/50566
2826         * config.gcc (extra_objs): Add avr-log.o for $target in:
2827         avr-*-rtems*, avr-*-*.
2828         * config/avr/t-avr (avr-log.o): New rule to compile...
2829         * config/avr/avr-log.c: ...this new file.
2830         * config/avr/avr.opt (mlog=): New option.
2831         * config/avr/avr-protos.h (avr_edump, avr_fdump): New macros.
2832         (avr_log_set_caller_e, avr_log_set_caller_f): New prototypes.
2833         (avr_log_set_avr_log): New prototype.
2834         (avr_log_t): New typedef.
2835         (avr_log): New declaration.
2836         * config/avr/avr.c (avr_option_override): Call avr_log_set_avr_log.
2837
2838 2011-09-29  Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
2839
2840         * expr.c (do_store_flag): Expand vector comparison by
2841         building an appropriate VEC_COND_EXPR.
2842         * c-typeck.c (build_binary_op): Typecheck vector comparisons.
2843         (c_objc_common_truthvalue_conversion): Adjust.
2844         * tree-vect-generic.c (do_compare): Helper function.
2845         (expand_vector_comparison): Check if hardware supports
2846         vector comparison of the given type or expand vector piecewise.
2847         (expand_vector_operation): Treat comparison as binary
2848         operation of vector type.
2849         (expand_vector_operations_1): Adjust.
2850
2851 2011-09-29  Richard Guenther  <rguenther@suse.de>
2852
2853         * tree.c (build_opaque_vector_type): Make opaque vectors
2854         variant types of the corresponding non-opaque type.  Make
2855         sure to share opaque vector types properly.
2856
2857 2011-09-29  David S. Miller  <davem@davemloft.net>
2858
2859         * config/sparc/sparc.md (UNSPEC_ARRAY8, UNSPEC_ARRAY16,
2860         UNSPEC_ARRAY32): New unspec.
2861         (define_attr type): New type 'array'.
2862         (array{8,16,32}<P:mode>_vis): New patterns.
2863         * config/sparc/ultra1_2.md: Add reservations for 'array'.
2864         * config/sparc/ultra3.md: Likewise.
2865         * config/sparc/niagara.md: Likewise.
2866         * config/sparc/niagara2.md: Likewise.
2867         * config/sparc/sparc.c (sparc_vis_init_builtins): Build new
2868         array builtins.
2869         * config/sparc/visintrin.h (__vis_array8, __vis_array16,
2870         __vis_array32): New.
2871         * doc/extend.texi: Document new VIS builtins.
2872
2873         * config/sparc/sparc.md (gcond_name): Delete unnecessary code attr.
2874         (VIS pixel-compare insn): Just use <gcond:name>.
2875
2876         * config/sparc/sparc.md (VIS pixel-compare insn): There is only one
2877         code iterator used, so just use <code>.  There are two mode iterators
2878         so explicitly use <GCM:gcm_name>.
2879
2880 2011-09-29  Iain Sandoe  <iains@gcc.gnu.org>
2881
2882         * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for
2883         Darwin >= 9.
2884
2885 2011-09-28  David S. Miller  <davem@davemloft.net>
2886
2887         * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE,
2888         UNSPEC_FCMPGT, UNSPEC_FCMPEQ): Delete and reduce to...
2889         (UNSPEC_FCMP): New unspec.
2890         (gcond): New code iterator.
2891         (gcond_name): New code attr.
2892         (GCM): New mode iterator.
2893         (gcm_name): New mode attr.
2894         (fcmp{le,ne,gt,eq}{16,32}_vis): Reimplement using iterators.
2895
2896 2011-09-28  Oleg Endo  <oleg.endo@t-online.de>
2897
2898         PR target/49486
2899         * config/sh/sh.md (negdi2): Move expansion into split to
2900         allow more combination options.  Add T_REG clobber.
2901         (abssi2): New expander.
2902         (*negdi2, *abssi2, *negabssi2): New insns.
2903         (cneg): Change from insn to insn_and_split.  Rename to
2904         negsi_cond.  Add alternative for non-SH4.
2905
2906 2011-09-28  Richard Sandiford  <richard.sandiford@linaro.org>
2907
2908         * config/arm/neon.md (neon_move_lo_quad_<mode>): Delete.
2909         (neon_move_hi_quad_<mode>): Likewise.
2910         (move_hi_quad_<mode>, move_lo_quad_<mode>): Use subreg moves.
2911
2912 2011-09-28  Nick Clifton  <nickc@redhat.com>
2913
2914         * config/rx/predicates.md (rx_minmax_operand): New predicate.
2915         Accepts immediates and a restricted subset of MEMs.
2916         * config/rx/rx.md (int_modes): New iterator.
2917         (smaxsi3, sminsi3): Delete and replace with...
2918         (smax<int_mode>3, smin<int_mode>3): New patterns.
2919         (umax<>3_u, umax<>3_ur, umax<>3, umin<>3): New patterns.
2920
2921 2011-09-28  Richard Guenther  <rguenther@suse.de>
2922
2923         PR middle-end/50460
2924         * fold-const.c (try_move_mult_to_index): Handle &a.array the
2925         same as &a.array[0].
2926
2927 2011-09-28  Kai Tietz  <ktietz@redhat.com>
2928
2929         * configure.ac: Add test for new section attribute
2930         specifier "e" via define HAVE_GAS_SECTION_EXCLUDE.
2931         * config.in: Regenerated.
2932         * configure: Regenerated.
2933         * config/i386/winnt.c (i386_pe_asm_named_section): Emit
2934         new section flag "e" for excluded sections, if supported.
2935         Otherwise we mark section withc SECTION_EXCLUDE flag as never-load.
2936
2937 2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>
2938
2939         * config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref
2940         throughout file.
2941
2942 2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>
2943
2944         * config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref
2945         throughout file.
2946
2947 2011-09-27  Sriraman Tallam  <tmsriram@google.com>
2948
2949         * output.h (SECTION_EXCLUDE): New macro.
2950         * varasm.c (default_elf_asm_named_section): Check for SECTION_EXCLUDE.
2951
2952 2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
2953
2954         * fwprop.c (forward_propagate_and_simplify): After checking
2955         reg/subreg combinations, check whether the modes are the same.
2956
2957 2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>
2958             Richard Sandiford  <rdsandiford@googlemail.com>
2959
2960         * config/mips/mips.c (mips_add_cfa_restore): New function.
2961         (mips16e_save_restore_reg): Use it.
2962         (mips_restore_reg): Likewise.  Split double FPRs for
2963         REG_CFA_RESTORE notes.
2964
2965 2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
2966
2967         PR middle-end/50386
2968         PR middle-end/50326
2969         * tree-sra.c (build_ref_for_model): Use the type of the field as
2970         the type of the COMPONENT_REF.
2971
2972 2011-09-27  Jeff Law  <law@redhat.com>
2973
2974         * ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument.  Scale
2975         non-jumping insns by REG_BR_PROB_BASE and the maximum cost by SCALE.
2976         (find_if_case_1): Use the probability of the THEN clause when
2977         determining if speculation is profitable.
2978         (find_if_case_2): Similarly for the ELSE clause.
2979
2980 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
2981
2982         * common.opt: Add -foptimize-strlen option.
2983         * Makefile.in (OBJS): Add tree-ssa-strlen.o.
2984         (tree-sssa-strlen.o): Add dependencies.
2985         * opts.c (default_options_table): Enable -foptimize-strlen
2986         by default at -O2 if not -Os.
2987         * passes.c (init_optimization_passes): Add pass_strlen
2988         after pass_object_sizes.
2989         * timevar.def (TV_TREE_STRLEN): New timevar.
2990         * params.def (PARAM_MAX_TRACKED_STRLENS): New parameter.
2991         * tree-pass.h (pass_strlen): Declare.
2992         * tree-ssa-strlen.c: New file.
2993         * c-decl.c (merge_decls): If compatible stpcpy prototype
2994         is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
2995
2996 2011-09-27  Tom de Vries  <tom@codesourcery.com>
2997
2998         PR middle-end/43864
2999         * tree-ssa-tail-merge.c: New file.
3000         (struct same_succ_def): Define.
3001         (same_succ, const_same_succ): New typedef.
3002         (struct bb_cluster_def): Define.
3003         (bb_cluster, const_bb_cluster): New typedef.
3004         (struct aux_bb_info): Define.
3005         (BB_SIZE, BB_SAME_SUCC, BB_CLUSTER, BB_VOP_AT_EXIT): Define.
3006         (gvn_uses_equal): New function.
3007         (same_succ_print, same_succ_print_traverse, update_dep_bb)
3008         (stmt_update_dep_bb, local_def, same_succ_hash)
3009         (inverse_flags, same_succ_equal, same_succ_alloc, same_succ_delete)
3010         (same_succ_reset): New function.
3011         (same_succ_htab, same_succ_edge_flags)
3012         (deleted_bbs, deleted_bb_preds): New var.
3013         (debug_same_succ): New function.
3014         (worklist): New var.
3015         (print_worklist, add_to_worklist, find_same_succ_bb, find_same_succ)
3016         (init_worklist, delete_worklist, delete_basic_block_same_succ)
3017         (same_succ_flush_bbs, purge_bbs, update_worklist): New function.
3018         (print_cluster, debug_cluster, update_rep_bb)
3019         (add_bb_to_cluster, new_cluster, delete_cluster): New function.
3020         (all_clusters): New var.
3021         (alloc_cluster_vectors, reset_cluster_vectors, delete_cluster_vectors)
3022         (merge_clusters, set_cluster): New function.
3023         (gimple_equal_p, gsi_advance_bw_nondebug_nonlocal, find_duplicate)
3024         (same_phi_alternatives_1, same_phi_alternatives, bb_has_non_vop_phi)
3025         (deps_ok_for_redirect_from_bb_to_bb, deps_ok_for_redirect)
3026         (find_clusters_1, find_clusters): New function.
3027         (update_vuses, vop_phi, vop_at_entry, replace_block_by): New function.
3028         (update_bbs): New var.
3029         (apply_clusters): New function.
3030         (update_debug_stmt, update_debug_stmts): New function.
3031         (tail_merge_optimize): New function.
3032         tree-pass.h (tail_merge_optimize): Declare.
3033         * tree-ssa-pre.c (execute_pre): Use tail_merge_optimize.
3034         * Makefile.in (OBJS-common): Add tree-ssa-tail-merge.o.
3035         (tree-ssa-tail-merge.o): New rule.
3036         * opts.c (default_options_table): Set OPT_ftree_tail_merge by
3037         default at OPT_LEVELS_2_PLUS.
3038         * tree-ssa-sccvn.c (vn_valueize): Move to ...
3039         * tree-ssa-sccvn.h (vn_valueize): Here.
3040         * timevar.def (TV_TREE_TAIL_MERGE): New timevar.
3041         * common.opt (ftree-tail-merge): New switch.
3042         * params.def (PARAM_MAX_TAIL_MERGE_COMPARISONS)
3043         (PARAM_MAX_TAIL_MERGE_ITERATIONS): New parameter.
3044         * doc/invoke.texi (Optimization Options, -O2): Add -ftree-tail-merge.
3045         (-ftree-tail-merge, max-tail-merge-comparisons)
3046         (max-tail-merge-iterations): New item.
3047
3048 2011-09-27  Jan Hubicka  <jh@suse.cz>
3049
3050         * ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows.
3051
3052 2011-09-27  Jan Hubicka  <jh@suse.cz>
3053
3054         * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle
3055         parameters passed by reference; handle loads from non-SSA scalars
3056         and update comments.
3057
3058 2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>
3059
3060         PR rtl-optimization/50249
3061         * reload1.c (reload_reg_reaches_end_p): Accept a reloadnum argument
3062         instead of opnum and type.  All callers changed.  Remove useless
3063         declaration.
3064         Search forward for other reloads of the same type for the same operand
3065         using the same register; if any are found, return false.
3066         (reload_regs_reach_end_p): Same argument changes; all callers changed.
3067
3068 2011-09-27  Andi Kleen  <ak@linux.intel.com>
3069             Jan Hubicka  <jh@suse.cz>
3070
3071         * doc/invoke.texi (ffat-lto-objects): Document.
3072         * toplev.c (compile_file): Do not output assembly when doing slim lto;
3073         Output __gnu_slim_lto when doing slim lto.
3074         * cgraphunit.c (ipa_passes): Do only analysis when producing slim lto.
3075         (cgraph_optimize): Return early when doing slim lto.
3076         * opts.c (finish_options): Complain about lack of linker plugin
3077         when doing slim lto.
3078         * common.opt (ffat-lto-objects): New.
3079
3080 2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>
3081
3082         * ipa-inline-analysis.c (predicate_probability): Avoid comparison
3083         between signed and unsigned.
3084
3085 2011-09-27  Ira Rosen  <ira.rosen@linaro.org>
3086
3087         * tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block
3088         vectorization.
3089         (vectorizable_type_promotion): Likewise.
3090         (vect_analyze_stmt): Call vectorizable_type_demotion and
3091         vectorizable_type_promotion for basic blocks.
3092         (supportable_widening_operation): Don't assume loop vectorization.
3093         * tree-vect-slp.c (vect_build_slp_tree): Allow multiple types for
3094         basic blocks.  Update vectorization factor for basic block
3095         vectorization.
3096         (vect_analyze_slp_instance): Allow multiple types for basic block
3097         vectorization.  Recheck unrolling factor after construction of SLP
3098         instance.
3099
3100 2011-09-27  Richard Guenther  <rguenther@suse.de>
3101
3102         * tree-object-size.c (compute_object_sizes): Fix dumping of
3103         folded statement.
3104
3105 2011-09-27  Richard Guenther  <rguenther@suse.de>
3106
3107         PR tree-optimization/50363
3108         * tree-ssa-pre.c (create_expression_by_pieces): Handle
3109         pointer conversions in POINTER_PLUS_EXPRs properly.
3110
3111 2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>
3112
3113         * config/arm/neon.md (neon_vget_highv16qi, neon_vget_highv8hi)
3114         (neon_vget_highv4si, neon_vget_highv4sf, neon_vget_highv2di)
3115         (neon_vget_lowv16qi, neon_vget_lowv8hi, neon_vget_lowv4si)
3116         (neon_vget_lowv4sf, neon_vget_lowv2di): Turn into define_expands
3117         that produce subreg moves.  Define using VQX iterators.
3118
3119 2011-09-27  Georg-Johann Lay  <avr@gjlay.de>
3120
3121         * config/avr/avr.md (ashrqi3): Split alternative "n"
3122         into its remaining parts C03, C04, C05, C06, C07 and describe
3123         impact in CC by attribute "cc" appropriately.
3124         * config/avr/avr.c (notice_update_cc): Clean-up: Don't patch CC0
3125         by digging RTX.
3126
3127 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
3128
3129         * rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE
3130         from 3 x MAX_MACHINE_MODE.
3131         (CONSTM1_RTX): Define.
3132         * emit-rtl.c (const_tiny_rtx): Change into array of
3133         4 x MAX_MACHINE_MODE from 3 x MAX_MACHINE_MODE.
3134         (gen_rtx_CONST_VECTOR): Use CONSTM1_RTX if all inner constants are
3135         CONSTM1_RTX.
3136         (init_emit_once): Initialize CONSTM1_RTX for MODE_INT and
3137         MODE_VECTOR_INT modes.
3138         * simplify-rtx.c (simplify_binary_operation_1) <case IOR, XOR, AND>:
3139         Optimize if one operand is CONSTM1_RTX.
3140         * config/i386/i386.c (ix86_expand_sse_movcc): Optimize mask ? -1 : x
3141         into mask | x.
3142
3143 2011-09-26  David S. Miller  <davem@davemloft.net>
3144
3145         * config/sparc/sparc.md (edge{8,16,32}{,l}): Return Pmode.
3146         (fcmp{le,ne,gt,eq}{16,32}): Likewise.
3147         * config/sparc/visintrin.h: Update edge and pixel-compare
3148         intrinsics to return 'long' instead of 'int'.
3149         * doc/extend.texi: Update documentation to match.
3150         * config/sparc/sparc.c (eligible_for_return_delay): When leaf or
3151         flat, allow any instruction.  Otherwise, when V9 allow parallels
3152         which consist only of sets to registers outside of %o0 to %o5.
3153         (sparc_vis_init_builtins): Update VIS builtin types for edge
3154         and pixel-compare.
3155
3156         * config/sparc/sparc.c (sparc_conditional_register_usage): When VIS
3157         is enabled, mark %gsr as global.
3158         * config/sparc/sparc.md (UNSPEC_WRGSR): Delete.
3159         (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus): Don't wrap in an unspec.
3160
3161         * config/sparc/sparc-c.c: New file implementing sparc_target_macros,
3162         which will now define __VIS and __VIS__ when -mvis is enabled.
3163         * config/sparc/t-sparc: Likewise.
3164         * config.gcc: Add sparc-c.o to c_target_objs and cxx_target_objs,
3165         and add t-sparc to tmake_file for all sparc targets.
3166         * config/sparc/sparc-protos.h (sparc_target_macros): Declare.
3167         * config/sparc/sparc.h (TARGE_CPU_CPP_BUILTINS): Call it.
3168
3169         * config/sparc/sparc.c (sparc_vis_init_builtins): Add explicit
3170         builtins for VIS vector addition and subtraction.
3171         * config/sparc/visintrin.h (__vis_fpadd16, __vis_fpadd16s,
3172         __vis_fpadd32, __vis_fpadd32s, __vis_fpsub16, __vis_fpsub16s,
3173         __vis_fpsub32, __vis_fpsub32s): New.
3174         * doc/extend.texi: Document new VIS intrinsics.
3175
3176 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
3177
3178         * config/avr/avr.md (peephole casesi+2): Use -1 instead of 65536.
3179         * config/avr/avr.c (avr_out_compare): Print shorter sequence for
3180         EQ/NE comparisons against +/-1 in the case of unused-after,
3181         non-ld-regs target.
3182
3183 2011-09-26  Jakub Jelinek  <jakub@redhat.com>
3184
3185         * gimple-fold.c (gimplify_and_update_call_from_tree): Set
3186         gctx.into_ssa after push_gimplify_context.
3187
3188         * gimple.c (gimple_build_call_valist): New function.
3189         * gimple.h (gimple_build_call_valist): New prototype.
3190         * tree-ssa-propagate.c (finish_update_gimple_call): New function.
3191         (update_gimple_call): Likewise.
3192         (update_call_from_tree): Use finish_update_gimple_call.
3193         * tree-ssa-propagate.h (update_gimple_call): New prototype.
3194
3195 2011-09-26  Richard Guenther  <rguenther@suse.de>
3196
3197         PR tree-optimization/50472
3198         * gimple-fold.c (fold_const_aggregate_ref_1): Do not fold
3199         volatile references.
3200
3201 2011-09-26  Bingfeng Mei <bmei@broadcom.com>
3202
3203         * doc/tm.texi: Correct documentation for TARGET_ADDR_SPACE_SUBSET_P.
3204         * target.def: (addr_space_subset_p): Likewise.
3205
3206 2011-09-26  Tom de Vries  <tom@codesourcery.com>
3207
3208         * tree-ssa-alias.h (pt_solution_singleton_p): Declare.
3209         * tree-ssa-structalias.c (pt_solution_singleton_p): New function.
3210         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Set points-to solution
3211         of new var.
3212
3213 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
3214
3215         PR target/50465
3216         * config/avr/avr-protos.h (output_reload_insisf): Don't pass insn.
3217         * config/avr/avr.md (*reload_insi, *reload_insf): Change call to
3218         output_reload_insisf.
3219         (adjust_len): Set default to "no".
3220         Remove alternative "yes".  Add alternatives: "mov8", "mov16",
3221         "mov32", "ashlqi", "ashrqi", "lshrqi", "ashlhi", "ashrhi",
3222         "lshrhi", "ashlsi, "ashrsi", "lshrsi".
3223         (*movqi, *movhi, *movsi, *ashlqi3, ashlhi3, ashlsi3,
3224         *ashlhi3_const, *ashlsi3_const, ashrqi3, ashrhi3, ashrsi3,
3225         *ashrhi3_const, *ashrsi3_const, *lshrqi3, lshrhi3, *lshrhi3_const,
3226         *lshrsi3_const): Set attribute "adjust_len".
3227         * config/avr/avr.c (output_reload_insisf): Remove parameter "insn".
3228         (output_movsisf): Don't pass insn to output_reload_insisf.
3229         (adjust_insn_length): Handle new alternatives to adjust_len.
3230         Remove handling of ADJUST_LEN_YES.  Clean-up code.
3231
3232 2011-09-26  Eric Botcazou  <ebotcazou@adacore.com>
3233
3234         * ifcvt.c (noce_try_cmove_arith): Use may_trap_or_fault_p in lieu of
3235         may_trap_p to detect loads that may trap of fault.
3236
3237 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
3238
3239         * config/avr/avr-protos.h (output_reload_inhi): Change prototype.
3240         * config/avr/avr.md (adjust_len): Add "reload_in16" alternative.
3241         (*reload_inhi): Use it.  Adapt call to output_reload_inhi to new
3242         prototype.
3243         (*movhi): Split constraint alternative "r,rL" into "r,r" and "r,L".
3244         * config/avr/avr.c: Rename output_reload_insisf_1 to
3245         output_reload_in_const.
3246         (avr_popcount_each_byte): Handle SFmode, too.
3247         (output_reload_in_const): Change so it can handle HI loads, too.
3248         Use avr_popcount_each_byte to work out if scratch register must be
3249         created on the fly.
3250         (output_reload_inhi): Rewrite using output_reload_in_const and...
3251         (output_movhi): ...use it to print constants' loads.
3252         (adjust_insn_length): New case ADJUST_LEN_RELOAD_IN16. Cleanup code.
3253
3254 2011-09-25  David S. Miller  <davem@davemloft.net>
3255
3256         * config/sparc/constraints.md (C, P, Z): New constraints for
3257         const_doube, const_int, and const_vector "all ones" values.
3258         Make unused constraint letters comment match reality.
3259         * config/sparc/predicates.md (const_all_ones_operand,
3260         register_or_zero_or_all_ones_operand): New predicates.
3261         * config/sparc/sparc.c (sparc_expand_move): Allow all ones
3262         as well as zero constants when VIS.
3263         (sparc_legitimate_constant_p): Likewise.
3264         * config/sparc/sparc.md (movsi_insn): Add fones alternative.
3265         (movsf_insn): Likewise
3266         (movdi_insn_sp64): Add fone alternative.
3267         (movdf_insn_sp32_v9): Likewise.
3268         (movdf_insn_sp64): Likewise.
3269
3270         * configure.ac: Add feature check to make sure the assembler
3271         supports the FMAF, HPC, and VIS 3.0 instructions found on
3272         Niagara-3 and later cpus.
3273         * configure: Rebuild.
3274         * config.in: Likewise.
3275         * config/sparc/sparc.opt: New option '-mfmaf'.
3276         * config/sparc/sparc.md: Add float fused multiply-add patterns.
3277         * config/sparc/sparc.h (AS_NIAGARA3_FLAG): New macro.
3278         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Use it, as needed.
3279         * config/sparc/sol2.h (ASM_CPU32_DEFAULT_SPEC,
3280         ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Likewise.
3281         * config/sparc/sparc.c (sparc_option_override): Turn MASK_FMAF on
3282         by default for Niagara-3 and later.  Turn it off if TARGET_FPU is
3283         disabled.
3284         (sparc_rtx_costs): Handle 'FMA'.
3285         * doc/invoke.texi: Document -mfmaf.
3286
3287 2011-09-25  Jakub Jelinek  <jakub@redhat.com>
3288
3289         * tree-ssa-structalias.c (intra_create_variable_infos): Treat
3290         TYPE_RESTRICT REFERENCE_TYPE parameters like restricted
3291         DECL_BY_REFERENCE parameters.
3292
3293 2011-09-25  Eric Botcazou  <ebotcazou@adacore.com>
3294
3295         * tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore
3296         if there is no outgoing edge.
3297
3298         * tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and
3299         integral types.
3300
3301 2011-09-25  Ira Rosen  <ira.rosen@linaro.org>
3302
3303         * tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part
3304         of vect_analyze_bb here.
3305         (vect_analyze_bb): Loop over vector sizes calling vect_analyze_bb_1.
3306
3307 2011-09-25  Ira Rosen  <ira.rosen@linaro.org>
3308
3309         * tree-data-ref.c (dr_analyze_innermost): Add new argument.
3310         Allow not simple iv if analyzing basic block.
3311         (create_data_ref): Update call to dr_analyze_innermost.
3312         (stmt_with_adjacent_zero_store_dr_p, ref_base_address): Likewise.
3313         * tree-loop-distribution.c (generate_memset_zero): Likewise.
3314         * tree-predcom.c (find_looparound_phi): Likewise.
3315         * tree-data-ref.h (dr_analyze_innermost): Add new argument.
3316
3317 2011-09-24  David S. Miller  <davem@davemloft.net>
3318
3319         * config/sparc/sparc.h (FIRST_PSEUDO_REGISTER): Bump to 103.
3320         (SPARC_GSR_REG): Define.
3321         (FIXED_REGISTERS): Mark GSR as fixed.
3322         (CALL_USED_REGISTERS): Mark GSR as call used.
3323         (HARD_REGNO_NREGS): GSR is always 1 register.
3324         (REG_CLASS_CONTENTS): Add GSR to ALL_REGS.
3325         (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): Add GSR to the end.
3326         (REGISTER_NAMES): Add "%gsr".
3327         * config/sparc/sparc.md (UNSPEC_ALIGNADDR, UNSPEC_ALIGNADDRL): Delete.
3328         (UNSPEC_WRGSR): New unspec.
3329         (GSR_REG): New constant.
3330         (type): Add new insn type 'gsr'.
3331         (fpack16_vis, fpackfix_vis, fpack32_vis,
3332         faligndata<V64I:MODE>_vis)): Add use of GSR_REG.
3333         (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus, rdgsr_vis, *rdgsr_sp64,
3334         rdgsr_v8plus): New expanders and insns.
3335         (alignaddr<P:mode>_vis, alignaddrl<P:mode>_vis): Reimplement
3336         using patterns which show that this is a plus in addition to a
3337         modification of GSR_REG, instead of an unspec.
3338         * config/sparc/ultra1_2.md: Handle 'gsr'.
3339         * config/sparc/ultra3.md: Likewise.
3340         * config/sparc/niagara.md: Likewise.
3341         * config/sparc/niagara2.md: Likewise.
3342         * config/sparc/sparc.c (leaf_reg_remap, sparc_leaf_regs): Fill out
3343         end of table.
3344         (sparc_option_override): Make -mvis imply -mv8plus.
3345         (hard_32bit_mode_classes, hard_64bit_mode_classes): Add entries
3346         for %gsr.
3347         (sparc_vis_init_builtins): Build __builtin_vis_write_gsr and
3348         __builtin_vis_read_gsr.
3349         (sparc_expand_buildin): Handle builtins that take one argument and
3350         return void.
3351         (sparc_fold_builtin): Never fold writes to %gsr.
3352         * config/sparc/visintrin.h (__vis_write_gsr, __vis_read_gsr): New.
3353         * doc/extend.texi: Document new VIS intrinsics.
3354
3355 2011-09-23  Jan Hubicka  <jh@suse.cz>
3356
3357         * ipa-inline-transform.c (inline_call): Add comment.
3358         * ipa-inline.h (inline_param_summary): New structure and vector.
3359         (struct inline_edge_summary): Add param field.
3360         * ipa-inline-analysis.c (CHANGED): New constant.
3361         (add_clause): Handle CHANGED and NOT_CONSTANT.
3362         (predicate_probability): New function.
3363         (dump_condition): Dump CHANGED predicate.
3364         (evaluate_conditions_for_known_args): Handle ERROR_MARK as marker
3365         of unknown function wide invariant.
3366         (evaluate_conditions_for_edge): Handle change probabilities.
3367         (inline_edge_duplication_hook): Copy param summaries.
3368         (inline_edge_removal_hook): Free param summaries.
3369         (dump_inline_edge_summary): Fix dumping of indirect edges and callee
3370         sizes; dump param summaries.
3371         (will_be_nonconstant_predicate): Use CHANGED predicate.
3372         (record_modified_bb_info): New structure.
3373         (record_modified): New function.
3374         (param_change_prob): New function.
3375         (estimate_function_body_sizes): Compute param summaries.
3376         (estimate_edge_size_and_time): Add probability argument.
3377         (estimate_node_size_and_time): Add inline_param_summary argument;
3378         handle predicate probabilities.
3379         (remap_predicate): Fix formating.
3380         (remap_edge_change_prob): New function.
3381         (remap_edge_summaries): Rename from ...; use remap_edge_change_prob.
3382         (remap_edge_predicates): ... this one.
3383         (inline_merge_summary): Remap edge summaries; handle predicate
3384         probabilities; remove param summaries after we are done.
3385         (do_estimate_edge_time): Update.
3386         (do_estimate_edge_growth): Update.
3387         (read_inline_edge_summary): Read param info.
3388         (inline_read_summary): Fix formating.
3389         (write_inline_edge_summary): Write param summaries.
3390
3391 2011-09-23  Jakub Jelinek  <jakub@redhat.com>
3392
3393         * config/i386/i386.c (ix86_print_operand): Handle %~.
3394         (ix86_print_operand_punct_valid_p): Return true also for '~'.
3395         * config/i386/sse.md (i128): New mode_attr.
3396         (vec_extract_hi_<mode>, vec_extract_hi_<mode>,
3397         avx_vbroadcastf128_<mode>, *avx_vperm2f128<mode>_full,
3398         *avx_vperm2f128<mode>_nozero, vec_set_lo_<mode>,
3399         vec_set_hi_<mode>, *vec_concat<mode>_avx): Use <i128> in the
3400         patterns, use "<sseinsnmode>" for "mode" attribute.
3401         (vec_extract_hi_v16hi, vec_extract_hi_v32qi, vec_set_lo_v16hi,
3402         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Use
3403         %~128 in the patterns, use "OI" for "mode" attribute.
3404
3405 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
3406
3407         PR target/50447
3408         * config/avr/avr.md (adjust_len): Add alternatives "tsthi",
3409         "tstsi", "compare".
3410         (*cmpqi_sign_extend): Use s8_operand.
3411         (*cmphi, *cmpsi): Rewrite using avr_out_compare.
3412         * config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove
3413         prototypes.
3414         (out_tsthi, out_tstsi): Remove prototypes.
3415         (avr_out_tsthi, avr_out_tstsi): New prototypes.
3416         * config/avr/avr.c (out_tsthi, out_tstsi): Remove functions.
3417         (avr_asm_len): Negative length now sets *plen to -length.
3418         (compare_sign_p): Return bool instead of int.
3419         (compare_diff_p, compare_eq_p): Ditto and make static.
3420         (avr_out_tsthi): New function.
3421         (avr_out_tstsi): New function.
3422         (avr_out_compare): New function.
3423         (adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI,
3424         ADJUST_LEN_COMPARE.
3425
3426 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
3427
3428         PR target/50447
3429         * config/avr/avr.md: (adjust_len): Add alternative "out_plus".
3430         (addsi3): Rewrite using QI scratch register.  Adjust text
3431         peepholes using plus:SI.
3432         (*addsi3_zero_extend.hi): New insn.
3433         (*subsi3_zero_extend.hi): New insn.
3434         (*subhi3_zero_extend1): Set attribute "cc" to "set_czn".
3435         (*subsi3_zero_extend): Ditto.
3436         (subsi3): Change predicate #2 to register_operand.
3437         * config/avr/avr-protos.h (avr_out_plus): New prototype.
3438         (avr_out_plus_1): New static function.
3439         (avr_out_plus): New function.
3440         (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS.
3441
3442 2011-09-23  Jakub Jelinek  <jakub@redhat.com>
3443
3444         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): For
3445         GE/GT/UNLE/UNLT swap arguments and condition even for TARGET_AVX.
3446
3447 2011-09-23  Ian Lance Taylor  <iant@google.com>
3448
3449         * godump.c (go_define): Treat a single character in single quotes,
3450         or a string, as an operand.
3451
3452 2011-09-23  Martin Jambor  <mjambor@suse.cz>
3453
3454         * ipa-prop.h (jump_func_type): Updated comments.
3455         (ipa_known_type_data): New type.
3456         (ipa_jump_func): Use it to describe known type jump functions.
3457         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Updated to
3458         reflect the new known type jump function contents.
3459         (compute_known_type_jump_func): Likewise.
3460         (combine_known_type_and_ancestor_jfs): Likewise.
3461         (try_make_edge_direct_virtual_call): Likewise.
3462         (ipa_write_jump_function): Likewise.
3463         (ipa_read_jump_function): Likewise.
3464         * ipa-cp.c (ipa_value_from_known_type_jfunc): New function.
3465         (ipa_value_from_jfunc): Use ipa_value_from_known_type_jfunc.
3466         (propagate_accross_jump_function): Likewise.
3467
3468 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
3469
3470         PR target/50446
3471         * config/avr/avr.md (rotlqi3): Support all offsets 0..7.
3472         (rotlqi3_4): Turn insn into expander.
3473         (*rotlqi3): New insn.
3474         (rotlhi3, rotlsi3): Support rotate left/right by 1.
3475         (*rotlhi2.1, *rotlhi2.15): New insns.
3476         (*rotlsi2.1, *rotlsi2.31): New insns.
3477         * config/avr/constraints.md (C03, C05, C06, C07): New constraints.
3478
3479 2011-09-23  Bin Cheng  <bin.cheng@arm.com>
3480
3481         * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-m arch and processors.
3482
3483 2011-09-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3484
3485         * ipa-prop.c (ipa_print_node_jump_functions): Fix typos.
3486
3487 2011-09-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3488
3489         * reload.c (find_reloads): Set operand_mode to Pmode for address
3490         operands consisting of just a CONST_INT.
3491
3492 2011-09-22  Uros Bizjak  <ubizjak@gmail.com>
3493
3494         PR target/50482
3495         * config/i386/i386.c (ix86_expand_sse_movcc): When generating
3496         blendv, force op_true to register if it doesn't satisfy
3497         nonimmediate_operand predicate.
3498
3499 2011-09-22  Richard Sandiford  <rdsandiford@googlemail.com>
3500
3501         PR middle-end/50113
3502         PR middle-end/50061
3503         * calls.c (emit_library_call_value_1): Use BLOCK_REG_PADDING to
3504         get the locate.where_pad value for register-only arguments.
3505         * config/arm/arm.c (arm_pad_arg_upward): Remove HFmode handling.
3506         (arm_pad_reg_upward): Handle null types.
3507
3508 2011-09-22  Jan Hubicka  <jh@suse.cz>
3509
3510         * ipa-inline-analysis.c: Fix overly long lines.
3511
3512 2011-09-22  Jan Hubicka  <jh@suse.cz>
3513
3514         * ipa-inline-transform.c (inline_call): Always update jump functions
3515         after inlining.
3516         * ipa-inline.c (ipa_inline): Likewise; do not call
3517         ipa_create_all_structures_for_iinln.
3518         (ipa_inline): Always free jump functions.
3519         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Remove hack.
3520         (remap_edge_predicates): Fix pasto.
3521         (inline_merge_summary): Remove nlined edge predicate; remove hack.
3522         (inline_analyze_function): Always initialize jump functions.
3523         (inline_generate_summary): Likewise.
3524         (inline_write_summary): Always write jump functions when ipa-cp
3525         is not doing that.
3526         (inline_read_summary): Always read jump functions when ipa-cp
3527         is not doing that.
3528         * ipa-prop.c (iinlining_processed_edges): Remove.
3529         (update_indirect_edges_after_inlining): Do not use
3530         iinlining_processed_edges; instead set param_index to -1.
3531         (propagate_info_to_inlined_callees): Only try to indirect inlining
3532         when asked to do so; update jump functions of indirect calls, too;
3533         remove jump functions of the inlined edge.
3534         (ipa_edge_duplication_hook): Do not copy iinlining_processed_edges.
3535         (ipa_create_all_structures_for_iinln): Remove.
3536         (ipa_free_all_structures_after_iinln): Do not free
3537         iinlining_processed_edges.
3538         * ipa-prop.h (ipa_create_all_structures_for_iinln): Remove.
3539
3540 2011-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
3541
3542         * config/arm/predicates.md (expandable_comparison_operator): New
3543         predicate, extracted from...
3544         (arm_comparison_operator): ...here.
3545         * config/arm/arm.md (cbranchsi4, cbranchsf4, cbranchdf4, cbranchdi4)
3546         (cstoresi4, cstoresf4, cstoredf4, cstoredi4, movsicc, movsfcc)
3547         (movdfcc): Use expandable_comparison_operator.
3548
3549 2011-09-22  Georg-Johann Lay  <avr@gjlay.de>
3550
3551         PR target/50447
3552         PR target/50465
3553         * config/avr/avr-protos.h (avr_out_bitop): New prototype.
3554         (avr_popcount_each_byte): New prototype.
3555         * config/avr/avr.c (avr_popcount): New static function.
3556         (avr_popcount_each_byte): New function.
3557         (avr_out_bitop): New function.
3558         (adjust_insn_length): ADJUST_LEN_OUT_BITOP dispatches to
3559         avr_out_bitop.  Cleanup code.
3560         * config/avr/constraints.md (Ca2, Co2, Cx2): New constraints.
3561         (Ca4, Co4, Cx4): New constraints.
3562         * config/avr/avr.md (adjust_len): Add "out_bitop" insn attribute
3563         alternative.
3564         (andhi3, iorhi3, xorhi3): Rewrite insns using avr_out_bitop.
3565         (andsi3, iorsi3, xorsi3): Ditto.
3566         (*iorhi3_clobber, *iorsi3_clobber): Remove insns.
3567
3568 2011-09-22  Ira Rosen  <ira.rosen@linaro.org>
3569
3570         PR tree-optimization/50451
3571         * tree-vect-slp.c (vect_get_constant_vectors): Don't fail for
3572         constant operands in reduction.
3573         (vect_get_slp_defs): Don't create vector operand for NULL scalar
3574         operand.
3575
3576 2011-09-22  David S. Miller  <davem@davemloft.net>
3577
3578         * config/sparc/sparc.c (sparc_vis_init_builtins): Do not mark
3579         fpack16, fpack32, fpackfix as const.
3580
3581         * config/sparc/sparc.md (G[0-7]_REG, O[0-7]_REG, L[0-7]_REG,
3582         I[0-7]_REG, F[0-62]_REG, FCC[0-3]_REG, CC_REG, SFP_REG): New
3583         constants.  Use them everywhere.
3584
3585 2011-09-22  Oleg Endo  <oleg.endo@t-online.de>
3586
3587         * config/sh/sh.c (andcosts): Renamed to and_xor_ior_costs.
3588         Added AND special case.  Adapted comments.
3589         (sh_rtx_costs): Added XOR and IOR case.
3590
3591 2011-09-21  Jan Hubicka  <jh@suse.cz>
3592
3593         * ipa-inline-analsis.c (compute_inline_parameters): Set
3594         cfun and current_function_decl.
3595
3596 2011-09-21  Jan Hubicka  <jh@suse.cz>
3597
3598         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Allow
3599         handled components in parameter of builtin_constant_p.
3600         (will_be_nonconstant_predicate): Allow loads of non-SSA parameters.
3601
3602 2011-09-21  Jan Hubicka  <jh@suse.cz>
3603
3604         * ipa-inline.c (relative_time_benefit): Fix wrong bracketting.
3605         * ipa-inline.h (estimate_edge_time): Fix pasto.
3606         * ipa-inline-analysis.c (do_estiamte_edge_time): Remove capping.
3607
3608 2011-09-21  Jakub Jelinek  <jakub@redhat.com>
3609
3610         * config/i386/i386.c (ix86_expand_sse_movcc): Use
3611         blendvps, blendvpd and pblendvb if possible.
3612
3613 2011-09-21  Uros Bizjak  <ubizjak@gmail.com>
3614
3615         PR target/50464
3616         * config/i386/sse.md (xop_pcmov_<mode><avxsizesuffix>): Change
3617         operand 1 predicate to register_operand and operand 2 predicate
3618         to nonimmediate_operand.
3619         * config/i386/i386.c (ix86_expand_sse_movcc): When generating
3620         xop_pcmov, force op_true to register.  Also, force op_false to
3621         register if it doesn't satisfy nonimmediate_operand predicate.
3622
3623 2011-09-21  Kirill Yukhin  <kirill.yukhin@intel.com>
3624
3625         * config/i386/bmi2intrin.h (_mulx_u64): New.
3626         (_mulx_u32): Ditto.
3627
3628 2011-09-21  Jan Hubicka  <jh@suse.cz>
3629
3630         PR tree-optimization/50433
3631         * ipa-inline-analysis.c (eliminated_by_inlining_prob):
3632         Use get_base_address.
3633
3634 2011-09-21  Jakub Jelinek  <jakub@redhat.com>
3635
3636         * config/i386/sse.md (<code><mode>3 smaxmin:VI124_128 expander): Use
3637         nonimmediate_operand instead of register_operand predicate for operands
3638         1 and 2, force them into registers if expanding them as comparison.
3639         (<code><mode>3 umaxmin:VI124_128 expander): Similarly.  For UMAX
3640         V8HImode force into register just operand 1.
3641
3642 2011-09-21  Georg-Johann Lay  <avr@gjlay.de>
3643
3644         PR target/45099
3645         * config/avr/avr.c (avr_function_arg_advance): Change error to
3646         warning if a fixed register is needed as function argument.
3647
3648 2011-09-21  Georg-Johann Lay  <avr@gjlay.de>
3649
3650         PR target/50449
3651         PR target/50465
3652         * config/avr/avr.md (adjust_len): New insn attribute.
3653         (*reload_insi, *reload_insf): Use it.
3654         (*movsi, *movsf): Use new interface of output_movsisf.
3655         * config/avr/avr-protos.h (output_movsisf): Change prototype.
3656         * config/avr/avr.c (output_movsisf): Ditto.
3657         (adjust_insn_length): Use insn attribute "adjust_len" to adjust
3658         lengths of insns *reload_insi, *reload_insf.
3659         (output_reload_insisf_1): New static function.
3660         (output_reload_insisf): Use it.
3661
3662 2011-09-21  David S. Miller  <davem@davemloft.net>
3663
3664         * config/sparc/sparc.c (def_builtin): Change from macro into function.
3665         (def_builtin_const): New.
3666         (sparc_vis_init_builtins): Use def_builtin_const for all VIS builtins
3667         other than alignaddr and falignaddr.
3668
3669         * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, UNSPEC_FCMPGT,
3670         UNSPEC_FCMPEQ): New unspec codes.
3671         (fcmple16_vis, fcmple32_vis, fcmpne16_vis, fcmpne32_vis, fcmpgt16_vis,
3672         fcmpgt32_vis, fcmpeq16_vis, fcmpeq32_vis): New patterns.
3673         * config/sparc/sparc.c (sparc_vis_init_builtins): Create builtins for
3674         new pixel compare VIS patterns.
3675         * config/sparc/visintrin.h (__vis_fcmple16, __vis_fcmple32,
3676         __vis_fcmpne16, __vis_fcmpne32, __vis_fcmpgt16, __vis_fcmpgt32,
3677         __vis_fcmpeq16, __vis_fcmpeq32): New.
3678         * doc/extend.texi: Document new pixel compare VIS intrinsics.
3679
3680 2011-09-21  Tom de Vries  <tom@codesourcery.com>
3681
3682         * final.c (final): Handle if JUMP_LABEL is not LABEL_P.
3683
3684 2011-09-20  David S. Miller  <davem@davemloft.net>
3685
3686         * config/sparc/sparc.md (UNSPEC_ALIGNADDRL): New unspec.
3687         (aligneddrl<P:mode>_vis): New pattern.
3688         (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
3689         edge32l_vis): Adjust to take Pmode arguments, and return SImode.
3690         * config/sparc/sparc.c (sparc_vis_init_builtins): Handle new
3691         alignaddrl insn, and adjust edge operations for updated types.
3692         * config/sparc/visintrin.h: Likewise.
3693         * doc/extend.texi: Make typing in VIS documentation match reality.
3694
3695 2011-09-20  Terry Guo  <terry.guo@arm.com>
3696
3697         * config/arm/arm-arches.def: Add armv6s-m.
3698         * config/arm/arm-tables.opt: Regenerate.
3699
3700 2011-09-20  Wei Guozhi  <carrot@google.com>
3701
3702         PR rtl-optimization/49452
3703         * postreload.c (reload_combine): Invalidate use information when across
3704         volatile insn.
3705
3706 2011-09-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
3707
3708         * haifa-sched.c (has_edge_p, prev_non_location_insn, check_cfg):
3709         Remove maintenance overhead.
3710         (haifa_sched_init, sched_finish): Update.
3711
3712 2011-09-19  Uros Bizjak  <ubizjak@gmail.com>
3713
3714         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use if_then_else RTX
3715         to calculate unit, prefix_rep and prefix_data16 attributes.
3716         (*mov<mode>_internal): Ditto for unit attribute.
3717         (*movv2sf_internal_rex64): Ditto for unit and prefix_rep attributes.
3718         (*movv2sf_internal): Ditto.
3719         * config/i386/sse.md (VI1248_256): Remove mode iterator.
3720         (avx2_eq<mode>3): Use VI_256 instead of VI1248_256.
3721         (*avx2_eq<mode>3): Ditto.
3722         (avx2_gt<mode>3): Ditto.
3723
3724 2011-09-19  Uros Bizjak  <ubizjak@gmail.com>
3725
3726         * config/i386/i386.md (maxmin): New code iterator.
3727         * config/i386/sse.md (<maxmin:code><mode>3): Macroize expander
3728         from <umaxmin:code><mode>3 and <smaxmin:code><mode>3 using maxmin
3729         code iterator.
3730         (*avx2_<maxmin:code><mode>3): Macroize isn from
3731         *avx2_<umaxmin:code><mode>3 and *avx2_<smaxmin:code><mode>3 using
3732         maxmin code iterator.
3733         (<smaxmin:code><VI124_128:mode>3): Merge with <smaxmin:code>v8hi3.
3734         (<umaxmin:code><VI124_128:mode>3): Merge with umaxv4si3 and
3735         <umaxmin:code>v16qi3.
3736
3737 2011-09-19  Alan Modra  <amodra@gmail.com>
3738             Michael Meissner  <meissner@linux.vnet.ibm.com>
3739
3740         PR target/50341
3741         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Do not
3742         split the load of the indirect function's TOC from the call to
3743         prevent the compiler from moving the load of the new TOC above
3744         code that references the current function's TOC.
3745         (call_indirect_aix<ptrsize>_internal): Ditto.
3746         (call_indirect_aix<ptrsize>_nor11): Ditto.
3747         (call_indirect_aix<ptrsize>_internal2): Ditto.
3748         (call_value_indirect_aix<ptrsize>): Ditto.
3749         (call_value_indirect_aix<ptrsize>_internal): Ditto.
3750         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
3751         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
3752
3753 2011-09-19  Jakub Jelinek  <jakub@redhat.com>
3754
3755         * config/i386/sse.md (*sse4_1_extractps): Change into
3756         define_insn_and_split, add =x 0 n and =x x n alternatives
3757         and split them after reload.
3758
3759 2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
3760
3761         * tree.h (TREE_NOT_CHECK4): Rename from bogus NON_TREE_CHECK4.
3762
3763 2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
3764
3765         * emit-rtl.c (copy_insn_1): Do not copy DEBUG_EXPRs.
3766
3767 2011-09-19  Ira Rosen  <ira.rosen@linaro.org>
3768
3769         PR tree-optimization/50413
3770         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail to vectorize
3771         a basic block if one of its data-refs can't be analyzed.
3772
3773 2011-09-19  Paul Brook  <paul@codesourcery.com>
3774
3775         * config/arm/predicates.md (shift_amount_operand): Check constant
3776         shift count is in range.
3777         (const_shift_operand): Remove.
3778
3779 2011-09-18  Eric Botcazou  <ebotcazou@adacore.com>
3780             Iain Sandoe  <developer@sandoe-acoustics.co.uk>
3781
3782         PR target/50091
3783         * config/rs6000/rs6000.md (probe_stack): Use explicit operand.
3784         * config/rs6000/rs6000.c (output_probe_stack_range): Likewise.
3785
3786 2011-09-18  H.J. Lu  <hongjiu.lu@intel.com>
3787
3788         * config/i386/bmiintrin.h: Remove tmp.
3789         * config/i386/tbmintrin.h: Likewise.
3790
3791 2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
3792
3793         PR tree-optimization/50414
3794         * tree-vect-slp.c (vect_get_constant_vectors): Handle MAX_EXPR and
3795         MIN_EXPR.
3796
3797 2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
3798
3799         PR tree-optimization/50412
3800         * tree-vect-data-refs.c (vect_analyze_group_access): Fail for
3801         acceses that require epilogue loop if vectorizing outer loop.
3802
3803 2011-09-17  David S. Miller  <davem@davemloft.net>
3804
3805         * config/sparc/sparc.md (UNSPEC_EDGE8, UNSPEC_EDGE8L,
3806         UNSPEC_EDGE16, UNSPEC_EDGE16L, UNSPEC_EDGE32, UNSPEC_EDGE32L):
3807         New unspecs.
3808         (define_attr type): New type 'edge'.
3809         (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
3810         edge32l_vis): New patterns.
3811         * config/sparc/ultra1_2.md: Add insn reservation for 'edge'.
3812         * config/sparc/ultra3.md: Likewise.
3813         * config/sparc/niagara.md: Likewise.
3814         * config/sparc/niagara2.md: Likewise.
3815         * config/sparc/sparc.d (sparc_vis_init_builtins): Generate
3816         builtins for VIS edge instructions.
3817         * config/sparc/visintrin.h (__vis_edge8, __vis_edge8l)
3818         (__vis_edge16, __vis_edge16l, __vis_edge32, __vis_edge32l): New
3819         intrinsics.
3820         (__v8qi, __v4qi): Make unsigned.
3821         (__vis_faligndatadi, ___vis_faligndatav2si, __vis_faligndatav4hi,
3822         __vis_faligndatav8qi, __vis_fmul8x16au, __vis_fmul8x16al,
3823         __vis_fpack32): Fix types.
3824         * doc/extend.texi: Document new 'edge' VIS intrinsics.
3825
3826         * gcc/config/sparc/sparc.c (niagara2_costs): Adjust integer
3827         divide costs.
3828         (niagara3_costs): New.
3829         (sparc_option_override): Use it.
3830         * gcc/config/sparc/niagara2.md: Adjust with more accurate
3831         Niagara-3 reservations.
3832
3833 2011-09-17  Jakub Jelinek  <jakub@redhat.com>
3834
3835         * config/i386/sse.md (VIMAX_AVX2): Change V4DI to V2TI.
3836         (sse2_avx, sseinsnmode): Add V2TI.
3837         (REDUC_SMINMAX_MODE): New mode iterator.
3838         (reduc_smax_v4sf, reduc_smin_v4sf, reduc_smax_v8sf,
3839         reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): Remove.
3840         (reduc_<code>_<mode>): New smaxmin and umaxmin expanders.
3841         (sse2_lshrv1ti3): Rename to...
3842         (<sse2_avx2>_lshr<mode>3): ... this.  Use VIMAX_AVX2 mode
3843         iterator.  Move before umaxmin expanders.
3844         * config/i386/i386.h (VALID_AVX256_REG_MODE,
3845         SSE_REG_MODE_P): Accept V2TImode.
3846         * config/i386/i386.c (ix86_expand_reduc): Handle V32QImode,
3847         V16HImode, V8SImode and V4DImode.
3848
3849         * config/i386/i386.c (ix86_build_const_vector): Handle V8SImode
3850         and V4DImode.
3851         (ix86_build_signbit_mask): Likewise.
3852         (ix86_expand_int_vcond): Likewise.  Handle V16HImode and V32QImode.
3853         (bdesc_args): Use CODE_FOR_{s,u}m{ax,in}v{32q,16h,8s}i3
3854         instead of CODE_FOR_avx2_{s,u}m{ax,in}v{32q,16h,8s}i3.
3855         * config/i386/sse.md (avx2_<code><mode>3 umaxmin expand): Rename to...
3856         (<code><mode>3) ... this.
3857         (avx2_<code><mode>3 smaxmin expand): Rename to...
3858         (<code><mode>3) ... this.
3859         (smax<mode>3, smin<mode>3): Macroize using smaxmin code iterator.
3860         (smaxv2di3, sminv2di3): Macroize using smaxmin code iterator and
3861         VI8_AVX2 mode iterator.
3862         (umaxv2di3, uminv2di3): Macroize using umaxmin code iterator and
3863         VI8_AVX2 mode iterator.
3864         (vcond<V_256:mode><VI_256:mode>, vcondu<V_256:mode><VI_256:mode>):
3865         New expanders.
3866
3867 2011-09-17  Richard Sandiford  <rdsandiford@googlemail.com>
3868
3869         * config/ia64/itanium2.md: Use match_test rather than eq/ne symbol_ref
3870         throughout file.
3871
3872 2011-09-16  David S. Miller  <davem@davemloft.net>
3873
3874         * config/sparc/visintrin.h: New file.
3875         * config.gcc: Add it to extra_headers on sparc.
3876
3877 2011-09-16  Jakub Jelinek  <jakub@redhat.com>
3878
3879         * config/i386/i386.c (ix86_expand_reduc_v4sf): Rename to ...
3880         (ix86_expand_reduc): ... this.  Handle also V8SFmode and V4DFmode.
3881         * config/i386/sse.md (reduc_splus_v4sf, reduc_smax_v4sf,
3882         reduc_smin_v4sf): Adjust callers.
3883         (reduc_smax_v8sf, reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df):
3884         New expanders.
3885
3886         * config/i386/sse.md (vec_extract_hi_<mode>,
3887         vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use
3888         vextracti128 instead of vextractf128 for -mavx2 and
3889         integer vectors.  For V4DFmode fix up mode attribute.
3890         (VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors.
3891         (vec_set_lo_<mode>, vec_set_hi_<mode>): For VI8F_256 modes use V4DF
3892         instead of V8SF mode attribute.
3893         (avx2_extracti128): Change into define_expand.
3894         * config/i386/i386.c (ix86_expand_vector_extract): Handle
3895         32-byte vector modes if TARGET_AVX.
3896
3897 2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
3898
3899         * config/avr/avr.md: (umulqihi3, mulqihi3): Write as one pattern.
3900         (umulqi3_highpart, smulqi3_highpart): Ditto.
3901         (*maddqihi4.const, *umaddqihi4.uconst): Ditto.
3902         (*msubqihi4.const, *umsubqihi4.uconst): Ditto.
3903         (*muluqihi3.uconst, *mulsqihi3.sconst): Ditto.
3904
3905 2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
3906
3907         PR target/50358
3908         * config/avr/avr.md (*ashiftqihi2.signx.1): New insn.
3909         (*maddqi4, *maddqi4.const): New insns.
3910         (*msubqi4, *msubqi4.const): New insns.
3911         * config/avr/avr.c (avr_rtx_costs): Record costs of above in cases
3912         PLUS:QI and MINUS:QI.  Increase costs of multiply-add/-sub for
3913         HImode by 1 in the case of multiplying with a CONST_INT.
3914         Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI.
3915
3916 2011-09-15   Jan Hubicka  <jh@suse.cz>
3917
3918         PR lto/50430
3919         * gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on
3920         error_mark_node in the DECL_INITIAL of vtable.
3921
3922 2011-09-15   Diego Novillo  <dnovillo@google.com>
3923
3924         * Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from
3925         @SYSROOT_CFLAGS_FOR_TARGET@.
3926         * configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from build-sysroot.
3927         * configure: Regenerate.
3928         (site.exp): Add definition of TEST_ALWAYS_FLAGS.
3929         Remove setting of GCC_UNDER_TEST.
3930
3931 2011-09-15  Uros Bizjak  <ubizjak@gmail.com>
3932
3933         * config/i386/i386.c (output_fp_compare): Return %v prefixed
3934         instruction mnemonics for TARGET_AVX.
3935
3936         * config/i386/i386.md (*movdf_internal_rex64): use cond RTX in
3937         "type" attribute calculation.
3938         (*movdf_internal): Ditto.
3939         (*movsf_internal): Ditto.
3940
3941 2011-09-15  James Greenhalgh  <james.greenhalgh@arm.com>
3942
3943         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): New builtin macro.
3944
3945 2011-09-15  Jason Merrill  <jason@redhat.com>
3946
3947         PR c++/50361
3948         * expr.c (count_type_elements): Handle NULLPTR_TYPE.
3949
3950 2011-09-15  Jan Hubicka  <jh@suse.cz>
3951
3952         * ipa-inline-analysis.c (add_condition): Add conditions parameter;
3953         simplify obviously true clauses.
3954         (and_predicates, or_predicates): Add conditions parameter.
3955         (inline_duplication_hoook): Update.
3956         (mark_modified): New function.
3957         (unmodified_parm): New function.
3958         (eliminated_by_inlining_prob, (set_cond_stmt_execution_predicate,
3959         set_switch_stmt_execution_predicate, will_be_nonconstant_predicate):
3960         Use unmodified_parm.
3961         (estimate_function_body_sizes): Update.
3962         (remap_predicate): Update.
3963
3964 2011-09-15  Ira Rosen  <ira.rosen@linaro.org>
3965
3966         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Allow
3967         read-after-read dependencies in basic block SLP.
3968
3969 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
3970
3971         * config/sparc/sparc.md: Use match_test rather than eq/ne symbol_ref
3972         throughout file.
3973
3974 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
3975
3976         * config/sh/sh.md: Use match_test rather than eq/ne symbol_ref
3977         throughout file.
3978
3979 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
3980
3981         * config/s390/s390.md: Use match_test rather than eq/ne symbol_ref
3982         throughout file.
3983
3984 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
3985
3986         * config/rs6000/rs6000.md: Use match_test rather than eq/ne symbol_ref
3987         throughout file.
3988         * config/rs6000/constraints.md: Likewise.
3989
3990 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
3991
3992         * config/microblaze/microblaze.md: Use match_test rather than
3993         eq/ne symbol_ref throughout file.
3994
3995 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
3996
3997         * config/bfin/bfin.md: Use match_test rather than eq/ne symbol_ref
3998         throughout file.
3999
4000 2011-09-14  Tom de Vries  <tom@codesourcery.com>
4001
4002         PR middle-end/50251
4003         * explow.c (emit_stack_restore): Set crtl->need_drap if
4004         stack_restore is emitted.
4005
4006 2011-09-14  Julian Brown  <julian@codesourcery.com>
4007
4008         * config/arm/arm.c (arm_override_options): Add unaligned_access
4009         support.
4010         (arm_file_start): Emit attribute for unaligned access as appropriate.
4011         * config/arm/arm.md (UNSPEC_UNALIGNED_LOAD)
4012         (UNSPEC_UNALIGNED_STORE): Add constants for unspecs.
4013         (insv, extzv): Add unaligned-access support.
4014         (extv): Change to expander. Likewise.
4015         (extzv_t1, extv_regsi): Add helpers.
4016         (unaligned_loadsi, unaligned_loadhis, unaligned_loadhiu)
4017         (unaligned_storesi, unaligned_storehi): New.
4018         (*extv_reg): New (previous extv implementation).
4019         * config/arm/arm.opt (munaligned_access): Add option.
4020         * config/arm/constraints.md (Uw): New constraint.
4021         * expmed.c (store_bit_field_1): Adjust bitfield numbering according
4022         to size of access, not size of unit, when BITS_BIG_ENDIAN !=
4023         BYTES_BIG_ENDIAN. Don't use bitfield accesses for
4024         volatile accesses when -fstrict-volatile-bitfields is in effect.
4025         (extract_bit_field_1): Likewise.
4026
4027 2011-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
4028
4029         * simplify-rtx.c (simplify_subreg): Check that the inner mode is
4030         a scalar integer before applying integer-only optimisations to
4031         inner arithmetic.
4032
4033 2011-09-14  Bernd Schmidt  <bernds@codesourcery.com>
4034
4035         * config/mips/mips.c (mips_expand_epilogue): Generate a
4036         simple_return only if the return address is in r31.
4037
4038 2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
4039
4040         * cfgcleanup.c (try_head_merge_bb): If get_condition returns
4041         NULL for a jump that is a cc0 insn, pick the previous insn for
4042         move_before.
4043
4044 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
4045
4046         * config/v850/v850.md: Use match_test rather than eq/ne symbol_ref
4047         throughout file.
4048
4049 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
4050
4051         * config/pa/pa.md: Use match_test rather than eq/ne symbol_ref
4052         throughout file.
4053
4054 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
4055
4056         * config/mn10300/mn10300.md: Use match_test rather than eq/ne
4057         symbol_ref throughout file.
4058
4059 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
4060
4061         * config/m68k/m68k.md: Use match_test rather than eq/ne symbol_ref
4062         throughout file.
4063
4064 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
4065
4066         * config/h8300/h8300.md: Use match_test rather than eq/ne symbol_ref
4067         throughout file.
4068
4069 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
4070
4071         * config/arm/arm.md: Use match_test rather than eq/ne symbol_ref
4072         throughout file.
4073         * config/arm/neon.md: Likewise.
4074         * config/arm/vfp.md: Likewise.
4075         * config/arm/thumb2.md: Likewise.
4076         * config/arm/cortex-m4.md: Likewise.
4077
4078 2011-09-13  Sevak Sargsyan <sevak.sargsyan@ispras.ru>
4079
4080         * config/arm/neon.md (neon_vabd<mode>_2, neon_vabd<mode>_3): New
4081         define_insn patterns for combine.
4082
4083 2011-09-13  Giuseppe Scrivano  <gscrivano@gnu.org>
4084
4085         * reorg.c: Always define make_return_insns.
4086
4087 2011-09-13  Jan Hubicka  <jh@suse.cz>
4088
4089         PR other/49533
4090         * cgraphunit.c (assemble_thunks_and_aliases): Force alias to be output.
4091
4092 2011-09-13  Jan Hubicka  <jh@suse.cz>
4093
4094         PR other/49533
4095         * ipa-inline-transform.c (can_remove_node_now_p): Fix thunkos.
4096
4097 2011-09-13  Paul Brook  <paul@codesourcery.com>
4098
4099         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
4100         (ARM_TARGET2_DWARF_FORMAT): Provide default definition.
4101         * config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define.
4102         * config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define.
4103         * config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define.
4104         * config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h.
4105         * config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h.
4106         * config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code
4107         enabling unwind tables.
4108         (c6x_debug_unwind_info): New function.
4109         (TARGET_ARM_EABI_UNWINDER): Define.
4110         (TARGET_DEBUG_UNWIND_INFO): Define.
4111         * config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define.
4112         (TARGET_EXTRA_CFI_SECTION): Remove.
4113         * config/c6x/t-c6x-elf (EXTRA_HEADERS): Set.
4114         * ginclude/unwind-arm-common.h: New file.
4115
4116 2011-09-13  Georg-Johann Lay  <avr@gjlay.de>
4117
4118         PR target/50358
4119         * config/avr/predicates.md (const_1_to_6_operand): New predicate.
4120         * config/avr/avr.md: (extend_s): New code attribute.
4121         (mul_r_d): New code attribute.
4122         (*maddqihi4, *umaddqihi4): New insns.
4123         (*msubqihi4, *umsubqihi4): New insns.
4124         (*usmaddqihi4, *sumaddqihi4): New insns.
4125         (*usmsubqihi4, *susubdqihi4): New insns.
4126         (*umaddqihi4.uconst, *maddqihi4.sconst): New insn-and-splits.
4127         (*umsubqihi4.uconst, *msubqihi4.sconst): New insn-and-splits.
4128         (*umsubqihi4.uconst.ashift): New insn-and-split.
4129         (*msubqihi4.sconst.ashift): New insn-and-split.
4130         (*sumaddqihi4.uconst): New insn-and-split.
4131         (*sumsubqihi4.uconst): New insn-and-split.
4132         * config/avr/avr.c (avr_rtx_costs): Report costs of above in case
4133         PLUS:HI and MINUS:HI.
4134
4135 2011-09-13  Revital Eres  <revital.eres@linaro.org>
4136
4137         modulo-sched.c (remove_node_from_ps): Return void instead of bool.
4138         (optimize_sc): Adjust call to remove_node_from_ps.
4139         (sms_schedule): Add print info.
4140
4141 2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
4142
4143         * rtl.c (copy_rtx): Do not handle frame_related, jump or call
4144         flags specially.
4145
4146 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
4147
4148         PR bootstrap/50010
4149         * dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between
4150         NOTE_INSN_CFI notes, with the exception of
4151         NOTE_INSN_SWITCH_TEXT_SECTIONS.
4152
4153 2011-09-12  Bernd Schmidt  <bernds@codesourcery.com>
4154             Richard Sandiford  <rdsandiford@googlemail.com>
4155
4156         * config/mips/mips.c (mips_epilogue): New structure.
4157         (mips16e_save_restore_reg): Queue REG_CFA_RESTORE notes when
4158         restoring registers.
4159         (mips_epilogue_emit_cfa_restores): New function.
4160         (mips_epilogue_set_cfa): Likewise.
4161         (mips_restore_reg): Queue REG_CFA_RESTORE notes.  When restoring
4162         the current CFA register from the stack, redefine the CFA in terms
4163         of the stack pointer.
4164         (mips_expand_epilogue): Set up mips_epilogue.  Attach CFA information
4165         to the epilogue instructions.
4166
4167 2011-09-12  Richard Sandiford  <rdsandiford@googlemail.com>
4168
4169         * config/mips/mips.c (mips16e_save_restore_reg): Add a reg_parm_p
4170         argument.
4171         (mips16e_build_save_restore): Update accordingly.
4172
4173 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
4174
4175         PR rtl-optimization/50212
4176         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
4177         Skip also lps with NULL landing_pad or non-LABEL_P landing_pad.
4178
4179         PR debug/50299
4180         * calls.c (load_register_parameters): Use use_reg_mode instead
4181         of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE
4182         entry.
4183         (expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument
4184         for stack CALL_INSN_FUNCTION_USAGE uses.
4185         * expr.h (use_reg_mode): New prototype.
4186         (use_reg): Changed into inline around use_reg_mode.
4187         * expr.c (use_reg): Renamed to...
4188         (use_reg_mode): ... this.  Added MODE argument, set EXPR_LIST
4189         mode to that mode instead of VOIDmode.
4190         * var-tracking.c (prepare_call_arguments): Don't track parameters
4191         whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible
4192         to it using lowpart_subreg.  Convert VALUE and REG/MEM to the
4193         EXPR_LIST mode.
4194
4195 2011-09-12  Georg-Johann Lay  <avr@gjlay.de>
4196
4197         PR target/43746
4198         * config/avr/avr.c (AVR_SECTION_PROGMEM): New Define.
4199         (progmem_section): New Variable.
4200         (avr_asm_init_sections): Initialize it.
4201         (TARGET_ASM_SELECT_SECTION): Define to...
4202         (avr_asm_select_section): ... this new Function.
4203         (avr_replace_prefix): New Function.
4204         (avr_asm_function_rodata_section): Use it.
4205         (avr_insert_attributes): Don't add section attribute for PROGMEM.
4206         (avr_section_type_flags): Use avr_progmem_p instead of section
4207         name to detect if object is in PROGMEM.
4208         (avr_asm_named_section): Set section name prefix for objects in
4209         PROGMEM.
4210
4211 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
4212
4213         PR bootstrap/50352
4214         * config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the
4215         sprintf format string.
4216
4217 2011-09-12  Richard Guenther  <rguenther@suse.de>
4218
4219         PR tree-optimization/50343
4220         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check
4221         that the reduction is over an SSA name before checking its definition.
4222
4223 2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
4224
4225         * config/cris/cris.md: Use match_test rather than eq/ne symbol_ref
4226         throughout file.
4227
4228 2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
4229
4230         * config/mips/mips.md: Use match_test rather than eq/ne symbol_ref
4231         throughout file.
4232         * config/mips/sb1.md: Likewise.
4233         * config/mips/predicates.md: Replace (match_test "!...")
4234         with (not (match_test "..."))
4235         * config/mips/constraints.md: Likewise.
4236
4237 2011-09-09  Andrew Stubbs  <ams@codesourcery.com>
4238
4239         * config/arm/arm-cores.def (generic-armv7-a): New architecture.
4240         * config/arm/arm-tables.opt: Regenerate.
4241         * config/arm/arm-tune.md: Regenerate.
4242         * config/arm/arm.c (arm_file_start): Output .arch directive when
4243         user passes -mcpu=generic-*.
4244         (arm_issue_rate): Add genericv7a support.
4245         * config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec.
4246         (ASM_CPU_SPEC): New define.
4247         * config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec).
4248         * config/arm/semi.h (ASM_SPEC): Likewise.
4249         * doc/invoke.texi (ARM Options): Document -mcpu=generic-*
4250         and -mtune=generic-*.
4251
4252 2011-09-09  Richard Guenther  <rguenther@suse.de>
4253
4254         PR tree-optimization/50328
4255         * tree-vect-loop.c (vect_is_simple_reduction_1): Allow one
4256         constant or default-def operand.
4257
4258 2011-09-09  Richard Guenther  <rguenther@suse.de>
4259
4260         * tree-ssa-pre.c (create_expression_by_pieces): Fold the
4261         last statement.
4262
4263 2011-09-09  Richard Guenther  <rguenther@suse.de>
4264
4265         * gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator
4266         instead of a statement.
4267         * gimple-fold.c (fold_stmt_inplace): Likewise.
4268         * sese.c (graphite_copy_stmts_from_block): Adjust.
4269         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
4270         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Use
4271         fold_stmt.
4272         (forward_propagate_addr_into_variable_array_index): Likewise.
4273         (forward_propagate_addr_expr_1): adjust.
4274         (associate_plusminus): Likewise.
4275         (ssa_forward_propagate_and_combine): Likewise.
4276         * tree-ssa-mathopts.c (replace_reciprocal): Adjust.
4277         (execute_cse_reciprocals): Likewise.
4278         * tree-ssa.c (insert_debug_temp_for_var_def): Adjust.
4279
4280 2011-09-09  Nick Clifton  <nickc@redhat.com>
4281
4282         * config/mn10300/mn10300.c (mn10300_split_and_operand_count):
4283         Return a positive value to indicate that the bits at the
4284         bottom of the register should be cleared.
4285
4286 2011-09-09  Richard Guenther  <rguenther@suse.de>
4287
4288         * tree-ssa-operands.c (swap_tree_operands): Always adjust
4289         existing operand positions.
4290
4291 2011-09-09  Richard Guenther  <rguenther@suse.de>
4292
4293         PR middle-end/50333
4294         * tree-data-ref.c (split_constant_offset): Do not try to handle
4295         ternary ops.
4296
4297 2011-09-08  Andrew Stubbs  <ams@codesourcery.com>
4298
4299         PR tree-optimization/50318
4300         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
4301         typo in use of mult_rhs1 and mult_rhs2.
4302
4303 2011-09-08  Uros Bizjak  <ubizjak@gmail.com>
4304
4305         * config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes.
4306         (standard_sse_constant_opcode) <case 2>: Change vpcmpeqd template.
4307
4308 2011-09-08  Bernd Schmidt  <bernds@codesourcery.com>
4309
4310         * config/arm/arm.md (push_multi): Emit predicates.
4311         (push_fp_multi): Likewise.
4312         * config/arm/arm.c (vfp_output_fstmd): Likewise.
4313
4314 2011-09-08  Dodji Seketeli  <dodji@redhat.com>
4315
4316         PR c++/33255 - Support -Wunused-local-typedefs warning
4317         * c-decl.c (lookup_name): Use the new maybe_record_typedef_use.
4318         (pushdecl): Use the new record_locally_defined_typedef.
4319         (store_parm_decls): Allocate cfun->language.
4320         (finish_function): Use the new maybe_warn_unused_local_typedefs,
4321         and free cfun->language.
4322         (c_push_function_context): Allocate cfun->language here only if needed.
4323         (c_pop_function_context): Likewise, mark cfun->language
4324         for collection only when it should be done.
4325         * c-common.c (handle_used_attribute): Don't ignore TYPE_DECL nodes.
4326         * c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new
4327         maybe_record_local_typedef_use.
4328         * doc/invoke.texi: Update documentation for
4329         -Wunused-local-typedefs.
4330
4331 2011-09-08  Enkovich Ilya  <ilya.enkovich@intel.com>
4332
4333         * config/i386/i386-protos.h (ix86_lea_outperforms): New.
4334         (ix86_avoid_lea_for_add): Likewise.
4335         (ix86_avoid_lea_for_addr): Likewise.
4336         (ix86_split_lea_for_addr): Likewise.
4337
4338         * config/i386/i386.c (LEA_MAX_STALL): New.
4339         (increase_distance): Likewise.
4340         (insn_defines_reg): Likewise.
4341         (insn_uses_reg_mem): Likewise.
4342         (distance_non_agu_define_in_bb): Likewise.
4343         (distance_agu_use_in_bb): Likewise.
4344         (ix86_lea_outperforms): Likewise.
4345         (ix86_ok_to_clobber_flags): Likewise.
4346         (ix86_avoid_lea_for_add): Likewise.
4347         (ix86_avoid_lea_for_addr): Likewise.
4348         (ix86_split_lea_for_addr): Likewise.
4349         (distance_non_agu_define): Search in pred BBs added.
4350         (distance_agu_use): Search in succ BBs added.
4351         (IX86_LEA_PRIORITY): Value changed from 2 to 0.
4352         (LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL.
4353         (ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision.
4354
4355         * config/i386/i386.md: Split added to transform non destructive
4356         add into move and add.
4357         (lea_1): transformed into insn_and_split to avoid AGU stalls.
4358         (lea<mode>_2): Likewise.
4359
4360 2011-09-08  Martin Jambor  <mjambor@suse.cz>
4361
4362         PR tree-optimization/50287
4363         * ipa-split.c (split_function): Do not create SSA names for
4364         non-gimple-registers.
4365
4366 2011-09-08  Richard Guenther  <rguenther@suse.de>
4367
4368         PR tree-optimization/19831
4369         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also
4370         skip builtins with vdefs that do not really store something.
4371         (propagate_necessity): For calls to free that we can associate
4372         with an allocation function do not mark the freed pointer
4373         definition necessary.
4374         (eliminate_unnecessary_stmts): Remove a call to free if
4375         the associated call to an allocation function is not necessary.
4376
4377 2011-09-08  Richard Guenther  <rguenther@suse.de>
4378
4379         PR tree-optimization/19831
4380         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark
4381         allocation functions as necessary.
4382
4383 2011-09-08  Iain Sandoe  <iains@gcc.gnu.org>
4384
4385         * config/darwin-driver.c (darwin_find_version_from_kernel): New routine
4386         cut from ...
4387         (darwin_default_min_version): Amended to provide defaults
4388         for the cross directory case.
4389         (darwin_driver_init): call darwin_default_min_version unconditionally.
4390         * config/darwin.h (DEF_MIN_OSX_VERSION): New.
4391         * config/darwin9.h: Likewise.
4392         * config/darwin10.h: Likewise.
4393         * config/rs6000/darwin7.h: Likewise.
4394
4395 2011-09-08  Jakub Jelinek  <jakub@redhat.com>
4396
4397         PR target/50310
4398         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return
4399         code early if TARGET_AVX.
4400         (ix86_expand_fp_vcond): Handle LTGT and UNEQ.
4401
4402 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
4403
4404         * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
4405         duplicates.
4406
4407         PR target/50310
4408         * config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
4409         "mode" attribute computation.
4410
4411 2011-09-07  Bernd Schmidt  <bernds@codesourcery.com>
4412
4413         * regrename.c (struct du_head): Make nregs signed.
4414         (closed_chains): Remove.
4415         (create_new_chain): Return the new chain.
4416         (chain_from_id): New static function.
4417         (dump_def_use_chain): Change argument to be an int, indicating
4418         the first ID to print.  All callers changed.
4419         (merge_overlapping_regs): Use chain_from_id.  Assert that
4420         chains don't conflict with themselves.
4421         (rename_chains): Take no argument.  Iterate over id_to_chain
4422         rather to find chains to rename.  Clear tick before the main loop.
4423         (struct incoming_reg_info): New struct.
4424         (struct bb_rename_info): New struct.
4425         (init_rename_info, set_incoming_from_chain, merge_chains): New
4426         static functions.
4427         (regrename_analyze): New static function, broken out of
4428         regrename_optimize.  Record and make use of open chain information
4429         at basic block boundaries, and merge chains where possible.
4430         (scan_rtx_reg): Make this_nregs signed.  Don't update
4431         closed_chains.
4432         (build_def_use): Return a bool to indicate success.  All callers
4433         changed.  Don't initialize global data here.
4434         (regrename_optimize): Move most code out of here into
4435         regrename_analyze.
4436         * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set,
4437         range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New
4438         static inline functions.
4439         * vec.h (FOR_EACH_VEC_ELT_FROM): New macro.
4440
4441         * bb-reorder.c (insert_section_boundary_note): Don't check
4442         optimize_function_for_speed_p.
4443         (gate_handle_partition_blocks): Do it here instead.
4444         (gate_handle_reorder_blocks): Move preliminary checks here ...
4445         (rest_of_handle_reorder_blocks): ... from here.
4446
4447 2011-09-07  Martin Jambor  <mjambor@suse.cz>
4448
4449         PR middle-end/50301
4450         * ipa-cp.c (find_more_values_for_callers_subset): Check jump
4451         function index bounds.
4452         (perhaps_add_new_callers): Likewise.
4453
4454 2011-09-07  Martin Jambor  <mjambor@suse.cz>
4455
4456         PR tree-optimization/49911
4457         * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
4458         enumerations to the corresponding plain integer type.
4459
4460 2011-09-07  Richard Guenther  <rguenther@suse.de>
4461
4462         PR tree-optimization/50319
4463         * tree-if-conv.c (set_bb_predicate): Assert we only set
4464         canonical predicates.
4465         (add_to_predicate_list): Simplify.  Allow TRUTH_NOT_EXPR
4466         around canonical predicates.
4467         (predicate_bbs): Do not re-gimplify already canonical
4468         predicates.  Properly unshare them though.
4469         (find_phi_replacement_condition): Simplify.
4470
4471 2011-09-07  Richard Sandiford  <richard.sandiford@linaro.org>
4472
4473         PR target/49030
4474         * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
4475         * config/arm/arm.c (maybe_get_arm_condition_code): New function,
4476         reusing the old code from get_arm_condition_code.  Return ARM_NV
4477         for invalid comparison codes.
4478         (get_arm_condition_code): Redefine in terms of
4479         maybe_get_arm_condition_code.
4480         * config/arm/predicates.md (arm_comparison_operator): Use
4481         maybe_get_arm_condition_code.
4482
4483 2011-09-07  Richard Guenther  <rguenther@suse.de>
4484
4485         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
4486         Canonicalize negated predicates by swapping edges.
4487         (forward_propagate_into_cond): Likewise.
4488
4489 2011-09-07  Richard Guenther  <rguenther@suse.de>
4490
4491         PR tree-optimization/50213
4492         * tree-flow.h (simple_iv_increment_p): Declare.
4493         * tree-ssa-dom.c (simple_iv_increment_p): Export.  Also handle
4494         POINTER_PLUS_EXPR.
4495         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do
4496         not propagate simple IV counter increments.
4497
4498 2011-09-07  Eric Botcazou  <ebotcazou@adacore.com>
4499             Iain Sandoe  <iains@gcc.gnu.org>
4500
4501         * config/rs6000/rs6000.c (compute_save_world_info): Test
4502         cfun->has_nonlocal_label to determine if the out-of-line save
4503         world call may be used.
4504
4505 2011-09-07  Nick Clifton  <nickc@redhat.com>
4506
4507         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump
4508         label on the parallel part of the insn.
4509
4510 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
4511
4512         PR debug/50191
4513         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Try
4514         avoid_constant_pool_reference first instead of last.
4515
4516 2011-09-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
4517
4518         * doc/configfiles.texi (Configuration Files): Update documentation
4519         about tm_p.h and remove FIXME comment.
4520
4521 2011-09-06  Uros Bizjak  <ubizjak@gmail.com>
4522
4523         * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG.
4524         (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX.
4525
4526 2011-09-06  Iain Sandoe  <iains@gcc.gnu.org>
4527
4528         * config/darwin10.h Remove duplicate LIB_SPEC.
4529
4530 2011-09-06  Enkovich Ilya  <ilya.enkovich@intel.com>
4531
4532         PR middle-end/44382
4533         * target.def (reassociation_width): New hook.
4534
4535         * doc/tm.texi.in (reassociation_width): Likewise.
4536
4537         * doc/tm.texi (reassociation_width): Likewise.
4538
4539         * doc/invoke.texi (tree-reassoc-width): New param documented.
4540
4541         * hooks.h (hook_int_uint_mode_1): New default hook.
4542
4543         * hooks.c (hook_int_uint_mode_1): Likewise.
4544
4545         * config/i386/i386.h (ix86_tune_indices): Add
4546         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
4547
4548         (TARGET_REASSOC_INT_TO_PARALLEL): New.
4549         (TARGET_REASSOC_FP_TO_PARALLEL): Likewise.
4550
4551         * config/i386/i386.c (initial_ix86_tune_features): Add
4552         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
4553
4554         (ix86_reassociation_width): New function.
4555
4556         * params.def (PARAM_TREE_REASSOC_WIDTH): New param added.
4557
4558         * tree-ssa-reassoc.c (get_required_cycles): New function.
4559         (get_reassociation_width): Likewise.
4560         (swap_ops_for_binary_stmt): Likewise.
4561         (rewrite_expr_tree_parallel): Likewise.
4562
4563         (rewrite_expr_tree): Refactored.  Part of code moved into
4564         swap_ops_for_binary_stmt.
4565
4566         (reassociate_bb): Now checks reassociation width to be used and
4567         call rewrite_expr_tree_parallel instead of rewrite_expr_tree if needed.
4568
4569 2011-09-06  Richard Guenther  <rguenther@suse.de>
4570
4571         PR tree-optimization/47025
4572         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END
4573         uses nothing.
4574         (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like
4575         BUILT_IN_FREE.
4576         (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument
4577         definitely points to.
4578         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4579         BUILT_IN_VA_START doesn't let its va_list argument escape.
4580         * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does
4581         not make any previous stores necessary.
4582
4583 2011-09-06  Martin Jambor  <mjambor@suse.cz>
4584
4585         * ipa-inline.h (struct inline_summary): Move versionable flag...
4586         * cgraph.h (struct cgraph_local_info): ...here
4587         * ipa-cp.c (determine_versionability): Use the new versionable flag.
4588         (determine_versionability): Likewise.
4589         (ipcp_versionable_function_p): Likewise.
4590         (ipcp_generate_summary): Likewise.
4591         * ipa-inline-analysis.c (dump_inline_summary): Do not dump the
4592         versionable flag.
4593         (compute_inline_parameters): Do not clear the versionable flag.
4594         (inline_read_section): Do not stream the versionable flag.
4595         (inline_write_summary): Likewise.
4596         * lto-cgraph.c (lto_output_node): Stream the versionable flag.
4597         (input_overwrite_node): Likewise.
4598
4599 2011-09-06  Richard Guenther  <rguenther@suse.de>
4600
4601         PR tree-optimization/48149
4602         * tree-ssa-sccvn.c (vn_get_expr_for): Simplify.  Fix tuplification bug.
4603         (vn_valueize): Move earlier.
4604         (valueize_expr): Use vn_valueize.
4605         (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR
4606         operands.
4607         (simplify_unary_expression): Simplify.
4608
4609 2011-09-06  Richard Guenther  <rguenther@suse.de>
4610
4611         PR tree-optimization/48317
4612         * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true
4613         trailing array.
4614         (sizeof_vn_nary_op): New inline function.
4615         (vn_nary_op_lookup_pieces): Adjust.
4616         (vn_nary_op_insert_pieces): Likewise.
4617         * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length.
4618         (init_vn_nary_op_from_pieces): Adjust signature.  Deal with
4619         any number of operands.
4620         (vn_nary_length_from_stmt): New function.
4621         (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling.
4622         (vn_nary_op_lookup_pieces): Adjust signature and allocate properly
4623         sized temporary.
4624         (vn_nary_op_lookup): Likewise.
4625         (vn_nary_op_lookup_stmt): Likewise.
4626         (vn_nary_op_insert_into): Likewise.
4627         (vn_nary_op_insert_stmt): Likewise.
4628         (visit_use): Handle CONSTRUCTOR as nary.
4629         * tree-ssa-pre.c (phi_translate_1): Adjust.
4630         (create_expression_by_pieces): Likewise.
4631         (compute_avail): Likewise.
4632
4633 2011-09-06  Ira Rosen  <ira.rosen@linaro.org>
4634
4635          * config/arm/arm.c (arm_preferred_simd_mode): Check
4636         TARGET_NEON_VECTORIZE_DOUBLE instead of
4637         TARGET_NEON_VECTORIZE_QUAD.
4638         (arm_autovectorize_vector_sizes): Likewise.
4639         * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse
4640         mask of mvectorize-with-neon-double.  Add RejectNegative.
4641         (mvectorize-with-neon-double): New.
4642
4643 2011-09-06  Richard Guenther  <rguenther@suse.de>
4644
4645         * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching.
4646
4647 2011-09-06  Tom de Vries  <tom@codesourcery.com>
4648
4649         * recog.c (asm_labels_ok): New function.
4650         (check_asm_operands): Use asm_labels_ok.
4651
4652 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
4653
4654         PR target/49606
4655         * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
4656         (PMODE_INSN): New macro.
4657         * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
4658         (mips_got_load, mips_expand_synci_loop): Likewise.
4659         (mips_save_gp_to_cprestore_slot): Handle SImode and DImode
4660         cprestore patterns.
4661         (mips_emit_loadgp): Use PMODE_INSN.  Handle SImode and DImode
4662         copygp_mips16 patterns.
4663         (mips_expand_prologue): Handle SImode and DImode potential_cprestore
4664         and use_cprestore patterns.
4665         (mips_override_options): Check for incompatible -mabi and -mlong
4666         combinations.
4667         * config/mips/mips.md (unspec_got<mode>): Rename to...
4668         (unspec_got_<mode>): ...this.
4669         (copygp_mips16): Use the Pmode iterator.
4670         (potential_cprestore, cprestore, use_cprestore): Likewise.
4671         (clear_cache, indirect_jump): Use PMODE_INSN.
4672         (indirect_jump<mode>): Rename to...
4673         (indirect_jump_<mode>): ...this.
4674         (tablejump): Use PMODE_INSN.
4675         (tablejump<mode>): Rename to...
4676         (tablejump_<mode>): ...this.
4677         (exception_receiver): Handle restore_gp_si and restore_gp_di.
4678         (restore_gp): Use the Pmode iterator.
4679         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
4680         PMODE_INSN.
4681
4682 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
4683
4684         * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
4685         Fix the type of the BIT_AND_EXPR.
4686
4687 2011-09-05  David S. Miller  <davem@davemloft.net>
4688
4689         * config.host: Add driver-sparc.o and sparc/x-sparc on
4690         native sparc*-*-linux* builds.
4691         * config/sparc/driver-sparc.c: Correct Linux strings.
4692         * config/sparc/linux.h: Add DRIVER_SELF_SPECS.
4693         * config/sparc/linux64.h: Likewise.
4694         * doc/invoke.texi: Document that Linux also supports
4695         -mcpu=native and -mtune=native on sparc.
4696
4697         * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
4698         PROCESSOR_NIAGARA4): New.
4699         * config/sparc/sparc.opt: Handle new processor types.
4700         * config/sparc/sparc.md: Add to "cpu" attribute.
4701         * config/sparc/sparc.h (TARGET_CPU_niagara3,
4702         TARGET_CPU_niagara4): New, treat as niagara2.
4703         * config/sparc/linux64.h: Handle niagara3 and niagara4 like niagara2.
4704         * config/sparc/sol2.h: Likewise.
4705         * config/sparc/niagara2.md: Schedule niagara3 like niagara2.
4706         * config/sparc/sparc.c (sparc_option_override): Add
4707         niagara3 and niagara4 handling.
4708         (sparc32_initialize_trampoline): Likewise.
4709         (sparc64_initialize_trampoline): Likewise.
4710         (sparc_use_sched_lookahead): Likewise.
4711         (sparc_issue_rate): Likewise.
4712         (sparc_register_move_cost): Likewise.
4713         * config/sparc/driver-sparc.c (cpu_names): Use niagara3
4714         and niagara4 as appropriate.
4715         * doc/invoke.texi: Document new processor types.
4716         * config.gcc: Recognize niagara3 and niagara4 in --with-cpu
4717         and --with-tune options.
4718
4719         * config/sparc/sol2-64.h: Move ...
4720         * config/sparc/default-64.h: ... to here.  Update comment.
4721         * config.gcc: Update Solaris sparc to use default-64.h, also
4722         prefix this header into the list on sparc64-*-linux.
4723         * config/sparc/linux64.h (TARGET_DEFAULT): Only override if
4724         TARGET_64BIT_DEFAULT is defined.  Remove commented out reference
4725         to MASK_HARD_QUAD.
4726
4727 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
4728
4729         PR target/50289
4730         * config/avr/avr.c (sequent_regs_live): Don't recognize sequences
4731         that contain global register variable.
4732
4733 2011-09-05  Richard Guenther  <rguenther@suse.de>
4734
4735         * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.
4736
4737 2011-09-05  Richard Guenther  <rguenther@suse.de>
4738
4739         * stor-layout.c (layout_type): Use size_binop for array size
4740         calculations.
4741
4742 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
4743
4744         * config/avr/avr.h (progmem_section): Remove Declaration.
4745         * config/avr/avr.c (progmem_section): Make static and rename to
4746         progmem_swtable_section.
4747         (avr_output_addr_vec_elt): No need to switch sections.
4748         (avr_asm_init_sections): Use output_section_asm_op as section
4749         callback for progmem_swtable_section.
4750         (avr_output_progmem_section_asm_op): Remove Function.
4751         (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define.
4752         (avr_asm_function_rodata_section): New static Function.
4753         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output
4754         alignment 2**1 for jump tables.
4755
4756 2011-09-04  Jan Hubicka  <jh@suse.cz>
4757
4758         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
4759         parameter is SSA name.
4760
4761 2011-09-04  Richard Guenther  <rguenther@suse.de>
4762
4763         Revert
4764         2011-08-31  Richard Guenther  <rguenther@suse.de>
4765
4766         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
4767         special-casing.
4768
4769 2011-09-04  Iain Sandoe  <iains@gcc.gnu.org>
4770
4771         PR debug/49901
4772         * config/darwin.h (DEBUG_MACRO_SECTION): New macro.
4773
4774 2011-09-04  Jakub Jelinek  <jakub@redhat.com>
4775             Ira Rosen  <ira.rosen@linaro.org>
4776
4777         PR tree-optimization/50208
4778         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
4779         argument.  Check that def_stmt is inside the loop.
4780         (vect_recog_widen_mult_pattern): Update calls to
4781         vect_handle_widen_mult_by_cons.
4782         (vect_operation_fits_smaller_type): Check that def_stmt is
4783         inside the loop.
4784
4785 2011-09-04  Ira Rosen  <ira.rosen@linaro.org>
4786
4787         * tree-vectorizer.c (vect_print_dump_info): Print line
4788         number when dumping to a file.
4789         (vectorize_loops): Add new messages to dump file.
4790
4791 2011-09-03  Martin Jambor  <mjambor@suse.cz>
4792
4793         * ipa-prop.h (ipa_jump_func_t): New typedef.
4794         (struct ipa_edge_args): Removed field argument_count, field
4795         jump_functions turned into a vector.
4796         (ipa_set_cs_argument_count): Removed.
4797         (ipa_get_cs_argument_count): Updated to work on vectors.
4798         (ipa_get_ith_jump_func): Likewise.
4799         * ipa-prop.c (ipa_count_arguments): Removed.
4800         (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access
4801         jump functions.  Update caller.
4802         (compute_pass_through_member_ptrs): Likewise.
4803         (compute_cst_member_ptr_arguments): Likewise.
4804         (ipa_compute_jump_functions_for_edge): Get number of arguments from
4805         the statement, allocate vector.
4806         (ipa_compute_jump_functions): Do not call ipa_count_arguments.
4807         (duplicate_ipa_jump_func_array): Removed.
4808         (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count.
4809         (ipa_read_node_info): Allocate vector.
4810
4811 2011-09-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4812
4813         PR middle-end/50232
4814         * config/pa/pa.md (return): Define "return" insn pattern.
4815         (epilogue): Use it when no epilogue is needed.
4816         * config/pa/pa.c (pa_can_use_return_insn): New function.
4817         * config/pa/pa-protos.h (pa_can_use_return_insn): Declare.
4818
4819 2011-09-03  Eric Botcazou  <ebotcazou@adacore.com>
4820
4821         * cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
4822         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
4823         Force at least BITS_PER_UNIT alignment on the new variable.
4824
4825 2011-09-02  Gary Funck <gary@intrepid.com>
4826
4827         * opts.c (print_specific_help): Fix off-by-one compare in
4828         assertion check.
4829         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
4830         CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED):
4831         Increase by +5 to allow for more languages.
4832         * optc-gen.awk: Generate #if that ensures that the number of
4833         languages is within the implementation-defined limit.
4834
4835 2011-09-02  Michael Matz  <matz@suse.de>
4836
4837         PR middle-end/50260
4838         * ipa-split.c (split_function): Call add_referenced_var.
4839
4840         * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
4841         (cond_if_else_store_replacement_1): Ditto.
4842         * tree-ssa-pre.c (get_representative_for): Ditto.
4843         (create_expression_by_pieces): Ditto.
4844         (insert_into_preds_of_block): Ditto.
4845         * tree-sra.c (create_access_replacement): Ditto.
4846         (get_replaced_param_substitute): Ditto.
4847
4848 2011-09-02  Bernd Schmidt  <bernds@codesourcery.com>
4849
4850         * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
4851         automata_options.
4852         (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
4853         (l1w, s1w, l2w, s2w): Define in the main automaton.
4854         (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
4855         units.
4856         * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
4857         (c6x_unit_names): Add the new units.
4858         (c6x_unit_codes): New static array.
4859         (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
4860         UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
4861         UNIT_QID_SIDE_OFFSET): New macros.
4862         (RESERVATION_S2): Adjust value.
4863         (c6x_option_override): Compute c6x_unit_codes.
4864         (assign_reservations): Take the unit_mask of the last instruction
4865         into account.  Detect floating point reservations by looking for
4866         the new units.  Don't assign reservations if the field is already
4867         nonzero.
4868         (struct c6x_sched_context): Add member prev_cycle_state_ctx.
4869         (init_sched_state): Initialize it.
4870         (c6x_clear_sched_context): Free it.
4871         (insn_set_clock): Clear reservation.
4872         (prev_cycle_state): New static variable.
4873         (c6x_init_sched_context): Save it.
4874         (c6x_sched_init): Allocate space for it and clear it.
4875         (c6x_sched_dfa_pre_cycle_insn): New static function.
4876         (c6x_dfa_new_cycle): Save state at the start of a new cycle.
4877         (c6x_variable_issue): Only record units in the unit_mask that
4878         were not set at the start of the cycle.
4879         (c6x_variable_issue): Compute and store the unit_mask from the
4880         current state.
4881         (reorg_split_calls): Ensure the new information remains correct.
4882         (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
4883         TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
4884         * config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
4885         * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
4886         Add special reservations.
4887         * config/c6x/c6x-sched.md: Regenerate.
4888
4889 2011-09-02  Martin Jambor  <mjambor@suse.cz>
4890
4891         * ipa-prop.h (ipa_node_params): Removed fields
4892         called_with_var_arguments and node_versionable.
4893         (ipa_set_called_with_variable_arg): Removed.
4894         (ipa_is_called_with_var_arguments): Likewise.
4895         * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert.
4896         (determine_versionability): Do not check for type attributes and va
4897         builtins.  Record versionability into inline summary.
4898         (initialize_node_lattices): Do not check
4899         ipa_is_called_with_var_arguments.
4900         (propagate_constants_accross_call): Likewise, ignore arguments we do
4901         not have PARM_DECLs for, set variable flag for parameters that were
4902         not passed a value.
4903         (create_specialized_node): Dump info that we cannot change signature.
4904         * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable
4905         number of arguments.
4906         (ipa_make_edge_direct_to_target): Likewise.
4907         (ipa_update_after_lto_read): Likewise.
4908         (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag.
4909         * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if
4910         they were remapped.
4911
4912 2011-09-02  Richard Guenther  <rguenther@suse.de>
4913
4914         PR tree-optimization/27460
4915         PR middle-end/29269
4916         * doc/md.texi (vcond): Document.
4917         * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
4918         optab with two modes.
4919         * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
4920         (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
4921         (vcond_optab): Adjust.
4922         (vcondu_optab): Likewise.
4923         (expand_vec_cond_expr_p): Adjust prototype.
4924         * optabs.c (get_vcond_icode): Adjust.
4925         (expand_vec_cond_expr_p): Likewise.
4926         (expand_vec_cond_expr): Likewise.
4927         * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
4928         vector type.
4929         (vectorizable_condition): Allow differing types for comparison
4930         and result.
4931         * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
4932         for the comparison.
4933         * config/i386/sse.md (vcond<mode>): Split to
4934         vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
4935         vcond<V_128:mode><VI124_128:mode> and
4936         vcondu<V_128:mode><VI124_128:mode>.
4937         (vcondv2di): Change to vcond<VI8F_128:mode>v2di.
4938         (vconduv2di): Likewise.
4939         * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
4940         (vcondu<mode>): Likewise.
4941         * config/ia64/vect.md (vcond<mode>): Likewise.
4942         (vcondu<mode>): Likewise.
4943         (vcondv2sf): Likewise.
4944         * config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
4945         * config/rs6000/paired.md (vcondv2sf): Likewise.
4946         * config/rs6000/vector.md (vcond<mode>): Likewise.
4947         (vcondu<mode>): Likewise.
4948         * config/spu/spu.md (vcond<mode>): Likewise.
4949         (vcondu<mode>): Likewise.
4950
4951 2011-09-02  Richard Guenther  <rguenther@suse.de>
4952
4953         * pretty-print.h (pp_unsigned_wide_integer): New.
4954         * tree-pretty-print.c (dump_generic_node): Print unsigned
4955         host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer.
4956
4957 2011-09-02  Richard Sandiford  <richard.sandiford@linaro.org>
4958
4959         PR target/49987
4960         * config/rs6000/rs6000.c (paired_expand_vector_init): Check for
4961         valid CONST_VECTOR operands.
4962         (rs6000_expand_vector_init): Likewise.
4963
4964 2011-09-02  Martin Jambor  <mjambor@suse.cz>
4965
4966         * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
4967         * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
4968         BINFO_VTABLE.  Parameter delta removed, all callers updated.
4969         * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
4970         BINFO_VTABLE.
4971         * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
4972         all calls.
4973         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
4974         handling of thunk_delta.
4975         * ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
4976         (devirtualization_time_bonus): Do not handle thunk deltas.
4977         (ipcp_discover_new_direct_edges): Likewise.
4978         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
4979         (try_make_edge_direct_simple_call): Likewise.
4980         (try_make_edge_direct_virtual_call): Likewise.
4981         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
4982         parameter set as unused.
4983         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
4984         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
4985         parameter set as unused.
4986         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
4987         (input_edge_opt_summary): Likewise.
4988         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
4989         BINFO_VIRTUALS at all.
4990         * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.
4991
4992 2011-09-02  Richard Guenther  <rguenther@suse.de>
4993
4994         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0).
4995         (ccp_fold_stmt): Continue replacing args when folding alloca fails.
4996
4997 2011-08-31  Richard Guenther  <rguenther@suse.de>
4998
4999         * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR
5000         handling here, from ...
5001         (expand_expr_real_1): ... here.
5002         * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR
5003         and VEC_COND_EXPR.
5004         * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR
5005         a GIMPLE_TERNARY_RHS.
5006         * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR
5007         and VEC_COND_EXPR here ...
5008         (verify_gimple_assign_single): ... not here.
5009         * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
5010         * tree-object-size.c (cond_expr_object_size): Adjust.
5011         (collect_object_sizes_for): Likewise.
5012         * tree-scalar-evolution.c (interpret_expr): Don't handle ternary RHSs.
5013         * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify.
5014         (ssa_forward_propagate_and_combine): Adjust.
5015         * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
5016         as ternary.
5017         * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust.
5018         * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
5019         * tree-vect-stmt.c (vectorizable_condition): Likewise.
5020         * tree-vrp.c (extract_range_from_cond_expr): Likewise.
5021         (extract_range_from_assignment): Likewise.
5022
5023 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
5024
5025         * config/i386/i386.md: Use (match_test ...) for attribute tests.
5026         * config/i386/mmx.md: Likewise.
5027         * config/i386/sse.md: Likewise.
5028         * config/i386/predicates.md (call_insn_operand): Use
5029         (not (match_test "...")) instead of (match_test "!...")
5030         * config/i386/constraints.md (w): Likewise.
5031
5032 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
5033
5034         * doc/md.texi: Describe the use of match_tests in attribute tests.
5035         * rtl.def (MATCH_TEST): Update commentary.
5036         * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
5037         (write_test_expr, walk_attr_value): Handle MATCH_TEST.
5038
5039 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
5040
5041         * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
5042         (attr_string): Use copy_md_ptr_loc.
5043
5044 2011-08-31  Martin Jambor  <mjambor@suse.cz>
5045
5046         PR middle-end/49886
5047         * ipa-inline-analysis.c (compute_inline_parameters): Set
5048         can_change_signature of noes with typde attributes.
5049         * ipa-split.c (split_function): Do not skip any arguments if
5050         can_change_signature is set.
5051
5052 2011-08-31  Martin Jambor  <mjambor@suse.cz>
5053
5054         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
5055         check removed.
5056
5057 2011-08-31  Richard Guenther  <rguenther@suse.de>
5058
5059         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
5060         special-casing.
5061
5062 2011-08-31  Marc Glisse  <marc.glisse@inria.fr>
5063
5064         * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
5065
5066 2011-08-31  Tom de Vries  <tom@codesourcery.com>
5067
5068         PR middle-end/43513
5069         * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
5070         * tree-ssa-ccp.c (params.h): Include.
5071         (fold_builtin_alloca_for_var): New function.
5072         (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
5073
5074 2011-08-30  Uros Bizjak  <ubizjak@gmail.com>
5075
5076         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
5077         Handle FMA option.
5078
5079 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
5080
5081         * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
5082         b3 and b4 unsigned.
5083
5084 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
5085
5086         * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
5087         when code is SET.
5088
5089 2011-08-30  Richard Guenther  <rguenther@suse.de>
5090
5091         PR middle-end/48571
5092         * gimple.h (maybe_fold_offset_to_address): Remove.
5093         (maybe_fold_offset_to_reference): Likewise.
5094         (maybe_fold_stmt_addition): Likewise.
5095         (may_propagate_address_into_dereference): Likewise.
5096         * tree-inline.c (remap_gimple_op_r): Do not reconstruct
5097         array references.
5098         * gimple-fold.c (canonicalize_constructor_val): Likewise.
5099         Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
5100         addresses instead.
5101         (may_propagate_address_into_dereference): Remove.
5102         (maybe_fold_offset_to_array_ref): Likewise.
5103         (maybe_fold_offset_to_reference): Likewise.
5104         (maybe_fold_offset_to_address): Likewise.
5105         (maybe_fold_stmt_addition): Likewise.
5106         (fold_gimple_assign): Do not reconstruct array references but
5107         instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
5108         MEM_REF addresses.
5109         (gimple_fold_stmt_to_constant_1): Likewise.
5110         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
5111         * gimplify.c (gimplify_conversion): Likewise.
5112         (gimplify_expr): Likewise.
5113
5114 2011-08-30  Ilya Tocar  <ilya.tocar@intel.com>
5115
5116         * config/i386/fmaintrin.h: New.
5117         * config.gcc: Add fmaintrin.h.
5118         * config/i386/i386.c
5119         (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
5120         <IX86_BUILTIN_VFMADDSD3>: Likewise.
5121         * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
5122         (*fmai_fmadd_<mode>): Likewise.
5123         (*fmai_fmsub_<mode>): Likewise.
5124         (*fmai_fnmadd_<mode>): Likewise.
5125         (*fmai_fnmsub_<mode>): Likewise.
5126         * config/i386/immintrin.h: Add fmaintrin.h.
5127
5128 2011-08-30  Bernd Schmidt  <bernds@codesourcery.com>
5129
5130         * genautomata.c (NO_COMB_OPTION): New macro.
5131         (no_comb_flag): New static variable.
5132         (gen_automata_option): Handle NO_COMB_OPTION.
5133         (comb_vect_p): False if no_comb_flag.
5134         (add_vect): Move computation of min/max values.  Return early if
5135         no_comb_flag.
5136         * doc/md.texi (automata_option): Document no-comb-vect.
5137
5138         * config/i386/i386.c (get_pc_thunk_name): Change prefix to
5139         "__x86.get_pc_thunk".
5140
5141         * bb-reorder.c (insert_section_boundary_note): Only do it if
5142         we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
5143
5144 2011-08-30  Christian Bruel  <christian.bruel@st.com>
5145
5146         * coverage.c (coverage_init): Check flag_branch_probabilities instead of
5147         flag_profile_use.
5148
5149 2011-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
5150
5151         * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
5152         to off.  Document switch.
5153         * doc/invoke.texi (-msave-toc-indirect): Ditto.
5154
5155 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
5156
5157         * gthr-posix.h (__gthread_active_p): Do not use preprocessor
5158         conditionals and comments inside macro arguments.
5159
5160 2011-08-29  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
5161             Richard Guenther  <rguenther@suse.de>
5162
5163         * tree.h (constant_boolean_node): Adjust prototype.
5164         * fold-const.c (fold_convert_loc): Move aggregate conversion
5165         leeway down.
5166         (constant_boolean_node): Make value parameter boolean, add
5167         vector type handling.
5168         (fold_unary_loc): Use constant_boolean_node.
5169         (fold_binary_loc): Preserve types properly when folding
5170         COMPLEX_EXPR <__real x, __imag x>.
5171         * gimplify.c (gimplify_expr): Handle vector comparison.
5172         * tree.def (EQ_EXPR, ...): Document behavior on vector typed
5173         comparison.
5174         * tree-cfg.c (verify_gimple_comparison): Verify vector typed
5175         comparisons.
5176
5177 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
5178
5179         PR middle-end/48722
5180         * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
5181         reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
5182         (verify_rtl_sharing): Likewise and verify_rtx_sharing
5183         in there too.
5184         (unshare_all_rtl_in_chain): For CALL_INSNs
5185         copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
5186
5187 2011-08-29  Richard Guenther  <rguenther@suse.de>
5188
5189         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
5190         on the built ADDR_EXPR.
5191
5192 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
5193
5194         PR debug/50215
5195         * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
5196         before adding ENTRY_VALUE to val->locs.
5197
5198 2011-08-28  Mikael Pettersson  <mikpe@it.uu.se>
5199
5200         PR bootstrap/50218
5201         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
5202         comp.
5203
5204 2011-08-27  Bernd Schmidt  <bernds@codesourcery.com>
5205
5206         * doc/rtl.texi (simple_return): Document.
5207         (parallel, PATTERN): Here too.
5208         * doc/md.texi (return): Mention it's allowed to expand to simple_return
5209         in some cases.
5210         (simple_return): Document standard pattern.
5211         * gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
5212         * final.c (final_scan_insn): Use ANY_RETURN_P on body.
5213         * reorg.c (function_return_label, function_simple_return_label):
5214         New static variables, replacing...
5215         (end_of_function_label): ... this.
5216         (simplejump_or_return_p): New static function.
5217         (optimize_skip, steal_delay_list_from_fallthrough,
5218         fill_slots_from_thread): Use it.
5219         (relax_delay_slots): Likewise.  Use ANY_RETURN_P on body.
5220         (rare_destination, follow_jumps): Use ANY_RETURN_P on body.
5221         (find_end_label): Take a new arg which is one of the two return
5222         rtxs.  Depending on which, set either function_return_label or
5223         function_simple_return_label.  All callers changed.
5224         (make_return_insns): Make both kinds.
5225         (dbr_schedule): Adjust for two kinds of end labels.
5226         * function.c (emit_return_into_block): Set JUMP_LABEL properly.
5227         * genemit.c (gen_exp): Handle SIMPLE_RETURN.
5228         (gen_expand, gen_split): Use ANY_RETURN_P.
5229         * df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
5230         * rtl.def (SIMPLE_RETURN): New code.
5231         * ifcvt.c (find_if_case_1): Be more careful about
5232         redirecting jumps to the EXIT_BLOCK.
5233         * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
5234         returnjump_p_1): Handle SIMPLE_RETURNs.
5235         * print-rtl.c (print_rtx): Likewise.
5236         * rtl.c (copy_rtx): Likewise.
5237         * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
5238         * combine.c (simplify_set): Likewise.
5239         * resource.c (find_dead_or_set_registers, mark_set_resources):
5240         Likewise.
5241         * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
5242         copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
5243         (init_emit_regs): Initialize simple_return_rtx.
5244         * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
5245         force_nonfallthru_and_redirect.
5246         * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
5247         (GR_SIMPLE_RETURN): New enum value.
5248         (simple_return_rtx): New macro.
5249         * basic-block.h (force_nonfallthru_and_redirect): Adjust
5250         declaration.
5251         * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
5252         argument.  All callers changed.  Be careful about what kinds of
5253         returnjumps to generate.
5254         * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
5255         ix86_pad_short_function): Likewise.
5256         * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
5257         of return.
5258         * config/mips/mips.md (any_return): New code_iterator.
5259         (optab): Add cases for return and simple_return.
5260         (return): Expand to a simple_return.
5261         (simple_return): New pattern.
5262         (*<optab>, *<optab>_internal for any_return): New patterns.
5263         (return_internal): Remove.
5264         * config/mips/mips.c (mips_expand_epilogue): Make the last insn
5265         a simple_return_internal.
5266
5267 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
5268
5269         * config/i386/sse.md (*absneg<mode>2): Fix split condition.
5270         (vec_extract_lo_<mode>): Prevent both operands in memory.
5271         (vec_extract_lo_v16hi): Ditto.
5272         (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
5273
5274 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
5275
5276         * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
5277         (*sse2_mulv4si3): Ditto.
5278         (mulv2di3): Ditto.
5279         * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
5280         notes to REG_EQUAL.
5281
5282 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
5283
5284         PR target/50202
5285         * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
5286         when all outputs are unused.
5287         (sse4_2_pcmpistr): Ditto.
5288
5289 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
5290
5291         * config/i386/i386.md (round<mode>2): New expander.
5292         * config/i386/i386.c (enum ix86_builtins): Add
5293         IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
5294         (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
5295         descriptions.
5296         (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
5297         (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.
5298
5299 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
5300
5301         PR middle-end/50083
5302         * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
5303         only when TARGET_C99_FUNCTIONS.
5304         <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
5305         <BUILT_IN_RINT{,F,L}>: Ditto.
5306
5307 2011-08-26  Michael Matz  <matz@suse.de>
5308             Jakub Jelinek  <jakub@redhat.com>
5309
5310         PR lto/50165
5311         * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
5312         don't call strlen twice, use memcpy.
5313
5314 2011-08-26  H.J. Lu  <hongjiu.lu@intel.com>
5315
5316         * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
5317         * config/i386/bmiintrin.h: Likewise.
5318         * config/i386/lzcntintrin.h: Likewise.
5319
5320         * config/i386/immintrin.h: Include <lzcntintrin.h>,
5321         <bmiintrin.h> and <bmi2intrin.h>.
5322
5323 2011-08-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5324
5325         PR target/50166
5326         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
5327         * configure: Regenerate.
5328
5329 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
5330
5331         PR c/50179
5332         * c-typeck.c (c_process_expr_stmt): Skip over nops and
5333         call mark_exp_read even if exprv is ADDR_EXPR.
5334
5335 2011-08-26  Richard Sandiford  <richard.sandiford@linaro.org>
5336
5337         * df-problems.c (df_note_bb_compute): Pass uses rather than defs
5338         to df_set_dead_notes_for_mw.
5339
5340 2011-08-26  Richard Guenther  <rguenther@suse.de>
5341
5342         * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
5343
5344 2011-08-26  Zdenek Dvorak  <ook@ucw.cz>
5345             Tom de Vries  <tom@codesourcery.com>
5346
5347         * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
5348         (struct ivopts_data): Add loop_single_exit_p field.
5349         (niter_for_exit): Change parameter desc_p into return value.  Return
5350         desc if desc->may_be_zero.  Free desc if unused.
5351         (niter_for_single_dom_exit): Change return type.
5352         (find_induction_variables): Handle changed return type of
5353         niter_for_single_dom_exit.  Dump may_be_zero.
5354         (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
5355         (set_use_iv_cost): Add and handle comp parameter.
5356         (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
5357         comp argument to set_use_iv_cost.
5358         (strip_wrap_conserving_type_conversions, expr_equal_p)
5359         (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
5360         (may_eliminate_iv): Add comp parameter.  Handle new return type of
5361         niter_for_exit.  Use loop_single_exit_p.  Use iv_elimination_compare_lt.
5362         (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
5363         and may_eliminate_iv.
5364         (rewrite_use_compare): Move call to iv_elimination_compare to ...
5365         (may_eliminate_iv): Here.
5366         (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
5367
5368 2011-08-26  Tom de Vries  <tom@codesourcery.com>
5369
5370         * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
5371         accessing TREE_TYPE.
5372
5373 2011-08-26  Jiangning Liu  <jiangning.liu@arm.com>
5374
5375         * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
5376         (*ior_scc_scc_cmp): Likewise
5377         (*and_scc_scc): Likewise.
5378         (*and_scc_scc_cmp): Likewise.
5379         (*and_scc_scc_nodom): Likewise.
5380         (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
5381
5382 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
5383
5384         * rtlanal.c (nonzero_bits1): Handle CLRSB.
5385
5386 2011-08-26  Richard Guenther  <rguenther@suse.de>
5387
5388         * expr.c (string_constant): Handle &MEM_REF.
5389
5390 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
5391
5392         * config/arm/arm.c (struct four_ints): New type.
5393         (count_insns_for_constant): Delete function.
5394         (find_best_start): Delete function.
5395         (optimal_immediate_sequence): New function.
5396         (optimal_immediate_sequence_1): New function.
5397         (arm_gen_constant): Move constant splitting code to
5398         optimal_immediate_sequence.
5399         Rewrite constant negation/invertion code.
5400
5401 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
5402
5403         * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
5404         * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
5405         Remove prototype. Remove static function type.
5406         * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
5407         Add arch attribute.
5408         * config/arm/constraints.md (Pj, PJ): New constraints.
5409
5410 2011-08-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5411
5412         * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
5413         ("cortex_a9_multiply_long"): New and use above.  Handle all
5414         long multiply cases.
5415         ("cortex_a9_multiply"): Handle smmul and smmulr.
5416         ("cortex_a9_mac"): Handle smmla.
5417
5418 2011-08-25  Richard Henderson  <rth@redhat.com>
5419
5420         PR 50132
5421         PR 49864
5422         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
5423         non-constant stack adjutment.
5424         * expr.c (find_args_size_adjust): Break out from ...
5425         (fixup_args_size_notes): ... here.
5426         * rtl.h (find_args_size_adjust): Declare.
5427
5428 2011-08-25  Uros Bizjak  <ubizjak@gmail.com>
5429
5430         * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
5431         sse4 and sse4_noavx.
5432         (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
5433         (*pushdf_rex64): Change Y2 register constraint to x.
5434         (*movdf_internal_rex64): Ditto.
5435         (*zero_extendsidi2_rex64): Ditto.
5436         (*movdi_internal): Change Y2 register constraint to x
5437         and update "isa" attribute.
5438         (*pushdf): Ditto.
5439         (*movdf internal): Ditto.
5440         (zero_extendsidi2_1): Ditto.
5441         (*truncdfdf_mixed): Ditto.
5442         (*truncxfdf2_mixed): Ditto.
5443         * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
5444         register constraint to x.
5445         (*movv2sf_internal_rex64): Ditto.
5446         (*mov<mode>_internal): Change Y2 register constraint to x
5447         and add "isa" attribute.
5448         (*movv2sf_internal): Ditto.
5449         (*vec_extractv2si_1): Ditto.
5450         * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
5451         constraints to x and update "isa" attribute.
5452         (*vec_interleave_highv2df): Change Y3 registerconstraint
5453         to x and update "isa" attribute.
5454         (*vec_interleave_lowv2df): Ditto.
5455         (*vec_concatv2df): Change Y2 register constraint to x and
5456         update "isa" attribute.
5457         (sse2_loadld): Ditto.
5458         (*vec_extractv2di_1): Ditto.
5459         (*vec_dupv4si): Ditto.
5460         (*vec_dupv2di): Ditto.
5461         (*vec_concatv4si): Ditto.
5462         (vec_concatv2di): Ditto.
5463         * config/i386/constraints.md (Y2): Remove.
5464         (Y3): Ditto.
5465         (Y4): Ditto.
5466
5467 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
5468
5469         * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
5470         dump_def_use_chain): Don't declare.
5471         (mark_conflict, create_new_chain): Move before users.
5472         (regrename_optimize): Move to near end of file.
5473
5474 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
5475
5476         * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
5477         (secondary_input_reload_class): Remove Prototype.
5478         * config/avr/avr.c (byte_immediate_operand): Remove Function.
5479         * config/avr/avr.md (setmemhi): Use u8_operand.
5480         (strlenhi): Use const0_rtx for comparison.
5481         * config/avr/avr.h (avr_reg_order): Remove Declaration.
5482
5483 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
5484
5485         * config/avr/avr.c (reg_class_tab): Make local to
5486         avr_regno_reg_class.  Return smallest register class available.
5487
5488 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
5489
5490         * config/avr/avr.c (STR_PREFIX_P): New Define.
5491         (avr_asm_declare_function_name): Use it.
5492         (avr_asm_named_section): Use it.
5493         (avr_section_type_flags): Use it.
5494
5495 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
5496
5497         * doc/md.texi (automata_option): Document collapse-ndfa.
5498         * genautomata.c (COLLAPSE_OPTION): New macro.
5499         (collapse_flag): New static variable.
5500         (struct description): New member normal_decls_num.
5501         (struct automaton): New members advance_ainsn and collapse_ainsn.
5502         (gen_automata_option): Check for COLLAPSE_OPTION.
5503         (collapse_ndfa_insn_decl): New static variable.
5504         (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
5505         (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
5506         (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
5507         necessary.  Use normal_decls_num rather than decls_num, remove
5508         test for special decls.
5509         (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
5510         (make_automaton); Likewise.  Use the new advance_cycle_insn member
5511         of struct automaton.
5512         (create_composed_state): Disallow advance-cycle arcs if collapse_flag
5513         is set.
5514         (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
5515         transition.  Create the necessary transitions for it.
5516         (create_ainsns): Return void.  Take an automaton_t argument, and
5517         update its ainsn_list, advance_ainsn and collapse_ainsn members.  All
5518         callers changed.
5519         (COLLAPSE_NDFA_VALUE_NAME): New macro.
5520         (output_tables): Output code to define it.
5521         (output_internal_insn_code_evaluation): Output code to accept
5522         const0_rtx as collapse-ndfa transition.
5523         (output_default_latencies, output_print_reservation_func,
5524         output_print_description): Reorganize loops to use normal_decls_num
5525         as loop bound; remove special case for advance_cycle_insn_decl.
5526         (initiate_automaton_gen): Handle COLLAPSE_OPTION.
5527         (check_automata_insn_issues): Check for collapse_ainsn.
5528         (expand_automate): Allocate sufficient space.  Initialize
5529         normal_decls_num.
5530
5531 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
5532
5533         * config/avr/avr.md: Fix indentation from r177991.
5534
5535 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
5536
5537         * regrename.c (struct du_head): Remove member terminated.
5538         (create_new_chain): Don't initialize it.
5539         (scan_rtx_reg): Don't set or test it, test the open_chains_set
5540         bitmap instead.
5541         (tick, this_tick): New global variables, moved out of
5542         regrename_optimize.
5543         (current_id, open_chains, closed_chains, open_chains_set,
5544         live_in_chains, live_hard_regs): Reorder declarations.
5545         (dump_def_use_chain): Move function earlier in the file.
5546         (rename_chains): New static function, broken out of
5547         regrename_optimize.
5548         (regrename_optimize): Use it.  Remove #if 0'ed code.
5549
5550 2011-08-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
5551
5552         * varasm.c: (default_binds_local_p_1): Commentary typo fix.
5553
5554 2011-08-24  H.J. Lu  <hongjiu.lu@intel.com>
5555
5556         PR target/50172
5557         * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
5558
5559 2011-08-24  Richard Guenther  <rguenther@suse.de>
5560
5561         * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
5562         ref in the basic-block case.  Move stripping array-refs
5563         to the place we create an access-function for it.  Remove
5564         bogus stripping down a MEM_REF to its base.
5565
5566 2011-08-24  Richard Guenther  <rguenther@suse.de>
5567
5568         * fold-const.c (fold_comparison): Fold &a < &a + 4 even
5569         with -fno-strict-overflow.
5570
5571 2011-08-24  Richard Guenther  <rguenther@suse.de>
5572
5573         * tree-vectorizer.c (vect_print_dump_info): Avoid the
5574         file and location clutter when dumping to dump files.
5575
5576 2011-08-24  Simon Baldwin  <simonb@google.com>
5577
5578         * gengtype-state.c (write_state): Remove timestamped header line.
5579
5580 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
5581
5582         * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
5583         (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
5584         (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
5585         (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
5586         (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
5587         (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
5588         (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
5589         rules.
5590         (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
5591
5592 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
5593
5594         * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
5595
5596 2011-08-24  Richard Guenther  <rguenther@suse.de>
5597
5598         PR tree-optimization/50067
5599         * tree-data-ref.c (dr_analyze_indices): Do not add an access
5600         function for a MEM_REF base that has no evolution in the loop
5601         nest or that is not analyzable.
5602
5603 2011-08-23  Vladimir Makarov  <vmakarov@redhat.com>
5604
5605         * ira.c (ira_init_register_move_cost): Check small subclasses
5606         through ira_reg_class_max_nregs and ira_available_class_regs.
5607
5608 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
5609
5610         * config/i386/constraints.md (Yp): New register constraint.
5611         * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
5612         Yp register constraint.
5613         (*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
5614         (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
5615         (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.
5616
5617 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
5618
5619         * config/i386/sse.md (<s>mul<mode>3_highpart): Update.
5620
5621 2011-08-23  Mark Heffernan  <meheff@google.com>
5622
5623         PR middle-end/38509
5624         * common.opt (Wfree-nonheap-object): New option.
5625         * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
5626         * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
5627         to warning.
5628         (expand_builtin): Make warning conditional.
5629
5630 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
5631
5632         * config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
5633         (length_immediate): Handle imulx, ishiftx and rotatex.
5634         (imm_disp): Ditto.
5635         (isa): Add bmi2.
5636         (enabled): Handle bmi2.
5637         (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
5638         (*umul<mode><dwi>3): Ditto.  Add imulx BMI2 alternative.
5639         (*bmi2_umulditi3_1): New insn pattern.
5640         (*bmi2_umulsidi3_1): Ditto.
5641         (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
5642         (*bmi2_ashl<mode>3_1): New insn pattern.
5643         (*ashl<mode>3_1): Add ishiftx BMI2 alternative.
5644         (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
5645         (*bmi2_ashlsi3_1_zext): New insn pattern.
5646         (*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
5647         (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
5648         (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
5649         (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
5650         (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
5651         flags dependency.
5652         (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
5653         (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
5654         (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
5655         flags dependency.
5656         (*bmi2_rorx<mode>3_1): New insn pattern.
5657         (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
5658         (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
5659         (*rotatert<mode>3_1 splitter): Ditto.
5660         (*bmi2_rorxsi3_1_zext): New insn pattern.
5661         (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
5662         (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
5663         (*rotatertsi3_1_zext splitter): Ditto.
5664
5665 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
5666
5667         * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
5668         (OPTION_MASK_ISA_BMI2_UNSET): Likewise.
5669         (ix86_handle_option): Handle OPT_mbmi2 case.
5670         * config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
5671         (x86_64-*-*): Likewise.
5672         * config/i386/bmi2intrin.h: New file.
5673         * config/i386/cpuid.h (bit_BMI2): New.
5674         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
5675         BMI2 feature.
5676         * config/i386/i386-c.c (ix86_target_macros_internal):
5677         Conditionally define __BMI2__.
5678         * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
5679         Handle BMI2 option.
5680         (ix86_valid_target_attribute_inner_p): Handle BMI2 option.
5681         (print_reg): New code.
5682         (ix86_print_operand): Likewise.
5683         (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
5684         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
5685         IX86_BUILTIN_PEXT64.
5686         (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
5687         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
5688         IX86_BUILTIN_PEXT64.
5689         * config/i386/i386.h (TARGET_BMI2): New.
5690         * config/i386/i386.md (UNSPEC_PDEP): New.
5691         (UNSPEC_PEXT): Likewise.
5692         (*bmi2_bzhi_<mode>3): Likewise.
5693         (*bmi2_pdep_<mode>3): Likewise.
5694         (*bmi2_pext_<mode>3): Likewise.
5695         * config/i386/i386.opt (mbmi2): New.
5696         * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
5697         is defined.
5698         * doc/extend.texi: Document BMI2 built-in functions.
5699         * doc/invoke.texi: Document -mbmi2.
5700
5701 2011-08-23  Jakub Jelinek  <jakub@redhat.com>
5702
5703         PR middle-end/50161
5704         * simplify-rtx.c (simplify_const_unary_operation): If
5705         op is CONST_INT, don't look at op_mode, but use instead mode.
5706         * optabs.c (add_equal_note): For FFS, CLZ, CTZ,
5707         CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
5708         operation and TRUNCATE/ZERO_EXTEND if needed.
5709         * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
5710         Document that operand mode must be same as operation mode,
5711         or VOIDmode.
5712         * config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
5713         *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
5714         *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
5715         *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
5716         use the mode of operand for the operation and add truncate
5717         or zero_extend around if needed.
5718         * config/c6x/c6x.md (ctzdi2): Likewise.
5719         * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
5720
5721 2011-08-12  Michael Matz  <matz@suse.de>
5722
5723         * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
5724         (gimple_expand_cfg): Merge alignment info for coalesced pointer
5725         SSA names.
5726
5727 2011-08-23  Richard Guenther  <rguenther@suse.de>
5728
5729         * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
5730         * tree-affine.h (aff_comb_cannot_overlap_p): Declare.
5731         * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
5732         from ...
5733         * tree-ssa-loop-im.c (cannot_overlap_p): ... here.
5734         (mem_refs_may_alias_p): Adjust.
5735         * tree-data-ref.h (dr_may_alias_p): Adjust.
5736         * tree-data-ref.c: Include tree-affine.h.
5737         (dr_analyze_indices): Do nothing for the non-loop case.
5738         (dr_may_alias_p): Distinguish loop and non-loop case.  Disambiguate
5739         more cases in the non-loop case.
5740         * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
5741         calls to dr_may_alias_p.
5742         (write_alias_graph_to_ascii_ecc): Likewise.
5743         (write_alias_graph_to_ascii_dot): Likewise.
5744         (build_alias_set_optimal_p): Likewise.
5745
5746 2011-08-23  Richard Guenther  <rguenther@suse.de>
5747
5748         PR tree-optimization/50162
5749         * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
5750
5751 2011-08-23  Richard Guenther  <rguenther@suse.de>
5752
5753         * tree-data-ref.c (dr_analyze_indices): Add comments, handle
5754         REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
5755         (create_data_ref): Also dump access functions for the created data-ref.
5756
5757 2011-08-22  Uros Bizjak  <ubizjak@gmail.com>
5758             Kirill Yukhin  <kirill.yukhin@intel.com>
5759
5760         PR target/50155
5761         * config/i386/sse.md (VI_AVX2): New.
5762         (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
5763         (*<plusminus_insn><mode>3): Ditto.
5764         (<sse2_avx2>_andnot<mode>3): Ditto.
5765         (*andnot<mode>3): Fix order of cond operands.
5766         Add asserts for correct TARGET_xxx.
5767         (*<any_logic:code><mode>3): Ditto.
5768
5769 2011-08-22  Anatoly Sokolov  <aesok@post.ru>
5770
5771         * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
5772         * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
5773         * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
5774         regclass argument type to reg_class_t. Change 'max' and 'v' vars
5775         and return types to unsigned char. Use reg_class_contents instead
5776         of class_contents.
5777         (TARGET_CLASS_MAX_NREGS): Define.
5778
5779 2011-08-22  Bernd Schmidt  <bernds@codesourcery.com>
5780
5781         * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
5782         to make computed_jump_p return true.
5783
5784 2011-08-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5785
5786         * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
5787         (PICFLAG_FOR_TARGET): Substitute.
5788         * aclocal.m4: Regenerate.
5789         * configure: Regenerate.
5790
5791 2011-08-22  Dodji Seketeli  <dodji@redhat.com>
5792
5793         * c-family/c-pch.c (c_common_read_pch): Re-set line table right
5794         after reading in the pch.
5795
5796 2011-08-22  H.J. Lu  <hongjiu.lu@intel.com>
5797
5798         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
5799         * configure: Regenerated.
5800
5801 2011-08-22  Jakub Jelinek  <jakub@redhat.com>
5802
5803         PR tree-optimization/50133
5804         * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
5805         from stmt instead of some statement around gsi.
5806
5807         PR middle-end/50141
5808         * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
5809         innerdecl is a VAR_DECL.
5810
5811 2011-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
5812
5813         * config/i386/avx2intrin.h: New file.
5814         * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
5815         PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
5816         V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
5817         V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
5818         V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
5819         V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
5820         V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
5821         V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
5822         V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
5823         V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
5824         V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
5825         V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
5826         V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
5827         V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
5828         V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
5829         V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
5830         V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
5831         V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
5832         VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
5833         VOID_FTYPE_PV8SI_V8SI_V8SI,
5834         V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
5835         V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
5836         V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
5837         V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
5838         V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
5839         V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
5840         V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
5841         V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
5842         V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
5843         V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
5844         V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
5845         V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
5846         V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
5847         V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
5848         V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
5849         V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
5850         V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
5851         V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
5852         V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
5853         V4DI_FTYPE_V4DI_INT_CONVERT,
5854         V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
5855         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
5856         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
5857         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
5858         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
5859         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
5860         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
5861         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
5862         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
5863         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
5864         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
5865         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
5866         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
5867         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
5868         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
5869         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
5870         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
5871         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
5872         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
5873         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
5874         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
5875         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
5876         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
5877         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
5878         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
5879         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
5880         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
5881         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
5882         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
5883         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
5884         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
5885         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
5886         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
5887         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
5888         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
5889         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
5890         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
5891         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
5892         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
5893         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
5894         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
5895         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
5896         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
5897         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
5898         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
5899         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
5900         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
5901         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
5902         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
5903         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
5904         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
5905         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
5906         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
5907         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
5908         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
5909         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
5910         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
5911         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
5912         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
5913         IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
5914         IX86_BUILTIN_VBROADCASTSS_PS256,
5915         IX86_BUILTIN_VBROADCASTSD_PD256,
5916         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
5917         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
5918         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
5919         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
5920         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
5921         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
5922         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
5923         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
5924         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
5925         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
5926         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
5927         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
5928         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
5929         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
5930         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
5931         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
5932         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
5933         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
5934         IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
5935         IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
5936         IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
5937         IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
5938         IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
5939         IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
5940         IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
5941         IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
5942         (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
5943         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
5944         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
5945         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
5946         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
5947         (bdesc_args): Add  IX86_BUILTIN_MPSADBW256,
5948         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
5949         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
5950         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
5951         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
5952         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
5953         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
5954         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
5955         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
5956         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
5957         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
5958         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
5959         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
5960         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
5961         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
5962         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
5963         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
5964         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
5965         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
5966         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
5967         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
5968         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
5969         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
5970         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
5971         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
5972         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
5973         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
5974         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
5975         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
5976         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
5977         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
5978         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
5979         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
5980         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
5981         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
5982         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
5983         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
5984         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
5985         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
5986         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
5987         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
5988         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
5989         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
5990         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
5991         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
5992         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
5993         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
5994         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
5995         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
5996         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
5997         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
5998         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
5999         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
6000         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
6001         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
6002         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
6003         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
6004         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
6005         IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
6006         IX86_BUILTIN_VBROADCASTSD_PD256,
6007         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
6008         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
6009         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
6010         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
6011         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
6012         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
6013         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
6014         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
6015         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
6016         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
6017         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
6018         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
6019         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
6020         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
6021         (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
6022         IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
6023         IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
6024         IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
6025         IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
6026         IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
6027         IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
6028         IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
6029         IX86_BUILTIN_GATHERDIV8SI.
6030         (ix86_preferred_simd_mode): Support AVX2 modes.
6031         (ix86_expand_args_builtin): Support AVX2 builtins.
6032         (ix86_expand_special_args_builtin): Likewise.
6033         (ix86_expand_builtin): Likewise.
6034         * config/i386/i386.md (UNSPEC_VPERMSI): New.
6035         (UNSPEC_VPERMDF): Likewise.
6036         (UNSPEC_VPERMSF): Likewise.
6037         (UNSPEC_VPERMDI): Likewise.
6038         (UNSPEC_VPERMTI): Likewise.
6039         (UNSPEC_GATHER): Likewise.
6040         (ssemodesuffix): Extend.
6041         * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
6042         is defined.
6043         * config/i386/predicates.md (const1248_operand): New.
6044         * config/i386/sse.md (VI1_AVX2): New mode iterator.
6045         (VI2_AVX2): Likewise.
6046         (VI4_AVX2): Likewise.
6047         (VI8_AVX2): Likewise.
6048         (VIMAX_AVX2): Likewise.
6049         (SSESCALARMODE): Likewise.
6050         (VI12_AVX2): Likewise.
6051         (VI24_AVX2): Likewise.
6052         (VI124_AVX2): Likewise.
6053         (VI248_AVX2): Likewise.
6054         (VI48_AVX2): Likewise.
6055         (VI4SD_AVX2): Likewise.
6056         (V48_AVX2): Likewise.
6057         (AVX256MODE2P): Likewise.
6058         (AVXMODE48P_DI): Likewise.
6059         (sse2_avx2): New mode attribute.
6060         (ssse3_avx2): Likewise.
6061         (sse4_1_avx2): Likewise.
6062         (avx_avx2): Likewise.
6063         (ssebytemode): Likewise.
6064         (AVXTOSSEMODE): Likewise.
6065         (AVXMODE48P_DI): Likewise.
6066         (gthrfirstp): Likewise.
6067         (gthrlastp): Likewise.
6068         (lshift): New code_iterator
6069         (lshift): New code attribute.
6070         (lshift): Likewise.
6071         (ssescalarmodesuffix): Update.
6072         (sseunpackmode): Likewise.
6073         (ssepackmode): Likewise.
6074         (avx2_vec_dupv4sf): New insn pattern.
6075         (avx2_vec_dupv8sf): Likewise.
6076         (avx2_interleave_highv4di): Likewise.
6077         (avx2_interleave_lowv4di): Likewise.
6078         (avx2_umulv4siv4di3): Likewise
6079         (*avx2_umulv4siv4di3): Likewise
6080         (avx2_pmaddwd): Likewise.
6081         (*avx2_pmaddwd): Likewise.
6082         (avx2_lshrqv4di3): Likewise.
6083         (avx2_lshlqv4di3): Likewise.
6084         (avx2_lshl<mode>3): Likewise.
6085         (avx2_<umaxmin:code><mode>3): Likewise.
6086         (*avx2_<umaxmin:code><mode>3): Likewise.
6087         (avx2_<smaxmin:code><mode>3): Likewise.
6088         (*avx2_<smaxmin:code><mode>3): Likewise.
6089         (avx2_eq<mode>3): Likewise.
6090         (*avx2_eq<mode>3): Likewise.
6091         (avx2_gt<mode>3): Likewise.
6092         (avx2_interleave_highv32qi): New.
6093         (avx2_interleave_lowv32qi): Likewise.
6094         (avx2_interleave_highv16hi): Likewise.
6095         (avx2_interleave_lowv16hi): Likewise.
6096         (avx2_interleave_highv8si): Likewise.
6097         (avx2_interleave_lowv8si): Likewise.
6098         (avx2_pshufd): Likewise.
6099         (avx2_pshufd_1): Likewise.
6100         (avx2_pshuflwv3): Likewise.
6101         (avx2_pshuflw_1): Likewise.
6102         (avx2_pshufhwv3): Likewise.
6103         (avx2_pshufhw_1): Likewise.
6104         (avx2_uavgv32qi3): Likewise.
6105         (*avx2_uavgv32qi3): Likewise.
6106         (avx2_uavgv16hi3): Likewise.
6107         (*avx2_uavgv16hi3): Likewise.
6108         (avx2_pmovmskb): Likewise.
6109         (avx2_phaddwv16hi3): Likewise.
6110         (avx2_phadddv8si3): Likewise.
6111         (avx2_phaddswv16hi3): Likewise.
6112         (avx2_phsubwv16hi3): Likewise.
6113         (avx2_phsubdv8si3): Likewise.
6114         (avx2_phsubswv16hi3): Likewise.
6115         (avx2_pmaddubsw256): Likewise.
6116         (avx2_umulhrswv16hi3): Likewise.
6117         (*avx2_umulhrswv16hi3): Likewise.
6118         (avx2_packusdw): Likewise.
6119         (avx2_pblendd<mode>): Likewise.
6120         (avx2_<code>v16qiv16hi2): Likewise.
6121         (avx2_<code>v8qiv8si2): Likewise.
6122         (avx2_<code>v8hiv8si2): Likewise.
6123         (avx2_<code>v4qiv4di2): Likewise.
6124         (avx2_<code>v4hiv4di2): Likewise.
6125         (avx2_<code>v4siv4di2): Likewise.
6126         (avx2_pbroadcast<mode>): Likewise.
6127         (avx2_permvarv8si): Likewise.
6128         (avx2_permv4df): Likewise.
6129         (avx2_permvarv8sf): Likewise.
6130         (avx2_permv4di): Likewise.
6131         (avx2_permv2ti): Likewise.
6132         (avx2_vec_dupv4df): Likewise.
6133         (avx2_vbroadcasti128_<mode>): Likewise.
6134         (avx2_vec_set_lo_v4di): Likewise.
6135         (avx2_vec_set_hi_v4di): Likewise.
6136         (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
6137         (avx2_extracti128): Likewise.
6138         (avx2_inserti128): Likewise.
6139         (avx2_ashrvv8si): Likewise.
6140         (avx2_ashrvv4si): Likewise.
6141         (avx2_<lshift>vv8si): Likewise.
6142         (avx2_<lshift>v<mode>): Likewise.
6143         (avx2_<lshift>vv2di): Likewise.
6144         (avx2_gathersi<mode>): Likewise.
6145         (*avx2_gathersi<mode>): Likewise.
6146         (avx2_gatherdi<mode>): Likewise.
6147         (*avx2_gatherdi<mode>): Likewise.
6148         (avx2_gatherdi<mode>256): Likewise.
6149         (*avx2_gatherdi<mode>256): Likewise.
6150         (<plusminus_insn><mode>3): Use VI mode iterator.
6151         (*<plusminus_insn><mode>3): Use VI mode iterator.
6152         (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
6153         sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
6154         (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
6155         *sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
6156         (mul<mode>3): Rename from mulv8hi3.  Use VI2_AVX2 mode iterator.
6157         (*mul<mode>3): Rename from *mulv8hi3.  Use VI2_AVX2 mode iterator.
6158         (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
6159         Use VI2_AVX2 mode iterator.
6160         (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
6161         Use VI2_AVX2 mode iterator.
6162         (mul<mode>3): Rename from mulv4si3.  Use VI4_AVX2 mode iterator.
6163         (*mul<mode>3): Rename from *mulv4si3.  Use VI4_AVX2 mode iterator.
6164         (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
6165         Use VI4_AVX2 mode iterator.
6166         (ashr<mode>3): Use VI24_AVX2 mode iterator.
6167         (lshr<mode>3): Use VI248_AVX2 mode iterator.
6168         (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
6169         Use VIMAX_AVX2 mode iterator.
6170         (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
6171         Use VI mode iterator.
6172         (*andnot<mode>3): Update for AVX2.
6173         (*<any_logic:code><mode>3): Likewise.
6174         (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
6175         Use VI1_AVX mode iterator.
6176         (<sse2_avx2>_packssdw):  Rename from sse2_packssdw.
6177         Use VI2_AVX mode iterator.
6178         (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
6179         Use VI1_AVX mode iterator.
6180         (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
6181         Use VI8_AVX2 mode iterator.
6182         (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
6183         Use VI1_AVX2 mode iterator.
6184         (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
6185         Use VI124_AVX2 mode iterator.
6186         (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
6187         Use SSESCALARMODE mode iterator.
6188         (abs<mode>2): Use VI124_AVX2 mode iterator.
6189         (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
6190         Use VI8_AVX2 mode iterator.
6191         (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
6192         Use VI1_AVX2 mode iterator.
6193         (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
6194         Use VI1_AVX2 mode iterator.
6195         (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
6196         Use VI2_AVX2 mode iterator.
6197         (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
6198         avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
6199         (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
6200         avx_maskstore<ssemodesuffix><avxsizesuffix>.
6201         Use V48_AVX2 mode iterator.
6202         * doc/extend.texi: Document AVX2 built-in functions.
6203         * doc/invoke.texi: Document -mavx2.
6204
6205 2011-08-22  Matthias Klose <doko@debian.org>
6206
6207         Revert:
6208         2011-07-11  Arthur Loiret  <aloiret@debian.org>
6209                     Matthias Klose <doko@debian.org>
6210         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
6211         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
6212         convention.
6213         * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
6214
6215 2011-08-22  Mikael Pettersson  <mikpe@it.uu.se>
6216
6217         PR bootstrap/50146
6218         * ira-color.c (assign_hard_reg): Move saved_nregs declaration
6219         to #ifndef HONOR_REG_ALLOC_ORDER block.
6220
6221 2011-08-21  Richard Henderson  <rth@redhat.com>
6222
6223         * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
6224         * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
6225         * resource.c (next_insn_no_annul): Likewise.
6226         (mark_set_resources): Likewise.
6227         * reorg.c (delete_from_delay_slot): Likewise.
6228         (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
6229         (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
6230
6231 2011-08-21  Uros Bizjak  <ubizjak@gmail.com>
6232
6233         * config/i386/i386.md (any_div): Remove.
6234         (sgnprefix): Update for removal.
6235         (u): Ditto.
6236
6237 2011-08-20  Vladimir Makarov  <vmakarov@redhat.com>
6238
6239         * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
6240         for ira_reg_class_max_nregs.  Increase pressure by 1.
6241         (mark_pseudo_regno_subword_dead): Use allocno class
6242         for ira_reg_class_max_nregs.
6243
6244 2011-08-20  Richard Henderson  <rth@redhat.com>
6245
6246         * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
6247         config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
6248         config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
6249         config/c6x/ltf.c: Adjust include path for soft-fp.
6250
6251 2011-08-20  H.J. Lu  <hongjiu.lu@intel.com>
6252
6253         PR other/46770
6254         * config.gcc (tm_file): Add initfini-array.h if
6255         .init_arrary/.fini_array are supported.
6256
6257         * crtstuff.c: Don't generate .ctors nor .dtors sections if
6258         USE_INITFINI_ARRAY is defined.
6259
6260         * output.h (default_elf_init_array_asm_out_constructor): New.
6261         (default_elf_fini_array_asm_out_destructor): Likewise.
6262         * varasm.c (elf_init_array_section): Likewise.
6263         (elf_fini_array_section): Likewise.
6264         (get_elf_initfini_array_priority_section): Likewise.
6265         (default_elf_init_array_asm_out_constructor): Likewise.
6266         (default_elf_fini_array_asm_out_destructor): Likewise.
6267
6268         * config/initfini-array.h: New.
6269
6270 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
6271
6272         * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
6273         OK for ST_REGS and FP_REGS before taking those classes into account.
6274
6275 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
6276
6277         * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
6278         before checking for annulled branches.
6279
6280 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
6281
6282         * config/i386/i386.c (ix86_binary_operator_ok): Use
6283         satisfies_constraint_L.
6284
6285 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
6286             Michael Matz  <matz@suse.de>
6287
6288         * config/i386/i386.c (ix86_expand_round_sse4): Expand as
6289         trunc (a + copysign (nextafter (0.5, 0.0), a)).
6290
6291 2011-08-20  Anatoly Sokolov  <aesok@post.ru>
6292
6293         * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
6294         * doc/tm.texi: Regenerate.
6295         * targhooks.c (default_preferred_output_reload_class): Don't use
6296         PREFERRED_OUTPUT_RELOAD_CLASS macro.
6297         * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
6298
6299 2011-08-20  Jakub Jelinek  <jakub@redhat.com>
6300
6301         PR tree-optimization/48739
6302         * tree-ssa.c: Include cfgloop.h.
6303         (execute_update_addresses_taken): When updating ssa, if in loop closed
6304         SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
6305         * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
6306
6307 2011-08-19  Vladimir Makarov  <vmakarov@redhat.com>
6308
6309         PR rtl-optimization/49936
6310         * ira.c (ira_init_register_move_cost): Ignore too small subclasses
6311         for calculation of max register move costs.
6312
6313 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
6314
6315         * c-parser.c (c_parser_postfix_expression): Convert operands of
6316         __builtin_complex to their semantic types.
6317
6318 2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
6319
6320         PR middle-end/49721
6321         * explow.c (convert_memory_address_addr_space): Also permute the
6322         conversion and addition of constant for zero-extend.
6323
6324 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
6325
6326         * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
6327         * doc/extend.texi (__builtin_complex): Document.
6328
6329 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
6330
6331         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
6332         beyond conversions.
6333         (convert_mult_to_widen): Convert constant inputs to the right type.
6334         (convert_plusminus_to_widen): Don't automatically reject inputs that
6335         are not an SSA_NAME.
6336         Convert constant inputs to the right type.
6337
6338 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
6339
6340         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
6341         to the correct type.
6342
6343 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
6344
6345         * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
6346         unsigned inputs of different modes.
6347         (convert_plusminus_to_widen): Likewise.
6348
6349 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
6350
6351         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
6352         'type'.
6353         Use 'type' from caller, not inferred from 'rhs'.
6354         Don't reject non-conversion statements. Do return lhs in this case.
6355         (is_widening_mult_p): Add new argument 'type'.
6356         Use 'type' from caller, not inferred from 'stmt'.
6357         Pass type to is_widening_mult_rhs_p.
6358         (convert_mult_to_widen): Pass type to is_widening_mult_p.
6359         (convert_plusminus_to_widen): Likewise.
6360
6361 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
6362
6363         * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
6364         Ensure the the larger type is the first operand.
6365
6366 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
6367
6368         * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
6369         unsupported unsigned multiplies to signed.
6370         (convert_plusminus_to_widen): Likewise.
6371
6372 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
6373
6374         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
6375         conversion statement separating multiply-and-accumulate.
6376
6377 2011-08-19  Richard Guenther  <rguenther@suse.de>
6378
6379         PR tree-optimization/50067
6380         * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
6381         offset only if we accounted for it.
6382
6383 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
6384
6385         * config/arm/arm.md (maddhidi4): Remove '*' from name.
6386         * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
6387         * optabs.c (find_widening_optab_handler_and_mode): New function.
6388         (expand_widen_pattern_expr): Use find_widening_optab_handler.
6389         (expand_binop_directly): Likewise.
6390         (expand_binop): Likewise.
6391         * optabs.h (find_widening_optab_handler): New macro define.
6392         (find_widening_optab_handler_and_mode): New prototype.
6393         * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
6394         type precision rules.
6395         (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
6396         * tree-ssa-math-opts.c (build_and_insert_cast): New function.
6397         (is_widening_mult_rhs_p): Allow widening by more than one mode.
6398         Explicitly disallow mis-matched input types.
6399         (convert_mult_to_widen): Use find_widening_optab_handler, and cast
6400         input types to fit the new handler.
6401         (convert_plusminus_to_widen): Likewise.
6402
6403 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
6404
6405         * expr.c (expand_expr_real_2): Use widening_optab_handler.
6406         * genopinit.c (optabs): Use set_widening_optab_handler for $N.
6407         (gen_insn): $N now means $a must be wider than $b, not consecutive.
6408         * optabs.c (widened_mode): New function.
6409         (expand_widen_pattern_expr): Use widening_optab_handler.
6410         (expand_binop_directly): Likewise.
6411         (expand_binop): Likewise.
6412         * optabs.h (widening_optab_handlers): New struct.
6413         (optab_d): New member, 'widening'.
6414         (widening_optab_handler): New function.
6415         (set_widening_optab_handler): New function.
6416         * tree-ssa-math-opts.c (convert_mult_to_widen): Use
6417         widening_optab_handler.
6418         (convert_plusminus_to_widen): Likewise.
6419
6420 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
6421
6422         * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
6423         pedantic.
6424         * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
6425         * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
6426
6427 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
6428
6429         * opth-gen.awk: Do not declare target save/restore structures and
6430         functions if IN_RTS defined.
6431
6432 2011-08-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
6433
6434         PR target/49437
6435         * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
6436         when stack was realigned in interrupt handler prologue.
6437
6438 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
6439
6440         * c-decl.c (shadow_tag_warned): Check for _Noreturn.
6441         (quals_from_declspecs): Assert _Noreturn not present.
6442         (grokdeclarator): Handle _Noreturn.
6443         (build_null_declspecs): Initialize noreturn_p.
6444         (declspecs_add_scspec): Handle RID_NORETURN.
6445         * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
6446         (c_parser_attributes): Handle RID_NORETURN.
6447         * c-tree.h (struct c_declspecs): Add noreturn_p.
6448         * ginclude/stdnoreturn.h: New.
6449         * Makefile.in (USER_H): Add stdnoreturn.h.
6450
6451 2011-08-18  Kirill Yukhin  <kirill.yukhin@intel.com>
6452
6453         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
6454         (OPTION_MASK_ISA_AVX_UNSET): Update.
6455         (OPTION_MASK_ISA_AVX2_UNSET): New.
6456         (ix86_handle_option): Handle OPT_mavx2 case.
6457         * config/i386/cpuid.h (bit_AVX2): New.
6458         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
6459         AVX2 feature.
6460         * config/i386/i386-c.c (ix86_target_macros_internal):
6461         Conditionally define __AVX2__.
6462         * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
6463         Define "core-avx2" processor alias.  Handle avx2 option.
6464         (ix86_valid_target_attribute_inner_p): Handle avx2 option.
6465         * config/i386/i386.h (TARGET_AVX2): New.
6466         * config/i386/i386.opt (mavx2): New.
6467         * doc/invoke.texi: Document -mavx2.
6468
6469 2011-08-18  Vladimir Makarov  <vmakarov@redhat.com>
6470
6471         PR rtl-optimization/49890
6472         * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
6473         subclasses of class which is superset of a pressure class.
6474
6475 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
6476             Igor Zamyatin <igor.zamyatin@intel.com>
6477
6478         * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
6479         with HOST_WIDE_INT for isa_flag.
6480         (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
6481         isa variables.
6482
6483         * config/i386/i386.c (ix86_target_string): Replace int with
6484         HOST_WIDE_INT for isa.  Use HOST_WIDE_INT_PRINT to print isa.
6485         (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
6486         (pta_flags): Removed.
6487         (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
6488         (pta): Use HOST_WIDE_INT on flags.
6489         (builtin_isa): Use HOST_WIDE_INT on isa.
6490         (ix86_add_new_builtins): Likewise.
6491         (def_builtin): Use HOST_WIDE_INT on mask.
6492         (def_builtin_const): Likewise.
6493         (builtin_description): Likewise.
6494
6495         * config/i386/i386.opt (ix86_isa_flags): Replace int with
6496         HOST_WIDE_INT.
6497         (ix86_isa_flags_explicit): Likewise.
6498         (x_ix86_isa_flags_explicit): Likewise.
6499
6500 2011-08-17  Vladimir Makarov  <vmakarov@redhat.com>
6501
6502         PR rtl-optimization/50107
6503         * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
6504         (ira_hard_reg_in_set_p): New.
6505
6506         * ira-color.c (calculate_saved_nregs): New.
6507         (assign_hard_reg): Use it.  Set up allocated_hard_reg_p for all
6508         hard regs.
6509         (allocno_reload_assign, fast_allocation): Use
6510         ira_hard_reg_set_intersection_p instead of
6511         ira_hard_reg_not_in_set_p.
6512
6513         * ira.c (setup_reg_renumber): Use
6514         ira_hard_reg_set_intersection_p instead of
6515         ira_hard_reg_not_in_set_p.
6516         (setup_allocno_assignment_flags, calculate_allocation_cost): Use
6517         ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
6518
6519         * ira-costs.c (ira_tune_allocno_costs): Use
6520         ira_hard_reg_set_intersection_p instead of
6521         ira_hard_reg_not_in_set_p.
6522
6523 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
6524             Igor Zamyatin <igor.zamyatin@intel.com>
6525
6526         * hwint.h (HOST_WIDE_INT_1): New.
6527
6528         * opt-functions.awk (switch_bit_fields): Initialize the
6529         host_wide_int field.
6530         (host_wide_int_var_name): New.
6531         (var_type_struct): Check and return HOST_WIDE_INT.
6532
6533         * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
6534
6535         * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
6536
6537         * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT.  Properly
6538         check masks for HOST_WIDE_INT.
6539
6540         * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
6541         (option_enabled): Likewise.
6542         (get_option_state): Likewise.
6543
6544         * opts.h (cl_option): Add cl_host_wide_int.  Change var_value
6545         to HOST_WIDE_INT.
6546
6547 2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6548             Marc Glisse  <marc.glisse@normalesup.org>
6549
6550         PR libstdc++-v3/1773
6551         * target.def (decl_mangling_context): New C++ hook.
6552         * doc/tm.texi: Regenerate.
6553         * config/sol2-cxx.c, config/sol2-stubs.c: New files.
6554         * config/sol2-protos.h: Group by source file.
6555         (solaris_cxx_decl_mangling_context): Declare.
6556         * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
6557         * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
6558         Use $<.
6559         * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
6560         Add sol2-stubs.o to extra_objs.
6561
6562 2011-08-18  Jakub Jelinek  <jakub@redhat.com>
6563
6564         PR target/50009
6565         * stor-layout.c (update_alignment_for_field): Don't ICE on
6566         packed flexible array members if ms_bitfield_layout_p.
6567
6568         PR target/50092
6569         * config/i386/i386.c (assign_386_stack_local): Call validize_mem
6570         on the result before returning it.
6571
6572         PR debug/50017
6573         * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
6574         is a debug stmt, use location of the first non-debug stmt after it.
6575
6576 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
6577
6578         * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
6579         (arm_size_rtx_costs): Likewise.
6580
6581 2011-08-18  Richard Guenther  <rguenther@suse.de>
6582
6583         * tree.h (tree_int_cst_msb): Remove.
6584         * tree.c (tree_int_cst_msb): Likewise.
6585         (tree_int_cst_sign_bit): Move from ...
6586         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
6587
6588 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
6589
6590         * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
6591         * doc/tm.texi: Regenerate.
6592         * target.def (rtx_costs): Add an opno parameter.
6593         * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
6594         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
6595         * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
6596         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
6597         * cse.c (COST_IN): Add an opno parameter.
6598         (notreg_cost): Likewise.  Update call to rtx_cost.
6599         (COST, fold_rtx): Update accordingly.
6600         * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
6601         * expmed.c (emit_store_flag): Likewise.
6602         * optabs.c (avoid_expensive_constant): Add an opno parameter.
6603         Update call to rtx_cost.
6604         (expand_binop_directly, expand_binop): Likewise.
6605         (expand_twoval_binop, prepare_cmp_insn): Likewise.
6606         * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
6607         (set_src_cost, get_full_set_src_cost): Update accordingly.
6608         * rtlanal.c (rtx_cost): Add an opno parameter.  Update call
6609         to target hook.
6610         (get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
6611         (default_adress_cost): Update calls to rtx_cost.
6612
6613         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
6614         (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
6615         (arm_rtx_costs): Add an opno parameter.
6616         * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
6617         adjust any recursive rtx-cost calls.
6618         * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
6619         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
6620         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
6621         * config/cris/cris.c (cris_rtx_costs): Likewise.
6622         * config/frv/frv.c (frv_rtx_costs): Likewise.
6623         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
6624         * config/i386/i386.c (ix86_rtx_costs): Likewise.
6625         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
6626         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
6627         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
6628         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
6629         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
6630         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
6631         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
6632         * config/mep/mep.c (mep_rtx_cost): Likewise.
6633         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
6634         * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
6635         (mips_zero_extend_cost): Add an opno parameter.
6636         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
6637         * config/mn10300/mn10300.c (mn10300_address_cost): Update call
6638         to rtx_cost.
6639         (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
6640         rtx-cost calls.
6641         * config/pa/pa.c (hppa_rtx_costs): Likewise.
6642         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
6643         * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
6644         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
6645         (rs6000_debug_rtx_costs): Likewise.
6646         * config/s390/s390.c (s390_rtx_costs): Likewise.
6647         * config/score/score-protos.h (score_rtx_costs): Likewise.
6648         * config/score/score.c (score_rtx_costs): Likewise.
6649         * config/sh/sh.c (andcosts): Update call to rtx_cost.
6650         (sh_rtx_costs): Add an opno parameter.
6651         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
6652         * config/spu/spu.c (spu_rtx_costs): Likewise.
6653         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
6654         * config/v850/v850.c (v850_rtx_costs): Likewise.
6655         * config/vax/vax.c (vax_rtx_costs): Likewise.
6656         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
6657
6658 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
6659
6660         * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
6661         * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
6662         rtx_cost.
6663         * calls.c (precompute_register_parameters): Likewise.
6664         * combine.c (expand_compound_operation, make_extraction): Likewise.
6665         (force_to_mode, distribute_and_simplify_rtx): Likewise.
6666         * dse.c (find_shift_sequence): Likewise.
6667         * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
6668         * expr.c (compress_float_constant): Likewise.
6669         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
6670         * gcse.c (want_to_gcse_p): Likewise.
6671         * ifcvt.c (noce_try_sign_mask): Likewise.
6672         * loop-doloop.c (doloop_optimize): Likewise.
6673         * loop-invariant.c (create_new_invariant): Likewise.
6674         * optabs.c (avoid_expensive_constant): Likewise.
6675         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
6676         (try_replace_in_use, reload_cse_move2add): Likewise.
6677         * reload1.c (calculate_elim_costs_all_insns): Likewise.
6678         (note_reg_elim_costly): Likewise.
6679         * rtlanal.c (insn_rtx_cost): Likewise.
6680         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
6681         * stmt.c (lshift_cheap_p): Likewise.
6682         * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
6683         * config/avr/avr.c (final_prescan_insn): Likewise.
6684         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
6685         * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
6686
6687 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
6688
6689         * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
6690         * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
6691         * cfgloopanal.c (seq_cost): Likewise.
6692         * loop-invariant.c (create_new_invariant): Likewise.
6693         * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
6694         (reload_cse_move2add): Use get_full_set_rtx_cost.
6695
6696 2011-08-18  Richard Guenther  <rguenther@suse.de>
6697
6698         * expr.c (get_inner_reference): Fix typo in last change.
6699
6700 2011-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
6701             Joseph Myers  <joseph@codesourcery.com>
6702
6703         PR tree-optimization/49963
6704         * hwint.c (absu_hwi): Define.
6705         * hwint.h (absu_hwi): Declare.
6706         * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
6707         of abs_hwi.
6708         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
6709         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
6710
6711 2011-08-18  Richard Guenther  <rguenther@suse.de>
6712
6713         * expr.c (get_inner_reference): Sign-extend the constant
6714         twos-complement offset before doing arbitrary precision
6715         arithmetic on it.
6716         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
6717         (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
6718         to get_constraint_for_ptr_offset.
6719
6720 2011-08-17  Kaz Kojima  <kkojima@gcc.gnu.org>
6721
6722         PR target/50068
6723         * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
6724
6725 2011-08-17  Richard Guenther  <rguenther@suse.de>
6726
6727         * tree.h (convert_to_ptrofftype_loc): New function.
6728         (convert_to_ptrofftype): Define.
6729         * builtins.c (expand_builtin_bzero): Use size_type_node.
6730         (fold_builtin_bzero): Likewise.
6731         (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
6732         * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
6733         * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
6734         (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
6735         * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
6736         * fold-const.c (build_range_check): Negate using the original type.
6737         (fold_unary_loc): Use fold_build_pointer_plus_loc.
6738         * gimple-fold.c (gimple_adjust_this_by_delta): Use
6739         convert_to_ptrofftype.
6740         * gimplify.c (gimplify_self_mod_expr): Likewise.
6741         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
6742         (graphite_create_new_loop_guard): Likewise.
6743         * graphite-sese-to-poly.c (my_long_long): Remove.
6744         (scop_ivs_can_be_represented): Adjust.
6745         * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
6746         * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
6747         * tree-loop-distribution.c (build_size_arg_loc): Use
6748         size_type_node.
6749         (generate_memset_zero): Simplify.
6750         * tree-mudflap.c: Use fold_convert, not convert.
6751         * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
6752         its own type.
6753         (determine_offset): Likewise for DR_STEP.
6754         (valid_initializer_p): Likewise.
6755         * tree-profile.c (prepare_instrumented_value): Convert the pointer
6756         to an integer type of same size.
6757         * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
6758         to sizetype without need.
6759         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
6760         * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
6761         * tree-ssa-loop-manip.c (create_iv): Likewise.
6762         (determine_exit_conditions): Adjust comment.
6763         * tree-ssa-pre.c (create_expression_by_pieces): Use
6764         convert_to_ptrofftype.
6765         * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
6766         * varasm.c (array_size_for_constructor): Compute using double_ints.
6767
6768 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6769
6770         * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
6771         when generating an integer result where possible.  Short-cut
6772         comparison against 0 also for QImode.
6773
6774 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6775
6776         * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
6777         * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
6778         prototype.
6779         * config/spu/spu.c (spu_legitimize_reload_address): New function.
6780         (spu_legitimate_address_p): Do not check displacement if the base
6781         is an eliminable stack register.
6782
6783 2011-08-16  Anatoly Sokolov  <aesok@post.ru>
6784
6785         * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
6786         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
6787         * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
6788         m32c_preferred_output_reload_class): Remove.
6789         * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
6790         Change rclass argument and return types to reg_class_t. Use
6791         reg_class_subset_p instead of class_sizes.
6792         (m32c_preferred_output_reload_class): Make static. Change rclass
6793         argument and return types to reg_class_t.
6794         (TARGET_PREFERRED_RELOAD_CLASS,
6795         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6796
6797 2011-08-16  Kai Tietz  <ktietz@redhat.com>
6798
6799         * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
6800
6801 2011-08-16  Richard GUenther  <rguenther@suse.de>
6802
6803         PR tree-optimization/50082
6804         * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
6805         warnings here, instead of ...
6806         (ssa_forward_propagate_and_combine): ... here.
6807         (forward_propagate_into_comparison_1): Adjust.
6808         (forward_propagate_into_comparison): Likewise.
6809         (forward_propagate_into_gimple_cond): Likewise.
6810         (forward_propagate_into_cond): Likewise.
6811
6812 2011-08-16  Andreas Schwab  <schwab@redhat.com>
6813
6814         * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
6815         instead of ggc_alloc_zone_vec_rtvec_def.
6816
6817 2011-08-16  Richard Guenther  <rguenther@suse.de>
6818
6819         * tree.h (ptrofftype_p): New helper function.
6820         * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
6821         offset verification.
6822         (verify_gimple_assign_binary): Likewise.
6823         * tree.c (build2_stat): Likewise.
6824         * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
6825         (reset_evolution_in_loop): Likewise.
6826         * tree-chrec.h (build_polynomial_chrec): Likewise.
6827
6828 2011-08-16  Liang Wang  <lwang1@marvell.com>
6829
6830         * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
6831         ggc_alloc_zone_vec_rtvec_def.
6832
6833 2011-08-16  Richard Guenther  <rguenther@suse.de>
6834
6835         * tree-vrp.c (extract_range_from_multiplicative_op_1): New
6836         helper factored out from ...
6837         (extract_range_from_binary_expr_1): ... here.  Re-structure
6838         to not glob handling too different tree codes.
6839
6840 2011-08-15  Richard Henderson  <rth@redhat.com>
6841
6842         PR middle-end/50006
6843         * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
6844         setting out to include allocate_stack named pattern as well.
6845         * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
6846         * stmt.c (expand_stack_restore): Likewise.
6847
6848 2011-08-15  Richard Guenther  <rguenther@suse.de>
6849
6850         PR middle-end/50082
6851         * fold-const.c (maybe_canonicalize_comparison_1): Properly
6852         convert the modified operand to the other operand type.
6853         (fold_comparison): Call maybe_canonicalize_comparison_1 with
6854         useless conversions stripped from comparison operands.
6855
6856 2011-08-15  Richard Guenther  <rguenther@suse.de>
6857
6858         * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
6859         (extract_range_from_unary_expr_1): Restructure.
6860
6861 2011-08-15  Richard Guenther  <rguenther@suse.de>
6862
6863         PR tree-optimization/50058
6864         * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
6865         copy matching.
6866
6867 2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6868
6869         PR target/50022
6870         * config/arm/arm.c (output_move_double): Add 2 parameters
6871         to count the number of insns emitted and whether to emit or not.
6872         Use the flag to decide when to emit and count number of instructions
6873         that will be emitted.
6874         Handle case where output_move_double might be called for calculating
6875         lengths with an invalid constant.
6876         (arm_count_output_move_double_insns): Define.
6877         * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
6878         (output_move_double): Adjust prototype.
6879         * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
6880         output_move_double.
6881         ("*movdi_vfp_cortexa8"): Likewise and add attribute
6882         for ce_count.
6883         * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
6884         ("*movdf_soft_insn"): Likewise.
6885         * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
6886         ("*cirrus_thumb2_movdi"): Likewise.
6887         ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
6888         ("*cirrus_movdf_hard_insn"): Likewise.
6889         * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
6890         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
6891         ("mov<mode>_internal VMMX"): Likewise.
6892         * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
6893
6894 2011-08-14  Uros Bizjak  <ubizjak@gmail.com>
6895
6896         * config/i386/i386.c (ix86_expand_round_sse4): New function.
6897         * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
6898         * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
6899         for TARGET_ROUND.
6900
6901         (rint<mode>2): Simplify TARGET_ROUND check.
6902         (floor<mode>2): Ditto.
6903         (ceil<mode>2): Ditto.
6904         (btrunc<mode>2): Ditto.
6905
6906 2011-08-14  Anatoly Sokolov  <aesok@post.ru>
6907
6908         * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
6909         as mmix_preferred_output_reload_class.
6910
6911 2011-08-14  Georg-Johann Lay  <avr@gjlay.de>
6912
6913         * PR target/49903
6914         * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
6915         (branch_unspec): New insn.
6916         (branch): Beauty farm.
6917         * config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
6918         to be IF_THEN_ELSE.
6919         (avr_compare_pattern, avr_reorg_remove_redundant_compare):
6920         New static functions.
6921         (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
6922         Use CONST_INT_P.  Beauty.
6923
6924 2011-08-12  Richard Henderson  <rth@redhat.com>
6925
6926         PR rtl-opt/49994
6927         * sched-init.h (struct deps_desc): Add sched_before_next_jump.
6928         * sched-deps.c (init_deps): Clear it.
6929         (deps_analyze_insn): Consume it.
6930         (sched_analyze_insn): Fill it.
6931
6932 2011-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6933
6934         PR target/48328
6935         * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
6936         for tbh instructions.
6937
6938 2011-08-12  Diego Novillo  <dnovillo@google.com>
6939
6940         * data-streamer.h (streamer_write_zero): Rename from output_zero.
6941         (streamer_write_uhwi): Rename from lto_output_uleb128.
6942         (streamer_write_hwi): Rename from output_sleb128.
6943         (streamer_write_string): Rename from lto_output_string.
6944         (streamer_string_index): Rename from lto_string_index.
6945         (streamer_write_string_with_length): Rename from
6946         lto_output_string_with_length.
6947         (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
6948         (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
6949         (streamer_read_string): Rename from lto_input_string.
6950         (streamer_read_indexed_string): Rename from input_string_internal.
6951         (streamer_read_uhwi): Rename from lto_input_uleb128.
6952         (streamer_read_hwi): Rename from lto_input_sleb128.
6953         (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
6954         (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
6955         (streamer_write_enum): Rename from lto_output_enum.
6956         (streamer_read_enum): Rename from lto_input_enum.
6957         (streamer_write_record_start): Rename from output_record_start.
6958         (streamer_read_record_start): Rename from input_record_start.
6959         (streamer_write_bitpack): Rename from lto_output_bitpack.
6960         (streamer_read_bitpack): Rename from lto_input_bitpack.
6961         (streamer_write_char_stream): Rename from lto_output_1_stream.
6962         (streamer_read_uchar): Rename from lto_input_1_unsigned.
6963         * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
6964         (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
6965         (streamer_read_string_cst): Rename from input_string_cst.
6966         (streamer_read_chain): Rename from lto_input_chain.
6967         (streamer_alloc_tree): Rename from lto_materialize_tree.
6968         (streamer_read_tree_body): Rename from lto_input_tree_pointers.
6969         (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
6970         (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
6971         (streamer_read_integer_cst): Rename from lto_input_integer_cst.
6972         (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
6973         (streamer_write_chain): Rename from lto_output_chain.
6974         (streamer_write_tree_header): Rename from lto_output_tree_header.
6975         (streamer_pack_tree_bitfields): Rename from pack_value_fields.
6976         (streamer_write_tree_body): Rename from lto_output_tree_pointers.
6977         (streamer_write_integer_cst): Rename from lto_output_integer_cst.
6978         (streamer_write_builtin): Rename from lto_output_builtin_tree.
6979         (streamer_check_handled_ts_structures): Rename from
6980         check_handled_ts_structures.
6981         (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
6982         (streamer_tree_cache_insert_at): Rename from
6983         lto_streamer_cache_insert_at.
6984         (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
6985         (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
6986         (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
6987         (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
6988         (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
6989         * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
6990         (write_identifier): Rename from output_identifier.
6991         (write_ts_common_tree_pointers): Rename from
6992         lto_output_ts_common_tree_pointers.
6993         (write_ts_vector_tree_pointers): Rename from
6994         lto_output_ts_vector_tree_pointers.
6995         (write_ts_complex_tree_pointers): Rename from
6996         lto_output_ts_complex_tree_pointers.
6997         (write_ts_decl_minimal_tree_pointers): Rename from
6998         lto_output_ts_decl_minimal_tree_pointers.
6999         (write_ts_decl_common_tree_pointers): Rename from
7000         lto_output_ts_decl_common_tree_pointers.
7001         (write_ts_decl_non_common_tree_pointers): Rename from
7002         lto_output_ts_decl_non_common_tree_pointers.
7003         (write_ts_decl_with_vis_tree_pointers): Rename from
7004         lto_output_ts_decl_with_vis_tree_pointers.
7005         (write_ts_field_decl_tree_pointers): Rename from
7006         lto_output_ts_field_decl_tree_pointers.
7007         (write_ts_function_decl_tree_pointers): Rename from
7008         lto_output_ts_function_decl_tree_pointers.
7009         (write_ts_type_common_tree_pointers): Rename from
7010         lto_output_ts_type_common_tree_pointers.
7011         (write_ts_type_non_common_tree_pointers): Rename from
7012         lto_output_ts_type_non_common_tree_pointers.
7013         (write_ts_list_tree_pointers): Rename from
7014         lto_output_ts_list_tree_pointers.
7015         (write_ts_vec_tree_pointers): Rename from
7016         lto_output_ts_vec_tree_pointers.
7017         (write_ts_exp_tree_pointers): Rename from
7018         lto_output_ts_exp_tree_pointers.
7019         (write_ts_block_tree_pointers): Rename from
7020         lto_output_ts_block_tree_pointers.
7021         (write_ts_binfo_tree_pointers): Rename from
7022         lto_output_ts_binfo_tree_pointers.
7023         (write_ts_constructor_tree_pointers): Rename from
7024         lto_output_ts_constructor_tree_pointers.
7025         (write_ts_target_option): Rename from lto_output_ts_target_option.
7026         (write_ts_translation_unit_decl_tree_pointers): Rename from
7027         lto_output_ts_translation_unit_decl_tree_pointers.
7028         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
7029         Rename from lto_streamer_cache_add_to_node_array.
7030         (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
7031         (record_common_node): Rename from lto_record_common_node.
7032
7033         * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
7034         declarations.
7035         * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
7036         function.
7037         * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
7038         unused function.
7039         * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
7040         (ipa-reference.o): Likewise.
7041         * lto-section-out.c: Include data-streamer.h.
7042         * ipa-reference.c: Include data-streamer.h.
7043
7044 2011-08-12  Nick Clifton  <nickc@redhat.com>
7045
7046         * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
7047         * doc/md.texi (cmpstrn): Note that the comparison stops if both
7048         fetched bytes are zero.
7049         (cmpstr): Likewise.
7050         (cmpmem): Note that the comparison does not stop if both of the
7051         fetched bytes are zero.
7052
7053 2011-08-12  Uros Bizjak  <ubizjak@gmail.com>
7054
7055         * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
7056         BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
7057         * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
7058         BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
7059         to integer_type_node.
7060         * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
7061         BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
7062         * builtins.c (expand_builtin_in): Ditto.
7063         (mathfn_built_in_1): Ditto.
7064         (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
7065         BUILT_IN_IFLOOR.
7066         (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
7067         BUILT_IN_IROUND.
7068         (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
7069         BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
7070         BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
7071
7072 2011-08-12  Richard Guenther  <rguenther@suse.de>
7073
7074         * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
7075
7076 2011-08-12  Romain Geissler  <romain.geissler@gmail.com>
7077
7078         * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
7079
7080 2011-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
7081
7082         * config/arm/arm.c (get_label_padding): New function.
7083         (create_fix_barrier, arm_reorg): Use it.
7084
7085 2011-08-11  Uros Bizjak  <ubizjak@gmail.com>
7086
7087         PR target/49781
7088         * config/i386/i386.md (*lea_5_zext): New.
7089         (*lea_6_zext): Ditto.
7090         * config/i386/predicates.md (const_32bit_mask): New predicate.
7091         (lea_address_operand): Reject AND.
7092         * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
7093         const_32bit_mask immediate.
7094         (ix86_print_operand_address): Handle AND.
7095         (memory_address_length): Ditto.
7096
7097 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
7098             Brian Hackett  <bhackett1024@gmail.com>
7099
7100         * plugin.def: Add event for finish_decl.
7101         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
7102         * c-decl.c (finish_decl): Invoke callbacks on above event.
7103         * doc/plugins.texi: Document above event.
7104
7105 2011-08-11  Richard Guenther  <rguenther@suse.de>
7106
7107         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
7108         lookups, make looking through aggregate copies stronger.
7109
7110 2011-08-11  Richard Henderson  <rth@redhat.com>
7111
7112         PR bootstrap/50018
7113         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
7114
7115 2011-08-11  Richard Guenther  <rguenther@suse.de>
7116
7117         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
7118         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
7119         (vrp_visit_stmt): Likewise.
7120
7121 2011-08-11  Richard Guenther  <rguenther@suse.de>
7122
7123         PR middle-end/50040
7124         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
7125         load of the other piece with TREE_NO_WARNING.
7126         * tree-flow.h (warn_uninit): Adjust prototype.
7127         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
7128         the base variable and the expression that is used separately.
7129         Properly query all TREE_NO_WARNING flags.
7130         (struct walk_data): Remove.
7131         (warn_uninitialized_var): Likewise.
7132         (warn_uninitialized_vars): Do not walk gimple pieces but simply
7133         look at all SSA uses of the statement.  Handle unused memory
7134         separately.
7135         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
7136
7137 2011-08-11   Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
7138
7139         * config/rx/rx.md (movsicc): Allow register to register transfers.
7140         (*movsicc): Likewise.
7141         (*stcc): Restrict this pattern to EQ and NE compares.
7142         (*stcc_reg): New pattern.  Works for any comparison but only for
7143         register transfers.
7144
7145 2011-08-11   Diego Novillo  <dnovillo@google.com>
7146
7147         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
7148         Call stream_write_tree instead of output_record_start.
7149         (lto_output_ts_binfo_tree_pointers): Likewise.
7150
7151         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
7152         Convert it to a macro.
7153         (stream_read_tree): Likewise.
7154
7155         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
7156         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
7157
7158         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
7159         and tree_read_bitfields.
7160         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
7161         (lto_write_tree): Call it.
7162         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
7163         * streamer-hooks.h (struct streamer_hooks): Remove fields
7164         name, is_streamable and alloc_tree. Update all users.
7165         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
7166         (lto_materialize_tree): ... here.
7167         Handle CALL_EXPR codes.
7168         Remove call to lto_streamer_cache_append.
7169         * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
7170         * tree-streamer.h (tree_read_bitfields): Declare.
7171
7172         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
7173         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
7174         * tree-streamer.h (stream_read_tree): New.  Replace all calls
7175         to lto_input_tree with it.
7176         (stream_write_tree): New.  Replace all calls to lto_output_tree,
7177         lto_output_tree_ref and lto_output_tree_or_ref with it.
7178         * lto-streamer-in.c (lto_read_tree): Inline code from
7179         lto_streamer_read_tree.
7180         (lto_input_tree): Move from tree-streamer-in.c.
7181         * lto-streamer-out.c (lto_output_tree_ref): Make static.
7182         Remove handling of NULL values for EXPR.
7183         Do not handle EXPRs that are not indexable.
7184         (lto_write_tree): Move from tree-streamer-out.c.
7185         Inline lto_streamer_write_tree.
7186         (lto_output_tree): Move from tree-streamer-out.c.
7187         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
7188         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
7189         (lto_preload_common_nodes): Likewise.
7190         Remove assertions and adjustments for nodes
7191         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
7192         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
7193         lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
7194         * lto-streamer.h (lto_input_tree): Declare.
7195         (lto_output_tree_ref): Remove.
7196         * streamer-hooks.h (struct streamer_hooks): Remove fields
7197         preload_common_nodes, indexable_with_decls_p,
7198         pack_value_fields, unpack_value_fields and output_tree_header.
7199         Update all users.
7200         * tree-streamer-in.c (lto_materialize_tree): Make extern.
7201         (lto_input_tree_pointers): Likewise.
7202         (lto_read_tree): Move to lto-streamer-in.c.
7203         (lto_input_integer_cst): Make extern.
7204         (lto_get_pickled_tree): Likewise.
7205         (lto_get_builtin_tree): Likewise.
7206         (lto_input_tree): Move to lto-streamer-in.c.
7207         * tree-streamer-out.c (pack_value_fields): Make extern.
7208         (lto_output_tree_or_ref): Remove.  Replace all callers with
7209         calls to stream_write_tree.
7210         (lto_output_builtin_tree): Make extern.
7211         (lto_streamer_write_tree): Inline into lto_write_tree.
7212         (lto_output_tree_pointers): Make extern.
7213         (lto_output_tree_header): Likewise.
7214         (lto_output_integer_cst): Likewise.
7215         (lto_write_tree): Move to lto-streamer-out.c.
7216         (lto_output_tree): Likewise.
7217         * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
7218         (preload_common_nodes): Likewise.
7219         (lto_streamer_cache_create): Call it.
7220         * tree-streamer.h: Include streamer-hooks.h.
7221         (stream_write_tree): New.
7222         (stream_read_tree): New.
7223         (lto_input_tree): Remove.
7224         (lto_materialize_tree): Declare.
7225         (lto_input_tree_pointers): Declare.
7226         (lto_get_pickled_tree): Declare.
7227         (lto_get_builtin_tree): Declare.
7228         (lto_input_integer_cst): Declare.
7229         (lto_output_tree_header): Declare.
7230         (pack_value_fields): Declare.
7231         (lto_output_tree_pointers): Declare.
7232         (lto_output_integer_cst): Declare.
7233         (lto_output_builtin_tree): Declare.
7234
7235 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
7236
7237         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
7238         only if producer writes to the register given by regno.
7239
7240 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
7241             Alexander Monakov  <amonakov@ispras.ru>
7242
7243         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
7244         (sched_get_condition_with_rev_uncached): ... this.  Factor out
7245         condition caching logic into ...
7246         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
7247         attempt to use cache for instructions with zero luid.
7248         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
7249         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
7250
7251 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
7252
7253         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
7254         get_seqno_for_a_jump.  Update the caller.
7255         (get_seqno_by_succs): New.  Use it ...
7256         (get_seqno_for_a_jump): ... here to find a seqno if looking at
7257         predecessors was not sufficient.
7258         (get_seqno_by_preds): Include head in iteration range, exclude insn.
7259
7260 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
7261
7262         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
7263
7264 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
7265
7266         * sel-sched-ir.h (register_unavailable_p): Declare.
7267         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
7268         (set_unavailable_target_for_expr): ... here to properly test
7269         availability of a register.
7270         (speculate_expr): Ditto.
7271         * sel-sched.c (substitute_reg_in_expr): Ditto.
7272         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
7273
7274 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
7275
7276         * sel-sched.c (verify_target_availability): Fix usage of
7277         hard_regno_nregs.
7278
7279 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
7280
7281         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
7282         recognized by cannot_copy_insn_p hook and volatile instructions.
7283
7284 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
7285
7286         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
7287
7288 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
7289
7290         * doc/md.texi (define_bypass): Say that the instruction names can
7291         be filename-style globs.
7292         * Makefile.in (FNMATCH_H): Define.
7293         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
7294         * genattrtab.c: Include fnmatch.h.
7295         (bypass_list): Change field name from "insn" to "pattern".
7296         (gen_bypass_1): Update accordingly.
7297         (process_bypasses): Use fnmatch to check for matches between
7298         insn reservations and define_bypasses.
7299         * genautomata.c: Include fnmatch.h.
7300         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
7301         and out_pattern respectively.
7302         (gen_bypass, insert_bypass): Update accordingly.
7303         (for_each_matching_insn, process_bypass_2, process_bypass_1)
7304         (process_bypass): New functions.
7305         (process_decls): Use process_bypass.  Update after field name changes.
7306
7307 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
7308
7309         PR target/49687
7310         * config/avr/avr.md (smulqi3_highpart): New insn.
7311         (umulqi3_highpart): New insn.
7312         (*subqi3.ashiftrt7): New insn.
7313         (smulhi3_highpart): New expander.
7314         (umulhi3_highpart): Nex expander.
7315         (*smulhi3_highpart_call): New insn.
7316         (*umulhi3_highpart_call): New insn.
7317         (extend_u): New code attribute.
7318         (extend_prefix): Rename code attribute to extend_su.
7319         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
7320         widening QI/HI multiply.
7321
7322 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
7323
7324         PR tree-optimization/50039
7325         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
7326         that DEF_STMT has a stmt_vec_info.
7327
7328 2011-08-10  Richard Guenther  <rguenther@suse.de>
7329
7330         * tree.h (can_trust_pointer_alignment): Remove.
7331         * builtins.c (can_trust_pointer_alignment): Remove.
7332
7333 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
7334
7335         * c-typeck.c (scalar_to_vector): New function. Try scalar to
7336         vector conversion.
7337         (stv_conv): New enum for scalar_to_vector return type.
7338         (build_binary_op): Adjust.
7339         * doc/extend.texi: Description of scalar to vector expansion.
7340
7341 2011-08-10  Richard Guenther  <rguenther@suse.de>
7342
7343         * tree.h (get_pointer_alignment): Remove max-align argument.
7344         (get_object_alignment): Likewise.
7345         * builtins.c (get_object_alignment_1): Adjust.
7346         (get_object_alignment): Remove max-align argument.
7347         (get_pointer_alignment): Likewise.
7348         (expand_builtin_strlen): Adjust.
7349         (expand_builtin_memcpy): Likewise.
7350         (expand_builtin_mempcpy_args): Likewise.
7351         (expand_builtin_strncpy): Likewise.
7352         (expand_builtin_memset_args): Likewise.
7353         (expand_builtin_memcmp): Likewise.
7354         (expand_builtin_strcmp): Likewise.
7355         (expand_builtin_strncmp): Likewise.
7356         (get_builtin_sync_mem): Likewise.
7357         (fold_builtin_memset): Likewise.
7358         (fold_builtin_memory_op): Likewise.
7359         (expand_builtin_memory_chk): Likewise.
7360         * emit-rtl.c (get_mem_align_offset): Likewise.
7361         (set_mem_attributes_minus_bitpos): Likewise.
7362         * expr.c (expand_assignment): Likewise.
7363         (expand_expr_real_1): Likewise.
7364         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
7365         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
7366         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
7367         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
7368         * value-prof.c (gimple_stringops_transform): Likewise.
7369
7370 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
7371
7372         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
7373         * doc/tm.texi: Regenerate.
7374
7375 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
7376
7377         PR target/29560
7378         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
7379         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
7380         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
7381         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
7382         shift target is unused.
7383
7384 2011-08-10  Richard Guenther  <rguenther@suse.de>
7385
7386         PR tree-optimization/49937
7387         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
7388         using get_object_alignment_1.
7389
7390 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
7391
7392         * config/i386/i386.c (ix86_emit_i387_round): New function.
7393         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
7394         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
7395         Use ix86_emit_i387_round to expand round function for i387 math.
7396         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
7397         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
7398
7399 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7400
7401         * config/sync.c: Move to ../libgcc.
7402         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
7403         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
7404         Remove.
7405
7406 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
7407
7408         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
7409         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
7410         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
7411         Change 'from' and 'to' arguments type to reg_class_t.
7412         (TARGET_REGISTER_MOVE_COST): Define.
7413
7414 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
7415
7416         PR target/50026
7417         Revert:
7418         PR rtl-optimization/49990
7419         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
7420         ignore classes which can not change mode.
7421         (find_costs_and_classes): Ditto.
7422
7423 2011-08-09  Richard Guenther  <rguenther@suse.de>
7424
7425         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
7426         information for ranges with only negative values.
7427         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
7428         BIT_AND_EXPR handling to handle ranges with negative values.
7429
7430 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
7431
7432         * config/i386/i386.c: Remove traling spaces.
7433         * config/i386/sse.md: Likewise.
7434         (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
7435         (*fma_fmsub_<mode>): Likewise.
7436         (*fma_fnmadd_<mode>): Likewise.
7437         (*fma_fnmsub_<mode>): Likewise.
7438
7439 2011-08-09  Nick Clifton  <nickc@redhat.com>
7440
7441         * config/rx/rx.md: Disable extender peepholes at -O3.
7442
7443 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
7444
7445         PR target/49781
7446         * config/i386/i386.md (reload_noff_load): New.
7447         (reload_noff_store): Ditto.
7448         * config/i386/i386.c (ix86_secondary_reload): Use
7449         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
7450         double-word moves from/to non-offsetable addresses instead of
7451         generating XMM temporary.
7452
7453 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
7454
7455         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
7456
7457 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
7458
7459         PR tree-optimization/50014
7460         * tree-vect-loop.c (vectorizable_reduction): Get def type before
7461         calling vect_get_vec_def_for_stmt_copy ().
7462
7463 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
7464
7465         PR rtl-optimization/49990
7466         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
7467         ignore classes which can not change mode.
7468         (find_costs_and_classes): Ditto.
7469
7470 2011-08-08  Richard Henderson  <rth@redhat.com>
7471
7472         PR middle-end/49990
7473         * config/i386/i386.c (ix86_expand_prologue): Call
7474         for SEH target gen_prologue_use instead of gen_blockage
7475         at prologue's end.
7476
7477 2011-08-08  Martin Jambor  <mjambor@suse.cz>
7478
7479         PR middle-end/49923
7480         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
7481         memory alignment.
7482
7483 2011-08-08   Diego Novillo  <dnovillo@google.com>
7484
7485         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
7486         (DATA_STREAMER_H): New.
7487         (GIMPLE_STREAMER_H): New.
7488         (TREE_STREAMER_H): New.
7489         (STREAMER_HOOKS_H): New.
7490         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
7491         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
7492         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
7493         (data-streamer.o): New.
7494         (data-streamer-in.o): New.
7495         (data-streamer-out.o): New.
7496         (gimple-streamer-in.o): New.
7497         (gimple-streamer-out.o): New.
7498         (streamer-hooks.o): New.
7499         (tree-streamer.o): New.
7500         (tree-streamer-in.o): New.
7501         (tree-streamer-out.o): New.
7502         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
7503         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
7504         GIMPLE_STREAMER_H and TREE_STREAMER_H.
7505         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
7506         GIMPLE_STREAMER_H and TREE_STREAMER_H.
7507         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
7508         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
7509         (ipa-inline-analysis.o): Likewise.
7510         (ipa-pure-const.o): Likewise.
7511         * data-streamer-in.c: New.
7512         * data-streamer-out.c: New.
7513         * data-streamer.c: New.
7514         * data-streamer.h: New.
7515         * gimple-streamer-in.c: New.
7516         * gimple-streamer-out.c: New.
7517         * gimple-streamer.h: New.
7518         * ipa-inline-analysis.c: Include data-streamer.h.
7519         * ipa-prop.c: Include data-streamer.h.
7520         * ipa-pure-const.c: Include data-streamer.h.
7521         * lto-cgraph.c: Include data-streamer.h.
7522         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
7523         (lto_input_widest_uint_uleb128): Likewise.
7524         (lto_input_sleb128): Likewise.
7525         (bp_unpack_var_len_unsigned): Likewise.
7526         (bp_unpack_var_len_int): Likewise.
7527         * lto-section-out.c (lto_output_uleb128_stream): Move to
7528         data-streamer-out.c.
7529         (lto_output_widest_uint_uleb128_stream): Likewise.
7530         (lto_output_sleb128_stream): Likewise.
7531         (bp_pack_var_len_unsigned): Likewise.
7532         (bp_pack_var_len_int): Likewise.
7533         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
7534         (struct string_slot): Remove.  Update all users.
7535         (lto_tag_check_set): Make extern.
7536         (lto_tag_check_range): Move to lto-streamer.h.
7537         (lto_tag_check): Likewise.
7538         (hash_string_slot_node): Remove.  Update all users.
7539         (eq_string_slot_node): Remove.  Update all users.
7540         (string_for_index): Move to data-streamer-in.c
7541         (input_string_internal): Likewise.
7542         (input_string_cst): Move to tree-streamer-in.c.
7543         (input_identifier): Likewise.
7544         (lto_input_string): Move to data-streamer-in.c
7545         (input_record_start): Move to data-streamer.h
7546         (canon_file_name): Use new definition of struct string_slot
7547         from data-streamer.h.  Set S_SLOT.LEN.
7548         (lto_input_location): Make extern.
7549         (lto_input_chain): Move to tree-streamer-in.c.
7550         (lto_init_eh): Make extern.
7551         (input_phi): Move to gimple-streamer-in.c.
7552         (input_gimple_stmt): Likewise.
7553         (input_bb): Likewise.
7554         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
7555         (unpack_ts_real_cst_value_fields): Likewise.
7556         (unpack_ts_fixed_cst_value_fields): Likewise.
7557         (unpack_ts_decl_common_value_fields): Likewise.
7558         (unpack_ts_decl_wrtl_value_fields): Likewise.
7559         (unpack_ts_decl_with_vis_value_fields): Likewise.
7560         (unpack_ts_function_decl_value_fields): Likewise.
7561         (unpack_ts_type_common_value_fields): Likewise.
7562         (unpack_ts_block_value_fields): Likewise.
7563         (unpack_ts_translation_unit_decl_value_fields): Likewise.
7564         (unpack_value_fields): Likewise.
7565         (lto_materialize_tree): Likewise.
7566         (lto_input_ts_common_tree_pointers): Likewise.
7567         (lto_input_ts_vector_tree_pointers): Likewise.
7568         (lto_input_ts_complex_tree_pointers): Likewise.
7569         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
7570         (lto_input_ts_decl_common_tree_pointers): Likewise.
7571         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
7572         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
7573         (lto_input_ts_field_decl_tree_pointers): Likewise.
7574         (lto_input_ts_function_decl_tree_pointers): Likewise.
7575         (lto_input_ts_type_common_tree_pointers): Likewise.
7576         (lto_input_ts_type_non_common_tree_pointers): Likewise.
7577         (lto_input_ts_list_tree_pointers): Likewise.
7578         (lto_input_ts_vec_tree_pointers): Likewise.
7579         (lto_input_ts_exp_tree_pointers): Likewise.
7580         (lto_input_ts_block_tree_pointers): Likewise.
7581         (lto_input_ts_binfo_tree_pointers): Likewise.
7582         (lto_input_ts_constructor_tree_pointers): Likewise.
7583         (lto_input_ts_target_option): Likewise.
7584         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
7585         (lto_input_tree_pointers): Likewise.
7586         (lto_get_pickled_tree): Likewise.
7587         (lto_get_builtin_tree): Likewise.
7588         (lto_read_tree): Likewise.
7589         (lto_input_integer_cst): Likewise.
7590         (lto_input_tree): Likewise.
7591         * lto-streamer-out.c: Include data-streamer.h,
7592         gimple-streamer.h and streamer-hooks.h.
7593         (struct string_slot): Move to data-streamer.h.
7594         (hash_string_slot_node): Likewise.
7595         (eq_string_slot_node): Likewise.
7596         (lto_string_index): Move to data-streamer-out.c.
7597         (lto_output_string_with_length): Likewise.
7598         (lto_output_string): Likewise.
7599         (output_string_cst): Move to tree-streamer-out.c.
7600         (output_identifier): Likewise.
7601         (output_zero): Move to data-streamer-out.c
7602         (output_uleb128): Likewise.
7603         (output_sleb128): Likewise.
7604         (output_record_start): Move to data-streamer.h
7605         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
7606         (pack_ts_real_cst_value_fields): Likewise.
7607         (pack_ts_fixed_cst_value_fields): Likewise.
7608         (pack_ts_decl_common_value_fields): Likewise.
7609         (pack_ts_decl_wrtl_value_fields): Likewise.
7610         (pack_ts_decl_with_vis_value_fields): Likewise.
7611         (pack_ts_function_decl_value_fields): Likewise.
7612         (pack_ts_type_common_value_fields): Likewise.
7613         (pack_ts_block_value_fields): Likewise.
7614         (pack_ts_translation_unit_decl_value_fields): Likewise.
7615         (pack_value_fields): Likewise.
7616         (lto_output_chain): Likewise.
7617         (lto_output_ts_common_tree_pointers): Likewise.
7618         (lto_output_ts_vector_tree_pointers): Likewise.
7619         (lto_output_ts_complex_tree_pointers): Likewise.
7620         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
7621         (lto_output_ts_decl_common_tree_pointers): Likewise.
7622         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
7623         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
7624         (lto_output_ts_field_decl_tree_pointers): Likewise.
7625         (lto_output_ts_function_decl_tree_pointers): Likewise.
7626         (lto_output_ts_type_common_tree_pointers): Likewise.
7627         (lto_output_ts_type_non_common_tree_pointers): Likewise.
7628         (lto_output_ts_list_tree_pointers): Likewise.
7629         (lto_output_ts_vec_tree_pointers): Likewise.
7630         (lto_output_ts_exp_tree_pointers): Likewise.
7631         (lto_output_ts_block_tree_pointers): Likewise.
7632         (lto_output_ts_binfo_tree_pointers): Likewise.
7633         (lto_output_ts_constructor_tree_pointers): Likewise.
7634         (lto_output_ts_target_option): Likewise.
7635         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
7636         (lto_output_tree_pointers): Likewise.
7637         (lto_output_tree_header): Likewise.
7638         (lto_output_builtin_tree): Likewise.
7639         (lto_write_tree): Likewise.
7640         (lto_output_integer_cst): Likewise.
7641         (lto_output_tree): Likewise.
7642         (output_phi): Move to gimple-streamer-out.c.
7643         (output_gimple_stmt): Likewise.
7644         (output_bb): Likewise.
7645         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
7646         (streamer_hooks): Move to streamer-hooks.c.
7647         (check_handled_ts_structures): Move to tree-streamer.c
7648         (lto_streamer_cache_add_to_node_array): Likewise.
7649         (lto_streamer_cache_insert_1): Likewise.
7650         (lto_streamer_cache_insert): Likewise.
7651         (lto_streamer_cache_insert_at): Likewise.
7652         (lto_streamer_cache_append): Likewise.
7653         (lto_streamer_cache_lookup): Likewise.
7654         (lto_streamer_cache_get): Likewise.
7655         (lto_record_common_node): Likewise.
7656         (lto_preload_common_nodes): Likewise.
7657         (lto_streamer_cache_create): Likewise.
7658         (lto_streamer_cache_delete): Likewise.
7659         (streamer_hooks_init): Move to streamer-hooks.c.
7660         * lto-streamer.h: Include diagnostic.h
7661         (struct output_block, struct lto_input_block,
7662         struct data_in, struct bitpack_d): Remove forward declarations.
7663         (struct bitpack_d): Move to data-streamer.h.
7664         (struct lto_streamer_cache_d): Move to tree-streamer.h.
7665         (struct streamer_hooks): Move to streamer-hooks.h.
7666         (bp_pack_var_len_unsigned): Move to data-streamer.h.
7667         (bp_pack_var_len_int): Likewise.
7668         (bp_unpack_var_len_unsigned): Likewise.
7669         (bp_unpack_var_len_int): Likewise.
7670         (lto_input_location): Declare.
7671         (lto_tag_check_set): Declare.
7672         (lto_init_eh): Declare.
7673         (lto_output_tree_ref): Declare.
7674         (lto_output_location): Declare.
7675         (bitpack_create): Move to data-streamer.h.
7676         (bp_pack_value): Likewise.
7677         (lto_output_bitpack): Likewise.
7678         (lto_input_bitpack): Likewise.
7679         (bp_unpack_value): Likewise.
7680         (lto_output_1_stream): Likewise.
7681         (lto_input_1_unsigned): Likewise.
7682         (lto_output_int_in_range): Likewise.
7683         (lto_input_int_in_range): Likewise.
7684         (bp_pack_int_in_range): Likewise.
7685         (bp_unpack_int_in_range): Likewise.
7686         (lto_output_enum): Likewise.
7687         (lto_input_enum): Likewise.
7688         (bp_pack_enum): Likewise.
7689         (bp_unpack_enum): Likewise.
7690         * streamer-hooks.c: New.
7691         * streamer-hooks.h: New.
7692         * tree-streamer-in.c: New.
7693         * tree-streamer-out.c: New.
7694         * tree-streamer.c: New.
7695         * tree-streamer.h: New.
7696
7697 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7698
7699         * gthr-posix95.h: Remove.
7700         * gthr.h [_PTHREADS95]: Remove.
7701         * configure.ac (enable_threads): Remove posix95.
7702         * configure: Regenerate.
7703         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
7704
7705 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
7706
7707         PR target/49781
7708         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
7709         SImode addresses.
7710         (ix86_print_operand_address): Handle zero-extended addresses.
7711         (memory_address_length): Add length of addr32 prefix for
7712         zero-extended addresses.
7713         (ix86_secondary_reload): Handle moves to/from double-word general
7714         registers from/to zero-extended addresses.
7715         * config/i386/predicates.md (lea_address_operand): Reject
7716         zero-extended operands.
7717
7718 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
7719
7720         PR other/48007
7721         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
7722
7723         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
7724         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
7725
7726         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
7727         (_Unwind_Context_Reg_Val): Likewise.
7728         (_Unwind_Get_Unwind_Word): Likewise.
7729         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
7730         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
7731         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
7732         for EXTENDED_CONTEXT_BIT.
7733         (__frame_state_for): Likewise.
7734         (uw_init_context_1): Likewise.
7735         (_Unwind_GetGR): Updated.
7736         (_Unwind_SetGR): Likewise.
7737         (_Unwind_GetGRPtr): Likewise.
7738         (_Unwind_SetGRPtr): Likewise.
7739         (_Unwind_SetGRValue): Likewise.
7740         (_Unwind_GRByValue): Likewise.
7741         (uw_install_context_1): Likewise.
7742
7743         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
7744         ASSUME_EXTENDED_UNWIND_CONTEXT.
7745         * doc/tm.texi: Regenerated.
7746
7747 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7748
7749         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
7750
7751 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7752
7753         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
7754         Linux/GNU-specific.
7755         (DEC Alpha Options, -mtune): Likewise.
7756         (MIPS Options, -march): native is supported on IRIX.
7757
7758 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7759
7760         * config/sparc/driver-sparc.c: New file.
7761         * config/sparc/x-sparc: New file.
7762         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
7763         * config/sparc/sparc.opt (native): New value for enum processor_type.
7764         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
7765         * config/sparc/sparc.c (sparc_option_override): Abort if
7766         PROCESSOR_NATIVE gets here.
7767         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
7768         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
7769         DRIVER_SELF_SPECS): Define.
7770         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
7771         (SPARC Options, -mtune): Likewise.
7772         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
7773         Substitute result.
7774         * configure: Regenerate.
7775         * Makefile.in (EXTRA_GCC_LIBS): Set.
7776         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
7777         (cpp$(exeext)): Likewise.
7778
7779 2011-08-08  Richard Guenther  <rguenther@suse.de>
7780
7781         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
7782         split out from ...
7783         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
7784         by composition.
7785
7786 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
7787
7788         PR tree-optimization/50005
7789         * ipa-inline-analysis (remap_predicate): Add cast to
7790         silence signed/unsigned comparison warning.
7791
7792 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
7793
7794         * modulo-sched.c (get_sched_window): Use a table for the debug output.
7795         Print the current ii.
7796         (sms_schedule_by_order): Reduce whitespace in dump line.
7797
7798 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
7799
7800         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
7801         and one loop for successors.  Fix upper bound of memory range.
7802
7803 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
7804
7805         PR target/50001
7806         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
7807         (TARGET_INSTANTIATE_DECLS): New define.
7808
7809 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
7810             Mikael Morin   <mikael.morin@sfr.fr>
7811
7812         * Makefile.in (INCLUDES_FOR_TARGET): New.
7813         (LIBGCC2_CFLAGS): Use it.
7814         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
7815
7816 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
7817
7818         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
7819         frame->save_regs_using_mov calculation.
7820
7821 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
7822
7823         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
7824         * config/i386/sse.md (castmode): New mode attribute.
7825         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
7826         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
7827
7828 2011-08-05  Jan Hubicka  <jh@suse.cz>
7829
7830         PR middle-end/49494
7831         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
7832
7833 2011-08-05  Jan Hubicka  <jh@suse.cz>
7834
7835         PR middle-end/49500
7836         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
7837         handle aliases.
7838         (create_emultls_var):New function.
7839         (ipa_lower_emutls): Handle aliases correctly.
7840
7841 2011-08-05  Jan Hubicka  <jh@suse.cz>
7842
7843         PR middle-end/49735
7844         * ipa-inline.c (recursive_inlining): Look through aliases.
7845
7846 2011-08-05  Jason Merrill  <jason@redhat.com>
7847
7848         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
7849         declarations to beginning of function.
7850
7851 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
7852
7853         PR rtl-optimization/49900
7854         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
7855         ensure basic blocks stay in the same order.
7856
7857 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
7858
7859         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
7860         store_bit_field.
7861         (s390_expand_atomic): Same.
7862
7863 2011-08-05  Richard Henderson  <rth@redhat.com>
7864
7865         PR rtl-opt/49977
7866         * dwarf2cfi.c (scan_insn_after): Split out of ...
7867         (scan_trace): ... here.  Correctly place notes wrt sequences.
7868
7869 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7870             Richard Henderson  <rth@redhat.com>
7871
7872         PR rtl-opt/49982
7873         * expr.c (fixup_args_size_notes): Look through no-op moves.
7874
7875 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
7876
7877         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
7878         of "m" for operand 0.  Add type and mode attribute.
7879         (*pushxf_nointeger"): Use "<" constraint for operand 0.
7880         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
7881         constraint instead of "o" for opreand 1.
7882         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
7883         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
7884         operand 0, alternative 4.
7885         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
7886
7887 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
7888
7889         * config/i386/predicates.md (lea_address_operand): Rename from
7890         no_seg_address_operand.
7891         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
7892         (*lea_1_zext): Ditto.
7893         (*lea_2): Ditto.
7894         (*lea_2_zext): Ditto.
7895
7896 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
7897
7898         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
7899         parts.base and parts.index.
7900         * config/i386/predicates.md (aligned_operand): Ditto.
7901         (cmpxchg8b_pic_memory_operand): Ditto.
7902
7903 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7904
7905         * config/soft-fp: Move to ../libgcc.
7906         * Makefile.in (SFP_MACHINE): Remove.
7907         (libgcc-support): Remove $(SFP_MACHINE) dependency.
7908         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
7909         * config/arm/t-arm-softfp: Move to
7910         ../libgcc/config/arm/t-softfp.
7911         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
7912         * config/c6x/t-c6x-softfp: Remove.
7913         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
7914         * config/i386/t-fprules-softfp: Move to
7915         ../libgcc/config/t-softfp-tf.
7916         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
7917         * config/ia64/t-fprules-softfp: Remove.
7918         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
7919         * config/lm32/t-fprules-softfp: Remove.
7920         * config/moxie/sfp-machine.h: Remove.
7921         * config/moxie/t-moxie-softfp: Remove.
7922         * config/rs6000/darwin-ldouble-format: Move to
7923         ../libgcc/config/rs6000/ibm-ldouble-format.
7924         * config/rs6000/darwin-ldouble.c: Move to
7925         ../libgcc/config/rs6000/ibm-ldouble.c
7926         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
7927         * config/rs6000/libgcc-ppc64.ver: Likewise.
7928         * config/rs6000/sfp-machine.h: Likewise.
7929         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
7930         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
7931         (LIB2FUNCS_EXTRA): Remove.
7932         (TARGET_LIBGCC2_CFLAGS): Remove.
7933         * config/rs6000/t-aix52: Likewise
7934         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
7935         $(srcdir)/config/rs6000/darwin-ldouble.c.
7936         (SHLIB_MAPFILES): Remove.
7937         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
7938         $(srcdir)/config/rs6000/darwin-ldouble.c.
7939         * config/rs6000/t-fprules-softfp: Move to
7940         ../libgcc/config/t-softfp-sfdf.
7941         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
7942         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
7943         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
7944         $(srcdir)/config/rs6000/darwin-ldouble.c.
7945         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
7946         * config/score/t-score-softfp: Remove.
7947         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
7948         soft-fp/t-softfp from tmake_file.
7949         (arm*-*-uclinux*): Likewise.
7950         (arm*-*-ecos-elf): Likewise.
7951         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
7952         (arm*-*-rtems*): Likewise.
7953         (arm*-*-elf): Likewise.
7954         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
7955         tmake_file.
7956         (moxie-*-uclinux*): Likewise.
7957         (moxie-*-rtems*): Likewise.
7958         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
7959         tmake_file.
7960         (lm32-*-rtems*): Likewise.
7961         (lm32-*-uclinux*): Likewise.
7962         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
7963         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
7964         (powerpc-*-linux*, powerpc64-*-linux*): Remove
7965         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
7966         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
7967         tmake_file.
7968         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
7969         tmake_file.
7970         (tic6x-*-uclinux): Likewise.
7971         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
7972         soft-fp/t-softfp from tmake_file.
7973         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
7974         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
7975         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
7976         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
7977         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
7978
7979 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7980
7981         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
7982         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
7983         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
7984         TPBIT, TPBIT_FUNCS.
7985         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
7986         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
7987         Remove.
7988         * config/arm/t-vxworks: Likewise.
7989         * config/arm/t-wince-pe: Likewise.
7990         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
7991         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
7992         * config/bfin/t-bfin-elf: Likewise.
7993         * config/bfin/t-bfin-linux: Likewise.
7994         * config/bfin/t-bfin-uclinux: Likewise.
7995         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
7996         Remove.
7997         * config/fr30/t-fr30: Likewise.
7998         * config/frv/t-frv: Likewise.
7999         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
8000         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
8001         * config/m32c/t-m32c: Likewise.
8002         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
8003         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
8004         * config/mcore/t-mcore: Likewise.
8005         * config/mep/t-mep: Likewise.
8006         * config/microblaze/t-microblaze: Likewise.
8007         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
8008         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
8009         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
8010         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
8011         * config/mn10300/t-linux: Remove.
8012         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
8013         * config/pdp11/t-pdp11: Likewise.
8014         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
8015         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
8016         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
8017         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
8018         * config/rs6000/t-aix52: Likewise.
8019         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
8020         $(srcdir)/config/rs6000/ppc64-fp.c.
8021         * config/rs6000/t-fprules-fpbit: Remove.
8022         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
8023         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
8024         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
8025         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
8026         * config/sparc/t-elf: Likewise.
8027         * config/sparc/t-leon: Likewise.
8028         * config/sparc/t-leon3: Likewise.
8029         * config/spu/t-spu-elf: Likewise.
8030         (DPBIT_FUNCS): Remove.
8031         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
8032         * config/v850/t-v850: Likewise.
8033         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
8034         (avr-*-*): Likewise.
8035         (h8300-*-rtems*): Set libgcc_tm_file.
8036         (h8300-*-elf*): Likewise.
8037         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
8038         tmake_file.
8039         (powerpc-*-eabisim*): Likewise.
8040         (powerpc-*-elf*): Likewise.
8041         (powerpc-*-eabialtivec*): Likewise.
8042         (powerpc-xilinx-eabi*): Likewise.
8043         (powerpc-*-eabi*): Likewise.
8044         (powerpc-*-rtems*): Likewise.
8045         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
8046         (powerpcle-*-elf*): Likewise.
8047         (powerpcle-*-eabisim*): Likewise.
8048         (powerpcle-*-eabi*): Likewise.
8049         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
8050         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
8051         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
8052         Remove.
8053
8054 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8055
8056         * Makefile.in (UNWIND_H): Remove.
8057         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
8058         ../libgcc/Makefile.in.
8059         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
8060         (LIBUNWINDDEP): Remove.
8061         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
8062         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
8063         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
8064         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
8065         Don't copy $(UNWIND_H).
8066         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
8067         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
8068         * aclocal.m4: Regenerate.
8069         * configure: Regenerate.
8070         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
8071         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
8072         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
8073         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
8074         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
8075         * config/arm/libunwind.S, config/arm/pr-support.c,
8076         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
8077         ../libgcc/config/arm.
8078         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
8079         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
8080         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
8081         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
8082         ($(T)frvend$(objext)): Likewise.
8083         * config/ia64/t-glibc (LIB2ADDEH): Remove.
8084         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
8085         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
8086         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
8087         ../libgcc/config/ia64.
8088         * config/ia64/t-hpux (LIB2ADDEH): Remove.
8089         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
8090         * config/ia64/t-vms (LIB2ADDEH): Remove.
8091         * config/ia64/vms.h (UNW_IVMS_MODE,
8092         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
8093         * config/picochip/t-picochip (LIB2ADDEH): Remove.
8094         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
8095         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
8096         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
8097         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
8098         $(srcdir)/../libgcc to refer to unwinder sources.
8099         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
8100         * config/t-darwin (LIB2ADDEH): Remove.
8101         * config/t-freebsd (LIB2ADDEH): Remove.
8102         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
8103         * config/t-libunwind-elf: Move to ../libgcc/config.
8104         * config/t-linux (LIB2ADDEH): Remove.
8105         * config/t-sol2 (LIB2ADDEH): Remove.
8106         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
8107         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
8108
8109 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
8110
8111         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
8112
8113         * doc/invoke.texi: Document core-avx-i.
8114
8115 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8116
8117         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
8118
8119 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
8120
8121         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
8122         result of multiple results reduction when extracting the final
8123         value using scalar code.
8124
8125 2011-08-05  Richard Guenther  <rguenther@suse.de>
8126
8127         PR tree-optimization/49984
8128         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
8129
8130 2011-08-05  Richard Guenther  <rguenther@suse.de>
8131
8132         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
8133         return true for constant integer ranges.
8134         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
8135         BIT_IOR_EXPR handling.
8136
8137 2011-08-04  Kai Tietz  <ktietz@redhat.com>
8138
8139         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
8140         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
8141
8142 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
8143
8144         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
8145         pattern def statement, and its access macro.
8146         (NUM_PATTERNS): Set to 5.
8147         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
8148         pattern def statement.
8149         (vect_transform_loop): Likewise.
8150         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
8151         function vect_recog_over_widening_pattern ().
8152         (vect_operation_fits_smaller_type): New function.
8153         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
8154         Likewise.
8155         (vect_pattern_recog_1): Move the code that marks pattern
8156         statements to vect_mark_pattern_stmts (), and call it.  Update
8157         documentation.
8158         * tree-vect-stmts.c (vect_supportable_shift): New function.
8159         (vect_analyze_stmt): Handle pattern def statement.
8160         (new_stmt_vec_info): Initialize pattern def statement.
8161
8162 2011-08-04  Richard Henderson  <rth@redhat.com>
8163
8164         PR target/49964
8165         * config/i386/i386.c (ix86_expand_call): Don't create nested
8166         PARALLELs for TARGET_VZEROUPPER.
8167         (ix86_split_call_vzeroupper): Fix extraction of the original call.
8168         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
8169         recognize nested PARALLELs.
8170         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
8171         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
8172         *sibcall_value_pop_vzeroupper): Likewise.
8173
8174 2011-08-04  Richard Henderson  <rth@redhat.com>
8175
8176         PR middle-end/49968
8177         * calls.c (expand_call): Use fixup_args_size_notes for
8178         emit_stack_restore.
8179         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
8180         in non-standard modes.
8181
8182 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
8183
8184         * gcc.c (self_spec): New variable.
8185         (static_specs): Add self_spec.
8186         (main): Call do_self_spec on "self_spec" specs after reading
8187         user specs files.  Move compare_debug handling right after that.
8188
8189 2011-08-04  Richard Guenther  <rguenther@suse.de>
8190
8191         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
8192         (value_range_nonnegative_p): New function.
8193         (ssa_name_nonnegative_p): Use it.
8194         (value_range_constant_singleton): New function.
8195         (op_with_constant_singleton_value_range): Use it.
8196         (extract_range_from_binary_expr_1): New function, split out from ...
8197         (extract_range_from_binary_expr): ... this.  Remove fallback
8198         constant folding done here.
8199
8200 2011-08-04  Richard Guenther  <rguenther@suse.de>
8201
8202         PR tree-optimization/49806
8203         * tree-vrp.c (op_with_boolean_value_range_p): New function.
8204         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
8205         a new statement for a final conversion to bool.
8206
8207 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
8208
8209         * gengtype-state.c: Include "bconfig.h" if
8210         GENERATOR_FILE is defined, "config.h" otherwise.
8211         * gengtype.c: Likewise.
8212         * gengtype-lex.l: Likewise.
8213         * gengtype-parse.c: Likewise.
8214         * Makefile.in (gengtype-lex.o-warn): New variable.
8215         (plugin_resourcesdir): Likewise.
8216         (plugin_bindir): Likewise.
8217         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
8218         (MOSTLYCLEANFILES): Add gengtype$(exeext).
8219         (native): Depend on gengtype$(exeext) is $enable_plugin
8220         is set to "yes".
8221         (gtype.state): Depend on s-gtype. Use temporary file.
8222         (gengtype-lex.o): New rule.
8223         (gengtype-parse.o): Likewise.
8224         (gengtype-state.o): Likewise.
8225         (gengtype$(exeext)): Likewise.
8226         (install-gengtype): Likewise.
8227         (gengtype.o): Likewise.
8228         (build/gengtype.o): Depend on version.h.
8229         (build/gengtype-state): Depend on double-int.h, version.h,
8230         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
8231         (install-plugin): Depend on install-gengtype.
8232
8233 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
8234
8235         PR middle-end/49905
8236         * tree.h (init_attributes): New prototype.
8237         * attribs.c (init_attributes): No longer static.
8238
8239 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8240
8241         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
8242         maybe_suffix.
8243
8244 2011-08-03   David Li  <davidxl@google.com>
8245
8246         * tree-optimize.c (execute_fixup_cfg): Fix up entry
8247         outgoing edge counts after inlining.
8248
8249 2011-08-03   David Li  <davidxl@google.com>
8250
8251         * profile.c (compute_branch_probabilities): Compute
8252         function frequency after profile annotation.
8253
8254 2011-08-04  Alan Modra  <amodra@gmail.com>
8255
8256         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
8257         use_backchain_to_restore_sp initialisation.
8258         (rs6000_legitimate_offset_address_p): Simplify offset test.
8259
8260 2011-08-03  Richard Henderson  <rth@redhat.com>
8261
8262         * config/spu/spu.md: Use define_c_enum instead of define_constants.
8263         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
8264         (UNSPECV_NOP): New.
8265
8266 2011-08-03  Richard Henderson  <rth@redhat.com>
8267
8268         PR target/34888
8269         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
8270
8271 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
8272
8273         PR tree-optimization/49948
8274         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
8275
8276 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
8277
8278         * config/m32c/m32c.c (class_sizes): Remove.
8279         (reduce_class): Change arguments and return type to reg_class_t.
8280         Change type cc var to HARD_REG_SET. Change type best var to
8281         reg_class_t. Change type best_size var to unsigned int. Remove
8282         initialization class_sizes var. Use reg_class_size array instead
8283         of class_sizes. Use reg_class_contents array instead
8284         of class_contents.
8285
8286 2011-08-03  Richard Guenther  <rguenther@suse.de>
8287
8288         PR middle-end/49958
8289         * fold-const.c (fold_binary_loc): Only associate
8290         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
8291         overflow wraps.
8292
8293 2011-08-03  Alan Modra  <amodra@gmail.com>
8294
8295         PR rtl-optimization/49941
8296         * jump.c (mark_jump_label): Comment.
8297         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
8298         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
8299         (mark_used_flags): Don't mark RETURN.
8300
8301 2011-08-03  Richard Guenther  <rguenther@suse.de>
8302
8303         PR tree-optimization/49938
8304         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
8305         deal with a POLYNOMIAL_CHREC.
8306
8307 2011-08-03  Revital Eres  <revital.eres@linaro.org>
8308
8309         * modulo-sched.c (calculate_stage_count,
8310         calculate_must_precede_follow, get_sched_window,
8311         try_scheduling_node_in_cycle, remove_node_from_ps): Add
8312         declaration.
8313         (update_node_sched_params, set_must_precede_follow, optimize_sc):
8314         New functions.
8315         (reset_sched_times): Call update_node_sched_params.
8316         (sms_schedule): Call optimize_sc.
8317         (get_sched_window): Change function arguments.
8318         (sms_schedule_by_order): Update call to get_sched_window.
8319         Call set_must_precede_follow.
8320         (calculate_stage_count): Add function argument.
8321
8322 2011-08-02  Richard Henderson  <rth@redhat.com>
8323
8324         PR target/49864
8325         PR target/49879
8326         * reg-notes.def (REG_ARGS_SIZE): New.
8327         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
8328         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
8329         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
8330         different stack levels.
8331         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
8332         (maybe_move_args_size_note): New.
8333         (combine_stack_adjustments_for_block): Use it.
8334         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
8335         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
8336         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
8337         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
8338         (cur_cfa): New.
8339         (queued_args_size): Remove.
8340         (add_cfi_args_size): Assert size is non-negative.
8341         (stack_adjust_offset, dwarf2out_args_size): Remove.
8342         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
8343         (notice_args_size, notice_eh_throw): New.
8344         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
8345         (dwarf2out_frame_debug_adjust_cfa): Likewise.
8346         (dwarf2out_frame_debug_cfa_offset): Likewise.
8347         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
8348         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
8349         (change_cfi_row): Don't emit args_size.
8350         (maybe_record_trace_start_abnormal): Split out from ...
8351         (maybe_record_trace_start): Here.  Set args_size_undefined.
8352         (create_trace_edges): Update to match.
8353         (scan_trace): Handle REG_ARGS_SIZE.
8354         (connect_traces): Connect args_size between EH insns.
8355         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
8356         * explow.c (suppress_reg_args_size): New.
8357         (adjust_stack_1): Split out from ...
8358         (adjust_stack): ... here.
8359         (anti_adjust_stack): Use it.
8360         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
8361         * expr.c (mem_autoinc_base): New.
8362         (fixup_args_size_notes): New.
8363         (emit_single_push_insn_1): Rename from emit_single_push_insn.
8364         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
8365         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
8366         * reload1.c (reload_as_needed): Likewise.
8367         * rtl.h (fixup_args_size_notes): Declare.
8368
8369 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
8370
8371         PR bootstrap/49914
8372         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
8373         of abs.
8374         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
8375         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
8376
8377 2011-08-02  Richard Henderson  <rth@redhat.com>
8378
8379         * config/h8300/h8300.c (push, pop): Return the insn.
8380         (h8300_swap_into_er6): Generate correct unwind info.
8381         (h8300_swap_out_of_er6): Likewise.
8382         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
8383         complex cfa expression.
8384         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
8385
8386 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
8387
8388         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
8389
8390 2011-08-02  Richard Henderson  <rth@redhat.com>
8391
8392         PR target/49878
8393         * config/h8300/h8300.c (h8300_move_ok): New.
8394         * config/h8300/h8300-protos.h: Declare it.
8395         * config/h8300/h8300.md (P): New mode iterator.
8396         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
8397         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
8398         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
8399         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
8400         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
8401         and pushqi1_h8300hs_normal; use PRE_MODIFY and
8402         register_no_sp_elim_operand.
8403         (*pushhi1_h8300hs_<P>): Similarly.
8404         (pushqi1, pushhi1, pushhi1_h8300): Remove.
8405         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
8406
8407 2011-08-02  Richard Henderson  <rth@redhat.com>
8408
8409         PR target/49881
8410         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
8411
8412 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
8413
8414         * c-parser.c (enum c_parser_prec): New enum, moved from within
8415         c_parser_binary_expression.
8416         (c_parser_binary_expression): Add PREC argument.  Stop parsing
8417         if operator has lower or equal precedence than PREC.
8418         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
8419         callers.
8420         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
8421         Adjust c_finish_omp_atomic caller.
8422         (c_parser_omp_taskyield): New function.
8423         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
8424         (c_parser_omp_clause_name): Handle final and mergeable clauses.
8425         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
8426         functions.
8427         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
8428         and PRAGMA_OMP_CLAUSE_MERGEABLE.
8429         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
8430         (c_parser_omp_clause_reduction): Handle min and max.
8431         * c-typeck.c (c_finish_omp_clauses): Don't complain about
8432         const qualified predetermined vars in firstprivate clause.
8433         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
8434         Handle MIN_EXPR and MAX_EXPR.
8435         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
8436         and OMP_CLAUSE_MERGEABLE.
8437         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
8438         and OMP_ATOMIC_CAPTURE_NEW.
8439         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
8440         OMP_CLAUSE_MERGEABLE.
8441         (omp_clause_code_name): Likewise.
8442         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
8443         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
8444         and OMP_CLAUSE_MERGEABLE.
8445         (OMP_CLAUSE_FINAL_EXPR): Define.
8446         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
8447         OMP_CLAUSE_MERGEABLE.
8448         (expand_task_call): Likewise.
8449         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
8450         (expand_omp_atomic_fetch_op): Handle cases where old or new
8451         value is needed afterwards.
8452         (expand_omp_atomic): Call expand_omp_atomic_load resp.
8453         expand_omp_atomic_store.
8454         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
8455         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
8456         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
8457         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
8458         * tree-nested.c (convert_nonlocal_omp_clauses,
8459         convert_local_omp_clauses): Likewise.
8460         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
8461         OMP_ATOMIC_CAPTURE_NEW): New.
8462         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
8463         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
8464         New inlines.
8465         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
8466         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
8467         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
8468
8469 2011-08-02  Kai Tietz  <ktietz@redhat.com>
8470
8471         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
8472         boolean-type.
8473         (ssa_forward_propagate_and_combine): Interprete result of
8474         forward_propagate_comparison.
8475         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
8476         boolean-typed operands for comparisons.
8477
8478 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
8479
8480         * config/avr/libgcc.S: Gather related function in the
8481         same input section.
8482         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
8483         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
8484         references.
8485         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
8486         __udivmodsi4, __divmodsi4, __prologue_saves__,
8487         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
8488         __do_copy_data, __do_clear_bss, __do_global_ctors,
8489         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
8490
8491 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
8492
8493         PR target/47766
8494         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
8495         (stack_protect_test): The pattern compares ptr_mode value.
8496
8497 2011-08-02  Alan Modra  <amodra@gmail.com>
8498
8499         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
8500         note for save_LR_around_toc_setup sequence.
8501
8502 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
8503
8504         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
8505
8506 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
8507             Joseph Myers  <joseph@codesourcery.com>
8508
8509         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
8510         * hwint.c: Include diagnostic-core.h.
8511         (abs_hwi): New.
8512         (gcd): Moved here...
8513         (pos_mul_hwi): New.
8514         (mul_hwi): New.
8515         (least_common_multiple): Moved here...
8516         * hwint.h (gcd): ... from here.
8517         (least_common_multiple): ... from here.
8518         (HOST_WIDE_INT_MIN): New.
8519         (HOST_WIDE_INT_MAX): New.
8520         (abs_hwi): Declared.
8521         (gcd): Declared.
8522         (pos_mul_hwi): Declared.
8523         (mul_hwi): Declared.
8524         (least_common_multiple): Declared.
8525         * omega.c (check_pos_mul): Removed.
8526         (check_mul): Removed.
8527         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
8528         mul_hwi instead of check_mul.
8529
8530 2011-08-01  Richard Henderson  <rth@redhat.com>
8531
8532         PR target/49881
8533         * config/avr/avr.h (PUSH_ROUNDING): New.
8534         * config/avr/avr.md (pushqi1): Rename from *pushqi.
8535         (*pushhi, *pushsi, *pushsf): Remove.
8536         (MPUSH): New mode iterator.
8537         (push<MPUSH>1): New expander.
8538
8539 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
8540
8541         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
8542         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
8543         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
8544         mmix_preferred_output_reload_class): Remove.
8545         * config/mmix/mmix.c (mmix_preferred_reload_class,
8546         mmix_preferred_output_reload_class): Make static. Change rclass
8547         argument and return type to reg_class_t.
8548         (TARGET_PREFERRED_RELOAD_CLASS,
8549         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
8550
8551 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
8552
8553         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
8554         handling.
8555
8556 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
8557
8558         PR target/47766
8559         * config/i386/i386.md (PTR): New.
8560         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
8561         (stack_protect_test): Likewise.
8562         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
8563         (stack_tls_protect_set_<mode>): Likewise.
8564         (stack_tls_protect_test_<mode>): Likewise.
8565
8566 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
8567
8568         PR target/49927
8569         * config/i386/i386.c (ix86_address_subreg_operand): New.
8570         (ix86_decompose_address): Use ix86_address_subreg_operand.
8571         (ix86_legitimate_address_p): Do not assert that subregs satisfy
8572         register_no_elim_operand in DImode.
8573
8574 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
8575
8576         PR tree-optimization/49926
8577         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
8578         in a chain doesn't have uses both inside and outside the loop.
8579
8580 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
8581
8582         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
8583         * config/avr/avr-devices.c (avr_mcu_types): Use it.
8584         * config/avr/avr-mcus.def (AVR_MCU): Use it.
8585         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
8586         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
8587         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
8588         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
8589         to detect if XJMP must not be skipped.
8590
8591 2011-08-02  Alan Modra  <amodra@gmail.com>
8592
8593         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
8594         Delete.
8595         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
8596         (rs6000_emit_prologue): Don't prematurely return when
8597         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
8598         save_toc_in_prologue case.
8599         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
8600         calls_alloca.
8601
8602 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
8603
8604         * config/avr/avr-devices.c: Delete SVN property svn:executable.
8605         * config/avr/predicates.md: Ditto.
8606         * config/avr/driver-avr.c: Ditto.
8607         * config/avr/genopt.sh: Set SVN property svn:executable to *.
8608
8609 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
8610
8611         * calls.c (emit_library_call_value_1): Declare size only if
8612         BLOCK_REG_PADDING is defined.
8613
8614 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
8615
8616         PR target/49547
8617         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
8618         (x86_64-*-*): Likewise.
8619         * config/i386/i386.opt (mlzcnt): New.
8620         * config/i386/abmintrin.h: File removed.
8621         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
8622         * config/i386/lzcntintrin.h: ... here.  New file.
8623         (__lzcnt): Rename to ...
8624         (__lzcnt32): ... this.
8625         * config/i386/bmiintrin.h (head): Update copyright year.
8626         (__lzcnt_u16): Removed.
8627         (__lzcnt_u32): Likewise.
8628         (__lzcnt_u64): Likewise.
8629         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
8630         is defined, remove abmintrin.h.
8631         * config/i386/cpuid.h (bit_LZCNT): New.
8632         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
8633         LZCNT feature.
8634         * config/i386/i386-c.c (ix86_target_macros_internal): Define
8635         __LZCNT__ if needed.
8636         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
8637         (ix86_option_override_internal): Handle LZCNT option.
8638         (ix86_valid_target_attribute_inner_p): Likewise.
8639         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
8640         * config/i386/i386.h (TARGET_LZCNT): New.
8641         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
8642         * config/i386/i386.md (clz<mode>2): Update insn constraint.
8643         (clz<mode>2_lzcnt): Likewise.
8644         * doc/invoke.texi: Mention -mlzcnt option.
8645         * doc/extend.texi: Likewise.
8646
8647 2011-08-01  Julian Brown  <julian@codesourcery.com>
8648
8649         * configure.ac (fixed-point): Add ARM support.
8650         * configure: Regenerate.
8651         * config/arm/arm.c (arm_fixed_mode_set): New struct.
8652         (arm_set_fixed_optab_libfunc): New.
8653         (arm_set_fixed_conv_libfunc): New.
8654         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
8655         ARM-specific names.
8656         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
8657         return values in SImode.
8658         (arm_return_in_msb): Return fixed-point types in the msb.
8659         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
8660         upwards.
8661         (arm_scalar_mode_supported_p): Support fixed-point modes.
8662         (arm_vector_mode_supported_p): Support vector fixed-point modes.
8663         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
8664         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
8665         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
8666         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
8667         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
8668         New mode iterators.
8669         (qaddsub_suf): New mode attribute.
8670         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
8671         vector modes.
8672         * config/arm/predicates.md (sat_shift_operator): New predicate.
8673         * config/arm/arm-fixed.md: New.
8674         * config/arm/arm.md: Include arm-fixed.md.
8675         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
8676
8677 2011-08-01  Julian Brown  <julian@codesourcery.com>
8678
8679         * calls.c (emit_library_call_value_1): Support padding for libcall
8680         arguments and return values.
8681         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
8682         downwards in big-endian mode.
8683
8684 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8685
8686         PR debug/49887
8687         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
8688         * config/sol2-protos.h: Likewise.
8689         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
8690         solaris_code_end.
8691         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
8692         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
8693         solaris_file_end.
8694         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
8695
8696 2011-08-01  Julian Brown  <julian@codesourcery.com>
8697
8698         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
8699
8700 2011-08-01  Julian Brown  <julian@codesourcery.com>
8701
8702         * final.c (output_addr_const): Print fixed-point constants as
8703         decimal not hex.
8704
8705 2011-08-01  Richard Guenther  <rguenther@suse.de>
8706
8707         * stor-layout.c (initialize_sizetypes): Properly sign-extend
8708         bitsiztype TYPE_MAX_VALUE.
8709
8710 2011-08-01  Julian Brown  <julian@codesourcery.com>
8711
8712         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
8713         comparison helpers.
8714
8715 2011-07-31  Richard Henderson  <rth@redhat.com>
8716
8717         * config/h8300/crti.asm: Add flags to .section directive.
8718         * config/h8300/crtn.asm: Likewise.
8719
8720 2011-07-31  Richard Henderson  <rth@redhat.com>
8721
8722         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
8723         * tree.c (build_common_tree_nodes): Likewise.
8724
8725 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
8726
8727         PR target/49880
8728         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
8729         (divsi3_i1): Likewise.
8730
8731 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8732
8733         PR tree-optimization/49749
8734         * tree-ssa-reassoc.c (get_rank): New forward declaration.
8735         (PHI_LOOP_BIAS): New macro.
8736         (phi_rank): New function.
8737         (loop_carried_phi): Likewise.
8738         (propagate_rank): Likewise.
8739         (get_rank): Add calls to phi_rank and propagate_rank.
8740
8741 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
8742
8743         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
8744         of TARGET_64BIT.
8745         (PTRDIFF_TYPE): Likewise.
8746
8747 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
8748
8749         PR target/49920
8750         * config/i386/i386.md (strset): Do not expand strset_singleop
8751         when %eax or $edi are fixed.
8752         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
8753         (*strsetsi_1): Ditto.
8754         (*strsethi_1): Ditto.
8755         (*strsetqi_1): Ditto.
8756         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
8757         (*rep_stossi): Ditto.
8758         (*rep_stosqi): Ditto.
8759         (*strlenqi_1): Ditto.
8760         (cmpstrnsi): Also fail when %ecx is fixed.
8761         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
8762         (*cmpstrnqi_1): Ditto.
8763         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
8764         (*strmovsi_1): Ditto.
8765         (*strmovhi_1): Ditto.
8766         (*strmovqi_1): Ditto.
8767         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
8768         (*rep_movsi): Ditto.
8769         (*rep_movqi): Ditto.
8770
8771 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
8772
8773         PR target/47908
8774         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
8775         Disable instruction scheduling for non-ColdFire targets.
8776         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
8777
8778 2011-07-31  Revital Eres  <revital.eres@linaro.org>
8779
8780         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
8781         of anti-dep edge from a branch.
8782         (add_cross_iteration_register_deps): Create anti-dep edge from
8783         a branch.
8784
8785 2011-07-31  Revital Eres  <revital.eres@linaro.org>
8786
8787         * modulo-sched.c: Change comment.
8788         (reset_sched_times): Fix print message.
8789         (print_partial_schedule): Add print info.
8790
8791 2011-07-31  Tom de Vries  <tom@codesourcery.com>
8792
8793         PR middle-end/43513
8794         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
8795         get_object_alignment and TYPE_ALIGN.
8796
8797 2011-07-30  Tom de Vries  <tom@codesourcery.com>
8798
8799         PR middle-end/43513
8800         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
8801         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
8802
8803 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8804
8805         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
8806         <sys/sbd.h>.
8807         (cpu_types): New array.
8808         (cputype): New function.
8809         (host_detect_local_cpu): Only define buf, f if !__sgi__.
8810         Use scaninvent instead of /proc/cpuinfo if __sgi__.
8811         * config.host: Also use driver-native.o, mips/x-native on
8812         mips-sgi-irix*.
8813         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
8814         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
8815         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
8816
8817 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
8818
8819         PR middle-end/49897
8820         PR middle-end/49898
8821         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
8822         in nested parallel and outer is a gimple_reg, mark it as addressable
8823         and set its bit in task_shared_vars bitmap too.
8824
8825 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
8826
8827         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
8828
8829 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8830
8831         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
8832         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
8833         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
8834         AMASK_LOCKPFTCHOK): Define.
8835         (host_detect_local_cpu): Remove buf, f, cpu_names.
8836         Define cpu_types, implver, amask.
8837         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
8838         native CPU.
8839         * config.host: Also use driver-alpha.o, alpha/x-alpha on
8840         alpha*-dec-osf*.
8841         * config/alpha/osf5.h [__alpha__ || __alpha]
8842         (host_detect_local_cpu): Declare.
8843         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
8844         (DRIVER_SELF_SPECS): Define.
8845
8846 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
8847
8848         PR target/47715
8849         * config/i386/i386.md (*load_tp_x32): New.
8850         (*load_tp_x32_zext): Ditto.
8851         (*add_tp_x32): Ditto.
8852         (*add_tp_x32_zext): Ditto.
8853         (*load_tp_<mode>): Disable for TARGET_X32 targets.
8854         (*add_tp_<mode>): Ditto.
8855         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
8856         ptr_mode and convert to Pmode if needed.
8857
8858 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
8859
8860         PR target/49687
8861         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
8862         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
8863         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
8864         Add X to register footprint: Clobber r26/r27.
8865
8866 2011-07-29  Richard Guenther  <rguenther@suse.de>
8867
8868         * builtins.c (fold_builtin_signbit): Build the comparison
8869         with a proper type.
8870
8871 2011-07-29  Richard Guenther  <rguenther@suse.de>
8872
8873         PR tree-optimization/49893
8874         * tree-predcom.c (suitable_reference_p): Volatile references
8875         are not suitable.
8876
8877 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
8878
8879         PR target/49313
8880         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
8881         (__ctzsi2): Result for 0 may be undefined.
8882         (__ctzhi2): Result for 0 may be undefined.
8883         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
8884         (__popcountsi2): Ditto. And don't clobber r26.
8885         (__popcountdi2): Ditto. And don't clobber r27.
8886         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
8887         (parityhi2): New expand.
8888         (paritysi2): New expand.
8889         (popcounthi2): New expand.
8890         (popcountsi2): New expand.
8891         (clzhi2): New expand.
8892         (clzsi2): New expand.
8893         (ctzhi2): New expand.
8894         (ctzsi2): New expand.
8895         (ffshi2): New expand.
8896         (ffssi2): New expand.
8897         (copysignsf3): New insn.
8898         (bswapsi2): New expand.
8899         (*parityhi2.libgcc): New insn.
8900         (*parityqihi2.libgcc): New insn.
8901         (*paritysihi2.libgcc): New insn.
8902         (*popcounthi2.libgcc): New insn.
8903         (*popcountsi2.libgcc): New insn.
8904         (*popcountqi2.libgcc): New insn.
8905         (*popcountqihi2.libgcc): New insn-and-split.
8906         (*clzhi2.libgcc): New insn.
8907         (*clzsihi2.libgcc): New insn.
8908         (*ctzhi2.libgcc): New insn.
8909         (*ctzsihi2.libgcc): New insn.
8910         (*ffshi2.libgcc): New insn.
8911         (*ffssihi2.libgcc): New insn.
8912         (*bswapsi2.libgcc): New insn.
8913
8914 2011-07-29  Richard Guenther  <rguenther@suse.de>
8915
8916         * tree-vrp.c (get_value_range): Only set parameter default
8917         definitions to varying, leave others at undefined.
8918         (extract_range_from_binary_expr): Fix undefined handling.
8919         (vrp_visit_phi_node): Handle merged undefined state.
8920
8921 2011-07-29  Wei Guozhi  <carrot@google.com>
8922
8923         PR rtl-optimization/49799
8924         * combine.c (make_compound_operation): Check if the bit field is valid
8925         before change it to bit field extraction.
8926
8927 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
8928
8929         PR rtl-optimization/49891
8930         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
8931         newly created returnjumps.
8932
8933 2011-07-28  DJ Delorie  <dj@redhat.com>
8934
8935         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
8936         local frame in a naked function, and produce a suitable error for
8937         that specific case.
8938
8939         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
8940         registers to be reloaded in HI classes when the target is HI.
8941
8942 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
8943
8944         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
8945         bound_one, bound_two.
8946
8947 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
8948
8949         PR middle-end/48648
8950         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
8951         CLAST assignments.
8952         (translate_clast): Same.
8953         (translate_clast_assignment): New.
8954
8955 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
8956
8957         PR tree-optimization/49876
8958         * sese.c (rename_uses): Do not return false on gloog_error: set
8959         the new_expr to integer_zero_node and continue code generation.
8960         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
8961
8962 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
8963
8964         PR debug/49846
8965         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
8966         arguments also check if they aren't initialized with a MODE_INT
8967         mode of the same size.
8968
8969 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
8970
8971         * expr.c (get_bit_range): Handle *MEM_REF's.
8972
8973 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
8974
8975         * rtlanal.c (tablejump_p): False for returns.
8976         * reorg.c (first_active_target_insn): New static function.
8977         (find_end_label): Set JUMP_LABEL for a new returnjump.
8978         (optimize_skip, get_jump_flags, rare_destination,
8979         mostly_true_jump, get_branch_condition,
8980         steal_delay_list_from_target, own_thread_p,
8981         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
8982         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
8983         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
8984         * jump.c (delete_related_insns): Likewise.
8985         (jump_to_label_p): New function.
8986         (redirect_target): New static function.
8987         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
8988         (redirect_jump_1): Assert that the new label is nonnull.
8989         (redirect_jump): Likewise.
8990         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
8991         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
8992         exit block.
8993         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
8994         changed.  Ensure that the right label is passed to redirect_jump.
8995         * function.c (emit_return_into_block,
8996         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
8997         ret_rtx in their JUMP_LABEL.
8998         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
8999         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
9000         pass ret_rtx as label.
9001         * cfglayout.c (fixup_reorder_chain): Use
9002         force_nonfallthru_and_redirect rather than force_nonfallthru.
9003         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
9004         * rtl.h (ANY_RETURN_P): New macro.
9005         (jump_to_label_p): Declare.
9006         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
9007         JUMP_LABELs.
9008         (mark_target_live_regs): Likewise.
9009         * basic-block.h (force_nonfallthru_and_redirect): Declare.
9010         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
9011         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
9012         alpha_tablejump_best_label): Remove functions.
9013         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
9014         alpha_tablejump_best_label): Remove declarations.
9015         * config/sh/sh.c (barrier_align, split_branches): Adjust for
9016         ret_rtx in JUMP_LABELs.
9017         * config/arm/arm.c (is_jump_table): Likewise.
9018
9019 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
9020
9021         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
9022         special predicate.  Remove explicit mode checks.
9023
9024 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
9025
9026         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
9027         DW_AT_data_member_location containing just DW_OP_plus_uconst.
9028
9029         PR debug/49871
9030         * dwarf2out.c (size_of_die, value_format, output_die): Use
9031         DW_FORM_udata instead of DW_FORM_data[48] for
9032         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
9033
9034 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
9035
9036         * config/i386/i386.md (*tls_global_dynamic_64): Update
9037         length attribute.
9038
9039 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
9040
9041         PR target/47715
9042         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
9043         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
9044         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
9045         (tls_dynamic_gnu2_64): Ditto.
9046         (*tls_dynamic_gnu2_lea_64): Ditto.
9047         (*tls_dynamic_gnu2_call_64): Ditto.
9048         (*tls_dynamic_gnu2_combine_64): Ditto.
9049
9050 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
9051
9052         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
9053
9054 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
9055
9056         PR target/47364
9057         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
9058
9059 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9060
9061         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
9062         before the core constraints. Adjust attributes.
9063         ("*thumb2_movdf_vfp"): Likewise.
9064
9065 2011-07-28  Kai Tietz  <ktietz@redhat.com>
9066
9067         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
9068         (simplify_truth_ops_using_ranges): Likewise.
9069         (build_assert_expr_for): Likewise.
9070         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
9071         and handle BIT_NOT_EXPR for truth-operation.
9072
9073 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
9074
9075         PR target/49313
9076         Undo r176835 from trunk
9077         2011-07-27  Georg-Johann Lay
9078
9079 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
9080
9081         PR target/49687
9082         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
9083         Add _muluhisi3, _mulshisi3, _usmulhisi3.
9084         * config/avr/libgcc.S (__mulsi3): Rewrite.
9085         (__mulhisi3): Rewrite.
9086         (__umulhisi3): Rewrite.
9087         (__usmulhisi3): New.
9088         (__muluhisi3): New.
9089         (__mulshisi3): New.
9090         (__mulohisi3): New.
9091         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
9092         declare.
9093         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
9094         (pseudo_register_or_const_int_operand): New.
9095         (combine_pseudo_register_operand): New.
9096         (u16_operand): New.
9097         (s16_operand): New.
9098         (o16_operand): New.
9099         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
9100         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
9101         (any_extend, any_extend2): New code iterators.
9102         (extend_prefix): New code attribute.
9103         (mulsi3): Rewrite. Turn insn to expander.
9104         (mulhisi3): Ditto.
9105         (umulhisi3): Ditto.
9106         (usmulhisi3): New expander.
9107         (*mulsi3): New insn-and-split.
9108         (mulu<mode>si3): New insn-and-split.
9109         (muls<mode>si3): New insn-and-split.
9110         (mulohisi3): New insn-and-split.
9111         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
9112         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
9113         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
9114         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
9115         insn-and-split.
9116         (*mulsi3_call): Rewrite.
9117         (*mulhisi3_call): Rewrite.
9118         (*umulhisi3_call): Rewrite.
9119         (*usmulhisi3_call): New insn.
9120         (*muluhisi3_call): New insn.
9121         (*mulshisi3_call): New insn.
9122         (*mulohisi3_call): New insn.
9123         (extendqihi2): Use combine_pseudo_register_operand as predicate
9124         for operand 1.
9125         (extendqisi2): Ditto.
9126         (zero_extendqihi2): Ditto.
9127         (zero_extendqisi2): Ditto.
9128         (zero_extendhisi2): Ditto.
9129         (extendhisi2): Ditto. Don't early-clobber operand 0.
9130
9131 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
9132
9133         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
9134
9135 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
9136
9137         PR tree-optimization/49471
9138         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
9139         iv only when the largest type is unsigned.  Do not call
9140         lang_hooks.types.type_for_size.
9141
9142 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
9143
9144         PR middle-end/45450
9145         * graphite-poly.c (apply_poly_transforms): Disable legality check
9146         after an openscop read.
9147
9148 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
9149
9150         PR middle-end/47691
9151         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
9152         copy_bb_and_scalar_dependences.
9153         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
9154         (graphite_copy_stmts_from_block): Update call to rename_uses.
9155         (copy_bb_and_scalar_dependences): Update call to
9156         graphite_copy_stmts_from_block.
9157         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
9158
9159 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
9160
9161         PR target/49313
9162         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
9163         (__ctzsi2): Result for 0 may be undefined.
9164         (__ctzhi2): Result for 0 may be undefined.
9165         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
9166         (__popcountsi2): Ditto. And don't clobber r26.
9167         (__popcountdi2): Ditto. And don't clobber r27.
9168         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
9169         (parityhi2): New expand.
9170         (paritysi2): New expand.
9171         (popcounthi2): New expand.
9172         (popcountsi2): New expand.
9173         (clzhi2): New expand.
9174         (clzsi2): New expand.
9175         (ctzhi2): New expand.
9176         (ctzsi2): New expand.
9177         (ffshi2): New expand.
9178         (ffssi2): New expand.
9179         (copysignsf3): New insn.
9180         (bswapsi2): New expand.
9181         (*parityhi2.libgcc): New insn.
9182         (*parityqihi2.libgcc): New insn.
9183         (*paritysihi2.libgcc): New insn.
9184         (*popcounthi2.libgcc): New insn.
9185         (*popcountsi2.libgcc): New insn.
9186         (*popcountqi2.libgcc): New insn.
9187         (*popcountqihi2.libgcc): New insn-and-split.
9188         (*clzhi2.libgcc): New insn.
9189         (*clzsihi2.libgcc): New insn.
9190         (*ctzhi2.libgcc): New insn.
9191         (*ctzsihi2.libgcc): New insn.
9192         (*ffshi2.libgcc): New insn.
9193         (*ffssihi2.libgcc): New insn.
9194         (*bswapsi2.libgcc): New insn.
9195
9196 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
9197
9198         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
9199         the mode of symbolic_opreand RTXes.
9200
9201 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
9202
9203         * config/i386/predicates.md (x86_64_movabs_operand): Return false
9204         for pic_32bit_operand RTXes.
9205         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
9206         in DImode.
9207
9208 2011-07-27  Kai Tietz  <ktietz@redhat.com>
9209
9210         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
9211         for 32-bit, too.
9212         (ix86_handle_abi_attribute): Allow function attributes
9213         ms_abi/sysv_abi in 32-bit mode, too.
9214         * doc/extend.texi: Adjust attribute documentation.
9215
9216         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
9217         expression handling.
9218         (and_var_with_comparison_1): Likewise.
9219
9220 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
9221
9222         * params.h (ALLOW_STORE_DATA_RACES): New.
9223         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
9224         * Makefile.in (expr.o): Depend on PARAMS_H.
9225         * machmode.h (get_best_mode): Add argument.
9226         * fold-const.c (optimize_bit_field_compare): Add argument to
9227         get_best_mode.
9228         (fold_truthop): Same.
9229         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
9230         * expr.c (emit_group_store): Same.
9231         (copy_blkmode_from_reg): Same.
9232         (write_complex_part): Same.
9233         (optimize_bitfield_assignment_op): Add argument.
9234         Add argument to get_best_mode.
9235         (get_bit_range): New.
9236         (expand_assignment): Calculate maxbits and pass it down accordingly.
9237         (store_field): New argument.
9238         (expand_expr_real_2): New argument to store_field.  Include params.h.
9239         * expr.h (store_bit_field): New argument.
9240         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
9241         into account maxbits.
9242         * calls.c (store_unaligned_arguments_into_pseudos): New argument
9243         to store_bit_field.
9244         * expmed.c (store_bit_field_1): New argument.  Use it.
9245         (store_bit_field): Same.
9246         (store_fixed_bit_field): Same.
9247         (store_split_bit_field): Same.
9248         (extract_bit_field_1): Pass new argument to get_best_mode.
9249         (extract_bit_field): Same.
9250         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
9251         * doc/invoke.texi: Document parameter allow-store-data-races.
9252
9253 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
9254
9255         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
9256
9257 2011-07-27  Kai Tietz  <ktietz@redhat.com>
9258
9259         * tree-vrp.c (extract_range_from_binary_expr): Remove
9260         TRUTH-binary cases and add new bitwise-cases.
9261         (extract_range_from_assignment): Likewise.
9262         (register_edge_assert_for_1): Likeiwise.
9263         (register_edge_assert_for): Likewise.
9264         (simplify_truth_ops_using_ranges): Likewise.
9265         (simplify_stmt_using_ranges): Likewise.
9266
9267 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
9268
9269         PR target/47372
9270         * config/i386/i386.c (ix86_delegitimize_address): Call
9271         simplify_gen_subreg for PIC with mode of x only if modes of
9272         x and orig_x are different.
9273
9274 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
9275
9276         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
9277         to GC allocated copy of the string.
9278         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
9279         before .debug_line, not after it.
9280
9281 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
9282
9283         PR middle-end/47046
9284         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
9285         evolution_function_is_affine_p on CHREC_RIGHT.
9286
9287 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
9288
9289         * tree-data-ref.c (max_stmt_executions_tree): Do not call
9290         lang_hooks.types.type_for_size.
9291
9292 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
9293
9294         PR middle-end/47653
9295         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
9296         loops using wrapping semantics.
9297
9298 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
9299
9300         PR middle-end/48805
9301         * tree-scalar-evolution.c (instantiate_scev_r): Return
9302         chrec_dont_know for ADDR_EXPR.
9303
9304 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
9305             H.J. Lu  <hongjiu.lu@intel.com>
9306
9307         PR target/47369
9308         PR target/49853
9309         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
9310         if legitimize_tls_address returned operand in wrong mode. Allow
9311         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
9312         if legitimize_pic_address returned operand in wrong mode.
9313
9314 2011-07-26  Martin Jambor  <mjambor@suse.cz>
9315
9316         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
9317         return false for invariants.
9318
9319 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
9320
9321         * config/i386/i386.md (add->lea splitter): Implement using SWI
9322         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
9323         (add->lea zext splitter): Change operand 2 predicate to
9324         x86_64_nonmemory_operand.
9325
9326 2011-07-26  Richard Guenther  <rguenther@suse.de>
9327
9328         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
9329         frequency makes everything hot.
9330
9331 2011-07-26  Richard Guenther  <rguenther@suse.de>
9332
9333         PR tree-optimization/49840
9334         * tree-vrp.c (range_fits_type_p): Properly handle full
9335         double-int precision.
9336
9337 2011-07-26  Martin Jambor  <mjambor@suse.cz>
9338
9339         PR bootstrap/49786
9340         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
9341         counts.
9342         (update_specialized_profile): Likewise.
9343
9344 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
9345             H.J. Lu  <hongjiu.lu@intel.com>
9346
9347         PR target/47381
9348         PR target/49832
9349         PR target/49833
9350         * config/i386/i386.md (i): Change SImode attribute to "e".
9351         (g): Change SImode attribute to "rme".
9352         (di): Change SImode attribute to "nF".
9353         (general_operand): Change SImode attribute to x86_64_general_operand.
9354         (general_szext_operand): Change SImode attribute to
9355         x86_64_szext_general_operand.
9356         (immediate_operand): Change SImode attribute to
9357         x86_64_immediate_operand.
9358         (nonmemory_operand): Change SImode attribute to
9359         x86_64_nonmemory_operand.
9360         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
9361         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
9362         (*lea_1): Use SWI48 mode iterator.
9363         (*lea_1_zext): New insn pattern.
9364         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
9365         (*bt<mode>): Ditto.
9366         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
9367         Update operand constraints.
9368         (addsi_1_zext): Ditto.
9369         (*add<mode>2): Ditto.
9370         (*addsi_3_zext): Ditto.
9371         (*subsi_1_zext): Ditto.
9372         (*subsi_2_zext): Ditto.
9373         (*subsi_3_zext): Ditto.
9374         (*addsi3_carry_zext): Ditto.
9375         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
9376         (*mulsi3_1_zext): Ditto.
9377         (*andsi_1): Ditto.
9378         (*andsi_1_zext): Ditto.
9379         (*andsi_2_zext): Ditto.
9380         (*<any_or:code>si_1_zext): Ditto.
9381         (*<any_or:code>si_2_zext): Ditto.
9382         (*test<mode>_1): Use <general_operand> predicate for operand 1.
9383         (*and<mode>_2): Ditto.
9384         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
9385         (add->lea splitter): Check operand modes in insn constraint.  Extend
9386         operands less than SImode wide to SImode.
9387         (add->lea zext splitter): Do not extend input operands to DImode.
9388         (*lea_general_1): Handle only QImode and HImode operands.
9389         (*lea_general_2): Ditto.
9390         (*lea_general_3): Ditto.
9391         (*lea_general_1_zext): Remove.
9392         (*lea_general_2_zext): Ditto.
9393         (*lea_general_3_zext): Ditto.
9394         (*lea_general_4): Check operand modes in insn constraint.  Extend
9395         operands less than SImode wide to SImode.
9396         (ashift->lea splitter): Ditto.
9397         * config/i386/i386.c (ix86_print_operand_address): Print address
9398         registers with 'q' modifier on 64bit targets.
9399         * config/i386/predicates.md (pic_32bit_opreand): Define as special
9400         predicate.  Reject non-SI and non-DI modes.
9401
9402 2011-07-25  Andrew Pinski  <apinski@cavium.com>
9403
9404         PR tree-opt/49671
9405         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
9406         TREE_THIS_NOTRAP into the inner most MEM_REF.
9407         Always copy TREE_THIS_VOLATILE.
9408         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
9409         arguments are not volatile references.
9410
9411 2011-07-25  Richard Henderson  <rth@redhat.com>
9412
9413         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
9414         * final.c (final_scan_insn): Don't test for it.
9415         (rest_of_clean_state): Likewise.
9416
9417 2011-07-25  Richard Henderson  <rth@redhat.com>
9418
9419         PR debug/49841
9420         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
9421         (emit_frame_save): Likewise.
9422         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
9423         insn onto a dummy blockage insn after the join label.
9424
9425 2011-07-25  Richard Henderson  <rth@redhat.com>
9426
9427         * dwarf2cfi.c (dw_trace_info): Add ID member.
9428         (get_trace_index): Remove.  Change users to use ID member.
9429         (before_next_cfi_note): New.
9430         (connect_traces): Remove unreachable traces before the main loop.
9431         Look across one trace and generate remember/restore_state if needed.
9432
9433 2011-07-25  Richard Henderson  <rth@redhat.com>
9434
9435         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
9436
9437 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
9438
9439         * genattr.c (write_upcase, gen_attr <enum definition writing>):
9440         Move to ...
9441         * genattr-common.c ... here.
9442         (main): Call gen_attr.
9443         * optc-gen.awk: Make generated program include insn-attr-common.h .
9444         * Makefile.in (oprions.o): Depend on insn-attr-common.h
9445
9446 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
9447
9448         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
9449         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
9450         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
9451         m32c_print_operand, m32c_print_operand_address): Remove.
9452         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
9453         Change return type to bool. Change argument type to bool.
9454         (m32c_print_operand, m32c_print_operand_address): Make static.
9455         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
9456         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
9457
9458 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9459
9460         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
9461         attributes): Document mmap.
9462
9463 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
9464
9465         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
9466         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
9467         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
9468         mmix_print_operand, mmix_print_operand_address): Remove.
9469         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
9470         Change return type to bool. Change argument type to bool.
9471         (mmix_print_operand, mmix_print_operand_address): Make static.
9472         (mmix_intval, mmix_output_condition): Change 'x' argument type
9473         to const_rtx.
9474         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
9475         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
9476
9477 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
9478
9479         PR target/39386
9480         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
9481         shift counter for x << x and x >> x shifts.
9482
9483 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9484
9485         PR target/47124
9486         * config.gcc: Reject *-*-solaris2 configuration.
9487
9488 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
9489
9490         PR tree-optimization/49809
9491         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
9492         gimple_get_lhs instead of gimple_assign_lhs.
9493
9494 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9495
9496         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
9497
9498 2011-07-25  Richard Guenther  <rguenther@suse.de>
9499
9500         PR tree-optimization/49822
9501         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
9502         more.  Make sure to preserve stmts with side-effects.  Properly
9503         handle virtual defs, follow a longer def chain.
9504
9505 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
9506
9507         PR plugins/45348
9508         PR plugins/48425
9509         PR plugins/46577
9510         * Makefile.in: Do not flatten c-family directory when installing
9511         plugin headers.
9512
9513 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
9514
9515         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
9516         original nodes if we are dealing with virtual clones.
9517
9518 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
9519
9520         * common/config/c6x/c6x-common.c: New file.
9521
9522 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
9523
9524         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
9525
9526 2011-07-25  Richard Guenther  <rguenther@suse.de>
9527
9528         PR tree-optimization/49715
9529         * tree-vrp.c: Include expr.h and optabs.h.
9530         (range_fits_type_): New function.
9531         (simplify_float_conversion_using_ranges): Likewise.
9532         (simplify_stmt_using_ranges): Call it.
9533         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
9534         * optabs.c (can_float_p): Export.
9535         * optabs.h (can_float_p): Declare.
9536
9537 2011-07-25  Richard Guenther  <rguenther@suse.de>
9538
9539         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
9540         (get_value_range): For out-of-range SSA names or names created
9541         after propagation return a read-only varying range.
9542         (dump_all_value_ranges): Adjust.
9543         (vrp_initialize): Likewise.
9544         (vrp_finalize): Likewise.
9545
9546 2011-07-24  Richard Henderson  <rth@redhat.com>
9547
9548         PR debug/49831
9549         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
9550         them entirely.
9551
9552 2011-07-24  Richard Henderson  <rth@redhat.com>
9553
9554         PR debug/49825
9555         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
9556         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
9557
9558 2011-07-24  Richard Henderson  <rth@redhat.com>
9559
9560         PR debug/49827
9561         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
9562
9563 2011-07-24  Richard Henderson  <rth@redhat.com>
9564
9565         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
9566         Zero args_size for abnormal edges.  Adjust all callers.
9567
9568 2011-07-24  Richard Henderson  <rth@redhat.com>
9569
9570         PR debug/49825
9571         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
9572
9573 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
9574
9575         PR bootstrap/49835
9576         * collect2.c (demangle_flag): Removed.
9577
9578 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
9579
9580         * configure.ac (demangler_in_ld): Default to yes.
9581         * configure: Regenerated.
9582         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
9583         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
9584         --no-demangle options straight through to ld.  When
9585         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
9586         way that has the intended effect on Windows.
9587
9588 2011-07-23  Richard Henderson  <rth@redhat.com>
9589
9590         * dwarf2cfi.c: Include basic-block.h.
9591         (dw_label_info): Remove.
9592         (trace_work_list, trace_index): New.
9593         (remember_row, emit_cfa_remember): Remove.
9594         (dw_trace_info_hash, dw_trace_info_eq): New.
9595         (get_trace_index, get_trace_info): New.
9596         (save_point_p): New.
9597         (free_cfi_row): Remove.
9598         (add_cfi): Do not emit DW_CFA_remember_state.
9599         (cfa_row_equal_p): New.
9600         (barrier_args_size): Remove.
9601         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
9602         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
9603         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
9604         (dwarf2out_cfi_begin_epilogue): Remove.
9605         (dwarf2out_frame_debug_restore_state): Remove.
9606         (connect_traces, create_pseudo_cfg): New.
9607         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
9608         * Makefile.in (dwarf2cfi.o): Update.
9609
9610 2011-07-23  Richard Henderson  <rth@redhat.com>
9611
9612         * dwarf2cfi.c (dw_trace_info): New.
9613         (dw_label_info): New.
9614         (cie_return_save): New.
9615         (cur_trace): New.
9616         (queued_args_size): Rename from args_size.  Update all users.
9617         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
9618         (def_cfa_1): Use cur_trace instead of cfa_*.
9619         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
9620         (clobbers_queued_reg_save, reg_saved_in): Likewise.
9621         (dwarf2out_frame_debug_expr): Likewise.
9622         (create_cie_data): Split out from ...
9623         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
9624
9625 2011-07-23  Richard Henderson  <rth@redhat.com>
9626
9627         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
9628         Update all users to match.
9629         (execute_dwarf2_frame): Free reg_saved_in_data.
9630
9631 2011-07-23  Richard Henderson  <rth@redhat.com>
9632
9633         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
9634         (queued_reg_saves): Don't GTY.  Change to a VEC.
9635         (queue_reg_save): Update to match.
9636         (dwarf2out_flush_queued_reg_saves): Likewise.
9637         (clobbers_queued_reg_save): Likewise.
9638         (reg_saved_in): Likewise.
9639         (execute_dwarf2_frame): Free queued_reg_saves.
9640
9641 2011-07-23  Richard Henderson  <rth@redhat.com>
9642
9643         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
9644
9645 2011-07-23  Richard Henderson  <rth@redhat.com>
9646
9647         * dwarf2cfi.c (add_cfi_args_size): Split out from...
9648         (dwarf2out_args_size): ... here.
9649         (add_cfi_restore): Split out from ...
9650         (dwarf2out_frame_debug_cfa_restore): ... here.
9651         (def_cfa_0): Split out from ...
9652         (def_cfa_1): ... here.
9653         (cfi_oprnd_equal_p, cfi_equal_p): New.
9654         (change_cfi_row): New.
9655         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
9656         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
9657         (output_cfis): Remove.
9658         * dwarf2out.c (output_fde): Simplify output_cfi loop.
9659         (dwarf2out_switch_text_section): Don't call output_cfis.
9660         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
9661         * dwarf2out.h: Update decls.
9662         (enum dw_val_class): Add dw_val_class_none.
9663
9664 2011-07-23  Richard Henderson  <rth@redhat.com>
9665
9666         * dwarf2cfi.c (update_row_reg_save): New.
9667         (dwarf2out_frame_debug_cfa_expression): Use it.
9668         (dwarf2out_frame_debug_cfa_restore): Likewise.
9669         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
9670
9671 2011-07-23  Richard Henderson  <rth@redhat.com>
9672
9673         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
9674
9675 2011-07-23  Richard Henderson  <rth@redhat.com>
9676
9677         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
9678         (cie_cfi_row): New.
9679         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
9680         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
9681         (cur_row, remember_row): New.
9682         (def_cfa_1): Use cur_row instead of the old_* variables.
9683         (dwarf2out_frame_debug_restore_state): Similarly.
9684         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
9685         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
9686         (dwarf2out_frame_debug_adjust_cfa): Likewise.
9687         (dwarf2out_frame_debug_cfa_offset): Likewise.
9688         (dwarf2out_frame_debug_expr): Likewise.
9689         (execute_dwarf2_frame): Set up cur_row.
9690         * dwarf2out.h (struct cfa_loc): Mark for GTY.
9691
9692 2011-07-23  Richard Henderson  <rth@redhat.com>
9693
9694         * basic-block.h (EDGE_PRESERVE): New.
9695         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
9696         * bb-reorder.c: Include except.h.
9697         (fix_up_crossing_landing_pad): New.
9698         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
9699         landing pads in the right partition.  Duplicate as necessary.
9700         (partition_hot_cold_basic_blocks): Fix up DF info after
9701         duplicating landing pads.
9702         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
9703         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
9704         is set properly.  Validate that EH edges are not CROSSING.
9705         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
9706         (dw2_build_landing_pads): ... here.
9707         (convert_to_eh_region_ranges): Remove code to fixup crossing
9708         landing pads.
9709         * except.h (expand_dw2_landing_pad_for_region): Declare.
9710         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
9711
9712 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
9713
9714         PR target/49816
9715         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
9716
9717 2011-07-22  Jason Merrill  <jason@redhat.com>
9718
9719         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
9720
9721 2011-07-22  Richard Henderson  <rth@redhat.com>
9722
9723         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
9724
9725 2011-07-22  Richard Henderson  <rth@redhat.com>
9726
9727         * jump.c (maybe_propagate_label_ref): Split out of...
9728         (mark_all_labels): ... here.  Do not attempt label_ref
9729         propagation while in cfglayout mode.
9730
9731 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
9732
9733         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
9734         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
9735         (dwarf_attr_name): Handle DW_AT_GNU_macros.
9736         (dwarf2out_define): If the vector is empty and
9737         lineno is 0, emit a dummy entry first.
9738         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
9739         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
9740         optimize_macinfo_range): New functions.
9741         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
9742         mergeable, optimize longer strings using
9743         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
9744         optimize longer sequences of define/undef ops from headers
9745         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
9746         emit a section headers.
9747         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
9748         and macinfo_section_label to DEBUG_MACRO_SECTION
9749         resp. DEBUG_MACRO_SECTION_LABEL.
9750         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
9751         instead of DW_AT_macro_info.
9752
9753         PR other/32998
9754         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
9755         options.
9756         * dwarf2out.c: Include opts.h.
9757         (dchar_p): New typedef.  Define heap VEC for it.
9758         (producer_string): New variable.
9759         (gen_producer_string): New function.
9760         (gen_compile_unit_die): Use it.
9761         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
9762         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
9763         * doc/invoke.texi: Document -grecord-gcc-switches and
9764         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
9765         to -frecord-gcc-switches description.
9766
9767 2011-07-22  Jason Merrill  <jason@redhat.com>
9768
9769         PR c++/30112
9770         * c-decl.c (c_linkage_bindings): Define.
9771
9772 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
9773
9774         PR debug/49815
9775         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
9776
9777 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
9778
9779         * config/i386/i386.c (ix86_option_override_internal): Disallow
9780         MS ABI in x32 mode.
9781         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
9782         only for TARGET_LP64.
9783         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
9784
9785 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
9786
9787         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
9788         avoid warnings when GCC is built with a C++ compiler.
9789
9790 2011-07-22  Martin Jambor  <mjambor@suse.cz>
9791
9792         PR lto/49796
9793         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
9794         if decl node is in another partition, call cgraph_get_node only once.
9795
9796 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
9797
9798         * config.gcc (x86_64-*-linux*): Set
9799         default_gnu_indirect_function to yes.
9800
9801 2011-07-22  Richard Guenther  <rguenther@suse.de>
9802
9803         PR tree-optimization/45819
9804         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
9805         preserve volatile and notrap flags.
9806
9807 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9808             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9809
9810         PR bootstrap/49794
9811         * configure.ac: Test AM_ICONV with CXX.
9812         * configure: Regenerate.
9813         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
9814
9815 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9816
9817         PR bootstrap/49797
9818         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
9819         (set_cloog_options): Use it.
9820
9821 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
9822
9823         PR c++/49756
9824         * gcc.c (main): Call stack_limit_increase (64MB).
9825         * toplev.c (toplev_main): Likewise.
9826
9827 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
9828
9829         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
9830         instead of force_reg.
9831
9832 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
9833
9834         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
9835         needed and use force_reg after convert.
9836         (ix86_expand_call): Likewise.
9837         (ix86_expand_special_args_builtin): Likewise.
9838         (ix86_expand_builtin): Likewise.
9839
9840 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
9841
9842         PR middle-end/47654
9843         PR middle-end/49649
9844         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
9845         in parameter.  Initialize v1 and v2 based on the values returned
9846         by clast_name_to_lb_ub.
9847         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
9848         values.
9849         (type_for_clast_bin): Same.
9850         (type_for_clast_expr): Same.
9851         (type_for_clast_eq): Update calls to type_for_clast_expr.
9852         (type_for_clast_for): Same.
9853         (build_iv_mapping): Same.
9854         * graphite-ppl.h (value_min): New.
9855
9856 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
9857
9858         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
9859         types whenever possible.
9860
9861 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
9862
9863         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
9864         and ub fields.
9865         (new_clast_name_index): Add lb and ub parameters.
9866         (free_clast_name_index): New.
9867         (clast_name_to_lb_ub): New.
9868         (save_clast_name_index): Add lb and ub parameters.
9869         (compute_bounds_for_param): New.
9870         (type_for_level): Removed.
9871         (type_for_clast_for): Removed level parameter.  Do not call
9872         type_for_level.
9873         (graphite_create_new_loop): Store the lb and ub for the clast_name
9874         of the iterator of the loop that has been generated.
9875         (graphite_create_new_loop_guard): Remove parameter level.
9876         (create_params_index): Store the lb and ub of each parameter.
9877         (gloog): Use free_clast_name_index.  Pass to create_params_index
9878         the current scop.
9879
9880 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
9881
9882         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
9883         (max_precision_type): Inline max_signed_precision_type.
9884         (type_for_clast_red): Use max_precision_type.
9885         (type_for_clast_bin): Same.
9886         (type_for_clast_for): Same.
9887
9888 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
9889
9890         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
9891         type_for_interval.
9892         (gcc_type_for_value): Renamed type_for_value.
9893         (gcc_type_for_clast_term): Renamed type_for_clast_term.
9894         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
9895         (gcc_type_for_clast_red): Renamed type_for_clast_red.
9896         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
9897         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
9898         (graphite_translate_clast_equation): Update calls.
9899         (compute_type_for_level): Renamed type_for_level.
9900         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
9901         (build_iv_mapping): Update calls.
9902         (graphite_create_new_loop_guard): Same.
9903
9904 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
9905
9906         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
9907         comment.
9908
9909 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
9910
9911         * graphite-clast-to-gimple.c (struct ivs_params): New.
9912         (clast_name_to_gcc): Use ivs_params to pass around parameters.
9913         (clast_to_gcc_expression): Same.
9914         (clast_to_gcc_expression_red): Same.
9915         (gcc_type_for_clast_term): Same.
9916         (gcc_type_for_clast_expr): Same.
9917         (gcc_type_for_clast_red): Same.
9918         (gcc_type_for_clast_bin): Same.
9919         (gcc_type_for_clast_eq): Same.
9920         (graphite_translate_clast_equation): Same.
9921         (graphite_create_guard_cond_expr): Same.
9922         (graphite_create_new_guard): Same.
9923         (graphite_create_new_loop): Same.
9924         (build_iv_mapping): Same.
9925         (translate_clast_user): Same.
9926         (graphite_create_new_loop_guard): Same.
9927         (translate_clast): Same.
9928         (translate_clast_for_loop): Same.
9929         (translate_clast_for): Same.
9930         (translate_clast_guard): Same.
9931         (initialize_cloog_names): Fix typo.
9932         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
9933
9934 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
9935
9936         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
9937         (new_clast_name_index): Add level parameter.
9938         (clast_name_to_level): New.
9939         (save_clast_name_index): Add level parameter.
9940         (newivs_to_depth_to_newiv): Removed.
9941         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
9942         (graphite_create_new_loop): Add level parameter.  Pass level to
9943         save_clast_name_index.
9944         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
9945         (create_params_index): Pass level to save_clast_name_index.
9946
9947 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
9948
9949         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
9950         recompute type, lb, and ub.  Get them from...
9951         (graphite_create_new_loop_guard): ...here.  Pass in parameter
9952         pointers to type, lb, and ub.
9953         (translate_clast_for_loop): Update function calls.
9954         (translate_clast_for): Same.
9955
9956 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
9957
9958         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
9959         psct_dynamic_dim.
9960         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
9961         (gcc_type_for_iv_of_clast_loop): Update use of level.
9962         (gloog): Start counting nesting level from 0.
9963         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
9964         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
9965         psct_dynamic_dim on level.
9966
9967 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
9968
9969         * config/i386/i386.c (ix86_legitimize_address): Convert to
9970         Pmode if needed.
9971
9972 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
9973
9974         * config/i386/i386.c (function_value_64): Always return pointers
9975         in Pmode.
9976         (ix86_promote_function_mode): New.
9977         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
9978
9979 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9980
9981         PR tree-optimization/49749
9982         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
9983         remove no-longer-used maxrank variable.
9984
9985 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
9986
9987         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
9988
9989 2011-07-21  Jason Merrill  <jason@redhat.com>
9990
9991         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
9992         * recog.h (struct insn_data_d): Check it instead of
9993         HAVE_DESIGNATED_INITIALIZERS.
9994         * genoutput.c (output_insn_data): Likewise.
9995
9996 2011-07-21  Richard Guenther  <rguenther@suse.de>
9997
9998         PR tree-optimization/49770
9999         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
10000         valueized any operand.  Renamed from ...
10001         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
10002         (valueize_shared_reference_ops_from_ref): Return whether we
10003         valueized any operand.
10004         (vn_reference_lookup): Only when we valueized any operand
10005         use the valueized reference for alias analysis.  Do not preserve
10006         the original reference tree in this case.
10007
10008 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
10009
10010         * config/i386/i386.c (ix86_decompose_address): Reject all but
10011         register operands and subregs of DImode hard registers in index.
10012
10013 2011-07-21  Kai Tietz  <ktietz@redhat.com>
10014
10015         * fold-const.c (fold_unary_loc): Preserve indirect
10016         comparison cast to none-boolean type.
10017         * tree-ssa.c (useless_type_conversion_p): Preserve cast
10018         from/to boolean-type.
10019         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
10020         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
10021         * tree-cfg.c (verify_gimple_comparison): Check result
10022         type of comparison expression.
10023         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
10024         of condition result and disallow type-cast sinking into comparison.
10025
10026 2011-07-21  Richard Guenther  <rguenther@suse.de>
10027
10028         * tree-ssa-forwprop.c (combine_conversions): Return whether
10029         we have to run cfg-cleanup.  Properly remove dead stmts.
10030         (ssa_forward_propagate_and_combine): Adjust.
10031
10032 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
10033
10034         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
10035
10036 2011-07-21  Kai Tietz  <ktietz@redhat.com>
10037
10038         * tree-ssa-propagate.c (substitute_and_fold): Use
10039         do_dce flag to deside, if BB's statements are scanned
10040         in last to first, or first to last order.
10041
10042 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
10043
10044         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
10045
10046 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
10047             Uros Bizjak  <ubizjak@gmail.com>
10048             Richard Henderson  <rth@redhat.com>
10049
10050         * config/i386/constraints.md (w): New.
10051
10052         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
10053         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
10054
10055         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
10056         instead of TARGET_64BIT.
10057
10058         * config/i386/i386.md (indirect_jump): Replace
10059         nonimmediate_operand with indirect_branch_operand.
10060         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
10061         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
10062         Convert operand 0 to Pmode for x32 if not PIC.
10063         (*tablejump_1): Replace nonimmediate_operand with
10064         indirect_branch_operand.  Replace constraint "m" with "w".
10065         (*call_vzeroupper): Replace constraint "m" with "w".
10066         (*call): Likewise.
10067         (*call_rex64_ms_sysv_vzeroupper): Likewise.
10068         (*call_rex64_ms_sysv): Likewise.
10069         (*call_value_vzeroupper): Likewise.
10070         (*call_value): Likewise.
10071         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
10072         (*call_value_rex64_ms_sysv): Likewise.
10073         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
10074
10075         * config/i386/predicates.md (indirect_branch_operand): New.
10076         (call_insn_operand): Support x32.
10077
10078 2011-07-20  Michael Eager  <eager@eagercon.com>
10079
10080         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
10081
10082 2011-07-20  Richard Henderson  <rth@redhat.com>
10083
10084         * cfg.c (dump_bb_info): Dump basic_block->flags.
10085         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
10086
10087 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
10088
10089         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
10090         of DImode hard registers in index.
10091         (ix86_legitimate_address_p): Allow subregs of base and index to span
10092         more than a word.  Assert that subregs of base and index satisfy
10093         register_no_elim_operand predicates.  Reject addresses where
10094         base and index have different modes.
10095
10096 2011-07-20  Robert Millan  <rmh@gnu.org>
10097
10098         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
10099
10100 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10101
10102         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
10103         removing now-unnecessary assignment.
10104
10105 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10106
10107         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
10108         memory address space to the type's address space.
10109
10110 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
10111
10112         PR target/36467
10113         PR target/49687
10114         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
10115         and expand appropriately if there is a CONST_INT in operand2.
10116         (usmulqihi3): New insn.
10117         (*sumulqihi3): New insn.
10118         (*osmulqihi3): New insn.
10119         (*oumulqihi3): New insn.
10120         (*muluqihi3.uconst): New insn_and_split.
10121         (*muluqihi3.sconst): New insn_and_split.
10122         (*mulsqihi3.sconst): New insn_and_split.
10123         (*mulsqihi3.uconst): New insn_and_split.
10124         (*mulsqihi3.oconst): New insn_and_split.
10125         (*ashifthi3.signx.const): New insn_and_split.
10126         (*ashifthi3.signx.const7): New insn_and_split.
10127         (*ashifthi3.zerox.const): New insn_and_split.
10128         (mulsqihi3): New insn.
10129         (muluqihi3): New insn.
10130         (muloqihi3): New insn.
10131         * config/avr/predicates.md (const_2_to_7_operand): New.
10132         (const_2_to_6_operand): New.
10133         (u8_operand): New.
10134         (s8_operand): New.
10135         (o8_operand): New.
10136         (s9_operand): New.
10137         (register_or_s9_operand): New.
10138
10139 2011-07-20  Kai Tietz  <ktietz@redhat.com>
10140
10141         * builtins.c (fold_builtin_expect): See through the cast
10142         from truthvalue_type_node to long.
10143
10144 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
10145
10146         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
10147         where we can use them from the standard and altivec instruction
10148         sets, instead of always using the 3 operand VSX forms that require
10149         the destination to overlap one of the inputs.
10150         (vsx_fms*): Ditto.
10151         (vsx_fnma*): Ditto.
10152         (vsx_fnms*): Ditto.
10153
10154         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
10155         for DF types.
10156         (fmsdf4_fpr): Ditto.
10157         (nfmadf4_fpr): Ditto.
10158         (nfmsdf4_fpr): Ditto.
10159
10160 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
10161
10162         * genrecog.c (make_insn_sequence): Correct position numbering
10163         when filtering out match_scratch and match_dup.
10164
10165 2011-07-20  Richard Guenther  <rguenther@suse.de>
10166
10167         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
10168         against already removed statements.
10169         (forward_propagate_into_comparison): Remove dead defining stmts.
10170         (forward_propagate_into_gimple_cond): Likewise.
10171         (forward_propagate_into_cond): Simplify.
10172         (ssa_forward_propagate_and_combine): Handle changed cfg from
10173         forward_propagate_into_comparison.
10174         * tree-ssa-phiopt.c (conditional_replacement): Use proper
10175         locations for newly built statements.
10176
10177 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
10178
10179         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
10180
10181 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10182
10183         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
10184         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
10185
10186 2011-07-20  Richard Guenther  <rguenther@suse.de>
10187
10188         PR middle-end/18908
10189         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
10190         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
10191         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
10192
10193 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
10194
10195         * config/frv/frv.c (frv_register_move_cost): Define explicitly
10196         costs for subclasses of GR_REGS.
10197
10198 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
10199
10200         PR target/49780
10201         * config/i386/predicates.md (no_seg_addres_operand): No more special.
10202         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
10203         of DImode hard registers in base.
10204         (ix86_legitimate_address_p): Allow SImode and DImode base and index
10205         registers.
10206
10207 2011-07-20  Richard Guenther  <rguenther@suse.de>
10208
10209         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
10210         (unify_nodes): Deal with that.
10211         (solve_graph): Likewise.
10212
10213 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
10214
10215         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
10216         canonicalize left operand from ZERO_EXTEND to AND.
10217
10218 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
10219
10220         * target.def (class_max_nregs): New hook.
10221         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
10222         * doc/tm.texi: Regenerate.
10223         * targhooks.c (default_class_max_nregs): New function.
10224         * targhooks.h (default_class_max_nregs): Declare.
10225         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
10226         x_ira_reg_class_min_nregs arrays to unsigned char.
10227         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
10228         hook instead of CLASS_MAX_NREGS macro.
10229         * reginfo.c (restore_register_info): Ditto.
10230         * ira-conflicts.c (process_regs_for_copy): Use
10231         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
10232         Change type rclass and aclass vars to reg_class_t.
10233         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
10234         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
10235         reg_class_t.
10236         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
10237         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
10238
10239         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
10240         * config/i386/i386.c (ix86_class_max_nregs): New function.
10241         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
10242         instead of CLASS_MAX_NREGS macro.
10243         (TARGET_CLASS_MAX_NREGS): Define.
10244         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
10245         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
10246         * config/avr/avr.c (class_max_nregs): Remove function.
10247         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
10248         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
10249         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
10250         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
10251         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
10252         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
10253         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
10254         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
10255         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
10256         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
10257         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
10258         * config/score/score.h (CLASS_MAX_NREGS): Remove.
10259         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
10260         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
10261         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
10262
10263 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
10264
10265         * cif-code.def (OVERWRITABLE): Fix typo and move around.
10266         (TARGET_OPTIMIZATION_MISMATCH): Delete.
10267         (EH_PERSONALITY): Fix typo.
10268         (NON_CALL_EXCEPTIONS): Fix message.
10269         (OPTIMIZATION_MISMATCH): Adjust message.
10270         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
10271
10272 2011-07-19  Ian Lance Taylor  <iant@google.com>
10273
10274         * doc/install.texi (Configuration): Document
10275         --enable-build-poststage1-with-cxx.
10276
10277 2011-07-19  Robert Millan  <rmh@gnu.org>
10278
10279         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
10280         (GLIBC_DYNAMIC_LINKER): Remove.
10281
10282         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
10283         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
10284         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
10285         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
10286         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
10287         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
10288
10289         * config/mips/linux.h: Remove everything except for ...
10290         (GLIBC_DYNAMIC_LINKER): ... this macro.
10291
10292         * config/mips/linux64.h: Remove everything except for ...
10293         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
10294         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
10295         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
10296         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
10297         (GNU_USER_LINK_EMULATIONN32): New macros.
10298
10299         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
10300         Use the new headers.
10301
10302 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
10303
10304         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
10305         Add offset_known_p and size_known_p fields.
10306         (MEM_OFFSET_KNOWN_P): Update accordingly.
10307         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
10308         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
10309         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
10310         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
10311         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
10312         (init_emit_regs): Likewise.
10313
10314 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
10315
10316         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
10317         (MEM_OFFSET): Change from returning an rtx to returning a
10318         HOST_WIDE_INT.
10319         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
10320         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
10321         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
10322         (clear_mem_offset): Declare.
10323         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
10324         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
10325         MEM_OFFSET to get a HOST_WIDE_INT offset.
10326         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
10327         (adjust_offset_for_component_ref): Take a bool "known_p"
10328         parameter and a HOST_WIDE_INT "offset" parameter.
10329         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
10330         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
10331         than an rtx.  Use clear_mem_offset to clear the offset.
10332         * cfgcleanup.c (merge_memattrs): Likewise.
10333         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
10334         * function.c (assign_parm_find_stack_rtl): Likewise.
10335         (assign_parm_setup_stack): Likewise.
10336         * print-rtl.c (print_rtx): Likewise.
10337         * reload.c (find_reloads_subreg_address): Likewise.
10338         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
10339         * var-tracking.c (INT_MEM_OFFSET): Likewise.
10340         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
10341         (get_mem_align_offset): Likewise.
10342         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
10343         (clear_mem_offset): New function.
10344         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
10345         offset rather than an rtx.  Assume both the expressio and offset
10346         are available.
10347         (r10k_needs_protection_p_1): Update accordingly, checking the
10348         expression and offset availability here instead.
10349
10350 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
10351
10352         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
10353         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
10354         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
10355         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
10356         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
10357         (clear_mem_size): Declare.
10358         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
10359         (clear_mem_size): New function.
10360         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
10361         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
10362         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
10363         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
10364         to clear the size.
10365         (nonoverlapping_memrefs_p): Likewise.
10366         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
10367         (expand_builtin_init_trampoline): Likewise.
10368         * calls.c (compute_argument_addresses): Likewise.
10369         * cfgcleanup.c (merge_memattrs): Likewise.
10370         * dce.c (find_call_stack_args): Likewise.
10371         * dse.c (record_store, scan_insn): Likewise.
10372         * dwarf2out.c (dw_sra_loc_expr): Likewise.
10373         * expr.c (emit_block_move_hints): Likewise.
10374         * function.c (assign_parm_find_stack_rtl): Likewise.
10375         * print-rtl.c (print_rtx): Likewise.
10376         * reload.c (find_reloads_subreg_address): Likewise.
10377         * rtlanal.c (may_trap_p_1): Likewise.
10378         * var-tracking.c (track_expr_p): Likewise.
10379         * varasm.c (assemble_trampoline_template): Likewise.
10380         * config/arm/arm.c (arm_print_operand): Likewise.
10381         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
10382         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
10383         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
10384         (expand_constant_setmem_prologue): Likewise.
10385         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
10386         * config/rs6000/rs6000.c (expand_block_move): Likewise.
10387         (adjacent_mem_locations): Likewise.
10388         * config/s390/s390.c (s390_expand_setmem): Likewise.
10389         (s390_expand_insv): Likewise.
10390         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
10391         (*extendqi<mode>2_short_displ): Likewise.
10392         * config/sh/sh.c (expand_block_move): Likewise.
10393         * config/sh/sh.md (extv, extzv): Likewise.
10394
10395 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
10396
10397         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
10398         (mem_attrs_htab_eq): ...here.
10399         (find_mem_attrs): Replace with...
10400         (set_mem_attrs): ...this function.  Take a mem_attrs structure
10401         rather than individual fields.
10402         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
10403         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
10404         (set_mem_size, change_address, adjust_address_1, offset_address)
10405         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
10406         Update accordingly.
10407
10408 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
10409
10410         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
10411         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
10412         Provide a dummy definition of MEM_ADDR_SPACE for generators.
10413         (target_rtl): Add x_mode_mem_attrs.
10414         (mode_mem_attrs): New macro.
10415         (get_mem_attrs): New function.
10416         * emit-rtl.c (get_mem_attrs): Rename to...
10417         (find_mem_attrs): ...this.
10418         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
10419         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
10420         (set_mem_size, change_address, adjust_address_1, offset_address)
10421         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
10422         Update accordingly.
10423         (init_emit_regs): Initialize mode_mem_attrs.
10424
10425 2011-07-19  Richard Guenther  <rguenther@suse.de>
10426
10427         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
10428         TRUTH_*_EXPR handling.
10429         * tree-ssa-operands.c (get_expr_operands): Likewise.
10430         * tree-ssa-pre.c (fully_constant_expression): Likewise.
10431         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
10432         Likewise.
10433         (is_and_or_or): Likewise.
10434         (is_norm_cond_subset_of): Likewise.
10435
10436 2011-07-19  Richard Guenther  <rguenther@suse.de>
10437
10438         * tree.h (fold_build_pointer_plus_loc): New helper function.
10439         (fold_build_pointer_plus_hwi_loc): Likewise.
10440         (fold_build_pointer_plus): Define.
10441         (fold_build_pointer_plus_hwi): Likewise.
10442         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
10443         (fold_builtin_memory_op): Likewise.
10444         (fold_builtin_stpcpy): Likewise.
10445         (fold_builtin_memchr): Likewise.
10446         (fold_builtin_strstr): Likewise.
10447         (fold_builtin_strchr): Likewise.
10448         (fold_builtin_strrchr): Likewise.
10449         (fold_builtin_strpbrk): Likewise.
10450         (fold_builtin_strcat): Likewise.
10451         (expand_builtin_memory_chk): Likewise.
10452         (fold_builtin_memory_chk): Likewise.
10453         * c-typeck.c (build_unary_op): Likewise.
10454         * cgraphunit.c (thunk_adjust): Likewise.
10455         * fold-const.c (build_range_check): Likewise.
10456         (fold_binary_loc): Likewise.
10457         * omp-low.c (extract_omp_for_data): Likewise.
10458         (expand_omp_for_generic): Likewise.
10459         (expand_omp_for_static_nochunk): Likewise.
10460         (expand_omp_for_static_chunk): Likewise.
10461         * tree-affine.c (add_elt_to_tree): Likewise.
10462         * tree-data-ref.c (split_constant_offset_1): Likewise.
10463         * tree-loop-distribution.c (generate_memset_zero): Likewise.
10464         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
10465         * tree-predcom.c (ref_at_iteration): Likewise.
10466         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
10467         (add_to_parts): Likewise.
10468         (create_mem_ref): Likewise.
10469         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
10470         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
10471         (number_of_iterations_le): Likewise.
10472         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
10473         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
10474         (vect_create_addr_base_for_vector_ref): Likewise.
10475         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
10476         (vect_create_cond_for_alias_checks): Likewise.
10477         * tree-vrp.c (extract_range_from_assert): Likewise.
10478         * config/alpha/alpha.c (alpha_va_start): Likewise.
10479         (alpha_gimplify_va_arg_1): Likewise.
10480         * config/i386/i386.c (ix86_va_start): Likewise.
10481         (ix86_gimplify_va_arg): Likewise.
10482         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
10483         * config/mep/mep.c (mep_expand_va_start): Likewise.
10484         (mep_gimplify_va_arg_expr): Likewise.
10485         * config/mips/mips.c (mips_va_start): Likewise.
10486         (mips_gimplify_va_arg_expr): Likewise.
10487         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
10488         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
10489         (rs6000_gimplify_va_arg): Likewise.
10490         * config/s390/s390.c (s390_va_start): Likewise.
10491         (s390_gimplify_va_arg): Likewise.
10492         * config/sh/sh.c (sh_va_start): Likewise.
10493         (sh_gimplify_va_arg_expr): Likewise.
10494         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
10495         * config/spu/spu.c (spu_va_start): Likewise.
10496         (spu_gimplify_va_arg_expr): Likewise.
10497         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
10498         Likewise.
10499         (xstormy16_gimplify_va_arg_expr): Likewise.
10500         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
10501         (xtensa_gimplify_va_arg_expr): Likewise.
10502
10503 2011-07-19  Richard Guenther  <rguenther@suse.de>
10504
10505         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
10506         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
10507         handling.
10508
10509         PR middle-end/18908
10510         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
10511         result of BIT_*_EXPR to bitfield precision.
10512
10513 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
10514
10515         PR tree-optimization/49742
10516         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
10517         as a potential write.
10518
10519 2011-07-19  Richard Guenther  <rguenther@suse.de>
10520
10521         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
10522         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
10523         (forward_propagate_comparison): Simplify, remove obsolete code.
10524
10525 2011-07-19  Richard Guenther  <rguenther@suse.de>
10526
10527         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
10528         BIT_XOR_EXPR, same as the RTL expander does.
10529         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
10530         (verify_gimple_assign_unary): Likewise.
10531         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
10532         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
10533         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
10534
10535 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
10536
10537         PR tree-optimization/49768
10538         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
10539         if offset is smaller than bitoffset, but offset+size is bigger
10540         than bitoffset.
10541
10542 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
10543
10544         PR tree-optimization/49771
10545         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
10546         zero step, set segment length to the size of the data-ref's type.
10547
10548 2011-07-18  Martin Jambor  <mjambor@suse.cz>
10549
10550         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
10551         comments.
10552         (ipcp_values_pool): Declare.
10553         (ipcp_sources_pool): Likewise.
10554         (ipcp_lattice): Changed to forward declaration.
10555         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
10556         cannot_devirtualize.
10557         (ipa_node_params): New fields descriptors, lattices, known_vals,
10558         clone_for_all_contexts and node dead, removed fields params and
10559         count_scale.
10560         (ipa_set_param_count): Removed.
10561         (ipa_get_param_count): Made to work with descriptors vector.
10562         (ipa_get_param): Updated.
10563         (ipa_param_cannot_devirtualize_p): Removed.
10564         (ipa_param_types_vec_empty): Likewise.
10565         (ipa_set_param_used): New function.
10566         (ipa_get_param_used): Updated to use descriptors vector.
10567         (ipa_func_list): Removed.
10568         (ipa_init_func_list): Removed declaration.
10569         (ipa_push_func_to_list_1): Likewise.
10570         (ipa_pop_func_from_list): Likewise.
10571         (ipa_push_func_to_list): Removed.
10572         (ipa_lattice_from_jfunc): Remove declaration.
10573         (ipa_get_jf_pass_through_result): Declare.
10574         (ipa_get_jf_ancestor_result): Likewise.
10575         (ipa_value_from_jfunc): Likewise.
10576         (ipa_get_lattice): Update.
10577         (ipa_lat_is_single_const): New function.
10578         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
10579         (ipa_init_func_list): Likewise.
10580         (ipa_pop_func_from_list): Likewise.
10581         (ipa_get_param_decl_index): Fix coding style.
10582         (count_formal_params): Removed.
10583         (count_formal_params_1): Renamed to count_formal_params.
10584         (ipa_populate_param_decls): Update to use descriptors vector.
10585         (ipa_initialize_node_params): Likewise.
10586         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
10587         (ipa_analyze_params_uses): Likewise.
10588         (ipa_free_node_params_substructures): Likewise and free also lattices
10589         and known values.
10590         (duplicate_array): Removed.
10591         (ipa_edge_duplication_hook): Add the new edge to the list of edge
10592         clones.
10593         (ipa_node_duplication_hook): Update to use new lattices.
10594         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
10595         (ipa_free_all_structures_after_iinln): Likewise.
10596         (ipa_write_node_info): Update to use new lattices.
10597         (ipa_read_node_info): Likewise.
10598         (ipa_get_jf_pass_through_result): New function.
10599         (ipa_get_jf_ancestor_result): Likewise.
10600         (ipa_value_from_jfunc): Likewise.
10601         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
10602         * ipa-cp.c: Reimplemented.
10603         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
10604         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
10605         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
10606         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
10607         * doc/invoke.texi (devirt-type-list-size): Removed description.
10608         (ipa-cp-value-list-size): Added description.
10609
10610 2011-07-18  Richard Henderson  <rth@redhat.com>
10611
10612         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
10613         before calling create_basic_block.
10614
10615 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
10616
10617         PR middle-end/49675
10618         * tree.c (build_common_builtin_nodes): Register
10619         __builtin_return_address, __cyg_profile_func_enter
10620         and __cyg_profile_func_exit.
10621
10622 2011-07-18  Richard Henderson  <rth@redhat.com>
10623
10624         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
10625         (add_labels_and_missing_jumps): ... here.
10626         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
10627
10628 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
10629
10630         PR target/47744
10631         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
10632         of DImode hard registers in PLUS address chains.
10633
10634 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10635
10636         PR bootstrap/49769
10637         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
10638         (alpha*-*-freebsd*): Likewise.
10639         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
10640         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
10641         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
10642         crtprec80.o, crtfastmath.o to extra_parts for all targets.
10643         (ia64*-*-elf*): Remove extra_parts.
10644         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
10645         (sparc64-*-linux*): Likewise.
10646         (sparc64-*-freebsd*): Likewise.
10647
10648         Revert:
10649         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
10650         (ia64*-*-linux*): Likewise.
10651         (mips64*-*-linux*): Likewise.
10652         (mips*-*-linux*): Likewise.
10653
10654 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
10655
10656         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
10657
10658 2011-07-18  Richard Guenther  <rguenther@suse.de>
10659
10660         * gimplify.c (gimplify_expr): Use input_location, not saved_location
10661         when building new trees.
10662
10663 2011-07-18  Richard Guenther  <rguenther@suse.de>
10664
10665         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
10666         expansion result to bitfield precision if required.
10667
10668 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10669
10670         * config.gcc (i[3456x]86-*-netware*): Remove.
10671
10672         * gthr-nks.h: Remove.
10673         * configure.ac (enable_threads): Remove nks.
10674         * configure: Regenerate.
10675
10676         * config/i386/i386.c (ix86_encode_section_info): Remove netware
10677         reference.
10678         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
10679         <netware.h> reference.
10680
10681         * config/i386/netware-libgcc.c,
10682         gcc/config/i386/netware-libgcc.def,
10683         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
10684         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
10685         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
10686         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
10687
10688         * doc/extend.texi (Function Attributes,
10689         callee_pop_aggregate_return): Remove i?86-netware reference.
10690         * doc/install.texi (Configuration, --enable-threads): Remove nks.
10691
10692 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10693
10694         PR target/49746
10695         Revert:
10696         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10697
10698         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
10699         patterns.
10700
10701 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
10702
10703         PR middle-end/49732
10704         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
10705
10706 2011-07-16  Matthias Klose  <doko@ubuntu.com>
10707
10708         * doc/install.texi: Document --enable-static-libjava.
10709
10710 2011-07-15  Richard Henderson  <rth@redhat.com>
10711
10712         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
10713         Replace all three arguments by returning a VEC of edges.
10714         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
10715         pointers and counts.
10716         (fix_edges_for_rarely_executed_code): Merge ...
10717         (rest_of_handle_partition_blocks): ... into...
10718         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
10719         any work was performed.
10720         (pass_partition_blocks): Clear todo_flags_finish.
10721
10722 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
10723             Jakub Jelinek  <jakub@redhat.com>
10724             Jonathan Wakely  <jwakely.gcc@gmail.com>
10725
10726         PR libstdc++/49745
10727         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
10728         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
10729
10730 2011-07-15  Jason Merrill  <jason@redhat.com>
10731
10732         PR testsuite/49741
10733         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
10734         rather than --tool_opts.
10735
10736 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
10737
10738         * doc/plugins.texi (Building GCC plugins): gengtype needs its
10739         corresponding gtype.state.
10740
10741 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10742
10743         PR target/49723
10744         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
10745
10746 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
10747
10748         PR target/48220
10749         * doc/md.texi (Standard Names): Document window_save.
10750         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
10751         expand_debug_expr and expand_debug_source_expr.  If the target has
10752         a window_save instruction, adjust the ENTRY_VALUE_EXP.
10753         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
10754         SSA_NAME_VAR is a parameter.
10755         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
10756         * var-tracking.c (parm_reg_t): New type and associated vector type.
10757         (windowed_parm_regs): New variable.
10758         (adjust_insn): If the target has a window_save instruction and this
10759         is the instruction, make its effect on parameter registers explicit.
10760         (next_non_note_insn_var_location): New function.
10761         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
10762         (vt_add_function_parameter): If the target has a window_save insn,
10763         adjust the incoming RTL and record that in windowed_parm_regs.
10764         (vt_finalize): Free windowed_parm_regs.
10765
10766 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
10767
10768         * doc/invoke.texi (C6X Options): New section.
10769         * doc/md.texi (TI C6X family): New section.
10770         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
10771         tic6x-*-uclinux.
10772         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
10773         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
10774         Provide C6X definitions.
10775         * config/c6x/c6x.md: New file.
10776         * config/c6x/constraints.md: New file.
10777         * config/c6x/predicates.md: New file.
10778         * config/c6x/c6x-sched.md.in: New file.
10779         * config/c6x/c6x-sched.md: New file.
10780         * config/c6x/gensched.sh: New file.
10781         * config/c6x/c6x-mult.md.in: New file.
10782         * config/c6x/genmult.sh: New file.
10783         * config/c6x/c6x-mult.md: New file.
10784         * config/c6x/sync.md: New file.
10785         * config/c6x/c6x-protos.h: New file.
10786         * config/c6x/sfp-machine.h: New file.
10787         * config/c6x/c6x.c: New file.
10788         * config/c6x/c6x.h: New file.
10789         * config/c6x/crti.s: New file.
10790         * config/c6x/crtn.s: New file.
10791         * config/c6x/lib1funcs.asm: New file.
10792         * config/c6x/c6x-modes.def: New file.
10793         * config/c6x/genopt.sh: New file.
10794         * config/c6x/c6x.opt: New file.
10795         * config/c6x/c6x-tables.opt: New file.
10796         * config/c6x/c6x-opts.h: New file.
10797         * config/c6x/c6x-isas.def: New file.
10798         * config/c6x/elf.h: New file.
10799         * config/c6x/elf-common.h: New file.
10800         * config/c6x/uclinux-elf.h: New file.
10801         * config/c6x/t-c6x: New file.
10802         * config/c6x/t-c6x-elf: New file.
10803         * config/c6x/t-c6x-uclinux: New file.
10804         * config/c6x/t-c6x-softfp: New file.
10805         * config/c6x/gtd.c: New file.
10806         * config/c6x/gtf.c: New file.
10807         * config/c6x/ltd.c: New file.
10808         * config/c6x/ltf.c: New file.
10809         * config/c6x/ged.c: New file.
10810         * config/c6x/gef.c: New file.
10811         * config/c6x/led.c: New file.
10812         * config/c6x/lef.c: New file.
10813         * config/c6x/eqd.c: New file.
10814         * config/c6x/eqf.c: New file.
10815         * config/c6x/libgcc-c6xeabi.ver: New file.
10816
10817         Revert
10818         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
10819         PR rtl-optimization/11320
10820         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
10821         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
10822         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
10823         current_sched_info->compute_jump_reg_dependencies. Record which
10824         registers are used and which registers are set by the jump.
10825         Clear deps->reg_conditional_sets after a barrier.
10826         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
10827         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
10828         (init_deps): Initialize reg_conditional_sets.
10829         (free_deps): Clear reg_conditional_sets.
10830         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
10831         Mark registers live on entry of the fallthrough block and conditionally
10832         set as set by the jump. Mark registers live on entry of non-fallthrough
10833         blocks as used by the jump.
10834         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
10835         Mark new parameters as unused.
10836
10837 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
10838
10839         PR tree-opt/49309
10840         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
10841         Use fold_build2_loc instead of build2.
10842         Use the correct type for the new tree.
10843
10844 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
10845
10846         PR rtl-optimization/11320
10847         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
10848         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
10849
10850 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
10851
10852         PR target/49487
10853         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
10854         of REG.
10855         (*rotw<mode>): Use const_int_operand for operand2.
10856         Use match_scatch for operand3.
10857         (*rotb<mode>): Ditto
10858         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
10859
10860 2011-07-14  Richard Guenther  <rguenther@suse.de>
10861
10862         PR tree-optimization/49651
10863         * tree-ssa-structalias.c (get_constraint_for_1): Properly
10864         handle dereferences with subvariables.
10865
10866 2011-07-14  Richard Guenther  <rguenther@suse.de>
10867
10868         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
10869         (fold_stmt_1): Do it here directly on gimple and as a first thing.
10870
10871 2011-07-14  Richard Guenther  <rguenther@suse.de>
10872
10873         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
10874         not bool_var when folding bool_var != 1 or bool_var == 0.
10875
10876 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
10877
10878         * haifa-sched.c (schedule_insns): Remove outdated comment.
10879         (schedule_block): When computing a known value for TODO_SPEC,
10880         just set it rather than using logical operations.
10881         (try_ready): Likewise.  Use a local variable rather than a
10882         pointer to TODO_SPEC.  Reorder an if statement to move the
10883         easy case to the then block.
10884         * sched-deps.c (dep_spec_p): New static function.
10885         (update_dep): Use it to decide whether to call
10886         change_spec_dep_to_hard.
10887         (get_back_and_forw_lists): Use it.
10888         (sd_resolve_dep): Likewise.
10889         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
10890         (haifa_note_mem_dep): Likewise.
10891         (check_dep): Likewise.
10892         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
10893         (sched_free_deps): Free in two passes.
10894
10895 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
10896
10897         PR middle-end/49736
10898         * expr.c (all_zeros_p): Undo bogus part of last change.
10899
10900 2011-07-14  Matthias Klose <doko@ubuntu.com>
10901
10902         * doc/extend.texi (optimize attribute): Fix typo.
10903
10904 2011-07-14  Richard Guenther  <rguenther@suse.de>
10905
10906         * gimplify.c (gimplify_expr): Only do required conversions.
10907
10908 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
10909
10910         PR target/43746
10911         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
10912         i.e. use default_elf_select_section.
10913         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
10914         (READONLY_DATA_SECTION_ASM_OP): Remove.
10915         (TARGET_ASM_NAMED_SECTION): Move from here...
10916         * config/avr/avr.c: ...to here.
10917         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
10918         (avr_asm_named_section): Make static.
10919
10920 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10921
10922         PR bootstrap/49739
10923         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
10924         and crtfastmath.o for Linux/x86.
10925
10926 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
10927
10928         * haifa-sched.c: Include "hashtab.h"
10929         (sched_no_dce): New global variable.
10930         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
10931         SHADOW_P): New macros.
10932         (last_clock_var, cycle_issued_insns): Move declarations.
10933         (must_backtrack): New static variable.
10934         (struct delay_pair): New structure.
10935         (delay_htab, delay_htab_i2): New static variables.
10936         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
10937         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
10938         functions.
10939         (dep_cost_1): If delay pairs exist, try to look up the insns and
10940         use the correct pair delay if we find them.
10941         (rank-for_schedule): Tweak priority for insns that must be scheduled
10942         soon to avoid backtracking.
10943         (queue_insn): Detect conditions which force backtracking.
10944         (ready_add): Likewise.
10945         (struct sched_block_state): Add member shadows_only_p.
10946         (struct haifa_save_data): New structure.
10947         (backtrack_queue): New static variable.
10948         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
10949         unschedule_insns_until, restore_last_backtrack_point,
10950         free_topmost_backtrack_point, free_backtrack_queue,
10951         estimate_insn_tick, estimate_shadow_tick): New functions.
10952         (prune_ready_list): New arg shadows_only_p.  All callers changed.
10953         If true, remove everything that isn't SHADOW_P.  Look up delay
10954         pairs and estimate ticks to avoid scheduling the first insn too early.
10955         (verify_shadows): New function.
10956         (schedule_block): Add machinery to enable backtracking.
10957         (sched_init): Take sched_no_dce into account when setting
10958         DF_LR_RUN_DCE.
10959         (free_delay_pairs): New function.
10960         (init_h_i_d): Initialize INSN_EXACT_TICK.
10961         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
10962         * sched-deps.c (sd_unresolve_dep): New function.
10963         * sched-int. (struct haifa_sched_info): New fields save_state
10964         and restore_state.
10965         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
10966         feeds_backtrack_insn and shadow_p.
10967         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
10968         (sched_no_dce): Declare variable.
10969         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
10970         sd_unresolve_dep): Declare functions.
10971         * modulo-sched.c (sms_sched_info): Clear the two new fields.
10972         * sched-rgn.c (rgn_const_sched_info): Likewise.
10973         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
10974         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
10975         (ebb_sched_info): Add them for the two new fields.
10976         (add_deps_for_risky_insns): Call add_delay_dependencies.
10977
10978 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
10979
10980         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
10981         Rename -mr11.
10982         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
10983         (rs6000_call_indirect_aix): Ditto.
10984         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
10985         (call_indirect_aix<ptrsize>_internal): Ditto.
10986         (call_indirect_aix<ptrsize>_nor11): Ditto.
10987         (call_indirect_aix<ptrsize>_internal2): Ditto.
10988         (call_value_indirect_aix<ptrsize>): Ditto.
10989         (call_value_indirect_aix<ptrsize>_internal): Ditto.
10990         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
10991         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
10992         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
10993
10994 2011-07-13  Jason Merrill  <jason@redhat.com>
10995
10996         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
10997
10998 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10999
11000         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
11001         * config/spu/spu.md ("clrsb<mode>2"): New expander.
11002
11003 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
11004
11005         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
11006         * configure: Regenerate.
11007
11008 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11009
11010         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
11011         (asm_file_start): Remove.
11012         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
11013         free_bb_for_insn around code that modifies insns before
11014         restarting df analysis.
11015
11016 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11017
11018         PR target/49541
11019         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
11020         (LINK_SPEC): ... here.
11021
11022 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
11023
11024         * haifa-sched.c (struct sched_block_state): New.
11025         (schedule_block): Move some local variables into such a structure.
11026
11027 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11028
11029         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
11030         * config/i386/t-crtpc: Remove.
11031         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
11032         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
11033         tmake_file.
11034         (x86_64-*-darwin*): Likewise.
11035         (i[34567]86-*-linux*): Likewise.
11036         (x86_64-*-linux*): Likewise.
11037
11038         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
11039         Handle -mpc32, -mpc64, -mpc80.
11040
11041 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11042
11043         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
11044         * config/alpha/t-crtfm: Remove.
11045         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
11046         * config/i386/t-crtfm: Remove.
11047         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
11048         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
11049         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
11050         * config/sparc/t-crtfm: Remove.
11051
11052         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
11053         (alpha*-*-freebsd*): Likewise.
11054         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
11055         (x86_64-*-darwin*): Likewise.
11056         (i[34567]86-*-linux*): Likewise.
11057         (x86_64-*-linux*): Likewise.
11058         (x86_64-*-mingw*): Likewise.
11059         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
11060         (ia64*-*-freebsd*): Likewise.
11061         (ia64*-*-linux*): Likewise.
11062         (mips64*-*-linux*): Likewise.
11063         (mips*-*-linux*): Likewise.
11064         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
11065         (sparc64-*-linux*): Likewise.
11066         (sparc64-*-freebsd*): Likewise.
11067
11068 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11069
11070         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
11071         * config/darwin-crt3.c: Move to ../libgcc/config.
11072         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
11073         ($(T)crt3$(objext)): Remove.
11074         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
11075         ($(T)crt2$(objext)): Remove.
11076         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
11077         (powerpc64-*-darwin*): Likewise.
11078
11079 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
11080
11081         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
11082
11083         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
11084         (addsi_1_zext): This.
11085
11086 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
11087
11088         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
11089         * doc/tm.texi: Regenerate.
11090         * target.def (mergeable_rodata_prefix): New defhookpod.
11091         * varasm.c (mergeable_string_section, mergeable_constant_section):
11092         Use it. Allocate name with alloca.
11093
11094 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
11095
11096         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
11097
11098 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
11099
11100         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
11101         overlap check.
11102
11103 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
11104
11105         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
11106         (count_type_elements): Delete.
11107         (complete_ctor_at_level_p): Declare.
11108         * expr.c (flexible_array_member_p): New function, split out from...
11109         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
11110         parameter with for_ctor_p.  When for_ctor_p is true, return the
11111         number of elements that should appear in the top-level constructor,
11112         otherwise return an estimate of the number of scalars.
11113         (categorize_ctor_elements): Replace p_must_clear with p_complete.
11114         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
11115         (complete_ctor_at_level_p): New function, borrowing union logic
11116         from old categorize_ctor_elements_1.
11117         (mostly_zeros_p): Return true if the constructor is not complete.
11118         (all_zeros_p): Update call to categorize_ctor_elements.
11119         * gimplify.c (gimplify_init_constructor): Update call to
11120         categorize_ctor_elements.  Don't call count_type_elements.
11121         Unconditionally prevent clearing for variable-sized types,
11122         otherwise rely on categorize_ctor_elements to detect
11123         incomplete initializers.
11124
11125 2011-07-13  Richard Guenther  <rguenther@suse.de>
11126
11127         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
11128         the final type is integral.
11129
11130 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
11131
11132         * sched-int.h (struct _dep): Add member cost.
11133         (DEP_COST, UNKNOWN_DEP_COST): New macros.
11134         * sched-deps.c (init_dep_1): Initialize DEP_COST.
11135         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
11136         (sched_change_pattern): Reset it for dependent insns.
11137
11138 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11139
11140         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
11141         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
11142         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
11143         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
11144         (CRT0_S, MCRT0_S): Remove.
11145         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
11146         Remove.
11147         (s-crt0): Remove.
11148         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
11149
11150 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
11151
11152         * cse.c (insert_with_costs): Put semi-colon after empty loop body
11153         on the next line.
11154         * emit-rtl.c (push_to_sequence): Likewise.
11155         * haifa-sched.c (max_issue): Likewise.
11156         * matrix-reorg.c (add_allocation_site): Likewise.
11157         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
11158         * reload.c (alternative_allows_const_pool_ref): Likewise.
11159         * sched-rgn.c (rgn_add_block): Likewise.
11160         (rgn_fix_recovery_cfg): Likewise.
11161         * tree.c (attribute_list_contained): Likewise.
11162
11163 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
11164
11165         * config/i386/i386.c: Tidy processor feature bitmasks.
11166         (m_P4_NOCONA): New.
11167
11168 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
11169
11170         PR rtl-opt/49474
11171         * cprop.c (find_implicit_sets): Correct the condition.
11172
11173 2011-07-12  Richard Henderson  <rth@redhat.com>
11174
11175         PR target/49713
11176         * dwarf2out.h (dwarf_frame_regnum): Remove.
11177         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
11178         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
11179         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
11180         (execute_dwarf2_frame): Initialize them.
11181         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
11182         users of the macros with the variables.
11183         (expand_builtin_dwarf_sp_column): Revert last change.
11184         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
11185         result of DWARF_FRAME_REGNUM into a local variable.
11186
11187 2011-07-12  Richard Henderson  <rth@redhat.com>
11188
11189         PR target/49714
11190         * config/i386/i386.c (x86_output_mi_thunk): Use
11191         machopic_indirect_call_target instead of machopic_indirection_name
11192         directly.
11193
11194 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
11195             Eric Botcazou  <ebotcazou@adacore.com>
11196
11197         * prefix.h: Wrap up in extern "C" block.
11198
11199 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
11200
11201         AMD bdver2 Enablement
11202         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
11203         (case ${target}): Add bdver2.
11204         * config/i386/driver-i386.c (host_detect_local_cpu): Let
11205         -march=native recognize bdver2 processors.
11206         * config/i386/i386-c.c (ix86_target_macros_internal): Add
11207         bdver2 def_and_undef
11208         * config/i386/i386.c (struct processor_costs bdver2_cost): New
11209         bdver2 cost table.
11210         (m_BDVER2): New definition.
11211         (m_AMD_MULTIPLE): Includes m_BDVER2.
11212         (initial_ix86_tune_features): Add bdver2 tuning.
11213         (processor_target_table): Add bdver2 entry.
11214         (static const char *const cpu_names): Add bdver2 entry.
11215         (ix86_option_override_internal): Add bdver2 instruction sets.
11216         (ix86_issue_rate): Add bdver2.
11217         (ix86_adjust_cost): Add bdver2.
11218         (has_dispatch): Add bdver2.
11219         * config/i386/i386.h (TARGET_BDVER2): New definition.
11220         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
11221         (enum processor_type): Add PROCESSOR_BDVER2.
11222         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
11223         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
11224         description.
11225
11226 2011-07-12  Richard Henderson  <rth@redhat.com>
11227
11228         PR target/49714
11229         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
11230         destination address in memory on some paths.
11231
11232 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
11233
11234         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
11235         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
11236         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
11237         * function.c (locate_and_pad_parm): Take it into account.
11238         * target.def (function_arg_round_boundary): New hook.
11239         * targhooks.c (default_function_arg_round_boundary): New function.
11240         * targhooks.h (default_function_arg_round_boundary): Declare.
11241         * doc/tm.texi: Regenerate.
11242
11243 2011-07-12  Richard Guenther  <rguenther@suse.de>
11244
11245         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
11246         Do not perform no-op changes.
11247
11248 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
11249
11250         * config/arm/predicates.md (neon_struct_operand): Make a normal
11251         predicate.
11252         (neon_struct_or_register_operand): New predicate.
11253         * config/arm/neon.md (movmisalign<mode>): Replace predicates
11254         with neon_struct_or_register_operand.
11255         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
11256         neon_struct_operand instead of memory_operand.
11257
11258 2011-07-12  Martin Jambor  <mjambor@suse.cz>
11259
11260         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
11261         * cgraph.c (cgraph_get_node_or_alias): Removed.
11262         (change_decl_assembler_name): Changed all calls to
11263         cgraph_get_node_or_alias to a call to cgraph_get_node.
11264         (cgraph_make_decl_local): Likewise.
11265         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
11266         * varasm.c (default_binds_local_p_1): Likewise.
11267         (decl_binds_to_current_def_p): Likewise.
11268
11269 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
11270
11271         PR tree-optimization/49712
11272         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
11273
11274 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
11275
11276         * genautomata.c (add_arc): Return void.  All callers changed.
11277         (make_automaton): Remove dead code.
11278
11279 2011-07-11  Richard Henderson  <rth@redhat.com>
11280
11281         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
11282         (DW_FRAME_POINTER_REGNUM): New.
11283         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
11284         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
11285         (dwf_regno): New.
11286         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
11287         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
11288         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
11289         Use it.
11290         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
11291         * dwarf2out.h (dwarf_frame_regnum): New.
11292         (struct cfa_loc): Document the domain of the reg member.
11293
11294 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
11295
11296         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
11297         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
11298
11299 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
11300
11301         PR debug/49676
11302         * dwarf2out.c (int_shift_loc_descriptor): New function.
11303         (int_loc_descriptor): If shorter, emit i as
11304         (i >> shift), shift, DW_OP_shl for suitable shift value.
11305         Similarly, try to optimize large negative values using
11306         DW_OP_neg of a positive value if shorter.
11307         (size_of_int_shift_loc_descriptor): New function.
11308         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
11309         changes.
11310         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
11311         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
11312         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
11313         is shorter.
11314         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
11315         addend as added DW_OP_plus if it is shorter.
11316
11317 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11318
11319         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
11320         (DTORS_SECTION_ASM_OP): Define.
11321
11322 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11323
11324         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
11325         * config/t-dfprules: Move to ../libgcc/config.
11326         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
11327         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
11328         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
11329         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
11330         Likewise.
11331         (i[34567]86-*-cygwin*): Likewise.
11332         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
11333         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
11334         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
11335         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
11336         D64PBIT_FUNCS, D128PBIT_FUNCS.
11337
11338 2011-07-11  Richard Guenther  <rguenther@suse.de>
11339
11340         * tree-vrp.c (simplify_conversion_using_ranges): Manually
11341         translate the source value-range through the conversion chain.
11342
11343 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
11344
11345         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
11346
11347 2011-07-11  Arthur Loiret  <aloiret@debian.org>
11348
11349         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
11350         a bi-arch compiler defaulting to 31-bit. In this case:
11351         (tmake_file): Add s390/t-linux64.
11352         * doc/install.texi: Add s390-linux to the list of targets supporting
11353         --enable-targets=all.
11354
11355 2011-07-11  Arthur Loiret  <aloiret@debian.org>
11356             Matthias Klose <doko@debian.org>
11357
11358         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
11359         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
11360         (tm_file): Add mips/linux64.h.
11361         (tmake_file): Add mips/t-linux64.
11362         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
11363         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
11364         instead of hardcoded mabi=n32.
11365         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
11366         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
11367         convention.
11368
11369 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11370
11371         * passes.c (init_optimization_passes): Add invariant motion pass
11372         after induction variable optimization.
11373
11374 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
11375
11376         PR target/39633
11377         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
11378         offsets 1..5 set cc0 in a usable way.
11379
11380 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
11381
11382         * tree.h (call_expr_arg): Remove.
11383         (call_expr_argp): Likewise.
11384
11385 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
11386
11387         * config/sparc/sparc.md (save_register_window_1): Rename to...
11388         (window_save): ...this.
11389         * config/sparc/sparc.c (emit_save_register_window): Rename to...
11390         (emit_window_save): ...this.
11391         (sparc_expand_prologue): Adjust to above renaming.
11392
11393 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
11394
11395         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
11396         of movabs for x32.
11397
11398 2011-07-10  Richard Henderson  <rth@redhat.com>
11399
11400         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
11401         run final, instead of emitting text directly.
11402
11403 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
11404
11405         * config/i386/i386.c (ix86_option_override_internal): Turn on
11406         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
11407         small PIC models for TARGET_X32.
11408
11409 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
11410
11411         PR target/49684
11412         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
11413         $(LIBGCC2_CFLAGS).
11414
11415         PR bootstrap/49680
11416         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
11417         stray notes and debug insns by using prev_nonnote_nondebug_insn
11418         instead of PREV_INSN.
11419
11420 2011-07-09  Richard Henderson  <rth@redhat.com>
11421
11422         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
11423         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
11424         * dwarf2out.c: ... here.
11425         (output_all_cfis): Remove.
11426         (dwarf2out_switch_text_section): Use output_cfis directly.
11427         (size_of_locs): Export.
11428         (output_loc_sequence, output_loc_sequence_raw): Export.
11429         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
11430         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
11431         output_cfa_loc_raw): Move to ...
11432         * dwarfcfi.c: ... here.
11433         * dwarf2out.h: Update decls.
11434
11435 2011-07-09  Richard Henderson  <rth@redhat.com>
11436
11437         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
11438         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
11439         * dwarf2cfi.c: ... here.
11440         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
11441         (DWARF_ROUND, DWARF_CIE_ID): Remove.
11442         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
11443         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
11444         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
11445
11446 2011-07-09  Richard Henderson  <rth@redhat.com>
11447
11448         * dwarf2cfi.c (cie_return_save): New.
11449         (queue_reg_save): Use compare_reg_or_pc.
11450         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
11451         (dwarf2out_frame_debug_expr): Likewise.
11452         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
11453         (initial_return_save): Likewise.
11454         (execute_dwarf2_frame): Save and restore initial return save from
11455         the cie to the fde.
11456         * config/mips/mips.c (mips_frame_set): Remove special case for
11457         DWARF_FRAME_RETURN_COLUMN.
11458
11459 2011-07-09  Richard Henderson  <rth@redhat.com>
11460
11461         * dwarf2cfi.c (lookup_cfa): Remove.
11462         (execute_dwarf2_frame): Assert queues are empty on entry.
11463         Setup initial cfa directly, not via lookup_cfa.
11464         Don't clear args_size state here.
11465
11466 2011-07-09  Richard Henderson  <rth@redhat.com>
11467
11468         * dwarf2cfi.c (add_cfi_vec): New.
11469         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
11470         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
11471         (execute_dwarf2_frame): Set add_cfi_vec.
11472
11473 2011-07-09  Richard Henderson  <rth@redhat.com>
11474
11475         * defaults.h (ASM_COMMENT_START): Move here...
11476         * dwarf2asm.c: ... from here.
11477         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
11478         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
11479         * varasm.c: Likewise.
11480
11481 2011-07-09  Richard Henderson  <rth@redhat.com>
11482
11483         PR debug/49686
11484         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
11485         (create_cfi_notes): ... do it here instead.
11486
11487 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
11488
11489         PR debug/49676
11490         * dwarf2out.c (size_of_int_loc_descriptor): New function.
11491         (address_of_int_loc_descriptor): Use it.
11492         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
11493
11494 2011-07-09  Richard Henderson  <rth@redhat.com>
11495
11496         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
11497         (prologue, epilogue): New.
11498         (return, *rts): New.
11499         (blockage, setd, seti): New.
11500         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
11501         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
11502         (pdp11_saved_regno): New.
11503         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
11504         generate rtl instead of text.
11505         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
11506         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
11507         * config/pdp11/pdp11-protos.h: Update.
11508
11509 2011-07-09  Richard Henderson  <rth@redhat.com>
11510
11511         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
11512         try to insert an rtl prologue here.
11513         (rs6000_output_function_epilogue): Similarly.
11514         * config/rs6000/rs6000.md (prologue): Emit a barrier to
11515         satisfy !TARGET_SCHED_PROLOG.
11516         (epilogue, sibcall_epilogue): Likewise.
11517
11518 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
11519
11520         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
11521         (FP_REG_P): Delete.
11522         (IN_OR_GLOBAL_P): Likewise.
11523
11524 2011-07-08  Jason Merrill  <jason@redhat.com>
11525
11526         PR c++/45437
11527         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
11528         compound assignment.
11529
11530         * cgraph.c (cgraph_add_to_same_comdat_group): New.
11531         * cgraph.h: Declare it.
11532         * ipa.c (function_and_variable_visibility): Make sure thunks
11533         have the right visibility.
11534
11535 2011-07-08  Richard Henderson  <rth@redhat.com>
11536
11537         PR bootstrap/49680
11538         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
11539         any tablejump vector.
11540
11541         PR bootstrap/49680
11542         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
11543         end of the prologue.
11544
11545 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
11546
11547         PR target/49621
11548         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
11549         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
11550         * config/rs6000/vector.md (vector_select_<mode>,
11551         vector_select_<mode>_uns): Change second operand of NE to
11552         CONST0_RTX (<MODE>mode) instead of const0_rtx.
11553         * config/rs6000/altivec.md (*altivec_vsel<mode>,
11554         *altivec_vsel<mode>_uns): Expect second operand of NE to be
11555         zero_constant of the corresponding vector mode.
11556         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
11557         Likewise.
11558
11559 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
11560
11561         * graphite-dependences.c (build_alias_set_powerset): Remove
11562         continue from loop, add one more assert.
11563
11564 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
11565
11566         PR target/46779
11567         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
11568         In particular, allow 8-bit values in r28 and r29.
11569         (avr_hard_regno_scratch_ok): Disallow any register that might be
11570         part of the frame pointer.
11571         (avr_hard_regno_rename_ok): Same.
11572         (avr_legitimate_address_p): Don't allow SUBREGs.
11573
11574 2011-07-08  Julian Brown  <julian@codesourcery.com>
11575
11576         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
11577         big-endian mode.
11578         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
11579         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
11580         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
11581         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
11582         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
11583         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
11584         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
11585         registers in big-endian mode.
11586
11587 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
11588
11589         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
11590         in terms of another.
11591         (write_attr_value): Write a cast if necessary.
11592
11593         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
11594         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
11595         (REG_WORDS_BIG_ENDIAN): Document.
11596         * doc/tm.texi: Regenerate.
11597         * reload.c (operands_match_p): Take it into account.
11598         (reload_adjust_reg_for_mode): Likewise.
11599         * rtlanal.c (subreg_get_info): Likewise.
11600
11601 2011-07-08  Richard Guenther  <rguenther@suse.de>
11602
11603         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
11604         folding.
11605
11606 2011-07-08  Kai Tietz  <ktietz@redhat.com>
11607
11608         * fold-const.c (fold_truth_andor): Factored out truth_andor
11609         label from fold_binary as function.
11610         (fold_binary_loc): Replace truth_andor lable
11611         by function fold_truth_andor.
11612
11613 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
11614
11615         PR middle-end/49519
11616         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
11617         check if address is stored in register. If so - give up.
11618         (check_sibcall_argument_overlap_1): Do not perform check of
11619         overlapping when it is call to address.
11620
11621 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
11622
11623         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
11624         of magic '31'.
11625
11626 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
11627
11628         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
11629         GET_MODE_BITSIZE where appropriate.
11630         (widen_leading, expand_parity, expand_ctz, expand_ffs,
11631         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
11632         expand_float, expand_fix): Likewise.
11633         * expr.c (convert_move, convert_modes, expand_expr_real_2,
11634         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
11635         * stor-layout.c (get_mode_bounds): Likewise.
11636         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
11637         Likewise.
11638         * convert.c (convert_to_integer): Likewise.
11639         * expmed.c (expand_shift_1): Likewise.
11640
11641         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
11642         a bitsize.
11643
11644         * optabs.c (expand_binop): Tighten conditions for doubleword
11645         expansions.
11646         (widen_bswap): Assert that mode bitsize and precision are the same.
11647         * stor-layout.c (get_best_mode): Skip modes that have lower
11648         precision than bitsize.
11649         * recog.c (simplify_while_replacing): Assert that bitsize and
11650         precision are the same.
11651
11652 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11653
11654         * Makefile.in (LIBGCOV): Remove.
11655         (libgcc.mvars): Remove LIBGCOV.
11656         * libgov.c: Move to ../libgcc.
11657
11658 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11659
11660         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
11661
11662 2011-07-08  Martin Jambor  <mjambor@suse.cz>
11663
11664         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
11665         is too big for total scalarization.
11666
11667 2011-07-07  Richard Henderson  <rth@redhat.com>
11668
11669         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
11670         (DBX_DEBUGGING_INFO): Undef.
11671
11672 2011-07-07  Richard Henderson  <rth@redhat.com>
11673
11674         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
11675         Handle some opcodes specially for debugging.
11676         * print-rtl.c: Include dwarf2out.h
11677         (print_rtx): Handle NOTE_INSN_CFI.
11678         * Makefile.in (print-rtl.o): Update.
11679
11680 2011-07-07  Richard Henderson  <rth@redhat.com>
11681
11682         * tree-pass.h (pass_dwarf2_frame): Declare.
11683         * passes.c (init_optimization_passes): Add it.
11684         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
11685         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
11686         make static, do not call add_cfis_to_fde.
11687         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
11688         dwarf2out_frame_init): Merge into...
11689         (execute_dwarf2_frame): ... here.  New function.
11690         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
11691         saved_do_cfi_asm to a tri-state variable.
11692         (gate_dwarf2_frame, pass_dwarf2_frame): New.
11693         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
11694         if it has yet to be done.  Don't call dwarf2cfi_function_init.
11695         * dwarf2out.h, debug.h: Update decls.
11696         * final.c (final_start_function): Don't call
11697         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
11698         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
11699         * toplev.c (lang_dependent_init): Likewise.
11700
11701 2011-07-07  Richard Henderson  <rth@redhat.com>
11702
11703         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
11704         FDE_TABLE_INCREMENT): Replace with...
11705         (fde_vec): ... this, a new vector.
11706         (current_fde): Remove.  Replace all users with cfun->fde.
11707         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
11708         (size_of_aranges, dwarf2out_finish): Likewise.
11709         (dwarf2out_alloc_current_fde): Break out from ...
11710         (dwarf2out_begin_prologue): ... here.
11711         (dwarf2out_frame_init): Remove.
11712         * dwarf2cfi.c: Update all users of current_fde.
11713         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
11714         * dwarf2out.h: Update decls.
11715         (dw_fde_node): Add fde_index member.
11716         * function.h (struct function): Add fde member.
11717
11718 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
11719             Richard Henderson  <rth@redhat.com>
11720
11721         * dwarf2cfi.c (add_cfi): Remove.
11722         (dwarf2out_cfi_label): Remove force argument.  Only generate the
11723         label name.
11724         (add_fde_cfi): Simplify the different code paths.
11725         (add_cie_cfi): New.
11726         (old_cfa, old_cfa_remember): New.
11727         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
11728         (last_reg_save_label): Remove.
11729         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
11730         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
11731         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
11732         dwarf2out_frame_debug_cfa_expression,
11733         dwarf2out_frame_debug_cfa_restore,
11734         dwarf2out_frame_debug_cfa_window_save,
11735         dwarf2out_frame_debug_expr): Remove label parameter.
11736         (cfi_label_required_p, add_cfis_to_fde): New.
11737         (dwarf2out_frame_debug_after_prologue): New.
11738         (dwarf2cfi_frame_init): Initialize old_cfa.
11739         (dwarf2out_frame_debug_restore_state): Likewise.
11740         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
11741         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
11742         * final.c (final_start_function): Call
11743         dwarf2out_frame_debug_after_prologue.
11744
11745 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
11746             Richard Henderson  <rth@redhat.com>
11747
11748         * dwarf2cfi.c (cfi_insn): New.
11749         (dwarf2out_cfi_label): Don't emit cfi label here.
11750         (add_fde_cfi): Create a NOTE_INSN_CFI.
11751         (dwarf2out_frame_debug): Setup cfi_insn.
11752         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
11753         (dwarf2out_cfi_begin_epilogue): Make static.
11754         (dwarf2out_frame_debug_restore_state): Make static.
11755         * dwarf2out.c (output_cfi_directive): Make static.
11756         (dwarf2out_emit_cfi): New.
11757         * dwarf2out.h: Update.
11758         * final.c (final): Remove CFI notes.
11759         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
11760         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
11761         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
11762         * insn-notes.def (NOTE_INSN_CFI): New.
11763         (NOTE_INSN_CFI_LABEL): New.
11764         * rtl.h (union rtunion_def): Add rt_cfi member.
11765         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
11766
11767 2011-07-07  Richard Henderson  <rth@redhat.com>
11768
11769         * dwarf2cfi.c: New file.
11770         * Makefile.in (OBJS): Add it.
11771         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
11772         * gengtype.c (open_base_files): Include dwarf2out.h.
11773         * coretypes.h (enum var_init_status): Move from ...
11774         * rtl.h: ... here.
11775         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
11776         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
11777         expand_builtin_dwarf_sp_column, init_return_column_size,
11778         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
11779         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
11780         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
11781         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
11782         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
11783         compute_barrier_args_size, dwarf2out_args_size,
11784         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
11785         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
11786         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
11787         queue_reg_save, dwarf2out_flush_queued_reg_saves,
11788         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
11789         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
11790         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
11791         dwarf2out_frame_debug_cfa_expression,
11792         dwarf2out_frame_debug_cfa_restore,
11793         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
11794         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
11795         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
11796         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
11797         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
11798         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
11799         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
11800         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
11801         dw_loc_descr_node): Move to dwarf2out.h.
11802         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
11803         mem_loc_descriptor): Export.
11804         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
11805         (dwarf2out_frame_init): Extract CIE generation code to
11806         dwarf2cfi_frame_init.
11807
11808 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
11809
11810         PR target/49660
11811         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
11812         MASK_V8PLUS, remove commented out flag and reorder.
11813
11814 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
11815
11816         PR c/49644
11817         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
11818         one non-complex and one complex argument, call c_save_expr on both
11819         operands.
11820
11821 2011-07-07  Martin Jambor  <mjambor@suse.cz>
11822
11823         PR middle-end/49495
11824         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
11825         (verify_cgraph_node): Some functinality moved to
11826         verify_edge_corresponds_to_fndecl, call it.
11827
11828 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
11829
11830         * config.gcc (*local*): Remove.
11831         * doc/install-old.texi: Don't mention local configurations.
11832
11833 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
11834
11835         PR debug/49522
11836         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
11837         referencing debug insns that have been reset.
11838         (dead_debug_insert_before): Don't assert reg is non-NULL,
11839         instead return immediately if it is NULL.
11840
11841 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
11842
11843         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
11844
11845 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
11846
11847         * hw-doloop.c: New file.
11848         * hw-doloop.h: New file.
11849         * Makefile.in (OBJS): Add hw-doloop.o.
11850         (hw-doloop.o): New rule.
11851         ($(obj_out_file)): Add hw-doloop.h dependency.
11852         * config/bfin/bfin.c: Include "hw-doloop.h".
11853         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
11854         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
11855         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
11856         type changed to hwloop_info.  Return bool, true if the loop was
11857         successfully optimized.  Remove code that was moved to
11858         hw-doloop.c, and adjust other parts.
11859         (hwloop_fail): New static function, containing parts that used
11860         to be in bfin_optimize_loop.
11861         (bfin_discover_loop, bfin_discover_loops, free_loops,
11862         bfin_reorder_loops): Remove.
11863         (hwloop_pattern_reg): New static function.
11864         (bfin_doloop_hooks): New variable.
11865         (bfin_reorg_loops): Remove most code, call reorg_loops.
11866         * config/bfin/bfin.md (doloop_end splitter): Also enable if
11867         loop counter is a memory_operand.
11868
11869 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
11870
11871         * config.gcc: Support --with-multilib-list for x86 Linux targets.
11872
11873         * configure.ac: Mention x86-64 for --with-multilib-list.
11874         * configure: Regenerated.
11875
11876         * config/i386/gnu-user64.h (SPEC_64): Support x32.
11877         (SPEC_32): Likewise.
11878         (ASM_SPEC): Likewise.
11879         (LINK_SPEC): Likewise.
11880         (TARGET_THREAD_SSP_OFFSET): Likewise.
11881         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
11882         (SPEC_X32): New.
11883
11884         * config/i386/i386.h (TARGET_X32): New.
11885         (TARGET_LP64): New.
11886         (LONG_TYPE_SIZE): Likewise.
11887         (POINTER_SIZE): Likewise.
11888         (POINTERS_EXTEND_UNSIGNED): Likewise.
11889         (OPT_ARCH64): Support x32.
11890         (OPT_ARCH32): Likewise.
11891
11892         * config/i386/i386.opt (mx32): New.
11893
11894         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
11895         (GLIBC_DYNAMIC_LINKERX32): Likewise.
11896         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
11897         (GLIBC_DYNAMIC_LINKERX32): Likewise.
11898
11899         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
11900         (BIONIC_DYNAMIC_LINKERX32): Likewise.
11901         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
11902
11903         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
11904
11905         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
11906
11907         * doc/invoke.texi: Document -mx32.
11908
11909 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
11910
11911         * doc/invoke.texi (mwords-little-endian): Deprecate.
11912         * config/arm/arm.opt (mwords-little-endian): Likewise.
11913         * config/arm/arm.c (arm_option_override): Warn about the deprecation
11914         of -mwords-little-endian.
11915
11916 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
11917
11918         * reload1.c (choose_reload_regs): Use mode sizes to check whether
11919         an old reload register completely defines the required value.
11920
11921 2011-07-07  Richard Guenther  <rguenther@suse.de>
11922
11923         * fold-const.c (fold_unary_loc): Do not strip sign-changes
11924         for NEGATE_EXPR.
11925
11926 2011-07-07  Richard Guenther  <rguenther@suse.de>
11927
11928         * tree-vrp.c (simplify_conversion_using_ranges): New function.
11929         (simplify_stmt_using_ranges): Call it.
11930
11931 2011-07-07  Kai Tietz  <ktietz@redhat.com>
11932
11933         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
11934         (lookup_logical_inverted_value): Likewise.
11935         (simplify_bitwise_binary_1): Likewise.
11936         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
11937
11938 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
11939
11940         * gcc.c (%[Spec]): Don't document.
11941         (struct spec_list): Update comment.
11942         (do_spec_1): Don't handle %[Spec].
11943         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
11944
11945 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
11946
11947         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
11948         default based on TARGET_ASM_NAMED_SECTION.
11949         * common/common-target.def (have_named_sections): Default to true.
11950         * common/config/default-common.c: Don't include tm.h.
11951         * common/config/picochip/picochip-common.c
11952         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
11953         * common/config/m32c/m32c-common.c: Remove.
11954         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
11955         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
11956         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
11957         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
11958         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
11959         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
11960         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
11961
11962 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
11963
11964         PR middle-end/49640
11965         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
11966         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
11967
11968 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11969
11970         PR libmudflap/49550
11971         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
11972
11973 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11974
11975         PR target/39150
11976         * configure.ac (gcc_cv_as_hidden): Also accept
11977         x86_64-*-solaris2.1[0-9]*.
11978         (gcc_cv_as_cfi_directive): Likewise.
11979         (gcc_cv_as_comdat_group_group): Likewise.
11980         (set_have_as_tls): Likewise.
11981         * configure: Regenerate.
11982         * config.gcc (i[34567]86-*-solaris2*): Also handle
11983         x86_64-*-solaris2.1[0-9]*.
11984         * config.host (i[34567]86-*-solaris2*): Likewise.
11985         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
11986         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
11987         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
11988         (TARGET_LD_EMULATION): Use it.
11989         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
11990         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
11991         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
11992         (ASM_CPU64_DEFAULT_SPEC): Define.
11993         (ASM_CPU_SPEC): Use %(asm_cpu_default).
11994         (ASM_SPEC): Redefine.
11995         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
11996         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
11997         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
11998         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
11999         configuration.
12000         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
12001
12002 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12003
12004         * config/sol2.h (ASM_SPEC): Split into ...
12005         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
12006         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
12007         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
12008         (ASM_SPEC): Use ASM_SPEC_BASE.
12009         * config/sparc/sol2.h (ASM_SPEC): Redefine.
12010
12011 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
12012
12013         * config/avr/avr.md (*reload_insi): Change predicate #1 to
12014         const_int_operand.  Ditto for peep2 producing this insn.
12015         Add argument to output_reload_insisf call.
12016         (*movsi,*movsf): Add argument to output_movsisf call.
12017         (*reload_insf): New insn and new peep2 to produce it.
12018         * config/avr/avr-protos.h (output_movsisf): Change prototype.
12019         (output_reload_insisf): Change prototype.
12020         * config/avr/avr.c (avr_asm_len): New function.
12021         (output_reload_insisf): Rewrite.
12022         (output_movsisf): Change prototype.  output_reload_insisf for
12023         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
12024         (adjust_insn_length): Add argument to output_movsisf and
12025         output_reload_insisf call.
12026
12027 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
12028
12029         * emit-rtl.c (paradoxical_subreg_p): New function.
12030         * rtl.h (paradoxical_subreg_p): Declare.
12031         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
12032         apply_distributive_law, simplify_comparison, simplify_set): Use it.
12033         * cse.c (record_jump_cond, cse_insn): Likewise.
12034         * expr.c (force_operand): Likewise.
12035         * rtlanal.c (num_sign_bit_copies1): Likewise.
12036         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
12037         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
12038         (push_reload): Use precision to check for paradoxical subregs.
12039         * expmed.c (extract_bit_field_1): Likewise.
12040
12041         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
12042         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
12043         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
12044         simplify_set, simplify_logical, expand_compound_operation,
12045         make_extraction, force_to_mode, if_then_else_cond, extended_count,
12046         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
12047         record_value_for_reg): Likewise.
12048         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
12049         * simplify-rtx. c (simplify_unary_operation_1,
12050         simplify_binary_operation_1, simplify_const_relational_operation):
12051         Likewise.
12052
12053         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
12054         instead of GET_MODE_BITSIZE where appropriate.
12055         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
12056         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
12057         init_num_sign_bit_copies_in_rep): Likewise.
12058         * cse.c (fold_rtx, cse_insn): Likewise.
12059         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
12060         * simplify-rtx.c (simplify_unary_operation_1,
12061         simplify_const_unary_operation, simplify_binary_operation_1,
12062         simplify_const_binary_operation, simplify_ternary_operation,
12063         simplify_const_relational_operation, simplify_subreg): Likewise.
12064         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
12065         simplify_if_then_else, simplify_set, expand_compound_operation,
12066         expand_field_assignment, make_extraction, if_then_else_cond,
12067         make_compound_operation, force_to_mode, make_field_assignment,
12068         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
12069         extended_count, try_widen_shift_mode, simplify_shift_const_1,
12070         simplify_comparison, record_promoted_value, simplify_compare_const,
12071         record_dead_and_set_regs_1): Likewise.
12072
12073         Revert:
12074         * simplify-rtx.c (simplify_const_binary_operation): Use the
12075         shift_truncation_mask hook instead of performing modulo by width.
12076         Compare against mode precision, not bitsize.
12077         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
12078         Use shift_truncation_mask instead of constructing the value manually.
12079
12080 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
12081
12082         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
12083         declaration.
12084         (rs6000_save_toc_in_prologue_p): Ditto.
12085
12086         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
12087         up the static chain (r11) during indirect function calls.
12088         (-msave-toc-indirect): New undocumented debug switch.
12089
12090         * config/rs6000/rs6000.c (struct machine_function): Add
12091         save_toc_in_prologue field to note whether the prologue needs to
12092         save the TOC value in the reserved stack location.
12093         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
12094         to save the TOC in the prologue, do so.
12095         (rs6000_trampoline_init): Don't allow creating AIX style
12096         trampolines if -mno-r11 is in effect.
12097         (rs6000_call_indirect_aix): New function to create AIX style
12098         indirect calls, adding support for -mno-r11 to suppress loading
12099         the static chain, and saving the TOC in the prologue instead of
12100         the call body.
12101         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
12102         TOC in the prologue.
12103
12104         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
12105         register numbers.
12106         (TOC_REGNUM): Ditto.
12107         (STATIC_CHAIN_REGNUM): Ditto.
12108         (ARG_POINTER_REGNUM): Ditto.
12109         (SFP_REGNO): Delete, unused.
12110         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
12111         function descriptor offsets.
12112         (TOC_SAVE_OFFSET_64BIT): Ditto.
12113         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
12114         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
12115         (AIX_FUNC_DESC_SC_32BIT): Ditto.
12116         (AIX_FUNC_DESC_SC_64BIT): Ditto.
12117         (ptrload): New mode attribute for the appropriate load of a pointer.
12118         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
12119         (call_indirect_aix64): Ditto.
12120         (call_value_indirect_aix32): Ditto.
12121         (call_value_indirect_aix64): Ditto.
12122         (call_indirect_nonlocal_aix32_internal): Ditto.
12123         (call_indirect_nonlocal_aix32): Ditto.
12124         (call_indirect_nonlocal_aix64_internal): Ditto.
12125         (call_indirect_nonlocal_aix64): Ditto.
12126         (call): Rewrite AIX indirect function calls.  Add support for
12127         eliminating the static chain, and for moving the save of the TOC
12128         to the function prologue.
12129         (call_value): Ditto.
12130         (call_indirect_aix<ptrsize>): Ditto.
12131         (call_indirect_aix<ptrsize>_internal): Ditto.
12132         (call_indirect_aix<ptrsize>_internal2): Ditto.
12133         (call_indirect_aix<ptrsize>_nor11): Ditto.
12134         (call_value_indirect_aix<ptrsize>): Ditto.
12135         (call_value_indirect_aix<ptrsize>_internal): Ditto.
12136         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
12137         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
12138         (call_nonlocal_aix32): Relocate in the rs6000.md file.
12139         (call_nonlocal_aix64): Ditto.
12140
12141         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
12142         -mno-r11 documentation.
12143
12144 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
12145
12146         PR other/49658
12147         * doc/extend.texi (Compound Literals): Fix typo.
12148
12149 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
12150
12151         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
12152
12153 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
12154
12155         * configure.ac (plugin-version.h): Generate
12156         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
12157         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
12158         macros.
12159
12160         * configure: Regenerate.
12161
12162         * doc/plugins.texi (Building GCC plugins): Mention
12163         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
12164
12165 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
12166
12167         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
12168         * combine.c (make_extraction, gen_lowpart_or_truncate,
12169         apply_distributive_law, simplify_comparison,
12170         reg_truncated_to_mode, record_truncated_value): Use it.
12171         * cse.c (notreg_cost): Likewise.
12172         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
12173         * expr.c (convert_move, convert_modes): Likewise.
12174         * optabs.c (expand_binop, expand_unop): Likewise.
12175         * postreload.c (move2add_last_label): Likewise.
12176         * regmove.c (optimize_reg_copy_3): Likewise.
12177         * rtlhooks.c (gen_lowpart_general): Likewise.
12178         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
12179
12180 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
12181
12182         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
12183
12184 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
12185
12186         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
12187         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
12188         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
12189         (simplify_const_unary_operation, simplify_binary_operation_1,
12190         simplify_const_binary_operation, simplify_const_relational_operation):
12191         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
12192         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
12193         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
12194         simplify_shift_const_1, simplify_comparison): Likewise.
12195         * expr.c (convert_modes): Likewise.
12196         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
12197         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
12198         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
12199
12200         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
12201
12202 2011-07-06  Richard Guenther  <rguenther@suse.de>
12203
12204         PR tree-optimization/49645
12205         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
12206         register variables.
12207         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
12208         in type qualification here ...
12209         (copy_reference_ops_from_ref): ... not here.
12210         (vn_reference_lookup_3): ... or here.
12211         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
12212         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
12213
12214 2011-07-06  Ian Lance Taylor  <iant@google.com>
12215
12216         * doc/install.texi (Configuration): It's
12217         --enable-gnu-indirect-function, not --enable-indirect-function.
12218
12219 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
12220
12221         * simplify-rtx.c (simplify_const_binary_operation): Use the
12222         shift_truncation_mask hook instead of performing modulo by width.
12223         Compare against mode precision, not bitsize.
12224         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
12225         Use shift_truncation_mask instead of constructing the value manually.
12226
12227 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
12228
12229         PR middle-end/47383
12230         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
12231         address computation and convert to address_mode if needed.
12232
12233 2011-07-06  Richard Guenther  <rguenther@suse.de>
12234
12235         * tree.c (build_common_tree_nodes_2): Merge with
12236         build_common_tree_nodes.
12237         * tree.h (build_common_tree_nodes): Adjust prototype.
12238         (build_common_tree_nodes_2): Remove.
12239         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
12240         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
12241
12242 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
12243
12244         PR tree-optimization/49618
12245         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
12246         t recurse on the decl.
12247         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
12248         return true if expr isn't known to be defined in current
12249         TU or some other LTO partition.
12250
12251 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
12252
12253         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
12254         override CASE_VALUES_THRESHOLD.
12255
12256         * stmt.c (toplevel): Include params.h.
12257         (case_values_threshold): Use the --param case-values-threshold
12258         value if non-zero, otherwise use machine dependent value.
12259         (expand_case): Use case_values_threshold.
12260
12261         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
12262
12263         * doc/invoke.texi (--param case-values-threshold): Document.
12264
12265 2011-07-05  Richard Henderson  <rth@redhat.com>
12266
12267         * dwarf2out.c (dwarf2out_cfi_label): Make static.
12268         (dwarf2out_flush_queued_reg_saves): Make static.
12269         (dwarf2out_reg_save): Remove.
12270         (dwarf2out_return_save): Remove.
12271         (dwarf2out_return_reg): Remove.
12272         (dwarf2out_reg_save_reg): Remove.
12273         (dwarf2out_def_cfa): Merge into ...
12274         (dwarf2out_frame_init): ... here.
12275         * dwarf2out.h, tree.h: Remove declarations as necessary.
12276
12277 2011-07-05  Richard Henderson  <rth@redhat.com>
12278
12279         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
12280         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
12281         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
12282         the alloc insn.
12283
12284         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
12285         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
12286         (process_epilogue): Don't call dwarf2out_def_cfa.
12287
12288         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
12289         indicate the return address save.
12290         (process_cfa_register): Likewise.
12291
12292         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
12293         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
12294
12295         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
12296         for ar.pfs save at alloc insn.
12297
12298 2011-07-05  Richard Henderson  <rth@redhat.com>
12299
12300         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
12301         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
12302         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
12303         stack pointer save.
12304         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
12305         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
12306         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
12307         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
12308
12309 2011-07-05  Richard Henderson  <rth@redhat.com>
12310
12311         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
12312         VUNSPEC_* constants here instead of via define_constants.
12313         (VUNSPEC_PEM): New constant.
12314         (procedure_entry_mask): New insn.
12315         (prologue): New expander.
12316         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
12317         (vax_expand_prologue): Rename from vax_output_function_prologue;
12318         emit rtl instead of text.
12319         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
12320         (print_operand): Add 'x' prefix.
12321
12322 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
12323
12324         PR middle-end/47715
12325         * calls.c (precompute_register_parameters): Promote the function
12326         argument before checking non-legitimate constant.
12327
12328 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
12329
12330         PR tree-optimization/47654
12331         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
12332         (lst_do_strip_mine_loop): Return an int.
12333         (lst_do_strip_mine): Same.
12334         (scop_do_strip_mine): Same.
12335         (scop_do_block): Loop blocking should strip-mine at least two loops.
12336         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
12337         (scop_do_interchange): Same.
12338         * graphite-poly.h (scop_do_interchange): Update declaration.
12339         (scop_do_strip_mine): Same.
12340
12341 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
12342
12343         * graphite-clast-to-gimple.c (precision_for_value): Removed.
12344         (precision_for_interval): Removed.
12345         (gcc_type_for_interval): Use mpz_sizeinbase.
12346
12347 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
12348
12349         * graphite-ppl.h (value_max): Correct computation of max.
12350
12351 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
12352
12353         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
12354
12355 2011-07-05  Richard Guenther  <rguenther@suse.de>
12356
12357         * c-decl.c (c_init_decl_processing): Defer building common
12358         tree nodes to c_common_nodes_and_builtins.
12359
12360 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
12361
12362         PR tree-optimization/49580
12363         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
12364         the loop's number of iterations.
12365         * tree-parloops.c (transform_to_exit_first_loop): Add the
12366         handling of the loop's number of iterations before the call
12367         to gimple_duplicate_sese_tail.
12368         Insert the stmt caclculating the new rhs of the loop's
12369         condition stmt to the preheader instead of iters_bb.
12370
12371 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
12372
12373         PR rtl-optimization/47449
12374         * fwprop.c (forward_propagate_subreg): Don't propagate hard
12375         register nor zero/sign extended hard register.
12376
12377 2011-07-05  Richard Guenther  <rguenther@suse.de>
12378
12379         PR tree-optimization/49518
12380         PR tree-optimization/49628
12381         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
12382         irrelevant and invariant data-references.
12383         (vect_analyze_data_ref_access): For invariant loads clear the
12384         group association.
12385
12386 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
12387
12388         PR rtl-optimization/49619
12389         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
12390         pass VOIDmode as op0_mode to recursive call, and return temp even
12391         when different from tor, just if it is not IOR of the original
12392         PLUS arguments.
12393
12394         PR rtl-optimization/49472
12395         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
12396         negating MULT, negate the second operand instead of first.
12397         (simplify_binary_operation_1) <case MULT>: If one operand is
12398         a NEG and the other is MULT, don't attempt to optimize by negation
12399         of the MULT operand if it only moves the NEG operation around.
12400
12401         PR debug/49602
12402         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
12403         get_current_def return value if it can't be trusted to be
12404         the current value of the variable in the current bb.
12405
12406 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
12407
12408         PR target/49600
12409         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
12410         general register to memory for !TARGET_INTER_UNIT_MOVES.
12411
12412 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
12413
12414         PR target/44643
12415         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
12416         instead of TREE_READONLY.
12417
12418 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
12419
12420         * doc/extend.texi (AVR Built-in Functions): Update documentation
12421         of __builtin_avr_fmul*.
12422         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
12423         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
12424         * config/avr/avr.md (fmul): Rename to fmul_insn.
12425         (fmuls): Rename to fmuls_insn.
12426         (fmulsu): Rename to fmulsu_insn.
12427         (fmul,fmuls,fmulsu): New expander.
12428         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
12429         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
12430         * config/avr/libgcc.S (__fmul): New function.
12431         (__fmuls): New function.
12432         (__fmulsu,__fmulsu_exit): New function.
12433
12434 2011-07-04  Richard Guenther  <rguenther@suse.de>
12435
12436         PR tree-optimization/49615
12437         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
12438         basic-block index check.
12439
12440 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
12441
12442         * longlong.h (count_leading_zeros, count_trailing_zeros,
12443         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
12444         resp. 64.
12445
12446 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
12447
12448         PR tree-optimization/49610
12449         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
12450         a basic block.
12451
12452 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
12453             Olivier Hainque  <hainque@adacore.com>
12454             Nicolas Setton  <setton@adacore.com>
12455
12456         * tree.h (TYPE_ARTIFICIAL): New flag.
12457         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
12458         the DIE of the type if it is artificial.
12459         (gen_array_type_die): Likewise.
12460         (gen_enumeration_type_die): Likewise.
12461         (gen_struct_or_union_type_die): Likewise.
12462         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
12463         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
12464
12465 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
12466
12467         * tree-object-size.c (pass_through_call): Handle
12468         BUILT_IN_ASSUME_ALIGNED.
12469
12470 2011-07-01  Martin Jambor  <mjambor@suse.cz>
12471
12472         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
12473
12474 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
12475
12476         PR middle-end/48016
12477         * explow.c (update_nonlocal_goto_save_area): Use proper mode
12478         for stack save area.
12479         * function.c (expand_function_start): Likewise.
12480
12481 2011-07-01  Richard Guenther  <rguenther@suse.de>
12482
12483         PR middle-end/49596
12484         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
12485         may have unknown refs.
12486
12487 2011-07-01  Kai Tietz  <ktietz@redhat.com>
12488
12489         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
12490
12491 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12492
12493         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
12494         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
12495         (Specific, mips-sgi-irix6): Likewise.
12496
12497 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12498
12499         PR libmudflap/49549
12500         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
12501
12502 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
12503
12504         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
12505         [idx]= and [idx1 ... idx2]= before initializers if needed for
12506         array initializers.
12507
12508 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
12509
12510         * config.gcc (score-*-elf): Remove score7.o.
12511         * config/score/t-score-elf: Likewise.
12512         * config/score/score.c: Merge score7 to score.c and
12513         remove forwarding functions.
12514         * config/score/score7.c: Deleted.
12515         * config/score/score7.h: Deleted.
12516
12517 2011-07-01  Richard Guenther  <rguenther@suse.de>
12518
12519         PR tree-optimization/49603
12520         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
12521
12522 2011-06-30  Martin Jambor  <mjambor@suse.cz>
12523
12524         * tree-sra.c (struct access): Rename total_scalarization to
12525         grp_total_scalarization
12526         (completely_scalarize_var): New function.
12527         (sort_and_splice_var_accesses): Set total_scalarization in the
12528         representative access.
12529         (analyze_access_subtree): Propagate total scalarization accross the
12530         tree, no holes in totally scalarized trees, simplify coverage
12531         computation.
12532         (analyze_all_variable_accesses): Call completely_scalarize_var instead
12533         of completely_scalarize_record.
12534
12535 2011-06-30  Richard Henderson  <rth@redhat.com>
12536
12537         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
12538         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
12539         * config/i386/i386.c: Don't include dwarf2out.h.
12540         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
12541         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
12542         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
12543         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
12544         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
12545
12546 2011-06-30  Richard Henderson  <rth@redhat.com>
12547
12548         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
12549         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
12550         * final.c (final_scan_insn): Look for it, and invoke
12551         dwarf2out_frame_debug before the insn if found.
12552
12553 2011-06-30  Richard Henderson  <rth@redhat.com>
12554
12555         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
12556         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
12557
12558 2011-06-30  Richard Henderson  <rth@redhat.com>
12559
12560         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
12561         Define a vector of this type.
12562         (regs_saved_in_regs): Use a VEC.
12563         (num_regs_saved_in_regs): Remove.
12564         (compare_reg_or_pc): New.
12565         (record_reg_saved_in_reg): Split out from...
12566         (dwarf2out_flush_queued_reg_saves): ... here.
12567         (clobbers_queued_reg_save): Update for VEC.
12568         (reg_saved_in): Likewise.
12569         (dwarf2out_frame_debug_init): Likewise.
12570         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
12571         (dwarf2out_frame_debug_cfa_register): Likewise.
12572
12573 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
12574
12575         PR tree-optimization/49572
12576         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
12577         type of the RHS instead of that of the LHS for the expression type.
12578
12579 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
12580
12581         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
12582         unconditionally.
12583
12584 2011-06-30  Richard Guenther  <rguenther@suse.de>
12585
12586         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
12587         * tree-ssa-structalias.c (create_variable_info_for): Do not
12588         add initial constraints for non-var-decls.  Properly handle
12589         globals in other ltrans partitions.
12590         (intra_create_variable_infos): Manually create constraints for
12591         the fake no-alias parameter.
12592         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
12593         and assert there are no clones.
12594
12595 2011-06-30  Richard Guenther  <rguenther@suse.de>
12596
12597         PR tree-optimization/46787
12598         * tree-data-ref.c (dr_address_invariant_p): Remove.
12599         (find_data_references_in_stmt): Invariant accesses are ok now.
12600         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
12601         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
12602         invariant loads.
12603
12604 2011-06-30  Martin Jambor  <mjambor@suse.cz>
12605
12606         PR tree-optimization/49094
12607         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
12608         (build_accesses_from_assign): Use it.
12609
12610 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
12611
12612         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
12613         handling of BUILT_IN_ASSUME_ALIGNED.
12614
12615         PR debug/49364
12616         * dwarf2out.c (output_abbrev_section): Don't return early
12617         if abbrev_die_table_in_use is 1.
12618         (dwarf2out_finish): Instead don't call output_abbrev_section
12619         nor emit abbrev_section_label in that case.
12620
12621 2011-06-30  Nick Clifton  <nickc@redhat.com>
12622
12623         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
12624         for the V850E.
12625
12626 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
12627
12628         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
12629         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
12630
12631 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
12632
12633         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
12634         both pattern and original statements if necessary.
12635         (vect_transform_loop): Likewise.
12636         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
12637         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
12638         Mark the pattern statement only if the original statement doesn't
12639         have its own uses.
12640         (process_use): Call vect_mark_relevant with additional parameter.
12641         (vect_mark_stmts_to_be_vectorized): Likewise.
12642         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
12643         (vect_analyze_stmt): Handle both pattern and original statements
12644         if necessary.
12645         (vect_transform_stmt): Don't store vectorized pattern statement
12646         in the original statement.
12647         (vect_is_simple_use_1): Use related pattern statement only if the
12648         original statement is irrelevant.
12649         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
12650
12651 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
12652
12653         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
12654         option.
12655         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
12656         entry.
12657         (TARGET_AVX128_OPTIMAL): New definition.
12658         * config/i386/i386.c (initial_ix86_tune_features): Initialize
12659         X86_TUNE_AVX128_OPTIMAL entry.
12660         (ix86_option_override_internal): Enable the generation
12661         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
12662         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
12663         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
12664
12665 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
12666
12667         PR tree-optimization/49539
12668         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
12669         names by means of stmt_references_abnormal_ssa_name.
12670         (associate_plusminus): Call can_propagate_from before propagating
12671         from definition statements.
12672         (ssa_forward_propagate_and_combine): Remove superfluous newline.
12673
12674 2011-06-29  Richard Guenther  <rguenther@suse.de>
12675
12676         * doc/invoke.texi: Document -scev dump modifier.
12677         * tree-pass.h (TDF_SCEV): New dump flag.
12678         * tree-dump.c (dump_option_value_in): Add scev.
12679         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
12680         * tree-scalar-evolution.c: Likewise.
12681
12682 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
12683
12684         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
12685         (cxa_type_match): Correct declaration.
12686         (__gnu_unwind_pr_common): Reconstruct additional indirection
12687         when __cxa_type_match returns succeeded_with_ptr_to_base.
12688
12689 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12690
12691         PR rtl-optimization/49114
12692         * reload.c (struct replacement): Remove SUBREG_LOC member.
12693         (push_reload): Do not set it.
12694         (push_replacement): Likewise.
12695         (subst_reload): Remove dead code.
12696         (copy_replacements): Remove assertion.
12697         (copy_replacements_1): Do not handle SUBREG_LOC.
12698         (move_replacements): Likewise.
12699         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
12700         Detect subregs via recursive descent instead of via SUBREG_LOC.
12701
12702 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
12703
12704         * config/avr/avr.c (avr_encode_section_info): Dispatch to
12705         default_encode_section_info.
12706
12707 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
12708
12709         PR tree-optimization/49545
12710         * builtins.c (get_object_alignment_1): Update function comment.
12711         Do not use DECL_ALIGN for functions, but test
12712         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
12713         * fold-const.c (get_pointer_modulus_and_residue): Don't check
12714         for functions here.
12715         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
12716
12717 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
12718
12719         PR debug/49567
12720         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
12721         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
12722
12723 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
12724
12725         PR target/34734
12726         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
12727         about uninitialized data attributed 'progmem' from here...
12728         (avr_encode_section_info): ...to this new function.
12729         (TARGET_ENCODE_SECTION_INFO): New define.
12730         (avr_section_type_flags): For data in ".progmem.data", remove
12731         section flag SECTION_WRITE.
12732
12733 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
12734
12735         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
12736         _xmulhisi3_exit.
12737         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
12738         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
12739         (__umulhisi3): Ditto.
12740         * config/avr/avr.md (mulhisi3): New insn expender.
12741         (umulhisi3): New insn expender.
12742         (*mulhisi3_call): New insn.
12743         (*umulhisi3_call): New insn.
12744
12745 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
12746
12747         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
12748
12749 2011-06-28  Richard Henderson  <rth@redhat.com>
12750
12751         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
12752         all code and arguments that handled pushes.  Update all callers.
12753
12754 2011-06-28  Richard Henderson  <rth@redhat.com>
12755
12756         * config/arm/arm.c (arm_output_function_prologue): Don't call
12757         thumb1_output_function_prologue.
12758         (arm_expand_prologue): Avoid dead store.
12759         (number_of_first_bit_set): Use ctz_hwi.
12760         (thumb1_emit_multi_reg_push): New.
12761         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
12762         to emit the entire prologue as rtl.
12763         (thumb1_output_interwork): Split out from
12764         thumb1_output_function_prologue.
12765         (thumb1_output_function_prologue): Remove.
12766         (arm_attr_length_push_multi): Handle thumb1.
12767         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
12768         (prologue_thumb1_interwork): New.
12769         (*push_multi): Allow thumb1; use push_mult_memory_operand.
12770         * config/arm/predicates.md (push_mult_memory_operand): New.
12771
12772 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
12773
12774         * config/sparc/sync.md (*stbar): Delete.
12775         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
12776
12777 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
12778
12779         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
12780
12781 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12782
12783         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
12784         (TARGET_64BIT_DEFAULT): Define.
12785         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
12786         of tm_file.
12787         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
12788
12789 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
12790
12791         * common.opt (in_lto_p): New Variable entry.
12792         * flags.h (in_lto_p): Move to common.opt.
12793         * gcc.c: Include params.h.
12794         (set_option_handlers): Also use common_handle_option and
12795         target_handle_option.
12796         (main): Call global_init_params, finish_params and init_options_struct.
12797         * opts.c (debug_type_names): Move from toplev.c.
12798         (print_filtered_help): Access quiet_flag through opts pointer.
12799         (common_handle_option): Return early in the driver for some options.
12800         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
12801         opts pointer.
12802         * toplev.c (in_lto_p): Move to common.opt.
12803         (debug_type_names): Move to opts.c.
12804         * Makefile.in (OBJS): Remove opts.o.
12805         (OBJS-libcommon-target): Add opts.o.
12806         (gcc.o): Update dependencies.
12807
12808 2011-06-28  Kai Tietz  <ktietz@redhat.com>
12809
12810         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
12811
12812 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12813
12814         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
12815         with '=' constraint modifier.
12816         (*divdf3_vfp): Likewise.
12817         ("*mulsf3_vfp"): Likewise.
12818         ("*muldf3_vfp"): Likewise.
12819         ("*mulsf3negsf_vfp"): Likewise.
12820         ("*muldf3negdf_vfp"): Likewise.
12821
12822 2011-06-28  Nick Clifton  <nickc@redhat.com>
12823
12824         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
12825         relaxation when performing an incremental link.
12826
12827 2011-06-28  Kai Tietz  <ktietz@redhat.com>
12828
12829         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
12830         within BB from last to first.
12831
12832 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
12833
12834         * genattr-common.c: New.  Based on genattr.c.
12835         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
12836         (MOSTLYCLEANFILES): Add insn-attr-common.h.
12837         (opts.o): Update dependencies.
12838         (.PRECIOUS): Add insn-attr-common.h.
12839         (simple_rtl_generated_h): Add insn-attr-common.h.
12840         (build/genattr-common.o): New.
12841         (genprogrtl): Add attr-common.
12842         * genattr.c (main): Include insn-attr-common.h.  Don't generate
12843         definitions of DELAY_SLOTS or INSN_SCHEDULING.
12844         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
12845
12846 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
12847
12848         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
12849         avr-*-* and avr-*-rtems* targets.
12850
12851         * config/avr/elf.h: New file.
12852         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
12853         (TARGET_ASM_SELECT_SECTION): Define.
12854         (INIT_SECTION_ASM_OP): Undefine.
12855         (FINI_SECTION_ASM_OP): Undefine.
12856         (READONLY_DATA_SECTION_ASM_OP): Undefine.
12857         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
12858         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
12859         * config/avr/avr.h:
12860         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
12861         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
12862         (MAX_OFILE_ALIGNMENT): Move to elf.h.
12863         (STRING_LIMIT): Move to elf.h.
12864         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
12865         (ASM_DECLARE_OBJECT_NAME): Remove.
12866         (ESCAPES): Remove.
12867         (ASM_OUTPUT_SKIP): Remove.
12868         (DWARF2_DEBUGGING_INFO): Remove.
12869         (OBJECT_FORMAT_ELF): Remove.
12870         (USER_LABEL_PREFIX): Remove.
12871         (ASM_OUTPUT_EXTERNAL): Remove.
12872         (ASM_OUTPUT_ASCII): Remove.
12873         (TYPE_ASM_OP): Remove.
12874         (SIZE_ASM_OP): Remove.
12875         (WEAK_ASM_OP): Remove.
12876         (STRING_ASM_OP): Remove.
12877         (SET_ASM_OP): Remove.
12878         (ASM_WEAKEN_LABEL): Remove.
12879         (TYPE_OPERAND_FMT): Remove.
12880         (ASM_DECLARE_FUNCTION_SIZE): Remove.
12881         (ASM_FINISH_DECLARE_OBJECT): Remove.
12882         (NO_DOLLAR_IN_LABEL): Remove.
12883         (ASM_GENERATE_INTERNAL_LABEL): Remove.
12884         (ASM_OUTPUT_CASE_LABEL): Remove.
12885         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
12886         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
12887         (gas_output_ascii): Remove.
12888         (gas_output_limited_string): Remove.
12889         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
12890         * config/avr/avr-protos.h
12891         (gas_output_ascii): Remove prototye.
12892         (gas_output_limited_string): Remove prototype.
12893
12894 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
12895
12896         PR target/48637
12897         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
12898         asm operands.
12899
12900 2011-06-27  Jan Hubicka  <jh@suse.cz>
12901
12902         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
12903         node instead of references in node.
12904
12905 2011-06-27  Richard Henderson  <rth@redhat.com>
12906
12907         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
12908         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
12909         inside ifdef.
12910
12911 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
12912
12913         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
12914
12915         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
12916         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
12917         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
12918         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
12919         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
12920         (evaluate_stmt, execute_fold_all_builtins): Handle
12921         BUILT_IN_ASSUME_ALIGNED.
12922         * tree-ssa-dce.c (propagate_necessity): Likewise.
12923         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
12924         call_may_clobber_ref_p_1): Likewise.
12925         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
12926         (expand_builtin_assume_aligned): New function.
12927         * doc/extend.texi (__builtin_assume_aligned): Document.
12928
12929         PR debug/49544
12930         * cselib.c (promote_debug_loc): If cselib_preserve_constants
12931         and l has two DEBUG_INSN owned locs instead of just one, adjust
12932         the second location's setting_insn too.
12933
12934 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12935
12936         PR libmudflap/38738
12937         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
12938
12939 2011-06-27  Nick Clifton  <nickc@redhat.com>
12940
12941         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
12942         bit position of highest bit set into a count of the high zero bits.
12943
12944 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
12945
12946         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
12947
12948 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
12949
12950         PR lto/48492
12951         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
12952         to a NULL parent.
12953
12954 2011-06-27  Richard Guenther  <rguenther@suse.de>
12955
12956         PR tree-optimization/49394
12957         * passes.c (execute_one_pass): Restore current_pass after
12958         applying IPA transforms.
12959
12960 2011-06-27  Kai Tietz  <ktietz@redhat.com>
12961
12962         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
12963         out of type precision after operation.
12964         (find_bswap): Take for limit value the integer auto-promotion
12965         into account.
12966
12967 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
12968
12969         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
12970         forward scan as well.
12971
12972 2011-06-27  Tristan Gingold  <gingold@adacore.com>
12973
12974         PR target/44241
12975         * config/vms/vms-protos.h: New file.
12976         * config/vms/vms-crtlmap.map: New file.
12977         * config/vms/vms.c: New file.
12978         * config/vms/make-crtlmap.awk: New file.
12979         * config/vms/vms-crtl.h: File removed.
12980         * config/vms/vms-crtl-64.h: File removed.
12981         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
12982         * config/alpha/vms64.h: Do not include vms-crtl-64.h
12983         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
12984         clear some builtins on VMS.  Calls vms_patch_builtins.
12985         (avms_asm_output_external): Remove.
12986         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
12987         (struct crtl_name_spec): Remove
12988         (DO_CTRL_NAMES): Remove.
12989         * config/ia64/vms.h (struct crtl_name_spec): Remove
12990         (DO_CTRL_NAMES): Remove.
12991         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
12992         clear some builtins on VMS.  Calls vms_patch_builtins.
12993         (ia64_asm_output_external): Remove DO_CRTL_NAME.
12994         * config/ia64/vms64.h: Do not include vms-crtl-64.h
12995         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
12996
12997 2011-06-27  Tristan Gingold  <gingold@adacore.com>
12998
12999         * config/alpha/alpha.c (alpha_end_function): Always generate .end
13000         directive on VMS.
13001
13002 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
13003
13004         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
13005         the function receives nonlocal gotos.
13006
13007 2011-06-27  Richard Guenther  <rguenther@suse.de>
13008
13009         PR tree-optimization/49536
13010         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
13011         For non-scalar inner types use a scalar type according to
13012         the scalar inner mode.
13013
13014 2011-06-27  Richard Guenther  <rguenther@suse.de>
13015
13016         PR tree-optimization/49365
13017         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
13018
13019 2011-06-27  Richard Guenther  <rguenther@suse.de>
13020
13021         PR tree-optimization/49169
13022         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
13023         the alignment of function decls.
13024
13025 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
13026
13027         PR target/47997
13028         * config/darwin.c (darwin_mergeable_string_section): Place string
13029         constants in '.cstring' rather than '.const' when CF/NSStrings are
13030         active.
13031
13032 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
13033
13034         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
13035         (emit_save_register_window): Likewise.
13036         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
13037         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
13038         Swap back %o7/%i7 in register naming.
13039
13040 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
13041
13042         PR driver/49371
13043         * config/darwin.c (darwin_override_options): Improve warning when
13044         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
13045         is given with fpie/fPIE.
13046         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
13047         * config/darwin9.h (PIE_SPEC): New.
13048
13049 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
13050
13051         * timevar.c (timevar_print): Increase width for display of timevar
13052         name.
13053
13054 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
13055
13056         PR c++/46400
13057         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
13058         instead of TYPE_CHAIN for chain_next for types.
13059
13060 2011-06-24  Richard Henderson  <rth@redhat.com>
13061
13062         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
13063         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
13064         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
13065         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
13066         (sparc_flat_expand_prologue): Emit individual instructions
13067         instead of one of the above.
13068
13069 2011-06-24  Easwaran Raman  <eraman@google.com>
13070
13071         PR rtl-optimization/49429
13072         PR target/49454
13073         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
13074         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
13075         used to copy y into x.
13076         * calls.c (initialize_argument_information): Mark
13077         an argument addressable if it is passed by invisible reference.
13078         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
13079         if it is passed by reference.
13080
13081 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
13082
13083         PR rtl-optimization/49504
13084         * rtlanal.c (nonzero_bits1): Properly handle addition or
13085         subtraction of a pointer in Pmode if pointers extend unsigned.
13086         (num_sign_bit_copies1): Likewise.
13087
13088 2011-06-24  Martin Jambor  <mjambor@suse.cz>
13089
13090         PR tree-optimizations/49516
13091         * tree-sra.c (sra_modify_assign): Choose the safe path for
13092         aggregate copies if we also did scalar replacements.
13093
13094 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13095
13096         PR target/49335
13097         * config/arm/predicates.md (add_operator): New.
13098         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
13099
13100 2011-06-24  Andi Kleen  <ak@linux.intel.com>
13101
13102         * tree-sra.c (type_internals_preclude_sra_p): Add msg
13103         parameter. Split up ifs and report reason in *msg.
13104         (reject): Add.
13105         (find_var_candiate): Add msg variable.
13106         Split up ifs and report reason to reject.
13107         (find_param_candidates): Add msg variable.
13108         Pass msg to type_internals_preclude_sra_p.
13109
13110 2011-06-23  Jeff Law  <law@redhat.com>
13111
13112         PR middle-end/48770
13113         * reload.h (reload): Change to return a bool.
13114         * ira.c (ira): If requested by reload, run a fast DCE pass after
13115         reload has completed.  Fix comment typo.
13116         * reload1.c (need_dce): New file scoped static.
13117         (reload): Set reload_completed here.  Return whether or not a DCE
13118         pass after reload is needed.
13119         (delete_dead_insn): Set need_dce as needed.
13120
13121         PR middle-end/49465
13122         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
13123         to detect threading through joiner block.  If there was already
13124         an edge to the new target, then do not change the PHI nodes.
13125
13126 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
13127
13128         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
13129         get_pointer_alignment to see if base isn't sufficiently aligned.
13130
13131 2011-06-23  Jan Hubicka  <jh@suse.cz>
13132
13133         PR tree-optimize/49373
13134         * tree-pass.h (all_late_ipa_passes): Declare.
13135         * cgraphunit.c (init_lowered_empty_function): Fix properties.
13136         (cgraph_optimize): Execute late passes; remove unreachable funcions
13137         after materialization.
13138         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
13139         LTOing.
13140         * passes.c (all_late_ipa_passes): Declare.
13141         (dump_passes, register_pass): Handle late ipa passes.
13142         (init_optimization_passes): Move ipa_pta to late passes; schedule
13143         fixup_cfg at beggining of all_passes.
13144         (apply_ipa_transforms): New function.
13145         (execute_one_pass): When doing simple ipa pass, apply all transforms.
13146
13147 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
13148
13149         * params.c: Include common/common-target.h.  Don't include tm.h.
13150         (lang_independent_params): Move from toplev.c.
13151         (global_init_params): New.
13152         * params.h (global_init_params): Declare.
13153         * target.def (default_params): Move to common-target.def.
13154         * toplev.c (lang_independent_options): Remove.
13155         (lang_independent_params): Move to params.c.
13156         (general_init): Use global_init_params.
13157         * common/common-target.def (option_default_params): Move from
13158         target.def.
13159         * common/config/ia64/ia64-common.c: Include params.h.
13160         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
13161         from ia64.c.
13162         * common/config/rs6000/rs6000-common.c: Include params.h.
13163         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
13164         from rs6000.c.
13165         * common/config/sh/sh-common.c: Include params.h.
13166         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
13167         from sh.c.
13168         * common/config/spu/spu-common.c: Include params.h.
13169         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
13170         from spu.c.
13171         * config/ia64/ia64.c (ia64_option_default_params,
13172         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
13173         * config/rs6000/rs6000.c (rs6000_option_default_params,
13174         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
13175         * config/sh/sh.c (sh_option_default_params,
13176         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
13177         * config/spu/spu.c (spu_option_default_params,
13178         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
13179         * Makefile.in (OBJS): Remove params.o.
13180         (OBJS-libcommon-target): Add params.o.
13181         (params.o, $(common_out_object_file)): Update dependencies.
13182         * doc/tm.texi: Regenerate.
13183
13184 2011-06-23  Alan Modra  <amodra@gmail.com>
13185
13186         PR bootstrap/49383
13187         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
13188         invocation for 2011-06-09 changes.
13189
13190 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
13191
13192         PR libgomp/49490
13193         * omp-low.c (expand_omp_for_static_nochunk): Only
13194         use n ceil/ nthreads size for the first n % nthreads threads in the
13195         team instead of all threads except for the last few ones which
13196         get less work or none at all.
13197
13198         PR debug/49496
13199         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
13200         uses.
13201
13202 2011-06-22  Richard Guenther  <rguenther@suse.de>
13203
13204         PR tree-optimization/49493
13205         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
13206         Refer to the alias target of variables.
13207         (associate_varinfo_to_alias_1): Remove.
13208         (ipa_pta_execute): Do not associate aliases with anything.
13209         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
13210         (cgraph_function_node): Likewise.
13211         (cgraph_function_or_thunk_node): Likewise.
13212         (varpool_variable_node): Likewise.
13213
13214 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
13215
13216         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
13217         * config.gcc (arm*-*-linux*): Default to gnu tls.
13218         (arm*-*-*): Add --with-tls option.
13219         (all_defaults): Add 'tls'.
13220
13221 2011-06-22  Richard Henderson  <rth@redhat.com>
13222
13223         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
13224         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
13225         (dwarf2out_frame_debug_cfa_window_save): Rename from
13226         dwarf2out_window_save; make static.
13227         * tree.h (dwarf2out_window_save): Don't declare.
13228
13229         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
13230         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
13231         (emit_save_register_window): Rename from gen_save_register_window;
13232         emit the insn and add REG_CFA_* notes.
13233         (sparc_expand_prologue): Update to match.
13234         * config/sparc/sparc.md (save_register_window_1): Simplify from
13235         save_register_window<P:mode>.
13236
13237 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
13238
13239         PR target/49497
13240         * config/i386/i386.md (*lea_general_2): Always allow SImode.
13241         (*lea_general_2_zext): Likewise.
13242         (imul to lea peepholes): Use const359_operand and check
13243         TARGET_PARTIAL_REG_STALL.
13244
13245         * config/i386/predicates.md (const359_operand): New.
13246
13247 2011-06-22  Michael Matz  <matz@suse.de>
13248
13249         * cgraphunit.c (assemble_thunk): Use correct return type.
13250
13251 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
13252             Dmitry Melnik  <dm@ispras.ru>
13253
13254         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
13255         (neon_output_shift_immediate): Ditto.
13256         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
13257         prototype.
13258         (neon_output_shift_immediate): Ditto.
13259         * config/arm/neon.md (vashl<mode>3): Modified constraint.
13260         (vashr<mode>3_imm): New insn pattern.
13261         (vlshr<mode>3_imm): Ditto.
13262         (vashr<mode>3): Modified constraint.
13263         (vlshr<mode>3): Ditto.
13264         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
13265         predicate.
13266         (imm_for_neon_rshift_operand): Ditto.
13267         (imm_lshift_or_reg_neon): Ditto.
13268         (imm_rshift_or_reg_neon): Ditto.
13269
13270         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
13271
13272 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
13273
13274         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
13275         builtin calls even if likelyvalue is not CONSTANT.
13276         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
13277         Return get_value_for_expr of first operand
13278         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
13279         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
13280         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
13281         their non-checking counterparts.
13282         (call_may_clobber_ref_p_1): Likewise.
13283         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
13284         like their non-checking counterparts.
13285         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
13286         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
13287         like their non-checking counterparts.
13288         (find_func_clobbers): Likewise.
13289         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
13290         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
13291
13292         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
13293         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
13294         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
13295         of base type reference as argument.
13296         (resolve_addr_in_expr): Likewise.  Fix keep computation.
13297         (convert_descriptor_to_signed): Renamed to...
13298         (convert_descriptor_to_mode): ... this.  For wider types convert to
13299         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
13300         (typed_binop): New function.
13301         (scompare_loc_descriptor, ucompare_loc_descriptor,
13302         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
13303         default to unsigned type instead of signed.
13304
13305         PR debug/47858
13306         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
13307         (gimple_build_debug_source_bind_stat): New prototype.
13308         (gimple_build_debug_source_bind): Define.
13309         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
13310         gimple_debug_source_bind_get_value,
13311         gimple_debug_source_bind_get_value_ptr,
13312         gimple_debug_source_bind_set_var,
13313         gimple_debug_source_bind_set_value): New inlines.
13314         * gimple.c (gimple_build_debug_source_bind_stat): New function.
13315         * gimple-pretty-print.c (dump_gimple_debug): Handle
13316         GIMPLE_DEBUG_SOURCE_BIND.
13317         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
13318         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
13319         * tree-parloops.c (eliminate_local_variables,
13320         separate_decls_in_region): Likewise.
13321         (separate_decls_in_region_debug): Renamed from
13322         separate_decls_in_region_debug_bind.  Handle
13323         gimple_debug_source_bind_p.
13324         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
13325         prototypes.
13326         (DECL_HAS_DEBUG_ARGS_P): Define.
13327         (struct tree_function_decl): Add has_debug_args_flag field.
13328         * tree.c (debug_args_for_decl): New variable.
13329         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
13330         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
13331         (rewrite_debug_stmt_uses): New function.
13332         (rewrite_stmt): Use it to rewrite debug stmt uses.
13333         * rtl.def (DEBUG_PARAMETER_REF): New.
13334         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
13335         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
13336         DEBUG_PARAMETER_REF.
13337         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
13338         * print-rtl.c (print_rtx): Likewise.
13339         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
13340         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
13341         debug stmts in the first bb.
13342         * tree-inline.c (remap_ssa_name): If remapping default def
13343         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
13344         a source bind debug stmt.
13345         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
13346         (maybe_move_debug_stmts_to_successors): Likewise.
13347         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
13348         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
13349         debug args vector from old_decl to new_decl.
13350         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
13351         or modified parameters, add debug bind stmts before call
13352         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
13353         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
13354         on DECL_DEBUG_EXPRs from debug args vector.
13355         (expand_debug_source_expr): New function.
13356         (expand_debug_locations): Use it for source bind insns.
13357         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
13358         * var-tracking.c (prepare_call_arguments): Add debug args
13359         to call_arguments if any.
13360         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
13361         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
13362         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
13363         (get_ref_die_offset, parameter_ref_descriptor): New functions.
13364         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
13365         (gen_subprogram_die): Handle parameters identified by
13366         DEBUG_PARAMETER_REF.
13367
13368 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
13369
13370         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
13371         * doc/install.texi (Configuration): Document --with-tls.
13372         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
13373         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
13374         (arm_tls_descseq_addr): New.
13375         (legitimize_tls_address): Add tlsdesc support.
13376         (arm_cannot_copy_insn_p): Check for tlscall.
13377         (arm_emit_tls_decoration): Likewise.
13378         * config/arm/arm.h (TARGET_GNU2_TLS): New.
13379         (OPTION_DEFAULT_SPECS): Add with-tls support.
13380         * config/arm/arm.md (R1_REGNUM): Define.
13381         (tlscall): New.
13382         * config/arm/arm.opt (tls_type): New enumeration type and values.
13383         (mtls-dialect): New switch.
13384         * config/arm/arm-opts.h (enum tls_type): New.
13385
13386 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
13387
13388         * attribs.c (register_attribute): Added assert to check that all
13389         attribute specs are registered with a name that is not empty and
13390         does not start with '_'.
13391         (decl_attributes): Avoid the lookup of the "naked" attribute spec
13392         if the function has no attributes.
13393         * tree.c (is_attribute_with_length_p): Removed.
13394         (is_attribute_p): Removed.
13395         (private_is_attribute_p): New.
13396         (private_lookup_attribute): New.
13397         (lookup_attribute): Removed.
13398         (lookup_ident_attribute): New.
13399         (remove_attribute): Require the first argument to be in the form
13400         'text', not '__text__'.  Updated asserts.
13401         (merge_attributes): Use lookup_ident_attributes instead of
13402         lookup_attribute.
13403         (merge_dllimport_decl_attributes): Use remove_attribute.
13404         (attribute_list_contained): Likewise.
13405         (attribute_list_equal): Immediately return 1 if the arguments are
13406         identical pointers.
13407         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
13408         'int'.  Require the first argument to be in the form 'text', not
13409         '__text__'.  Require the second argument to be an identifier.
13410         (lookup_attribute): Made inline.  Require the first argument to be
13411         in the form 'text', not '__text__'.
13412         (private_is_attribute_p, private_lookup_attribute): New.
13413         Updated comments.
13414
13415 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
13416
13417         * builtins.c: Add sync_ or SYNC__ to builtin names.
13418         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
13419         * omp-low.c: Add sync_ or SYNC__ to builtin names.
13420
13421 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
13422
13423         PR target/33049
13424         * config/avr/avr.md (extzv): New expander.
13425         (*extzv): New insn.
13426         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
13427         * config/avr/constraints.md (C04): New constraint.
13428         * doc/md.texi (Machine Constraints): Document it.
13429
13430 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
13431
13432         PR middle-end/49489
13433         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
13434         unsignedp argument instead of 1 for clrsb_optab.
13435         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
13436         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
13437         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
13438         * optabs.c (widen_leading): Call widen_operand and expand_unop
13439         with 0 as unsignedp argument instead of 1 for clrsb_optab.
13440         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
13441
13442 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
13443
13444         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
13445
13446 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
13447
13448         * gensupport.c (add_define_attr): New static function.
13449         (is_predicable): Allow multi-alternative lists for the "predicable"
13450         attribute.
13451         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
13452         (process_one_cond_exec): Call alter_attrs_for_insn.
13453         * doc/md.texi (Defining Attributes): Mention some standard names.
13454         (Conditional Execution): Update documentation for "predicable".
13455
13456         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
13457         __builtin_clrsbll): Document.
13458         * doc/rtl.texi (clrsb): New entry.
13459         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
13460         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
13461         (expand_unop): Handle clrsb_optab.
13462         (init_optabs): Initialize it.
13463         * optabs.h (enum optab_index): New entry OTI_clrsb.
13464         (clrsb_optab): Define.
13465         * genopinit.c (optabs): Add an entry for it.
13466         * builtins.c (expand_builtin): Handle clrsb builtin functions.
13467         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
13468         BUILT_IN_CLRSBLL): New.
13469         * rtl.def (CLRSB): New code.
13470         * dwarf2out.c (mem_loc_descriptor): Handle it.
13471         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
13472         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
13473         and popcount.
13474         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
13475         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
13476         (__ctzDI2): Move declaration.
13477         * config/bfin/bfin.md (clrsbsi2): New expander.
13478         (signbitssi2): Use the CLRSB rtx.
13479         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
13480         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
13481
13482 2011-06-21  Richard Guenther  <rguenther@suse.de>
13483
13484         * ipa-inline-transform.c (inline_transform): Fix previous change.
13485
13486 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
13487
13488         PR tree-optimization/49478
13489         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
13490         with constant operand.
13491
13492 2011-06-21  Richard Guenther  <rguenther@suse.de>
13493
13494         * ipa-inline-transform.c (inline_transform): Fix typo.
13495
13496 2011-06-21  Richard Guenther  <rguenther@suse.de>
13497
13498         PR tree-optimization/49483
13499         * tree-vect-stmts.c (vectorizable_assignment): Also handle
13500         VIEW_CONVERT_EXPR conversions.
13501
13502 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
13503
13504         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
13505         * config/avr/avr-tables.opt: New file (generated).
13506         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
13507         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
13508         avr-mcus.def.
13509         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
13510         (avr_option_override): Don't process -mmcu= argument here.  Set
13511         avr_current_device using avr_mcu_index.
13512         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
13513         * config/avr/avr.opt (mmcu=): Use Enum.
13514         * config/avr/t-avr (avr-devices.o): Update dependencies.
13515         ($(srcdir)/config/avr/avr-tables.opt): New.
13516         * target.def (help): Remove.
13517         * doc/tm.texi.in (TARGET_HELP): Remove.
13518         * doc/tm.texi: Regenerate.
13519         * opts.c: Don't include target.h.
13520         (common_handle_option): Don't call targetm.help.
13521         * system.h (TARGET_HELP): Poison.
13522         * Makefile.in (opts.o): Update dependencies.
13523
13524 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13525
13526         * config/usegld.h: New file.
13527         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
13528         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
13529         (LIB_SPEC): Likewise.  Search /lib.
13530         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
13531         (RDYNAMIC_SPEC): Handle GNU ld.
13532         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
13533         Define.
13534         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
13535         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
13536         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
13537         (STACK_CHECK_STATIC_BUILTIN): Define.
13538         * config/sol2.opt (compat-bsd): Remove.
13539         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
13540         * config/sol2-bi.h: New file.
13541         * config/sol2-gld.h: Remove.
13542         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
13543         (NO_DBX_BNSYM_ENSYM): Remove.
13544         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
13545         (STACK_CHECK_STATIC_BUILTIN): Remove.
13546         Test USE_GLD instead of TARGET_GNU_LD.
13547         * config/i386/sol2-10.h: Rename to ...
13548         * config/i386/sol2-bi.h .. this.
13549         (SUBTARGET_EXTRA_SPECS): Redefine.
13550         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
13551         (MULTILIB_DEFAULTS): Remove.
13552         (DEFAULT_ARCH32_P): Define.
13553         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
13554         (ARCH64_SUBDIR): Define.
13555         Test USE_GLD instead of TARGET_GNU_LD.
13556         (I386_EMULATION): Rename to ...
13557         (ARCH32_EMULATION): ... this.
13558         (X86_64_EMULATION): Rename to ...
13559         (ARCH64_EMULATION): ... this.
13560         (TARGET_LD_EMULATION): Remove.
13561         (LINK_ARCH_SPEC): Remove.
13562         * config/i386/sol2-gas.h: Remove.
13563         * config/i386/t-sol2-10: Rename to ...
13564         * config/i386/t-sol2-64: ... this.
13565         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
13566         (AS_SPARC64_FLAG): Define.
13567         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
13568         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
13569         depending on TARGET_CPU_DEFAULT.
13570         (CPP_CPU_SPEC): Redefine.
13571         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
13572         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
13573         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
13574         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
13575         ASM_ARCH_DEFAULT_SPEC): Redefine.
13576         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
13577         LINK_ARCH_DEFAULT_SPEC.
13578         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
13579         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
13580         (ARCH64_SUBDIR): Define.
13581         (LINK_ARCH64_SPEC): Redefine.
13582         (CC1_SPEC): Redefine.
13583         (OPTION_DEFAULT_SPECS): Redefine.
13584         (MULTILIB_DEFAULTS): Define.
13585         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
13586         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
13587         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
13588         (NO_DBX_BNSYM_ENSYM): Remove.
13589         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
13590         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
13591         (TARGET_ASM_NAMED_SECTION): Likewise.
13592         (STACK_CHECK_STATIC_BUILTIN): Remove.
13593         * config/sparc/sol2-bi.h: Remove.
13594         * config/sparc/sol2-gas-bi.h: Remove.
13595         * config/sparc/sol2-gas.h: Remove.
13596         * config/sparc/sol2-gld-bi.h: Remove.
13597         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
13598         common parts ...
13599         (*-*-solaris2*): ... here.
13600
13601 2011-06-21  Christian Bruel  <christian.bruel@st.com>
13602
13603         PR other/43564
13604         * ipa-inline.c (can_inline_edge_p): Check
13605         !DECL_DISREGARD_INLINE_LIMITS.
13606
13607 2011-06-21  Christian Bruel  <christian.bruel@st.com>
13608
13609         PR middle-end/49139
13610         * cgraphunit.c (process_function_and_variable_attributes): warn when
13611         always_inline functions that are not inline.
13612         * ipa-inline-transform.c (inline_transform): Always call
13613         optimize_inline.
13614         * tree-inline.c (tree_inlinable_function_p): Use error instead
13615         of sorry.
13616         (expand_call_inline): Likewise.
13617
13618 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
13619
13620         * Makefile.in (dg_target_exps): Set.
13621         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
13622         instead of 7, try to divide it more evenly.
13623
13624 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
13625
13626         PR target/49089
13627         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
13628         (avx256_split_unaligned_store): New definition.
13629         (ix86_option_override_internal): Enable avx256 unaligned load/store
13630         splitting only when avx256_split_unaligned_load/store is set.
13631
13632 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
13633
13634         * regrename.c (scan_rtx_reg): Handle the case where we write to an
13635         open chain in a smaller mode without failing the entire block.
13636
13637 2011-06-21  Alan Modra  <amodra@gmail.com>
13638
13639         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
13640         CONST high part large-toc address.
13641         (rs6000_tls_referenced_p): Make static.
13642         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
13643
13644 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13645
13646         PR target/49385
13647         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
13648         one of the operands is a register.
13649
13650 2011-06-20  Kai Tietz  <ktietz@redhat.com>
13651
13652         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
13653         operations in combination with binary and.
13654
13655 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
13656
13657         * regrename.c (do_replace): Don't update notes.
13658
13659 2011-06-20  Alan Modra  <amodra@gmail.com>
13660
13661         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
13662         of toc-relative address in CONST.
13663         (rs6000_delegitimize_address): Recognize changed address.
13664         (rs6000_legitimize_reload_address): Likewise.
13665         (rs6000_emit_move): Don't force these constants to memory.
13666         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
13667         toc-relative address in CONST.
13668         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
13669         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
13670
13671 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
13672
13673         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
13674         (count_trailing_zeros): Likewise.
13675
13676 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
13677
13678         PR other/49325
13679         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
13680         .init_array can be used with .ctors on targets.
13681         * configure: Regenerated.
13682
13683 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
13684
13685         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
13686         if the element type is volatile.
13687
13688 2011-06-18  Jan Hubicka  <jh@suse.cz>
13689
13690         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
13691         extra name aliases.
13692         (lto_symtab_resolve_can_prevail_p): Likewise.
13693         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
13694         * cgraphbuild.c (record_reference): Remove extra body alias code.
13695         (mark_load): Likewise.
13696         (mark_store): Likewise.
13697         * cgraph.h (varpool_node): Remove extra_name filed;
13698         add alias_of and extraname_alias.
13699         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
13700         (varpool_alias_aliased_node): New inline function.
13701         (varpool_variable_node): New function.
13702         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
13703         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
13704         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
13705         (input_varpool_node): Likewise.
13706         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
13707         (varpool_externally_visible_p): Remove extra body alias code.
13708         (function_and_variable_visibility): Likewise.
13709         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
13710         (ipa_pta_execute): Use it.
13711         * varpool.c (varpool_remove_node): Remove extra name alias code.
13712         (varpool_mark_needed_node): Likewise.
13713         (varpool_analyze_pending_decls): Analyze aliases.
13714         (assemble_aliases): New functoin.
13715         (varpool_assemble_decl): Use it.
13716         (varpool_create_variable_alias): New function.
13717         (varpool_extra_name_alias): Rewrite.
13718         (varpool_for_node_and_aliases): New function.
13719
13720 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
13721
13722         PR target/49411
13723         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
13724         last_arg_constant and last argument doesn't match its predicate,
13725         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
13726         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
13727         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
13728         spelling of error message.
13729         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
13730         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
13731         const_0_to_255_operand instead of const_int_operand.
13732
13733         Revert:
13734         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
13735
13736         * config/i386/sse.md (blendbits): Remove mode attribute.
13737         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
13738         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
13739         Check integer value of operand 3 in insn constraint.
13740
13741 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
13742
13743         PR rtl-optimization/48542
13744         * reload.c (find_equiv_reg): Stop looking when finding a
13745         setjmp-type call.
13746         * reload1.c (reload_as_needed): Invalidate all reload
13747         registers when crossing a setjmp-type call.
13748
13749 2011-06-16  Jeff Law  <law@redhat.com>
13750
13751         * tree-ssa-threadupdate.c (struct redirection_data): New field
13752         intermediate_edge.
13753         (THREAD_TARGET2): Define.
13754         (redirection_data_eq): Also check that the intermediate edge is equal.
13755         (lookup_redirection_data): Drop useless argument.  Extract the
13756         outgoing_edge and intermediate edge from E.  Callers updated.
13757         (copy_phi_args, update_destination_phis): New functions.
13758         (fix_duplicate_block_edges): Likewise.
13759         (create_edge_and_update_destination_phis): Duplicate all the edges
13760         hung off e->aux.  Use copy_phi_args.
13761         (create_duplicates): Use fix_duplicate_block_edges.
13762         (fixup_template_block): Likewise.
13763         (redirect_edges): If necessary, redirect the joiner block's incoming
13764         edge to the duplicate of the joiner block.
13765         (thread_block): Don't muck up loops when threading through a joiner
13766         block.
13767         (thread_through_loop_header): Handle threading through a joiner block.
13768         (mark_threaded_blocks, register_jump_thread): Likewise.
13769         * tree-flow.h (register_jump_thread): Add new argument.  Callers
13770         updated.
13771         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
13772         (thread_across_edge): Handle threading through a joiner block.
13773
13774 2011-06-16  Martin Jambor  <mjambor@suse.cz>
13775
13776         PR tree-optimization/49343
13777         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
13778         calculate offset, provide 2nd operand for the new COMPONENT_REF.
13779
13780 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
13781
13782         * config/darwin-protos.h (machopic_select_rtx_section): Move to
13783         inside RTX_CODE ifdef.
13784
13785 2011-06-16  Tom de Vries  <tom@codesourcery.com>
13786
13787         PR target/45098
13788         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
13789         Disallow NULL pointer for pointer arithmetic.
13790
13791 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13792
13793         PR target/49398
13794         Revert.
13795         2011-06-10  Wei Guozhi  <carrot@google.com>
13796
13797         PR target/45335
13798         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
13799         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
13800         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
13801         related peephole2.
13802         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
13803         related peephole2.
13804         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
13805         (arm_legitimate_ldrd_p): New prototype.
13806         (arm_output_ldrd): New prototype.
13807         * config/arm/arm.c (arm_check_ldrd_operands): New function.
13808         (arm_legitimate_ldrd_p): New function.
13809         (arm_output_ldrd): New function.
13810
13811 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
13812
13813         PR middle-end/46500
13814         * doc/tm.texi.in: Update Copyright date.
13815         * doc/tm.texi: Regenerate.
13816         * targhooks.c (default_setup_incoming_varargs): Replace
13817         CUMULATIVE_ARGS* argument type with cumulative_args_t.
13818         (default_pretend_outgoing_varargs_named): Likewise.
13819         (hook_pass_by_reference_must_pass_in_stack): Likewise.
13820         (hook_callee_copies_named): Likewise.
13821         (default_function_arg_advance): Likewise.
13822         (default_function_arg): Likewise.
13823         (default_function_incoming_arg): Likewise.
13824         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
13825         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
13826         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
13827         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
13828         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
13829         * targhooks.h (default_setup_incoming_varargs): Likewise.
13830         (default_pretend_outgoing_varargs_named): Likewise.
13831         (hook_pass_by_reference_must_pass_in_stack): Likewise.
13832         (hook_callee_copies_named): Likewise.
13833         (default_function_arg_advance): Likewise.
13834         (default_function_arg): Likewise.
13835         (default_function_incoming_arg): Likewise.
13836         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
13837         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
13838         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
13839         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
13840         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
13841         * target.def (pass_by_reference): Likewise.
13842         (setup_incoming_varargs, strict_argument_naming): Likewise.
13843         (pretend_outgoing_varargs_named, callee_copies): Likewise.
13844         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
13845         (function_incoming_arg): Likewise.
13846         * target.h: Don't include "tm.h" .
13847         (cumulative_args_t): New typedef.
13848         [GCC_TM_H] (get_cumulative_args): New static inline function.
13849         [GCC_TM_H] (pack_cumulative_args): Likewise.
13850         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
13851         argument type with cumulative_args_t.
13852         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
13853         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
13854         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
13855         (frv_arg_partial_bytes, frv_function_arg): Likewise.
13856         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
13857         (frv_function_arg_1): Likewise.
13858         * config/s390/s390.c (s390_pass_by_reference): Likewise.
13859         (s390_function_arg_advance, s390_function_arg): Likewise.
13860         * config/m32c/m32c.c (m32c_function_arg): Likewise.
13861         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
13862         (m32c_strict_argument_naming): Likewise.
13863         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
13864         (spu_function_arg_advance): Likewise.
13865         (spu_setup_incoming_varargs): Likewise.  Make static.
13866         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
13867         Remove prototype.
13868         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
13869         CUMULATIVE_ARGS* argument type with cumulative_args_t.
13870         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
13871         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
13872         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
13873         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
13874         (mep_pass_by_reference, mep_function_arg): Likewise.
13875         (mep_function_arg_advance): Likewise.
13876         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
13877         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
13878         (m32r_function_arg, m32r_function_arg_advance): Likewise.
13879         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
13880         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
13881         (ix86_function_arg, ix86_pass_by_reference): Likewise.
13882         (ix86_setup_incoming_varargs): Likewise.
13883         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
13884         (sh_strict_argument_naming): Likewise.
13885         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
13886         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
13887         (sh_function_arg_advance, sh_function_arg): Likewise.
13888         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
13889         (pdp11_function_arg_advance): Likewise.
13890         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
13891         Likewise.
13892         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
13893         * config/avr/avr.c (avr_function_arg): Likewise.
13894         (avr_function_arg_advance): Likewise.
13895         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
13896         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
13897         (xtensa_function_arg_1): Likewise.
13898         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
13899         Likewise.
13900         (xstormy16_function_arg): Likewise.
13901         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
13902         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
13903         (fr30_function_arg_advance): Likewise.
13904         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
13905         (lm32_function_arg, lm32_function_arg_advance): Likewise.
13906         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
13907         (moxie_function_arg, moxie_function_arg_advance): Likewise.
13908         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
13909         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
13910         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
13911         (cris_function_arg, cris_function_incoming_arg): Likewise.
13912         (cris_function_arg_advance, cris_function_arg_1): Likewise.
13913         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
13914         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
13915         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
13916         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
13917         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
13918         (mn10300_arg_partial_bytes): Likewise.
13919         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
13920         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
13921         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
13922         (ia64_function_arg_1): Likewise.
13923         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
13924         (m68k_function_arg): Likewise.
13925         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
13926         (rs6000_function_arg, setup_incoming_varargs): Likewise.
13927         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
13928         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
13929         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
13930         (picochip_arg_advance): Likewise.
13931         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
13932         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
13933         (mcore_function_arg_advance): Likewise.
13934         * config/score/score.c (score_pass_by_reference): Likewise.
13935         (score_function_arg_advance): Likewise.
13936         (score_arg_partial_bytes): Likewise.  Make static.
13937         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
13938         * config/arm/arm.c (arm_arg_partial_bytes): Replace
13939         CUMULATIVE_ARGS* argument type with cumulative_args_t.
13940         (arm_function_arg, arm_function_arg_advance): Likewise.
13941         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
13942         * config/pa/pa.c (pa_pass_by_reference): Likewise.
13943         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
13944         (pa_function_arg): Likewise.
13945         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
13946         (mips_function_arg, mips_function_arg_advance): Likewise.
13947         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
13948         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
13949         * config/vax/vax.c (vax_function_arg): Likewise.
13950         (vax_function_arg_advance): Likewise.
13951         * config/h8300/h8300.c (h8300_function_arg): Likewise.
13952         (h8300_function_arg_advance): Likewise.
13953         * config/v850/v850.c (v850_pass_by_reference): Likewise.
13954         (v850_strict_argument_naming, v850_function_arg): Likewise.
13955         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
13956         (v850_setup_incoming_varargs): Likewise.
13957         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
13958         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
13959         (mmix_function_arg, mmix_pass_by_reference): Likewise.
13960         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
13961         with const void *.
13962         * config/bfin/bfin.c (setup_incoming_varargs): Replace
13963         CUMULATIVE_ARGS* argument type with cumulative_args_t.
13964         (bfin_function_arg_advance, bfin_function_arg): Likewise.
13965         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
13966         * calls.c (emit_call_1): Change type of args_so_far to
13967         cumulative_args_t.  Changed all callers.
13968         (initialize_argument_information): Likewise.
13969         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
13970         * dse.c (get_call_args): Likewise.
13971         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
13972         * function.c (pass_by_reference, reference_callee_copied): Likewise.
13973         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
13974         New member args_so_far_v.  Changed all users.
13975         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
13976         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
13977         * config/mips/mips.c (mips_output_args_xfer): Likewise.
13978         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
13979         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
13980         * config/microblaze/microblaze.c (microblaze_expand_prologue):
13981         Likewise.
13982         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
13983         m32r_pass_by_reference.
13984
13985 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
13986
13987         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
13988         argument to be a VEC of statements.
13989         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
13990         assert that pattern statements have to have their vector type set.
13991         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
13992         Change the first argument to be a VEC of statements.  Update
13993         documentation.
13994         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
13995         (vect_handle_widen_mult_by_const): New function.
13996         (vect_recog_widen_mult_pattern):  Change the first argument to be a
13997         VEC of statements.  Update documentation.  Check that the constant is
13998         INTEGER_CST.  Support multiplication by a constant that fits an
13999         intermediate type - call vect_handle_widen_mult_by_const.
14000         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
14001         call.  Handle additional pattern statements if necessary.
14002
14003 2011-06-16  Nick Clifton  <nickc@redhat.com>
14004
14005         PR target/49427
14006         * config.gcc: Set cpu_type to v850 for any V850 architecture.
14007         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
14008         md_file, extra_modes, out_file and extra_options are these are all
14009         deduced from cpu_type.
14010
14011 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
14012
14013         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
14014         truncation mask to 63.
14015
14016 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
14017
14018         PR target/49313
14019         PR target/29524
14020         * longlong.h: Add AVR support:
14021         (count_leading_zeros): New macro.
14022         (count_trailing_zeros): New macro.
14023         (COUNT_LEADING_ZEROS_0): New macro.
14024         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
14025         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
14026         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
14027         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
14028         (LIB2FUNCS_EXCLUDE): Add _clz.
14029         * config/avr/libgcc.S (XCALL): Move up in file.
14030         (XJMP): New C Macro.
14031         (DEFUN): New asm macro.
14032         (ENDF): New asm macro.
14033         (__ffssi2): New function.
14034         (__ffshi2): New function.
14035         (__loop_ffsqi2): New function.
14036         (__ctzsi2): New function.
14037         (__ctzhi2): New function.
14038         (__clzdi2): New function.
14039         (__clzsi2): New function.
14040         (__clzhi2): New function.
14041         (__paritydi2): New function.
14042         (__paritysi2): New function.
14043         (__parityhi2): New function.
14044         (__parityqi2): New function.
14045         (__popcounthi2): New function.
14046         (__popcountsi2): New function.
14047         (__popcountdi2): New function.
14048         (__popcountqi2): New function.
14049         (__bswapsi2): New function.
14050         (__bswapdi2): New function.
14051         (__ashldi3): New function.
14052         (__ashrdi3): New function.
14053         (__lshrdi3): New function.
14054         Fix suspicous lines.
14055
14056 2011-06-16  Richard Guenther  <rguenther@suse.de>
14057
14058         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
14059         the same as x != 0.
14060         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
14061         to (bool) X & 1.
14062         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
14063         equality compares against zero for the lower bit.
14064
14065 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
14066
14067         PR tree-optimization/49419
14068         * tree-vrp.c (execute_vrp): Call init_range_assertions
14069         before estimate_numbers_of_iterations, call
14070         free_number_of_iterations_estimates before calling
14071         remove_range_assertions.
14072
14073 2011-06-16  Revital Eres  <revital.eres@linaro.org>
14074
14075         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
14076         (struct partial_schedule): Add rows_length field.
14077         (verify_partial_schedule): Check rows_length.
14078         (ps_insert_empty_row): Handle rows_length.
14079         (create_partial_schedule): Likewise.
14080         (free_partial_schedule): Likewise.
14081         (reset_partial_schedule): Likewise.
14082         (create_ps_insn): Remove rest_count argument.
14083         (remove_node_from_ps): Update rows_length.
14084         (add_node_to_ps): Update rows_length and call create_ps_insn
14085         without passing row_rest_count.
14086         (rotate_partial_schedule): Update rows_length.
14087
14088 2011-06-16  Revital Eres  <revital.eres@linaro.org>
14089
14090         * ddg.c (add_intra_loop_mem_dep): New function.
14091         (build_intra_loop_deps): Call it.
14092
14093 2011-06-13  Jeff Law  <law@redhat.com>
14094
14095         * df-problems.c (df_lr_local_compute): Manually CSE
14096         PIC_OFFSET_TABLE_REGNUM.
14097         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
14098         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
14099
14100 2011-06-13  Jan Hubicka  <jh@suse.cz>
14101
14102         * cgraphunit.c (handle_alias_pairs): New function.
14103         (cgraph_finalize_compilation_unit): Use it.
14104         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
14105         as externally visible.
14106
14107 2011-06-15  Richard Guenther  <rguenther@suse.de>
14108
14109         * expr.c (expand_expr_real_2): Reduce all integral types to
14110         bitfield precision.
14111         (expand_expr_real_1): Likewise.
14112
14113 2011-06-15  Martin Jambor  <mjambor@suse.cz>
14114
14115         PR tree-optimization/48613
14116         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
14117         ipa_node_params_vector is NULL.
14118
14119 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
14120
14121         PR debug/49382
14122         * dwarf2out.c (dw_loc_list_node): Add force field.
14123         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
14124         location in the list, even if it is modified before first real insn.
14125         (output_loc_list): Emit empty ranges with force flag set.
14126         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
14127
14128 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
14129
14130         PR target/49349
14131         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
14132         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
14133         above a fence.  Update comments.
14134         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
14135         placed just above it.  Do not allow NULL place_to_insert.
14136
14137 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
14138
14139         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
14140         (slpeel_tree_peel_loop_to_edge): Don't call
14141         remove_dead_stmts_from_loop.
14142         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
14143         remove irrelevant pattern statements.  For irrelevant statements
14144         check if it is the last statement of a detected pattern, use
14145         corresponding pattern statement instead.
14146         (destroy_loop_vec_info): No need to remove pattern statements,
14147         only free stmt_vec_info.
14148         (vect_transform_loop): For irrelevant statements check if it is
14149         the last statement of a detected pattern, use corresponding
14150         pattern statement instead.
14151         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
14152         pattern statements.  Set basic block for the new statement.
14153         (vect_pattern_recog): Update documentation.
14154         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
14155         operands of pattern statements.
14156         (vectorizable_call): Fix printing.  In case of a pattern statement
14157         use the lhs of the original statement when creating a dummy
14158         statement to replace the original call.
14159         (vect_analyze_stmt): For irrelevant statements check if it is
14160         the last statement of a detected pattern, use corresponding
14161         pattern statement instead.
14162         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
14163         statements use gsi of the original statement.
14164
14165 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
14166
14167         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
14168         common/common-target-def.h.
14169         * target.def (default_target_flags, handle_option,
14170         supports_split_stack, optimization_table, init_struct,
14171         except_unwind_info, unwind_tables_default, have_named_sections):
14172         Move to common/common-target.def.
14173         * target.h (enum opt_levels, struct default_options): Move to
14174         common/common-target.h.
14175         * targhooks.c (default_except_unwind_info,
14176         dwarf2_except_unwind_info, sjlj_except_unwind_info,
14177         default_target_handle_option, empty_optimization_table): Move to
14178         common/common-targhooks.c.
14179         * targhooks.h (default_except_unwind_info,
14180         dwarf2_except_unwind_info, sjlj_except_unwind_info,
14181         default_target_handle_option, empty_optimization_table): Move to
14182         common/common-targhooks.h.
14183         * common/common-target-def.h: Include common/common-targhooks.h.
14184         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
14185         defined.
14186         * common/common-target.def (handle_option, option_init_struct,
14187         option_optimization_table, default_target_flags,
14188         except_unwind_info, supports_split_stack, unwind_tables_default,
14189         have_named_sections): Move from target.def.
14190         (HOOK_PREFIX): Undefine at end of file.
14191         * common/common-target.h: Include input.h.
14192         (enum opt_levels, struct default_options): Move from target.h.
14193         * common/common-targhooks.c, common/common-targhooks.h: New.
14194         * config.gcc (target_has_targetm_common): Default to yes.
14195         (moxie*): Set target_has_targetm_common=no.
14196         (hppa*-*-*): Don't set target_has_targetm_common=yes.
14197         * doc/tm.texi: Regenerate.
14198         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
14199         (C_TARGET_DEF_H): Add common/common-targhooks.h.
14200         (GCC_OBJS): Remove vec.o.
14201         (OBJS): Remove hooks.o and vec.o.
14202         (OBJS-libcommon-target): Add vec.o, hooks.o and
14203         common/common-targhooks.o.
14204         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
14205         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
14206         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
14207         cfglayout.o, $(out_object_file), $(common_out_object_file)):
14208         Update dependencies.
14209         (common/common-targhooks.o): New.
14210         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
14211         * common/config/pa/pa-common.c: Include more headers.  Take
14212         copyright dates from pa.c.
14213         (pa_option_optimization_table, pa_handle_option,
14214         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
14215         TARGET_HANDLE_OPTION): Move from pa.c.
14216         * common/config/alpha/alpha-common.c,
14217         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
14218         common/config/bfin/bfin-common.c,
14219         common/config/cris/cris-common.c,
14220         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
14221         common/config/h8300/h8300-common.c,
14222         common/config/i386/i386-common.c,
14223         common/config/ia64/ia64-common.c,
14224         common/config/iq2000/iq2000-common.c,
14225         common/config/lm32/lm32-common.c,
14226         common/config/m32c/m32c-common.c,
14227         common/config/m32r/m32r-common.c,
14228         common/config/m68k/m68k-common.c,
14229         common/config/mcore/mcore-common.c,
14230         common/config/mep/mep-common.c,
14231         common/config/microblaze/microblaze-common.c,
14232         common/config/mips/mips-common.c,
14233         common/config/mmix/mmix-common.c,
14234         common/config/mn10300/mn10300-common.c,
14235         common/config/pdp11/pdp11-common.c,
14236         common/config/picochip/picochip-common.c,
14237         common/config/rs6000/rs6000-common.c,
14238         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
14239         common/config/score/score-common.c, common/config/sh/sh-common.c,
14240         common/config/sparc/sparc-common.c,
14241         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
14242         common/config/vax/vax-common.c,
14243         common/config/xstormy16/xstormy16-common.c,
14244         common/config/xtensa/xtensa-common.c: New.
14245         * config/alpha/alpha.c: Include common/common-target.h.
14246         (alpha_option_optimization_table, alpha_handle_option,
14247         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
14248         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
14249         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
14250         * config/arm/arm.c (arm_option_optimization_table,
14251         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
14252         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
14253         arm-common.c.
14254         * config/avr/avr.c (avr_option_optimization_table,
14255         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
14256         to avr-common.c.
14257         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
14258         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
14259         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
14260         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
14261         * config/cris/cris.c (cris_option_optimization_table,
14262         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
14263         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
14264         cris-common.c.
14265         * config/fr30/fr30.c (fr30_option_optimization_table,
14266         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
14267         to fr30-common.c.
14268         * config/frv/frv.c (frv_option_optimization_table,
14269         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
14270         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
14271         * config/h8300/h8300.c (h8300_option_optimization_table,
14272         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
14273         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
14274         * config/i386/i386-protos.h (ix86_handle_option): Declare.
14275         * config/i386/i386.c: Include common/common-target.h.
14276         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
14277         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
14278         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
14279         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
14280         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
14281         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
14282         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
14283         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
14284         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
14285         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
14286         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
14287         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
14288         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
14289         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
14290         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
14291         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
14292         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
14293         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
14294         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
14295         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
14296         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
14297         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
14298         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
14299         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
14300         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
14301         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
14302         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
14303         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
14304         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
14305         ix86_option_optimization_table, ix86_option_init_struct,
14306         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
14307         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
14308         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
14309         i386-common.c.
14310         * config/i386/t-i386 (i386.o): Update dependencies.
14311         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
14312         * config/ia64/ia64.c (ia64_option_optimization_table,
14313         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
14314         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
14315         ia64_handle_option): Move to ia64-common.c.
14316         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
14317         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
14318         * config/lm32/lm32.c (lm32_option_optimization_table,
14319         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
14320         to lm32-common.c.
14321         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
14322         m32c-common.c.
14323         * config/m32r/m32r.c (m32r_option_optimization_table,
14324         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
14325         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
14326         m32r_handle_option): Move to m32r-common.c.
14327         (m32r_memory_move_cost): Remove comment referring to
14328         TARGET_HANDLE_OPTION.
14329         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
14330         Move to m68k-common.c.
14331         * config/mcore/mcore.c (mcore_option_optimization_table,
14332         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
14333         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
14334         * config/mep/mep.c (mep_option_optimization_table,
14335         mep_handle_option, TARGET_HANDLE_OPTION,
14336         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
14337         Move to mep-common.c.
14338         * config/microblaze/microblaze.c
14339         (microblaze_option_optimization_table,
14340         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
14341         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
14342         * config/mips/mips.c (mips_handle_option,
14343         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
14344         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
14345         mips-common.c.
14346         * config/mmix/mmix.c (mmix_option_optimization_table,
14347         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
14348         Move to mmix-common.c.
14349         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
14350         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
14351         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
14352         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
14353         * config/pa/pa.c: Include common/common-target.h.
14354         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
14355         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
14356         pa_handle_option): Move to pa-common.c.
14357         (pa_option_override): Use targetm_common.except_unwind_info.
14358         (pa_asm_output_mi_thunk, pa_function_section): Use
14359         targetm_common.have_named_sections.
14360         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
14361         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
14362         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
14363         pdp11_handle_option, pdp11_option_init_struct): Move to
14364         pdp11-common.c.
14365         * config/picochip/picochip.c (picochip_option_optimization_table,
14366         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
14367         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
14368         * config/rs6000/rs6000.c: Include common/common-target.h.
14369         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
14370         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
14371         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
14372         rs6000_handle_option): Move to rs6000-common.c.
14373         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
14374         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
14375         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
14376         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
14377         * config/s390/s390.c (processor_flags_table,
14378         s390_option_optimization_table, s390_option_init_struct,
14379         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
14380         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
14381         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
14382         * config/s390/s390.h (processor_flags_table): Declare.
14383         * config/score/score.c (score_option_optimization_table,
14384         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
14385         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
14386         score_handle_option): Move to score-common.c.
14387         * config/sh/sh.c (sh_option_optimization_table,
14388         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
14389         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
14390         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
14391         * config/sparc/sparc.c: Include common/common-target.h.
14392         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
14393         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
14394         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
14395         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
14396         spu_option_init_struct): Move to spu-common.c.
14397         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
14398         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
14399         * config/v850/v850.c (small_memory_physical_max,
14400         v850_handle_memory_optionn v850_handle_option,
14401         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
14402         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
14403         v850-common.c.
14404         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
14405         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
14406         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
14407         Move to xtensa-common.c.
14408         * cfglayout.c: Include common/common-target.h.
14409         (fixup_reorder_chain): Use targetm_common.have_named_sections.
14410         * cfgrtl.c: Include common/common-target.h.
14411         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
14412         targetm_common.have_named_sections.
14413         * dbxout.c: Include common/common-target.h.
14414         (dbxout_function_end): Use targetm_common.have_named_sections.
14415         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
14416         targetm_common.except_unwind_info.
14417         * dwarf2out.c: Include common/common-target.h.
14418         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
14419         dwarf2out_begin_prologue, dwarf2out_frame_init,
14420         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
14421         targetm_common.except_unwind_info.
14422         * except.c: Include common/common-target.h.
14423         (init_eh, finish_eh_generation,
14424         output_one_function_exception_table): Use
14425         targetm_common.except_unwind_info.
14426         (switch_to_exception_section): Use targetm_common.have_named_sections.
14427         * explow.c: Include common/common-target.h.
14428         * expr.c: Include common/common-target.h.
14429         (build_personality_function): Use targetm_common.except_unwind_info.
14430         * function.c: Include common/common-target.h.
14431         (expand_function_end): Use targetm_common.except_unwind_info.
14432         * haifa-sched.c: Include common/common-target.h.
14433         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
14434         * lto-opts.c: Include common/common-target.h instead of target.h.
14435         (lto_reissue_options): Use targetm_common.handle_option.
14436         * opts.c: Include common/common-target.h.
14437         (target_handle_option): Use targetm_common.handle_option.
14438         (init_options_struct): Update comment referring to
14439         targetm.target_option.optimization.  Use
14440         targetm_common.default_target_flags,
14441         targetm_common.unwind_tables_default and
14442         targetm_common.option_init_struct.
14443         (default_options_optimization): Use
14444         targetm_common.option_optimization_table.
14445         (finish_options): Use targetm_common.except_unwind_info,
14446         targetm_common.unwind_tables_default,
14447         targetm_common.have_named_sections and
14448         targetm_common.supports_split_stack.
14449         * toplev.c: Include common/common-target.h.
14450         (process_options): Use targetm_common.have_named_sections.
14451         * tree-tailcall.c: Include common/common-target.h.
14452         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
14453         * tree.c: Include common/common-target.h.
14454         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
14455         * varasm.c: Include common/common-target.h.
14456         (resolve_unique_section, hot_function_section,
14457         default_function_section): Use targetm_common.have_named_sections.
14458
14459 2011-06-14  Easwaran Raman  <eraman@google.com>
14460
14461         PR rtl-optimization/44194
14462         * dse.c: Include tree-flow.h
14463         (insn_info): Add new field non_frame_wild_read.
14464         (group_info): Add new fields escaped_n and escaped_p.
14465         (kill_on_calls): New variable.
14466         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
14467         (dse_step0): Initialize kill_on_calls.
14468         (can_escape): New function.
14469         (set_usage_bits): Add additional parameter; record information
14470         about escaped locations.
14471         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
14472         (dse_step2_nospill): Set kill_on_calls based on
14473         group->escaped_n and group->escaped_n.
14474         (add_wild_read): Refactor into...
14475         (reset_active_stores): ... New function, and
14476         (free_read_records): ... New function.
14477         (add_non_frame_wild_read): New function.
14478         (scan_insn): Call add_non_frame_wild_read on non-const calls.
14479         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
14480         (dse_step5_nospill): Call scan_reads_nospill for instructions
14481         marked as non_frame_wild_read.
14482         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
14483
14484 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
14485
14486         * common/common-target-def.h, common/common-target.def,
14487         common/common-target.h, common/config/default-common.c,
14488         common/config/pa/pa-common.c: New files.
14489         * Makefile.in (common_out_file, common_out_object_file,
14490         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
14491         (OBJS-libcommon-target): Include $(common_out_object_file).
14492         (prefix.o): Update dependencies.
14493         ($(common_out_object_file), common/common-target-hooks-def.h,
14494         s-common-target-hooks-def-h): New.
14495         (s-tm-texi): Also check timestamp on common-target.def.
14496         (build/genhooks.o): Update dependencies.
14497         * config.gcc (common_out_file, target_has_targetm_common): Define.
14498         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
14499         TARGET_ALWAYS_STRIP_DOTDOT.
14500         * configure.ac (common_out_object_file): Define.
14501         (common_out_file, common_out_object_file): Substitute.
14502         (common): Create directory.
14503         * configure: Regenerate.
14504         * doc/tm.texi.in (targetm_common): Document.
14505         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
14506         * doc/tm.texi: Regenerate.
14507         * genhooks.c (hook_array): Also include common/common-target.def.
14508         * prefix.c (tm.h): Don't include.
14509         (common/common-target.h): Include.
14510         (ALWAYS_STRIP_DOTDOT): Don't define.
14511         (update_path): Use targetm_common.always_strip_dotdot instead of
14512         ALWAYS_STRIP_DOTDOT.
14513         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
14514
14515 2011-06-14  David Li  <davidxl@google.com>
14516
14517         * passes.c (execute_function_todo): Remove TODO_dump_func.
14518         (execute_one_pass): Remove TODO_dump_func.
14519         (execute_function_dump): New function.
14520         * tree-vrp.c: Remove TODO_dump_func.
14521         * regrename.c: Remove TODO_dump_func.
14522         * fwprop.c: Remove TODO_dump_func.
14523         * tree-into-ssa.c: Remove TODO_dump_func.
14524         * tree-complex.c: Remove TODO_dump_func.
14525         * tracer.c: Remove TODO_dump_func.
14526         * tree-loop-distribution.c: Remove TODO_dump_func.
14527         * postreload-gcse.c: Remove TODO_dump_func.
14528         * postreload.c: Remove TODO_dump_func.
14529         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
14530         * tree-tailcall.c: Remove TODO_dump_func.
14531         * ipa-cp.c: Remove TODO_dump_func.
14532         * final.c: Remove TODO_dump_func.
14533         * tree-emutls.c: Remove TODO_dump_func.
14534         * omp-low.c: Remove TODO_dump_func.
14535         * tree-ssa-dse.c: Remove TODO_dump_func.
14536         * tree-ssa-uncprop.c: Remove TODO_dump_func.
14537         * auto-inc-dec.c: Remove TODO_dump_func.
14538         * reorg.c: Remove TODO_dump_func.
14539         * tree-ssa-copyrename.c: Remove TODO_dump_func.
14540         * tree-ssa-ccp.c: Remove TODO_dump_func.
14541         * compare-elim.c: Remove TODO_dump_func.
14542         * mode-switching.c: Remove TODO_dump_func.
14543         * modulo-sched.c: Remove TODO_dump_func.
14544         * tree-call-cdce.c: Remove TODO_dump_func.
14545         * cse.c: Remove TODO_dump_func.
14546         * web.c: Remove TODO_dump_func.
14547         * tree-stdarg.c: Remove TODO_dump_func.
14548         * lto-streamer-out.c: Remove TODO_dump_func.
14549         * tree-ssa-math-opts.c: Remove TODO_dump_func.
14550         * tree-ssa-dom.c: Remove TODO_dump_func.
14551         * tree-nrv.c: Remove TODO_dump_func.
14552         * loop-init.c: Remove TODO_dump_func.
14553         * gimple-low.c: Remove TODO_dump_func.
14554         * ipa-inline.c: Remove TODO_dump_func.
14555         * tree-ssa-sink.c: Remove TODO_dump_func.
14556         * jump.c: Remove TODO_dump_func.
14557         * ifcvt.c: Remove TODO_dump_func.
14558         * tree-ssa-loop.c: Remove TODO_dump_func.
14559         * recog.c: Remove TODO_dump_func.
14560         * dse.c: Remove TODO_dump_func.
14561         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
14562         * matrix-reorg.c: Remove TODO_dump_func.
14563         * tree-eh.c: Remove TODO_dump_func.
14564         * regmove.c: Remove TODO_dump_func.
14565         * function.c: Remove TODO_dump_func.
14566         * tree-vectorizer.c: Remove TODO_dump_func.
14567         * ipa-split.c: Remove TODO_dump_func.
14568         * gcse.c: Remove TODO_dump_func.
14569         * tree-if-conv.c: Remove TODO_dump_func.
14570         * init-regs.c: Remove TODO_dump_func.
14571         * tree-ssa-phiopt.c: Remove TODO_dump_func.
14572         * implicit-zee.c: Remove TODO_dump_func.
14573         * lower-subreg.c: Remove TODO_dump_func.
14574         * bt-load.c: Remove TODO_dump_func.
14575         * tree-dfa.c: Remove TODO_dump_func.
14576         * except.c: Remove TODO_dump_func.
14577         * emit-rtl.c: Remove TODO_dump_func.
14578         * store-motion.c: Remove TODO_dump_func.
14579         * cfgexpand.c: Remove TODO_dump_func.
14580         * tree-cfgcleanup.c: Remove TODO_dump_func.
14581         * cfgcleanup.c: Remove TODO_dump_func.
14582         * tree-ssa-pre.c: Remove TODO_dump_func.
14583         * tree-sra.c: Remove TODO_dump_func.
14584         * tree-mudflap.c: Remove TODO_dump_func.
14585         * tree-ssa-copy.c: Remove TODO_dump_func.
14586         * cfglayout.c: Remove TODO_dump_func.
14587         * tree-ssa-forwprop.c: Remove TODO_dump_func.
14588         * tree-ssa-dce.c: Remove TODO_dump_func.
14589         * ira.c: Remove TODO_dump_func.
14590         * tree-ssa.c: Remove TODO_dump_func.
14591         * integrate.c: Remove TODO_dump_func.
14592         * tree-optimize.c: Remove TODO_dump_func.
14593         * tree-ssa-phiprop.c: Remove TODO_dump_func.
14594         * tree-object-size.c: Remove TODO_dump_func.
14595         * combine.c: Remove TODO_dump_func.
14596         * bb-reorder.c: Remove TODO_dump_func.
14597         * cprop.c: Remove TODO_dump_func.
14598         * var-tracking.c: Remove TODO_dump_func.
14599         * tree-profile.c: Remove TODO_dump_func.
14600         * tree-vect-generic.c: Remove TODO_dump_func.
14601         * reg-stack.c: Remove TODO_dump_func.
14602         * sched-rgn.c: Remove TODO_dump_func.
14603         * tree-ssa-structalias.c: Remove TODO_dump_func.
14604         * tree-switch-conversion.c: Remove TODO_dump_func.
14605         * tree-cfg.c: Remove TODO_dump_func.
14606         * tree-ssa-reassoc.c: Remove TODO_dump_func.
14607         * combine-stack-adj.c: Remove TODO_dump_func.
14608         * dce.c: Remove TODO_dump_func.
14609         * tree-ssanames.c: Remove TODO_dump_func.
14610         * regcprop.c: Remove TODO_dump_func.
14611
14612 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
14613
14614         PR middle-end/47364
14615         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
14616         and properly handle result not in Pmode.
14617
14618 2011-06-14  Robert Millan  <rmh@gnu.org>
14619
14620         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
14621         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
14622         `config/linux.h'.
14623
14624         * config/i386/kfreebsd-gnu64.h: New file.
14625         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
14626         with `i386/kfreebsd-gnu64.h'.
14627
14628         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
14629         (GNU_USER_LINK_EMULATION64): New macros.
14630         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
14631         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
14632         of hardcoding `elf_i386' and `elf_x86_64'.
14633
14634 2011-06-14  Nick Clifton  <nickc@redhat.com>
14635
14636         PR target/49403
14637         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
14638
14639         PR target/49402
14640         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
14641
14642 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
14643
14644         PR fortran/49103
14645         * tree.h (DECL_NONSHAREABLE): Define.
14646         (struct tree_decl_common): Change decl_common_unused to
14647         decl_nonshareable_flag.
14648         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
14649         Ignore vars with DECL_NONSHAREABLE bit set.
14650         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
14651         on stores to automatic aggregate vars.
14652
14653         PR rtl-optimization/49390
14654         Revert:
14655         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
14656
14657         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
14658         MEM_ALIAS_SET.
14659
14660 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
14661             Tom de Vries  <tom@codesourcery.com>
14662
14663         PR target/45098
14664         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
14665         Document changed semantics.
14666         (max_stmt_executions, max_stmt_executions_int): Declare.
14667         * tree-data-ref.c (estimated_loop_iterations)
14668         (estimated_loop_iterations_int): Move functions...
14669         * tree-ssa-loop-niter.c (estimated_loop_iterations)
14670         (estimated_loop_iterations_int): here.
14671         (record_estimate): Change nb_iterations_upper_bound and
14672         nb_iterations_estimate semantics.
14673         (max_stmt_executions, max_stmt_executions_int): New function.
14674         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
14675         (max_stmt_executions_tree): this.
14676         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
14677         estimated_loop_iterations_tree.
14678         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
14679         max_stmt_executions_int instead of estimated_loop_iterations_int.
14680         * predict.c (predict_loops): Idem.
14681         * tree-parloops.c (parallelize_loops): Idem.
14682         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
14683         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
14684         (init_omega_for_ddr_1): Idem.
14685         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
14686         (loop_prefetch_arrays): Idem
14687         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
14688         max_stmt_executions instead of estimated_loop_iterations.
14689         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
14690         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
14691         instead of nb_iterations_upper_bound.
14692
14693 2011-06-13  Jan Hubicka  <jh@suse.cz>
14694
14695         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
14696
14697 2011-06-14  Richard Henderson  <rth@redhat.com>
14698
14699         PR debug/48459
14700         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
14701         (based_loc_descr): Assert it's true.
14702         (compute_frame_pointer_to_fb_displacement): Set it, rather than
14703         aborting immediately.
14704
14705 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
14706             Mingfeng Wu  <mingfeng@faraday-tech.com>
14707
14708         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
14709
14710 2011-06-13  Jan Hubicka  <jh@suse.cz>
14711
14712         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
14713
14714 2011-06-13  Jan Hubicka  <jh@suse.cz>
14715
14716         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
14717         similarly to DECL_COMDAT.
14718         * cgraphunit.c (cgraph_analyze_function): Likewise.
14719         * ipa.c (function_and_variable_visibility): Likewise.
14720
14721 2011-06-13  Jan Hubicka  <jh@suse.cz>
14722
14723         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
14724         BINFO_VIRTUALS when streaming for ltrans unit.
14725
14726 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
14727
14728         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
14729         (movdi_internal64): Same.
14730
14731 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
14732
14733         PR target/44618
14734         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
14735         a set of similar patterns, where the MATCH_OPERAND for the function
14736         argument is replaced with individual references to hardware registers.
14737         (save_fpregs_<mode>): Ditto
14738         (restore_gpregs_<mode>): Ditto
14739         (return_and_restore_gpregs_<mode>): Ditto
14740         (return_and_restore_fpregs_<mode>): Ditto
14741         (return_and_restore_fpregs_aix_<mode>): Ditto
14742
14743 2011-06-13  Jan Hubicka  <jh@suse.cz>
14744
14745         * ipa-utils.c (postorder_stack): New structure.
14746         (ipa_reverse_postorder): Handle aliases.
14747
14748 2011-06-13  Jan Hubicka  <jh@suse.cz>
14749
14750         * ipa-inline.c (reset_edge_caches): Walk aliases.
14751         (update_caller_keys): Do not test inlinability of aliases.
14752         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
14753         (do_estimate_growth): Fix typo.
14754
14755 2011-06-13  Jan Hubicka  <jh@suse.cz>
14756
14757         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
14758         (can_remove_node_now_p): ... here; handle same comdat groups.
14759         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
14760         (inline_call): Update use of can_remove_node_now_p.
14761
14762 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
14763
14764         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
14765         condition to disallow non-identical memory locations.
14766         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
14767         preference to bit manipulation instructions.
14768
14769 2011-06-13  Jan Hubicka  <jh@suse.cz>
14770
14771         * cgraph.c (cgraph_for_node_thunks_and_aliases,
14772         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
14773         (nonremovable_p): New function.
14774         (cgraph_can_remove_if_no_direct_calls_p): New function.
14775         (used_from_object_file_p): New functoin.
14776         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
14777         references from aliases.
14778         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
14779         * ipa-inline.c (check_caller_edge): New function.
14780         (want_inline_function_called_once_p): Use it; accept aliases called
14781         once, too.
14782         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
14783
14784 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14785
14786         PR target/48454
14787         * config/arm/neon.md (vec_pack_trunc): Set the lengths
14788         correctly for the case with Quad vectors.
14789
14790 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
14791            Ira Rosen  <ira.rosen@linaro.org>
14792
14793         PR tree-optimization/49352
14794         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
14795         all, make sure loop_use_stmt after the loop is a def stmt of a used
14796         SSA_NAME that is the only one defined inside of the loop.  Don't
14797         check for COND_EXPR and GIMPLE_BINARY_RHS.
14798         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
14799         check_reduction is true.
14800
14801 2011-06-11  Jan Hubicka  <jh@suse.cz>
14802
14803         PR middle-end/49373
14804         * ipa.c (cgraph_externally_visible_p): Check resolution info.
14805
14806 2011-06-11  Jan Hubicka  <jh@suse.cz>
14807
14808         PR middle-end/48836
14809         * ipa-inline-transform.c: Include tree-pass.h
14810         (inline_transform): Set TODO_update_ssa_only_virtuals.
14811         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
14812
14813 2011-06-11  Jan Hubicka  <jh@suse.cz>
14814
14815         PR middle-end/49378
14816         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
14817         aliases and thunks.
14818
14819 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
14820
14821         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
14822         Take number of iterations to peel into account for equally frequent
14823         misalignment values.
14824
14825 2011-06-11  Jan Hubicka  <jh@suse.cz>
14826
14827         * lto-streamer-out.c (produce_symtab): Stream out the newly
14828         represented aliases.
14829
14830 2011-06-11  Jan Hubicka  <jh@suse.cz>
14831
14832         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
14833         varying args.
14834         (ipa_update_after_lto_read): Likewise.
14835         (ipa_write_node_info): Do not sream call_with_var_arguments.
14836         (ipa_read_node_info): Likewise.
14837
14838 2011-06-11  Jan Hubicka  <jh@suse.cz>
14839
14840         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
14841
14842 2011-06-11  Jan Hubicka  <jh@suse.cz>
14843
14844         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
14845         (lto_symtab_resolve_can_prevail_p): Likewise.
14846         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
14847         * cgraph.c (same_body_aliases_done): New global var.
14848         (cgraph_same_body_alias_1): Rename to ...
14849         (cgraph_create_function_alias): ... this one; reorg to new
14850         representation.
14851         (cgraph_same_body_alias): Use cgraph_create_function_alias;
14852         record references when asked to.
14853         (cgraph_add_thunk): Fix formating.
14854         (cgraph_get_node): Kill same body alias code.
14855         (cgraph_node_for_asm): Likewise.
14856         (cgraph_remove_same_body_alias): Remove.
14857         (cgraph_remove_node): Kill same body alias code.
14858         (cgraph_mark_address_taken_node): Mark also the aliased function
14859         as having address taken.
14860         (dump_cgraph_node): Dump same body aliases.
14861         (cgraph_for_node_thunks_and_aliases): Update for new alias
14862         representation.
14863         (cgraph_for_node_and_aliases): Likewise.
14864         * cgraph.h (same_body): Kll pointer.
14865         (same_body_alias): Update comment.
14866         (same_body_aliases_done): Declare.
14867         (cgraph_remove_same_body_alias): Remove declaration.
14868         (cgraph_create_function_alias): Declare.
14869         (cgraph_process_same_body_aliases): Declare.
14870         (cgraph_function_with_gimple_body_p): Check for alias.
14871         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
14872         (cgraph_alias_aliased_node): New function.
14873         (cgraph_function_node): Update for new aliases.
14874         (cgraph_function_or_thunk_node): Likewise.
14875         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
14876         (inline_call): Remove dead aliases.
14877         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
14878         name hack for same body aliases.
14879         (clone_of_p): Look through aliases.
14880         (verify_cgraph_node): Verify aliases.
14881         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
14882         (cgraph_process_same_body_aliases): New function.
14883         (process_function_and_variable_attributes): Disable weakref warning on
14884         alias.
14885         (cgraph_analyze_functions): Handle aliases.
14886         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
14887         (assemble_thunks): Rename to ...
14888         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
14889         (cgraph_expand_function): Remove alias output code.
14890         (cgraph_output_in_order): Skip aliases.
14891         (cgraph_preserve_function_body_p): Aliases don't need preserving.
14892         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
14893         (ipa_record_reference): Do not assert on alias references.
14894         (ipa_ref_has_aliases_p): New function.
14895         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
14896         (ipa_ref_has_aliases_p): Declare.
14897         * lto-cgraph.c (lto_output_node): Handle aliases.
14898         (input_node): Likewise.
14899         * lto-streamer-out.c (lto_output): Skip aliases.
14900         (produce_symtab): Kill same_body_alias code.
14901         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
14902         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
14903         * ipa-inline.c (update_caller_keys): Walk aliases.
14904         (inline_small_functions): Fix thinko in previous patch.
14905         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
14906         (function_and_variable_visibility): Do not walk same body aliases.
14907         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
14908         (ipa_pta_execute): Use it.
14909
14910 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
14911
14912         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
14913         (*vec_dupv2df): Rename from vec_dupv2df.
14914         (vec_dupv2df): New expander.
14915
14916 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
14917
14918         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
14919
14920 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
14921
14922         * config/i386/i386.md: Use default value in "isa" attribute.
14923         * config/i386/sse.md: Ditto.
14924         * config/i386/mmx.md: Ditto.
14925
14926 2011-06-10  Wei Guozhi  <carrot@google.com>
14927
14928         PR target/45335
14929         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
14930         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
14931         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
14932         related peephole2.
14933         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
14934         related peephole2.
14935         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
14936         (arm_legitimate_ldrd_p): New prototype.
14937         (arm_output_ldrd): New prototype.
14938         * config/arm/arm.c (arm_check_ldrd_operands): New function.
14939         (arm_legitimate_ldrd_p): New function.
14940         (arm_output_ldrd): New function.
14941
14942 2011-06-10  David Li  <davidxl@google.com>
14943
14944         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
14945         * passes.c (passr_eq): New function.
14946         (create_pass_tab): New function.
14947         (pass_traverse): New function.
14948         (dump_one_pass): New function.
14949         (dump_pass_list): New function.
14950         (dump_passes): New function.
14951
14952 2011-06-10  Jan Hubicka  <jh@suse.cz>
14953
14954         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
14955         setting the nothrow flag.
14956         * ipa-reference.c (propagate): Skip aliases.
14957         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
14958         (propagate_nothrow): Skip aliases; do not update cgraph.
14959         (local_pure_const): Do not update cgraph.
14960         * tree-profile.c (tree_profiling): Do fixup_cfg.
14961
14962 2011-06-10  Jan Hubicka  <jh@suse.cz>
14963
14964         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
14965         (cgraph_local_node_p): ... here; handle aliases.
14966         (has_addr_references_p): Break out from ...;
14967         (cgraph_remove_unreachable_nodes) ... here.
14968
14969 2011-06-10  Jan Hubicka  <jh@suse.cz>
14970
14971         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
14972         * common.opt (flag_inline_functions_called_once): Do not
14973         initialize to 1.
14974
14975 2011-06-10  Jan Hubicka  <jh@suse.cz>
14976
14977         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
14978         (ipcp_initialize_node_lattices): Do not deal with aliases;
14979         Do not try to propagate through thunks.
14980         (ipcp_change_tops_to_bottom): Do not deal with aliases.
14981
14982 2011-06-10  Jan Hubicka  <jh@suse.cz>
14983
14984         * ipa-prop.c (ipa_write_node_info): Stream jump functions
14985         for indirect calls.
14986         (ipa_read_node_info): Likewise.
14987
14988 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14989
14990         PR lto/49302
14991         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
14992         (build_and_insert_call): Likewise.
14993         (build_and_insert_ref): New.
14994         (gimple_expand_builtin_pow): Minor cleanup.
14995         (gimple_expand_builtin_cabs): New.
14996         (execute_cse_sincos): Add case for BUILT_IN_CABS.
14997
14998 2011-06-10  Jan Hubicka  <jh@suse.cz>
14999
15000         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
15001         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
15002         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
15003         (ipcp_propagate_stage): Skip aliases when propagating.
15004         (ipcp_need_redirect_p): Skip aliases.
15005         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
15006         collect_callers_of_node.
15007         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
15008         for aliases.
15009         (ipa_compute_jump_functions): Look through aliases.
15010
15011 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15012
15013         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
15014
15015 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
15016
15017         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
15018         Adjust comments.
15019         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
15020
15021 2011-06-10  Jan Hubicka  <jh@suse.cz>
15022
15023         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
15024         Update call of gimple_get_virt_method_for_binfo.
15025         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
15026         refuse_thunks parameter.
15027         (gimple_fold_call): Update.
15028         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
15029
15030 2011-06-10  Jan Hubicka  <jh@suse.cz>
15031
15032         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
15033         (not_all_callers_have_enough_arguments_p): ... this one; turn into
15034         worker for cgraph_for_node_and_aliases.
15035         (convert_callers_for_node): Break out from ...
15036         (convert_callers): ... here.
15037         (modify_function): Use collect_callers_of_node.
15038         (ipa_early_sra): Use cgraph_for_node_and_aliases.
15039
15040 2011-06-10  Richard Guenther  <rguenther@suse.de>
15041
15042         PR tree-optimization/49361
15043         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
15044         when not already in gimple form.
15045
15046 2011-06-10  Richard Guenther  <rguenther@suse.de>
15047
15048         PR bootstrap/49344
15049         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
15050         FOR_EACH_PHI_OR_STMT_USE.
15051
15052 2011-06-10  Jan Hubicka  <jh@suse.cz>
15053
15054         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
15055         (clone_inlined_nodes): ... here.
15056         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
15057         to real destination prior inlining.
15058         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
15059         can_early_inline_edge_p, want_early_inline_function_p,
15060         want_early_inline_function_p, want_inline_small_function_p,
15061         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
15062         edge_badness, update_all_callee_keys, lookup_recursive_calls,
15063         add_new_edges_to_heap, inline_small_functions, flatten_function,
15064         inline_always_inline_functions, early_inline_small_functions): Use
15065         cgraph_function_or_thunk_node.
15066         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
15067         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
15068         (do_estimate_edge_growth_1): Break out from ...
15069         (do_estimate_growth) ... here; walk aliases.
15070         (inline_generate_summary): Skip aliases.
15071
15072 2011-06-10  Richard Guenther  <rguenther@suse.de>
15073
15074         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
15075         forward when combining, visit inserted stmts when a stmt was changed.
15076
15077 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
15078
15079         * tree.h (error_operand_p): Add.
15080         * dbxout.c (dbxout_type_fields): Use the latter.
15081         * c-decl.c (add_stmt): Likewise.
15082         * gimplify.c (omp_add_variable, omp_notice_variable,
15083         gimplify_scan_omp_clauses): Likewise.
15084
15085 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
15086
15087         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
15088         when a value is actually passed in regs.
15089
15090 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
15091             Laurent Rougé  <laurent.rouge@menta.fr>
15092
15093         * doc/invoke.texi (SPARC options): Add -mflat.
15094         * config/sparc/sparc.opt: Likewise.
15095         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
15096         (sparc_flat_expand_prologue): Declare.
15097         (sparc_flat_expand_epilogue): Likewise.
15098         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
15099         (CPP_ENDIAN_SPEC): Replace with...
15100         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
15101         (CPP_SPEC): Adjust to above change.
15102         (EXTRA_SPECS): Likewise.
15103         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
15104         (INCOMING_REGNO): Likewise.
15105         (OUTGOING_REGNO): Likewise.
15106         (LOCAL_REGNO): Likewise.
15107         (SETUP_FRAME_ADDRESSES): Likewise.
15108         (FIXED_REGISTERS): Set 0 for %fp.
15109         (CALL_USED_REGISTERS): Likewise.
15110         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
15111         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
15112         (RETURN_ADDR_REGNUM): Define.
15113         (RETURN_ADDR_RTX): Use it.
15114         (INCOMING_RETURN_ADDR_REGNUM): Define.
15115         (INCOMING_RETURN_ADDR_RTX): Use it.
15116         (DWARF_FRAME_RETURN_COLUMN): Likewise.
15117         (EH_RETURN_REGNUM): Define.
15118         (EH_RETURN_STACKADJ_RTX): Use it.
15119         (EH_RETURN_HANDLER_RTX): Delete.
15120         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
15121         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
15122         Delete.
15123         (struct machine_function): Add frame_size, apparent_frame_size,
15124         frame_base_reg, frame_base_offset, n_global_fp_regs and
15125         save_local_in_regs_p fields.
15126         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
15127         sparc_frame_base_offset, sparc_n_global_fp_regs,
15128         sparc_save_local_in_regs_p): New macros.
15129         (sparc_option_override): Error out if -fcall-saved-REG is specified
15130         for Out registers.
15131         (eligible_for_restore_insn): Fix formatting.
15132         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
15133         (eligible_for_sibcall_delay): Likewise.
15134         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
15135         (sparc_legitimate_address_p): Adjust to above change.
15136         (save_global_or_fp_reg_p): New predicate.
15137         (return_addr_reg_needed_p): Likewise.
15138         (save_local_or_in_reg_p): Likewise.
15139         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
15140         (SORR_SAVE, SORR_RESTORE): Delete.
15141         (sorr_pred_t): New typedef.
15142         (sorr_act_t): New enum.
15143         (save_or_restore_regs): Rename to...
15144         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
15145         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
15146         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
15147         mechanism.  Add CFI information for double-word saves in 32-bit mode.
15148         (emit_adjust_base_to_offset): New function extracted from...
15149         (emit_save_or_restore_regs): ...this.  Rename the rest to...
15150         (emit_save_or_restore_regs_global_fp_regs): ...this.
15151         (emit_save_or_restore_regs_local_in_regs): New function.
15152         (gen_create_flat_frame_[123]): New functions.
15153         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
15154         (sparc_flat_expand_prologue): New function.
15155         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
15156         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
15157         (sparc_flat_expand_epilogue): New function.
15158         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
15159         (output_return): Likewise.
15160         (output_sibcall): Likewise.
15161         (sparc_output_mi_thunk): Likewise.
15162         (sparc_frame_pointer_required): Likewise.
15163         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
15164         function optimization.
15165         * config/sparc/sparc.md (flat): New attribute.
15166         (prologue): Add TARGET_FLAT handling.
15167         (save_register_window): Disable if TARGET_FLAT.
15168         (create_flat_frame_[123]): New patterns.
15169         (epilogue): Add TARGET_FLAT handling.
15170         (sibcall_epilogue): Likewise.
15171         (eh_return): New expander.
15172         (eh_return_internal): New insn and splitter.
15173         (return_internal): Add TARGET_FLAT handling.
15174         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
15175         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
15176         (nonlocal_goto): Add TARGET_FLAT handling.
15177         * config/sparc/t-elf: Add -mflat multilib.
15178         * config/sparc/t-leon: Likewise.
15179
15180 2011-06-10  Jan Hubicka  <jh@suse.cz>
15181
15182         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
15183         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
15184         (self_recursive_p): Use cgraph_function_node.
15185         (propagate_pure_const): Likewise.
15186         (propagate_nothrow): Likewise.
15187         * ipa-reference.c (ipa_reference_get_not_read_global): Use
15188         cgraph_function_node.
15189         (propagate_bits): Likewise.
15190         (propagate): Likewise.
15191
15192 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
15193             Richard Earnshaw  <rearnsha@arm.com>
15194
15195         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
15196         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
15197         (*thumb2_movdi_vfp): Delete.
15198         (*arm_movdi_vfp_cortexa8): Delete.
15199         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
15200         (*movdi_vfp_cortexa8): Likewise.
15201
15202 2011-06-10  Richard Guenther  <rguenther@suse.de>
15203
15204         * stor-layout.c (initialize_sizetypes): Give names to all
15205         sizetype kinds.
15206
15207 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
15208
15209         PR tree-optimization/49318
15210         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
15211         irrelevant pattern statements.
15212
15213 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
15214
15215         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
15216
15217         PR bootstrap/49354
15218         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
15219         to last assignment.
15220
15221 2011-06-09  Jan Hubicka  <jh@suse.cz>
15222
15223         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
15224         do not recompute reachable flag.
15225         (cgraph_finalize_function, cgraph_analyze_functions): Set
15226         redefined_extern_inline here.
15227
15228 2011-06-09  Jan Hubicka  <jh@suse.cz>
15229
15230         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
15231         (cgraph_only_called_directly_p): ... this one; bring offline.
15232         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
15233         varpool_used_from_object_file_p): Drop names from the declaratoin.
15234         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
15235         collect_callers_of_node): New.
15236         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
15237         (cgraph_edge_recursive_p): Use cgraph_function_node.
15238         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
15239         (cgraph_node_cannot_be_local_p_1): Break out from ...
15240         (cgraph_node_can_be_local_p): ... here; walk aliases.
15241         (cgraph_for_node_thunks_and_aliases): New function.
15242         (cgraph_for_node_and_aliases): New function.
15243         (cgraph_make_node_local_1): Break out from ...
15244         (cgraph_make_node_local) ... here; use
15245         cgraph_for_node_thunks_and_aliases.
15246         (cgraph_set_nothrow_flag_1): Break out from ...
15247         (cgraph_set_nothrow_flag) ... here;
15248         use cgraph_for_node_thunks_and_aliases.
15249         (cgraph_set_const_flag_1): Break out from ...
15250         (cgraph_set_const_flag) ... here;
15251         use cgraph_for_node_thunks_and_aliases.
15252         (cgraph_set_pure_flag_1): Break out from ...
15253         (cgraph_set_pure_flag) ... here;
15254         use cgraph_for_node_thunks_and_aliases.
15255         (cgraph_propagate_frequency_1): Break out from ...
15256         (cgraph_propagate_frequency) ... here; use
15257         cgraph_for_node_thunks_and_aliases.
15258         (cgraph_used_from_object_file_p): Do not care about aliases.
15259         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
15260         New functions.
15261         (collect_callers_of_node_1, collect_callers_of_node): New functions.
15262
15263 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
15264
15265         PR rtl-optimization/49154
15266         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
15267         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
15268         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
15269         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
15270         * config/cris/cris.h (cris_register_move_cost): Remove
15271         !TARGET_V32 code.  Tweak comments.
15272
15273 2011-06-09  Jan Hubicka  <jh@suse.cz>
15274
15275         * cgraphbuild.c (record_eh_tables): Mark personality function as having
15276         address taken.
15277
15278 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
15279
15280         PR rtl-optimization/49154
15281         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
15282         is a matching slot in the hashtable, assign it to classes_ptr.
15283
15284         PR rtl-optimization/49154
15285         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
15286         register classes.
15287         * doc/tm.texi: Regenerate.
15288
15289 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
15290
15291         PR target/49307
15292         * config/sh/sh.md (UNSPEC_CHKADD): New.
15293         (chk_guard_add): New define_insn_and_split.
15294         (symGOT_load): Use chk_guard_add instead of blockage.
15295
15296 2011-06-09  Kai Tietz  <ktietz@redhat.com>
15297
15298         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
15299
15300 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
15301
15302         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
15303
15304 2011-06-09  Wei Guozhi  <carrot@google.com>
15305
15306         PR target/46975
15307         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
15308         (peephole2 for conditional move): Generate 16 bit instructions.
15309
15310 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
15311
15312         * config/i386/i386.md (*movdi_internal_rex64): Merge
15313         alternatives 6 and 8.
15314
15315 2011-06-09  David Li  <davidxl@google.com>
15316
15317         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
15318         * passes.c (passr_eq): New function.
15319         (create_pass_tab): New function.
15320         (pass_traverse): New function.
15321         (dump_one_pass): New function.
15322         (dump_pass_list): New function.
15323         (dump_passes): New function.
15324
15325 2011-06-09  David Li  <davidxl@google.com>
15326
15327         * tree-complex.c (tree_lower_complex): Gate cleanup.
15328         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
15329         (execute_optimize_stdarg): Ditto.
15330         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
15331         (execute_cleanup_eh_1): Ditto.
15332         (execute_cleanup_eh): Ditto.
15333         * gcse.c (gate_rtl_pre): Ditto.
15334         (execute_rtl_pre): Ditto.
15335         * except.c (finish_eh_generation): Ditto.
15336         (convert_to_eh_region_ranges): Ditto.
15337         * cprop.c (one_cprop_pass): Ditto.
15338
15339 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
15340
15341         PR target/48673
15342         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
15343         in all basic blocks.
15344
15345 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15346
15347         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
15348         (HAVE_ENABLE_EXECUTE_STACK): Define.
15349         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
15350         (HAVE_ENABLE_EXECUTE_STACK): Define.
15351         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
15352         (HAVE_ENABLE_EXECUTE_STACK): Define.
15353         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
15354         (ENABLE_EXECUTE_STACK): Remove.
15355         (HAVE_ENABLE_EXECUTE_STACK): Define.
15356         [IN_LIBGCC2]: Don't include <windows.h>.
15357         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
15358         (HAVE_ENABLE_EXECUTE_STACK): Define.
15359         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
15360         (HAVE_ENABLE_EXECUTE_STACK): Define.
15361         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
15362         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
15363         (HAVE_ENABLE_EXECUTE_STACK): Define.
15364         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
15365         (HAVE_ENABLE_EXECUTE_STACK): Define.
15366         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
15367         (HAVE_ENABLE_EXECUTE_STACK): Define.
15368         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
15369         (HAVE_ENABLE_EXECUTE_STACK): Define.
15370         * config/alpha/alpha.c (alpha_trampoline_init): Test
15371         HAVE_ENABLE_EXECUTE_STACK.
15372         * config/i386/i386.c (ix86_trampoline_init): Likewise.
15373         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
15374         (sparc64_initialize_trampoline): Likewise.
15375         * libgcc2.c [L_enable_execute_stack]: Remove.
15376         * system.h (ENABLE_EXECUTE_STACK): Poison.
15377         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
15378         * doc/tm.texi: Regenerate.
15379         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
15380
15381 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
15382
15383         PR middle-end/49308
15384         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
15385         variable.  After resetting and rescanning insn continue with previous
15386         statement.
15387
15388 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15389
15390         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
15391         (gcc_cv_ld_hidden): Likewise.
15392         * configure: Regenerate.
15393         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
15394         (ix86_stack_protect_fail): Mark unused.
15395         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
15396         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
15397         [TARGET_MACHO]: Don't define.
15398         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
15399         (TARGET_STACK_PROTECT_FAIL): Likewise.
15400         (rs6000_stack_protect_fail): Mark unused.
15401         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
15402         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
15403
15404 2011-06-08  Andi Kleen  <ak@linux.intel.com>
15405
15406         * varasm.c (get_section): Print location of other conflict
15407         for section conflicts.
15408
15409 2011-06-08  Andi Kleen  <ak@linux.intel.com>
15410
15411         * config/i386/driver-i386.c (host_detect_local_cpu):
15412         Add model 0x2d Intel CPU.
15413
15414 2011-06-08  Andi Kleen  <ak@linux.intel.com>
15415
15416         * reginfo.c (global_regs_decl): Add.
15417         (globalize_reg): Add decl parameter. Compute location.  Pass location
15418         to warnings and add inform. Store decl in global_regs_decl.
15419         * rtl.h (globalize_reg): Update prototype.
15420         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
15421
15422 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
15423
15424         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
15425
15426 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
15427
15428         PR target/49305
15429         * config/sh/predicates.md (general_movsrc_operand): Check
15430         mode for memory with indexed address for QI and HImode.
15431         (general_movdst_operand): Likewise.
15432
15433 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
15434
15435         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
15436
15437 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
15438
15439         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
15440         (num_ssa_operands): Likewise.
15441         (op_iter_init_phiuse): Forward-declare.
15442         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
15443
15444 2011-06-08  Nick Clifton  <nickc@redhat.com>
15445
15446         * doc/invoke.texi (ARM Options): Update description of
15447         -mthumb-interwork.
15448
15449 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
15450
15451         * config/i386/driver-i386.c (host_detect_local_cpu): Support
15452         unknown Intel family 0x6 CPUs.
15453
15454 2011-06-08  Martin Jambor  <mjambor@suse.cz>
15455
15456         * tree-sra.c (mark_rw_status): Removed.
15457         (analyze_access_subtree): New parameter parent instead of
15458         mark_read and mark_write, propagate from that.
15459
15460 2011-06-08  Julian Brown  <julian@codesourcery.com>
15461
15462         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
15463         for double-precision helper functions in hard-float mode if only
15464         single-precision arithmetic is supported in hardware.
15465
15466 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
15467
15468         PR rtl-optimization/49303
15469         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
15470         code_motion_path_driver returned 0 or 1.
15471         (sel_region_finish): Clear h_d_i_d.
15472
15473 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
15474
15475         * config/sh/sh.c (prepare_move_operands): Set pic register
15476         appropriately for global and local dynamic tls models even
15477         if flag_pic is unset.
15478
15479 2011-06-07  Jason Merrill  <jason@redhat.com>
15480
15481         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
15482
15483 2011-06-07  Xinliang David Li  <davidxl@google.com>
15484         * passes.c (enable_disable_pass): Handle assembler name.
15485         (is_pass_explicitly_enabled_or_disabled): Ditto.
15486
15487 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15488
15489         PR tree-optimization/48497
15490         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
15491
15492 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15493
15494         PR tree-optimization/46728
15495         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
15496         to use gimple_val_nonnegative_real_p.
15497         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
15498         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
15499
15500 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
15501
15502         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
15503
15504 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
15505
15506         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
15507         constant vectors.
15508
15509 2011-06-07  Richard Guenther  <rguenther@suse.de>
15510
15511         * stor-layout.c (initialize_sizetypes): Initialize all
15512         sizetypes based on target definitions.
15513         (set_sizetype): Remove.
15514         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
15515         * tree.h (set_sizetype): Remove.
15516
15517 2011-06-07  Nick Clifton  <nickc@redhat.com>
15518
15519         * config.gcc: Unify V850 architecture options and add support for
15520         newer V850 architectures.
15521         * config/v850/t-v850e: Delete.
15522
15523 2011-06-07  Richard Guenther  <rguenther@suse.de>
15524
15525         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
15526         Call set_sizetype from here.
15527
15528 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
15529
15530         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
15531         (*maddhisi4tb, *maddhisi4tt): New define_insns.
15532
15533 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
15534             Andrew Stubbs  <ams@codesourcery.com>
15535
15536         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
15537         multiplies.
15538         * doc/md.texi (Canonicalization of Instructions): Document widening
15539         multiply canonicalization.
15540
15541 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
15542
15543         PR gcov-profile/49299
15544         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
15545
15546 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
15547
15548         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
15549         a pointer.
15550         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
15551         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
15552         vect_recog_pow_pattern): Likewise.
15553         (vect_pattern_recog_1): Remove declaration.
15554         (widened_name_p): Remove declaration.  Add new argument to specify
15555         whether to check that both types are either signed or unsigned.
15556         (vect_recog_widen_mult_pattern): Update documentation.  Handle
15557         unsigned patterns and multiplication by constants.
15558         (vect_pattern_recog_1): Update vect_recog_func references.  Use
15559         statement information from the statement returned from pattern
15560         detection functions.
15561         (vect_pattern_recog): Update vect_recog_func reference.
15562         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
15563         multiplication by a constant use the type of the other operand.
15564
15565 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
15566
15567         PR rtl-optimization/49145
15568         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
15569
15570 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
15571
15572         PR debug/49262
15573         * dwarf2out.c (native_encode_initializer): Decrement count in each
15574         iteration.
15575
15576         PR debug/49294
15577         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
15578         non-MODE_INT modes.
15579
15580         PR c++/49264
15581         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
15582         if stmt folded into nothing.
15583         * tree-inline.c (fold_marked_statements): If a builtin at the end of
15584         a bb folded into nothing, just update cgraph edges and move to next bb.
15585         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
15586         to be NULL.  Don't compute count and frequency if new_call is NULL.
15587
15588 2011-06-04  Diego Novillo  <dnovillo@google.com>
15589
15590         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
15591         (cgraph.o): Likewise.
15592         (cgraphunit.o): Likewise.
15593         * cgraphunit.c: Include lto-streamer.h
15594         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
15595         if LTO is enabled.
15596         * lto-streamer-in.c (unpack_value_fields): Call
15597         streamer_hooks.unpack_value_fields if set.
15598         (lto_materialize_tree): For unhandled nodes, first try to
15599         call lto_streamer_hooks.alloc_tree, if it exists.
15600         (lto_input_ts_decl_common_tree_pointers): Move reading of
15601         DECL_INITIAL to lto_streamer_read_tree.
15602         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
15603         (lto_streamer_read_tree): New.
15604         (lto_reader_init): Rename from lto_init_reader.
15605         Move initialization code to lto/lto.c.
15606         * lto-streamer-out.c (pack_value_fields): Call
15607         streamer_hooks.pack_value_fields if set.
15608         (lto_output_tree_ref): For tree nodes that are not normally indexable,
15609         call streamer_hooks.indexable_with_decls_p before giving up.
15610         (lto_output_ts_decl_common_tree_pointers): Move handling
15611         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
15612         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
15613         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
15614         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
15615         (lto_streamer_write_tree): New.
15616         (lto_output): Call lto_streamer_init directly.
15617         (lto_writer_init): Remove.
15618         * lto-streamer.c (streamer_hooks): New.
15619         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
15620         instead of lto_preload_common_nodes.
15621         (lto_is_streamable): Move from lto-streamer.h
15622         (lto_streamer_hooks_init): New.
15623         (streamer_hooks): New.
15624         (streamer_hooks_init): New.
15625         * lto-streamer.h (struct output_block): Forward declare.
15626         (struct lto_input_block): Likewise.
15627         (struct data_in): Likewise.
15628         (struct bitpack_d): Likewise.
15629         (struct streamer_hooks): Declare.
15630         (streamer_hooks): Declare.
15631         (lto_streamer_hooks_init): Declare.
15632         (lto_streamer_write_tree): Declare.
15633         (lto_streamer_read_tree): Declare.
15634         (streamer_hooks_init): Declare.
15635         (lto_is_streamable): Move to lto-streamer.c
15636
15637 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15638
15639         * longlong.h (smul_ppmm): The resulting register pair contains the
15640         higher order word first.
15641
15642 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15643
15644         PR tree-optimization/46728
15645         * builtins.c (powi_table): Remove.
15646         (powi_lookup_cost): Remove.
15647         (powi_cost): Remove.
15648         (expand_powi_1): Remove.
15649         (expand_powi): Remove.
15650         (expand_builtin_pow_root): Remove.
15651         (expand_builtin_pow): Remove.
15652         (expand_builtin_powi): Eliminate handling of constant exponent.
15653         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
15654
15655 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
15656
15657         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
15658
15659 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
15660
15661         * dce.c (reset_unmarked_insns_debug_uses): New.
15662         (delete_unmarked_insns): Skip debug insns.
15663         (prescan_insns_for_dce): Likewise.
15664         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
15665         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
15666         active reg can be found.
15667         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
15668         (convert_regs_1): Use it.
15669
15670 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
15671
15672         * tree-pretty-print.c (dump_function_header): Add flags.
15673         Don't dump decl_uid with nouid.
15674         * tree-pretty-print.h (dump_function_header): Adjust.
15675         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
15676         * passes.c (pass_init_dump_file): Pass dump_flags on.
15677         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
15678
15679 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
15680
15681         PR bootstrap/49270
15682         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
15683
15684 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
15685
15686         PR tree-optimization/49243
15687         * calls.c (setjmp_call_p): Also check if fndecl has the
15688         returns_twice attribute.
15689
15690 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15691
15692         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
15693         -ffast-math etc.
15694
15695 2011-06-06  Richard Henderson  <rth@redhat.com>
15696             Georg-Johann Lay  <avr@gjlay.de>
15697
15698         PR target/42210
15699         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
15700         New predicates.
15701         * config/avr/avr.md ("insv"): New insn expander.
15702         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
15703         "*insv.not.io", "*insv.reg"): New insns.
15704
15705 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
15706
15707         PR target/49285
15708         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
15709         to nonimmediate_operand from memory_operand for the operand that is to
15710         be forced to memory by the expander.  Lose the constraints.
15711
15712 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
15713
15714         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
15715         EH return when delayed branches are disabled.
15716
15717 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
15718
15719         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
15720         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
15721         calculation.
15722         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
15723         Simplify MODE_V1DF and MODE_V2SF handling.
15724         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
15725         Simplify MODE_SF handling.
15726
15727 2011-06-04  Jan Hubicka  <jh@suse.cz>
15728
15729         PR tree-optimization/48893
15730         PR tree-optimization/49091
15731         PR tree-optimization/49179
15732         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
15733         Bounds check.
15734
15735 2011-06-04  Jan Hubicka  <jh@suse.cz>
15736
15737         PR lto/48954
15738         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
15739         bitmaps.
15740
15741 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
15742
15743         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
15744
15745 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
15746
15747         PR target/49281
15748         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
15749         to be strictly smaller than 1 << shiftcount.
15750
15751 2011-06-04  Jan Hubicka  <jh@suse.cz>
15752
15753         PR tree-optimize/48929
15754         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
15755         of empty predicate.
15756
15757 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
15758
15759         PR debug/48333
15760         * calls.c (emit_call_1): Prefer the __builtin declaration of
15761         builtin functions.
15762
15763 2011-06-03   Diego Novillo  <dnovillo@google.com>
15764
15765         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
15766         (lto_input_tree_pointers): Likewise.
15767         * lto-streamer-out.c (pack_value_fields): Likewise.
15768         (lto_output_tree_pointers): Likewise.
15769         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
15770         and OPTIMIZATION_NODE.
15771
15772 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15773
15774         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
15775         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
15776         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
15777         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
15778         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
15779         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
15780         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
15781         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
15782         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
15783         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
15784         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
15785         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
15786         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
15787         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
15788         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
15789         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
15790         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
15791         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
15792         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
15793         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
15794         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
15795         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
15796         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
15797         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
15798         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
15799         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
15800         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
15801         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
15802         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
15803         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
15804         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
15805         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
15806         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
15807         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
15808         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
15809         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
15810         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
15811         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
15812         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
15813         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
15814         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
15815         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
15816         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
15817         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
15818         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
15819         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
15820         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
15821         * system.h (MD_UNWIND_SUPPORT): Poison.
15822         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
15823         * doc/tm.texi: Regenerate.
15824         * unwind-dw2.c: Include md-unwind-support.h instead of
15825         MD_UNWIND_SUPPORT.
15826         * config/ia64/unwind-ia64.c: Likewise.
15827         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
15828
15829 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
15830
15831         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
15832
15833 2011-06-03  Richard Henderson  <rth@redhat.com>
15834             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15835
15836         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
15837         (sigill_hdlr): Correct insn, insn size.
15838         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
15839
15840 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15841
15842         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
15843         t-slibgcc-dummy.
15844         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
15845         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
15846         * config/mips/t-iris: Remove.
15847         * config/mips/t-irix6: New file.
15848         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
15849
15850 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15851
15852         * Makefile.in (LIB2ADDEHDEP): Remove.
15853         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
15854         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
15855         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
15856         * config/t-darwin (LIB2ADDEHDEP): Remove.
15857         * config/t-freebsd (LIB2ADDEHDEP): Remove.
15858         * config/t-linux (LIB2ADDEHDEP): Remove.
15859
15860 2011-06-03  Diego Novillo  <dnovillo@google.com>
15861
15862         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
15863         (lto_register_var_decl_in_symtab): Likewise.
15864         (lto_register_function_decl_in_symtab): Likewise.
15865         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
15866         logic to uniquify_nodes.
15867
15868 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15869
15870         * config/alpha/t-osf5: Remove.
15871         * config/alpha/t-osf-pthread: Remove.
15872         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
15873         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
15874
15875 2011-06-03  Julian Brown  <julian@codesourcery.com>
15876
15877         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
15878         (strongarm1110): Use strongarm tuning.
15879         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
15880         * config/arm/arm.c (arm_strongarm_tune): New.
15881         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
15882         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
15883         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
15884         setting, using previous defaults or 1 for Cortex-A5.
15885         (arm_option_override): Set max_insns_skipped from current tuning.
15886
15887 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
15888
15889         * doc/install.texi (Options specification): Document --with-specs.
15890
15891 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
15892
15893         * config/arm/neon.md (orndi3_neon): Actually split it.
15894
15895 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
15896
15897         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
15898         * var-tracking.c (reverse_op): Limite recurse depth to 5.
15899
15900 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
15901
15902         PR debug/47590
15903         * target.def (delay_sched2, delay_vartrack): New.
15904         * doc/tm.texi.in: Update.
15905         * doc/tm.texi: Rebuild.
15906         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
15907         * var-tracking.c (gate_handle_var_tracking): Likewise.
15908         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
15909         (bfin_flag_var_tracking): Drop.
15910         (output_file_start): Don't save and override flag_var_tracking.
15911         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
15912         (bfin_reorg): Test original variables.
15913         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
15914         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
15915         (ia64_flag_var_tracking): Drop.
15916         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
15917         (ia64_file_start): Don't save and override flag_var_tracking.
15918         (ia64_override_options_after_change): Ditto
15919         flag_schedule_insns_after_reload.
15920         (ia64_reorg): Test original variables.
15921         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
15922         (picochip_flag_var_tracking): Drop.
15923         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
15924         (picochip_option_override): Don't save and override
15925         flag_schedule_insns_after_reload.
15926         (picochip_asm_file_start): Ditto flag_var_tracking.
15927         (picochip_reorg): Test original variables.
15928         * config/spu/spu.c (spu_flag_var_tracking): Drop.
15929         (TARGET_DELAY_VARTRACK): Define.
15930         (spu_var_tracking): New.
15931         (spu_machine_dependent_reorg): Call it.
15932         (asm_file_start): Don't save and override flag_var_tracking.
15933
15934 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
15935
15936         PR target/49163
15937         * config/sh/predicates.md (general_movsrc_operand): Return 0
15938         for memory and memory subreg of which address is an invalid
15939         indexed address for QI and HImode.
15940         (general_movdst_operand): Likewise.
15941
15942 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
15943
15944         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
15945         edges only, when there is a non-local label in the function.
15946         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
15947
15948 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
15949
15950         * config/i386/constraints.md (Y3): New register constraint.
15951         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
15952         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
15953         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
15954         *sse2_interleave_lowv2df.
15955
15956 2011-06-02  Julian Brown  <julian@codesourcery.com>
15957
15958         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
15959         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
15960         (arm_cortex_a5_tune): New.
15961
15962 2011-06-02  Julian Brown  <julian@codesourcery.com>
15963
15964         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
15965         * config/arm/arm.c (arm_default_branch_cost): New.
15966         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
15967         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
15968         (arm_fa726_tune): Set branch_cost field using
15969         arm_default_branch_cost.
15970         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
15971         current_tune structure.
15972         * dojump.c (tm_p.h): Include file.
15973
15974 2011-06-02  Julian Brown  <julian@codesourcery.com>
15975
15976         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
15977         tuning.
15978         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
15979         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
15980         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
15981         field.
15982         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
15983         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
15984         (arm_fa726te_tune): Add prefer_constant_pool setting.
15985         (arm_v6t2_tune, arm_cortex_tune): New.
15986         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
15987         prefer_constant_pool setting.
15988
15989 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
15990
15991         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
15992         switch statement.
15993         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
15994         (*movdf_internal) <case 6,7,8>: Ditto.
15995
15996         * config/i386/constraints.md (Y4): New register constraint.
15997         * config/i386/sse.md (vec_set<mode>_0): Merge with
15998         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
15999         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
16000         *vec_extractv2di_1_sse.
16001         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
16002         and *vec_concatv2di_rex64_sse.
16003
16004 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
16005
16006         PR target/48807
16007         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
16008         of cgraph_local_info for null before attempting to use it.
16009
16010 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
16011
16012         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
16013         (current_function_dynamic_alloc_count): Delete.
16014         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
16015         (expand_builtin_nonlocal_goto): Remove obsolete comment.
16016         (expand_builtin_update_setjmp_buf): Remove dead code.
16017         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
16018         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
16019         support.
16020         * function.c (instantiate_virtual_regs): Likewise.
16021         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
16022         for a block with a single abnormal incoming edge.
16023         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
16024         (SETJMP_VIA_SAVE_AREA): Delete.
16025         * config/sparc/sparc-protos.h (load_got_register): Declare.
16026         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
16027         (load_got_register): Make global.
16028         (sparc_frame_pointer_required): Add 'static'.
16029         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
16030         (sparc_builtin_setjmp_frame_value): New function.
16031         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
16032         (save_stack_nonlocal): New expander.
16033         (restore_stack_nonlocal): Likewise.
16034         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
16035         (nonlocal_goto_internal): New insn.
16036         (goto_handler_and_restore): Delete.
16037         (builtin_setjmp_setup): Likewise.
16038         (do_builtin_setjmp_setup): Likewise.
16039         (setjmp): Likewise.
16040         (builtin_setjmp_receiver): New expander.
16041
16042 2011-06-01  David Li  <davidxl@google.com>
16043
16044         PR middle-end/49261
16045         * tree-pretty-print.c (dump_function_header): Format cleanup.
16046
16047 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
16048
16049         PR target/49238
16050         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
16051         needed when original operands are used for msw_skip comparison.
16052
16053 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
16054
16055         PR debug/49250
16056         * var-tracking.c (add_uses, add_stores): Don't call
16057         cselib_subst_to_values on ENTRY_VALUE.
16058
16059 2011-06-01  Diego Novillo  <dnovillo@google.com>
16060
16061         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
16062         output_record_start with LTO_null instead of output_zero.
16063         (lto_output_ts_binfo_tree_pointers): Likewise.
16064         (lto_output_tree): Likewise.
16065         (output_eh_try_list): Likewise.
16066         (output_eh_region): Likewise.
16067         (output_eh_lp): Likewise.
16068         (output_eh_regions): Likewise.
16069         (output_bb): Likewise.
16070         (output_function): Likewise.
16071         (output_unreferenced_globals): Likewise.
16072         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
16073         instead of NUM_TREE_CODES.
16074         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
16075         (lto_output_int_in_range): Change << to >> when shifting VAL.
16076
16077 2011-06-01  Diego Novillo  <dnovillo@google.com>
16078
16079         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
16080         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
16081
16082 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
16083
16084         PR target/45074
16085         * optabs.h (valid_multiword_target_p): Declare.
16086         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
16087         doing multi-word operations.
16088         * optabs.c (expand_binop): Likewise.
16089         (expand_doubleword_bswap): Likewise.
16090         (expand_absneg_bit): Likewise.
16091         (expand_unop): Likewise.
16092         (expand_copysign_bit): Likewise.
16093         (multiword_target_p): New function.
16094
16095 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
16096
16097         PR rtl-optimization/48830
16098         PR rtl-optimization/48808
16099         PR rtl-optimization/48792
16100         * reload.c (push_reload): Check contains_reg_of_mode.
16101         * reload1.c (strip_paradoxical_subreg): New function.
16102         (gen_reload_chain_without_interm_reg_p): Use it to handle
16103         paradoxical subregs.
16104         (emit_output_reload_insns, gen_reload): Likewise.
16105
16106 2011-06-01  David Li  <davidxl@google.com>
16107
16108         * predict.c : Change pass name
16109         * ipa.c: Ditto.
16110         * dce.c: Ditto.
16111         * tree-profile.c: Ditto.
16112         * except.c: Ditto.
16113
16114 2011-06-01  David Li  <davidxl@google.com>
16115
16116         * tree-pretty-print.c (dump_function_header): New function.
16117         * final.c (rest_of_clean_state): Use header dumper.
16118         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
16119         * passes.c (pass_init_dump_file): Use header dumper.
16120
16121 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
16122
16123         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
16124         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
16125         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
16126         New functions.
16127         (mem_loc_descriptor): Use them.
16128
16129         * var-tracking.c (create_entry_value): New function.
16130         (vt_add_function_parameter): Use it.
16131
16132 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16133
16134         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
16135         Include <signal.h>, <ucontext.h>.
16136         (sigill_caught): Define.
16137         (sigill_hdlr): New function.
16138         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
16139         insns can be executed.
16140         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
16141         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
16142
16143 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16144
16145         * config/t-slibgcc-darwin: Move to ...
16146         * config/t-slibgcc-dummy: ... this.  Clarify comments.
16147         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
16148         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
16149         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
16150         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
16151         Remove i386/t-crtstuff from tmake_file.
16152         (i[34567]86-*-solaris2*): Remove t-svr4,
16153         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
16154         t-slibgcc-dummy.
16155         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
16156         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
16157         sparc/t-crtfm from tmake_file.
16158         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
16159         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
16160         Remove extra_parts.
16161         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
16162         * config/i386/t-nwld (SHLIB_LINK): Remove.
16163         * config/i386/t-rtems-i386: Rename to ...
16164         * config/i386/t-rtems: ... this.
16165         ($(T)crti.o, $(T)crtn.o): Remove.
16166         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
16167         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
16168         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
16169         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
16170         EXTRA_MULTILIB_PARTS): Remove.
16171         * config/sparc/t-sol2-64: Likewise.
16172         * config/sparc/t-sol2: Remove.
16173         * config/sparc/t-crtin: Remove.
16174         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
16175         * config/i386/gmon-sol2.c: Remove.
16176         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
16177         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
16178         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
16179         * config/i386/sol2-gc1.asm: Remove.
16180         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
16181         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
16182         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
16183         * config/t-slibgcc-sld: Remove.
16184
16185 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
16186
16187         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
16188         base_type_for_mode with op_mode instead of mode.
16189
16190 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
16191
16192         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
16193         Cortex-A15.
16194         * config/arm/arm-tune.md: Regenerate.
16195         * config/arm/arm-tables.opt: Regenerate.
16196         * config/arm/arm.c (FL_DIV): Rename...
16197         (FL_THUMB_DIV): ... to this.
16198         (FL_ARM_DIV): Define.
16199         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
16200         (arm_arch_hwdiv): Remove.
16201         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
16202         (arm_issue_rate): Add cortexr5.
16203         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
16204         __ARM_ARCH_EXT_IDIV__.
16205         (TARGET_IDIV): Define.
16206         (arm_arch_hwdiv): Remove.
16207         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
16208         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
16209         (divsi3, udivsi3): New patterns.
16210         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
16211         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
16212
16213 2011-06-01  Martin Jambor  <mjambor@suse.cz>
16214
16215         * ipa-utils.c (ipa_dfs_info): New field scc_no.
16216         * ipa-utils.c (searchc): Set scc_no.
16217
16218 2011-06-01  Martin Jambor  <mjambor@suse.cz>
16219
16220         * ipa-utils.c (searchc_env): New field allow_overwritable.
16221         (searchc): do not ignore edges to overwritable nodes if indicated
16222         by env->allow_overwritable.
16223         (ipa_reduced_postorder): Set env.allow_overwritable.
16224
16225 2011-06-01  Richard Guenther  <rguenther@suse.de>
16226
16227         * tree.c (free_lang_data): Do not reset boolean_type_node nor
16228         char_type_node.
16229         * lto-streamer.c (lto_record_common_node): Take node pointer,
16230         do not register types.
16231         (lto_preload_common_nodes): Explicitly skip preloading nodes
16232         that differ between frontends.
16233
16234 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
16235
16236         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
16237         NON_FLOAT_REGS.
16238
16239 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
16240
16241         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
16242         parameter value for dump. Dump cost on outermost call only.
16243         (rs6000_memory_move_cost): Dump cost on outermost call only.
16244
16245 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
16246
16247         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
16248         DW_OP_GNU_convert ops.
16249
16250         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
16251         cselib_preserve_constants.
16252         (cselib_lookup_1): If cselib_preserve_constants,
16253         a new VALUE is being created for REG and there is a VALUE for the
16254         same register in wider mode, add another loc with lowpart SUBREG of
16255         the wider VALUE.
16256         (cselib_subst_to_values): Handle ENTRY_VALUE.
16257         * var-tracking.c  (replace_expr_with_values): Return NULL for
16258         ENTRY_VALUE too.
16259         * dwarf2out.c (convert_descriptor_to_signed): New function.
16260         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
16261         instead of two shifts.
16262         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
16263         the right mode if needed.
16264         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
16265         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
16266         convert_descriptor_to_signed.
16267         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
16268         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
16269
16270         PR target/48688
16271         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
16272
16273 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
16274
16275         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
16276         of X87MODEI12 and SWI48x instead of SSEMODEI24.
16277         (SWI248x): New mode iterator, rename from X87MODEI.
16278         (X87MODEI): Remove mode iterator.
16279         (X87MODEI12): Ditto.
16280         (SSEMODEI24): Ditto.
16281
16282 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
16283
16284         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
16285         * doc/invoke.texi: Document max-vartrack-expr-depth.
16286         * var-tracking.c (EXPR_DEPTH): New.
16287         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
16288
16289 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
16290
16291         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
16292         * config/i386/sse.md: Add n to negated FMA pattern names.
16293
16294 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
16295
16296         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
16297
16298 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
16299
16300         * gengtype-state.c (read_state_params_structs): Initialize previous.
16301
16302 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
16303
16304         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
16305         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
16306
16307 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
16308
16309         * config/i386/i386.md (*movtf_internal): Avoid allocating general
16310         registers.  Penalize F*r->o alternative to prevent partial memory
16311         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
16312         CONST_DOUBLE immediates when optimizing function for size.  Do not move
16313         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
16314         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
16315         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
16316         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
16317         alternatives.
16318         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
16319
16320         (fp_register_operand splitters): Use fp_register_operand
16321         constraint.  Do not use FP_REG_P in insn condition.
16322         (any_fp_register_operand splitters): Use any_fp_register_operand
16323         constraint.  Do not use ANY_FP_REG_P in insn condition.
16324
16325 2011-05-31  Jan Hubicka  <jh@suse.cz>
16326
16327         * cgraph.h (cgraph_inline_failed_t): Give enum a name
16328         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
16329         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
16330         (lto_output_edge): Use output_enum and var_len_unsigned.
16331         (lto_output_varpool_node): Likewise.
16332         (input_overwrite_node): Do not take resolution parameter;
16333         extract it from a bitpack.
16334         (input_node): Do not read resolution; use input_enum and
16335         var_len_unsigned.
16336         (input_varpool_node): Likewise.
16337         (input_edge): Likewise.
16338         (input_cgraph_1): Likewise.
16339
16340 2011-05-31  Richard Guenther  <rguenther@suse.de>
16341
16342         * gimple.c (gimple_register_canonical_type): Do not register
16343         any types via gimple_register_type.
16344
16345 2011-05-31  Jan Hubicka  <jh@suse.cz>
16346
16347         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
16348         of thunks.
16349
16350 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
16351
16352         PR rtl-optimization/49235
16353         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
16354         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
16355
16356 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
16357
16358         PR tree-optimization/49093
16359         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
16360         data references.
16361
16362 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
16363
16364         PR debug/49047
16365         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
16366         for concrete functions containing the code of cloned functions.
16367
16368 2011-05-31  Richard Guenther  <rguenther@suse.de>
16369
16370         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
16371         to ...
16372         (forward_propagate_into_comparison_1): ... this.
16373         (forward_propagate_comparison): Rename to ...
16374         (forward_propagate_into_comparison): ... this.  Split out
16375         real forward propagation code to ...
16376         (forward_propagate_comparison): ... this.
16377         (forward_propagate_into_gimple_cond): Remove looping.
16378         (forward_propagate_into_cond): Likewise.
16379         (simplify_not_neg_expr): Return whether we have done something.
16380         (simplify_gimple_switch): Likewise.
16381         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
16382         (ssa_forward_propagate_and_combine): ... this.  Re-structure
16383         to do a forward forward-propagation walk on BBs and a backward
16384         stmt combining walk on BBs.  Consistently re-scan changed statements.
16385         (pass_forwprop): Adjust.
16386
16387 2011-05-30  Ian Lance Taylor  <iant@google.com>
16388
16389         * godump.c (go_format_type): Correct length of name added to
16390         obstack for anonymous field.
16391
16392 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
16393
16394         PR target/49186
16395         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
16396         part of the second operand is 0.
16397
16398 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
16399
16400         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
16401         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
16402         to memory for !TARGET_MEMORY_MISMATCH_STALL.
16403         (*movdf_internal_rex64): Do not penalize F->r alternative.
16404         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
16405         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
16406         when optimizing function for size.  Do not move CONST_DOUBLEs
16407         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
16408         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
16409         SUBREGs.  Do not check for MEM_P operands in the insn condition,
16410         check for ANY_FP_REGNO_P instead.
16411         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
16412         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
16413         function for speed.
16414         * config/i386/i386.c (ix86_option_override_internal): Do not
16415         set TARGET_INTEGER_DFMODE_MOVES here.
16416
16417 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
16418
16419         PR target/49168
16420         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
16421
16422 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
16423
16424         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
16425         DW_TAG_rvalue_reference_type even for
16426         -gdwarf-4 -fno-debug-types-section.
16427
16428 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16429
16430         PR tree-optimization/46728
16431         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
16432         (build_and_insert_binop): New.
16433         (gimple_expand_builtin_pow): Reorder args for
16434         build_and_insert_call; use build_and_insert_binop; add more
16435         optimizations for fractional exponents.
16436
16437 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
16438
16439         PR bootstrap/49190
16440
16441         Revert:
16442         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
16443
16444         * tree.h (struct tree_identifier): Inherit from tree_typed, not
16445         tree_common.
16446         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
16447         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
16448         TS_BASE instead of TS_COMMON.
16449         * varasm.c (assemble_name): Remove assert.
16450
16451 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
16452
16453         * config.gcc: Keep obselete list sorted.
16454
16455 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
16456             Eric Botcazou  <ebotcazou@adacore.com>
16457
16458         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
16459         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
16460         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
16461         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
16462         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
16463
16464 2011-05-30  Richard Guenther  <rguenther@suse.de>
16465
16466         * gimple.c (gimple_types_compatible_p_1): Compare record
16467         and union type members properly.
16468
16469 2011-05-30  Richard Guenther  <rguenther@suse.de>
16470
16471         PR tree-optimization/49210
16472         * ipa-split.c (split_function): Care for the case where the call
16473         result is not trivially convertible to the result holding variable.
16474
16475 2011-05-30  Richard Guenther  <rguenther@suse.de>
16476
16477         PR tree-optimization/49218
16478         * tree-vrp.c (adjust_range_with_scev): Properly check whether
16479         overflow occured.
16480
16481 2011-05-30  Richard Guenther  <rguenther@suse.de>
16482
16483         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
16484         New function split out from ...
16485         (forward_propagate_into_gimple_cond): ... here.  Adjust.
16486         (forward_propagate_into_cond): Likewise.
16487         (forward_propagate_comparison): Also propagate into
16488         comparisons on assignment RHS.  Change return value to
16489         behave similar to forward_propagate_into_cond.
16490         (tree_ssa_forward_propagate_single_use_vars): Handle
16491         strict-overflow warnings properly for forward_propagate_comparison.
16492
16493 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16494
16495         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
16496         from plugin linker.
16497         * configure: Regenerate.
16498
16499 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
16500
16501         PR tree-optimization/49199
16502         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
16503         non-reduction operands are either defined in the loop or by induction.
16504
16505 2011-05-29  Xinliang David Li  <davidxl@google.com>
16506
16507         * opts-global.c (handle_common_deferred_options): Handle new options.
16508         * passes.c (register_one_dump_file): Call register_pass_name.
16509         (execute_one_pass): Check explicit enable/disable flag.
16510         (passr_hash): New function.
16511         (passr_eq): Ditto.
16512         (register_pass_name): Ditto.
16513         (get_pass_by_name): Ditto.
16514         (pass_hash): Ditto.
16515         (pass_eq): Ditto.
16516         (enable_pass): Ditto.
16517         (disable_pass): Ditto.
16518         (is_pass_explicitly_enabled_or_disabled): Ditto.
16519
16520 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
16521
16522         * config/i386/i386.md (*movoi_internal_avx): Use
16523         standard_sse_constant_opcode for alternative 0.
16524         (*movti_internal_sse): Ditto.
16525         (*movti_internal_rex64): Use standard_sse_constant_opcode for
16526         alternative 2.
16527         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
16528         sselog1 type moves.
16529         (*movsi_internal): Ditto.
16530         (*movdi_internal): Ditto.  Add ssecvt type moves.
16531
16532 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
16533
16534         PR target/48830
16535         * rtlanal.c (simplify_subreg_regno): Adjust comment.
16536
16537 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
16538
16539         PR rtl-optimization/49095
16540         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
16541         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
16542
16543 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
16544
16545         PR target/43995
16546         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
16547         recurse_p argument.  Only follow register copies if it is set,
16548         and prevent mips_find_pic_call_symbol from recursing.
16549         (mips_find_pic_call_symbol): Add a recurse_p argument.
16550         Pass it to mips_pic_call_symbol_from_set.
16551         (mips_annotate_pic_calls): Update accordingly.
16552
16553 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
16554
16555         * emit-rtl.c (try_split): Use a loop to search for
16556         NOTE_INSN_CALL_ARG_LOCATIONs.
16557
16558 2011-05-29  Richard Guenther  <rguenther@suse.de>
16559
16560         PR tree-optimization/49217
16561         * ipa-pure-const.c (propagate_pure_const): Fix typos.
16562
16563 2011-05-28  Jan Hubicka  <jh@suse.cz>
16564
16565         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
16566         length.
16567         (string_slot_free): Remove
16568         (create_output_block): Initialize obstack.
16569         (destroy_output_block): Free obstack.
16570         (lto_string_index): Add PERSISTENT parameter; do not duplicate
16571         the string unless it needs to be added into the hash.
16572         (lto_output_string_with_length): Add persistent attribute;
16573         handle NULL strings.
16574         (lto_output_string): Add PERSISTENT parameter.
16575         (output_string_cst, output_identifier): Simplify.
16576         (lto_output_location_bitpack): Update.
16577         (lto_output_builtin_tree): Update.
16578         * lto-streamer.h (struct output_block): Add obstack.
16579         (lto_output_string, lto_output_string_with_length): Remove
16580         declarations; functions are static now.
16581
16582 2011-05-28  Jan Hubicka  <jh@suse.cz>
16583
16584         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
16585         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
16586         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
16587         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
16588         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
16589         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
16590         unpack_ts_decl_with_vis_value_fields,
16591         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
16592         lto_get_builtin_tree): Use enum and variable length i/o.
16593         * basic-block.h (profile_status_d): Add PROFILE_LAST.
16594         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
16595         New functions.
16596         (bp_pack_enum, bp_unpack_enum): New macros.
16597
16598 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
16599
16600         * genrecog.c: Remove redundant forward declarations.
16601
16602 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
16603
16604         * config.gcc: Deprecate mips*-*-openbsd*.
16605
16606 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
16607
16608         PR bootstrap/49195
16609         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
16610         for match_op_dup.
16611
16612 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
16613
16614         PR middle-end/48981
16615         * gengtype.c (vec_prefix_type): New function.
16616         (note_def_vec): Use vec_prefix_type and change the length
16617         attribute to be based on the prefix.
16618         * vec.c: Include coretypes.h before vec.h.
16619         (struct vec_prefix): Remove.
16620         (vec_gc_p_reserve): Change the offsetof to sizeof.
16621         (vec_gc_p_reserve_exact): Likewise.
16622         (vec_heap_p_reserve): Likewise.
16623         (vec_heap_p_reserve_exact): Likewise.
16624         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
16625         (vec_stack_p_reserve): Change the offsetof to sizeof.
16626         (vec_stack_p_reserve_exact): Likewise.
16627         * vec.h (struct vec_prefix): New struct definition.
16628         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
16629         (VEC_T_GTY(T,B)): Likewise.
16630         (DEF_VEC_FUNC_P(T)): Use prefix field.
16631         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
16632         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
16633
16634 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16635
16636         PR tree-optimization/46728
16637         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
16638         (powi_as_mults): Add gimple_set_location.
16639         (build_and_insert_call): New.
16640         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
16641         0.5, 0.25, 0.75, 1./3., or 1./6.
16642
16643 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
16644
16645         * doc/contrib.texi: Update copyright years.
16646         (Contributors): Add Zdenek Sojka.
16647
16648 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
16649
16650         * c-decl.c (c_push_function_context): Copy the current statement
16651         list stack.
16652         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
16653         (finish_struct): Call building_stmt_list_p instead of checking
16654         cur_stmt_list.
16655         * c-parser.c (c_parser_postfix_expression): Likewise.
16656         * c-typeck.c (c_end_compound_stmt): Likewise.
16657         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
16658         * tree-iterator.c (stmt_list_cache): Change to a VEC.
16659         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
16660         (free_stmt_list): Likewise.
16661         * tree.h (struct tree_statement_list): Include typed_tree instead
16662         of tree_common.
16663         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
16664         as TS_TYPED instead of TS_COMMON.
16665
16666 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16667             Uros Bizjak  <ubizjak@gmail.com>
16668
16669         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
16670         (HAVE_AS_IX86_TLSGDPTL): Define.
16671         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
16672         (HAVE_AS_IX86_TLSLDMPLT): Define.
16673         * configure: Regenerate.
16674         * config.in: Regenerate.
16675         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
16676         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
16677         TARGET_SUN_TLS, use @tlsgdplt or @plt.
16678         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
16679         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
16680         @tlsldmplt or @plt.
16681         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
16682
16683 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
16684
16685         * sched-int.h (struct _haifa_deps_insn_data): New members cond
16686         and reverse_cond.
16687         (INSN_COND, INSN_REVERSE_COND): New macros.
16688         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
16689         once.
16690         (sched_get_condition_with_rev): Cache the results, and look them up
16691         if possible.
16692         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
16693         are clobbered by the current insn.
16694         * target.def (exposed_pipline): New sched data hook.
16695         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
16696         * doc/tm.texi: Regenerate.
16697
16698 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16699
16700         PR tree-optimization/49170
16701         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
16702         sincos or cexp.
16703
16704 2011-05-27  Richard Guenther  <rguenther@suse.de>
16705
16706         PR middle-end/49189
16707         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
16708         of comparisons.
16709
16710 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
16711
16712         * haifa-sched.c (sched_scan_info): Remove.
16713         (schedule_block): Call sched_extend_luids rather than sched_init_luids
16714         with NULL args.
16715         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
16716         Remove functions.
16717         (sched_scan): Remove.
16718         (sched_extend_luids): Renamed from luids_extend_insn and no longer
16719         static.  All callers changed.
16720         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
16721         static.  All callers changed.
16722         (sched_init_luids): Remove all arguments except the first.  All
16723         callers changed.  Don't use sched_scan.
16724         (haifa_init_h_i_d): Likewise.
16725         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
16726         manually rather than using sched_init_luids.  Likewise with
16727         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
16728         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
16729         rather than sched_init_luids with NULL args.
16730         * sel-sched-ir.c (new_insns): Remove variable.
16731         (sched_scan): New static function, previously in haifa-sched.c.  Remove
16732         all arguments but the first two; all callers changed.
16733         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
16734         rather than sched_init_luids.
16735         (sel_init_bbs): Remove second argument.  All callers changed.
16736         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
16737         with NULL arguments.
16738         (create_insn_rtx_from_pattern): Likewise.
16739         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
16740         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
16741         (sched_init_insn_luid, sched_extend_luids): Declare.
16742         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
16743         declarations.
16744
16745 2011-05-27  Richard Guenther  <rguenther@suse.de>
16746
16747         PR middle-end/49177
16748         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
16749         A CMP B ? (T) true : (T) false for non-integral types T again.
16750
16751 2011-05-27  Jan Hubicka  <jh@suse.cz>
16752
16753         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
16754         so 0 means NULL string.
16755         (lto_output_string_with_length): ... here.
16756         (lto_output_string, output_string_cst, output_identifier): Update
16757         handling of NULL strings.
16758         (lto_output_location_bitpack): New function.
16759         (lto_output_location): Use it.
16760         (lto_output_tree_ref): Use output_record_start.
16761         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
16762         len values.
16763         * lto-streamer-in.c (string_for_index): Break out from ...; offset
16764         values by 1.
16765         (input_string_internal): ... here;
16766         (input_string_cst, input_identifier, lto_input_string): Update handling
16767         of NULL strings.
16768         (lto_input_location_bitpack): New function
16769         (lto_input_location): Use it.
16770         (unpack_ts_type_common_value_fields): Pack align & alias in var len
16771         values.
16772         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
16773         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
16774         (bp_pack_value): Sanity check the value range.
16775         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
16776         New functions.
16777         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
16778         New functions.
16779
16780 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
16781
16782         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
16783         call_arg_location instructions down the floor.
16784
16785 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
16786
16787         PR rtl-optimization/49154
16788         * ira.c (setup_pressure_classes): Process class without sublcasses
16789         as a candidate for pressure classes.
16790
16791 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
16792
16793         PR rtl-optimization/48575
16794         * genrecog.c (position_type): New enum.
16795         (position): New structure.
16796         (decision): Use position structure instead of a string.
16797         (root_pos, peep2_insn_pos_list): New variables.
16798         (next_position, compare_positions): New functions.
16799         (new_decision): Use position structures instead of strings.
16800         (maybe_both_true): Likewise.
16801         (change_state): Likewise.
16802         (write_tree): Likewise.
16803         (make_insn_sequence): Likewise.
16804
16805 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
16806
16807         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
16808         TS_BASE instead of TS_COMMON.
16809         (find_decls_types_r): Check for TS_TYPED structure before looking at
16810         TREE_TYPE.
16811         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
16812         Add chain field.
16813         (BLOCK_CHAIN): Use new chain field.
16814
16815 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
16816
16817         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
16818         moves expensive on Power7 also.
16819
16820 2011-05-26  Richard Guenther  <rguenther@suse.de>
16821
16822         * fold-const.c (fold_unary_loc): Remove bogus code.
16823
16824 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
16825
16826         * tree.h (struct tree_identifier): Inherit from tree_typed, not
16827         tree_common.
16828         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
16829         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
16830         TS_BASE instead of TS_COMMON.
16831         * varasm.c (assemble_name): Remove assert.
16832
16833 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
16834
16835         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
16836         substituted first.
16837         * libgcc-std.ver: Delete file.
16838
16839 2011-05-26  Richard Guenther  <rguenther@suse.de>
16840
16841         PR tree-optimization/48702
16842         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
16843         only when we know the base address is within bounds.
16844         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
16845         assume the base address of TARGET_MEM_REFs is in bounds.
16846
16847 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16848
16849         PR target/49099
16850         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
16851         declaration in TARGET_SOLARIS.
16852
16853 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
16854
16855         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
16856         The instruction is then expanded explicitly.
16857         (supported_compare): Callable instruction.
16858         (compare): Likewise.
16859
16860 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
16861
16862         PR c++/49165
16863         * gimplify.c (shortcut_cond_r): Don't special case
16864         COND_EXPRs if they have void type on one of their arms.
16865
16866 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
16867
16868         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
16869         to reduce duplication, and to achieve a slightly more logical order
16870         of operations.
16871
16872 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
16873
16874         PR tree-optimization/49161
16875         * tree-vrp.c (struct case_info): New type.
16876         (compare_case_labels): Sort case_info structs instead of
16877         trees, and not primarily by CASE_LABEL uids but by
16878         label_for_block indexes.
16879         (find_switch_asserts): Put case labels into struct case_info
16880         array instead of TREE_VEC, adjust sorting, compare label_for_block
16881         values instead of CASE_LABELs.
16882
16883 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
16884
16885         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
16886         ("orndi3_neon"): Likewise.
16887         ("bic<mode>3_neon"): Likewise.
16888
16889 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
16890
16891         PR tree-optimization/49038
16892         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
16893         Ensure at least one epilogue iteration if required by data
16894         accesses with gaps.
16895         * tree-vectorizer.h (struct _loop_vec_info): Add new field
16896         to mark loops that require peeling for gaps.
16897         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
16898         (vect_get_known_peeling_cost): Take peeling for gaps into
16899         account.
16900         (vect_transform_loop): Generate epilogue if required by data
16901         access with gaps.
16902         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
16903         loop as requiring an epilogue if there are gaps in the end of
16904         the strided group.
16905
16906 2011-05-25  Ian Lance Taylor  <iant@google.com>
16907
16908         * godump.c (go_format_type): Output the first field with a usable
16909         Go type, if any.
16910
16911 2011-05-25  Ian Lance Taylor  <iant@google.com>
16912
16913         * godump.c (go_format_type): Check for invalid type names, pointer
16914         target types, and struct field types.
16915
16916 2011-05-25  Jason Merrill  <jason@redhat.com>
16917
16918         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
16919
16920 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
16921
16922         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
16923
16924 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
16925
16926         * config/i386/i386.md (*movqi_extv_1)): Put back
16927         "register_operand" check in "type" calculation.
16928         (*movqi_extzv_2): Likewise.
16929
16930 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
16931
16932         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
16933
16934 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
16935
16936         PR bootstrap/49160
16937         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
16938         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
16939         __divxc3, __divtc3): Wrap definitions in #ifndef.
16940
16941 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
16942
16943         PR target/49142
16944         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
16945         "register_operand" check and replace q_regs_operand with
16946         QIreg_operand in "type" calculation.
16947         (*movqi_extv_1): Likewise.
16948         (*movqi_extzv_2_rex64): Likewise.
16949         (*movqi_extzv_2): Likewise.
16950
16951         * config/i386/predicates.md (QIreg_operand): New.
16952
16953 2011-05-25  Richard Guenther  <rguenther@suse.de>
16954
16955         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
16956         type-based offset disambiguation, streamline MEM_REF and
16957         TARGET_MEM_REF handling.
16958
16959 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
16960
16961         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
16962         (bdesc_special_args): Add pause intrinsic.
16963
16964         * config/i386/i386.md (UNSPEC_PAUSE): New.
16965         (pause): Likewise.
16966         (*pause): Likewise.
16967         * config/i386/ia32intrin.h (__pause): Likewise.
16968
16969         * doc/extend.texi (X86 Built-in Functions): Add documentation for
16970         pause intrinsic.
16971
16972 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16973
16974         PR tree-optimization/46728
16975         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
16976         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
16977
16978 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
16979
16980         * tree.h (struct tree_exp): Inherit from struct tree_typed.
16981         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
16982         instead of TS_COMMON.
16983
16984 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
16985
16986         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
16987         LIBGCC2_GNU_PREFIX is defined.
16988         (__N): New macro.
16989         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
16990         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
16991         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
16992         __clz_tab): Define using __N.
16993         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
16994         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
16995         * target.def (libfunc_gnu_prefix): New hook.
16996         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
16997         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
16998         * doc/tm.texi: Regenerate.
16999         * system.h (LIBGCC2_GNU_PREFIX): Poison.
17000         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
17001         account.
17002         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
17003         (init_optabs): Likewise for the bswap libfuncs.
17004         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
17005         and divide.
17006         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
17007         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
17008         * libgcc-std.ver: Remove.
17009         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
17010         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
17011         libgcc-std.ver.
17012         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
17013         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
17014         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
17015         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
17016         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
17017         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
17018         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
17019         * config/fixed-bit.h (FIXED_OP): Define differently depending on
17020         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
17021         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
17022
17023 2011-05-25  Jan Hubicka  <jh@suse.cz>
17024
17025         * lto-streamer-out.c (output_record_start): Use lto_output_enum
17026         (lto_output_tree): Use output_record_start.
17027         * lto-streamer-in.c (input_record_start): Use lto_input_enum
17028         (lto_get_pickled_tree): Use input_record_start.
17029         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
17030         (lto_value_range_error): New function.
17031         * lto-streamer.h (lto_value_range_error): Declare.
17032         (lto_output_int_in_range, lto_input_int_in_range): New functions.
17033         (lto_output_enum, lto_input_enum): New macros.
17034
17035 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
17036
17037         * common.opt (flag_stack_usage_info): New variable.
17038         (-Wstack-usage): New option.
17039         * doc/invoke.texi (Warning options): Document -Wstack-usage.
17040         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
17041         <OPT_fstack_usage>: Likewise.
17042         * toplev.c (output_stack_usage): Handle -Wstack-usage.
17043         * calls.c (expand_call): Test flag_stack_usage_info variable instead
17044         of flag_stack_usage.
17045         (emit_library_call_value_1): Likewise.
17046         * explow.c (allocate_dynamic_stack_space): Likewise.
17047         * function.c (instantiate_virtual_regs ): Likewise.
17048         (prepare_function_start): Likewise.
17049         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
17050         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
17051         * config/arm/arm.c (arm_expand_prologue): Likewise.
17052         (thumb1_expand_prologue): Likewise.
17053         * config/avr/avr.c (expand_prologue): Likewise.
17054         * config/i386/i386.c (ix86_expand_prologue): Likewise.
17055         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
17056         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
17057         * config/mips/mips.c (mips_expand_prologue): Likewise.
17058         * config/pa/pa.c (hppa_expand_prologue): Likewise.
17059         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
17060         * config/s390/s390.c (s390_emit_prologue): Likewise.
17061         * config/sh/sh.c (sh_expand_prologue): Likewise.
17062         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
17063         * config/spu/spu.c (spu_expand_prologue): Likewise.
17064
17065 2011-05-25  Richard Guenther  <rguenther@suse.de>
17066
17067         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
17068         (gimple_canonical_types_compatible_p): Likewise.
17069
17070 2011-05-25  Jan Hubicka  <jh@suse.cz>
17071
17072         PR middle-end/49062
17073         * ipa.c (function_and_variable_visibility): Only add to same
17074         comdat group list if DECL_ONE_ONLY.
17075
17076 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
17077
17078         PR rtl-optimization/49014
17079         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
17080
17081 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
17082
17083         PR target/49128
17084         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
17085
17086 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
17087
17088         PR rtl-optimization/48757
17089         * ira-build.c (loop_with_eh_edge_p): Rename to
17090         loop_with_complex_edge_p, check edges on complexity, make function
17091         conditional.
17092         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
17093         conditional.
17094
17095 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
17096
17097         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
17098         force flag_ira_share_save_slots to 0.
17099
17100 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
17101
17102         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
17103         (vt_initialize): Set PROLOGUE_BB unconditionally.
17104         Add block comment about CFA_BASE_RTX machinery.
17105         Reset FP_CFA_OFFSET to -1 on all invalid paths.
17106         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
17107
17108 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
17109
17110         PR objc/48187
17111         * c-parser.c (c_parser_objc_class_instance_variables): More robust
17112         parsing of syntax error in ObjC instance variable lists.  In
17113         particular, avoid an infinite loop if there is a stray ']'.
17114         Updated error message.
17115
17116 2011-05-24  Ian Lance Taylor  <iant@google.com>
17117
17118         * godump.c (go_define): Don't accept a string immediately after
17119         another operand.
17120
17121 2011-05-24  Ian Lance Taylor  <iant@google.com>
17122
17123         * godump.c (struct godump_container): Add invalid_hash field.
17124         (go_format_type): Return false if type is found in invalid_hash.
17125         (go_output_typedef): Add invalid type to invalid_hash.
17126         (go_finish): Create and delete invalid_hash.
17127
17128 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17129
17130         PR tree-optimization/46728
17131         * tree-ssa-math-opts.c (powi_table): New.
17132         (powi_lookup_cost): New.
17133         (powi_cost): New.
17134         (powi_as_mults_1): New.
17135         (powi_as_mults): New.
17136         (gimple_expand_builtin_powi): New.
17137         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
17138         (gate_cse_sincos): Remove sincos/cexp restriction.
17139
17140 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17141
17142         PR target/3746
17143         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
17144         mips-tdump native.
17145         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
17146         * mips-tdump.c: Likewise.
17147
17148 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
17149
17150         PR target/49128
17151         * config/i386/driver-i386.c (host_detect_local_cpu): Always
17152         add -mno-XXX.  Handle FMA.
17153
17154 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
17155
17156         PR rtl-optimization/48633
17157         * ira-build.c (loop_with_eh_edge_p): New function.
17158         (mark_loops_for_removal): Use it.
17159
17160 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
17161
17162         PR rtl-optimization/48971
17163         * ira.c (setup_pressure_classes): Don't check register move cost
17164         for classes with one registers.  Don't add pressure class if there
17165         is a pressure class with the same available hard registers.
17166         Check contains_reg_of_mode.  Fix a typo in collecting
17167         temp_hard_regset.  Ignore hard registers not belonging to a class.
17168
17169 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
17170
17171         PR target/49133
17172         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
17173
17174 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
17175             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17176
17177         PR gcov-profile/48845
17178         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
17179
17180 2011-05-24  Richard Guenther  <rguenther@suse.de>
17181
17182         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
17183         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
17184         (gimple_types_compatible_p_1): Adjust.
17185         (iterative_hash_canonical_type): Do not bother about complete vs.
17186         incomplete types.
17187         (gimple_canonical_types_compatible_p): Likewise.
17188
17189 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17190
17191         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
17192
17193 2011-05-24  Richard Guenther  <rguenther@suse.de>
17194
17195         PR bootstrap/49078
17196         * gimple.c (gimple_register_canonical_type): Revert
17197         previous change.
17198         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
17199         does not for a tree for the case where it matters.  Cache
17200         pointer-type alias-sets.
17201
17202 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
17203
17204         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
17205         (OBJS): Remove options.o, opts-common.o and prefix.o.
17206         (OBJS-libcommon-target): New.
17207         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
17208         (BACKEND): Include libcommon-target.a.
17209         (MOSTLYCLEANFILES): Include libcommon-target.a.
17210         (libcommon-target.a): New.
17211         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
17212         prefix.o.
17213
17214 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
17215
17216         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
17217         parts of output shared with the driver.
17218         * optc-gen.awk: Don't generate parts of output not shared with the
17219         driver.
17220         * opth-gen.awk: Remove GCC_DRIVER conditionals.
17221         * doc/options.texi (SourcerInclude): Mention options-save.c.
17222         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
17223         (OBJS): Add options-save.o.
17224         (options-save.c, options-save.o): New.
17225         (options.o): Update dependencies.
17226         (gcc-options.o): Remove.
17227         (mostlyclean): Remove options-save.c.
17228
17229 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
17230
17231         PR debug/49032
17232         * dbxout.c: Include cgraph.h.
17233         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
17234         and without value expr, return NULL if no varpool node exists for
17235         it or if it is not needed.
17236         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
17237
17238         PR c/49120
17239         * c-decl.c (start_decl): Convert expr to void_type_node.
17240
17241 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
17242
17243         PR rtl-optimization/48826
17244         * emit-rtl.c (try_split): When splitting a call that is followed
17245         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
17246
17247 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
17248
17249         * cfgexpand.c (expand_debug_expr): For unused non-addressable
17250         parameters passed in memory prefer using DECL_INCOMING_RTL over
17251         the pseudos it will be copied into.
17252
17253 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
17254
17255         PR target/47315
17256         * config/i386/i386.c (ix86_option_override_internal): Save the
17257         initial options after checking vzeroupper.
17258
17259 2011-05-23  David Li  <davidxl@google.com>
17260
17261         PR tree-optimization/48988
17262         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
17263         Initialize has_valid_pred for each pred chain.
17264
17265 2011-05-23  Richard Guenther  <rguenther@suse.de>
17266
17267         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
17268         (iterative_hash_gimple_type): Always hash type names.
17269
17270 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
17271
17272         * c-typeck.c (build_function_call_vec): Tweak call to
17273         check_function_arguments.
17274
17275 2011-05-23  Richard Guenther  <rguenther@suse.de>
17276
17277         PR tree-optimization/49115
17278         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
17279         is not necessarily carried out, do not claim it kills the ref.
17280         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
17281
17282 2011-05-23  Richard Guenther  <rguenther@suse.de>
17283
17284         PR middle-end/15419
17285         * builtins.c (fold_builtin_memory_op): Be less restrictive about
17286         what pointer types we accept for folding.
17287
17288 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17289
17290         * gthr-gnat.c: Remove.
17291         * gthr-gnat.h: Remove.
17292         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
17293         * config/t-freebsd (LIB2ADDEH): Likewise.
17294         * config/t-linux (LIB2ADDEH): Likewise.
17295         * config/t-sol2 (LIB2ADDEH): Likewise.
17296         * config/ia64/t-vms (LIB2ADDEH): Likewise.
17297         * configure.ac (target_thread_file): Remove gnat handling.
17298         * configure: Regenerate.
17299         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
17300
17301 2011-05-23  Tristan Gingold  <gingold@adacore.com>
17302             Eric Botcazou  <ebotcazou@adacore.com>
17303
17304         * gcov.c (create_file_names): If no object directory is specified,
17305         keep the directory of the file.
17306
17307 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17308
17309         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
17310         * configure: Regenerate.
17311
17312 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
17313
17314         PR middle-end/48973
17315         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
17316         failed and the comparison has a single bit signed type, use
17317         constm1_rtx instead of const1_rtx for true value.
17318         (do_store_flag): If ops->type is single bit signed type, disable
17319         signel bit test optimization and pass -1 instead of 1 as last
17320         parameter to emit_store_flag_force.
17321
17322 2011-05-23  Tom de Vries  <tom@codesourcery.com>
17323
17324         PR target/45098
17325         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
17326         function.
17327         (infer_loop_bounds_from_undefined): Use new function.
17328
17329 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
17330
17331         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
17332         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
17333         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
17334         and -O0 otherwise.
17335         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
17336
17337 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
17338
17339         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
17340         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
17341         returns true.
17342
17343 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
17344
17345         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
17346
17347 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
17348
17349         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
17350         UNSPEC_MOVE_PIC pattern.
17351
17352 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
17353
17354         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
17355         (sparc-*-rtems*): Likewise.
17356         (sparc64-*-elf*): Likewise.
17357         (sparc64-*-rtems*): Likewise.
17358         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
17359         * config/sparc/t-crtin: New file.
17360         * config/sparc/t-sol2 (crti.o): Delete rule.
17361         (crtn.o): Likewise.
17362         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
17363         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
17364         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
17365         (ENDFILE_SPEC): Add crtn.o.
17366
17367 2011-05-22  Tom de Vries  <tom@codesourcery.com>
17368
17369         PR middle-end/48689
17370         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
17371         CODE_CONTAINS_STRUCT (TS_COMMON).
17372
17373 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
17374
17375         PR middle-end/49029
17376         * expmed.c (extract_fixed_bit_field): Test whether target can be used
17377         only after deciding which mode to use.
17378
17379 2011-05-22  Tom de Vries  <tom@codesourcery.com>
17380
17381         PR target/45098
17382         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
17383         for call to get_shiftadd_cost.
17384
17385 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
17386
17387         PR target/49104
17388         * config/i386/cpuid.h (bit_MMXEXT): New define.
17389
17390 2011-05-22  Nick Clifton  <nickc@redhat.com>
17391
17392         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
17393         initialisation of non-existant args[2] element.  Use args[] array
17394         not arg[] array to pass arguments to build_function_type_list.
17395
17396 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
17397
17398         PR tree-optimization/49087
17399         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
17400
17401 2011-05-21  Jason Merrill  <jason@redhat.com>
17402
17403         PR c++/49092
17404         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
17405         static storage duration.
17406
17407 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
17408
17409         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
17410         frame pointer.
17411
17412 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
17413
17414         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
17415         false if there are call-saved registers here...
17416         (sparc_can_use_return_insn_p): ...but here instead.
17417         (save_or_restore_regs): Fix thinko.
17418         (sparc_expand_prologue): Use current_function_is_leaf.
17419         (sparc_frame_pointer_required): Likewise.
17420
17421 2011-05-21  Nick Clifton  <nickc@redhat.com>
17422
17423         PR target/49098
17424         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
17425
17426 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
17427
17428         * gengtype.c (walk_type): Implemented "atomic" GTY option.
17429         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
17430
17431 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
17432
17433         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
17434         * optc-gen.awk: Move common code to opt-read.awk.
17435         * opth-gen.awk: Likewise.
17436         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
17437
17438 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
17439
17440         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
17441
17442 2011-05-20  Tom de Vries  <tom@codesourcery.com>
17443
17444         PR target/45098
17445         * tree-ssa-loop-ivopts.c: Include expmed.h.
17446         (get_shiftadd_cost): New function.
17447         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
17448
17449 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
17450
17451         PR bootstrap/49086
17452         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
17453         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
17454
17455 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
17456
17457         * Makefile.in: Update comment referring to $(OBJS-common).
17458
17459 2011-05-20  Ian Lance Taylor  <iant@google.com>
17460
17461         * godump.c (go_output_typedef): Put enum constants in the macro
17462         hash table to avoid duplicate Go const definitions.
17463
17464 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
17465
17466         * Makefile.in (LIBDEPS): Add libcommon.a.
17467         (LIBS): Likewise.
17468         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
17469         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
17470         pretty-print.o and version.o.
17471         (OBJS-libcommon): New.
17472         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
17473         (BACKEND): Add libcommon.a.
17474         (MOSTLYCLEANFILES): Likewise.
17475         (libcommon.a): New.
17476         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
17477         (cpp$(exeext)): Likewise.
17478         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
17479         pretty-print.o and input.o.
17480         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
17481         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
17482         (errors.o): Remove.
17483         (mips-tfile): Don't explicitly use version.o.
17484         (mips-tdump): Likewise.
17485         (gcov.o): Depend on $(DIAGNOSTIC_H).
17486         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
17487         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
17488         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
17489         * gcov-dump.c: Include intl.h and diagnostic.h.
17490         (main): Initialize diagnostics.
17491         * gcov.c: Include diagnostic.h.
17492         (fnotice): Remove.
17493         (main): Initialize diagnostics.
17494         * lto-wrapper.c: Include diagnostic.h.
17495         (main): Initialize diagnostics.
17496
17497 2011-05-20  Michael Matz  <matz@suse.de>
17498
17499         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
17500
17501 2011-05-20  Michael Matz  <matz@suse.de>
17502             Richard Guenther  <rguenther@suse.de>
17503
17504         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
17505         use lto_streamer_cache_append directly instead of returning a VEC.
17506         (preload_common_node): Remove.
17507         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
17508         track seen nodes.
17509         (lto_streamer_cache_create): Call lto_preload_common_nodes.
17510
17511 2011-05-20  Richard Guenther  <rguenther@suse.de>
17512
17513         PR tree-optimization/49079
17514         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
17515         MEM_REFs correctly for the trailing array access detection.
17516         Special case constants the same way as decls for overall size
17517         constraining.
17518
17519 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
17520
17521         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
17522         argument expansion.
17523
17524 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
17525
17526         PR tree-optimization/49073
17527         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
17528         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
17529         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
17530
17531 2011-05-20  Richard Guenther  <rguenther@suse.de>
17532
17533         PR middle-end/48849
17534         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
17535         of pointer types the same way the middle-end does.
17536
17537 2011-05-20  Richard Guenther  <rguenther@suse.de>
17538
17539         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
17540         or pointer-to chains.  Delay all fixup to uniquify_nodes.
17541
17542 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
17543
17544         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
17545         (fma4_fmaddsub): Likewise
17546
17547 2011-05-19  Jan Hubicka  <jh@suse.cz>
17548
17549         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
17550         (GIMPLE_TYPE_PAIR_SIZE): New macro.
17551         (type_pair_cache): New static var.
17552         (lookup_type_pair): Use fixed sized custom hash; make inline.
17553         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
17554         calls of lookup_type_pair.
17555         (print_gimple_types_stats): Remove cache stats.
17556         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
17557         and gtc_ob.
17558
17559 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
17560
17561         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
17562         when TARGET_RDRND is active.
17563         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
17564         Generate dummy SImode target register when target is NULL.
17565
17566 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
17567
17568         * config/arm/arm-fpus.def: New.
17569         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
17570         arm-fpus.def.
17571         * config/arm/arm-tables.opt: Regenerate.
17572         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
17573         (arm_option_override): Don't decode FPU name to string here.
17574         * config/arm/arm.opt (mfpu=): Use Enum.
17575         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
17576         Update dependencies.
17577
17578 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
17579
17580         * collect2.c: Include diagnostic.h.
17581         (fatal_perror, fatal, error, fancy_abort): Remove.
17582         (main): Set progname.  Call xmalloc_set_program_name and
17583         diagnostic_initialize.
17584         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
17585         scan_libraries, resolve_lib_name): Call fatal_error instead of
17586         fatal and fatal_perror.
17587         * collect2.h (error, fatal, fatal_perror): Don't declare.
17588         * tlink.c: Include diagnostic-core.h.
17589         (recompile_files): Call fatal_error instead of fatal_perror.
17590         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
17591         pretty-print.o and input.o.
17592         (collect2.o, tlink.o): Update dependencies.
17593
17594 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17595
17596         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
17597
17598 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17599
17600         PR target/40483
17601         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
17602         COMDAT group syntax, both SPARC and x86 variants.
17603         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
17604         * configure: Regenerate.
17605         * config/sol2.h (TARGET_SOLARIS): Define.
17606         (PUSHSECTION_FORMAT): Remove.
17607         (SECTION_NAME_FORMAT): Define.
17608         * config/sol2.c: Include hashtab.h.
17609         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
17610         expansion, using SECTION_NAME_FORMAT.
17611         (solaris_comdat_htab): New variable.
17612         (struct comdat_entry): Define.
17613         (comdat_hash): New function.
17614         (comdat_eq): New function.
17615         (solaris_elf_asm_comdat_section): New function.
17616         (solaris_define_comdat_signature): New function.
17617         (solaris_code_end): New function.
17618         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
17619         (solaris_code_end): Declare.
17620         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
17621         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
17622         solaris_code_end.
17623         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
17624         Remove ATTRIBUTE_UNUSED.
17625         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
17626         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
17627         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
17628         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
17629         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
17630         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
17631         (PUSHSECTION_FORMAT): Remove.
17632         (SECTION_NAME_FORMAT): Redefine.
17633
17634 2011-05-19  Kai Tietz  <ktietz@redhat.com>
17635
17636         * tree-cfg.c (verify_gimple_assign_binary): Barf on
17637         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
17638         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
17639
17640 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
17641             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17642
17643         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
17644
17645 2011-05-19  Richard Guenther  <rguenther@suse.de>
17646
17647         PR middle-end/48985
17648         * tree-object-size.c (addr_object_size): If the pointed-to
17649         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
17650
17651 2011-05-19  Richard Guenther  <rguenther@suse.de>
17652
17653         * gimple.c (gimple_types_compatible_p_1): Compare names of
17654         the types themselves.
17655         (iterative_hash_gimple_type): And hash them that way.
17656         (gimple_register_type_1): If we register a main variant properly
17657         initialize the leader to ourselves.
17658
17659 2011-05-19  Tom de Vries  <tom@codesourcery.com>
17660
17661         PR target/45098
17662         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
17663         get_loop_invariant_expr_id.
17664         (get_loop_invariant_expr_id): Use get_expr_id.
17665         (parm_decl_cost): New function.
17666         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
17667         Improve bound cost estimation.  Use different inv_expr_id for elim and
17668         express cases.
17669
17670 2011-05-19  Tom de Vries  <tom@codesourcery.com>
17671
17672         PR target/45098
17673         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
17674         cost_base.cost == 0.
17675
17676 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
17677
17678         PR target/49002
17679         * config/i386/sse.md
17680         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
17681         load cast.
17682
17683 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
17684
17685         PR tree-optimization/49039
17686         * tree-vrp.c (extract_range_from_binary_expr): For
17687         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
17688         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
17689
17690 2011-05-18  Tom de Vries  <tom@codesourcery.com>
17691
17692         PR target/45098
17693         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
17694
17695 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
17696
17697         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
17698         (*tls_global_dynamic_64): Ditto.
17699         (*tls_local_dynamic_base_32_gnu): Ditto.
17700         (*tls_local_dynamic_base_64): Ditto.
17701         (tls_initial_exec_64_sun): Ditto.
17702
17703 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
17704
17705         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
17706         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
17707         bf592-none.
17708         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
17709         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
17710         * config/bfin/bfin.c (bfin_cpus): Add bf592.
17711         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
17712         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
17713         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
17714         * config/bfin/elf.h (LIB_SPEC): Add bf592.
17715
17716 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
17717
17718         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
17719         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
17720         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
17721         target_thread_pointer, arm_structure_size_boundary, struct
17722         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
17723         struct abi_name, arm_all_abis): Remove.
17724         (arm_option_override) Don't process most enumerated option values here.
17725         Don't process target_fpe_name here.  Work with integer not string for
17726         structure size boundary; use separate diagnostics for each case.
17727         * config/arm/arm.h (enum float_abi_type, enum
17728         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
17729         to arm-opts.h.
17730         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
17731         arm_structure_size_boundary): Remove.
17732         * config/arm/arm.opt (mabi=): Use Enum and Init.
17733         (arm_abi_type): New Enum and EnumValue entries.
17734         (mfloat-abi=): Use Enum and Init.
17735         (float_abi_type): New Enum and EnumValue entries.
17736         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
17737         (mfp16-format=): Use Enum and Init.
17738         (arm_fp16_format_type): New Enum and EnumValue entries.
17739         (mstructure-size-boundary=): Use UInteger and Init.
17740         (mtp=): Use Enum and Init.
17741         (arm_tp_type): New Enum and EnumValue entries.
17742
17743 2011-05-18  Richard Guenther  <rguenther@suse.de>
17744
17745         PR tree-optimization/49018
17746         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
17747         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
17748         gimple_has_side_effects.
17749
17750 2011-05-18  Richard Guenther  <rguenther@suse.de>
17751
17752         * gimple.c (gimple_register_type_1): New function, split out from ...
17753         (gimple_register_type): ... here.  Avoid infinite recursion.
17754
17755 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
17756
17757         PR tree-optimization/41881
17758         * tree-vectorizer.h (struct _loop_vec_info): Add new field
17759         reduction_chains along with a macro for its access.
17760         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
17761         (destroy_loop_vec_info): Free reduction chains.
17762         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
17763         (vect_is_slp_reduction): New function.
17764         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
17765         (vect_create_epilog_for_reduction): Support SLP reduction chains.
17766         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
17767         definition types for reduction chains.
17768         (vect_supported_load_permutation_p): Don't allow permutations for
17769         reduction chains.
17770         (vect_analyze_slp_instance): Support reduction chains.
17771         (vect_analyze_slp): Try to build SLP instance from reduction chains.
17772         (vect_get_constant_vectors):  Handle reduction chains.
17773         (vect_schedule_slp_instance): Mark the first statement of the
17774         reduction chain as reduction.
17775
17776 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
17777
17778         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
17779         names for group elements access.
17780         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
17781         reduction chains as well.  Remove data reference and interleaving
17782         related words from the fields names.
17783         * tree-vect-loop.c (vect_transform_loop): Use new names for group
17784         elements access.
17785         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
17786         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
17787         vect_update_interleaving_chain, vect_same_range_drs,
17788         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
17789         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
17790         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
17791         vect_analyze_group_access, vect_analyze_data_ref_access,
17792         vect_create_data_ref_ptr, vect_transform_strided_load,
17793         vect_record_strided_load_vectors): Likewise.
17794         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
17795         vect_model_load_cost, vectorizable_store, vectorizable_load,
17796         vect_remove_stores, new_stmt_vec_info): Likewise.
17797         * tree-vect-slp.c (vect_build_slp_tree,
17798         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
17799
17800 2011-05-18  Richard Guenther  <rguenther@suse.de>
17801
17802         PR middle-end/48989
17803         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
17804         operand verification.
17805         (verify_gimple_assign_binary): Likewise.
17806         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
17807         to non-1-precision BOOLEAN_TYPEs.
17808
17809 2011-05-18  Tom de Vries  <tom@codesourcery.com>
17810
17811         PR target/45098
17812         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
17813
17814 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
17815
17816         PR tree-optimization/49000
17817         * tree-ssa.c (execute_update_addresses_taken): Call
17818         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
17819         be rewritten and decl has been marked for renaming, reset
17820         the debug stmt.
17821
17822 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
17823
17824         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
17825         enum_opts_set when testing if attributes have set -mfpmath=.
17826
17827 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
17828
17829         * config/mips/mips.c (mips_handle_option): Remove unused variable.
17830
17831 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
17832
17833         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
17834         info->entry with 0
17835         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
17836         id.transform_lang_insert_block with NULL.
17837
17838 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
17839
17840         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
17841         (output_fp_compare): Change args 3 and 4 to bool.
17842         (ix86_expand_call): Change arg 6 to bool.
17843         (ix86_attr_length_immediate_default): Change arg 2 to bool.
17844         (ix86_attr_length_vex_default): Change arg 3 to bool.
17845         * config/i386/i386.md: Update all uses.
17846         * config/i386/i386.c: Ditto.
17847         (ix86_flags_dependent): Change return type to bool.
17848
17849 2011-05-17  Richard Guenther  <rguenther@suse.de>
17850
17851         * gimple.c (type_hash_pair_compare): Fix comparison.
17852
17853 2011-05-17  Richard Guenther  <rguenther@suse.de>
17854
17855         * gimple.c (iterative_hash_gimple_type): Simplify singleton
17856         case some more, fix final hash value of the non-singleton case.
17857
17858 2011-05-17  Richard Guenther  <rguenther@suse.de>
17859
17860         PR bootstrap/49013
17861         Revert
17862         2011-05-16  Richard Guenther  <rguenther@suse.de>
17863
17864         * gimple.c (gimple_types_compatible_p_1): Use names of the
17865         type itself, not its main variant.
17866         (iterative_hash_gimple_type): Likewise.
17867
17868 2011-05-17  Richard Guenther  <rguenther@suse.de>
17869
17870         * gimple.c (gimple_register_canonical_type): Use the main-variant
17871         leader for computing the canonical type.
17872
17873 2011-05-17  Nick Clifton  <nickc@redhat.com>
17874
17875         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
17876         moves.
17877
17878         * config/rx/rx.md: Add peephole to remove redundant extensions
17879         after loads.
17880         (bitset_in_memory): Use rx_restricted_mem_operand.
17881         (bitinvert_in_memory): Likewise.
17882         (bitclr_in_memory): Likewise.
17883
17884 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
17885             Nick Clifton  <nickc@redhat.com>
17886
17887         * config/rx/rx.md: Add peepholes to match a register move followed
17888         by a comparison of the moved register.  Replace these with an
17889         addition of zero that does both actions in one instruction.
17890
17891 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
17892
17893         PR target/48986
17894         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
17895         predicate to allow CONST_INT.
17896         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
17897
17898 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
17899
17900         * opts-common.c (opt_enum_arg_to_value): New.
17901         * opts.h (opt_enum_arg_to_value): Declare.
17902         * config/i386/i386.opt (fpmath): Remove.
17903         (mfpmath=): Use Enum, Init and Save.
17904         (fpmath_unit): New Enum and EnumValue entries.
17905         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
17906         name for function fpmath state.
17907         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
17908         * config/i386/i386.c: Include diagnostic.h.
17909         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
17910         (ix86_target_string): Take enum fpmath_unit value instead of string.
17911         (ix86_debug_options): Update call to ix86_target_string.
17912         (ix86_option_override_internal): Don't process fpmath strings here.
17913         (x86_function_specific_save, ix86_function_specific_restore):
17914         Don't handle fpmath state specially.
17915         (ix86_function_specific_print): Pass fpmath state to
17916         ix86_target_string instead of printing in this function.
17917         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
17918         Handle enum attributes.
17919         (IX86_ATTR_ENUM, ix86_opt_enum): New.
17920         (ix86_valid_target_attribute_tree): Update option_strings
17921         handling.  Handle fpmath as enum option.
17922         (ix86_can_inline_p): Update field names for function fpmath state.
17923         (ix86_expand_builtin): Update call to ix86_target_string.
17924         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
17925         (ix86_fpmath): Remove.
17926         * config/i386/t-i386 (i386.o): Update dependencies.
17927
17928 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
17929
17930         PR preprocessor/48677
17931         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
17932         from decoded_options[0], not from itself.
17933
17934 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
17935
17936         * config/i386/constraints.md (z): New constraint.
17937         * config/i386/i386.c (c): New mode attribute.
17938         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
17939         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
17940         constraint for operand 0.
17941         (*call_vzeroupper): Ditto.
17942         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
17943         (*call_rex64_ms_sysv_vzeroupper): Ditto.
17944         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
17945         Use "lzm" constraint for operand 0.
17946         (*call_pop_vzeroupper): Ditto.
17947         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
17948         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
17949         constraint for operand 0.
17950         (*sibcall_vzeroupper): Ditto.
17951         (*sibcall_rex64_ms_sysv): Ditto.
17952         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
17953         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
17954         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
17955         (*sibcall_pop_vzeroupper): Ditto.
17956         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
17957         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
17958         mode iterator.  Use "<c>zm" constraint for operand 1.
17959         (*call_value_vzeroupper): Ditto.
17960         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
17961         for operand 1.
17962         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
17963         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
17964         *call_value_pop_1.  Use "lzm" constraint for operand 1.
17965         (*call_value_pop_vzeroupper): Ditto.
17966         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
17967         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
17968         mode iterator.  Use "Uz" constraint for operand 1.
17969         (*sibcall_value_vzeroupper): Ditto.
17970         (*sibcall_value_rex64_ms_sysv): Ditto.
17971         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
17972         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
17973         constraint for operand 1.
17974         (*sibcall_value_pop_vzeroupper): Ditto.
17975         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
17976         and "z" constraint for operand 2.
17977         (*tls_global_dynamic_32_gnu): Ditto.
17978         (*tls_local_dynamic_base_32_gnu): Ditto.
17979         (*tls_local_dynamic_base_64): Ditto.
17980         (*tls_local_dynamic_32_once): Ditto.
17981         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
17982         Update all callers.
17983         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
17984
17985 2011-05-16  Richard Guenther  <rguenther@suse.de>
17986
17987         * gimple.c (gimple_types_compatible_p_1): Use names of the
17988         type itself, not its main variant.
17989         (iterative_hash_gimple_type): Likewise.
17990
17991 2011-05-16  Richard Guenther  <rguenther@suse.de>
17992
17993         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
17994         always visit pointer target and function result and argument types.
17995
17996 2011-05-16  Jason Merrill  <jason@redhat.com>
17997
17998         PR c++/48999
17999         * tree-inline.c (copy_statement_list): Put back recursion.
18000
18001 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
18002
18003         PR target/27663
18004         PR target/41076
18005         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
18006         * config/avr/avr.md ("*ior<mode>qi.byte0",
18007         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
18008
18009 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
18010
18011         PR target/45099
18012         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
18013         register is needed for a function argument.
18014
18015 2011-05-16  Richard Guenther  <rguenther@suse.de>
18016
18017         * gimple.c (struct type_hash_pair): New type.
18018         (type_hash_pair_compare): New function.
18019         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
18020
18021 2011-05-16  Revital Eres  <revital.eres@linaro.org>
18022
18023         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
18024
18025 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
18026
18027         * config/i386/i386.md (floating point move splitters): Fix
18028         usage of standard_80387_constant_p.
18029         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
18030
18031 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
18032
18033         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
18034
18035 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
18036
18037         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
18038         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
18039         (tree_ssa_lim_finalize): Likewise.
18040
18041 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
18042
18043         * config/i386/constraint.md (Yd, Yx): New register constraints.
18044         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
18045         Yd conditional register constraint.
18046         (*movtf_internal): Use standard_sse_constant_opcode.
18047         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
18048         Yx conditional register constraint.
18049         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
18050         Yd conditional register constraint.  Use standard_sse_constant_p to
18051         check for valid SSE constants and call standard_sse_constant_opcode to
18052         output SSE insn.
18053         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
18054         constants and call standard_sse_constant_opcode to output SSE insn.
18055         * config/i386/i386.c (ix86_option_ovverride_internal): Set
18056         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
18057         optimize_size is set.
18058         (standard_sse_constant_opcode): Output conditional AVX insn templates.
18059
18060 2011-05-14  Tobias Burnus  <burnus@net-b.de>
18061
18062         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
18063
18064 2011-05-13  Martin Jambor  <mjambor@suse.cz>
18065
18066         * ipa-prop.c (ipa_cst_from_jfunc): New function.
18067         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
18068         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
18069         (evaluate_conditions_for_ipcp_clone): Removed.
18070         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
18071         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
18072         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
18073
18074 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
18075
18076         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
18077         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
18078         lieu of MAY_HAVE_DEBUG_STMTS.
18079         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
18080         debug statements if !MAY_HAVE_DEBUG_STMTS.
18081
18082 2011-05-13  Martin Thuresson  <martint@google.com>
18083
18084         PR gcov-profile/47793
18085         * libgcov.c (gcov_exit): Support relative profile paths.
18086         * doc/invoke.texi (-fprofile-dir): Update for above change.
18087
18088 2011-05-13  Richard Guenther  <rguenther@suse.de>
18089
18090         * gimple.c (gimple_canonical_types_compatible_p): Do not use
18091         type-pair caching, do not compare hashes.
18092
18093 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
18094
18095         PR middle-end/48965
18096         * tree-cfg.c (edge_to_cases_cleanup): Return true.
18097         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
18098
18099 2011-05-13  Kai Tietz  <ktietz@redhat.com>
18100
18101         * gimplify.c (gimplify_expr): Make sure operand is boolified.
18102         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
18103         compatible type for TRUTH_NOT_EXPR.
18104
18105 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
18106
18107         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
18108         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
18109         can_create_pseudo_p ().
18110
18111 2011-05-13  Richard Guenther  <rguenther@suse.de>
18112
18113         PR lto/48978
18114         * gimple.c (iterative_hash_gimple_type): Revert change in
18115         pointer target and function result and argument hashing.
18116
18117 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
18118
18119         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
18120         (*movxf_internal_nointeger): Ditto.
18121         (*movdf_internal_rex64): Ditto.
18122         (*movdf_internal): Ditto.
18123         (*movdf_internal_nointeger): Ditto.
18124         (*movsf_internal): Ditto.
18125         (sincos splitters): Use can_create_pseudo ().
18126
18127 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
18128
18129         * config/i386/i386-opts.h: New.
18130         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
18131         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
18132         ix86_section_threshold): Remove.
18133         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
18134         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
18135         OPT_mbranch_cost_.
18136         (ix86_option_override_internal): Don't decode strings for options
18137         other than -march=, -mtune= and -mfpmath=.  Don't allow for
18138         __attribute__ uses in remaining diagnostics for options with
18139         string arguments.  Don't check for integer arguments being negative.
18140         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
18141         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
18142         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
18143         ix86_branch_cost, ix86_section_threshold): Remove.
18144         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
18145         HeaderInclude.
18146         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
18147         but not Var.
18148         (masm=): Use Enum and Init.
18149         (asm_dialect): New Enum and EnumValue entries.
18150         (mbranch-cost=): Use UInteger.
18151         (mlarge-data-threshold=): Use UInteger and Init.
18152         (mcmodel=): Use Enum and Init.
18153         (cmodel): New Enum and EnumValue entries.
18154         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
18155         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
18156         mregparm=): Use UInteger.
18157         (mstringop-strategy=): Use Enum and Init.
18158         (stringop_alg): New Enum and EnumValue entries.
18159         (mtls-dialect=): Use Enum and Init.
18160         (tls_dialect): New Enum and EnumValue entries.
18161         (mabi=): Use Enum and Init.
18162         (calling_abi): New Enum and EnumValue entries.
18163         (mveclibabi=): Use Enum and Init.
18164         (ix86_veclibabi): New Enum and EnumValue entries.
18165
18166 2011-05-13  Nick Clifton  <nickc@redhat.com>
18167
18168         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
18169         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
18170
18171 2011-05-13  Kai Tietz  <ktietz@redhat.com>
18172
18173         PR middle-end/48984
18174         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
18175         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
18176         (gimple_boolify): Check for cast for boolean_type_node instead for
18177         BOOLEAN_TYPE.
18178
18179 2011-05-13  Richard Guenther  <rguenther@suse.de>
18180
18181         PR tree-optimization/48172
18182         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
18183         multiplying by number of iterations for equal step.
18184         (vect_create_cond_for_alias_checks): Likewise.
18185
18186 2011-05-13  Andreas Schwab  <schwab@redhat.com>
18187
18188         * configure.ac: Use AS_HELP_STRING throughout.
18189         * configure: Regenerate.
18190
18191 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
18192
18193         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
18194         (ix86_emit_restore_regs_using_mov): Likewise.
18195         (ix86_emit_restore_sse_regs_using_mov): Likewise.
18196
18197 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
18198
18199         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
18200         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
18201         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
18202         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
18203         RTX_OK_FOR_OLO10_P): ...here.
18204         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
18205         SYMBOLIC_CONST.
18206
18207 2011-05-12  Kai Tietz  <ktietz@redhat.com>
18208
18209         * gimplify.c (gimple_boolify): Re-boolify expression
18210         arguments even if expression type is of kind BOOLEAN_TYPE.
18211         (gimplify_boolean_expr): Removed.
18212         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
18213         and XOR. Additional take care that we keep expression's type.
18214         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
18215         of TRUTH_AND|OR|XOR_EXPR.
18216
18217 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
18218
18219         PR tree-optimization/48975
18220         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
18221         on all bbs here and free and clear ifc_bbs at the end.
18222
18223 2011-05-12  Richard Guenther  <rguenther@suse.de>
18224
18225         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
18226         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
18227         until after simple checks.
18228         (gimple_types_compatible_p): Likewise.
18229         (iterative_hash_gimple_type): Always hash pointer targets
18230         and function return and argument types.
18231         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
18232         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
18233         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
18234         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
18235         completely in the simple compare section.
18236         (gimple_register_canonical_type): Query the cache again after
18237         registering.
18238
18239 2011-05-12  Richard Guenther  <rguenther@suse.de>
18240
18241         PR tree-optimization/48172
18242         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
18243         the number of iterations from the segment size calculation.
18244         (vect_create_cond_for_alias_checks): Adjust.
18245
18246 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
18247
18248         PR debug/48967
18249         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
18250         if validate_subreg fails.
18251
18252 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
18253
18254         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
18255         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
18256         early.
18257
18258 2011-05-12  DJ Delorie  <dj@redhat.com>
18259
18260         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
18261         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
18262         created builtin into rx_builtins array.
18263         (rx_builtin_decl): New function.
18264         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
18265
18266 2011-05-12  DJ Delorie  <dj@redhat.com>
18267             Nick Clifton  <nickc@redhat.com>
18268
18269         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
18270         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
18271         (rx_is_legitimate_address): Add pre-decrement and post-increment
18272         addressing in HImode and QImode.  Fix test for out of range
18273         REG+INT addressing.
18274         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
18275         (rx_align_for_label): Test label before extracting its usage count.
18276         (rx_adjust_insn_lengths): Fix selection of insn codes.
18277         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
18278
18279 2011-05-11  Jason Merrill  <jason@redhat.com>
18280
18281         * tree.c (type_hash_canon): Use struct tree_type_non_common.
18282
18283 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
18284
18285         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
18286         reindent the subsequent block.
18287
18288 2011-05-11  Satoru Takabayashi  <satorux@google.com>
18289             Paul Pluzhnikov  <ppluzhnikov@google.com>
18290
18291         * doc/install.texi (Configuration): Document --with-linker-hash-style.
18292         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
18293         * config.in: Add LINKER_HASH_STYLE.
18294         * configure.ac: Add --with-linker-hash-style.
18295         * configure: Regenerate.
18296
18297 2011-05-11  Richard Guenther  <rguenther@suse.de>
18298
18299         PR middle-end/48964
18300         * gimple.c (iterative_hash_canonical_type): Fix typo.
18301
18302 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
18303
18304         * config/i386/i386.c (legitimize_tls_address)
18305         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
18306         expanders directly for TARGET_GNU2_TLS.  Determine pic and
18307         __tls_get_addr symbol reference here.  Update call to
18308         gen_tls_global_dynamic_{32,64} for added arguments.
18309         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
18310         expanders directly for TARGET_GNU2_TLS.  Determine
18311         __tls_get_addr symbol reference here.  Update call to
18312         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
18313         unique UNSPEC REG_EQUIV to libcall block.
18314         (ix86_tls_get_addr): Declare static.
18315         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
18316         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
18317         Do not determine pic and __tls_get_addr symbol reference here. Do not
18318         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
18319         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
18320         (tls_global_dynamic_64): Add operand 2.  Do not determine
18321         __tls_get_addr symbol reference here.  Do not call
18322         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
18323         (tls_local_dynamic_base64): Ditto for operand 1.
18324
18325 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
18326
18327         * function.c (expand_function_start): Initialize stack_check_probe_note
18328         only if the generic stack checking mechanism is used.
18329
18330 2011-05-11  Richard Guenther  <rguenther@suse.de>
18331
18332         PR tree-optimization/15256
18333         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
18334         (A & B) | C, combine (A op CST1) op CST2.
18335         (tree_ssa_forward_propagate_single_use_vars): Only bother to
18336         visit assigns that have uses.
18337
18338 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
18339
18340         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
18341         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
18342         (unpack_ts_type_common_value_fields): ...this.  Update comment.
18343         (unpack_value_fields): Adjust for renaming.
18344         (lto_input_ts_type_tree_pointers): Split into...
18345         (lto_input_ts_type_common_tree_pointer): ...this and...
18346         (lto_input_ts_type_non_common_tree_pointers): ...this.
18347         (lto_input_tree_pointers): Adjust for above split.
18348         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
18349         (pack_ts_type_common_value_fields): ...this.  Update comment.
18350         (lto_output_ts_type_tree_pointers): Split into...
18351         (lto_output_ts_type_common_tree_pointers): ...this and...
18352         (lto_output_ts_type_non_common_tree_pointers): ...this.
18353         (lto_output_tree_pointers): Adjust for above split.
18354         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
18355         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
18356         * stor-layout.c (vector_type_mode): Adjust location of mode field.
18357         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
18358         Define.
18359         (struct tree_type): Split into...
18360         (struct tree_type_common: ...this and...
18361         (struct tree_type_with_lang_specific): ...this and...
18362         (struct tree_type_non_common): ...this.  Adjust accessor macros
18363         accordingly.
18364         (TYPE_VALUES_RAW): Define.
18365         (union tree_node): Update for above changes.
18366         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
18367         TS_TYPE_NON_COMMON.
18368         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
18369         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
18370         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
18371         * treestructu.def (TS_TYPE): Remove.
18372         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
18373         Define.
18374
18375 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
18376
18377         PR debug/48159
18378         * tree-ssa.c (reset_debug_uses): New function.
18379         * tree-flow.h (reset_debug_uses): New prototype.
18380         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
18381         * tree-loop-distribution.c (generate_loops_for_partition): Call
18382         reset_debug_uses on the stmts that will be removed.  Keep around
18383         all debug stmts, don't count them as bits in partition bitmap.
18384         (generate_builtin): Don't count debug stmts or labels as bits in
18385         partition bitmap.
18386
18387 2011-05-11  Richard Guenther  <rguenther@suse.de>
18388
18389         * gimple.c (gimple_type_hash_1): Merge with ...
18390         (gimple_type_hash): ... this.
18391         (gtc_visit): Remove mode parameter and simplify accordingly.
18392         (gimple_types_compatible_p_1): Likewise.
18393         (gimple_types_compatible_p): Likewise.
18394         (iterative_hash_gimple_type): Likewise.
18395         (visit): Likewise.
18396         (gimple_type_eq): Adjust.
18397
18398 2011-05-11  Revital Eres  <revital.eres@linaro.org>
18399
18400         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
18401         enters the branch create an anti edge in the opposite direction
18402         to prevent the creation of reg-moves.
18403         * modulo-sched.c: Adjust comment to reflect the fact we are
18404         scheduling closing branch.
18405         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
18406         (stage_count): New field in struct partial_schedule.
18407         (calculate_stage_count): New function.
18408         (normalize_sched_times): Rename to reset_sched_times and handle
18409         incrementing the sched time of the nodes by a constant value
18410         passed as parameter.
18411         (duplicate_insns_of_cycles): Skip closing branch.
18412         (sms_schedule_by_order): Schedule closing branch.
18413         (ps_insn_find_column): Handle closing branch.
18414         (sms_schedule): Call reset_sched_times and adjust the code to
18415         support scheduling of the closing branch.
18416         (ps_insert_empty_row): Update calls to normalize_sched_times
18417         and rotate_partial_schedule functions.
18418
18419 2011-05-11  Richard Guenther  <rguenther@suse.de>
18420
18421         PR middle-end/48953
18422         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
18423
18424 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
18425
18426         * opts.c (finish_options): Move warning settings from process_options.
18427         * toplev.c (process_options): Move warning settings to finish_options.
18428
18429 2011-05-11  Richard Guenther  <rguenther@suse.de>
18430
18431         PR tree-optimization/18041
18432         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
18433         (simplify_bitwise_binary): ... this.  Handle operand conversions
18434         by applying them to the result instead.
18435         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
18436
18437 2011-05-11  Richard Guenther  <rguenther@suse.de>
18438
18439         * gimple.c (gimple_canonical_types_compatible_p): Split out
18440         from gimple_types_compatible_p and friends.  Do not recurse
18441         to pointed-to types.
18442         (gimple_canonical_type_eq): Use it.
18443         (iterative_hash_canonical_type): Split out from
18444         iterative_hash_gimple_type and friends.  Do not recurse
18445         to pointed-to types.
18446         (gimple_canonical_type_hash): Use it, allocate the hash here.
18447
18448 2011-05-11  Revital Eres  <revital.eres@linaro.org>
18449
18450         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
18451         recognizing doloop.
18452
18453 2011-05-11  Revital Eres  <revital.eres@linaro.org>
18454
18455         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
18456         instead of PREV_INSN.
18457
18458 2011-05-11  Revital Eres  <revital.eres@linaro.org>
18459
18460         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
18461         * loop-doloop.c (doloop_condition_get): Likewise.
18462         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
18463         (doloop_end): New.
18464         * config/arm/arm.md (*addsi3_compare0): Remove "*".
18465
18466 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
18467
18468         * tree.def (CASE_LABEL_EXPR): Add an operand.
18469         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
18470
18471 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
18472
18473         * c-decl.c (c_override_global_bindings_to_false): Remove.
18474         (global_bindings_p): Don't check
18475         c_override_global_bindings_to_false.
18476         * c-tree.h (c_override_global_bindings_to_false): Remove.
18477         * c-typeck.c (composite_type): Don't set
18478         c_override_global_bindings_to_false.
18479
18480 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
18481
18482         PR target/48857, 48495
18483         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
18484         (VSX_MODE): Ditto.
18485         (VSX_MOVE_MODE): Ditto.
18486         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
18487         VSX vector types.  Add V2DImode.
18488         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
18489         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
18490         (MODES_TIEABLE_P): Ditto.
18491
18492         * config/rs6000/rs6000.c (rs6000_emit_move): Use
18493         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
18494         VSX_VECTOR_MODE.
18495         (init_cumulative_args): Ditto.
18496         (rs6000_function_arg_boundary): Ditto.
18497         (rs6000_function_arg_advance_1): Ditto.
18498         (rs6000_function_arg): Ditto.
18499         (rs6000_function_ok_for_sibcall): Ditto.
18500         (emit_frame_save): Ditto.
18501         (rs6000_function_value): Ditto.
18502         (rs6000_libcall_value): Ditto.
18503
18504 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
18505
18506         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
18507         i386/darwin-lib.h to $libgcc_tm_file.
18508         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
18509
18510 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
18511
18512         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
18513
18514 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
18515
18516         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
18517         * config/rs6000/rs6000-tables.opt: New file (generated).
18518         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
18519         rs6000/rs6000-tables.opt to extra_options.
18520         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
18521         * config/rs6000/rs6000.c (rs6000_select): Remove.
18522         (processor_target_table): Move contents to rs6000-cpus.def.
18523         (darwin_rs6000_override_options): Check
18524         global_options_set.x_rs6000_cpu_index instead of
18525         rs6000_select[1].string.
18526         (rs6000_option_override_internal): Likewise.
18527         (rs6000_handle_option): Don't assert that global structures are in
18528         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
18529         (rs6000_default_cpu): New variable.
18530         (rs6000_file_start): Set it instead of local default_cpu.  Check
18531         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
18532         global_options_set.x_rs6000_tune_index instead of rs6000_select.
18533         (rs6000_darwin_file_start): Check rs6000_default_cpu and
18534         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
18535         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
18536         rs6000_select): Remove.
18537         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
18538         Remove.
18539         (mcpu=, mtune=): Use Var, Init, Enum and Save.
18540         * config/rs6000/t-rs6000
18541         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
18542         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
18543         global_options_set.x_rs6000_cpu_index instead of
18544         rs6000_select[1].string.
18545         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
18546         global_options_set.x_rs6000_cpu_index instead of
18547         rs6000_select[1].string.
18548
18549 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
18550
18551         * config.gcc (libgcc_tm_file): Define instead of including files
18552         from ../../libgcc/config/ in tm_file.
18553         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
18554         * configure: Regenerate.
18555         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
18556         libgcc_tm.h, cs-libgcc_tm.h): New.
18557         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
18558         (clean): Remove libgcc_tm.h.
18559         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
18560         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
18561         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
18562
18563 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
18564
18565         PR target/48896
18566         * config/avr/avr.c (avr_ret_register): Return unsigned int
18567         instead of int.
18568         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
18569         it to avr_libcall_value.
18570         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
18571         expand_expr.
18572         (avr_expand_binop_builtin): Ditto.
18573         (avr_expand_unop_builtin): Ditto.
18574
18575 2011-05-10  DJ Delorie  <dj@redhat.com>
18576
18577         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
18578         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
18579         * config/rx/rx.c (rx_align_for_label): Add label and
18580         uses_threshold parameters.  Do not align when the label is not
18581         used enough.
18582         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
18583
18584 2011-05-10  Richard Guenther  <rguenther@suse.de>
18585
18586         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
18587         a series of conversions and apply foldings similar to what
18588         fold-const does.
18589         (tree_ssa_forward_propagate_single_use_vars): Call it.
18590
18591 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
18592
18593         PR tree-optimization/48611
18594         PR tree-optimization/48794
18595         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
18596         referenced from RESX or EH_DISPATCH arguments.
18597
18598         PR debug/48928
18599         * dfp.c (decimal_to_decnumber): Handle conversion from
18600         dconst{1,2,m1,half}.
18601
18602 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
18603
18604         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
18605         for !flag_prefer_avx128.
18606         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
18607
18608 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
18609
18610         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
18611         (fold_ternary_loc): Use expr_location_or.
18612
18613 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
18614
18615         PR debug/48853
18616         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
18617         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
18618         Pmode and mem_mode is not VOIDmode.
18619
18620 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
18621
18622         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
18623         TYPE_QUAL_RESTRICT): Convert to enum.
18624
18625 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
18626
18627         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
18628         (const_pow2_1_to_8_operand): Ditto.
18629         (const_pow2_1_to_128_operand): Ditto.
18630         (const_pow2_1_to_32768_operand): Ditto.
18631         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
18632         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
18633         in insn constraint to check integer value of operand 3.
18634         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
18635
18636         (PINSR_MODE): New mode iterator.
18637         (sse2p4_1): New mode attribute.
18638         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
18639         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
18640         iterator.  Use const_int_operand instead of
18641         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
18642         exact_log2 in insn constraint to check integer value of operand 3.
18643
18644 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
18645
18646         * config/i386/sse.md (blendbits): Remove mode attribute.
18647         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
18648         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
18649         Check integer value of operand 3 in insn constraint.
18650
18651 2011-05-09  Richard Guenther  <rguenther@suse.de>
18652
18653         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
18654         for diagnostics.
18655         (lto_symtab_merge): Likewise.  Do not register types here.
18656         (lto_symtab_merge_decls_2): Likewise.
18657         (lto_symtab_merge_decls_1): Likewise.
18658         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
18659         * gimple.c (enum gtc_mode): Declare.
18660         (gimple_types_compatible_p): Make static.
18661
18662 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18663
18664         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
18665         temporary register to match Pmode.
18666
18667 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
18668
18669         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
18670         and *vec_concatv4si_1_avx.
18671
18672 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
18673
18674         PR rtl-optimization/48927
18675         * ira-conflicts.c (commutative_constraint_p): Use
18676         recog_data.alternative_enabled_p to disable alternatives where
18677         "enabled" attribute is false.
18678         (get_dup_num): Ditto.
18679         * ira-lives.c (single_reg_class): Ditto.
18680         (ira_implicitly_set_insn_hard_regs): Ditto.
18681
18682 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
18683
18684         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
18685         (dataflow_set_preserve_mem_locs): Likewise.
18686
18687 2011-05-09  Philipp Thomas  <pth@suse.de>
18688
18689         * config/mep/mep.c (mep_validate_vliw): Syntax description
18690         should not be translated.
18691
18692 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
18693
18694         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
18695         * config/mips/mips-tables.opt: New file (generated).
18696         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
18697         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
18698         MIPS_ARCH_OPTION_NATIVE): Define.
18699         * config/mips/mips.c (mips_cpu_info_table): Move contents to
18700         mips-cpus.def.
18701         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
18702         mips_parse_cpu): Remove.
18703         (mips_cpu_info_from_opt, mips_default_arch): New.
18704         (mips_handle_option): Don't assert that global structures are in
18705         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
18706         (mips_option_override): Use new variables and functions to set
18707         state of these options.  Use strcmp to check for individual CPU names.
18708         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
18709         definition.
18710         * config/mips/mips.opt (march=): Use ToLower and Enum.
18711         (mips): Use ToLower, Enum and Var.
18712         (mtune=): Use ToLower and Enum.
18713         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
18714
18715 2011-05-08  Jan Hubicka  <jh@suse.cz>
18716
18717         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
18718         Arrange type pairs to be UID ordered.
18719         (gimple_lookup_type_leader): Make inline.
18720
18721 2011-05-09  Nick Clifton  <nickc@redhat.com>
18722
18723         PR target/48899
18724         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
18725         PROCESSOR_DEFAULT.
18726
18727         PR target/48897
18728         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
18729         variable 's'.
18730
18731 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
18732
18733         * combine.c (simplify_comparison): Abstract out parts into...
18734         (simplify_compare_const): ... new function.
18735         (try_combine): Generalize parallel arithmetic/compare combining
18736         to call simplify_compare_const() and CANONICALIZE_COMPARE().
18737
18738 2011-05-08  Jan Hubicka  <jh@suse.cz>
18739
18740         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
18741         (cgraph_create_virtual_clone): Call hooks once virtual clone
18742         is finished.
18743         * cgraph.h (cgraph_clone_node): Update prototype.
18744         * ipa-cp.c (ipcp_estimate_growth): Use
18745         estimate_ipcp_clone_size_and_time.
18746         * ipa-inline-transform.c (clone_inlined_nodes): Update.
18747         * lto-cgraph.c (input_node): Update.
18748         * ipa-inline.c (recursive_inlining): Update.
18749         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
18750         (evaluate_conditions_for_known_args): Break out from ...
18751         (evaluate_conditions_for_edge): ... here.
18752         (evaluate_conditions_for_ipcp_clone): New function.
18753         (inline_node_duplication_hook): Update clone summary based
18754         on parameter map.
18755         (estimate_callee_size_and_time): Rename to ...
18756         (estimate_node_size_and_time): take NODE instead of EDGE;
18757         take POSSIBLE_TRUTHS as argument.
18758         (estimate_callee_size_and_time): Update.
18759         (estimate_ipcp_clone_size_and_time): New function.
18760         (do_estimate_edge_time): Update.
18761
18762 2011-05-08  Richard Guenther  <rguenther@suse.de>
18763
18764         PR middle-end/48908
18765         PR middle-end/48905
18766         * expmed.c (expand_shift_1): Compute adjusted constant shift
18767         amount manually.
18768
18769 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
18770
18771         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
18772
18773 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
18774
18775         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
18776
18777 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
18778
18779         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
18780
18781 2011-05-07  Jan Hubicka  <jh@suse.cz>
18782
18783         * ipa-inline-transform.c (inline_call): Account when program size
18784         decreases.
18785         * ipa-inline.c (relative_time_benefit): New function.
18786         (edge_badness): Reorganize to be power 2 based; fix thinko when
18787         computing badness for negative growth; update comments to match
18788         reality; better dumps.
18789
18790 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
18791
18792         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
18793         type to bool and adjust comment.
18794         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
18795         (fold_mathfn_compare): Remove calls to global_bindings_p.
18796         (fold_inf_compare): Likewise.
18797         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
18798         * c-tree.h (global_bindings_p): Adjust prototype.
18799         * c-decl.c (global_bindings_p): Return bool and simplify.
18800
18801 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
18802
18803         PR tree-optimization/48837
18804         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
18805         when accumulator transformation is performed.
18806
18807 2011-05-06  Jan Hubicka  <jh@suse.cz>
18808
18809         * i386.h (ix86_tune_indices): Add
18810         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
18811         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
18812         * i386.c (initial_ix86_tune_features): Add
18813         X86_SOFTARE_PREFETCHING_BENEFICIAL.
18814         (software_prefetching_beneficial_p): Remove predicate.
18815         (ix86_option_override_internal): Use new macro.
18816
18817 2011-05-06  Jan Hubicka  <jh@suse.cz>
18818
18819         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
18820
18821 2011-05-06  Jan Hubicka  <jh@suse.cz>
18822
18823         * cgraph.c (cgraph_add_thunk): Create real function node instead
18824         of alias node; finalize it and mark needed/reachale; arrange visibility
18825         to be right and add it into the corresponding same comdat group list.
18826         (dump_cgraph_node): Dump thunks.
18827         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
18828         cgraph_function_with_gimple_body_p,
18829         cgraph_first_function_with_gimple_body,
18830         cgraph_next_function_with_gimple_body): New functions.
18831         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
18832         New macros.
18833         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
18834         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
18835         * cgraphunit.c (cgraph_finalize_function): Only look into possible
18836         devirtualization when optimizing.
18837         (verify_cgraph_node): Verify thunks.
18838         (cgraph_analyze_function): Analyze thunks.
18839         (cgraph_mark_functions_to_output): Output thunks only in combination
18840         with function they are assigned to.
18841         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
18842         alias into normal node.
18843         (assemble_thunks): New functoin.
18844         (cgraph_expand_function): Use it.
18845         * lto-cgraph.c (lto_output_node): Stream thunks.
18846         (input_overwrite_node): Stream in thunks.
18847         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
18848         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
18849         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
18850         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
18851         (inline_analyze_function): Do not care about thunk jump functions.
18852         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
18853         * ipa-prop.c (ipa_prop_write_jump_functions): Use
18854         cgraph_function_with_gimple_body_p.
18855         * passes.c (do_per_function_toporder): Use
18856         cgraph_function_with_gimple_body_p.
18857         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
18858         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
18859         (function_called_by_processed_nodes_p): Likewise.
18860
18861 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
18862
18863         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
18864         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
18865         entries.
18866         (mabi=): Replace with separate entries for mabi=altivec,
18867         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
18868         mabi=ieeelongdouble and mabi=ibmlongdouble.
18869         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
18870         check for -mabi=spe without SPE ABI support here.
18871         (rs6000_handle_option): Replace OPT_mabi_ handling with
18872         OPT_mabi_altivec and OPT_mabi_spe handling.
18873
18874 2011-05-06  Cary Coutant  <ccoutant@google.com>
18875
18876         * dwarf2out.c (contains_subprogram_definition): New function.
18877         (should_move_die_to_comdat): Call it.
18878
18879 2011-05-06  Jeff Law  <law@redhat.com>
18880
18881         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
18882         remove_ctrl_stmt_and_useless_edges.
18883         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
18884         (fixup_template_block, thread_single_edge): Likewise.
18885         (mark_threaded_blocks): Use THREAD_TARGET.
18886
18887 2011-05-06  Alan Modra  <amodra@gmail.com>
18888
18889         PR target/48900
18890         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
18891         const0_rtx as the arg to the dummy __tls_get_addr libcall.
18892
18893 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
18894
18895         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
18896         constraint modifier to "r".
18897
18898 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
18899
18900         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
18901         fall through for OPT_mcmodel_.
18902
18903 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18904
18905         * config/s390/s390.c (s390_asm_trampoline_template): Comment
18906         instruction sizes.
18907         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
18908
18909 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
18910
18911         PR target/47930
18912         * config/arm/arm.opt (marm): Document it.
18913         (mthumb): Reject negative variant.
18914
18915 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
18916
18917         PR target/48898
18918         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
18919         Fix typo in "ccvt" variable name.
18920
18921 2011-05-06  Tristan Gingold  <gingold@adacore.com>
18922
18923         PR target/48895
18924         * config/vms/vms-ar.c (main): Remove cwd variable.
18925
18926 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
18927
18928         PR debug/48902
18929         * var-tracking.c (prepare_call_arguments): Move else before #endif.
18930
18931 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
18932
18933         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
18934         * gimplify.c (gimplify_switch_expr): Likewise.
18935         * omp-low.c (expand_omp_sections): Likewise.
18936         * tree-eh.c (lower_try_finally_switch): Likewise.
18937         (lower_eh_dispatch): Likewise.
18938         * tree.h (build_case_label): Declare.
18939         * tree.c (build_case_label): Define.
18940
18941 2011-05-05  Jason Merrill  <jason@redhat.com>
18942
18943         PR c++/40975
18944         * tree-inline.c (copy_tree_r): Use copy_statement_list.
18945         (copy_statement_list): Don't recurse.
18946         * stor-layout.c (copy_self_referential_tree_r): Don't allow
18947         STATEMENT_LIST.
18948
18949 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
18950
18951         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
18952         through from -mfpu= handling.
18953         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
18954
18955 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
18956
18957         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
18958         POST_MODIFY.
18959
18960 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
18961
18962         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
18963         for 11.31.
18964         (hppa[12]*-*-hpux11*): Ditto.
18965         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
18966         * config/ia64/hpux-unix2003.h: New.
18967         * config/pa/pa-hpux1131.opt: New.
18968         * config/pa/pa-hpux1131.h: New.
18969         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
18970         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
18971         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
18972
18973 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
18974
18975         PR debug/48853
18976         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
18977         instead of mode as 3rd argument to recursive call.
18978         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
18979         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
18980         VOIDmode.
18981         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
18982         don't give up if mode is Pmode and mem_mode is not VOIDmode.
18983         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
18984         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
18985
18986 2011-05-05  Julian Brown  <julian@codesourcery.com>
18987
18988         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
18989         parenthesis in D-register case.
18990
18991 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
18992
18993         * opt-functions.awk (var_type_struct): Handle Enum options.
18994         * optc-gen.awk: Don't check range of variables of character type.
18995         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
18996         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
18997         rs6000_sdata_name, rs6000_explicit_options): Remove.
18998         (rs6000_option_override_internal): Check for -malign-power here.
18999         Use global_options_set instead of rs6000_explicit_options.
19000         (rs6000_parse_fpu_option): Remove.
19001         (rs6000_handle_option): Access variables via opts and opts_set
19002         pointers.  Use error_at and warning_at.  Add fall-through
19003         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
19004         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
19005         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
19006         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
19007         here.  Don't use rs6000_parse_fpu_option.
19008         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
19009         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
19010         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
19011         (mrecip=): Use Var.
19012         (mspe): Use Var and Save.
19013         (mtraceback=): Use Enum and Var.
19014         (rs6000_traceback_type): New Enum and EnumValue entries.
19015         (mfloat-gprs=): Use Enum, Var and Save.
19016         (rs6000_float_gprs): New Enum and EnumValue entries.
19017         (mlong-double-): use Var and Save.
19018         (msched-costly-dep=, minsert-sched-nops=): Use Var.
19019         (malign-): Use Enum and Var.
19020         (rs6000_alignment_flags): New Enum and EnumValue entries.
19021         (mfpu=): Use Enum.
19022         (fpu_type_t): New Enum and EnumValue entries.
19023         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
19024         global_options_set instead of rs6000_explicit_options.
19025         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
19026         global_options_set instead of rs6000_explicit_options.
19027         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
19028         global_options_set instead of rs6000_explicit_options.
19029         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
19030         global_options_set instead of rs6000_explicit_options.
19031         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
19032         global_options_set instead of rs6000_explicit_options.
19033         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
19034         global_options_set instead of rs6000_explicit_options.
19035         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
19036         definition.
19037         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
19038         global_options_set instead of rs6000_explicit_options.
19039         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
19040         (rs6000_cmodel): New Enum and EnumValue entries.
19041         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
19042         global_options_set instead of rs6000_explicit_options.
19043         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
19044         (mtls-size=): Use Enum and Var.
19045         (rs6000_tls_size): New Enum and EnumValue entries.
19046
19047 2011-05-05  Michael Matz  <matz@suse.de>
19048
19049         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
19050         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
19051         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
19052         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
19053         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
19054         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
19055         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
19056         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
19057         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
19058         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
19059         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
19060         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
19061         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
19062         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
19063         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
19064         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
19065
19066 2011-05-05  Richard Guenther  <rguenther@suse.de>
19067
19068         * expmed.c (expand_variable_shift): Rename to ...
19069         (expand_shift_1): ... this.  Take an expanded shift amount.
19070         For rotates recurse directly not building trees for the shift amount.
19071         (expand_variable_shift): Wrap around expand_shift_1.
19072         (expand_shift): Adjust.
19073
19074 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
19075
19076         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
19077
19078 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
19079
19080         * tree.h (get_pending_sizes): Remove prototype.
19081         (put_pending_size): Likewise.
19082         (put_pending_sizes): Likewise.
19083         * stor-layout.c (pending_sizes): Delete.
19084         (get_pending_sizes): Likewise.
19085         (put_pending_size): Likewise.
19086         (put_pending_sizes): Likewise.
19087         (variable_size): Do not call put_pending_size and tidy up.
19088         * function.h (struct function): Remove dont_save_pending_sizes_p.
19089         * lto-streamer-in.c (input_function): Do not stream it.
19090         * lto-streamer-out.c (output_function): Likewise.
19091         * tree-inline.c (initialize_cfun): Do not copy it.
19092         * c-decl.c (store_parm_decls): Do not set it.
19093         * omp-low.c (create_task_copyfn): Likewise.
19094         * tree-optimize.c (tree_rest_of_compilation): Likewise.
19095
19096 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
19097
19098         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
19099         conditions.
19100         (*movdf_internal): Ditto.
19101         (*movdf_internal_nointeger): Ditto.
19102         (*movsf_internal): Ditto.
19103
19104 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
19105
19106         * c-decl.c (finish_decl): Don't call get_pending_sizes.
19107         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
19108         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
19109         (c_variable_size): Remove.
19110         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
19111         call put_pending_sizes.
19112         (get_parm_info): Add parameter expr.  Use it to set
19113         arg_info->pending_sizes.
19114         (store_parm_decls): Use arg_info->pending_sizes instead or calling
19115         get_pending_sizes.
19116         * c-parser.c (c_parser_parms_declarator): Update call to
19117         c_parser_parms_list_declarator.
19118         (c_parser_parms_list_declarator): Take parameter expr.  Update
19119         call to push_parm_decl.  Update recursive call.  Don't call
19120         get_pending_sizes.  Update calls to get_parm_info.
19121         (c_parser_objc_method_definition): Update calls to
19122         c_parser_objc_method_decl and objc_start_method_definition.
19123         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
19124         (c_parser_objc_method_decl): Add parameter expr.  Update call to
19125         grokparm.
19126         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
19127         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
19128         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
19129
19130 2011-05-05  Michael Hope  <michael.hope@linaro.org>
19131
19132         PR pch/45979
19133         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
19134         __ARM_EABI__ hosts.
19135
19136 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19137
19138         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
19139         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
19140         (spu_output_mi_thunk): New function.
19141
19142 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19143
19144         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
19145         targetm.asm_out.print_operand.
19146         * config/sol2.c: Include target.h.
19147
19148 2011-05-04  Jan Hubicka  <jh@suse.cz>
19149
19150         * ipa-inline.c (reset_edge_caches): New function.
19151         (update_caller_keys): Add check_inlinablity_for; do not
19152         reset edge caches; remove now unnecesary loop.
19153         (update_callee_keys): Add comments; reset node_growth_cache of callee.
19154         (update_all_callee_keys): Likewise.
19155         (inline_small_functions): Sanity check cache; update code
19156         recomputing it.
19157
19158 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
19159
19160         PR rtl-optimization/47612
19161         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
19162         as the last insn of the sequence to be moved.
19163
19164 2011-05-04  Tobias Burnus  <burnus@net-b.de>
19165
19166         PR fortran/48864
19167         * doc/invoke.texi (Ofast): Document that it
19168         enables Fortran's -fno-protect-parens.
19169
19170 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
19171
19172         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
19173
19174 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
19175
19176         * stor-layout.c (variable_size): Do not issue errors.
19177
19178 2011-05-04  Richard Guenther  <rguenther@suse.de>
19179
19180         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
19181         for array-ref indices.
19182         (tree_coverage_counter_addr): Likewise.
19183         (build_fn_info_type): Use size_int for index types.
19184         (build_gcov_info): Likewise.
19185
19186 2011-05-04  Richard Guenther  <rguenther@suse.de>
19187
19188         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
19189         to build_int_cst.
19190         * c-typeck.c (really_start_incremental_init): Use bitsize_int
19191         for constructor indices.
19192         (push_init_level): Likewise.
19193
19194 2011-05-04  Richard Guenther  <rguenther@suse.de>
19195
19196         * explow.c (promote_mode): Move variable declarations before code.
19197
19198 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
19199
19200         * tree.h (build_function_type_array): Declare.
19201         (build_varargs_function_type_array): Declare.
19202         (build_function_type_vec, build_varargs_function_type_vec): Define.
19203         * tree.c (build_function_type_array_1): New function.
19204         (build_function_type_array): New function.
19205         (build_varargs_function_type_array): New function.
19206
19207 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
19208
19209         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
19210         before setting STMT_VINFO_TYPE.
19211
19212 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19213
19214         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
19215         instead of spu_pass_by_reference.
19216
19217 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19218
19219         * calls.c (emit_library_call_value_1): Invoke
19220         promote_function_mode hook on libcall arguments.
19221         * explow.c (promote_function_mode, promote_mode): Handle TYPE
19222         argument being NULL.
19223         * targhooks.c (default_promote_function_mode): Lisewise.
19224         * config/s390/s390.c (s390_promote_function_mode): Likewise.
19225         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
19226
19227         * doc/tm.texi: Document that TYPE argument might be NULL.
19228
19229 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
19230
19231         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
19232
19233 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
19234
19235         From Bernd Schmidt
19236         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
19237
19238 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19239
19240         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
19241         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
19242         Move ...
19243         * mips-tfile.c: ... here.
19244         Don't include coretypes.h, tm.h, filenames.h.
19245         (saber_stop): Remove definition and all calls.
19246         [__SABER__]: Remove.
19247         (__LINE__): Remove default.
19248         (Size_t, Ptrdiff_t): Remove definitions.
19249         Replace by size_t, ptrdiff_t.
19250         [!MIPS_DEBUGGING_INFO]: Remove.
19251         (SHASH_SIZE, THASH_SIZE): Remove defaults.
19252         (progname): Add const.
19253         (STATIC): Remove.
19254         Replace all uses by static.
19255         (ALIGN_SYMTABLE_OFFSET): Remove default.
19256         * mips-tdump.c: Don't include coretypes.h, tm.h.
19257         Remove !MIPS_IS_STAB guard.
19258         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
19259         $(TM_H), filenames.h dependencies.
19260         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
19261
19262 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
19263
19264         From Jie Zhang
19265         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
19266         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
19267
19268 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
19269
19270         From Bernd Schmidt
19271         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
19272         account and save/restore RETS.
19273         (PROFILE_BEFORE_PROLOGUE): Define.
19274         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
19275         the push insn to use predecrement.
19276
19277 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
19278
19279         From Jie Zhang
19280         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
19281
19282 2011-05-04  Nick Clifton  <nickc@redhat.com>
19283
19284         * config/mn10300/mn10300.c: Include cfgloop.h.
19285         (DUMP): New macro.
19286         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
19287         Lcc or a FLcc insn into the instruction stream.
19288         (mn10300_block_contains_call): New function.  Returns true if the
19289         given basic block contains a CALL insn.
19290         (mn10300_loop_contains_call_insn): New function.  Returns true if
19291         the given loop contains a CALL insn.
19292         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
19293         to use the SETLB and Lcc or FLcc insns.
19294         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
19295         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
19296         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
19297         disable the SETLB optimization.
19298         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
19299         __SETLB__ or __NO_SETLB__.
19300         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
19301         (movsf_internal): Handle MDR register.
19302         (cmpsi): Make visible.
19303         (setlb): New pattern.
19304         (Lcc): New pattern.
19305         (FLcc): New pattern.
19306
19307 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
19308
19309         PR target/48860
19310         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
19311         for reg<->xmm moves.
19312         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
19313         (vec_concatv2di_rex64_sse): Ditto.
19314         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
19315         (*vec_extractv2di_1_rex64): Ditto.
19316
19317         Revert:
19318         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
19319
19320         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
19321         reg<->xmm moves.
19322         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
19323
19324 2011-05-04  Richard Guenther  <rguenther@suse.de>
19325
19326         * tree.h (int_const_binop): Remove notrunc argument.
19327         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
19328         create integer constants that are properly truncated.
19329         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
19330         (const_binop): Remove zero notrunc argument to int_const_binop.
19331         (size_binop_loc): Likewise.
19332         (fold_div_compare): Likewise.
19333         (maybe_canonicalize_comparison_1): Likewise.
19334         (fold_comparison): Likewise.
19335         (fold_binary_loc): Likewise.
19336         (multiple_of_p): Likewise.
19337         * expr.c (store_constructor): Likewise.
19338         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
19339         (maybe_fold_stmt_addition): Likewise.
19340         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
19341         * stor-layout.c (layout_type): Likewise.
19342         * tree-data-ref.c (tree_fold_divides_p): Likewise.
19343         * tree-sra.c (build_ref_for_offset): Likewise.
19344         (build_user_friendly_ref_for_offset): Likewise.
19345         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
19346         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
19347         * tree-ssa-loop-niter.c (inverse): Likewise.
19348         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
19349         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
19350         * tree-switch-conversion.c (check_range): Likewise.
19351         (build_constructors): Likewise.
19352         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
19353         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
19354         (extract_range_from_assert): Likewise.
19355         (vrp_int_const_binop): Likewise.
19356         (extract_range_from_binary_expr): Likewise.
19357         (extract_range_from_unary_expr): Likewise.
19358         (check_array_ref): Likewise.
19359         (find_case_label_range): Likewise.
19360         (simplify_div_or_mod_using_ranges): Likewise.
19361         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
19362         comparing case labels for merging.
19363
19364 2011-05-03  Mark Wielaard  <mjw@redhat.com>
19365
19366         * dwarf2out.c (debug_str_hash_forced): Removed.
19367         (gen_label_for_indirect_string): Removed.
19368         (get_debug_string_label): Removed.
19369         (AT_string_form): Generate label directly.
19370         (output_indirect_string): Test indirect_string_node for
19371         DW_FORM_strp instead of checking label and refcount.
19372         (prune_indirect_string): Removed.
19373         (prune_unused_types): Don't check debug_str_hash_forced or
19374         call prune_indirect_string.
19375
19376 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
19377
19378         PR other/48093
19379         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
19380
19381 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
19382
19383         PR debug/47994
19384         PR debug/47919
19385         * combine.c (try_combine): Skip debug insns at m_split tests.
19386
19387 2011-04-26  Mark Wielaard  <mjw@redhat.com>
19388
19389         PR42288
19390         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
19391         when info_section_emitted.
19392
19393 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
19394
19395         * config/mips/mips-opts.h: New.
19396         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
19397         to mips-opts.h.
19398         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
19399         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
19400         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
19401         via opts pointer.
19402         * config/mips/mips.h (enum mips_code_readable_setting): Move to
19403         mips-opts.h.
19404         (mips_abi, mips_code_readable): Don't declare.
19405         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
19406         (mabi=): Use Enum and Var.
19407         (mips_abi): New Enum and EnumValue entries.
19408         (mcode-readable=): Use Enum and Var.
19409         (mips_code_readable_setting): New Enum and EnumValue entries.
19410         (mr10k-cache-barrier=): Use Enum and Var.
19411         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
19412
19413 2011-05-03  Jan Hubicka  <jh@suse.cz>
19414
19415         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
19416         replace hash by pointer map.
19417         (cgraph_node_set_element_def, cgraph_node_set_element,
19418         const_cgraph_node_set_element, varpool_node_set_element_def,
19419         varpool_node_set_element, const_varpool_node_set_element): Remove.
19420         (free_cgraph_node_set, free_varpool_node_set): New function.
19421         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
19422         * tree-emutls.c: Free varpool node set.
19423         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
19424         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
19425         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
19426         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
19427         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
19428         Move here from ipa.c; implement using pointer_map
19429         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
19430         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
19431         debug_cgraph_node_set, varpool_node_set_new,
19432         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
19433         dump_varpool_node_set, debug_varpool_node_set):
19434         Move to ipa-uitls.c.
19435         * passes.c (ipa_write_summaries): Update.
19436
19437 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
19438
19439         From Mike Frysinger:
19440         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
19441         bf542/bf544/bf547/bf548/bf549.
19442
19443 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
19444
19445         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
19446
19447 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
19448
19449         From Bernd Schmidt:
19450         * config/bfin/bfin.md (MOVCC): New mode_macro.
19451         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
19452         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
19453         comments from generated assembly.
19454
19455 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
19456
19457         From Bernd Schmidt
19458         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
19459         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
19460         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
19461         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
19462         * config/bfin/lib1funcs.asm (___muldi3): New function.
19463
19464 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
19465
19466         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
19467         build_function_type_list instead of build_function_type.
19468         Rearrange initialization of `args' to do so.
19469
19470 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
19471
19472         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
19473         instead of build_function_type.
19474
19475 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
19476
19477         * config/rs6000/rs6000.c (spe_init_builtins): Call
19478         build_function_type_list instead of build_function_type.
19479         (paired_init_builtins, altivec_init_builtins): Likewise.
19480         (builtin_function_type): Likewise.
19481
19482 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
19483
19484         * config/sh/sh.c (sh_media_init_builtins): Call
19485         build_function_type_list instead of build_function_type.
19486
19487 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
19488
19489         * config/sparc/sparc.c (sparc_file_end): Call
19490         build_function_type_list instead of build_function_type.
19491
19492 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
19493
19494         * config/alpha/alpha.c (alpha_init_builtins): Call
19495         build_function_type_list instead of build_function_type.
19496
19497 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
19498
19499         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
19500         build_function_type_list instead of build_function_type.
19501
19502 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
19503
19504         * config/iq2000/i2000.c (iq2000_init_builtins): Call
19505         build_function_type_list instead of build_function_type.
19506         Delete `endlink' variable.
19507
19508 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
19509
19510         * config/avr/avr.c (avr_init_builtins): Call
19511         build_function_type_list instead of build_function_type.
19512
19513 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
19514
19515         * config/picochip/picochip.c (picochip_init_builtins): Call
19516         build_function_type_list instead of build_function_type.
19517         Delete `endlink' variable.
19518
19519 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
19520
19521         * config/bfin/bfin.c (bfin_init_builtins): Call
19522         build_function_type_list instead of build_function_type.
19523
19524 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
19525
19526         From Bernd Schmidt
19527         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
19528         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
19529
19530 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
19531
19532         From Jie Zhang:
19533         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
19534         libbffastfp overrides libgcc when -mfast-fp.
19535
19536 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
19537
19538         Originally from Bernd Schmidt
19539         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
19540         * config/bfin/bfin.c (override_options): Test it and error if
19541         TARGET_FDPIC.
19542
19543 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
19544
19545         Originally From Bernd Schmidt
19546         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
19547         FD-PIC.
19548
19549 2011-05-03  Jeff Law  <law@redhat.com>
19550
19551         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
19552         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
19553         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
19554         than accessing AUX field directly.  Free the AUX field before
19555         clearing it.
19556         (thread_block, thread_through_loop_header): Likewise.
19557         (thread_single_edge, mark_threaded_blocks): Likewise.
19558         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
19559         (register_jump_thread): Do not attempt to thread to a NULL edge.
19560
19561 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
19562
19563         * function.c (init_function_start): Call decide_function_section.
19564         * varasm.c (decide_function_section): New function.
19565         (assemble_start_function): When not using
19566         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
19567         or first_function_block_is_cold.
19568         * rtl.h (decide_function_section): Declare.
19569
19570 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
19571             Jakub Jelinek  <jakub@redhat.com>
19572
19573         PR target/48774
19574         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
19575         only succeed if req_mode is the same as set_mode.
19576
19577 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
19578
19579         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
19580         * genemit.c (gen_exp): Handle RETURN.
19581         * emit-rtl.c (verify_rtx_sharing): Likewise.
19582         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
19583         * rtl.c (copy_rtx): RETURN is shared.
19584         * rtl.h (enum global_rtl_index): Add GR_RETURN.
19585         (ret_rtx): New.
19586         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
19587         * config/s390/s390.c (s390_emit_epilogue): Likewise.
19588         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
19589         * config/cris/cris.c (cris_expand_return): Likewise.
19590         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
19591         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
19592         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
19593         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
19594         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
19595         Likewise.
19596         * config/v850/v850.c (expand_epilogue): Likewise.
19597         * config/bfin/bfin.c (bfin_expand_call): Likewise.
19598         * config/arm/arm.md (epilogue): Likewise.
19599         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
19600         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
19601         variable to ret_reg.
19602
19603 2011-05-03  Richard Guenther  <rguenther@suse.de>
19604
19605         PR lto/48846
19606         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
19607         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
19608         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
19609
19610 2011-05-03  Richard Guenther  <rguenther@suse.de>
19611
19612         * c-decl.c (grokdeclarator): Instead of looking at
19613         TREE_OVERFLOW check if the constant fits in the index type.
19614
19615 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
19616
19617         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
19618         (vec_store_lanes<mode><mode>): Likewise.
19619
19620 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
19621
19622         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
19623         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
19624         convert_optab_index values.
19625         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
19626         * genopinit.c (optabs): Initialize the new optabs.
19627         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
19628         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
19629         (expand_STORE_LANES): New functions.
19630         * tree.h (build_array_type_nelts): Declare.
19631         * tree.c (build_array_type_nelts): New function.
19632         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
19633         (vect_model_load_cost): Likewise.
19634         (vect_store_lanes_supported, vect_load_lanes_supported)
19635         (vect_record_strided_load_vectors): Declare.
19636         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
19637         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
19638         (vect_transform_strided_load): Split out statement recording into...
19639         (vect_record_strided_load_vectors): ...this new function.
19640         * tree-vect-stmts.c (create_vector_array, read_vector_array)
19641         (write_vector_array, create_array_ref): New functions.
19642         (vect_model_store_cost): Add store_lanes_p argument.
19643         (vect_model_load_cost): Add load_lanes_p argument.
19644         (vectorizable_store): Try to use store-lanes functions for
19645         interleaved stores.
19646         (vectorizable_load): Likewise load-lanes and loads.
19647         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
19648         to vect_model_store_cost.
19649         (vect_build_slp_tree): Likewise vect_model_load_cost.
19650
19651 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
19652
19653         * hooks.h (hook_bool_mode_uhwi_false): Declare.
19654         * hooks.c (hook_bool_mode_uhwi_false): New function.
19655         * target.def (array_mode_supported_p): New hook.
19656         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
19657         * doc/tm.texi: Regenerate.
19658         * stor-layout.c (mode_for_array): New function.
19659         (layout_type): Use it.
19660         * config/arm/arm.c (arm_array_mode_supported_p): New function.
19661         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
19662
19663 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
19664
19665         PR target/48723
19666         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
19667         for -fstack-check if the size to allocate is negative.
19668
19669 2011-05-02  Lawrence Crowl  <crowl@google.com>
19670
19671         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
19672         (timevar_cond_start): New for starting a timer only when it is not
19673         already running.
19674         (timevar_cond_stop): New for stopping a timer when it was not already
19675         running.
19676
19677         * timevar.c (timevar_stop): Enable start/stop timers to start again.
19678         (timevar_cond_start): New as above.
19679         (timevar_cond_stop): New as above.
19680
19681         * timevar.def: Add start/stop timers for compiler phases,
19682         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
19683         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
19684         and TV_PHASE_FINALIZE.
19685         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
19686         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
19687         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
19688         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
19689         Make unused TV_OVERLOAD into a start/stop timer.
19690
19691         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
19692         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
19693         to indicate that they are start/stop timers.
19694
19695         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
19696         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
19697         Move initialization to do_compile.
19698         (do_compile): Add initialization from above.
19699         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
19700
19701         * c-decl.c (c_write_global_declarations): Add start/stop of
19702         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
19703
19704         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
19705         or TV_PARSE_INLINE, as appropriate.
19706         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
19707         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
19708
19709 2011-05-02  Jason Merrill  <jason@redhat.com>
19710
19711         PR c++/40975
19712         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
19713
19714 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
19715
19716         PR c/35445
19717         * c-decl.c (finish_decl): Only create a composite if the types are
19718         compatible.
19719
19720 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
19721
19722         * config/fr30/fr30-protos.h (Mmode): Don't define.
19723         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
19724         definition where used.
19725         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
19726         define.  Expand definitions where used.
19727         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
19728         Expand definitions where used.
19729         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
19730         rx_function_arg, rx_function_arg_advance,
19731         rx_function_arg_boundary): Expand definitions of those macros.
19732         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
19733         definition where used.
19734
19735 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
19736
19737         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
19738         reg<->xmm moves.
19739         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
19740         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
19741         with *movv2sf_internal_rex64_avx.
19742         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
19743         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
19744         Use %v prefix in insn mnemonic to handle TARGET_AVX.
19745         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
19746         "vex" in "prefix" attribute calculation.
19747         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
19748
19749 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
19750
19751         PR target/47951
19752         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
19753         inputs match the output.
19754
19755 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
19756
19757         PR target/47955
19758         * config/m68k/m68k.c (m68k_expand_prologue): Set
19759         current_function_static_stack_size.
19760
19761 2011-05-02   Jan Hubicka  <jh@suse.cz>
19762
19763         * lto-streamer.c (lto_streamer_cache_insert_1,
19764         lto_streamer_cache_lookup, lto_streamer_cache_create,
19765         lto_streamer_cache_delete): Use pointer map instead of hashtable.
19766         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
19767
19768 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
19769
19770         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
19771         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
19772         config/m68k/t-opts: New files.
19773         * config/m68k/m68k-tables.opt: New file (generated).
19774         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
19775         extra_options and m68k/t-opts to tmake_file.
19776         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
19777         (all_isas): Initialize using m68k-isas.def.
19778         (all_microarchs): Initialize using m68k-microarchs.def.
19779         (m68k_find_selection): Remove.
19780         (m68k_handle_option): Don't assert that global structures are in
19781         use.  Use error_at.  Access variables via opts pointer.  Don't
19782         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
19783         directly for -m68020-40 and -m68020-60.
19784         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
19785         m68k_tune_entry here.
19786         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
19787         to m68k-opts.h.
19788         (m68k_library_id_string): Remove declaration.
19789         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
19790         (m68k_library_id_string): New Variable.
19791         (march=, mcpu=, mtune=): Use Enum and Var.
19792
19793 2011-05-02  Richard Guenther  <rguenther@suse.de>
19794
19795         * varasm.c (output_constructor_regular_field): Compute zero-based
19796         index with double-ints.  Make sure to ICE instead of producing
19797         wrong code.
19798         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
19799         in asserts.  Properly use a signed type.
19800
19801 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
19802
19803         * config/i386/sse.md (V): New mode iterator.
19804         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
19805         TARGET_SSE2.
19806         (V_256): Rename from AVX256MODE.
19807         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
19808         condition to all users.
19809         (VF1): Ditto.
19810         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
19811         condition to all users.
19812         (VF_128): Make V4SF mode unconditional.
19813         (VF_256): Rename from AVX256MODEF2P.
19814         (VI4F_128): Rename from SSEMODE4S.
19815         (VI8F_128): Rename from SSEMODE2D.
19816         (VI4F_256): Rename from AVX256MODE8P.
19817         (VI8F_256): Rename from AVX256MODE4P.
19818         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
19819         (ssescalarmodesuffix): Remove SF and DF modes.
19820         (SSEMODE124): Remove.
19821         (SSEMODE1248): Ditto.
19822         (SSEMODEF2P): Ditto.
19823         (AVXMODEF2P): Ditto.
19824         (AVXMODEFDP): Ditto.
19825         (AVXMODEFSP): Ditto.
19826         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
19827         unconditional.
19828         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
19829         unconditional.
19830         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
19831         xop_pcmov_<mode>256.  Use V mode iterator.
19832
19833         Adjust RTX patterns globally for renamed mode attributes.
19834
19835 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19836
19837         * haifa-sched.c (sched_emit_insn): Emit insn before first
19838         non-scheduled insn.  Inform back-end about new insn.  Add
19839         new insn to scheduled_insns list.
19840
19841 2011-05-02  Richard Guenther  <rguenther@suse.de>
19842
19843         PR tree-optimization/48822
19844         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
19845         (process_scc): Indicate which iteration we start.
19846
19847 2011-05-02  Jan Hubicka  <jh@suse.cz>
19848
19849         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
19850         (lto_section_overrun): New.
19851         * lto-section-out.c (append_block): Rename to ...
19852         (lto_append_block): ... this one; export.
19853         (lto_output_1_stream): Move lto lto-streamer.h
19854         (lto_output_data_stream): Update.
19855         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
19856         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
19857         functions.
19858
19859 2011-05-02  Richard Guenther  <rguenther@suse.de>
19860
19861         * tree.c (tree_code_counts): New global array.
19862         (record_node_allocation_statistics): Count individual tree codes.
19863         (dump_tree_statistics): Dump individual code stats.
19864
19865 2011-05-01  Jan Hubicka  <jh@suse.cz>
19866
19867         * ipa-inline.c (caller_growth_limits): Fix thinko when
19868         looking for largest stack frame.
19869         * ipa-inline.h (dump_inline_summary): Declare.
19870         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
19871         on stack usage.
19872         (dump_inline_summary): Export.
19873         (debug_inline_summary): Declare as DEBUG_FUNCTION.
19874
19875 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
19876
19877         * reginfo.c (memory_move_cost): Change rclass argument type form
19878         'enum reg_class' to reg_class_t.
19879         * reload.h (memory_move_cost): Update prototype.
19880         * postreload.c reload_cse_simplify_set): Change type dclass var to
19881         reg_class_t.
19882         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
19883         Update prototype.
19884         (ira_allocate_and_set_costs): Change aclass argument type form
19885         'enum reg_class' to reg_class_t.
19886         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
19887         Change aclass argument type to reg_class_t.
19888         (update_conflict_hard_reg_costs): Change type aclass and pref vars
19889         to reg_class_t.
19890         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
19891         memory_move_cost call.
19892
19893         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
19894         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
19895         Change type tmp var to reg_class_t.
19896
19897 2011-04-30  Jan Hubicka  <jh@suse.cz>
19898
19899         * ipa-inline.c (can_inline_edge_p): Disregard limits when
19900         inlining into function with flatten attribute.
19901         (want_inline_small_function_p): Be more realistic about inlining
19902         cold calls where callee size grows.
19903
19904 2011-04-30  Jan Hubicka  <jh@suse.cz>
19905
19906         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
19907         flags.
19908
19909 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
19910
19911         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
19912         PRINT_OPERAND_PUNCT_VALID_P): Remove.
19913         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
19914         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
19915         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
19916         (print_operand): Rename to...
19917         (sparc_print_operand): ...this. Make static. Adjust
19918         sparc_print_operand function call.
19919         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
19920         functions.
19921
19922 2011-04-30  Jan Hubicka  <jh@suse.cz>
19923
19924         PR middle-end/48752
19925         * ipa-inline.c (early_inliner): Disable when doing late
19926         addition of function.
19927
19928 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
19929
19930         * dwarf2out.c (get_address_mode): New inline.
19931         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
19932         if not dwarf_strict emit
19933         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
19934         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
19935         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
19936         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
19937         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
19938         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
19939         mem_loc_descriptor callers.
19940         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
19941         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
19942         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
19943         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
19944         (base_types): New variable.
19945         (get_base_type_offset, calc_base_type_die_sizes,
19946         base_type_for_mode, mark_base_types, base_type_cmp,
19947         move_marked_base_types): New functions.
19948         (calc_die_sizes): Assert that die_offset is 0 or equal to
19949         next_die_offset.
19950         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
19951         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
19952         callers.  If not dwarf_strict, call mem_loc_descriptor even for
19953         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
19954         (gen_subprogram_die): Don't give up on call site parameters
19955         with non-integral or large integral modes.  Adjust
19956         mem_loc_descriptor callers.
19957         (prune_unused_types): Call prune_unused_types_mark on base_types
19958         vector entries.
19959         (resolve_addr): Call mark_base_types.
19960         (dwarf2out_finish): Call move_marked_base_types.
19961
19962         PR tree-optimization/48809
19963         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
19964         type.
19965         (gen_inbound_check): Don't compute index_expr - range_min in utype
19966         again, instead reuse SSA_NAME initialized in build_arrays.
19967         Remove two useless gsi_for_stmt calls.
19968
19969 2011-04-29  Jeff Law  <law@redhat.com>
19970
19971         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
19972
19973 2011-04-29  Martin Jambor  <mjambor@suse.cz>
19974
19975         * cgraph.h (cgraph_postorder): Remove declaration.
19976         * ipa-utils.h (ipa_free_postorder_info): Declare.
19977         (ipa_reverse_postorder): Likewise.
19978         * cgraphunit.c: Include ipa-utils.h.
19979         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
19980         * ipa-inline.c: Include ipa-utils.h.
19981         (ipa_inline): Update call to ipa_reverse_postorder.
19982         * ipa-pure-const.c (propagate_pure_const): Update call to
19983         ipa_reduced_postorder and ipa_print_order.  Call
19984         ipa_free_postorder_info to clean up.
19985         (propagate_nothrow): Likewise.
19986         * ipa-reference.c (propagate): Removed a useless call to
19987         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
19988         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
19989         * ipa.c: Include ipa-utils.h.
19990         (ipa_profile): Update call to ipa_reverse_postorder.
19991         (cgraph_postorder): Moved to...
19992         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
19993         (ipa_utils_print_order): Renamed to ipa_print_order.
19994         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
19995         comments.
19996         (ipa_free_postorder_info): New function.
19997         * passes.c: Include ipa-utils.h.
19998         (do_per_function_toporder): Update call to ipa_reverse_postorder.
19999         (ipa_write_summaries): Likewise.
20000         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
20001         (cgraphunit.o): Likewise.
20002         (ipa.o): Likewise.
20003         (ipa-inline.o): Likewise.
20004
20005 2011-04-29  Jan Hubicka  <jh@suse.cz>
20006
20007         * ipa-inline.h (clause_t): Turn into unsigned int.
20008         * ipa-inline-analysis.c (add_clause): Do more simplification.
20009         (and_predicates): Shortcut more cases.
20010         (predicates_equal_p): Move forward; check that clauses are properly
20011         ordered.
20012         (or_predicates): Shortcut more cases.
20013         (edge_execution_predicate): Rewrite as...
20014         (set_cond_stmt_execution_predicate): ... this function; handle
20015         __builtin_constant_p.
20016         (set_switch_stmt_execution_predicate): New .
20017         (compute_bb_predicates): New.
20018         (will_be_nonconstant_predicate): Update TODO.
20019         (estimate_function_body_sizes): Use compute_bb_predicates
20020         and free them later, always try to estimate if stmt is constant.
20021         (estimate_time_after_inlining, estimate_size_after_inlining):
20022         Gracefully handle optimized out edges.
20023         (read_predicate): Fix off by one error.
20024
20025 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
20026
20027         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
20028
20029 2011-04-27  Xinliang David Li  <davidxl@google.com>
20030
20031         * tree-profile.c (init_ic_make_global_vars): Set
20032         tls attribute on ic vars.
20033         * coverage.c (coverage_end_function): Initialize
20034         function_list with zero.
20035
20036 2011-04-29  Richard Guenther  <rguenther@suse.de>
20037
20038         * builtins.c (fold_builtin_classify_type): Use integer_type_node
20039         for the type of the result.
20040         (fold_builtin_isascii): Likewise.
20041         (fold_builtin_toascii): Use integer_type_node where appropriate.
20042         (fold_builtin_logb): Likewise.
20043         (fold_builtin_frexp): Likewise.
20044         (fold_builtin_strstr): Likewise.
20045         (fold_builtin_strpbrk): Likewise.
20046         (fold_builtin_fputs): Likewise.
20047         (fold_builtin_sprintf): Likewise.
20048         (fold_builtin_snprintf): Likewise.
20049         (fold_builtin_printf): Likewise.
20050         (do_mpfr_remquo): Use a proper type for the assigned constant.
20051         (do_mpfr_lgamma_r): Likewise.
20052         * dwarf2out.c (resolve_one_addr): Use size_int.
20053         * except.c (init_eh): Likewise.
20054         (assign_filter_values): Use integer_type_node for filter values.
20055         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
20056         indices.
20057         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
20058         for EH region numbers.
20059         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
20060         for the shift amount.
20061
20062 2011-04-29  Richard Guenther  <rguenther@suse.de>
20063
20064         * expr.h (expand_shift): Rename to ...
20065         (expand_variable_shift): ... this.
20066         (expand_shift): Take a constant shift amount.
20067         * expmed.c (expand_shift): Rename to ...
20068         (expand_variable_shift): ... this.
20069         (expand_shift): New wrapper around expand_variable_shift.
20070         * expr.c (convert_move, emit_group_load_1, emit_group_store,
20071         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
20072         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
20073         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
20074         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
20075         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
20076         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
20077         emit_store_flag_1, emit_store_flag): Likewise.
20078         * builtins.c (expand_builtin_signbit): Likewise.
20079         * calls.c (load_register_parameters): Likewise.
20080         * function.c (assign_parm_setup_block): Likewise.
20081         * lower-subreg.c (resolve_shift_zext): Likewise.
20082         * optabs.c (widen_bswap, expand_abs_nojump,
20083         expand_one_cmpl_abs_nojump, expand_float): Likewise.
20084         * spu/spu.c (spu_expand_extv): Likewise.
20085         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
20086
20087 2011-04-29  Richard Guenther  <rguenther@suse.de>
20088
20089         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
20090         for the remapped region number.
20091         * predict.c (build_predict_expr): Use integer_type_node for the
20092         predict kind.
20093         * fold-const.c (fold_binary_loc): Use integer_type_node for
20094         the shift amount.  Use a proper type for the PLUS_EXPR operand.
20095
20096 2011-04-29  Michael Matz  <matz@suse.de>
20097
20098         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
20099         other trees that just builtins.
20100         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
20101
20102 2011-04-29  Richard Guenther  <rguenther@suse.de>
20103
20104         * tree-nested.c (get_trampoline_type): Use size_int.
20105         (get_nl_goto_field): Likewise.
20106         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
20107         for all indexes.
20108         (lower_eh_constructs_2): Likewise.
20109         (lower_resx): Likewise.
20110         (lower_eh_dispatch): Likewise.
20111         * tree-mudflap.c (mf_build_string): Use size_int.
20112         (mudflap_register_call): Use integer_type_node for the flag.
20113         (mudflap_enqueue_constant): Use size_int.
20114         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
20115         instead of rebuilding it.
20116
20117 2011-04-29  Richard Guenther  <rguenther@suse.de>
20118
20119         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
20120         Handle OBJ_TYPE_REF.
20121         (find_func_aliases_for_call): Use it more consistently.
20122
20123 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
20124
20125         * haifa-sched.c (last_nondebug_scheduled_insn): New.
20126         (rank_for_schedule): Use it.
20127         (schedule_block): Set it.
20128
20129 2011-04-28  David Li  <davidxl@google.com>
20130
20131         * tree.c (crc32_string): Use crc32_byte.
20132         (crc32_byte): New function.
20133         * tree.h (crc32_byte): New function.
20134         * gcov.c (read_graph_file): Handle new cfg_cksum.
20135         (read_count_file): Ditto.
20136         * profile.c (instrument_values): Ditto.
20137         (get_exec_counts): Ditto.
20138         (read_profile_edge_counts): Ditto.
20139         (compute_branch_probabilities): Ditto.
20140         (compute_value_histograms): Ditto.
20141         (branch_prob): Ditto.
20142         (end_branch_prob): Ditto.
20143         * coverage.c (read_counts_file): Ditto.
20144         (get_coverage_counts): Ditto.
20145         (tree_coverage_counter_addr): Ditto.
20146         (coverage_checksum_string): Ditto.
20147         (coverage_begin_output): Ditto.
20148         (coverage_end_function): Ditto.
20149         (build_fn_info_type): Ditto.
20150         (build_fn_info_value): Ditto.
20151         * libgcov.c (gcov_exit): Ditto.
20152         * gcov-dump.c (tag_function): Ditto.
20153         (compute_checksum): Remove.
20154
20155 2011-04-29  Alan Modra  <amodra@gmail.com>
20156
20157         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
20158         unspec plus offset.  Tidy macho code.
20159
20160 2011-04-29  Martin Jambor  <mjambor@suse.cz>
20161
20162         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
20163         node instead of a decl.  Update all callers.
20164         * cgraph.h: Update declaration.
20165
20166 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
20167
20168         PR tree-optimization/48765
20169         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
20170         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
20171         to indicate if loop aware SLP is being used.  Scan the statements
20172         and update the vectorization factor according to the type of
20173         vectorization before statement analysis.
20174         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
20175         pass it to vect_analyze_loop_operations.
20176         (vectorizable_reduction): Set number of copies to 1 in case of pure
20177         SLP statement.
20178         * tree-vect-stmts.c (vectorizable_conversion,
20179         vectorizable_assignment, vectorizable_shift,
20180         vectorizable_operation, vectorizable_type_demotion,
20181         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
20182         Likewise.
20183         (vectorizable_condition): Move the check that it is not SLP
20184         vectorization before the number of copies check.
20185         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
20186         to vectorize the loop using SLP.
20187
20188 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
20189
20190         PR middle-end/48597
20191         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
20192         inline asm.
20193
20194 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
20195
20196         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
20197         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
20198         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
20199         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
20200         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
20201         linux*.h headers.
20202         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
20203         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
20204         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
20205         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
20206         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
20207         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
20208         REG_NAME.
20209         * config/i386/linux.h (REG_NAME): Don't define.
20210         * config/i386/linux64.h (REG_NAME): Don't define.
20211         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
20212         Undefine before defining.
20213
20214 2011-04-28  Jan Hubicka  <jh@suse.cz>
20215
20216         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
20217         nonconstant_names array.
20218         (estimate_function_body_sizes): Build nonconstant_names array; handle
20219         BUILT_IN_CONSTANT_P.
20220
20221 2011-04-28  Richard Guenther  <rguenther@suse.de>
20222
20223         PR bootstrap/48804
20224         Revert
20225         2011-04-28  Richard Guenther  <rguenther@suse.de>
20226
20227         * tree-ssa-structalias.c (solve_constraints): Build succ graph
20228         as late as possible.
20229
20230 2011-04-28  Richard Guenther  <rguenther@suse.de>
20231
20232         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
20233         (debug_constraint): Do it here.
20234         (dump_constraints): And here.
20235         (rewrite_constraints): And here.
20236         (dump_constraint_edge): Remove.
20237         (dump_constraint_graph): Rewrite to produce DOT output.
20238         (solve_constraints): Build succ graph as late as possible.
20239         Dump constraint graphs before and after solving.
20240
20241 2011-04-28  Richard Guenther  <rguenther@suse.de>
20242
20243         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
20244         New function split out from ...
20245         (find_func_aliases): ... here.  Call it.
20246         (find_func_aliases_for_call): Likewise.
20247
20248 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
20249
20250         * internal-fn.h (internal_fn_name_array): Declare.
20251         (internal_fn_flags_array): Likewise.
20252
20253 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
20254
20255         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
20256         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
20257         Move from sse.md.
20258         (ssemodefsuffix): Remove.
20259         (ssevecmodesuffix): New mode attribute.
20260         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
20261         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
20262         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
20263         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
20264         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
20265         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
20266         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
20267         ssemodesuffix mode attribute.
20268         (float splitters): Use ssevecmodesuffix mode attribute.
20269         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
20270         (sseinsmode): Rename from avxvecmode.
20271         (avxsizesuffix): Rename from avxmodesuffix.
20272         (sseintvecmode): Rename from avxpermvecmode.
20273         (ssedoublevecmode): Rename from ssedoublesizemode.
20274         (ssehalfvecmode): Rename from avxhalfvecmode.
20275         (ssescalarmode): Rename from avxscalarmode.
20276         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
20277         templates for ssemodesuffix mode attribute.
20278         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
20279         mode attribute.
20280
20281         Adjust RTX patterns globally for renamed mode attributes.
20282
20283 2011-04-27  Jan Hubcika  <jh@suse.cz>
20284
20285         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
20286         * ipa-inline-analysis.c: Include alloc-pool.h.
20287         (edge_predicate_pool): New.
20288         (trye_predicate_p): New function
20289         (false_predicate_p): New function.
20290         (add_clause): Sanity check that false clauses are "optimized";
20291         never add clauses to predicate that is already known to be false.
20292         (and_predicate): Use flase_predicate_p.
20293         (evaulate_predicate): Rename to ...
20294         (evaluate_predicate): ... this one; update all callers; assert
20295         that false is not listed among possible truths.
20296         (dump_predicate): Use true_predicate_p.
20297         (account_size_time): Use false_predicate_p.
20298         (evaulate_conditions_for_edge): Rename to ...
20299         (evaluate_conditions_for_edge) ... this one.
20300         (edge_set_predicate): New function.
20301         (inline_edge_duplication_hook): Duplicate edge predicates.
20302         (inline_edge_removal_hook): Free edge predicates.
20303         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
20304         (dump_inline_summary): Update.
20305         (estimate_function_body_sizes): Set edge predicates.
20306         (estimate_calls_size_and_time): Handle predicates.
20307         (estimate_callee_size_and_time): Update.
20308         (remap_predicate): Add toplev_predicate; update comment.
20309         (remap_edge_predicates): New function.
20310         (inline_merge_summary): Compute toplev predicate; update.
20311         (read_predicate): New function.
20312         (read_inline_edge_summary): Use it.
20313         (inline_read_section): Likewise.
20314         (write_predicate): New function.
20315         (write_inline_edge_summary): Use it.
20316         (inline_write_summary): Likewise.
20317         (inline_free_summary): Free alloc pool and edge summary vec.
20318
20319 2011-04-27  Richard Guenther  <rguenther@suse.de>
20320
20321         * tree-ssa-structalias.c (changed_count): Remove.
20322         (changed): Use a bitmap.
20323         (unify_nodes): Adjust.
20324         (do_sd_constraint): Likewise.
20325         (do_ds_constraint): Likewise.
20326         (do_complex_constraint): Likewise.
20327         (solve_graph): Likewise.
20328
20329 2011-04-27  Jan Hubicka  <jh@suse.cz>
20330
20331         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
20332
20333 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
20334
20335         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
20336         (avx_vperm2f128_*_operand): Ditto.
20337         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
20338         Use avx_vpermilp_parallel in insn condition.
20339         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
20340         Use avx_vperm2f128_parallel in insn condition.
20341
20342 2011-04-27  Richard Guenther  <rguenther@suse.de>
20343
20344         * Makefile.in (tree-ssa-structalias.o): Remove
20345         gt-tree-ssa-structalias.h dependency.
20346         (GTFILES): Remove tree-ssa-structalias.c.
20347         * tree.c (allocate_decl_uid): New function.
20348         (make_node_stat): Use it.
20349         (copy_node_stat): Likewise.
20350         * tree.h (allocate_decl_uid): Declare.
20351         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
20352         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
20353         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
20354         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
20355         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
20356         (struct heapvar_map): Likewise.
20357         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
20358         heapvar_insert): Likewise.
20359         (make_heapvar_for): Rename to ...
20360         (make_heapvar): ... this.  Simplify.
20361         (fake_var_decl_obstack): New global var.
20362         (build_fake_var_decl): New function.
20363         (make_constraint_from_heapvar): Adjust.
20364         (handle_lhs_call): Likewise.
20365         (create_function_info_for): Likewise.
20366         (intra_create_variable_infos): Likewise.
20367         (init_alias_vars): Allocate fake_var_decl_obstack.
20368         (init_alias_heapvars, delete_alias_heapvars): Remove.
20369         (compute_points_to_sets): Do not call init_alias_heapvars.
20370         (ipa_pta_execute): Likewise.
20371         (delete_points_to_sets): Free fake_var_decl_obstack.
20372
20373 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20374
20375         * config/spu/divmovti4.c (union qword_UTItype): New data type.
20376         (si_from_UTItype, si_to_UTItype): New functions.
20377         (__udivmodti4): Use them to implement type-punning.
20378         * config/spu/multi3.c (union qword_TItype): New data type.
20379         (si_from_TItype, si_to_TItype): New functions.
20380         (__multi3): Use them to implement type-punning.
20381
20382 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20383
20384         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
20385
20386 2011-04-27  Jan Hubicka  <jh@suse.cz>
20387
20388         * ipa-prop.c (function_insertion_hook_holder): New holder.
20389         (ipa_add_new_function): New function.
20390         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
20391         Register/deregister holder.
20392
20393 2011-04-27  Richard Guenther  <rguenther@suse.de>
20394
20395         PR tree-optimization/48772
20396         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
20397
20398 2011-04-27  Richard Guenther  <rguenther@suse.de>
20399
20400         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
20401         TARGET_MEM_REF handling.
20402
20403 2011-04-27  Nick Clifton  <nickc@redhat.com>
20404
20405         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
20406         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
20407         (REG_CLASS_NAMES): Likewise.
20408         (REG_CLASS_CONTENTS): Likewise.
20409         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
20410         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
20411         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
20412         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
20413         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
20414         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
20415         duplicate register classes.
20416         (frv_class_likely_spilled_p): Likewise.
20417         (frv_register_move_cost): Likewise.
20418
20419         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
20420         end of the regno_reg_class array.
20421
20422 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
20423
20424         PR c/48742
20425         * c-typeck.c (build_binary_op): Don't wrap arguments if
20426         int_operands is true.
20427
20428 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
20429
20430         PR target/48767
20431         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
20432         targetm.calls.must_pass_in_stack for void type.
20433
20434 2011-04-26  Jan Hubicka  <jh@suse.cz>
20435
20436         * cgraphbuild.c (build_cgraph_edges): Update call
20437         of cgraph_create_edge and cgraph_create_indirect_edge.
20438         * cgraph.c (cgraph_create_edge_including_clones,
20439         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
20440         cgraph_update_edges_for_call_stmt_node): Do not take nest
20441         argument; do not initialize call_stmt_size/time.
20442         (dump_cgraph_node): Do not dump nest.
20443         (cgraph_clone_edge): Do not take loop_nest argument;
20444         do not propagate it; do not clone call_stmt_size/time.
20445         (cgraph_clone_node): Likewise.
20446         (cgraph_create_virtual_clone): Update.
20447         * cgraph.h (struct cgraph_edge): Remove
20448         call_stmt_size/call_stmt_time/loop_nest.
20449         (cgraph_create_edge, cgraph_create_indirect_edge,
20450         cgraph_create_edge_including_clones, cgraph_clone_node): Update
20451         prototype.
20452         * tree-emutls.c (gen_emutls_addr): Update.
20453         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
20454         loop_nest; handle indirect calls, too.
20455         (clone_inlined_nodes): Do not care about updating inline summaries.
20456         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
20457         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
20458         stream call_stmt_size/call_stmt_time/loop_nest.
20459         * ipa-inline.c (edge_badness): Update.
20460         (ipa_inline): dump summaries after inlining.
20461         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
20462         New.
20463         (inline_edge_summary): New function.
20464         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
20465         (inline_edge_removal_hook): Handle edge summaries.
20466         (inline_edge_duplication_hook): New hook.
20467         (inline_summary_alloc): Alloc hooks.
20468         (initialize_growth_caches): Do not register removal hooks.
20469         (free_growth_caches); Do not free removal hook.
20470         (dump_inline_edge_summary): New function.
20471         (dump_inline_summary): Use it.
20472         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
20473         (inline_update_callee_summaries): New function.
20474         (inline_merge_summary): Use it.
20475         (do_estimate_edge_time, do_estimate_edge_growth): Update.
20476         (read_inline_edge_summary): New function.
20477         (inline_read_section): Use it.
20478         (write_inline_edge_summary): New function.
20479         (inline_write_summary): Use it.
20480         (inline_free_summary): Free edge new holders.
20481         * tree-inline.c (copy_bb): Update.
20482
20483 2011-04-26  Jason Merrill  <jason@redhat.com>
20484
20485         * tree-eh.c (lower_try_finally_switch): Create the label along with
20486         the CASE_LABEL_EXPR.
20487
20488 2011-04-26  David S. Miller  <davem@davemloft.net>
20489             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20490
20491         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
20492         * configure: Regenerate.
20493
20494 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
20495
20496         PR target/48258
20497         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
20498         reduction.
20499         (VEC_reduc): New code iterator and splitters for vector reduction.
20500         (VEC_reduc_name): Ditto.
20501         (VEC_reduc_rtx): Ditto.
20502         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
20503         (reduc_<VEC_reduc_name>_v4sf): Ditto.
20504
20505         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
20506         support for extracting SF on VSX.
20507
20508         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
20509         generating xscvspdp.
20510         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
20511         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
20512         double add, minimum, maximum vector reduction.
20513         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
20514         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
20515         optimize double vector reduction.
20516         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
20517
20518 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
20519
20520         * config/fr30/fr30.h (inhibit_libc): Don't define.
20521         * config/m32r/m32r-protos.h: Correct comment.
20522         * config/v850/v850.h (GHS_default_section_names,
20523         GHS_current_section_names): Use tree, not union tree_node *.
20524
20525 2011-04-26  Xinliang David Li  <davidxl@google.com>
20526
20527         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
20528         * c-family/c-opts.c (c_common_handle_option): Set
20529         warn_maybe_uninitialized.
20530         * opts.c (common_handle_option): Ditto.
20531         * common.opt:  New option.
20532         * tree-ssa.c (warn_uninit): Add one more parameter.
20533         (warn_uninitialized_var): Pass warning code.
20534         * tree-flow.h: Interface change.
20535
20536 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20537
20538         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
20539         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
20540         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
20541
20542 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20543
20544         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
20545         * config/mips/mips.opt (mmips-tfile): Remove.
20546
20547         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
20548         mips-tdump reference to ...
20549         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
20550         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
20551         reference by Tru64 UNIX.
20552
20553 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
20554
20555         PR debug/48768
20556         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
20557         is error_mark_node, set value to NULL.
20558
20559         PR tree-optimization/48734
20560         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
20561         if return value from maybe_fold_*_comparsions isn't something
20562         the code is prepared to handle.
20563
20564 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
20565
20566         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
20567         mode check.
20568         (ext_QIreg_nomode_operands): Remove.
20569         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
20570         (*andsi_1): Ditto.
20571         (*andhi_1): Ditto.
20572
20573 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
20574
20575         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
20576
20577 2011-04-26  Richard Guenther  <rguenther@suse.de>
20578
20579         * c-typeck.c (build_unary_op): Do not expand array-refs via
20580         pointer arithmetic.  Only adjust qualifiers for function types.
20581
20582 2011-04-26  Richard Guenther  <rguenther@suse.de>
20583
20584         PR middle-end/48694
20585         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
20586         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
20587         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
20588         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
20589
20590 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
20591
20592         * doc/extend.texi: Document __underlying_type.
20593
20594 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
20595
20596         * config/rs6000/titan.md (automata_option "progress"): Remove.
20597
20598 2011-04-25  Jeff Law  <law@redhat.com>
20599
20600         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
20601
20602 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
20603
20604         * system.h (ENUM_BITFIELD): Remove.
20605
20606 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
20607             Eric Botcazou  <ebotcazou@adacore.com>
20608
20609         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
20610         for STORE_FLAG_VALUE==-1 case.
20611
20612 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
20613
20614         PR target/43804
20615         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
20616         LEGITIMATE_PIC_OPERAND_P.
20617
20618 2011-04-24  Jan Hubicka  <jh@suse.cz>
20619
20620         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
20621         WPA hack.
20622         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
20623         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
20624         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
20625         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
20626         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
20627         Sanity check predicate length.
20628         (remap_predicate): Likewise; sanity check jump functions.
20629         (inline_read_section, inline_write_summary): Sanity check
20630         predicate length.
20631
20632 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
20633
20634         PR other/48748
20635         * doc/extend.texi (Type Traits): Document __is_standard_layout,
20636         __is_literal_type, and __is_trivial; update throughout about
20637         possibly cv-qualified void types.
20638
20639 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
20640
20641         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
20642         testsuite and make it version agnostic.
20643
20644 2011-04-22  Jan Hubicka  <jh@suse.cz>
20645
20646         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
20647
20648 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
20649
20650         PR c/48685
20651         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
20652         to VOID_TYPE even around MODIFY_EXPR.
20653
20654 2011-04-22  Mike Stump  <mikestump@comcast.net>
20655
20656         * gensupport.c (read_md_rtx): Fix typo in comment.
20657         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
20658         comment.
20659
20660 2011-04-22  Jan Hubicka  <jh@suse.cz>
20661
20662         * gengtype.c (open_base_files): Add ipa-inline.h include.
20663         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
20664         ipa-prop.c; update all uses.
20665         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
20666         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
20667         merge summary of inlined function into former caller.
20668         * ipa-inline.c (max_benefit): Remove.
20669         (edge_badness): Compensate for removal of benefits.
20670         (update_caller_keys): Use
20671         reset_node_growth_cache/reset_edge_growth_cache.
20672         (update_callee_keys): Likewise.
20673         (update_all_callee_keys): Likewise.
20674         (inline_small_functions): Do not collect max_benefit; do not reset
20675         estimated_growth; call free_growth_caches and initialize_growth_caches.
20676         * ipa-inline.h (struct condition, type clause_t, struct predicate,
20677         struct size_time_entry): New structures.
20678         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
20679         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
20680         and estimated_growth.
20681         (edge_growth_cache_entry): New structure.
20682         (node_growth_cache, edge_growth_cache): New global vars.
20683         (estimate_growth): Turn into inline.
20684         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
20685         initialize_growth_caches, free_growth_caches): Declare.
20686         (estimate_edge_growth): Rewrite.
20687         (estimate_edge_time): Implement as inline cache lookup.
20688         (reset_node_growth_cache, reset_edge_growth_cache): New inline
20689         functions.
20690         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
20691         (NUM_CONDITIONS): New constant.
20692         (predicate_conditions): New enum.
20693         (IS_NOT_CONSTANT): New constant.
20694         (edge_removal_hook_holder): New var.
20695         (node_growth_cache, edge_growth_cache): New global vars.
20696         (true_predicate, single_cond_predicate, false_predicate,
20697         not_inlined_predicate, add_condition, add_clause, and_predicates,
20698         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
20699         dump_clause, dump_predicate, account_size_time,
20700         evaulate_conditions_for_edge): New functions.
20701         (inline_summary_alloc): Move to heap.
20702         (inline_node_removal_hook): Clear condition and entry vectors.
20703         (inline_edge_removal_hook): New function.
20704         (initialize_growth_caches, free_growth_caches): New function.
20705         (dump_inline_summary): Update.
20706         (edge_execution_predicate): New function.
20707         (will_be_nonconstant_predicate): New function.
20708         (estimate_function_body_sizes): Compute BB and constantness predicates.
20709         (compute_inline_parameters): Do not clear estimated_growth.
20710         (estimate_edge_size_and_time): New function.
20711         (estimate_calls_size_and_time): New function.
20712         (estimate_callee_size_and_time): New function.
20713         (remap_predicate): New function.
20714         (inline_merge_summary): New function.
20715         (do_estimate_edge_time): New function based on...
20716         (estimate_edge_time): ... this one.
20717         (do_estimate_edge_growth): New function.
20718         (do_estimate_growth): New function based on....
20719         (estimate_growth): ... this one.
20720         (inline_analyze_function): Analyze after deciding on jump functions.
20721         (inline_read_section): New function.
20722         (inline_read_summary): Use it.
20723         (inline_write_summary): Write all the new data.
20724         * ipa-prop.c (ipa_get_param_decl_index): Export.
20725         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
20726         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
20727         Declare.
20728         (ipa_get_lattice): Move here from ipa-cp.c
20729         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
20730         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
20731         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
20732         cgraph_edge_inlinable_p): Remove.
20733         * cgraphunit.c: Include ipainline.h
20734         (cgraph_process_new_functions): Update call of
20735         compute_inline_parameters.
20736
20737 2011-04-22  Richard Guenther  <rguenther@suse.de>
20738
20739         * tree.c (build_int_cst): Properly create canonicalized integer
20740         constants.
20741         (build_int_cst_type): Remove scary comments.
20742
20743 2011-04-22  Xinliang David Li  <davidxl@google.com>
20744
20745         * toplev.c (process_options): Enable -Werror=coverage-mismatch
20746         by default when -Wno-error is not specified.
20747         * opts-global.c (decode_options): Remove call to
20748         control_warning_options.
20749
20750 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
20751
20752         PR tree-optimization/48717
20753         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
20754         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
20755
20756 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
20757
20758         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
20759         definition where used.
20760
20761 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
20762
20763         PR c/48716
20764         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
20765         TREE_STATIC variables declared inside of some OpenMP construct.
20766
20767 2011-04-22  Martin Jambor  <mjambor@suse.cz>
20768
20769         PR middle-end/48585
20770         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
20771
20772 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
20773
20774         PR c/36750
20775         * c-typeck.c (pop_init_level): Do not warn about initializing
20776         with ` = {0}'.
20777
20778 2011-04-22  Alan Modra  <amodra@gmail.com>
20779
20780         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
20781         when returning call_cookie.
20782         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
20783         pointers, to functions with no more vector args than the current
20784         function, and some non-local calls for ABI_V4.
20785         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
20786         sibcall_nonlocal_aix64): Combine to ..
20787         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
20788         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
20789         (sibcall_value_nonlocal_aix<mode>): ..likewise.
20790         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
20791         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
20792         operand.
20793         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
20794         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
20795         sibcall_value_symbolic_64): Delete.
20796
20797 2011-04-21  Xinliang David Li  <davidxl@google.com>
20798
20799         * cgraph.h: Remove pid.
20800         * cgraph.c: Remove pid.
20801         * value-prof.c (init_node_map): New function.
20802         (del_node_map): New function.
20803         (find_func_by_funcdef_no): New function.
20804         (gimple_ic_transform): Call new function.
20805         * cgraphunit.c (cgraph_finalize_function): Remove pid.
20806         * function.c (get_last_funcdef_no): New function.
20807         * function.h (get_last_funcdef_no): New function.
20808         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
20809         to libgcov function.
20810         (tree-profiling): Call node map init and delete function.
20811
20812 2011-04-21  Ian Lance Taylor  <iant@google.com>
20813
20814         * godump.c (go_format_type): Use exported Go name for anonymous
20815         field name.
20816
20817 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
20818
20819         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
20820         Call builtin_function_type_list instead of builtin_function_type.
20821         (UNARY, BINARY, TRINARY, QUAD): Likewise.
20822
20823 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
20824
20825         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
20826         build_function_type_list instead of build_function_type.
20827         Delete variable `endlink'.
20828
20829 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
20830
20831         * config/s390/s390.c (s390_init_builtins): Call
20832         build_function_type_list instead of build_function_type.
20833
20834 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
20835
20836         * config/ia64/ia64.c (ia64_init_builtins): Call
20837         build_function_type_list instead of builtin_function_type.
20838
20839 2011-04-21  Easwaran Raman  <eraman@google.com>
20840
20841         * cfgexpand.c (stack_var): Remove OFFSET...
20842         (add_stack_var): ...and its reference here...
20843         (expand_stack_vars): ...and here.
20844         (stack_var_cmp): Sort by descending order of size.
20845         (partition_stack_vars): Change heuristic.
20846         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
20847         (dump_stack_var_partition): Add newline after each partition.
20848
20849 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
20850             Jeff Law  <law@redhat.com>
20851
20852         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
20853         * gengtype.c (matching_file_name_substitute): Likewise.
20854
20855 2011-04-21  Richard Guenther  <rguenther@suse.de>
20856
20857         PR lto/48703
20858         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
20859
20860 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
20861
20862         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
20863
20864 2011-04-21  Richard Guenther  <rguenther@suse.de>
20865
20866         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
20867         file name.
20868
20869 2011-04-21  Richard Guenther  <rguenther@suse.de>
20870
20871         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
20872         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
20873         Use DECL_P, not SSA_VAR_P.
20874         (ptr_derefs_may_alias_p): Likewise.
20875         (ptr_deref_may_alias_ref_p_1): Likewise.
20876         (decl_refs_may_alias_p): Likewise.
20877         (refs_may_alias_p_1): Likewise.
20878         (ref_maybe_used_by_call_p_1): Likewise.
20879         (call_may_clobber_ref_p_1): Likewise.
20880         (indirect_ref_may_alias_decl_p): Assume indirect refrences
20881         are either MEM_REF or TARGET_MEM_REF.
20882         (indirect_refs_may_alias_p): Likewise.
20883         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
20884         for MEM_EXPR of indirect calls.
20885
20886 2011-04-21  Tristan Gingold  <gingold@adacore.com>
20887
20888         * vmsdbgout.c (write_srccorr): Compute file length from the string.
20889         (dst_file_info_struct): Remove flen field.
20890         (lookup_filename): Remove code that set flen field.
20891
20892 2011-04-21  Tristan Gingold  <gingold@adacore.com>
20893
20894         * config/ia64/ia64.c (ia64_start_function): Add a guard.
20895
20896 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
20897
20898         PR target/48708
20899         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
20900         vec_extract and vec_concat for non-SSE4_1 targets.
20901
20902 2011-04-21  Richard Guenther  <rguenther@suse.de>
20903
20904         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
20905         return statements.
20906
20907 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
20908
20909         * config/i386/cygming.h (union tree_node, TREE): Don't define or
20910         undefine.
20911         (FILE): Don't undefine.
20912
20913 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
20914
20915         * config/alpha/alpha.c (struct machine_function): Use rtx, not
20916         struct rtx_def *.
20917         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
20918         struct rtx_def *.
20919         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
20920         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
20921         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
20922         rtx_def *.
20923         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
20924         definitions where used.
20925         * config/microblaze/microblaze.h (struct microblaze_args): Use
20926         rtx, not struct rtx_def *.
20927         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
20928         rtx_def *.
20929         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
20930         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
20931         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
20932         not struct rtx_def *.
20933         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
20934         struct rtx_def *.
20935         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
20936         rtx_def *.
20937         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
20938
20939 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
20940
20941         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
20942         operand_equal_p to compare DR_BASE_ADDRESSes.
20943         (vect_check_interleaving): Likewise.
20944
20945 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
20946
20947         PR target/46329
20948         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
20949         for all Neon struct constants.
20950
20951 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
20952
20953         * target.def (legitimate_constant_p): New hook.
20954         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
20955         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
20956         * doc/tm.texi: Regenerate.
20957         * hooks.h (hook_bool_mode_rtx_true): Declare.
20958         * hooks.c (hook_bool_mode_rtx_true): Define.
20959         * system.h (LEGITIMATE_CONSTANT_P): Poison.
20960         * calls.c (precompute_register_parameters): Replace uses of
20961         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
20962         (emit_library_call_value_1): Likewise.
20963         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
20964         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
20965         * ira-costs.c (scan_one_insn): Likewise.
20966         * recog.c (general_operand, immediate_operand): Likewise.
20967         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
20968         * reload1.c (init_eliminable_invariants): Likewise.
20969
20970         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
20971         mode argument.
20972         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
20973         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
20974         argument.
20975         (TARGET_LEGITIMATE_CONSTANT_P): Define.
20976         * config/alpha/predicates.md (input_operand): Update call to
20977         alpha_legitimate_constant_p.
20978
20979         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
20980         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
20981         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
20982         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
20983         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
20984         (arm_legitimate_constant_p): New functions.
20985         (arm_cannot_force_const_mem): Make static.
20986
20987         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
20988
20989         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
20990         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
20991         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
20992         instead of bfin_legitimate_constant_p.
20993         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
20994         (TARGET_LEGITIMATE_CONSTANT_P): Define.
20995
20996         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
20997
20998         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
20999
21000         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
21001         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
21002         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
21003         (frv_legitimate_constant_p): Make static.  Add a mode argument.
21004
21005         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
21006         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
21007         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
21008
21009         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
21010         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
21011         * config/i386/i386.c (legitimate_constant_p): Rename to...
21012         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
21013         argument.
21014         (ix86_cannot_force_const_mem): Update accordingly.
21015         (ix86_legitimate_address_p): Likewise.
21016         (TARGET_LEGITIMATE_CONSTANT_P): Define.
21017         * config/i386/i386.md: Update commentary.
21018
21019         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
21020         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
21021         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
21022         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
21023
21024         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
21025
21026         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
21027         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
21028         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
21029         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
21030
21031         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
21032         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
21033         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
21034
21035         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
21036         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
21037         (m32r_legitimate_constant_p): New function.
21038
21039         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
21040         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
21041         LEGITIMATE_CONSTANT_P.
21042         (LEGITIMATE_CONSTANT_P): Delete.
21043         * config/m68k/m68k.c (m68k_expand_prologue): Call
21044         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
21045         (m68k_legitimate_constant_p): New function.
21046         * config/m68k/m68k.md: Update comments.
21047
21048         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
21049         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
21050         (mcore_legitimate_constant_p): New function.
21051
21052         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
21053         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
21054         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
21055         Add a mode argument.
21056         (mep_legitimate_address): Update accordingly.
21057         (TARGET_LEGITIMATE_CONSTANT_P): Define.
21058
21059         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
21060         Delete.
21061         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
21062         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
21063         static.  Check OP's mode for VOIDmode.
21064         (microblaze_legitimate_constant_p): New function.
21065         (TARGET_LEGITIMATE_CONSTANT_P): Define.
21066
21067         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
21068         * config/mips/mips.c (mips_legitimate_constant_p): New function.
21069         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
21070         (TARGET_LEGITIMATE_CONSTANT_P): Define.
21071         * config/mips/predicates.md: Update comments.
21072
21073         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
21074         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
21075         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
21076         (mmix_legitimate_constant_p): Make static, return a bool, and take
21077         a mode argument.
21078         (mmix_print_operand_address): Update accordingly.
21079
21080         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
21081         Delete.
21082         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
21083         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
21084         static.  Add a mode argument.
21085         (TARGET_LEGITIMATE_CONSTANT_P): Define.
21086
21087         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
21088
21089         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
21090         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
21091         (pa_legitimate_constant_p): New function.
21092
21093         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
21094
21095         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
21096         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
21097         (pdp11_legitimate_constant_p): New function.
21098
21099         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
21100         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
21101         (rs6000_legitimate_constant_p): New function.
21102
21103         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
21104         (rx_legitimate_constant_p): ...this.
21105         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
21106         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
21107         (rx_legitimate_constant_p): ...this.
21108         (TARGET_LEGITIMATE_CONSTANT_P): Define.
21109         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
21110
21111         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
21112         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
21113         * config/s390/s390.c (legitimate_constant_p): Rename to...
21114         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
21115         and add a mode argument.
21116         (TARGET_LEGITIMATE_CONSTANT_P): Define.
21117
21118         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
21119
21120         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
21121         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
21122         (sh_legitimate_constant_p): New function.
21123
21124         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
21125         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
21126         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
21127         (legitimate_constant_p): Rename to...
21128         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
21129         argument.
21130         (constant_address_p): Update accordingly.
21131
21132         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
21133         argument and return a bool.
21134         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
21135         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
21136         (spu_legitimate_constant_p): Add a mode argument and return a bool.
21137         (spu_rtx_costs): Update accordingly.
21138         * config/spu/predicates.md (vec_imm_operand): Likewise.
21139
21140         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
21141
21142         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
21143         * config/v850/v850.c (v850_legitimate_constant_p): New function.
21144         (TARGET_LEGITIMATE_CONSTANT_P): Define.
21145
21146         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
21147         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
21148         * config/vax/vax.c (legitimate_constant_p): Likewise.
21149
21150         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
21151         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
21152         (xtensa_legitimate_constant_p): New function.
21153
21154 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
21155
21156         * target.def (cannot_force_const_mem): Add a mode argument.
21157         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
21158         * doc/tm.texi: Regenerate.
21159         * hooks.h (hook_bool_mode_rtx_false): Declare.
21160         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
21161         (hook_bool_mode_const_rtx_true): Likewise.
21162         (hook_bool_mode_rtx_false): New function.
21163         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
21164         to be non-VOID.  Update call to cannot_force_const_mem.
21165         (find_reloads): Update accordingly.
21166         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
21167         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
21168         argument.
21169         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
21170         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
21171         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
21172         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
21173         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
21174         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
21175         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
21176         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
21177         (m68k_cannot_force_const_mem): ...this new function.
21178         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
21179         argument.
21180         (mips_const_insns, mips_legitimize_const_move): Update calls.
21181         (mips_secondary_reload_class): Likewise.
21182         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
21183         (pa_cannot_force_const_mem): ...this new function.
21184         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
21185         (rs6000_cannot_force_const_mem): ...this new function.
21186         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
21187         argument.
21188         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
21189         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
21190         to...
21191         (xtensa_cannot_force_const_mem): ...this new function.
21192
21193 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
21194
21195         * config/mips/mips.c (mips16_build_function_stub): Call
21196         build_function_type_list instead of build_function_type.
21197         (mips16_build_call_stub): Likewise.
21198
21199 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
21200
21201         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
21202         instead of build_function_type.
21203
21204 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
21205
21206         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
21207         instead of build_function_type.
21208
21209 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
21210
21211         PR target/48678
21212         * config/i386/i386.md (insv): Change operand 0 constraint to
21213         "register_operand".  Change operand 1 and 2 constraint to
21214         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
21215         * config/i386/sse.md (sse4_1_pinsrb): Export.
21216         (sse2_pinsrw): Ditto.
21217         (sse4_1_pinsrd): Ditto.
21218         (sse4_1_pinsrq): Ditto.
21219         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
21220         * config/i386/i386.c (ix86_expand_pinsr): New.
21221
21222 2011-04-20  Easwaran Raman  <eraman@google.com>
21223
21224         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
21225         containing union type only with -fstrict-aliasing.
21226
21227 2011-04-20  Jim Meyering  <meyering@redhat.com>
21228
21229         Remove useless if-before-free tests.
21230         * calls.c (expand_call, save_area): Likewise.
21231         * cfgcleanup.c (try_forward_edges): Likewise.
21232         * collect2.c (collect_execute): Likewise.
21233         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
21234         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
21235         * coverage.c (coverage_checksum_string): Likewise.
21236         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
21237         * cselib.c (cselib_init): Likewise.
21238         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
21239         (df_set_clean_cfg): Likewise.
21240         * function.c (free_after_compilation): Likewise.
21241         * gcc.c (do_spec_1, main): Likewise.
21242         * gcov.c (create_file_names): Likewise.
21243         * gensupport.c (identify_predicable_attribute): Likewise.
21244         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
21245         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
21246         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
21247         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
21248         * ipa-pure-const.c (local_pure_const): Likewise.
21249         * ipa-reference.c (propagate): Likewise.
21250         * ira-costs.c (free_ira_costs): Likewise.
21251         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
21252         * matrix-reorg.c (mat_free): Likewise.
21253         * prefix.c (get_key_value): Likewise.
21254         * profile.c (compute_value_histograms): Likewise.
21255         * reload1.c (free_reg_equiv): Likewise.
21256         * sched-deps.c (free_deps): Likewise.
21257         * sel-sched-ir.c (fence_clear): Likewise.
21258         * sese.c (set_rename, if_region_set_false_region): Likewise.
21259         * tree-data-ref.c (free_rdg): Likewise.
21260         * tree-eh.c (lower_try_finally): Likewise.
21261         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
21262         * tree-ssa-live.c (delete_var_map): Likewise.
21263         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
21264         * tree-ssa-pre.c (phi_trans_add): Likewise.
21265
21266 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
21267
21268         PR tree-optimization/48611
21269         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
21270         beyond ERT_MUST_NOT_THROW region.
21271
21272 2011-04-20  Catherine Moore  <clm@codesourcery.com>
21273
21274         * config/mips/mips.opt (mfix-24k): New.
21275         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
21276         * config/mips/mips.md (length): Increase by 4 for stores if
21277         fixing 24K errata.
21278         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
21279         all noreorder if fixing 24K errata.
21280         * doc/invoke.texi: Document mfix-24k.
21281
21282 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
21283
21284         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
21285         quad-word modes, reduce to 9-bit index range when above 1016 limit.
21286
21287 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
21288
21289         * config/arm/arm.c (arm_gen_constant): Move movw support ....
21290         (const_ok_for_op): ... to here.
21291
21292 2011-04-20  Kai Tietz  <ktietz@redhat.com>
21293
21294         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
21295         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
21296
21297 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
21298
21299         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
21300
21301 2011-04-20  Richard Guenther  <rguenther@suse.de>
21302
21303         PR tree-optimization/47892
21304         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
21305         are if-convertible.
21306
21307 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
21308
21309         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
21310
21311 2011-04-20  Tristan Gingold  <gingold@adacore.com>
21312
21313         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
21314
21315 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
21316
21317         PR target/18145
21318
21319         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
21320         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
21321         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
21322         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
21323         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
21324
21325         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
21326         New prototype.
21327
21328         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
21329         (avr_asm_named_section, avr_asm_output_aligned_common,
21330         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
21331         New functions to update...
21332         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
21333         (avr_asm_init_sections): Overwrite section callbacks for
21334         data_section, bss_section.
21335         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
21336         from here to...
21337         (avr_file_end): ...here.
21338
21339 2011-04-20  Richard Guenther  <rguenther@suse.de>
21340
21341         PR middle-end/48695
21342         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
21343         objects and types here.  Adjust for their offset before comparing.
21344
21345 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
21346
21347         * tree-vect-stmts.c (vectorizable_store): Only chain one related
21348         statement per copy.
21349
21350 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
21351
21352         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
21353         (GIMPLE_H): Include $(INTERNAL_FN_H).
21354         (OBJS-common): Add internal-fn.o.
21355         (internal-fn.o): New rule.
21356         * internal-fn.def: New file.
21357         * internal-fn.h: Likewise.
21358         * internal-fn.c: Likewise.
21359         * gimple.h: Include internal-fn.h.
21360         (GF_CALL_INTERNAL): New gf_mask.
21361         (gimple_statement_call): Put fntype into a union with a new
21362         internal_fn field.
21363         (gimple_build_call_internal): Declare.
21364         (gimple_build_call_internal_vec): Likewise.
21365         (gimple_call_same_target_p): Likewise.
21366         (gimple_call_internal_p): New function.
21367         (gimple_call_internal_fn): Likewise.
21368         (gimple_call_fntype): Return null for internal calls.
21369         (gimple_call_set_fntype): Assert that the function is not internal.
21370         (gimple_call_set_fn): Likewise.
21371         (gimple_call_set_fndecl): Likewise.
21372         (gimple_call_set_internal_fn): New function.
21373         (gimple_call_addr_fndecl): Handle null functions.
21374         (gimple_call_return_type): Likewise null types.
21375         * gimple.c (gimple_build_call_internal_1): New function.
21376         (gimple_build_call_internal): Likewise.
21377         (gimple_build_call_internal_vec): Likewise.
21378         (gimple_call_same_target_p): Likewise.
21379         (gimple_call_flags): Handle calls to internal functions.
21380         (gimple_call_fnspec): New function.
21381         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
21382         (gimple_has_side_effects): Handle null functions.
21383         (gimple_rhs_has_side_effects): Likewise.
21384         (gimple_call_copy_skip_args): Handle calls to internal functions.
21385         * cfgexpand.c (expand_call_stmt): Likewise.
21386         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
21387         * gimple-fold.c (gimple_fold_call): Handle null functions.
21388         (gimple_fold_stmt_to_constant_1): Don't fold
21389         calls to internal functions.
21390         * gimple-low.c (gimple_check_call_args): Handle calls to internal
21391         functions.
21392         * gimple-pretty-print.c (dump_gimple_call): Likewise.
21393         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
21394         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
21395         (do_warn_unused_result): Likewise.
21396         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
21397         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
21398         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
21399         the target of a call.
21400         (initialize_hash_element): Update accordingly.
21401         (hashable_expr_equal_p): Use gimple_call_same_target_p.
21402         (iterative_hash_hashable_expr): Handle calls to internal functions.
21403         (print_expr_hash_elt): Likewise.
21404         * tree-ssa-pre.c (can_value_number_call): Likewise.
21405         (eliminate): Handle null functions.
21406         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
21407         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
21408         (find_func_aliases): Likewise.
21409         * value-prof.c (gimple_ic_transform): Likewise.
21410         (gimple_indirect_call_to_profile): Likewise.
21411         * lto-streamer-in.c (input_gimple_stmt): Likewise.
21412         * lto-streamer-out.c (output_gimple_stmt): Likewise.
21413
21414 2011-04-19  Jan Hubicka  <jh@suse.cz>
21415
21416         * ipa-inline-transform.c (save_inline_function_body): Add comments.
21417         * ipa-inline.c (inline_small_functions): Compute summaries first,
21418         populate heap later.
21419
21420 2011-04-19  Jan Hubicka  <jh@suse.cz>
21421
21422         * cgraph.h (save_inline_function_body): Remove.
21423         * ipa-inline-transform.c: New file, broke out of...
21424         * ipa-inline.c: ... this one; Update toplevel comment.
21425         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
21426         make global.
21427         (update_noncloned_frequencies): Move to ipa-inline-transform.c
21428         (cgraph_mark_inline_edge): Rename to inline_call; move to
21429         ipa-inline-transform.c.
21430         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
21431         move to ipa-inline-transform.c
21432         (recursive_inlining, inline_small_functions, flatten_function,
21433         ipa_inline, inline_always_inline_functions,
21434         early_inline_small_functions): Update.
21435         (inline_transform): Move to ipa-inline-transform.c.
21436         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
21437         Declare.
21438         * Makefile.in (ipa-inline-transform.o): New file.
21439         * cgraphunit.c (save_inline_function_body): Move to
21440         ipa-inline-transform.c
21441
21442 2011-04-19  DJ Delorie  <dj@redhat.com>
21443
21444         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
21445         registers if we already know there aren't any.
21446         (m32c_emit_epilogue): Don't emit a barrier here.
21447         (m32c_emit_eh_epilogue): Likewise.
21448         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
21449         operands at expand time.
21450         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
21451         int" wchar type.
21452         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
21453         duplicates.  Provide aliases instead.
21454         * config/m32c/prologue.md (eh_return): Emit a barrier here.
21455         (eh_epilogue): Add a "(return)" here as a hint to other parts of
21456         the compiler.
21457
21458 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
21459
21460         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
21461         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
21462         (general_or_i64_p, sparc_register_move_cost): New function.
21463
21464 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21465
21466         * doc/install.texi (Configuration, --enable-threads): Remove mach.
21467         Add lynx, mipssde.  Sort table.
21468
21469 2011-04-19  Xinliang David Li  <davidxl@google.com>
21470
21471         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
21472         not negative.
21473
21474 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
21475
21476         PR target/48678
21477         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
21478         is a SUBREG with non-MODE_INT mode inside of it.
21479
21480 2011-04-19  Martin Jambor  <mjambor@suse.cz>
21481
21482         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
21483         also according to actual contants.
21484         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
21485         (gimple_fold_call): Use it.
21486         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
21487
21488 2011-04-19  Martin Jambor  <mjambor@suse.cz>
21489
21490         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
21491         non-pointer assignments.
21492
21493 2011-04-19  Martin Jambor  <mjambor@suse.cz>
21494
21495         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
21496         account anc_offset and otr_type from the indirect edge info.
21497         * ipa-prop.c (get_ancestor_addr_info): New function.
21498         (compute_complex_ancestor_jump_func): Assignment analysis moved to
21499         get_ancestor_addr_info, call it.
21500         (ipa_note_param_call): Do not initialize information about polymorphic
21501         calls, return the indirect call graph edge.  Remove the last
21502         parameter, adjust all callers.
21503         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
21504         parameters.  Initialize polymorphic information in the indirect edge.
21505
21506 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
21507
21508         PR lto/48148
21509         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
21510         the types if they have different enumeration identifiers.
21511
21512 2011-04-19  Jan Hubicka  <jh@suse.cz>
21513
21514         * cgraph.h (cgraph_optimize_for_size_p): Declare.
21515         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
21516         * predict.c (cgraph_optimize_for_size_p): Break out from ...
21517         (optimize_function_for_size_p) ... here.
21518
21519 2011-04-19  Richard Guenther  <rguenther@suse.de>
21520
21521         PR lto/48207
21522         * tree.c (free_lang_data): Do not reset the decl-assembler-name
21523         langhook.
21524
21525 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
21526
21527         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
21528         if DECL_NO_INLINE_WARNING_P is set on the function.
21529
21530 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
21531
21532         PR fortran/47976
21533         * reload1.c (inc_for_reload): Return void. All callers changed.
21534         (emit_input_reload_insns): Don't try to delete previous output
21535         reloads to a register, or record spill_reg_store for autoincs.
21536
21537 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
21538
21539         * gengtype.h: Updated copyright year.
21540         (struct input_file_st): Add inpisplugin field.
21541         (type_fileloc): New function.
21542         * gengtype.c
21543         (write_typed_struct_alloc_def): Add gcc_assert.
21544         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
21545         (write_typed_alloc_defns): Don't output for plugin files.
21546         (input_file_by_name): Clear inpisplugin field.
21547         (main): Set inpisplugin field for plugin files.
21548
21549 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
21550
21551         * gengtype-state.c (string_eq): New.
21552         (read_state): Use string_eq instead of strcmp when creating the
21553         state_ident_tab.
21554
21555 2011-04-19  Wei Guozhi  <carrot@google.com>
21556
21557         PR target/47855
21558         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
21559         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
21560         linkage.
21561         * config/arm/constraints.md (Uu): New constraint.
21562         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
21563
21564 2011-04-19  Tristan Gingold  <gingold@adacore.com>
21565
21566         * config.gcc (-*-*-*vms): Added.
21567         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
21568         definitions moved.
21569         * config/vms/vms-ld.c: New file.
21570         * config/vms/vms-ar.c: New file.
21571         * config/vms/t-vmsnative: New file.
21572
21573 2011-04-18  Xinliang David Li  <davidxl@google.com>
21574
21575         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
21576
21577 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
21578
21579         PR middle-end/48661
21580         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
21581         if TREE_TYPE (v) is non-NULL.
21582
21583         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
21584         gimple_get_virt_mehtod_for_binfo.
21585         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
21586         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
21587         callers.
21588         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
21589
21590 2011-04-18  Michael Matz  <matz@suse.de>
21591             Steve Ellcey  <sje@cup.hp.com>
21592
21593         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
21594         use its mode as source mode if it isn't VOIDmode.
21595
21596 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
21597
21598         * doc/passes.texi: Fill crossref nodes.
21599
21600 2011-04-18  Jim Meyering  <meyering@redhat.com>
21601
21602         Fix doubled-word typos in comments and strings
21603         * config/alpha/vms-unwind.h: s/for for/for/
21604         * config/arm/unwind-arm.h: Likewise.
21605         * config/microblaze/microblaze.c: Likewise.
21606         * config/sh/constraints.md: s/in in/in/
21607         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
21608
21609 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
21610
21611         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
21612         (AVX_FLOAT_MODE_P): Ditto.
21613         (AVX128_VEC_FLOAT_MODE_P): Ditto.
21614         (AVX256_VEC_FLOAT_MODE_P): Ditto.
21615         (AVX_VEC_FLOAT_MODE_P): Ditto.
21616         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
21617         (UNSPEC_MASKSTORE): Ditto.
21618         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
21619         Merge from <sse>_movmsk<ssemodesuffix> and
21620         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
21621         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
21622         iterator.
21623         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
21624         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
21625         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
21626
21627 2011-04-18  Jan Hubicka  <jh@suse.cz>
21628
21629         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
21630
21631         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
21632         (want_inline_function_called_once_p): Break out the logic from
21633         ipa_inline.
21634         (edge_badness): Ensure that profile is not misupdated.
21635         (lookup_recursive_calls): Prioritize by call frequencies.
21636         (inline_small_functions): Move program size estimates here;
21637         actually process whole queue even when unit growth has been
21638         met. (to properly compute inline_failed reasons and for the
21639         case unit size decrease.) Revisit comments on recursive inlining.
21640         (ipa_inline): Remove unit summary code; first inline hot calls
21641         of functions called once, cold calls next.
21642         (order, nnodes): Remove unused variables.
21643         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
21644         (GTFILES): Remove ipa-inline.c
21645         * sel-sched.c (fill_insns): Silence uninitialized var warning.
21646
21647 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
21648
21649         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
21650
21651 2011-04-18  Jie Zhang  <jie@codesourcery.com>
21652             Richard Earnshaw  <rearnsha@arm.com>
21653
21654         * arm.c (neon_builtin_type_bits): Remove.
21655         (typedef enum neon_builtin_mode): New.
21656         (T_MAX): Don't define.
21657         (typedef enum neon_builtin_datum): Remove bits, codes[],
21658         num_vars and base_fcode.  Add mode, code and fcode.
21659         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
21660         VAR10): Change accordingly.
21661         (neon_builtin_data[]): Change accordingly
21662         (arm_init_neon_builtins): Change accordingly.
21663         (neon_builtin_compare): Remove.
21664         (locate_neon_builtin_icode): Remove.
21665         (arm_expand_neon_builtin): Change accordingly.
21666
21667         * arm.h (enum arm_builtins): Move to ...
21668         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
21669
21670         * arm.c (arm_builtin_decl): Declare.
21671         (TARGET_BUILTIN_DECL): Define.
21672         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
21673         (arm_builtin_decls[]): New.
21674         (arm_init_neon_builtins): Store builtin declarations in
21675         arm_builtin_decls[].
21676         (arm_init_tls_builtins): Likewise.
21677         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
21678         (arm_builtin_decl): New.
21679
21680 2011-04-18  Richard Guenther  <rguenther@suse.de>
21681
21682         * tree.c (upper_bound_in_type): Build properly canonicalized
21683         INTEGER_CSTs.
21684         (lower_bound_in_type): Likewise.
21685
21686 2011-04-18  Richard Guenther  <rguenther@suse.de>
21687
21688         * gimple.h (gimple_call_addr_fndecl): New function.
21689         (gimple_call_fndecl): Use it.
21690         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
21691         for direct calls.
21692         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
21693         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
21694
21695 2011-04-18  Richard Guenther  <rguenther@suse.de>
21696
21697         PR middle-end/48650
21698         * tree.c (build_string): STRING_CST is now derived from tree_typed.
21699
21700 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
21701
21702         PR lto/48492
21703         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
21704         DECL_IN_CONSTANT_POOL without RTL.
21705
21706 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
21707             Ira Rosen  <ira.rosen@linaro.org>
21708
21709         PR target/48252
21710         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
21711         to match neon_vzip/vuzp/vtrn_internal.
21712         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
21713         outputs explicitly dependent on both inputs.
21714         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
21715
21716 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
21717
21718         PR tree-optimization/48616
21719         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
21720         whether the shift is by scalar or vector based on whether all SLP
21721         scalar stmts have the same rhs.
21722
21723 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
21724
21725         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
21726         memory operands.
21727
21728 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
21729
21730         PR target/43700
21731         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
21732         registers.
21733
21734 2011-04-17  Jan Hubicka  <jh@suse.cz>
21735
21736         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
21737         * cgrpahunit.c (cgraph_finalize_function): Do not set
21738         finalized_by_frontend.
21739         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
21740         finalized_by_frontend.
21741
21742 2011-04-17  Jan Hubicka  <jh@suse.cz>
21743
21744         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
21745         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
21746         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
21747         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
21748         method.
21749         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
21750         gimple-fold.c
21751         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
21752
21753 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
21754
21755         PR lto/48538
21756         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
21757         is non-null before accessing it.
21758         (input_cgraph): Remove trailing spaces.
21759
21760 2011-04-17  Revital Eres  <revital.eres@linaro.org>
21761
21762         * params.def (sms-min-sc): New param flag.
21763         * modulo-sched.c (sms_schedule): Use it.
21764         * doc/invoke.texi (sms-min-sc): Document it.
21765
21766 2011-04-17  Jan Hubicka  <jh@suse.cz>
21767
21768         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
21769         present, also set gimple_call_set_cannot_inline.
21770         * ipa-inline.c: Update toplevel comment.
21771         (MAX_TIME): Remove.
21772         (cgraph_clone_inlined_nodes): Fix linebreaks.
21773         (cgraph_check_inline_limits): Restructure to ...
21774         (caller_growth_limits): ... this one; be more tolerant
21775         on growth in nested inline chains; add explanatory comment;
21776         fix stack accounting thinko introduced by previous patch.
21777         (cgraph_default_inline_p): Remove.
21778         (report_inline_failed_reason): New function.
21779         (can_inline_edge_p): New function.
21780         (can_early_inline_edge_p): New function.
21781         (leaf_node_p): Move upwards in file.
21782         (want_early_inline_function_p): New function.
21783         (want_inline_small_function_p): New function.
21784         (want_inline_self_recursive_call_p): New function.
21785         (cgraph_edge_badness): Rename to ...
21786         (edge_badness) ... this one; fix linebreaks.
21787         (update_edge_key): Update call of edge_baddness; add
21788         detailed dump about queue updates.
21789         (update_caller_keys): Use can_inline_edge_p and
21790         want_inline_small_function_p.
21791         (cgraph_decide_recursive_inlining): Rename to...
21792         (recursive_inlining): Use can_inline_edge_p and
21793         want_inline_self_recursive_call_p; simplify and remove no longer
21794         valid FIXME.
21795         (cgraph_set_inline_failed): Remove.
21796         (add_new_edges_to_heap): Use can_inline_edge_p and
21797         want_inline_small_function_p.
21798         (cgraph_decide_inlining_of_small_functions): Rename to ...
21799         (inline_small_functions): ... this one; cleanup; use
21800         can/want predicates; cleanup debug ouput; work edges till fibheap
21801         is exhausted and do not stop once unit growth is reached; remove
21802         later loop processing remaining edges.
21803         (cgraph_flatten): Rename to ...
21804         (flatten_function): ... this one; use can_inline_edge_p
21805         and can_early_inline_edge_p predicates.
21806         (cgraph_decide_inlining): Rename to ...
21807         (ipa_inline): ... this one; remove unreachable nodes before
21808         inlining functions called once; simplify the pass.
21809         (cgraph_perform_always_inlining): Rename to ...
21810         (inline_always_inline_functions): ... this one; use
21811         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
21812         (cgraph_decide_inlining_incrementally): Rename to ...
21813         (early_inline_small_functions): ... this one; simplify
21814         using new predicates; cleanup; make dumps prettier.
21815         (cgraph_early_inlining): Rename to ...
21816         (early_inliner): newer inline regular functions into always-inlines;
21817         fix updating of call stmt summaries.
21818         (pass_early_inline): Update for new names.
21819         (inline_transform): Fix formating.
21820         (gate_cgraph_decide_inlining): Rename to ...
21821         (pass_ipa_inline): ... this one.
21822         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
21823         * ipa-inline-analysis.c (dump_inline_summary): Update.
21824         (compute_inline_parameters): Do not compute disregard_inline_limits;
21825         look for mismatching arguments.
21826         (estimate_growth): Fix handlig of non-trivial self recursion.
21827         (inline_read_summary): Do not read info->disregard_inline_limits.
21828         (inline_write_summary): Do not write info->disregard_inline_limits.
21829         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
21830         and move all checks into can_inline_edge_p predicate; re-enable code
21831         comparing optimization levels.
21832         (expand_call_inline): Do not test inline_forbidden_into_p.
21833         * Makefile.in (ipa-inline.o): Update arguments.
21834
21835 2011-04-17  Revital Eres  <revital.eres@linaro.org>
21836
21837         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
21838
21839 2011-04-17  Revital Eres  <revital.eres@linaro.org>
21840
21841         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
21842
21843 2011-04-17  Michael Matz  <matz@suse.de>
21844
21845         PR tree-optimization/48622
21846         PR lto/48645
21847         * ipa-inline-analysis.c (inline_read_summary): Read size/time
21848         in same order as they're written.
21849
21850 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21851
21852         * config/pa/predicates.md: Reorganize and simplify predicates.
21853         Eliminate duplicate code checks.
21854         (arith_operand): Rename to arith14_operand
21855         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
21856         * config/pa/pa.md: Use renamed operands.
21857         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
21858         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
21859         arith11_operand, adddi3_operand, indexed_memory_operand,
21860         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
21861         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
21862         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
21863         move_dest_operand, move_src_operand, prefetch_cc_operand,
21864         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
21865         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
21866         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
21867         div_operand, int5_operand, movb_comparison_operator,
21868         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
21869         arith_double_operand, ireg_operand, lhs_lshift_operand,
21870         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
21871         integer_store_memory_operand): Likewise.
21872         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
21873         (integer_store_memory_operand, read_only_operand,
21874         function_label_operand, borx_reg_operand,
21875         non_hard_reg_operand): Likewise.
21876         (eq_neq_comparison_operator): Delete unused operator.
21877         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
21878         function_label_operand.
21879         (emit_move_sequence): Likewise.
21880
21881 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
21882
21883         * config/i386/sse.md (sseunpackmode): New mode attribute.
21884         (ssepackmode): Ditto.
21885         (vec_pack_trunc_<mode>): Macroize expander from
21886         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
21887         (vec_unpacks_lo_<mode>): Macroize expander from
21888         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
21889         (vec_unpacks_hi_<mode>): Macroize expander from
21890         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
21891         (vec_unpacku_lo_<mode>): Macroize expander from
21892         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
21893         (vec_unpacku_hi_<mode>): Macroize expander from
21894         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
21895         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
21896         ix86_expand_sse4_unpack.
21897         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
21898
21899 2011-04-16  Jan Hubicka  <jh@suse.cz>
21900
21901         * cgraphbuild.c: Include ipa-inline.h.
21902         (reset_inline_failed): Use initialize_inline_failed.
21903         * cgraph.c: Include ipa-inline.h.
21904         (cgraph_create_node_1): Do not initialize estimated_growth.
21905         (initialize_inline_failed): More to ipa-inline-analysis.c
21906         (dump_cgraph_node): Do not dump inline flags.
21907         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
21908         and disregard_inline_limits flags.
21909         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
21910         time, size, estimated_growth.
21911         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
21912         Update.
21913         * cgraphunit.c (cgraph_decide_is_function_needed): Use
21914         DECL_DISREGARD_INLINE_LIMITS.
21915         (cgraph_analyze_function): Do not initialize
21916         node->local.disregard_inline_limits.
21917         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
21918         inlinable, versionable and disregard_inline_limits.
21919         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
21920         cgraph_check_inline_limits, cgraph_default_inline_p,
21921         cgraph_edge_badness, update_caller_keys, update_callee_keys,
21922         add_new_edges_to_heap): Update.
21923         (cgraph_decide_inlining_of_small_function): Update; set
21924         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
21925         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
21926         cgraph_decide_inlining_incrementally): Update.
21927         * ipa-inline.h (inline_summary): Add inlinable, versionable,
21928         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
21929         time, size and estimated_growth parameters.
21930         (estimate_edge_growth): Update.
21931         (initialize_inline_failed): Declare.
21932         * ipa-split.c: Include ipa-inline.h
21933         (execute_split_functions): Update.
21934         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
21935         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
21936         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
21937         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
21938         estimated_growth to INT_MIN.
21939         (inline_node_duplication_hook): Likewise.
21940         (dump_inline_summary): Dump new fields.
21941         (compute_inline_parameters): Update.
21942         (estimate_edge_time, estimate_time_after_inlining,
21943         estimate_size_after_inlining, estimate_growth, inline_read_summary,
21944         inline_write_summary):
21945         (initialize_inline_failed): Move here from cgraph.c.
21946         * tree-sra.c: Include ipa-inline.h.
21947         (ipa_sra_preliminary_function_checks): Update.
21948         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
21949         ipa-inline.h.
21950
21951 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
21952
21953         * config/i386/sse.md (V16): New mode iterator.
21954         (VI1, VI8): Ditto.
21955         (AVXMODEQI, AVXMODEDI): Remove.
21956         (sse2, sse3): New mode attribute.
21957         (mov<mode>): Use V16 mode iterator.
21958         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
21959         (push<mode>1): Use V16 mode iterator.
21960         (movmisalign<mode>): Ditto.
21961         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
21962         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
21963         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
21964         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
21965         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
21966         avx_movdqu<avxmodesuffix>.
21967         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
21968         *avx_movdqu<avxmodesuffix>.
21969         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
21970         avx_lddqu<avxmodesuffix>.
21971         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
21972         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
21973         avx_movnt<AVXMODEDI:mode>.
21974         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
21975         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
21976
21977 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
21978
21979         PR target/48629
21980         * haifa-sched.c (prune_ready_list, schedule_block): Use
21981         sched_pressure_p rather than flag_sched_pressure.
21982
21983 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
21984
21985         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
21986         cgraph_get_node instead of cgraph_get_create_node.
21987
21988 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
21989
21990         * cfgexpand.c (expand_debug_expr): Use
21991         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
21992
21993 2011-04-15  Michael Matz  <matz@suse.de>
21994
21995         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
21996         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
21997         * function.c (gimplify_parameters): Ditto.
21998         * gimplify.c (gimplify_vla_decl): Ditto.
21999
22000         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
22001         (gimple_call_set_alloca_for_var): New inline function.
22002         (gimple_call_alloca_for_var_p): Ditto.
22003         * gimple.c (gimple_build_call_from_tree): Remember
22004         CALL_ALLOCA_FOR_VAR_P state.
22005         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
22006
22007         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
22008         calls if they were for VLA objects.
22009
22010 2011-04-15  Martin Jambor  <mjambor@suse.cz>
22011
22012         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
22013         of ADR_EXPRs.
22014
22015 2011-04-15  Martin Jambor  <mjambor@suse.cz>
22016
22017         PR middle-end/48601
22018         * tree-emutls.c (lower_emutls_function_body): Call
22019         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
22020         result is non-NULL.
22021
22022 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
22023
22024         * c-decl.c (detect_field_duplicates): Call
22025         objc_detect_field_duplicates instead of objc_get_interface_ivars.
22026
22027 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
22028
22029         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
22030         * gimple.c (gimple_asm_clobbers_memory_p): Define.
22031         * ipa-pure-const.c (check_stmt): Call it.
22032         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
22033
22034 2011-04-15  Richard Guenther  <rguenther@suse.de>
22035
22036         PR tree-optimization/48290
22037         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
22038         Properly decide inhibiting propagation based on the valueized
22039         operand.  Do loop-closed SSA form preserving here ...
22040         (init_copy_prop): ... not here.
22041
22042 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
22043
22044         PR target/48612
22045         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
22046         (*ieee_smax<mode>3): Likewise.
22047
22048 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22049
22050         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
22051         Replace match_operand with match_dup for the third operand in
22052         these expanders.
22053
22054 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
22055
22056         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
22057         to track processing of conditionals.  Update all callers.
22058         (try_combine, simplify_if_then_else): Update.
22059
22060 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
22061
22062         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
22063         -fsched-pressure.
22064
22065 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
22066
22067         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
22068         instead of match_operand for operand 3.
22069
22070 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
22071
22072         * recog.h (insn_operand_data): Add an "allows_mem" field.
22073         * genoutput.c (output_operand_data): Initialize it.
22074         * optabs.c (maybe_legitimize_operand_same_code): New function.
22075         (maybe_legitimize_operand): Use it when matching the original
22076         op->value.
22077
22078 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
22079
22080         * gimplify.c: Fix issues in comments throughout.
22081         (voidify_wrapper_expr): Fix long line.
22082         (build_stack_save_restore): Likewise.
22083         (gimplify_loop_expr): Likewise.
22084         (gimplify_compound_lval): Likewise.
22085         (gimplify_init_ctor_eval): Likewise.
22086         (gimplify_modify_expr_rhs): Likewise.
22087         (omp_notice_threadprivate_variable): Likewise.
22088
22089 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
22090
22091         * cfgexpand.c (expand_call_stmt): Convert the function type to the
22092         original one if this is not a builtin function.
22093
22094 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
22095
22096         PR target/48605
22097         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
22098         offset it as needed based on top 2 bits in operands[3], change
22099         MEM mode to SFmode and mask those 2 bits away from operands[3].
22100
22101 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
22102
22103         * c-parser.c (c_parser_objc_protocol_definition): Updated for
22104         change from objc_declare_protocols() to objc_declare_protocol().
22105
22106 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
22107
22108         * config/i386/sse.md (sse4_1): New mode attribute.
22109         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
22110         avx_blend<ssemodesuffix><avxmodesuffix> and
22111         sse4_1_blend<ssemodesuffix> using VF mode iterator.
22112         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
22113         avx_blendv<ssemodesuffix><avxmodesuffix> and
22114         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
22115         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
22116         avx_dp<ssemodesuffix><avxmodesuffix> and
22117         sse4_1_dp<ssemodesuffix> using VF mode iterator.
22118         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
22119         (sse4_1_packusdw): Merge with *avx_packusdw.
22120         (sse4_1_pblendvb): Merge with *avx_pblendvb.
22121         (sse4_1_pblendw): Merge with *avx_pblendw.
22122         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
22123         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
22124         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
22125         VF mode iterator.
22126         (sse4_1_round<ssescalarmodesuffix>): Merge with
22127         *avx_round<ssescalarmodesuffix>.
22128         (aesenc): Merge with *avx_aesenc.
22129         (aesenclast): Merge with *avx_aesenclast.
22130         (aesdec): Merge with *avx_aesdec.
22131         (aesdeclast): Merge with *avx_aesdeclast.
22132         (pclmulqdq): Merge with *pclmulqdq.
22133         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
22134         New predicate.
22135         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
22136
22137 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
22138
22139         PR middle-end/48608
22140         * cfgexpand.c (get_decl_align_unit): Renamed to ...
22141         (align_local_variable): This.  Update DECL_ALIGN.
22142         (add_stack_var): Updated.
22143         (expand_one_stack_var): Likewise.
22144
22145 2011-04-14  Richard Guenther  <rguenther@suse.de>
22146
22147         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
22148         Remove.
22149         (dse_initialize_block_local_data, dse_leave_block,
22150         record_voperand_set, get_stmt_uid): Likewise.
22151         (dse_possible_dead_store_p): Allow any kind of killing stmt.
22152         (dse_optimize_stmt): Remove voperand set handling code.
22153         Simplify and improve to handle any kind of killing stmt.
22154         (dse_record_phi): Remove.
22155         (dse_enter_block): Simplify.
22156         (tree_ssa_dse): Likewise.
22157         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
22158
22159 2011-04-14  Jan Hubicka  <jh@suse.cz>
22160
22161         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
22162         * cgraph.h (struct inline_summary): Move to ipa-inline.h
22163         (cgraph_local_info): Remove inline_summary.
22164         * ipa-cp.c: Include ipa-inline.h.
22165         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
22166         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
22167         accesor.
22168         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
22169         (input_overwrite_node): Do not set inline summary.
22170         (input_node): Do not stream inline summary.
22171         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
22172         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
22173         growth; we do not have inline parameters computed for that anyway.
22174         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
22175         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
22176         (inline_summary_t): New type and VECtor.
22177         (debug_inline_summary, dump_inline_summaries): Declare.
22178         (inline_summary): Use VOCtor.
22179         (estimate_edge_growth): Kill hack computing call stmt size directly.
22180         * lto-section-in.c (lto_section_name): Add inline section.
22181         * ipa-inline-analysis.c: Include lto-streamer.h
22182         (node_removal_hook_holder, node_duplication_hook_holder): New holders
22183         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
22184         (inline_summary_vec): Define.
22185         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
22186         dump_inline_summaries): New functions.
22187         (estimate_function_body_sizes): Properly compute size/time of outgoing
22188         calls.
22189         (compute_inline_parameters): Alloc inline_summary; do not compute
22190         size/time of incomming calls.
22191         (estimate_edge_time): Avoid missing time summary hack.
22192         (inline_read_summary): Read inline summary info.
22193         (inline_write_summary): Write inline summary info.
22194         (inline_free_summary): Free all hooks and inline summary vector.
22195         * lto-streamer.h: Add LTO_section_inline_summary section.
22196         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
22197         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
22198
22199 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
22200
22201         * tree-vectorizer.h (vect_strided_store_supported): Add a
22202         HOST_WIDE_INT argument.
22203         (vect_strided_load_supported): Likewise.
22204         (vect_permute_store_chain): Return void.
22205         (vect_transform_strided_load): Likewise.
22206         (vect_permute_load_chain): Delete.
22207         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
22208         count argument.  Check that the count is a power of two.
22209         (vect_strided_load_supported): Likewise.
22210         (vect_permute_store_chain): Return void.  Update after above changes.
22211         Assert that the access is supported.
22212         (vect_permute_load_chain): Likewise.
22213         (vect_transform_strided_load): Return void.
22214         * tree-vect-stmts.c (vectorizable_store): Update calls after
22215         above interface changes.
22216         (vectorizable_load): Likewise.
22217         (vect_analyze_stmt): Don't check for strided powers of two here.
22218
22219 2011-04-14  Richard Guenther  <rguenther@suse.de>
22220
22221         PR tree-optimization/48590
22222         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
22223         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
22224         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
22225         BUILT_IN_STACK_SAVE.
22226         * tree-ssa-dce.c (propagate_necessity): Handle
22227         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
22228
22229 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
22230
22231         * c-parser.c (c_parser_objc_class_declaration): Updated call to
22232         objc_declare_class.
22233
22234 2011-04-14  Richard Guenther  <rguenther@suse.de>
22235
22236         * tree.h (get_object_alignment_1): Declare.
22237         * builtins.c (get_object_alignment_1): Split out worker from ...
22238         (get_object_alignment): ... here.
22239         * fold-const.c (get_pointer_modulus_and_residue): Use
22240         get_object_alignment_1.
22241
22242 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
22243
22244         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
22245         type parameter.
22246         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
22247         parameter.  Generalise code to handle arrays as well as vectors.
22248         (vect_setup_realignment): Update accordingly.
22249         * tree-vect-stmts.c (vectorizable_store): Likewise.
22250         (vectorizable_load): Likewise.
22251
22252 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
22253
22254         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
22255         within the per-copy loop.
22256
22257 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
22258
22259         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
22260         in the dump file.
22261
22262 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
22263
22264         * doc/options.texi (Negative): Explicitly mention that the
22265         Negative chain must be circular.
22266
22267 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
22268
22269         * function.h (block_chainon): Declare.
22270         * function.c (block_chainon): Define.
22271
22272 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
22273             Eric Weddington  <eric.weddington@atmel.com>
22274             Georg-Johann Lay  <avr@gjlay.de>
22275
22276         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
22277         New Includes
22278         (avr_init_builtins, avr_expand_builtin,
22279         avr_expand_delay_cycles, avr_expand_unop_builtin,
22280         avr_expand_binop_builtin ): New functions.
22281         (avr_builtin_id): New enum
22282         (struct avr_builtin_description): New struct
22283         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
22284         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
22285
22286         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
22287         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
22288         UNSPECV_DELAY_CYCLES): new enumeration values
22289         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
22290         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
22291         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
22292         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
22293         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
22294         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
22295         "fmulsu"): New insns
22296
22297         * config/avr/avr-c.c: fix line endings
22298         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
22299         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
22300         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
22301         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
22302         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
22303
22304         * doc/extend.texi (AVR Built-in Functions): New node
22305         (Target Builtins): Add documentation of AVR
22306         built-in functions.
22307
22308 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
22309
22310         PR target/44643
22311         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
22312         alone. Error if non-const data has attribute progmem.
22313
22314 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
22315
22316         * tree.h (struct tree_constructor): Include tree_typed instead of
22317         tree_common.
22318         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
22319         TS_TYPED instead of TS_COMMON.
22320
22321 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
22322
22323         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
22324         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
22325         (sse2_psadbw): Merge with *avx_psadbw.
22326         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
22327         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
22328         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
22329         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
22330         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
22331         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
22332         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
22333         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
22334         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
22335         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
22336         (ssse3_palignrti): Merge with *avx_palignrti.
22337
22338 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
22339
22340         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
22341         * tree-ssanames.c (fini_ssanames): VEC_free it.
22342         (make_ssa_name_fn): Update for VECness of free_ssanames.
22343         (release_ssa_name, release_dead_ssa_names): Likewise.
22344         * tree.h (struct tree_ssa_name): Include tree_typed instead of
22345         tree_common.
22346         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
22347         TS_TYPED instead of TS_COMMON.
22348
22349 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
22350
22351         * postreload-gcse.c (gcse_after_reload_main): Add calls to
22352         statistics_counter_event.
22353         * tree-ssa-copyrename.c (stats): Define.
22354         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
22355         statistics_counter_event.
22356         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
22357         (bswap_stats, widen_mul_stats): Define.
22358         (insert_reciprocals): Increment rdivs_inserted.
22359         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
22360         rfuncs_inserted.  Add calls to statistics_counter_event.
22361         (execute_cse_sincos_1): Increment inserted.
22362         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
22363         statistics_counter_event.
22364         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
22365         of bswap_stats.  Add calls to statistics_counter_event.
22366         (convert_mult_to_widen): Increment widen_mults_inserted.
22367         (convert_plusminus_to_widen): Increment maccs_inserted.
22368         (convert_mult_to_fma): Increment fmas_inserted.
22369         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
22370         calls to statistics_counter_event.
22371
22372 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
22373
22374         PR rtl-optimization/48455
22375         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
22376         `temp_costs->mem_cost'.
22377
22378 2011-04-13  Jan Hubicka  <jh@suse.cz>
22379
22380         * ipa-inline.h: New file.
22381         * ipa-inline-analysis.c: New file. Broken out of ...
22382         * ipa-inline.c: ... this file; update toplevel comment;
22383         include ipa-inline.h
22384         (inline_summary): Move to ipa-inline.h
22385         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
22386         ipa-inline-analysis.c.
22387         (cgraph_estimate_time_after_inlining): Rename to
22388         estiamte_time_after_inlining; move to ipa-inline-analysis.c
22389         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
22390         to estimate_edge_growth.
22391         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
22392         rename to estimate_size_after_inlining.
22393         (cgraph_mark_inline_edge): Update for new naming convention.
22394         (cgraph_check_inline_limits): Likewise.
22395         (cgraph_edge_badness): Likewise.
22396         (cgraph_decide_recursive_inlining): Likewise.
22397         (cgraph_decide_inlining_of_small_functions): Likewise.
22398         (cgraph_decide_inlining_incrementally): Likewise.
22399         (cgraph_estimate_growth): Rename to estimate_growth; move to
22400         ipa-inline-analysis.c.
22401         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
22402         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
22403         (compute_inline_parameters): Likewise.
22404         (compute_inline_parameters_for_current): Likewise.
22405         (pass_inline_parameters): Likewise.
22406         (inline_indirect_intraprocedural_analysis): Likewise.
22407         (analyze_function): Rename to inline_analyze_function; likewise.
22408         (add_new_function): Move to ipa-inline-analysis.c.
22409         (inline_generate_summary): Likewise.
22410         (inline_read_summary): Likewise.
22411         (inline_write_summary): Likewise.
22412         * Makefile.in (ipa-inline-analysis.c): New file.
22413
22414 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22415
22416         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
22417         * configure: Regenerate.
22418
22419 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
22420
22421         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
22422         instead of tree_common.
22423         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
22424         Likewise.
22425         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
22426         TS_TYPED rather than TS_COMMON.
22427         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
22428
22429 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
22430
22431         PR target/45263
22432         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
22433         r20 around calls of __tablejump_elpm__
22434
22435 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
22436
22437         PR middle-end/48591
22438         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
22439         NULL.
22440         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
22441
22442 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
22443
22444         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
22445         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
22446         (cfi_vec): New typedef.
22447         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
22448         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
22449         (cie_cfi_vec): New static variable.
22450         (cie_cfi_head): Delete.
22451         (add_cfi): Accept a cfi_vec * as first argument. All callers and
22452         declaration changed. Use vector rather than list operations.
22453         (new_cfi): Don't initialize the dw_cfi_next field.
22454         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
22455         rather than list operations.
22456         (lookup_cfa): Use vector rather than list operations.
22457         (output_cfis): New argument upto. Accept a cfi_vec rather than
22458         a dw_cfi_ref list head as argument. All callers changed.
22459         Iterate over the vector using upto as a maximum index.
22460         (output_all_cfis): New static function.
22461         (output_fde): Use vector rather than list operations. Use the
22462         new upto argument for output_cfis rather than manipulating a
22463         list.
22464         (dwarf2out_begin_prologue): Change initializations to match
22465         new struct members.
22466         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
22467         from the vector length rather than searching for the end of a list.
22468         Use output_all_cfis.
22469         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
22470
22471 2011-04-13  Nick Clifton  <nickc@redhat.com>
22472
22473         * config/rx/rx.md (movmemsi): Do not use this pattern when
22474         volatile pointers are involved.
22475
22476 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
22477
22478         * config/i386/sse.md (pinsrbits): Remove.
22479         (sse2_packsswb): Merge with *avx_packsswb.
22480         (sse2_packssdw): Merge with *avx_packssdw.
22481         (sse2_packuswb): Merge with *avx_packuswb.
22482         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
22483         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
22484         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
22485         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
22486         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
22487         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
22488         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
22489         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
22490         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
22491         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
22492         (sse2_loadld): Merge with *avx_loadld.
22493         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
22494         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
22495         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
22496         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
22497         (vec_concatv2di): Merge with *vec_concatv2di_avx.
22498
22499 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
22500
22501         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
22502         calling TREE_CHAIN.
22503         * print-tree.c (print_node): Likewise.
22504         * tree-inline.c (copy_tree_r): Likewise.
22505         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
22506         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
22507         instead of TS_COMMON.
22508         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
22509         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
22510         (copy_node_stat): Zero TREE_CHAIN only if necessary.
22511         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
22512         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
22513         ...and these...
22514         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
22515         * tree.h: ...here.
22516         (TREE_CHAIN): Check for a TS_COMMON structure.
22517         (TREE_TYPE): Check for a TS_TYPED structure.
22518
22519 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
22520
22521         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
22522         cgraph_get_create_node instead of cgraph_node.
22523
22524 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
22525
22526         * c-parser.c (c_parser_initelt): Updated call to
22527         objc_build_message_expr.
22528         (c_parser_postfix_expression): Likewise.
22529
22530 2011-04-12  Kai Tietz  <ktietz@redhat.com>
22531
22532         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
22533         MASK_MS_BITFIELD_LAYOUT bit.
22534
22535 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
22536
22537         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
22538         assert it is always true.
22539         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
22540         moves.
22541
22542 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
22543
22544         * c-parser.c (c_lex_one_token): Rewritten conditional used when
22545         compiling Objective-C to be more efficient.
22546
22547 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
22548
22549         * opts-common.c (decode_cmdline_options_to_array): Remove variable
22550         argv_copied.
22551
22552 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
22553
22554         * recog.h, genoutput.c, optabs.c: Revert last patch.
22555
22556 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
22557
22558         PR target/48090
22559         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
22560
22561 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
22562
22563         * recog.h (insn_operand_data): Add an "allows_mem" field.
22564         * genoutput.c (output_operand_data): Initialize it.
22565         * optabs.c (maybe_legitimize_operand_same_code): New function.
22566         (maybe_legitimize_operand): Use it when matching the original
22567         op->value.
22568
22569 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
22570
22571         * genpreds.c (process_define_predicate): Move most processing
22572         to gensupport.c.  Continue to validate the expression.
22573         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
22574         (process_define_predicate): Move processing to gensupport.c.
22575         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
22576         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
22577         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
22578         argument.
22579         (valid_predicate_name_p): New function, split out from old
22580         genpreds.c:process_define_predicate.
22581         (process_define_predicate): New function, combining code from
22582         old genpreds.c and genrecog.c functions.
22583         (process_rtx): Call it for DEFINE_PREDICATE and
22584         DEFINE_SPECIAL_PREDICATE.
22585
22586 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
22587
22588         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
22589         size of a '%A' memory reference.
22590         (T_DREG, T_QREG): New neon_builtin_type_bits.
22591         (arm_init_neon_builtins): Assert that the load and store operands
22592         are neon_struct_operands.
22593         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
22594         (NEON_ARG_MEMORY): New builtin_arg.
22595         (neon_dereference_pointer): New function.
22596         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
22597         Handle NEON_ARG_MEMORY.
22598         (arm_expand_neon_builtin): Update after above interface changes.
22599         Use NEON_ARG_MEMORY for loads and stores.
22600         * config/arm/predicates.md (neon_struct_operand): New predicate.
22601         * config/arm/iterators.md (V_two_elem): Tweak formatting.
22602         (V_three_elem): Use BLKmode for accesses that have no associated mode.
22603         (V_four_elem): Tweak formatting.
22604         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
22605         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
22606         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
22607         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
22608         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
22609         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
22610         (neon_vst4<mode>): Replace pointer operand with a memory operand.
22611         Use %A in the output template.
22612         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
22613         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
22614         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
22615         the width of the memory access.  Remove post-increment.
22616         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
22617
22618 2011-04-12  Nick Clifton  <nickc@redhat.com>
22619
22620         * config/v850/v850.c (expand_prologue): Do not use the CALLT
22621         instruction for interrupt handlers if the target is the basic V850
22622         architecture.
22623         (expand_epilogue): Likewise.
22624
22625 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
22626
22627         PR rtl-optimization/48549
22628         * combine.c (propagate_for_debug): Also stop after BB_END of
22629         this_basic_block.  Process LAST and just stop processing after it.
22630         (combine_instructions): If last_combined_insn has been deleted,
22631         set last_combined_insn to its PREV_INSN.
22632
22633 2011-04-12  Richard Guenther  <rguenther@suse.de>
22634
22635         PR tree-optimization/46076
22636         * gimple.h (struct gimple_statement_call): Add fntype field.
22637         (gimple_call_fntype): Adjust.
22638         (gimple_call_set_fntype): New function.
22639         * gimple.c (gimple_build_call_1): Set the call function type.
22640         * gimplify.c (gimplify_call_expr): Preserve the function
22641         type the frontend used for the call.
22642         (gimplify_modify_expr): Likewise.
22643         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
22644         function type.
22645         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
22646         function type.
22647         * tree-ssa.c (useless_type_conversion_p): Function pointer
22648         conversions are useless.
22649
22650 2011-04-12  Martin Jambor  <mjambor@suse.cz>
22651
22652         * cgraph.h (cgraph_node): Remove function declaration.
22653         (cgraph_create_node): Declare.
22654         (cgraph_get_create_node): Likewise.
22655         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
22656         Updated all callers.
22657         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
22658         the decl does not already exist.  Call cgraph_get_create_node instead
22659         of cgraph_node.
22660         (cgraph_get_create_node): New function.
22661         (cgraph_same_body_alias): Update comment.
22662         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
22663         assert it does not return NULL.
22664         (cgraph_update_edges_for_call_stmt): Likewise.
22665         (cgraph_clone_edge): Likewise.
22666         (cgraph_create_virtual_clone): Likewise.
22667         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
22668         instead of cgraph_node.
22669         (cgraph_add_new_function): Call cgraph_create_node or
22670         cgraph_get_create_node instead of cgraph_node.
22671         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
22672         instead of cgraph_node.
22673         (record_eh_tables): Likewise.
22674         (mark_address): Likewise.
22675         (mark_load): Likewise.
22676         (build_cgraph_edges): Call cgraph_get_create_node instead
22677         of cgraph_node.
22678         (rebuild_cgraph_edges): Likewise.
22679         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
22680         instead of cgraph_node.
22681         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
22682         cgraph_node.
22683         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
22684         cgraph_create_node instead of cgraph_node.
22685         * c-decl.c (finish_function): Call cgraph_get_create_node instead
22686         of cgraph_node.
22687         * lto-cgraph.c (input_node): Likewise.
22688         * lto-streamer-in.c (input_function): Likewise.
22689         * varasm.c (mark_decl_referenced): Likewise.
22690         (assemble_alias): Likewise.
22691
22692 2011-04-12  Martin Jambor  <mjambor@suse.cz>
22693
22694         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
22695         instead of cgraph_node and assert it does not return NULL.
22696         * lto-streamer-in.c (lto_read_body): Likewise.
22697         * omp-low.c (new_omp_context): Likewise.
22698         (create_task_copyfn): Likewise.
22699         * tree-emutls.c (lower_emutls_function_body): Likewise.
22700         * matrix-reorg.c (transform_allocation_sites): Likewise.
22701
22702 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
22703
22704         PR c/48552
22705         * c-typeck.c (build_asm_expr): Error out on attempts to use
22706         void type outputs or inputs for constraints that allow reg or
22707         don't allow memory.
22708
22709 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
22710             Richard Earnshaw  <rearnsha@arm.com>
22711
22712         PR target/48250
22713         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
22714         to use sign-magnitude offsets. Reject unsupported unaligned
22715         cases. Add detailed description in comments.
22716         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
22717         condition from TARGET_32BIT to TARGET_ARM.
22718
22719 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
22720
22721         * tree.h (struct typed_tree): New.
22722         (struct tree_common): Include it instead of tree_base.
22723         (TREE_TYPE): Update for new location of type field.
22724         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
22725         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
22726         (union tree_node): Add typed field.
22727         * treestruct.def (TS_TYPED): New.
22728         * lto-streamer.c (check_handled_ts_structures): Handle it.
22729         * tree.c (MARK_TS_TYPED): New macro.
22730         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
22731
22732 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
22733
22734         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
22735         (force_nonfallthru): Do not alter the loop nest if no basic block
22736         was created.
22737
22738 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
22739
22740         * config/i386/sse.md (VI): New mode iterator.
22741         (SSEMODEI): Remove.
22742         (AVX256MODEI): Ditto.
22743         (AVXMODEF4P): Ditto.
22744         (avxvecpsmode): Ditto.
22745         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
22746         (sse2_andnot<mode>3): New expander.
22747         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
22748         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
22749         (<any_logic:code><mode>3): Use VI mode iterator.
22750         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
22751         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
22752         (*andnottf3): Handle AVX three-operand constraints.
22753         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
22754
22755 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
22756             Robert Millan  <rmh@gnu.org>
22757
22758         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
22759         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
22760         GNU_USER_DYNAMIC_LINKER64): Define.
22761         (REG_NAME): Don't undefine.
22762         (MD_UNWIND_SUPPORT): Undefine.
22763         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
22764         (REG_NAME): Don't undefine.
22765         (MD_UNWIND_SUPPORT): Undefine.
22766         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
22767
22768 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
22769
22770         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
22771         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
22772
22773 2011-04-11  Xinliang David Li  <davidxl@google.com>
22774
22775         * value-profile.c (check_ic_target): New function.
22776         (gimple_ic_transform): Sanity check indirect call target.
22777         * gimple-low.c (gimple_check_call_args): Interface change.
22778         (gimple_check_call_matching_types): New function.
22779         * tree-inline.c (tree_can_inline_p): Call new function.
22780
22781 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
22782
22783         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
22784         tree-pretty-print.h & realmpfr.h.
22785
22786 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
22787
22788         PR middle-end/48464
22789         * ira.c (setup_pressure_classes): Fix typo in loop condition.
22790         (setup_allocno_and_important_classes): Ditto.
22791
22792 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
22793
22794         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
22795         GNU_USER_DYNAMIC_LINKER.
22796         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
22797         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
22798         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
22799         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
22800         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
22801         GNU_USER_TARGET_OS_CPP_BUILTINS.
22802         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
22803         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
22804         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
22805         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
22806         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
22807         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
22808         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
22809         GNU_USER_TARGET_OS_CPP_BUILTINS.
22810         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
22811         GNU_USER_DYNAMIC_LINKER.
22812         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
22813         GNU_USER_TARGET_OS_CPP_BUILTINS.
22814         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
22815         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
22816         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
22817         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
22818         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
22819         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
22820         GNU_USER_DYNAMIC_LINKER64): Remove.
22821         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
22822         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
22823         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
22824         GNU_USER_DYNAMIC_LINKER.
22825         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
22826         GNU_USER_TARGET_OS_CPP_BUILTINS.
22827         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
22828         GNU_USER_TARGET_OS_CPP_BUILTINS.
22829         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
22830         to GNU_USER_TARGET_OS_CPP_BUILTINS.
22831         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
22832         GNU_USER_TARGET_OS_CPP_BUILTINS.
22833         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
22834         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
22835         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
22836         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
22837         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
22838         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
22839         GNU_USER_DYNAMIC_LINKER.
22840         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
22841         GNU_USER_TARGET_OS_CPP_BUILTINS.
22842         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
22843         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
22844         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
22845         GNU_USER_DYNAMIC_LINKER.
22846         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
22847         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
22848         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
22849         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
22850         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
22851         GNU_USER_DYNAMIC_LINKER.
22852         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
22853         GNU_USER_DYNAMIC_LINKERN32.
22854         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
22855         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
22856         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
22857         GNU_USER_DYNAMIC_LINKER32.
22858         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
22859         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
22860         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
22861         GNU_USER_DYNAMIC_LINKER.
22862         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
22863         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
22864         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
22865         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
22866         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
22867         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
22868         GNU_USER_DYNAMIC_LINKER32.
22869         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
22870         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
22871         GNU_USER_DYNAMIC_LINKER.
22872         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
22873         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
22874         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
22875         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
22876         GNU_USER_DYNAMIC_LINKER64.
22877         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
22878         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
22879         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
22880         GNU_USER_DYNAMIC_LINKER.
22881         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
22882         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
22883         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
22884         GNU_USER_DYNAMIC_LINKER.
22885         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
22886         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
22887         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
22888         GNU_USER_DYNAMIC_LINKER32.
22889         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
22890         GNU_USER_DYNAMIC_LINKER64.
22891         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
22892         GNU_USER_DYNAMIC_LINKER64.
22893         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
22894         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
22895         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
22896         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
22897         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
22898
22899 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
22900
22901         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
22902         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
22903         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
22904         GNU_USER_DYNAMIC_LINKER.
22905         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
22906         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
22907         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
22908         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
22909         GNU_USER_DYNAMIC_LINKER64.
22910         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
22911         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
22912         GNU_USER_LINK_EMULATION.
22913         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
22914         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
22915         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
22916         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
22917         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
22918         CPP_SPEC, CC1_SPEC): Remove.
22919         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
22920         (GNU_USER_DYNAMIC_LINKER): Define.
22921         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
22922         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
22923         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
22924         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
22925         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
22926         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
22927         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
22928         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
22929         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
22930         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
22931         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
22932         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
22933         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
22934         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
22935         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
22936         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
22937         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
22938         GNU_USER_DYNAMIC_LINKER.
22939         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
22940         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
22941         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
22942         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
22943         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
22944         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
22945         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
22946         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
22947         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
22948         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
22949
22950 2011-04-11  Kai Tietz  <ktietz@redhat.com>
22951
22952         PR target/9601
22953         PR target/11772
22954         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
22955         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
22956         comment.
22957         (ix86_is_msabi_thiscall): Removed.
22958         (ix86_is_type_thiscall): Likewise.
22959         (ix86_get_callcvt): New function.
22960         (ix86_comp_type_attributes): Simplify check.
22961         (ix86_function_regparm): Use ix86_get_callcvt for calling
22962         convention attribute checks.
22963         (ix86_return_pops_args): Likewise.
22964         (ix86_static_chain): Likewise.
22965         (x86_this_parameter): Likewise.
22966         (x86_output_mi_thunk): Likewise.
22967         (ix86_function_type_abi): Optimize check for types without attributes.
22968         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
22969         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
22970         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
22971         by flag-values.
22972         (IX86_BASE_CALLCVT): Helper macro.
22973         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
22974         Use ix86_get_callcvt for calling convention attribute checks and avoid
22975         symbol-decoration for stdcall in TARGET_RTD case.
22976         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
22977         Likewise.
22978         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
22979         for declaration.
22980
22981 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
22982
22983         * config/i386/sse.md (VI_128): New mode iterator.
22984         (VI12_128): Rename from SSEMODE12.
22985         (VI14_128): Rename from SSEMODE14.
22986         (VI124_128): New mode iterator.
22987         (VI24_128): Rename from SSEMODE248.
22988         (VI248_128): Rename from SSEMODE248.
22989         (SSEMODE124C8): Remove.
22990         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
22991         (*sse2_<plusminus_insn><mode>3): Merge with
22992         *avx_<plusminus_insn><mode>3.
22993         (*mulv8hi3): Merge with *avx_mulv8hi3.
22994         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
22995         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
22996         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
22997         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
22998         (ashr<mode>3): Merge with *avx_ashr<mode>3.
22999         (lshr<mode>3): Merge with *avx_lshr<mode>3.
23000         (ashl<mode>3): Merge with *avx_ashl<mode>3.
23001         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
23002         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
23003         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
23004         (*<smaxmin:code>v8hi3): Ditto.
23005         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
23006         (*<smaxmin:code>v16qi3): Ditto.
23007         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
23008         (*sse2_eq<mode>3): Ditto.
23009         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
23010         (*sse2_gt<mode>3): Ditto.
23011         (vcondv2di): Split out of vcond<mode>.
23012         (vconduv2di): Split out of vcondu<mode>.
23013
23014 2011-04-11  Richard Guenther  <rguenther@suse.de>
23015
23016         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
23017         before calling tree_low_cst.
23018
23019 2011-04-11  Richard Guenther  <rguenther@suse.de>
23020
23021         * stor-layout.c (layout_type): Compute all array index size operations
23022         in the original type.
23023         (initialize_sizetypes): Add comment.
23024         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
23025
23026 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
23027
23028         * common.opt (Tbss=, Tdata=, Ttext=): New options.
23029
23030 2011-04-11  Martin Jambor  <mjambor@suse.cz>
23031
23032         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
23033         of cgraph_node, handle NULL return value.
23034         (cgraph_global_info): Likewise.
23035         (cgraph_rtl_info): Likewise.
23036         * tree-inline.c (estimate_num_insns): Likewise.
23037         * gimplify.c (unshare_body): Likewise.
23038         (unvisit_body): Likewise.
23039         (gimplify_body): Likewise.
23040         * predict.c (optimize_function_for_size_p): Likewise.
23041         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
23042         (call_may_clobber_ref_p_1): Likewise.
23043         * varasm.c (function_section_1): Likewise.
23044         (assemble_start_function): Likewise.
23045
23046 2011-04-11  Martin Jambor  <mjambor@suse.cz>
23047
23048         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
23049         of cgraph_node.
23050         * final.c (rest_of_clean_state): Likewise.
23051         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
23052         * passes.c (pass_init_dump_file): Likewise.
23053         (execute_all_ipa_transforms): Likewise.
23054         (function_called_by_processed_nodes_p): Likewise.
23055         * predict.c (maybe_hot_frequency_p): Likewise.
23056         (probably_never_executed_bb_p): Likewise.
23057         (compute_function_frequency): Likewise.
23058         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
23059         (unnest_nesting_tree_1): Likewise.
23060         (lower_nested_functions): Likewise.
23061         * tree-optimize.c (execute_fixup_cfg): Likewise.
23062         (tree_rest_of_compilation): Likewise.
23063         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
23064         * tree-sra.c (ipa_early_sra): Likewise.
23065         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
23066         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
23067         * ipa.c (record_cdtor_fn): Likewise.
23068         * ipa-inline.c (cgraph_early_inlining): Likewise.
23069         (compute_inline_parameters_for_current): Likewise.
23070         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
23071         * ipa-pure-const.c (local_pure_const): Likewise.
23072         * ipa-split.c (split_function): Likewise.
23073         (execute_split_functions): Likewise.
23074         * cgraphbuild.c (build_cgraph_edges): Likewise.
23075         (rebuild_cgraph_edges): Likewise.
23076         (cgraph_rebuild_references): Likewise.
23077         (remove_cgraph_callee_edges): Likewise.
23078         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
23079         (verify_cgraph_node): Likewise.
23080         (cgraph_analyze_functions): Likewise.
23081         (cgraph_preserve_function_body_p): Likewise.
23082         (save_inline_function_body): Likewise.
23083         (save_inline_function_body): Likewise.
23084         * tree-inline.c (copy_bb): Likewise.
23085         (optimize_inline_calls): Likewise.
23086
23087 2011-04-11  Martin Jambor  <mjambor@suse.cz>
23088
23089         PR tree-optimization/48195
23090         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
23091         ipa_check_create_edge_args.
23092         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
23093         ipa_check_create_edge_args.
23094         * ipa-inline.c (inline_generate_summary): Do not call
23095         ipa_check_create_node_params and ipa_check_create_edge_args.
23096         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
23097         ipa_check_create_edge_args.
23098
23099 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
23100
23101         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
23102         instead of loop.
23103         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
23104         * function.c (record_hard_reg_sets): Likewise.
23105         * ira.c (compute_regs_asm_clobbered): Likewise.
23106         * sched-deps.c (sched_analyze_1): Likewise.
23107         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
23108
23109 2011-04-09  Xinliang David Li  <davidxl@google.com>
23110
23111         PR tree-optimization/PR48484
23112         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
23113         has_valid_pred lazily
23114
23115 2011-04-09  Duncan Sands  <baldrick@free.fr>
23116
23117         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
23118
23119 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
23120
23121         * combine.c (combine_validate_cost): Adjust comments.  Set registered
23122         cost of I0 to zero at the end, if any.
23123
23124 2011-04-08  Xinliang David Li  <davidxl@google.com>
23125
23126         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
23127         to insane profile data.
23128
23129 2011-04-08  Xinliang David Li  <davidxl@google.com>
23130
23131         * ipa-cp.c (ipcp_update_profiling): Correct
23132          negative scale factor due to insane profile data.
23133
23134 2011-04-08  Xinliang David Li  <davidxl@google.com>
23135
23136         * final.c (dump_basic_block_info): New function.
23137         (final): Dump basic block.
23138         (final_scan_insn): Remove old dump.
23139
23140 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
23141
23142         PR target/47829
23143         * config.gcc (i386-*-freebsd): Disable unwind table generation for
23144         crtbegin/crtend.
23145
23146 2011-04-08  Michael Matz  <matz@suse.de>
23147
23148         PR middle-end/48389
23149         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
23150         functions.
23151         (rebuild_jump_labels): Call rebuild_jump_labels_1.
23152         * rtl.h (rebuild_jump_labels_chain): Declare.
23153         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
23154         insns inserted on edges.
23155
23156 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
23157
23158         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
23159         * config/arm/arm-arches.def: New.
23160         * config/arm/arm-opts.h: New.
23161         * config/arm/genopt.sh: New.
23162         * config/arm/arm-tables.opt: New (generated).
23163         * config/arm/arm.c (arm_handle_option, arm_target_help,
23164         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
23165         (all_architectures): Get most table contents from arm-arches.def.
23166         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
23167         arm_selected_tune here.
23168         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
23169         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
23170         (march=, mcpu=, mtune=): Use Enum and Var.
23171         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
23172         (arm.o): Update dependencies.
23173
23174 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
23175
23176         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
23177         of header_file.
23178         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
23179         (write_typed_alloc_defns): Likewise.
23180         (main): Calls write_typed_alloc_defns with output_header.
23181
23182 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
23183
23184         PR inline-asm/48435
23185         * ira-color.c (setup_profitable_hard_regs): Add comments.
23186         Don't take prohibited hard regs into account.
23187         (setup_conflict_profitable_regs): Rename to
23188         get_conflict_profitable_regs.
23189         (check_hard_reg_p): Check prohibited hard regs.
23190
23191 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
23192
23193         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
23194         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
23195         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
23196
23197 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23198
23199         PR target/48366
23200         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
23201         move from floating point to shift amount register.
23202         (emit_move_sequence): Remove secondary reload support for floating
23203         point to shift amount amount register copies.
23204         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
23205         amount register copies.
23206         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
23207         register, return false if mode isn't a scalar integer mode.
23208         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
23209
23210 2011-04-08  Richard Guenther  <rguenther@suse.de>
23211
23212         * gimple.c (gimple_call_flags): Remove kludge.
23213
23214 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
23215
23216         * sel-sched.c (sel_region_init): Move call to
23217         sel_setup_region_sched_flags after setup_current_loop_nest.
23218
23219 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
23220
23221         PR rtl-optimization/48272
23222         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
23223         init_insn_reg_pressure_info.  Adjust a caller.
23224         * sched-int.h (init_insn_reg_pressure_info): Declare.
23225         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
23226         when sched-pressure is enabled.
23227
23228 2011-04-08  Richard Guenther  <rguenther@suse.de>
23229
23230         * gimple.c (gimple_set_modified): Do not queue calls to
23231         MODIFIED_NORETURN_CALLS here ...
23232         * tree-ssa-operands.c (update_stmt_operands): ... but here.
23233
23234 2011-04-08  Richard Guenther  <rguenther@suse.de>
23235
23236         PR lto/48467
23237         * toplev.c (lang_dependent_init): Do not open asm_out_file
23238         in WPA mode, nor perform debug machinery initialization.
23239         (finalize): Do not unlink asm_out_file in WPA mode.
23240
23241 2011-04-08  Richard Guenther  <rguenther@suse.de>
23242
23243         * gimple.h (gimple_call_fntype): New function.
23244         (gimple_call_return_type): Use it.
23245         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
23246         * gimple-low.c (gimple_check_call_args): Likewise.
23247         * gimple.c (gimple_call_flags): Likewise.
23248         (gimple_call_arg_flags): Likewise.
23249         (gimple_call_return_flags): Likewise.
23250         * tree-cfg.c (verify_gimple_call): Likewise.
23251         (do_warn_unused_result): Likewise.
23252         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
23253         * value-prof.c (gimple_ic_transform): Fix fndecl check.
23254
23255 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
23256
23257         PR rtl-optimization/48235
23258         * sel-sched.c (code_motion_process_successors): Recompute the last
23259         insn in basic block if control flow changed.
23260         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
23261         Update condition for ilist_remove.
23262
23263 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
23264
23265         PR rtl-optimization/48302
23266         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
23267         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
23268         it to record added preheader blocks.
23269         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
23270         on to sel_add_loop_preheaders.
23271         (sel_region_init): Move call to setup_current_loop_nest after
23272         sel_init_bbs.
23273
23274 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
23275
23276         PR target/48273
23277         * cfgloop.h (loop_has_exit_edges): New helper.
23278         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
23279         non-clonable.
23280         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
23281         that have no exit edges.
23282
23283 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
23284
23285         PR rtl-optimization/48442
23286         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
23287         all callers.  Adjust assert.
23288
23289 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
23290
23291         PR tree-optimization/48377
23292         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
23293         is_packed to true even for types with smaller TYPE_ALIGN than
23294         TYPE_SIZE.
23295
23296 2011-04-08  Richard Guenther  <rguenther@suse.de>
23297
23298         PR bootstrap/48513
23299         * doc/tm.texi: Re-generate.
23300
23301 2011-04-08  Wei Guozhi  <carrot@google.com>
23302
23303         PR target/47855
23304         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
23305         * config/arm/arm.c (arm_attr_length_push_multi): New function.
23306         * config/arm/arm.md (*push_multi): Change the length computation to
23307         call a C function.
23308
23309 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
23310
23311         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
23312         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
23313         * doc/tm.texi: Regenerate.
23314         * system.h (ASM_OUTPUT_BSS): Poison.
23315         * varasm.c (asm_output_bss): Remove function.
23316         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
23317
23318         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
23319         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
23320         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
23321         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
23322         Likewise.
23323         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
23324         Likewise.
23325         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
23326         Likewise.
23327         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
23328
23329 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
23330
23331         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
23332         EnumValue lines.
23333
23334 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
23335
23336         * config/m68k/m68k.c (m68k_handle_option): Don't handle
23337         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
23338         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
23339         OPT_mcpu32.
23340         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
23341         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
23342         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
23343         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
23344         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
23345         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
23346         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
23347         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
23348         options.  Don't map other m68k options manually.  Don't handle
23349         old-style options as canonical.
23350         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
23351         * doc/install.texi (m68k-*-*): Document binutils version requirement.
23352
23353 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
23354
23355         * basic-block.h (force_nonfallthru): Move to...
23356         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
23357         (force_nonfallthru): ...here.
23358         * cfghooks.c (force_nonfallthru): New function.
23359         * cfgrtl.c (force_nonfallthru): Rename into...
23360         (rtl_force_nonfallthru): ...this.
23361         (commit_one_edge_insertion): Do not set AUX field.
23362         (commit_edge_insertions): Do not discover new basic blocks.
23363         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
23364         (cfg_layout_rtl_cfg_hooks): Likewise.
23365         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
23366         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
23367         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
23368
23369 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
23370
23371         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
23372         Remove macros.
23373
23374 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
23375
23376         * config/i386/sse.md: Update copyright year.
23377         (avxcvtvecmode): Remove.
23378         (sse_movhlps): Merge with *avx_movhlps.
23379         (sse_movlhps): Merge with *avx_movlhps.
23380         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
23381         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
23382         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
23383         (sse_loadhps): Merge with *avx_loadhps.
23384         (sse_storelps): Merge with *avx_storelps.
23385         (sse_loadlps): Merge with *avx_loadlps.
23386         (sse_movss): Merge with *avx_movss.
23387         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
23388         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
23389         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
23390         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
23391         (vec_set<mode>_0): Ditto.
23392         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
23393         (sse4_1_insertps): Merge with *avx_insertps.
23394         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
23395         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
23396         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
23397         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
23398         (sse2_storehpd): Merge with *avx_storehpd.
23399         (sse2_loadhpd): Merge with *avx_loadhpd.
23400         (sse2_loadlpd): Merge with *avx_loadlpd.
23401         (sse2_movsd): Merge with *avx_movsd.
23402         (*vec_concatv2df): Merge with *vec_concatv2df.
23403
23404 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
23405
23406         PR debug/48343
23407         * combine.c (combine_instructions): Add last_combined_insn,
23408         update it if insn is after it, pass it to all try_combine calls.
23409         (try_combine): Add last_combined_insn parameter, pass it instead of
23410         i3 to propagate_for_debug.
23411
23412 2011-04-07  Nick Clifton  <nickc@redhat.com>
23413
23414         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
23415         to handle MDR <-> data register transfers.
23416         (movhi_internal): Likewise.
23417
23418 2011-04-07  Alan Modra  <amodra@gmail.com>
23419
23420         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
23421         previous stack info.
23422
23423 2011-04-07  Tom de Vries  <tom@codesourcery.com>
23424
23425         PR target/43920
23426         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
23427         flow_find_cross_jump.  Swap variables to implement backward replacement.
23428         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
23429
23430 2011-04-07  Tom de Vries  <tom@codesourcery.com>
23431
23432         PR target/43920
23433         * cfgcleanup.c (walk_to_nondebug_insn): New function.
23434         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
23435         and bb2.
23436         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
23437         src1 or src2.  Redirect edges to the last basic block.  Update
23438         frequency and count on multiple basic blocks in case of fallthru.
23439
23440 2011-04-07  Tom de Vries  <tom@codesourcery.com>
23441
23442         PR target/43920
23443         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
23444         function.
23445         (old_insns_match_p): Change return type.  Replace return false/true
23446         with return dir_none/dir_both.  Use can_replace_by.
23447         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
23448         direction from dir_p.  Register replacement direction in dir, last_dir
23449         and afterlast_dir.  Handle new return type of old_insns_match_p using
23450         merge_dir.  Return replacement direction in dir_p.
23451         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
23452         return type of old_insns_match_p.
23453         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
23454         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
23455         flow_find_cross_jump.
23456         * basic-block.h (enum replace_direction): New type.
23457         (flow_find_cross_jump): Add parameter to declaration.
23458
23459 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
23460
23461         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
23462         (AVXMODEDCVTPS2DQ): Ditto.
23463         (VEC_FLOAT_MODE): Ditto.
23464         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
23465         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
23466         (<any_logic:code><mode>3): Use VF mode iterator.
23467         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
23468         Use VF mode iterator.
23469         (copysign<mode>3): Use VF mode iterator.
23470         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
23471         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
23472         (*<any_logic:code><MODEF:mode>3): Merge with
23473         *avx_<any_logic:code><MODEF:mode>3.
23474         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
23475         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
23476         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
23477         (avx_cvtdq2ps<avxmodesuffix>): Remove.
23478         (sse2_cvtdq2ps): Use %v modifier.
23479         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
23480         (avx_cvtps2dq<avxmodesuffix>): Remove.
23481         (sse2_cvtps2dq): Use %v modifier.
23482         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
23483         (avx_cvttps2dq<avxmodesuffix>): Remove.
23484         (sse2_cvttps2dq): Use %v modifier.
23485         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
23486         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
23487         (sse2_cvtsd2siq): Fix insn template.
23488         (sse2_cvtsd2siq_2): Ditto.
23489         (sse2_cvttsd2siq): Ditto.
23490         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
23491         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
23492
23493 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
23494
23495         * gcov-io.c: Use GCC Runtime Library Exception.
23496
23497 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
23498
23499         PR debug/48466
23500         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
23501         as base_reg whatever register reg has been eliminated to, instead
23502         of hardcoding STACK_POINTER_REGNUM.
23503
23504 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
23505
23506         * doc/tm.texi.in: Document C target hooks as separate from general
23507         target hooks.
23508         * doc/tm.texi: Regenerate.
23509         * genhooks.c (struct hook_desc): Add docname field.
23510         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
23511         docname field.
23512         (hook_array): Include c-target.def.
23513         (emit_documentation): Use docname field in output.
23514         (emit_init_macros): Take docname argument.  Only emit definitions
23515         for hooks matching docname.
23516         (main): Expect additional arguments in all cases.  Pass argument
23517         to emit_init_macros.
23518         * target.def: Move initial macro definitions and comments to
23519         target-hooks-macros.h.
23520         (gcc_targetcm): Move to c-family/c-target.def.
23521         * target.h (targetcm): Move declaration to c-family/c-target.h.
23522         * targhooks.c (default_handle_c_option): Move to
23523         c-family/c-opts.c.
23524         * targhooks.h (default_handle_c_option): Move declaration to
23525         c-family/c-common.h.
23526         * target-hooks-macros.h: New file.
23527         * config.gcc (target_has_targetcm): Define and use to add to
23528         c_target_objs and cxx_target_objs.
23529         * config/default-c.c: New file.
23530         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
23531         of target.h and target-def.h.
23532         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
23533         (darwin_objc_construct_string, darwin_cfstring_ref_p,
23534         darwin_check_cfstring_format_arg): Make static.
23535         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
23536         TARGET_STRING_OBJECT_REF_TYPE_P,
23537         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
23538         * config/darwin-protos.h (darwin_objc_construct_string,
23539         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
23540         declare.
23541         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
23542         TARGET_STRING_OBJECT_REF_TYPE_P,
23543         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
23544         * config/t-darwin (darwin-c.o): Update dependencies.
23545         * system.h (TARGET_HAS_TARGETCM): Poison.
23546         * Makefile.in (TARGET_H): Update.
23547         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
23548         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
23549         (default-c.o): New target.
23550         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
23551         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
23552         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
23553         c-target.def.
23554         (build/genhooks.o): Update dependencies.
23555
23556 2011-04-06  Richard Guenther  <rguenther@suse.de>
23557
23558         * ipa-inline.c (enum inlining_mode): Remove.
23559         (cgraph_flatten): Use some other token.
23560         (cgraph_edge_early_inlinable_p): New function, split out from ...
23561         (cgraph_perform_always_inlining): New function, split out from ...
23562         (cgraph_decide_inlining_incrementally): ... here.
23563         (cgraph_mark_inline_edge): Adjust.
23564         (cgraph_early_inlining): Re-structure.
23565         (pass_early_inline): Require SSA form.
23566
23567 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
23568             Julian Brown  <julian@codesourcery.com>
23569             Mark Shinwell  <shinwell@codesourcery.com>
23570
23571         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
23572         LO_REGS only for Thumb-1.
23573         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
23574         be used in short instructions when optimising for size on Thumb-2.
23575
23576 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
23577
23578         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
23579         associated with user returns to be preserved.
23580
23581 2011-04-06  Tristan Gingold  <gingold@adacore.com>
23582
23583         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
23584         symbol_queue_size, DBXOUT_DECR_NESTING,
23585         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
23586         if XCOFF_DEBUGGING_INFO.
23587
23588 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
23589
23590         * config/i386/i386.md (attribute isa): New.
23591         (attribute enabled): New.
23592         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
23593         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
23594         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
23595         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
23596         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
23597         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
23598         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
23599         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
23600
23601         * config/i386/sse.md (VF): New mode iterator.
23602         (VF1): Ditto.
23603         (VF2): Ditto.
23604         (VF_128): Ditto.
23605         (SSEMODEF4): Remove.
23606         (attribute sse): Handle V8SF and V4DF modes.
23607         (<absneg:code><mode>2): Use VF mode iterator.
23608         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
23609         mode iterator.
23610         (<plusminus_insn><mode>3): Use VF mode iterator.
23611         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
23612         Use VF mode iterator.
23613         (<sse>_vm<plusminus_insn><mode>3): Merge with
23614         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
23615         (mul<mode>3): Use VF mode iterator.
23616         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
23617         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
23618         mode iterator.
23619         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
23620         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
23621         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
23622         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
23623         mode iterator.
23624         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
23625         Use VF1 mode iterator.
23626         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
23627         (sqrt<VF2:mode>2): New expander.
23628         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
23629         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
23630         and sqrtv2df2.  Use VF mode iterator.
23631         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
23632         mode iterator.
23633         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
23634         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
23635         Use VF1 mode iterator.
23636         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
23637         (<smaxmin:code><mode>3): Use VF mode iterator.
23638         (*<smaxmin:code><mode>3_finite): Merge with
23639         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
23640         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
23641         (<sse>_vm<smaxmin:code><mode>2): Merge with
23642         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
23643         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
23644         mode iterator.
23645         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
23646         mode iterator.
23647         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
23648         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
23649         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
23650         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
23651         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
23652         VF mode iterator.
23653         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
23654         Use VF_128 mode iterator.
23655         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
23656         mode iterator.
23657         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
23658         VF_128 mode iterator.
23659         (vcond<mode>): Use VF mode iterator.
23660         * config/i386/predicates.md (sse_comparison_operator): Merge with
23661         avx_comparison_float_operator.  Do not declare as special_predicate.
23662         * config/i386/i386.c (struct builtin_description): Update for renamed
23663         compare patterns.
23664         (ix86_expand_args_builtin): Ditto.
23665         (ix86_expand_sse_compare_mask): Ditto.
23666
23667 2011-04-06  Richard Guenther  <rguenther@suse.de>
23668
23669         * tree-inline.c (estimate_num_insns): For calls simply account
23670         for all passed arguments and a used return value.
23671
23672 2011-04-06  Richard Guenther  <rguenther@suse.de>
23673
23674         PR tree-optimization/47663
23675         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
23676         call_stmt_time fields.
23677         (cgraph_edge_inlinable_p): Declare.
23678         (cgraph_edge_recursive_p): New inline function.
23679         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
23680         (cgraph_clone_edge): Copy it.
23681         * ipa-inline.c (cgraph_estimate_edge_time): New function.
23682         Account for call stmt time.
23683         (cgraph_estimate_time_after_inlining): Take edge argument.
23684         (cgraph_estimate_edge_growth): Account call stmt size.
23685         (cgraph_estimate_size_after_inlining): Take edge argument.
23686         (cgraph_mark_inline_edge): Adjust.
23687         (cgraph_check_inline_limits): Likewise.
23688         (cgraph_recursive_inlining_p): Remove.
23689         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
23690         (cgraph_decide_recursive_inlining): Take edge argument and
23691         adjust.
23692         (cgraph_decide_inlining_of_small_functions): Do not avoid
23693         diags for recursive inlining here.
23694         (cgraph_flatten): Adjust.
23695         (cgraph_decide_inlining_incrementally): Likewise.
23696         (estimate_function_body_sizes): Remove call cost handling.
23697         (compute_inline_parameters): Initialize caller edge call costs.
23698         (cgraph_estimate_edge_growth): New function.
23699         (cgraph_estimate_growth): Use it.
23700         (cgraph_edge_badness): Likewise.
23701         (cgraph_check_inline_limits): Take an edge argument.
23702         (cgraph_decide_inlining_of_small_functions): Adjust.
23703         (cgraph_decide_inlining): Likewise.
23704         * tree-inline.c (estimate_num_insns): Only account for call
23705         return value if it is used.
23706         (expand_call_inline): Avoid diagnostics on recursive inline
23707         functions here.
23708         * lto-cgraph.c (lto_output_edge): Output edge call costs.
23709         (input_edge): Input edge call costs.
23710
23711 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23712
23713         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
23714
23715 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
23716
23717         * doc/invoke.texi (Spec Files): Fix typo.
23718
23719 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
23720
23721         * profile.c (branch_prob): Move declaration of local variable.  Remove
23722         obsolete ??? comment.  Expand the location explicitly instead of using
23723         the LOCATION_FILE and LOCATION_LINE macros.
23724
23725 2011-04-06  Wei Guozhi  <carrot@google.com>
23726
23727         PR target/47855
23728         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
23729         (arm_cond_branch): Likewise.
23730         (arm_cond_branch_reversed): Likewise.
23731         (arm_jump): Likewise.
23732         (push_multi): Likewise.
23733         * config/arm/constraints.md (Py): New constraint.
23734
23735 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
23736
23737         PR bootstrap/48471
23738         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
23739         Move these...
23740         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
23741         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
23742         #ifdef DBX_DEBUGGING_INFO.
23743
23744 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
23745
23746         PR bootstrap/48403
23747         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
23748         if old and new states differ.
23749
23750 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
23751
23752         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
23753         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
23754         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
23755         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
23756         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
23757         mcfv4e): Use Alias.
23758         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
23759         ColdFire options to -mcpu= options.
23760
23761 2011-04-05  Jeff Law  <law@redhat.com>
23762
23763         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
23764         check if BB is a successor of LOOP->header and return
23765         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
23766
23767 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
23768
23769         * cprop.c (struct reg_use): Remove.
23770         (reg_use_table): Make an array of RTX.
23771         (find_used_regs, constprop_register, local_cprop_pass,
23772         bypass_block): Simplify users of reg_use_table.
23773         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
23774         on one of the uses found by find_used_regs.
23775
23776 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
23777
23778         PR bootstrap/48469
23779         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
23780         declaration.
23781
23782 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
23783
23784         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
23785         as an rtx.
23786         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
23787
23788 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
23789
23790         PR middle-end/48441
23791         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
23792
23793 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
23794
23795         * combine.c: Include obstack.h.
23796         (struct insn_link): Define.
23797         (uid_log_links): Adjust type.
23798         (FOR_EACH_LOG_LINK): New macro.
23799         (insn_link_obstack): Declare.
23800         (alloc_insn_link): Define.
23801         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
23802         type of link variables.
23803         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
23804         (try_combine, record_promoted_values, distribute_notes): Likewise.
23805         (distribute_links): Likewise.  Tweak prototype.
23806         (clear_log_links): Delete.
23807         (adjust_for_new_dest): Call alloc_insn_link.
23808         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
23809
23810 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
23811
23812         * gcse.c (modify_mem_list): Convert to an array of VECs.
23813         (canon_modify_mem_list, compute_transp): Tweak formatting.
23814         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
23815         (load_killed_in_block_p): Likewise.
23816         (record_last_mem_set_info): Likewise.
23817         (clear_modify_mem_tables): Likewise.
23818
23819 2011-04-05  Tom de Vries  <tom@codesourcery.com>
23820
23821         PR middle-end/48461
23822         * function.c (emit_use_return_register_into_block): Only define if
23823         HAVE_return.
23824
23825 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
23826
23827         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
23828
23829 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
23830
23831         * config/rx/rx-opts.h: New.
23832         * config/rx/rx.c (rx_cpu_type): Remove.
23833         (rx_handle_option): Don't assert that global structures are in
23834         use.  Access variables via opts pointer.  Defer most handling of
23835         OPT_mint_register_.  Use error_at.
23836         (rx_option_override): Handle deferred OPT_mint_register_ here.
23837         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
23838         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
23839         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
23840         (rx_cpu_types): New Enum and EnumValue entries.
23841         (mint-register=): Use Defer and use Var accordingly.
23842
23843 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
23844
23845         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
23846         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
23847         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
23848         Move these...
23849         (debug_free_queue, debug_nesting, symbol_queue_index):
23850         ...and these...
23851         * dbxout.c: ...to here.  Make static.
23852
23853 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
23854
23855         * gcse.c (modify_pair): Define.  Define a VEC of it.
23856         (canon_modify_mem_list): Convert to an array of VECs.
23857         (free_insn_expr_list_list): Delete.
23858         (clear_modify_mem_tables): Call VEC_free instead.
23859         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
23860         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
23861         (canon_list_insert, compute_transp): Likewise.
23862
23863 2011-04-05  Tom de Vries  <tom@codesourcery.com>
23864
23865         PR target/43920
23866         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
23867         for size.
23868
23869 2011-04-05  Tom de Vries  <tom@codesourcery.com>
23870
23871         PR target/43920
23872         * function.c (emit_use_return_register_into_block): New function.
23873         (thread_prologue_and_epilogue_insns): Use
23874         emit_use_return_register_into_block.
23875
23876 2011-04-05  Tom de Vries  <tom@codesourcery.com>
23877
23878         PR target/43920
23879         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
23880         insn.
23881
23882 2011-04-05  Tom de Vries  <tom@codesourcery.com>
23883
23884         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
23885
23886 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
23887
23888         * config/arm/arm.md (define_constants for unspec): Replace with
23889         define_c_enum.
23890         (define_constants for unspecv): Replace with define_c_enum.
23891         * config/arm/neon.md (define_constants for unspec): Replace with
23892         define_c_enum.
23893
23894 2011-04-04  Richard Henderson  <rth@redhat.com>
23895
23896         PR bootstrap/48400
23897         * dwarf2out.c (output_line_info): Always emit line info from
23898         at least one section.
23899         (dwarf2out_init): Create text_section_line_info here ...
23900         (set_cur_line_info_table): ... not here.
23901
23902 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
23903
23904         PR target/48380
23905         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
23906         not called.
23907
23908         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
23909
23910 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
23911
23912         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
23913         (expr_equiv_p): Remove.
23914         (insert_set_in_table): Look at <dest, src> pair instead of expr.
23915         (hash_scan_set): Update call to insert_set_in_table.
23916         (dump_hash_table): Dump <dest, src> pair.
23917         (lookup_set): Simplify.  Lookup <dest, src> pair.
23918         (compute_transp): Remove, fold heavily simplified code into...
23919         (compute_local_properties): ...here.  Expect COMP and TRANSP
23920         unconditionally.
23921         (find_avail_set): Take set directly from struct expr.
23922         (find_bypass-set): Likewise.
23923         (bypass_block): Likewise.
23924         (cprop_insn): Likewise.  Remove redundant INSN_P test.
23925
23926         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
23927         checks on form of COND from find_implicit_sets to here.
23928         (find_implicit_sets): Cleanup control flow. Split critical edges
23929         if it exposes implicit sets.  Allocate/resize implicit_sets as
23930         necessary.
23931         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
23932         changed something.  Run df_analyze after find_implicit_sets if any
23933         edges were split.  Do not allocate implicit_sets here.
23934
23935         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
23936         (gcse_obstack): Renamed to cprop_obstack.
23937         (GNEW, GNEWVEC, GNEWVAR): Remove.
23938         (gmalloc): Remove.
23939         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
23940         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
23941         (gcse_alloc): Likewise, and rename to cprop_alloc.
23942         (alloc_gcse_men, free_gcse_mem): Remove.
23943         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
23944         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
23945         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
23946
23947         * cprop.c (oprs_not_set_p): Remove.
23948         (mark_set, mark_clobber): Remove.
23949         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
23950         (reg_not_set_p): New function.
23951         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
23952         (cprop_insn): Likewise.
23953         (cprop_jump): Use FOR_EACH_EDGE.
23954
23955 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
23956
23957         PR bootstrap/48403
23958         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
23959         (rank_for_schedule): Use scheduled_insns vector instead of
23960         last_scheduled_insn.
23961         (ok_for_early_queue_removal): Likewise.
23962         (queue_to_ready): Search forward in nonscheduled_insns_begin if
23963         we have a dbg_cnt.
23964         (choose_ready): Likewise.
23965         (commit_schedule): Use VEC_iterate.
23966         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
23967         a dbg_cnt, use it and ensure the first insn is in the ready list.
23968         (haifa_sched_init): Allocate scheduled_insns.
23969         (sched_extend_ready_list): Don't allocate it; reserve space.
23970         (haifa_sched_finish): Free it.
23971
23972 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
23973
23974         * optc-gen.awk: Always remove type from Variable entry before
23975         recording in var_seen.
23976
23977 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
23978
23979         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
23980         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
23981         call to tidy_fallthru_edges.
23982
23983 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
23984
23985         * doc/options.texi (ToLower): Document.
23986         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
23987         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
23988         * opts.h (cl_option): Add cl_tolower field.
23989         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
23990         arguments with lowercase strings.
23991         * config/rx/rx.opt (mcpu=): Add ToLower.
23992         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
23993         argument.
23994
23995 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
23996
23997         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
23998
23999 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
24000
24001         * config/vax/vax.c: Include reload.h.
24002
24003 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
24004
24005         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
24006         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
24007         (sparc_preferred_reload_class): New function.
24008
24009 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
24010
24011         PR debug/48401
24012         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
24013         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
24014
24015 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
24016
24017         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
24018         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
24019
24020 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
24021
24022         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
24023         (ASM_OUTPUT_ALIGNED_BSS): Define.
24024
24025 2011-04-03  Michael Matz  <matz@suse.de>
24026
24027         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
24028         and next_slot members.
24029         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
24030         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
24031         (lto_streamer_cache_append): Declare.
24032         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
24033         unsigned index, remove offset parameter, ensure that we append
24034         or update existing entries.
24035         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
24036         parameter, update next_slot for append.
24037         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
24038         parameter.
24039         (lto_streamer_cache_insert_at): Likewise.
24040         (lto_streamer_cache_append): New function.
24041         (lto_streamer_cache_lookup): Use unsigned index.
24042         (lto_streamer_cache_get): Likewise.
24043         (lto_record_common_node): Don't test tree_node_can_be_shared.
24044         (preload_common_node): Adjust call to lto_streamer_cache_insert.
24045         (lto_streamer_cache_delete): Don't free offsets member.
24046         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
24047         (lto_output_string_with_length): Use lto_output_data_stream.
24048         (lto_output_tree_header): Remove ix parameter, don't write it.
24049         (lto_output_builtin_tree): Likewise.
24050         (lto_write_tree): Adjust callers to above, don't track and write
24051         offset, write unsigned index.
24052         (output_unreferenced_globals): Don't emit all global vars.
24053         (write_global_references): Use unsigned indices.
24054         (lto_output_decl_state_refs): Likewise.
24055         (write_symbol): Likewise.
24056         * lto-streamer-in.c (lto_input_chain): Move earlier.
24057         (input_function): Use unsigned index.
24058         (input_alias_pairs): Don't read and then ignore all global vars.
24059         (lto_materialize_tree): Remove ix_p parameter, don't read index,
24060         don't pass it back, use lto_streamer_cache_append.
24061         (lto_register_var_decl_in_symtab): Use unsigned index.
24062         (lto_register_function_decl_in_symtab): Likewise.
24063         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
24064         index.
24065         (lto_get_builtin_tree): Don't read index, use
24066         lto_streamer_cache_append.
24067         (lto_read_tree): Adjust call to lto_materialize_tree.
24068
24069         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
24070         don't use function calls in arguments to MIN.
24071
24072         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
24073         twice.
24074
24075         * gimple.c (gimple_type_leader_entry): Mark deletable.
24076
24077 2011-04-03  Alan Modra  <amodra@gmail.com>
24078
24079         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
24080
24081 2011-04-03  Michael Matz  <matz@suse.de>
24082
24083         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
24084         an integer.
24085         * tree.h (tree_decl_non_common.vindex): Adjust comment.
24086
24087 2011-04-03  Michael Matz  <matz@suse.de>
24088
24089         * cgraphbuild.c (record_reference): Canonicalize constructor values.
24090         * gimple-fold.c (canonicalize_constructor_val): Accept being called
24091         without function context.
24092         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
24093         current_function_decl and cfun.
24094
24095 2011-04-03  Michael Matz  <matz@suse.de>
24096
24097         * tree.c (decl_init_priority_insert): Don't create entry for
24098         default priority.
24099         (decl_fini_priority_insert): Ditto.
24100         (fields_compatible_p, find_compatible_field): Remove.
24101         * tree.h (fields_compatible_p, find_compatible_field): Remove.
24102         * gimple.c (gimple_compare_field_offset): Adjust block comment.
24103
24104 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
24105
24106         * combine.c (try_combine): Remove useless local variable.
24107
24108 2011-04-03  Richard Guenther  <rguenther@suse.de>
24109             Ira Rosen  <ira.rosen@linaro.org>
24110
24111         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
24112         non-variable offsets and compare the remaining bases of the two
24113         accesses instead of looking for exact same data-ref.
24114
24115 2011-04-02  Kai Tietz  <ktietz@redhat.com>
24116
24117         PR target/48416
24118         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
24119
24120         * i386.c (ix86_is_msabi_thiscall): New helper function.
24121         (ix86_is_type_thiscall): New helper function.
24122         (ix86_comp_type_attributes): Handle thiscall for method-functions
24123         special.
24124         (init_cumulative_args): Likewise.
24125         (find_drap_reg): Likewise.
24126         (ix86_static_chain): Likewise.
24127         (x86_this_parameter): Likewise.
24128         (x86_output_mi_thunk): Likewise.
24129
24130 2011-04-01  Olivier Hainque  <hainque@adacore.com>
24131             Nicolas Setton  <setton@adacore.com>
24132             Eric Botcazou  <ebotcazou@adacore.com>
24133
24134         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
24135         (add_gnat_descriptive_type_attribute): New function.
24136         (gen_array_type_die): Call it.
24137         (gen_enumeration_type_die): Likewise.
24138         (gen_struct_or_union_type_die): Likewise.
24139         (modified_type_die): Likewise.
24140         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
24141         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
24142         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
24143
24144 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
24145
24146         PR bootstrap/48148
24147         * dwarf2out.c (resolve_addr): Don't call force_decl_die
24148         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
24149
24150         Revert:
24151         2011-03-17  Richard Guenther  <rguenther@suse.de>
24152
24153         PR bootstrap/48148
24154         * lto-cgraph.c (input_overwrite_node): Clear the abstract
24155         origin for decls in other ltrans units.
24156         (input_varpool_node): Likewise.
24157
24158 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
24159
24160         PR middle-end/48335
24161         * expr.c (expand_assignment): Handle all possibilities
24162         if TO_RTX is CONCAT.
24163         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
24164         (store_split_bit_field): If SUBREG_REG (op0) or
24165         op0 itself has smaller mode than word, return it
24166         for offset 0 and const0_rtx for out-of-bounds stores.
24167         If word is const0_rtx, skip it.
24168
24169 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
24170
24171         * config/h8300/h8300.c (print_operand_address): Rename to...
24172         (h8300_print_operand_address): ...this. Make static. Adjust comments.
24173         Call h8300_print_operand and h8300_print_operand_address instead of
24174         print_operand and print_operand_address. Declare.
24175         (print_operand): Renake to...
24176         (h8300_print_operand): ...this. Make static. Adjust comments.
24177         Call h8300_print_operand instead of print_operand. Declare.
24178         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
24179         (h8300_register_move_cost): Likewise.
24180         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
24181         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
24182         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
24183         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
24184         * config/h8300/h8300-protos.h (print_operand): Delete.
24185         (print_operand_address): Delete.
24186
24187 2011-04-01  Richard Henderson  <rth@redhat.com>
24188
24189         PR 48400
24190         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
24191         in strict mode before dwarf4.  Re-order tests to early out
24192         before switching sections.
24193
24194 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
24195
24196         * config/h8300/constraints.md: New file.
24197         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
24198         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
24199         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
24200         * config/h8300/predicates.md (bit_operand): Likewise.
24201         (incdec_operand): Use satisfies_constraint_M and
24202         satisfies_constraint_O.  Don't use C code block.
24203         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
24204         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
24205         (compute_mov_length): Use satisfies_constraint_G.
24206         (fix_bit_operand): Use satisfies_constraint_U.
24207         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
24208         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
24209         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
24210         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
24211         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
24212         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
24213         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24214         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
24215         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
24216         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
24217         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
24218         (EXTRA_MEMORY_CONSTRAINT): Delete.
24219
24220 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
24221             Michael Meissner  <meissner@linux.vnet.ibm.com>
24222
24223         PR target/48262
24224         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
24225         operands, as per the specifications.
24226
24227         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
24228         (vec_extract_evenv4sf): Ditto.
24229         (vec_extract_evenv8hi): Ditto.
24230         (vec_extract_evenv16qi): Ditto.
24231         (vec_extract_oddv4si): Ditto.
24232
24233 2011-03-31  Mark Wielaard  <mjw@redhat.com>
24234
24235         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
24236         high_pc attribute if the CU has no associated code. Only output
24237         DW_AT_entry_pc for CU if not generating strict dwarf and
24238         dwarf_version < 4.
24239
24240 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
24241
24242         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
24243         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
24244         out of ...
24245         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
24246         * final.c (final_start_function): Call the new function rather
24247         than using a NULL argument for dwarf2out_frame_debug.
24248
24249         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
24250         that contains the prologue.
24251
24252         * haifa-sched.c (queue_insn): New arg REASON.  All callers
24253         changed.  Print it in debugging output.
24254
24255         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
24256
24257         * sched-ebb.c (begin_schedule_ready): Remove second argument.
24258         Split most of the code into...
24259         (begin_move_insn): ... here.  New function.
24260         (ebb_sched_info): Add a pointer to it.
24261         * haifa-sched.c (scheduled_insns): New static variable.
24262         (sched_extend_ready_list): Allocate it.
24263         (schedule_block): Use it to record the order of scheduled insns.
24264         Perform RTL changes to move insns only after all scheduling
24265         decisions have been made.
24266         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
24267         begin_move_insn field.
24268         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
24269         * sched-int.h (struct haifa_sched_info): Remove second argument
24270         from begin_schedule_ready hook.  Add new member begin_move_insn.
24271         * sched-rgn.c (begin_schedule_ready): Remove second argument.
24272         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
24273
24274         * haifa-sched.c (prune_ready_list): New function, broken out of
24275         schedule_block.
24276         (schedule_block): Use it.
24277
24278 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24279
24280         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
24281
24282 2011-04-01  Kai Tietz  <ktietz@redhat.com>
24283
24284         * config.gcc (*-*-mingw*): Allow as option the
24285         posix threading model.
24286         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
24287         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
24288         definition.
24289         (CPP_SPEC): Add pthread/no-pthread handling.
24290         (LIB_SPEC): Likewise.
24291         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
24292         (LIB_SPEC): Likewise.
24293         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
24294         flag to pass -pthread option for shared libgcc build.
24295         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
24296         for shared libgcc build.
24297         * config/i386/t-mingw-pthread: New file.
24298         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
24299         New define to enable use of library pthread by default.
24300         * config/i386/mingw.opt (pthread): New driver option.
24301         (no-pthread): New driver option.
24302         * config/i386/cygming.opt: Make sure trailing empty line is retained.
24303         * config/i386/mingw-w64.opt: Likewise.
24304
24305 2011-04-01  Gary Funck  <gary@intrepid.com>
24306
24307         * c-decl.c (grokdeclarator): Fix formatting.
24308
24309 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
24310
24311         * expr.c (emit_block_move_via_movmem): Use n_generator_args
24312         instead of n_operands.
24313         (set_storage_via_setmem): Likewise.
24314         * optabs.c (maybe_gen_insn): Likewise.
24315         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
24316         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
24317         (mips_expand_builtin_direct): Likewise.
24318         * config/spu/spu.c (expand_builtin_args): Likewise.
24319
24320 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
24321
24322         * recog.h (insn_data_d): Add n_generator_args.
24323         * genoutput.c (data): Likewise.
24324         (output_insn_data): Print it.
24325         (max_opno, num_dups): Delete.
24326         (scan_operands): Just fill in "d->operand[...]".
24327         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
24328
24329 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
24330
24331         * gensupport.h (pattern_stats): New structure.
24332         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
24333         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
24334         (max_operand_1, max_operand_vec): Delete.
24335         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
24336
24337 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
24338
24339         * emit-rtl.c (emit_pattern_after_setloc): New function.
24340         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
24341         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
24342         (emit_pattern_after): New function.
24343         (emit_insn_after, emit_jump_insn_after): Call it.
24344         (emit_call_insn_after, emit_debug_insn_after): Likewise.
24345         (emit_pattern_before_setloc): New function.
24346         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
24347         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
24348         Likewise.
24349         (emit_pattern_before): New function.
24350         (emit_insn_before, emit_jump_insn_before): Call it.
24351         (emit_call_insn_before, emit_debug_insn_before): Likewise.
24352
24353 2011-03-31  Richard Henderson  <rth@redhat.com>
24354
24355         * dwarf2out.c (dw_separate_line_info_ref): Remove.
24356         (dw_separate_line_info_entry): Remove.
24357         (enum dw_line_info_opcode): New.
24358         (dw_line_info_entry): Use it.
24359         (dw_line_info_table, dw_line_info_table_p): New.
24360         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
24361         (line_info_table, line_info_label_num): Remove.
24362         (line_info_table_in_use): Remove.
24363         (separate_line_info_table): Remove.
24364         (separate_line_info_table_allocated): Remove.
24365         (separate_line_info_table_in_use): Remove.
24366         (LINE_INFO_TABLE_INCREMENT): Remove.
24367         (line_info_label_num): New.
24368         (cur_line_info_table): New.
24369         (text_section_line_info, cold_text_section_line_info): New.
24370         (separate_line_info): New.
24371         (SEPARATE_LINE_CODE_LABEL): Remove.
24372         (print_dwarf_line_table): Remove.
24373         (debug_dwarf): Don't dump it.
24374         (output_one_line_info_table): New.
24375         (output_line_info): Use it.
24376         (new_line_info_table): New.
24377         (set_cur_line_info_table): New.
24378         (dwarf2out_switch_text_section): Use it.
24379         (dwarf2out_begin_function): Likewise.
24380         (push_dw_line_info_entry): New.
24381         (dwarf2out_source_line): Rewrite for new line info tables.
24382         (dwarf2out_init): Remove dead initailizations.
24383
24384 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
24385
24386         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
24387         various flags.
24388         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
24389         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
24390         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
24391         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
24392         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
24393         * opt-functions.awk (flag_init, switch_bit_fields): New.
24394         (switch_flags): Don't handle flags moved to bit-fields.  Don't
24395         generate CL_MISSING_OK or CL_SAVE.
24396         * optc-gen.awk: Update to generate bit-field output as well as
24397         flags field.
24398         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
24399         bit-field instead of CL_REJECT_DRIVER flag.
24400         * opts-common.c (generate_canonical_option,
24401         decode_cmdline_option): Use bit-fields instead of CL_* flags.
24402         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
24403         instead of CL_REJECT_NEGATIVE flag.
24404         * toplev.c (print_switch_values): Use cl_report bit-field instead
24405         of CL_REPORT flag.
24406
24407 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
24408
24409         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
24410         a zero minimum index only if it is redundant.
24411
24412 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
24413
24414         PR rtl-optimization/48381
24415         * ira-color.c (assign_hard_reg): Use hard reg set intersection
24416         instead of ira_class_hard_reg_index for calculating conflicting
24417         hard registers.
24418
24419 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
24420
24421         * cprop.c: Clean up hash table building.
24422         (reg_avail_info): Remove.
24423         (oprs_available_p): Remove.
24424         (record_last_reg_set_info): Remove.
24425         (record_last_set_info): Remove.
24426         (reg_available_p): New function.
24427         (gcse_constant_p): Do not treat unfolded conditions as constants.
24428         (make_set_regs_unavailable): New function.
24429         (hash_scan_set): Simplify with new reg_available_p.
24430         (compute_hash_table_work): Traverse insns stream only once.
24431         Do not compute reg_avail_info. Traverse insns in reverse order.
24432         Record implicit sets after recording explicit sets from the block.
24433
24434 2011-03-31  Michael Matz  <matz@suse.de>
24435
24436         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
24437
24438 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
24439
24440         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
24441         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
24442         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
24443         (h8300_mode_dependent_address_p): New function.
24444         (h8300_get_index): Make static.
24445
24446 2011-03-31  Jeff Law  <law@redhat.com>
24447
24448         * reload1.c (elimination_effects): Fix typo in recent change.
24449
24450         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
24451         typo potentially leading to null pointer dereference.
24452
24453         * caller-save.c (new_saved_hard_reg): Eliminate return value.
24454         (setup_save_areas): Corresponding changes to avoid useless
24455         assignments.
24456
24457         * jump.c (reversed_comparison_code_parts): Avoid successive return
24458         statements when REVERSE_CONDITION is defined.
24459
24460         * expr.c (expand_assignment): Avoid useless assignments.
24461         (expand_expr_real_1): Likewise.
24462         (expand_expr_real_2): Avoid useless statements.
24463
24464         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
24465
24466         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
24467
24468         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
24469         statements.
24470
24471         * stmt.c (expand_expr_stmt): Avoid useless assignment.
24472
24473 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
24474
24475         PR target/47109
24476         * doc/tm.texi.in (TARGET_VERSION): Remove.
24477         * doc/tm.texi: Regenerate.
24478         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
24479         * collect2.c (main): Don't use TARGET_VERSION.
24480         * mips-tdump.c (main): Don't use TARGET_VERSION.
24481         * mips-tfile.c (main): Don't use TARGET_VERSION.
24482         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
24483         * config/rs6000/vxworksae.h: Remove.
24484         * config/alpha/alpha.h (TARGET_VERSION): Remove.
24485         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
24486         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
24487         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
24488         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
24489         * config/arm/arm.h (TARGET_VERSION): Remove.
24490         * config/arm/coff.h (TARGET_VERSION): Remove.
24491         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
24492         * config/arm/elf.h (TARGET_VERSION): Remove.
24493         * config/arm/freebsd.h (TARGET_VERSION): Remove.
24494         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
24495         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
24496         * config/arm/pe.h (TARGET_VERSION): Remove.
24497         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
24498         * config/arm/semi.h (TARGET_VERSION): Remove.
24499         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
24500         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
24501         * config/arm/vxworks.h (TARGET_VERSION): Remove.
24502         * config/avr/avr.h (TARGET_VERSION): Remove.
24503         * config/bfin/bfin.h (TARGET_VERSION): Remove.
24504         * config/fr30/fr30.h (TARGET_VERSION): Remove.
24505         * config/frv/frv.h (TARGET_VERSION): Remove.
24506         * config/h8300/h8300.h (TARGET_VERSION): Remove.
24507         * config/i386/cygwin.h (TARGET_VERSION): Remove.
24508         * config/i386/darwin.h (TARGET_VERSION): Remove.
24509         * config/i386/darwin64.h (TARGET_VERSION): Remove.
24510         * config/i386/djgpp.h (TARGET_VERSION): Remove.
24511         * config/i386/freebsd.h (TARGET_VERSION): Remove.
24512         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
24513         * config/i386/gnu.h (TARGET_VERSION): Remove.
24514         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
24515         * config/i386/i386elf.h (TARGET_VERSION): Remove.
24516         * config/i386/linux.h (TARGET_VERSION): Remove.
24517         * config/i386/linux64.h (TARGET_VERSION): Remove.
24518         * config/i386/lynx.h (TARGET_VERSION): Remove.
24519         * config/i386/mingw32.h (TARGET_VERSION): Remove.
24520         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
24521         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
24522         * config/i386/netware.h (TARGET_VERSION): Remove.
24523         * config/i386/nto.h (TARGET_VERSION): Remove.
24524         * config/i386/openbsd.h (TARGET_VERSION): Remove.
24525         * config/i386/vxworks.h (TARGET_VERSION): Remove.
24526         * config/ia64/elf.h (TARGET_VERSION): Remove.
24527         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
24528         * config/ia64/hpux.h (TARGET_VERSION): Remove.
24529         * config/ia64/linux.h (TARGET_VERSION): Remove.
24530         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
24531         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
24532         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
24533         * config/lm32/lm32.h (TARGET_VERSION): Remove.
24534         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
24535         * config/m32c/m32c.h (TARGET_VERSION): Remove.
24536         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
24537         * config/m32r/m32r.h (TARGET_VERSION): Remove.
24538         * config/m68k/linux.h (TARGET_VERSION): Remove.
24539         * config/m68k/m68k.h (TARGET_VERSION): Remove.
24540         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
24541         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
24542         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
24543         * config/mep/mep.h (TARGET_VERSION): Remove.
24544         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
24545         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
24546         * config/mips/iris6.h (MACHINE_TYPE): Remove.
24547         * config/mips/linux.h (TARGET_VERSION): Remove.
24548         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
24549         * config/mips/vxworks.h (TARGET_VERSION): Remove.
24550         * config/mmix/mmix.h (TARGET_VERSION): Remove.
24551         * config/mn10300/linux.h (TARGET_VERSION): Remove.
24552         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
24553         * config/pa/pa.h (TARGET_VERSION): Remove.
24554         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
24555         * config/picochip/picochip.h (TARGET_VERSION): Remove.
24556         * config/rs6000/aix.h (TARGET_VERSION): Remove.
24557         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
24558         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
24559         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
24560         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
24561         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
24562         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
24563         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
24564         * config/rs6000/linux.h (TARGET_VERSION): Remove.
24565         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
24566         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
24567         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
24568         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
24569         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
24570         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
24571         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
24572         * config/s390/linux.h (TARGET_VERSION): Remove.
24573         * config/s390/s390.h (TARGET_VERSION): Remove.
24574         * config/s390/tpf.h (TARGET_VERSION): Remove.
24575         * config/score/score.h (TARGET_VERSION): Remove.
24576         * config/sh/linux.h (TARGET_VERSION): Remove.
24577         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
24578         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
24579         * config/sh/sh.h (TARGET_VERSION): Remove.
24580         * config/sh/sh64.h (TARGET_VERSION): Remove.
24581         * config/sh/superh.h (TARGET_VERSION): Remove.
24582         * config/sh/vxworks.h (TARGET_VERSION): Remove.
24583         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
24584         * config/sparc/linux.h (TARGET_VERSION): Remove.
24585         * config/sparc/linux64.h (TARGET_VERSION): Remove.
24586         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
24587         TARGET_NAME32, TARGET_NAME): Remove.
24588         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
24589         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
24590         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
24591         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
24592         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
24593         * config/spu/spu.h (TARGET_VERSION): Remove.
24594         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
24595         * config/v850/v850.h (TARGET_VERSION): Remove.
24596         * config/vax/linux.h (TARGET_VERSION): Remove.
24597         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
24598         * config/xtensa/elf.h (TARGET_VERSION): Remove.
24599         * config/xtensa/linux.h (TARGET_VERSION): Remove.
24600
24601 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
24602
24603         PR target/48142
24604         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
24605         frame-related from frame-unrelated adjustments to the stack pointer.
24606
24607 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
24608
24609         * common.opt (fdebug-types-section): Move earlier.
24610         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
24611
24612 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
24613
24614         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
24615         var.
24616
24617 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
24618
24619         * tree.h (CASE_CHAIN): Define.
24620         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
24621         (gimple_redirect_edge_and_branch): Likewise.
24622
24623 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
24624
24625         PR middle-end/48367
24626         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
24627         calculation.
24628
24629 2011-03-30  Jeff Law  <law@redhat.com>
24630
24631         * PR bootstrap/48371
24632         * reload1.c (reload): Fix botch in last change.
24633
24634         * reload.h (struct reload): Fix typo introduced in last change.
24635
24636 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
24637
24638         * config/arm/arm.opt (mhard-float, msoft-float): Mark
24639         Undocumented.  Remove help text.
24640         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
24641         -mhard-float.
24642
24643 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
24644
24645         * doc/options.texi (NegativeAlias): Document.
24646         (Alias): Mention NegativeAlias.
24647         * opt-functions.awk: Handle NegativeAlias.
24648         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
24649         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
24650         * opts.h (CL_NEGATIVE_ALIAS): Define.
24651         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
24652         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
24653         OPT_mspe_.
24654         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
24655         Alias entries.
24656         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
24657         mno-spe and mno-isel instead of mspe=no and -misel=no.
24658
24659 2011-03-29  Mark Wielaard  <mjw@redhat.com>
24660
24661         * common.opt (fdebug-types-section): New flag.
24662         * doc/invoke.texi: Document new -fno-debug-types-section flag.
24663         * dwarf2out.c (use_debug_types): New define.
24664         (struct die_struct): Mark die_id with GTY desc use_debug_types.
24665         (print_die): Guard output of type unit signatures using
24666         use_debug_types.
24667         (build_abbrev_table): Replace assert of dwarf_version >= 4
24668         with assert on use_debug_types.
24669         (size_of_die): Likewise.
24670         (unmark_dies): Likewise.
24671         (value_format): Decide AT_ref_external form on use_debug_types.
24672         (output_die): Replace dwarf_version version check guard with
24673         use_debug_types where appropriate.
24674         (modified_type_die): Likewise.
24675         (gen_reference_type_die): Likewise.
24676         (dwarf2out_start_source_file): Likewise.
24677         (dwarf2out_end_source_file): Likewise.
24678         (prune_unused_types_walk_attribs): Likewise.
24679         (dwarf2out_finish): Likewise.
24680
24681 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
24682
24683         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
24684
24685 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
24686
24687         PR rtl-optimization/48332
24688         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
24689         mode of input operand N and modeN to its actual mode.
24690
24691 2011-03-30  Jeff Law  <law@redhat.com>
24692
24693         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
24694         define accessor macro.
24695         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
24696         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
24697         (reg_equiv_init): Likewise.
24698         (reg_equivs_size): New variable.
24699         (reg_equiv_init_size): Remove.
24700         (allocate_initial_values): Move prototype to here from....
24701         * integrate.h (allocate_initial_values): Remove prototype.
24702         * integrate.c: Include reload.h.
24703         (allocate_initial_values): Corresponding changes.
24704         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
24705         (fix_reg_equiv_init, no_equiv): Corresponding changes.
24706         (update_equiv_regs): Corresponding changes.
24707         (ira): Corresponding changes.
24708         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
24709         (push_secondary_reload): Corresponding changes.
24710         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
24711         (make_memloc, find_reloads_address): Corresponding changes.
24712         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
24713         (find_reloads_address_1): Corresponding changes.
24714         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
24715         (refers_to_regno_for_reload_p): Corresponding changes.
24716         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
24717         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
24718         * reload1.c: Include ggc.h.
24719         (grow_reg_equivs): New function.
24720         (replace_pseudos_in, reload): Corresponding changes.
24721         (calculate_needs_all_insns, alter_regs): Corresponding changes.
24722         (eliminate_regs_1, elimination_effects): Corresponding changes.
24723         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
24724         (delete_output_reload): Likewise.
24725         * caller-save.c (mark_referenced_regs): Corresponding changes.
24726         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
24727         * frv/predicates.md (frv_load_operand): Corresponding changes.
24728         * microblaze/microblaze.c (double_memory_operand): Corresponding
24729         changes.
24730         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
24731         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
24732         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
24733         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
24734         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
24735         changes.
24736         * pa/pa.c (emit_move_sequence): Corresponding changes.
24737         * vax/vax.c (nonindexed_address_p): Corresponding changes.
24738
24739 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
24740
24741         PR target/47551
24742         * config/arm/arm.c (coproc_secondary_reload_class): Handle
24743         structure modes.  Don't check neon_vector_mem_operand for
24744         vector or structure modes.
24745
24746 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
24747             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
24748
24749         PR target/43590
24750         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
24751         operand 1 and reshuffle the operands to match.
24752         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
24753
24754 2011-03-30  Christian Schüler  <cschueler@gmx.de>
24755
24756         PR driver/48208
24757         * config/c.opt (F): Added 'Driver' to -F option.
24758
24759         PR driver/48260
24760         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
24761           handler function.
24762         * config/darwin.opt: Added '-arch' option.
24763
24764 2011-03-30  Nick Clifton  <nickc@redhat.com>
24765
24766         * config/rx/rx.md: Add peepholes and patterns to combine
24767         extending loads and simple arithmetic instructions.
24768         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
24769         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
24770         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
24771         modes to use pre-decrement and post-increment addressing.
24772         (rx_is_restricted_memory_address): Add range checking of REG+INT
24773         addresses.
24774         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
24775         (rx_memory_move_cost): Adjust cost of stores.
24776         (rx_adjust_insn_length): New function.
24777
24778 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
24779
24780         PR c/48305
24781         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
24782         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
24783         matching arg00/arg01 types.
24784
24785 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
24786
24787         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
24788         last_location to UNKNOWN_LOCATION.
24789
24790 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
24791
24792         PR target/48349
24793         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
24794         FLOAT_SSE_REGS.
24795
24796 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
24797             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24798
24799         PR bootstrap/48337
24800         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
24801         Init(PROCESSOR_V7).
24802         (sparc_cpu): Likewise.
24803         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
24804         PROCESSOR_V7.
24805
24806 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
24807
24808         PR target/48336
24809         PR middle-end/48342
24810         PR rtl-optimization/48345
24811         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
24812         hard regs for given mode from profitable regs when doing secondary
24813         allocation.
24814
24815 2011-03-29  Jeff Law  <law@redhat.com>
24816
24817         PR bootstrap/48327
24818         * tree-ssa-threadupdate.c (struct redirection_data): Remove
24819         do_not_duplicate field.
24820         (lookup_redirection_data): Corresponding changes.
24821         (create_duplicates): Always create a template block.
24822         (redirect_edges): Remove code which reused the original block
24823         when it was going to become unreachable code.
24824         (thread_block): Don't set do_not_duplicate field.
24825
24826 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
24827
24828         * lto-opts.c (register_user_option_p, lto_register_user_option):
24829         Make type argument unsigned.
24830         * lto-streamer.h (lto_register_user_option): Make type argument
24831         unsigned.
24832         * opth-gen.awk: Make CL_* macros unsigned.
24833         * opts-common.c (find_opt): Make lang_mask argument unsigned.
24834         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
24835         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
24836         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
24837         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
24838         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
24839         (find_opt): Make lang_mask argument unsigned.
24840
24841 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
24842
24843         PR rtl-optimization/48331
24844         PR rtl-optimization/48334
24845         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
24846         for any used algorithm.
24847
24848 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
24849
24850         * ira-conflicts.c (build_object_conflicts): Add unused attribute
24851         to parent_max.
24852
24853 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
24854
24855         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
24856         (alpha_option_override): Don't set alpha_sr_alias_set.
24857         (emit_frame_store_1): Use gen_frame_mem rather than calling
24858         set_mem_alias_set.
24859         (alpha_expand_epilogue): Ditto.
24860
24861 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
24862
24863         PR tree-optimization/48290
24864         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
24865         vectorization, check that relevant phis in the basic block after
24866         the inner loop are really inner loop's exit phis.
24867
24868 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
24869
24870         PR debug/48190
24871         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
24872         (cached_dw_loc_list_def): New structure.
24873         (cached_dw_loc_list): New typedef.
24874         (cached_dw_loc_list_table): New variable.
24875         (cached_dw_loc_list_table_hash): New function.
24876         (cached_dw_loc_list_table_eq): Likewise.
24877         (add_location_or_const_value_attribute): Take a bool cache_p.
24878         Cache the list when the parameter is true.
24879         (gen_formal_parameter_die): Update caller.
24880         (gen_variable_die): Likewise.
24881         (dwarf2out_finish): Likewise.
24882         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
24883         while generating debug info for the decl.
24884         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
24885         (dwarf2out_init): Initialize cached_dw_loc_list_table.
24886         (resolve_addr): Cache the result of resolving a chain of
24887         location lists.
24888
24889 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
24890
24891         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
24892         conflict object hard regset nodes have intersecting hard reg sets.
24893
24894         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
24895         after regstat_init_n_sets_and_refs.
24896
24897         * ira.c: Add more comments at the top.
24898         (setup_stack_reg_pressure_class, setup_pressure_classes):
24899         Add comments how we compute the register pressure classes.
24900         (setup_allocno_and_important_classes): Add more comments.
24901         (setup_class_translate_array, reorder_important_classes)
24902         (setup_reg_class_relations): Add comments.
24903
24904         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
24905         start of the file.
24906
24907         * ira-color.c: Add 2011 to the Copyright line.
24908         (assign_hard_reg):  Add more comments.
24909         (improve_allocation): Ditto.
24910
24911         * ira-costs.c: Add 2011 to the Copyright line.
24912         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
24913         comments.
24914         (setup_regno_cost_classes_by_mode): Ditto.
24915
24916         Initial patches from ira-improv branch:
24917
24918         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
24919
24920         * ira-build.c (ira_create_object): Remove initialization of
24921         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
24922         (ira_create_allocno): Remove initialization of
24923         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
24924         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
24925         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
24926         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
24927         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
24928         Initialize ALLOCNO_ADD_DATA.
24929         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
24930         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
24931         ALLOCNO_REG.
24932         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
24933         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
24934
24935         * ira.c (ira_reallocate): Remove.
24936         (setup_pressure_classes): Call
24937         ira_init_register_move_cost_if_necessary.  Use
24938         ira_register_move_cost instead of ira_get_register_move_cost.
24939         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
24940         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
24941
24942         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
24943         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
24944         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
24945         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
24946         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
24947         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
24948         Fix formatting.
24949         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
24950         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
24951         (struct allocno_color_data): New.
24952         (allocno_color_data_t): New typedef.
24953         (allocno_color_data): New definition.
24954         (ALLOCNO_COLOR_DATA): New macro.
24955         (struct object_color_data): New.
24956         (object_color_data_t): New typedef.
24957         (object_color_data): New definition.
24958         (OBJECT_COLOR_DATA): New macro.
24959         (update_copy_costs, calculate_allocno_spill_cost): Call
24960         ira_init_register_move_cost_if_necessary.  Use
24961         ira_register_move_cost instead of ira_get_register_move_cost.
24962         (move_spill_restore, update_curr_costs): Ditto.
24963         (allocno_spill_priority): Make it inline.
24964         (color_pass): Allocate and free allocno_color_dat and object_color_data.
24965         (struct coalesce_data, coalesce_data_t): New.
24966         (allocno_coalesce_data): New definition.
24967         (ALLOCNO_COALESCE_DATA): New macro.
24968         (merge_allocnos, coalesced_allocno_conflict_p): Use
24969         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
24970         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
24971         (coalesce_allocnos): Ditto.
24972         (setup_coalesced_allocno_costs_and_nums): Ditto.
24973         (collect_spilled_coalesced_allocnos): Ditto.
24974         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
24975         (setup_slot_coalesced_allocno_live_ranges): Ditto.
24976         (coalesce_spill_slots): Ditto.
24977         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
24978         free allocno_coalesce_data.
24979
24980         * ira-conflicts.c: Fix formatting.
24981         (process_regs_for_copy): Call
24982         ira_init_register_move_cost_if_necessary.  Use
24983         ira_register_move_cost instead of ira_get_register_move_cost.
24984         (build_object_conflicts): Optimize.
24985
24986         * ira-costs.c (record_reg_classes): Optimize.  Call
24987         ira_init_register_move_cost_if_necessary.  Use
24988         ira_register_move_cost, ira_may_move_in_cost, and
24989         ira_may_move_out_cost instead of ira_get_register_move_cost and
24990         ira_get_may_move_cost.
24991         (record_address_regs): Ditto.
24992         (scan_one_insn): Optimize.
24993         (find_costs_and_classes): Optimize.
24994         (process_bb_node_for_hard_reg_moves): Call
24995         ira_init_register_move_cost_if_necessary.  Use
24996         ira_register_move_cost instead of ira_get_register_move_cost.
24997
24998         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
24999         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
25000         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
25001         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
25002         definitions.
25003         (ira_initiate_emit_data, ira_finish_emit_data)
25004         (create_new_allocno): New functions.
25005         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
25006         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
25007         Use ira_register_move_cost instead of ira_get_register_move_cost.
25008
25009         * ira-int.h: Fix some comments.
25010         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
25011         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
25012         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
25013         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
25014         add_data.
25015         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
25016         bitfield after mode.  Make hard_regno a short int.  Make
25017         hard_regno short.  Remove first_coalesced_allocno and
25018         next_coalesced_allocno.  Move mem_optimized_dest_p,
25019         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
25020         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
25021         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
25022         temp, colorable_p.  Add new member add_data.
25023         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
25024         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
25025         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
25026         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
25027         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
25028         (ALLOCNO_ADD_DATA): New macro.
25029         (ira_emit_data_t): New typedef.
25030         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
25031         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
25032         from struct ira_allocno.
25033         (ALLOCNO_EMIT_DATA): New macro.
25034         (ira_allocno_emit_data, allocno_emit_reg): New.
25035         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
25036         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
25037         (OBJECT_ADD_DATA): New macro.
25038         (ira_reallocate): Remove.
25039         (ira_initiate_emit_data, ira_finish_emit_data): New.
25040         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
25041         (ira_init_register_move_cost_if_necessary): New.
25042         (ira_object_conflict_iter_next): Merge into
25043         ira_object_conflict_iter_cond.
25044         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
25045
25046         * ira-live.c (process_single_reg_class_operands): Call
25047         ira_init_register_move_cost_if_necessary.  Use
25048         ira_register_move_cost instead of ira_get_register_move_cost.
25049
25050         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
25051
25052         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
25053
25054         * ira-costs.c: Fix formatting.
25055         (cost_classes, cost_classes_num): Remove.
25056         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
25057         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
25058         (cost_classes_del, cost_classes_htab): New.
25059         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
25060         (initiate_regno_cost_classes, setup_cost_classes): New.
25061         (setup_regno_cost_classes_by_aclass): New.
25062         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
25063         (record_reg_classes): Use regno_cost_classes instead of
25064         cost_classes.  Move checking opposite operand up.
25065         (record_address_regs): Use regno_cost_classes
25066         instead of cost_classes.
25067         (scan_one_insn): Ditto.  Use always general register.
25068         (print_allocno_costs): Use regno_cost_classes instead of
25069         cost_classes.
25070         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
25071         (find_costs_and_classes): Set up cost classes for each registers.
25072         Use also their mode for this.  Use regno_cost_classes instead of
25073         cost_classes.
25074         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
25075         cost_classes.
25076         (free_ira_costs, ira_init_costs): Don't use cost_classes.
25077         (ira_costs, ira_set_pseudo_classes): Call
25078         initiate_regno_cost_classes and finish_regno_cost_classes.
25079
25080         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
25081
25082         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
25083
25084         * target.def (ira_cover_classes): Remove.
25085
25086         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
25087
25088         * doc/tm.texi.in: Ditto.
25089
25090         * ira-conflicts.c: Remove mentioning cover classes from the file.
25091         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
25092         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
25093
25094         * targhooks.c (default_ira_cover_classes): Remove.
25095
25096         * targhooks.h (default_ira_cover_classes): Ditto.
25097
25098         * haifa-sched.c: Remove mentioning cover classes from the file.
25099         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
25100         ira_pressure_classes and ira_pressure_classes_num instead of
25101         ira_reg_class_cover_size and ira_reg_class_cover.  Use
25102         sched_regno_pressure_class instead of sched_regno_cover_class.
25103         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
25104         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
25105
25106         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
25107         classes from the file.
25108         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
25109         (struct object_hard_regs, struct object_hard_regs_node): New.
25110         (struct ira_object): New members profitable_hard_regs,
25111         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
25112         (struct ira_allocno): Rename cover_class to aclass.  Rename
25113         cover_class_cost and updated_cover_class_cost to class_cost and
25114         updated_class_cost.  Remove splay_removed_p and
25115         left_conflict_size.  Add new members colorable_p.
25116         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
25117         (ALLOCNO_COLORABLE_P): New macro.
25118         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
25119         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
25120         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
25121         (OBJECT_...): Rename parameter C to O.
25122         (OBJECT_PROFITABLE_HARD_REGS): New macro.
25123         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
25124         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
25125         (struct target_ira_int): New members x_ira_max_memory_move_cost,
25126         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
25127         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
25128         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
25129         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
25130         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
25131         x_ira_reg_class_subunion.
25132         (ira_max_memory_move_cost, ira_max_register_move_cost)
25133         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
25134         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
25135         (ira_important_class_nums, ira_reg_class_superunion): New macros.
25136         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
25137         (ira_reg_class_union): Rename to ira_reg_class_subunion.
25138         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
25139         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
25140         (ira_tune_allocno_costs_and_cover_classes): Rename to
25141         ira_tune_allocno_costs.
25142         (ira_debug_hard_regs_forest): New.
25143         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
25144         (ira_object_conflict_iter_next): Fix comments.
25145         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
25146         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
25147         cover_class to aclass.
25148         (ira_allocate_and_accumulate_costs): Ditto.
25149         (ira_allocate_and_set_or_copy_costs): Ditto.
25150
25151         * opts.c (decode_options): Remove ira_cover_class check.
25152
25153         * ira-color.c: Remove mentioning cover classes from the file.  Use
25154         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
25155         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
25156         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
25157         (splay-tree.h): Remove include.
25158         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
25159         before copy_freq_compare_func.
25160         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
25161         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
25162         New definitions.
25163         (hard_regs_roots, hard_regs_node_vec): Ditto.
25164         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
25165         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
25166         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
25167         (create_new_object_hard_regs_node): Ditto.
25168         (add_new_object_hard_regs_node_to_forest): Ditto.
25169         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
25170         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
25171         Ditto.
25172         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
25173         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
25174         (remove_unused_object_hard_regs_nodes): Ditto.
25175         (enumerate_object_hard_regs_nodes): Ditto.
25176         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
25177         (object_hard_regs_subnode_t): Ditto.
25178         (struct object_hard_regs_subnode): Ditto.
25179         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
25180         (setup_object_hard_regs_subnode_index): Ditto.
25181         (get_object_hard_regs_subnodes_num): Ditto.
25182         (form_object_hard_regs_nodes_forest): Ditto.
25183         (finish_object_hard_regs_nodes_tree): Ditto.
25184         (finish_object_hard_regs_nodes_forest): Ditto.
25185         (allocnos_have_intersected_live_ranges_p): Rename to
25186         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
25187         (pseudos_have_intersected_live_ranges_p): Rename to
25188         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
25189         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
25190         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
25191         (update_copy_costs): Remove assert.  Skip cost update if the hard
25192         reg does not belong the class.
25193         (assign_hard_reg): Process only profitable hard regs.
25194         (uncolorable_allocnos_num): Make it scalar.
25195         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
25196         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
25197         and ira_reg_class_max_nregs.
25198         (bucket_allocno_compare_func): Check frequency first.
25199         (sort_bucket): Add compare function as a parameter.
25200         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
25201         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
25202         (push_allocno_to_stack): Rewrite for checking new allocno
25203         colorability.
25204         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
25205         (push_only_colorable): Pass new parameter to sort_bucket.
25206         (push_allocno_to_spill): Remove.
25207         (allocno_spill_priority_compare): Make it inline and rewrite.
25208         (splay_tree_allocate, splay_tree_free): Remove.
25209         (allocno_spill_sort_compare): New function.
25210         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
25211         build and use splay tree.  Choose first allocno in uncolorable
25212         allocno bucket to spill.  Remove setting spill cost.
25213         (all_conflicting_hard_regs): Remove.
25214         (setup_allocno_available_regs_num): Check only profitable hard
25215         regs.  Print info about hard regs nodes.
25216         (setup_allocno_left_conflicts_size): Remove.
25217         (put_allocno_into_bucket): Don't call
25218         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
25219         (improve_allocation): New.
25220         (color_allocnos): Call setup_profitable_hard_regs,
25221         form_object_hard_regs_nodes_forest, improve_allocation,
25222         finish_object_hard_regs_nodes_forest.  Setup spill cost.
25223         (print_loop_title): Use pressure classes.
25224         (color_allocnso): Ditto.
25225         (do_coloring): Remove allocation and freeing splay_tree_node_pool
25226         and allocnos_for_spilling.
25227         (ira_sort_regnos_for_alter_reg): Don't setup members
25228         {first,next}_coalesced_allocno.
25229         (color): Remove allocating and freeing removed_splay_allocno_vec.
25230         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
25231         prohibited_class_mode_regs.
25232
25233         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
25234         formatting.
25235         (update_allocno_pressure_excess_length): Use pressure classes.
25236         (inc_register_pressure, dec_register_pressure): Check for pressure
25237         class.
25238         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
25239         pressure class.  Use ira_reg_class_nregs instead of
25240         ira_reg_class_max_nregs.
25241         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
25242         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
25243         (single_reg_class): Use ira_reg_class_nregs instead of
25244         ira_reg_class_max_nregs.
25245         (process_bb_node_lives): Use pressure classes.
25246
25247         * ira-emit.c: Remove mentioning cover classes from the file.  Use
25248         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
25249         (change_loop): Use pressure classes.
25250         (modify_move_list): Call ira_set_allocno_class instead of
25251         ira_set_allocno_cover_class.
25252
25253         * ira-build.c: Remove mentioning cover classes from the file.  Use
25254         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
25255         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
25256         ALLOCNO_UPDATED_CLASS_COST instead of
25257         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
25258         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
25259         (ira_create_allocno): Remove initialization of
25260         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
25261         ALLOCNO_COLORABLE_P.
25262         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
25263         Update conflict regs for the objects.
25264         (create_cap_allocno): Remove assert.  Don't propagate
25265         ALLOCNO_AVAILABLE_REGS_NUM.
25266         (ira_free_allocno_costs): New function.
25267         (finish_allocno): Change a part of code into call of
25268         ira_free_allocno_costs.
25269         (low_pressure_loop_node_p): Use pressure classes.
25270         (object_range_compare_func): Don't compare classes.
25271         (setup_min_max_conflict_allocno_ids): Ditto.
25272
25273         * loop-invariant.c: Remove mentioning cover classes from the file.
25274         Use ira_pressure_classes and ira_pressure_classes_num instead of
25275         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
25276         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
25277         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
25278         Use reg_allocno_class instead of reg_cover_class.
25279         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
25280         STACK_REG_COVER_CLASS.
25281         (get_regno_cover_class): Rename to get_regno_pressure_class.
25282         (move_loop_invariants): Initialize and finalize regstat.
25283
25284         * ira.c: Remove mentioning cover classes from the file.  Add
25285         comments about coloring without cover classes.  Use ALLOCNO_CLASS
25286         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
25287         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
25288         setup_class_subset_and_memory_move_costs.
25289         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
25290         (setup_cover_and_important_classes): Rename to
25291         setup_allocno_and_important_classes.
25292         (setup_class_translate_array): New.
25293         (setup_class_translate): Call it for allocno and pressure classes.
25294         (cover_class_order): Rename to allocno_class_order.
25295         (comp_reg_classes_func): Use ira_allocno_class_translate instead
25296         of ira_class_translate.
25297         (reorder_important_classes): Set up ira_important_class_nums.
25298         (setup_reg_class_relations): Set up ira_reg_class_superunion.
25299         (print_class_cover): Rename to print_classes.  Add parameter.
25300         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
25301         Print pressure classes too.
25302         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
25303         setup_reg_subclasses.
25304         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
25305         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
25306         (setup_prohibited_class_mode_regs): Use
25307         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
25308         (clarify_prohibited_class_mode_regs): New function.
25309         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
25310         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
25311         (ira_init_once): Initialize them.
25312         (free_register_move_costs): Process them.
25313         (ira_init): Move calls of find_reg_classes and
25314         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
25315         Call clarify_prohibited_class_mode_regs.
25316         (ira_no_alloc_reg): Remove.
25317         (too_high_register_pressure_p): Use pressure classes.
25318
25319         * sched-deps.c: Remove mentioning cover classes from the file.
25320         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
25321         ira_pressure_classes and ira_pressure_classes_num instead of
25322         ira_reg_class_cover_size and ira_reg_class_cover.
25323         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
25324         sched_regno_pressure_class instead of sched_regno_cover_class.
25325         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
25326         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
25327
25328         * ira.h: Add 2010 to Copyright.
25329         (ira_no_alloc_reg): Remove external.
25330         (struct target_ira): Rename x_ira_hard_regno_cover_class,
25331         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
25332         x_ira_class_translate to x_ira_hard_regno_allocno_class,
25333         x_ira_allocno_classes_num, x_ira_allocno_classes, and
25334         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
25335         x_ira_pressure_classes, x_ira_pressure_class_translate, and
25336         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
25337         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
25338         x_ira_no_alloc_regs.
25339         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
25340         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
25341         ira_allocno_classes_num and ira_allocno_classes.
25342         (ira_class_translate): Rename to ira_allocno_class_translate.
25343         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
25344         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
25345         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
25346         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
25347         (ira_no_alloc_regs): New.
25348
25349         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
25350         classes from the file.  Use ALLOCNO_CLASS instead of
25351         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
25352         ALLOCNO_COVER_CLASS_COST.
25353         (regno_cover_class): Rename to regno_aclass.
25354         (record_reg_classes): Use ira_reg_class_subunion instead of
25355         ira_reg_class_union.
25356         (record_address_regs): Check overflow.
25357         (scan_one_insn): Ditto.
25358         (print_allocno_costs): Print total mem cost fore regional allocation.
25359         (print_pseudo_costs): Use REG_N_REFS.
25360         (find_costs_and_classes): Use classes intersected with them on the
25361         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
25362         ira_reg_class_union.  Use ira_allocno_class_translate and
25363         regno_aclass instead of ira_class_translate and regno_cover_class.
25364         Modify code for finding regno_aclass.  Setup preferred classes for
25365         the next pass.
25366         (setup_allocno_cover_class_and_costs): Rename to
25367         setup_allocno_class_and_costs.  Use regno_aclass instead of
25368         regno_cover_class.  Use ira_set_allocno_class instead of
25369         ira_set_allocno_cover_class.
25370         (init_costs, finish_costs): Use regno_aclass instead of
25371         regno_cover_class.
25372         (ira_costs): Use setup_allocno_class_and_costs instead of
25373         setup_allocno_cover_class_and_costs.
25374         (ira_tune_allocno_costs_and_cover_classes): Rename to
25375         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
25376         by processing objects.  Use ira_reg_class_max_nregs instead of
25377         ira_reg_class_nregs.
25378
25379         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
25380
25381         * sched-int.h: Remove mentioning cover classes from the file.
25382         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
25383
25384         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
25385         classes from the file.
25386         (struct reg_pref): Rename coverclass into allocnoclass.
25387         (reg_cover_class): Rename to reg_allocno_class.
25388
25389         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
25390
25391         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
25392
25393         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
25394
25395         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
25396
25397         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
25398
25399         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
25400
25401         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
25402
25403         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
25404
25405         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
25406
25407         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
25408
25409         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
25410         (i386_ira_cover_classes): Ditto.
25411
25412         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
25413
25414         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
25415
25416         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
25417
25418         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
25419
25420         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
25421
25422         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
25423
25424         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
25425         (mips_ira_cover_classes): Ditto.
25426
25427         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
25428
25429         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
25430
25431         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
25432
25433         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
25434
25435         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
25436
25437         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
25438         (IRA_COVER_CLASSES_VSX): Ditto.
25439
25440         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
25441         (rs6000_ira_cover_classes): Ditto.
25442
25443         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
25444
25445         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
25446
25447         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
25448
25449         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
25450
25451         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
25452
25453         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
25454
25455         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
25456
25457         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
25458
25459         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
25460
25461         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
25462
25463 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
25464
25465         PR debug/48253
25466         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
25467         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
25468         dw_fde_unlikely_section_end_label, cold_in_std_section,
25469         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
25470         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
25471         fields.
25472         (output_fde): Use dw_fde_second_{begin,end} if second is
25473         true, otherwise dw_fde_{begin,end}.
25474         (output_call_frame_info): Test dw_fde_second_begin != NULL
25475         instead of dw_fde_switched_sections.
25476         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
25477         fields, initialize new fields.  Initialize in_std_section
25478         unconditionally from the first partition.
25479         (dwarf2out_end_epilogue): Don't override dw_fde_end when
25480         dw_fde_second_begin is non-NULL.
25481         (dwarf2out_switch_text_section): Stop initializing removed
25482         dw_fde_struct fields, initialize new fields, initialize
25483         also dw_fde_end here.  Set dw_fde_switch_cfi even when
25484         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
25485         (struct var_loc_list_def): Add last_before_switch field.
25486         (arange_table, arange_table_allocated, arange_table_in_use,
25487         ARANGE_TABLE_INCREMENT, add_arange): Removed.
25488         (size_of_aranges): Count !in_std_section and !second_in_std_section
25489         hunks in fdes, instead of looking at arange_table_in_use.
25490         (output_aranges): Add aranges_length argument, don't call
25491         size_of_aranges here.  Instead of using aranges_table*
25492         emit ranges for fdes when !in_std_section resp.
25493         !second_in_std_section.
25494         (dw_loc_list): Break ranges crossing section switch.
25495         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
25496         use dw_fde_second_end instead of dw_fde_end as end of last range.
25497         (gen_subprogram_die): Don't call add_arange.  Use
25498         dw_fde_{begin,end} for first partition and if switched
25499         section dw_fde_second_{begin,end} for the second.
25500         (var_location_switch_text_section_1,
25501         var_location_switch_text_section): New functions.
25502         (dwarf2out_begin_function): Initialize cold_text_section even
25503         when function_section () isn't text_section.
25504         (prune_unused_types): Don't walk arange_table.
25505         (dwarf2out_finish): Don't needlessly test
25506         flag_reorder_blocks_and_partition when testing cold_text_section_used.
25507         If info_section_emitted, call size_of_aranges and if it indicates
25508         non-empty .debug_aranges, call output_aranges with the computed
25509         size.  Stop using removed dw_fde_struct fields, use
25510         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
25511         for second.
25512
25513         PR debug/48203
25514         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
25515         create ENTRY_VALUE if incoming or address of incoming's MEM
25516         is a hard REG.
25517         * dwarf2out.c (mem_loc_descriptor): Don't emit
25518         DW_OP_GNU_entry_value of DW_OP_fbreg.
25519         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
25520         on ENTRY_VALUE is able to find the canonical parameter VALUE.
25521         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
25522         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
25523         ENTRY_VALUE_EXPs.
25524         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
25525         is a REG_P or MEM_P with REG_P address, compute hash directly
25526         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
25527         (preserve_only_constants): Don't clear VALUES forwaring
25528         ENTRY_VALUE to some other VALUE.
25529
25530 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
25531
25532         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
25533         instead of GEN_INT.
25534
25535 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
25536
25537         * cfgexpand.c (expand_gimple_cond): Always set the source location and
25538         block before expanding the statement.
25539         (expand_gimple_stmt_1): Likewise.  Set them here...
25540         (expand_gimple_stmt): ...and not here.  Tidy.
25541         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
25542         unknown.
25543
25544 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
25545
25546         * Makefile.in: New rule for cprop.o.
25547         * gcse.c: Move constant/copy propagation to cprop.c.
25548         (compute_local_properties): Only handle expression tables.
25549         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
25550         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
25551         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
25552         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
25553         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
25554         compute_cprop_data, find_used_regs, try_replace_reg,
25555         find_avail_set, cprop_jump, constprop_register, cprop_insn,
25556         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
25557         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
25558         find_bypass_set, reg_killed_on_edge, bypass_block,
25559         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
25560         execute_rtl_cprop, pass_rtl_cprop): Move to...
25561         * cprop.c: ...here.  New file, constant/copy propagation for RTL
25562         moved from gcse.c to here with minor cleanups in duplicated code.
25563
25564 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
25565
25566         * config/i386/i386.c (flag_opts): Fix a typo in
25567         -mavx256-split-unaligned-store.
25568
25569 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
25570
25571         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
25572         LIBCALL_VALUE): Remove macros.
25573         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
25574         TARGET_FUNCTION_VALUE_REGNO_P): Define.
25575         (h8300_function_value, h8300_libcall_value,
25576         h8300_function_value_regno_p): New functions.
25577
25578 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
25579
25580         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
25581
25582 2011-03-28  Jeff Law  <law@redhat.com>
25583
25584         * tree-ssa-threadupdate.c (redirect_edges): Call
25585         create_edge_and_update_destination_phis as needed.
25586         (create_edge_and_update_destination_phis): Accept new BB argument.
25587         All callers updated.
25588         (thread_block): Do not update the profile when threading around
25589         intermediate blocks.
25590         (thread_single_edge): Likewise.
25591         (determine_bb_domination_status): If BB is not a successor of the
25592         loop header, return NONDOMINATING.
25593         (register_jump_thread): Note when we register a jump thread around
25594         an intermediate block.
25595         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
25596         (thread_across_edge): Use it.
25597
25598 2011-03-28  Tristan Gingold  <gingold@adacore.com>
25599
25600         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
25601         when for_return is 2.
25602
25603 2011-03-28  Jeff Law  <law@redhat.com>
25604
25605         * var-tracking.c (canonicalize_values_mark): Delete unused
25606         lhs assignment.
25607         (canonicalize_values_star, set_variable_part): Likewise.
25608         (clobber_variable_part, delete_variable_part): Likewise.
25609
25610 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
25611
25612         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
25613
25614 2011-03-28  Martin Jambor  <mjambor@suse.cz>
25615
25616         * tree-inline.c (expand_call_inline): Do not check that destination
25617         node is analyzed.
25618         (optimize_inline_calls): Assert that destination node is analyzed.
25619         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
25620         not call tree_lowering_passes.
25621         * cgraph.h (cgraph_analyze_function): Declare.
25622         * cgraphunit.c (cgraph_analyze_function): Make public.
25623
25624 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
25625
25626         * config/sparc/sparc-opts.h: New.
25627         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
25628         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
25629         (sparc_option_override): Store processor_type enumeration rather
25630         than string in cpu_default.  Remove name and enumeration from
25631         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
25632         without using sparc_select.  Use target_flags_explicit instead of
25633         fpu_option_set.
25634         * config/sparc/sparc.h (enum processor_type): Move to
25635         sparc-opts.h.
25636         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
25637         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
25638         HeaderInclude entry.
25639         (mcpu=, mtune=): Use Var and Enum.
25640         (sparc_processor_type): New Enum and EnumValue entries.
25641
25642 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25643             Iain Sandoe  <iains@gcc.gnu.org>
25644
25645         PR target/48245
25646         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
25647
25648 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
25649
25650         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
25651         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
25652         Insert new statements at it in lieu of STMT.
25653         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
25654         * tree-vect-stmts.c (vectorizable_store): Likewise.
25655         (vectorizable_load): Likewise.
25656
25657 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
25658
25659         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
25660         (divtf3): Ditto.
25661         (multf3): Ditto.
25662         (subtf3): Ditto.
25663
25664 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
25665
25666         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
25667         unaligned 256bit load/store.
25668         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
25669         (*avx_movdqu<avxmodesuffix>): Likewise.
25670
25671 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25672
25673         PR target/48288
25674         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
25675         * config/pa/pa.md (iordi3): Use new predicate in expander.
25676         (iorsi3): Likewise.
25677
25678 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
25679
25680         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
25681         FUNCTION_VALUE_REGNO_P): Remove macros.
25682         * config/mips/mips-protos.h (mips_function_value): Remove.
25683         * config/mips/mips.c (mips_function_value): Rename to...
25684         (mips_function_value_1): ... this. Make static.  Handle receiving
25685         the function type in 'fn_decl_or_type' argument.
25686         (mips_function_value, mips_libcall_value,
25687         mips_function_value_regno_p): New function.
25688         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
25689         TARGET_FUNCTION_VALUE_REGNO_P): Define.
25690
25691 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
25692
25693         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
25694         and -mavx256-split-unaligned-store.
25695         (ix86_option_override_internal): Split 32-byte AVX unaligned
25696         load/store by default.
25697         (ix86_avx256_split_vector_move_misalign): New.
25698         (ix86_expand_vector_move_misalign): Use it.
25699
25700         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
25701         -mavx256-split-unaligned-store.
25702
25703         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
25704         256bit load/store.  Generate unaligned store on misaligned memory
25705         operand.
25706         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
25707         256bit load/store.
25708         (*avx_movdqu<avxmodesuffix>): Likewise.
25709
25710         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
25711         -mavx256-split-unaligned-store.
25712
25713 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
25714
25715         PR target/38598
25716         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
25717         Update commentary.
25718
25719 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
25720
25721         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
25722         opno arguments with an expand_operand.  Use create_input_operand.
25723         (mips_prepare_builtin_target): Delete.
25724         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
25725         functions.
25726         (mips_expand_builtin_direct): Use create_output_operand and
25727         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
25728         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
25729         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
25730
25731 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
25732
25733         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
25734         function.
25735         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
25736
25737 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
25738
25739         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
25740         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
25741         basic blocks and call commit_edge_insertions directly.
25742         (fixup_abnormal_edges): Move from here to...
25743         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
25744         on the edges and return whether some have actually been inserted.
25745         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
25746         compensation code.
25747
25748 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
25749
25750         PR rtl-optimization/48144
25751         * sel-sched-ir.c (merge_history_vect): Factor out from ...
25752         (merge_expr_data): ... here.
25753         (av_set_intersect): Rename to av_set_code_motion_filter.
25754         Update all callers.  Call merge_history_vect when an expression
25755         is found in both sets.
25756         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
25757
25758 2011-03-26  Alan Modra  <amodra@gmail.com>
25759
25760         * config/rs6000/predicates.md (word_offset_memref_op): Handle
25761         cmodel medium addresses.
25762         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
25763         64-bit gpr loads and stores.
25764         (rs6000_secondary_reload_ppc64): New function.
25765         * config/rs6000/rs6000-protos.h: Declare it.
25766         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
25767
25768 2011-03-26  Alan Modra  <amodra@gmail.com>
25769
25770         PR target/47487
25771         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
25772         GNU Go in traceback table.
25773
25774 2011-03-25  Richard Henderson  <rth@redhat.com>
25775
25776         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
25777         if there are exactly 6 operands.
25778         (set_storage_via_setmem): Similarly.
25779
25780 2011-03-25  Kai Tietz  <ktietz@redhat.com>
25781
25782         * collect2.c (write_c_file_stat): Handle backslash
25783         as right-hand directory separator.
25784         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
25785         checking just for slash.
25786         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
25787         instead of checking for trailing slash.
25788         * gcc.c (record_temp_file): Use filename_cmp instead
25789         of strcmp.
25790         (do_spec_1): Likewise.
25791         (replace_outfile_spec_function): Likewise.
25792         (is_directory): Use filename_ncmp instead of strncmp.
25793         (print_multilib_info): Likewise.
25794         * gcov.c (find_source): Use filename_cmp instead
25795         instead of strcmp.
25796         (make_gcov_file_name): Fix order of slash/backslash
25797         checks.
25798         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
25799         (add_standard_paths): Likewise.
25800         * mips-tfile.c (saber_stop): Handle backslash.
25801         * prefix.c (update_path): Use filename_ncmp instead of
25802         strncmp.
25803         * profile.c (output_location): Use filename_cmp instead
25804         of strcmp.
25805         * read-md.c (handle_toplevel_file): Handle backslash.
25806         * tlink.c (frob_extension):  Likewise.
25807         * tree-cfg.c (same_line_p): Use filename_cmp instead of
25808         strcmp.
25809         * tree-dump.c (dequeue_and_dump): Handle backslash.
25810         * tree.c (get_file_function_name): Likewise.
25811         * gengtype.c (read_input_list): Likewise.
25812         (get_file_realbasename): Likewise.
25813         (get_output_file_with_visibility): Use filename_cmp
25814         instead of strcmp.
25815
25816 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
25817
25818         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
25819         case to VFPv1.
25820
25821 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
25822
25823         * fold-const.c (expr_location_or): New function.
25824         (fold_truth_not_expr): Call it.
25825
25826 2011-03-25  Jeff Law  <law@redhat.com>
25827
25828         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
25829         va_end.
25830         * c-family/c-common.c (def_fn_type): Likewise.
25831         * emit-rtl.c (gen_rtvec): Likewise.
25832         * lto/lto-lang.c (def_fn_type): Likewise.
25833
25834 2011-03-25  Richard Guenther  <rguenther@suse.de>
25835
25836         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
25837         also generate copies.
25838         (fini_copy_prop): Handle constant values properly.
25839
25840 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
25841
25842         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
25843         mode size instead of bitsize with DWARF2_ADDR_SIZE.
25844         (hash_loc_operands, compare_loc_operands): Handle
25845         DW_OP_GNU_entry_value.
25846
25847 2011-03-25  Kai Tietz  <ktietz@redhat.com>
25848
25849         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
25850         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
25851         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
25852         comment and use macro TARGET_64BIT_MS_ABI instead.
25853         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
25854         and change default behavior for 32-bit MS_ABI.
25855         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
25856         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
25857         32-bit, too.
25858         (ix86_cfun_abi): Likewise.
25859         (ix86_maybe_switch_abi): Adjust comment.
25860         (init_cumulative_args): Check for bit-ness in MS_ABI case.
25861         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
25862         instead of checking for SYSV_ABI.
25863         (ix86_nsaved_sseregs): Likewise.
25864         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
25865         to 16 bytes.
25866         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
25867         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
25868         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
25869         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
25870         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
25871
25872 2011-03-25  Richard Guenther  <rguenther@suse.de>
25873
25874         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
25875         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
25876         (verify_gimple): Remove.
25877         * tree-cfg.c (verify_gimple_call): Merge verification
25878         from verify_stmts.
25879         (verify_gimple_phi): Merge verification from verify_stmts.
25880         (verify_gimple_label): New function.
25881         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
25882         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
25883         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
25884         (verify_stmts): Rename to verify_gimple_in_cfg.
25885         (verify_gimple_in_cfg): New function.
25886         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
25887         * tree-ssa.c (verify_ssa): Likewise.
25888         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
25889
25890 2011-03-25  Richard Guenther  <rguenther@suse.de>
25891
25892         * passes.c (init_optimization_passes): Add FRE pass after
25893         early SRA.
25894
25895 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
25896             Andrew Stubbs  <ams@codesourcery.com>
25897
25898         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
25899         for Cortex-A8.
25900         (arm_movdi_vfp_cortexa8): New pattern.
25901         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
25902         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
25903         instructions when tuning for Cortex-A8.  Set attribute "arch".
25904         * config/arm/arm.md: Move include arm-tune.md up a bit.
25905         (define_attr "arch"): Add "onlya8" and "nota8" values.
25906         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
25907
25908 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
25909
25910         PR bootstrap/48282
25911         Revert:
25912         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
25913
25914         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
25915         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
25916         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
25917         * passes.c (init_optimization_passes): Move
25918         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
25919
25920 2011-03-25  Kai Tietz  <ktietz@redhat.com>
25921
25922         * c-typeck.c (comptypes_internal): Replace target
25923         hook call of comp_type_attributes by version in tree.c file.
25924         * gimple.c (gimple_types_compatible_p_1): Likewise.
25925         * tree-ssa.c (useless_type_conversion_p): Likewise.
25926         * tree.c (build_type_attribute_qual_variant): Likewise.
25927         (attribute_value_equal): New static helper function.
25928         (comp_type_attributes): New function.
25929         (merge_attributes): Use attribute_value_equal for comparison.
25930         (attribute_list_contained): Likewise.
25931         * tree.h (comp_type_attributes): New prototype.
25932
25933 2011-03-25  Richard Guenther  <rguenther@suse.de>
25934
25935         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
25936         of complex types at -O0.
25937         (verify_gimple_assign_binary): Likewise.
25938         (verify_gimple_assign_ternary): Likewise.
25939
25940 2011-03-24  Mark Wielaard  <mjw@redhat.com>
25941
25942         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
25943         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
25944
25945 2011-03-24  Mark Wielaard  <mjw@redhat.com>
25946
25947         PR debug/48041
25948         * dwarf2out.c (output_abbrev_section): Only write table when
25949         abbrev_die_table_in_use > 1.
25950
25951 2011-02-24  Richard Henderson  <rth@redhat.com>
25952
25953         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
25954         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
25955         (alpha_expand_unaligned_load_words): Use extql.
25956         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
25957         (emit_insxl): Handle all modes for consistency.
25958
25959 2011-02-24  Richard Henderson  <rth@redhat.com>
25960
25961         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
25962         (alpha_expand_unaligned_load): Likewise.
25963         (alpha_expand_unaligned_store): Likewise.
25964         (alpha_expand_unaligned_load_words): Likewise.
25965         (alpha_expand_unaligned_store_words): Likewise.
25966         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
25967         (alpha_split_lock_test_and_set_12): Likewise.
25968         (print_operand, alpha_fold_builtin_extxx): Likewise.
25969         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
25970         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
25971         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
25972         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
25973         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
25974         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
25975         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
25976         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
25977         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
25978         (extwl, extll, extql): Similarly.
25979         (inswh, inslh, insqh): Similarly.
25980         (mskbl, mskwl, mskll, mskql): Similarly.
25981         (mskwh, msklh, mskqh): Similarly.
25982
25983 2011-02-24  Richard Henderson  <rth@redhat.com>
25984
25985         * config/alpha/alpha.md (attribute isa): Add er, ner.
25986         (attribute enabled): Handle them.
25987         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
25988
25989 2011-02-24  Richard Henderson  <rth@redhat.com>
25990
25991         * config/alpha/alpha.md (attribute isa): Add vms.
25992         (attribute enabled): Handle it.
25993         (*movsf): Merge *movsf_{nofix,fix,nofp}.
25994         (*movdf): Merge *movdf_{nofix,fix,nofp}.
25995         (*movtf): Rename from *movtf_internal for consistency.
25996         (*movsi): Merge with *movsi_nt_vms.
25997         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
25998         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
25999         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
26000         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
26001
26002 2011-02-24  Richard Henderson  <rth@redhat.com>
26003
26004         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
26005         (extendqisi2, extendhisi2): Likewise.
26006         (extendqidi2): Simplify BWX/non-BWX expansions.
26007         (extendhidi2): Similarly.
26008
26009 2011-02-24  Richard Henderson  <rth@redhat.com>
26010
26011         * config/alpha/alpha.md (attribute isa): New.
26012         (attribute enabled): New.
26013         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
26014         (zero_extendqisi2, zero_extendqidi2): Similarly.
26015         (zero_extendhisi2, zero_extendhidi2): Similarly.
26016         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
26017
26018 2011-02-24  Richard Henderson  <rth@redhat.com>
26019
26020         * config/alpha/predicates.md (input_operand): Revert last change;
26021         update comment to mention 32-bit VMS rather than Windows.
26022
26023 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
26024
26025         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
26026         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
26027         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
26028         * passes.c (init_optimization_passes): Move
26029         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
26030
26031 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
26032
26033         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
26034
26035 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
26036
26037         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
26038         correctly.
26039
26040 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
26041
26042         PR debug/48204
26043         * simplify-rtx.c (simplify_const_unary_operation): Call
26044         real_convert when changing mode class with FLOAT_EXTEND.
26045
26046 2011-03-24  Nick Clifton  <nickc@redhat.com>
26047
26048         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
26049         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
26050         * config/rx/rx.c (rx_option_override): Set align_jumps,
26051         align_loops and align_labels if not set by the user.
26052         (rx_align_for_label): New function.
26053         (rx_max_skip_for_label): New function.
26054         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
26055         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
26056         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
26057         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
26058         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
26059
26060 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
26061
26062         PR rtl-optimization/48263
26063         * optabs.c (expand_binop_directly): Reinstate convert_modes code
26064         and original commutative_p handling.  Use maybe_gen_insn.
26065
26066 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26067
26068         * reload.c (find_reloads_subreg_address): Add address_reloaded
26069         parameter and return true there if the full address has been
26070         reloaded.
26071         (find_reloads_toplev): Pass address_reloaded flag.
26072         (find_reloads_address_1): Don't use address_reloaded parameter.
26073
26074 2011-03-24  Jeff Law  <law@redhat.com>
26075
26076         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
26077         unused variable "ann".
26078         (remove_unused_locals): Likewise.
26079
26080         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
26081         statement.
26082
26083         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
26084         after it is freed.
26085
26086 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26087
26088         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
26089         for invalid symbolic addresses.
26090         (s390_secondary_reload): Don't use s390_check_symref_alignment for
26091         larl operands.
26092
26093 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
26094
26095         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
26096         the argument in calls to fold_truth_not_expr.
26097
26098 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
26099
26100         * tree.c (record_node_allocation_statistics): New function.
26101         (make_node_stat, copy_node_stat, build_string): Call it.
26102         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
26103         (build1_stat, build_omp_clause): Likewise.
26104
26105 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
26106
26107         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
26108         last commit.
26109
26110 2011-03-24  Richard Guenther  <rguenther@suse.de>
26111
26112         PR tree-optimization/48271
26113         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
26114         blocks that still exist.
26115
26116 2011-03-24  Richard Guenther  <rguenther@suse.de>
26117
26118         PR tree-optimization/48270
26119         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
26120         not free datarefs before ddrs.
26121
26122 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
26123
26124         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
26125         from the address built for a reference with variable offset.
26126
26127 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
26128
26129         PR target/48237
26130         * config/i386/i386.md (*movdf_internal_rex64): Do not split
26131         alternatives that can be handled with movq or movabsq insn.
26132         (*movdf_internal): Disable for !TARGET_64BIT.
26133         (*movdf_internal_nointeger): Ditto.
26134         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
26135
26136 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
26137
26138         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
26139         (FUNCTION_ARG_ADVANCE): Likewise.
26140         * tm.texi.in: Change references to them to hook references.
26141         * tm.texi: Regenerate.
26142         * targhooks.c (default_function_arg): Eliminate check for target macro.
26143         (default_function_incoming_arg): Likewise.
26144         (default_function_arg_advance): Likewise.
26145         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
26146         (function_arg_advance): Likewise.
26147         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
26148
26149 2011-03-24  Richard Guenther  <rguenther@suse.de>
26150
26151         PR middle-end/48269
26152         * tree-object-size.c (addr_object_size): Do not double-account
26153         for MEM_REF offsets.
26154
26155 2011-03-24  Diego Novillo  <dnovillo@google.com>
26156
26157         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
26158         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
26159         (lto_input_data_block): Move from lto-opts.c.  Make extern.
26160         Update all users.
26161         (lto_input_string): Rename from input_string.  Make extern.
26162         Update all users.
26163         * lto-streamer-out.c (lto_output_string_with_length): Rename from
26164         output_string_with_length.
26165         Output 0 to indicate a non-NULL string.  Update all callers to
26166         not emit 0.
26167         (lto_output_string): Rename from output_string.  Make extern.
26168         Update all users.
26169         (lto_output_decl_state_streams): Make extern.
26170         (lto_output_decl_state_refs): Make extern.
26171         * lto-streamer.h (lto_input_string): Declare.
26172         (lto_input_data_block): Declare.
26173         (lto_output_string): Declare.
26174         (lto_output_string_with_length): Declare.
26175         (lto_output_decl_state_streams): Declare.
26176         (lto_output_decl_state_refs): Declare.
26177
26178 2011-03-24  Richard Guenther  <rguenther@suse.de>
26179
26180         PR tree-optimization/46562
26181         * tree.c (build_invariant_address): New function.
26182         * tree.h (build_invariant_address): Declare.
26183         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
26184         a renamed function moved ...
26185         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
26186         Take valueization callback parameter.
26187         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
26188         * gimple-fold.h: New file.
26189         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
26190         (ccp_fold, fold_const_aggregate_ref,
26191         fold_ctor_reference, fold_nonarray_ctor_reference,
26192         fold_array_ctor_reference, fold_string_cst_ctor_reference,
26193         get_base_constructor): Move ...
26194         * gimple-fold.c: ... here.
26195         (gimple_fold_stmt_to_constant_1): New function
26196         split out from ccp_fold.  Take a valueization callback parameter.
26197         Valueize all operands.
26198         (gimple_fold_stmt_to_constant): New wrapper function.
26199         (fold_const_aggregate_ref_1): New function split out from
26200         fold_const_aggregate_ref.  Take a valueization callback parameter.
26201         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
26202         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
26203         invariant POINTER_PLUS_EXPRs to invariant form.
26204         (vn_valueize): New function.
26205         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
26206         * tree-vrp.c (vrp_valueize): New function.
26207         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
26208         to fold statements to constants.
26209         * tree-ssa-pre.c (eliminate): Properly guard propagation of
26210         function declarations.
26211         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
26212         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
26213
26214 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
26215
26216         * config/h8300/predicates.md (jump_address_operand): Fix register
26217         mode check.
26218
26219 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
26220
26221         * doc/invoke.texi (max-stores-to-sink): Document.
26222         * params.h (MAX_STORES_TO_SINK): Define.
26223         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
26224         if either vectorization or if-conversion is disabled.
26225         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
26226         tree-vect-data-refs.c vect_equal_offsets.
26227         (dr_equal_offsets_p): New function.
26228         (find_data_references_in_bb): Remove static.
26229         * tree-data-ref.h (find_data_references_in_bb): Declare.
26230         (dr_equal_offsets_p): Likewise.
26231         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
26232         (vect_drs_dependent_in_basic_block): Update calls to
26233         vect_equal_offsets.
26234         (vect_check_interleaving): Likewise.
26235         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
26236         (cond_if_else_store_replacement): Rename to...
26237         (cond_if_else_store_replacement_1): ... this.  Change arguments and
26238         documentation.
26239         (cond_if_else_store_replacement): New function.
26240         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
26241         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
26242
26243 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
26244
26245         PR target/46934
26246         * config/arm/arm.md (casesi): Use the gen_int_mode() function
26247         to subtract lower bound instead of GEN_INT().
26248
26249 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
26250
26251         PR other/48179
26252         PR other/48221
26253         PR other/48234
26254         * doc/extend.texi (Alignment): Move section to match order in TOC.
26255         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
26256         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
26257
26258 2011-03-23  Jeff Law  <law@redhat.com>
26259
26260         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
26261         before removing the edge.
26262
26263         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
26264         it may have been freed by redirect_branch_edge or
26265         redirect_edge_succ_nodup.
26266
26267 2011-03-23  Richard Guenther  <rguenther@suse.de>
26268
26269         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
26270         (check_va_list_escapes): Likewise.
26271         (check_all_va_list_escapes): Likewise.
26272
26273 2011-03-23  Richard Guenther  <rguenther@suse.de>
26274
26275         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
26276         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
26277         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
26278         (alias.o): Likewise.
26279         (ipa-type-escape.o): Remove.
26280         (ipa-struct-reorg.o): Likewise.
26281         (GTFILES): Remove ipa-struct-reorg.c.
26282         * alias.c: Do not include ipa-type-escape.h.
26283         * tree-ssa-alias.c: Likewise.
26284         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
26285         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
26286         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
26287         and ipa-type-escape passes.
26288         * tree-pass.h (pass_ipa_type_escape): Remove.
26289         (pass_ipa_struct_reorg): Likewise.
26290         * ipa-struct-reorg.h: Remove.
26291         * ipa-struct-reorg.c: Likewise.
26292         * ipa-type-escape.h: Likewise.
26293         * ipa-type-escape.c: Likewise.
26294         * doc/invoke.texi (-fipa-struct-reorg): Remove.
26295         (--param struct-reorg-cold-struct-ratio): Likewise.
26296         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
26297         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
26298         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
26299
26300 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26301
26302         * config/s390/2084.md: Enable all insn reservations also for z9_ec
26303         cpu attribute value.
26304         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
26305         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
26306         * config/s390/s390.c (processor_flags_table): New constant array.
26307         (s390_handle_arch_option): Remove.
26308         (s390_handle_option): Remove s390_handle_arch_option invocations
26309         and OPT_mwarn_framesize_ handling.
26310         (s390_option_override): Remove s390_handle_arch_option invocation.
26311         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
26312         warnings.
26313         * config/s390/s390.md (cpu attribute): Add z9_ec value.
26314         * config/s390/s390.opt (s390_tune, s390_arch)
26315         (march=): Replace s390_arch_option enum and values with
26316         processor_type.  Set variable name to s390_arch.  Set
26317         initialization value.
26318         (mtune=): Replace s390_arch_option with processor_type.  Set
26319         variable name to s390_tune.  Set initialization value.
26320
26321 2011-03-23  Julian Brown  <julian@codesourcery.com>
26322
26323         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
26324         accesses which are not naturally aligned.
26325
26326 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
26327
26328         PR target/47553
26329         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
26330
26331 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
26332
26333         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
26334         parameter from "int" to "enum insn_code".
26335         (expand_operand_type): New enum.
26336         (expand_operand): New structure.
26337         (create_expand_operand): New function.
26338         (create_fixed_operand, create_output_operand): Likewise
26339         (create_input_operand, create_convert_operand_to): Likewise.
26340         (create_convert_operand_from, create_address_operand): Likewise.
26341         (create_integer_operand): Likewise.
26342         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
26343         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
26344         (expand_insn, expand_jump_insn): Likewise.
26345         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
26346         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
26347         (expand_movstr, expand_builtin___clear_cache): Likewise.
26348         (expand_builtin_lock_release): Likewise.
26349         * explow.c (allocate_dynamic_stack_space): Likewise.
26350         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
26351         and use the default handling in that case.
26352         * expmed.c (check_predicate_volatile_ok): Delete.
26353         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
26354         (emit_cstore): Likewise.
26355         * expr.c (emit_block_move_via_movmem): Likewise.
26356         (set_storage_via_setmem, expand_assignment): Likewise.
26357         (emit_storent_insn, try_casesi): Likewise.
26358         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
26359         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
26360         (expand_vec_shift_expr, expand_binop_directly): Likewise.
26361         (expand_twoval_unop, expand_twoval_binop): Likewise.
26362         (expand_unop_direct, emit_indirect_jump): Likewise.
26363         (emit_conditional_move, vector_compare_rtx): Likewise.
26364         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
26365         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
26366         (expand_sync_lock_test_and_set): Likewise.
26367         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
26368         (emit_unop_insn): Likewise.
26369         (expand_copysign_absneg): Change icode to an insn_code.
26370         (create_convert_operand_from_type): New function.
26371         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
26372         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
26373         (expand_insn, expand_jump_insn): Likewise.
26374         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
26375         than const_int_operand for operand 2.
26376
26377 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26378
26379         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
26380         if possible.
26381
26382 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
26383
26384         * emit-rtl.c (emit_pattern_before_noloc): New function.
26385         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
26386         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
26387         (emit_pattern_after_noloc): New function.
26388         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
26389         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
26390
26391 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
26392
26393         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
26394         (__ffsDI2): Likewise.
26395
26396 2011-03-22  Richard Henderson  <rth@redhat.com>
26397
26398         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
26399         of !TARGET_ABI_OPEN_VMS.
26400         (alpha_trampoline_init, alpha_start_function): Likewise.
26401         (alpha_expand_epilogue, alpha_file_start): Likewise.
26402         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
26403         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
26404         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
26405         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
26406         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
26407
26408 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26409
26410         * config/s390/s390-opts.h: New.
26411         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
26412         s390_arch_flags, s390_warn_framesize, s390_stack_size,
26413         s390_stack_guard): Remove.
26414         (s390_handle_arch_option): Return void.  Take enum
26415         s390_arch_option value instead of string and searching array.
26416         (s390_handle_option): Don't assert that global structures are in
26417         use.  Access variables via opts pointer.  Use error_at.  Don't use
26418         sscanf for -mstack-guard= or -mstack-size=.  Update call to
26419         s390_handle_arch_option.
26420         (s390_option_override): Update call to s390_handle_arch_option.
26421         (s390_emit_prologue): Use %d format for s390_stack_size in
26422         diagnostic.  Use %wd for HOST_WIDE_INT.
26423         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
26424         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
26425         * config/s390/s390.opt (config/s390/s390-opts.h): New
26426         HeaderInclude entry.
26427         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
26428         s390_arch_flags, s390_warn_framesize): New Variable entries.
26429         (s390_arch_option): New Enum and EnumValue entries.
26430         (march=): Use Enum instead of Var.
26431         (mstack-guard=, mstack-size=): Use UInteger and Var.
26432         (mtune=): Use Enum.
26433
26434 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26435
26436         * config/score/score.c (score_handle_option): Don't assert that
26437         global structures are in use.  Access target_flags via opts
26438         pointer.  Use value of -march= option to determine target_flags
26439         settings.
26440         * config/score/score.opt (march=): Use Enum.
26441         (score_arch): New Enum and EnumValue entries.
26442
26443 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26444
26445         * config/mep/mep.c (option_mtiny_specified): Remove.
26446         (mep_option_override): Move register handling for -mivc2 from
26447         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
26448         instead of option_mtiny_specified.
26449         (mep_handle_option): Access target_flags via opts pointer.  Don't
26450         assert that global structures are in use.  Defer part of -mivc2
26451         handling and move it to mep_option_override.
26452         * config/mep/mep.opt (IVC2): New Mask entry.
26453         (mivc2): Use Var and Defer instead of Mask.
26454
26455 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26456
26457         * config/v850/v850-opts.h: New.
26458         * config/v850/v850.c (small_memory): Replace with
26459         small_memory_physical_max array.  Make that array static const.
26460         (v850_handle_memory_option): Take integer value of argument.  Take
26461         gcc_options pointer, option text and location.  Return void.
26462         Update for changes to small memory structures.
26463         (v850_handle_option): Access target_flags via opts pointer.  Don't
26464         assert that global structures are in use.  Update calls to
26465         v850_handle_memory_option.
26466         (v850_encode_data_area): Update references to small memory settings.
26467         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
26468         (enum small_memory_type): Move to v850-opts.h.
26469         * config/v850/v850.opt (config/v850/v850-opts.h): New
26470         HeaderInclude entry.
26471         (small_memory_max): New Variable entry.
26472         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
26473         (mtda, mzda): Likewise.
26474
26475 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26476
26477         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
26478         pointer.  Don't assert that global structures are in use.
26479
26480 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26481
26482         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
26483         via opts pointer.  Don't assert that global structures are in use.
26484
26485 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26486
26487         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
26488         (munix=93): Use Var.
26489         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
26490         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
26491         * config/pa/pa-opts.h: New.
26492         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
26493         (pa_handle_option): Don't assert that global structures are in
26494         use.  Access target_flags via opts pointer.  Don't handle
26495         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
26496         OPT_munix_98 here.
26497         (pa_option_override): Handle deferred OPT_mfixed_range_.
26498
26499 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26500
26501         * config/mn10300/mn10300-opts.h: New.
26502         * config/mn10300/mn10300.c (mn10300_processor,
26503         mn10300_tune_string): Remove.
26504         (mn10300_handle_option): Don't assert that global structures are
26505         in use.  Access mn10300_processor via opts pointer.  Don't handle
26506         OPT_mtune_ here.
26507         * config/mn10300/mn10300.h (enum processor_type): Move to
26508         mn10300-opts.h.
26509         (mn10300_processor): Remove.
26510         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
26511         HeaderInclude entry.
26512         (mn10300_processor): New Variable entry.
26513         (mtune=): Use Var.
26514
26515 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26516
26517         * config/microblaze/microblaze.c: Don't include opts.h.
26518         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
26519         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
26520         (mno-clearbss): Use Var and Warn.
26521
26522 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26523
26524         * config/m32r/m32r-opts.h: New.
26525         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
26526         (m32r_handle_option): Don't assert that global structures are in
26527         use.  Access target_flags and m32r_cache_flush_func via opts
26528         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
26529         OPT_mno_flush_trap here.
26530         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
26531         include of m32r-opts.h.
26532         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
26533         HeaderInclude entry.
26534         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
26535         (mmodel=): Use Enum and Var.
26536         (m32r_model): New Enum and EnumValue entries.
26537         (mno-flush-trap): Use Var.
26538         (msdata=): Use Enum and Var.
26539         (m32r_sdata): New Enum and EnumValue entries.
26540
26541 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26542
26543         * config/m32c/m32c.c: Don't include opts.h.
26544         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
26545         m32c_handle_option): Remove.
26546         (m32c_option_override): Check global_options_set.x_target_memregs
26547         instead of target_memregs_set.
26548         * config/m32c/m32c.h (target_memregs): Remove.
26549         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
26550         variable.
26551
26552 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26553
26554         * config/iq2000/iq2000-opts.h: New.
26555         * config/iq2000/iq2000.c: Don't include opts.h.
26556         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
26557         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
26558         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
26559         HeaderInclude entry.
26560         (iq2000_tune): New Variable entry.
26561         (march=): Add comment.  Use Enum.
26562         (iq2000_arch): New Enum and EnumValue entries.
26563         (mcpu=): Use Enum and Var.
26564         (iq2000_tune): New Enum and EnumValue entries.
26565
26566 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26567
26568         * config/ia64/ia64-opts.h: New.
26569         * config/ia64/ia64.c (ia64_tune): Remove.
26570         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
26571         here.  Use error_at.
26572         (ia64_option_override): Handle deferred OPT_mfixed_range_.
26573         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
26574         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
26575         HeaderInclude entry.
26576         (ia64_tune): New Variable entry.
26577         (mfixed-range=): Use Defer and Var.
26578         (mtune=): Use Enum and Var.
26579         (ia64_tune): New Enum and EnumValue entries.
26580
26581 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26582
26583         * config/frv/frv-opts.h: New.
26584         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
26585         frv-opts.h.
26586         (frv_cpu_type): Remove.
26587         * config/frv/frv.c: Don't include opts.h.
26588         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
26589         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
26590         (frv_cpu_type): New Variable entry.
26591         (frv_cpu): New Enum and EnumValue entries.
26592
26593 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26594
26595         * config/cris/cris.c (cris_handle_option): Access target_flags via
26596         opts pointer.  Don't assert that global structures are in use.
26597         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
26598         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
26599
26600 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26601
26602         * config/bfin/bfin-opts.h: New.
26603         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
26604         bfin_si_revision, bfin_workarounds): Remove.
26605         (bfin_cpus): Make static const.
26606         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
26607         not bfin_lib_id_given.
26608         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
26609         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
26610         pointer. Use error_at.  Don't assert that global structures are in use.
26611         * config/bfin/bfin.h: Include bfin-opts.h.
26612         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
26613         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
26614         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
26615         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
26616         entries.
26617
26618 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26619
26620         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
26621         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
26622         or -msoft-float here.
26623         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
26624         -msoft-float and -mhard-float.
26625         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
26626         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
26627         msoft-float.
26628         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
26629         -msoft-float.
26630         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
26631         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
26632         not mhard-float.
26633         (LIBGCC_SPEC): Don't handle -msoft-float.
26634         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
26635         -mhard-float.
26636         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
26637         msoft-float.
26638         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
26639         -mfloat-abi=*, not -msoft-float and -mhard-float.
26640         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
26641         -msoft-float.
26642         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
26643         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
26644         mhard-float and msoft-float.
26645         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
26646         mfloat-abi=soft in comments, not mhard-float and msoft-float.
26647         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
26648         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
26649         mhard-float.
26650         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
26651         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
26652         msoft-float.
26653         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
26654         not mhard-float.
26655         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
26656         not msoft-float.
26657
26658 2011-03-22  Richard Henderson  <rth@redhat.com>
26659
26660         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
26661         TARGET_ABI_WINDOWS_NT.
26662         (alpha_output_function_end_prologue): Likewise.
26663         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
26664         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
26665         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
26666         (trap, *movsi_nt_vms): Likewise.
26667         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
26668         (*tablejump_osf_nt_internal): Remove.
26669         * config/alpha/predicates.md (input_operand): Only test Pmode.
26670
26671 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26672
26673         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
26674         via opts pointer.  Use error_at.  Don't assert that global
26675         structures are in use.
26676
26677 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26678
26679         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
26680         (ix86_handle_option): Access ix86_isa_flags and
26681         ix86_isa_flags_explicit via opts pointer.  Don't assert that
26682         global structures are in use.
26683         (ix86_function_specific_save, ix86_function_specific_restore):
26684         Update ix86_isa_flags_explicit field name.
26685         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
26686         (ix86_isa_flags_explicit): Rename TargetSave entry to
26687         x_ix86_isa_flags_explicit.
26688
26689 2011-03-22  Richard Henderson  <rth@redhat.com>
26690
26691         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
26692         (alpha_option_override, direct_return): Likewise.
26693         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
26694         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
26695         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
26696         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
26697         (alpha_expand_epilogue, alpha_end_function): Likewise.
26698         (alpha_init_libfuncs): Likewise.
26699         (struct machine_function): Remove unicosmk members.
26700         (print_operand) ['t']: Remove.
26701         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
26702         unicosmk_output_module_name, unicosmk_output_common,
26703         current_section_align, unicosmk_output_text_section_asm_op,
26704         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
26705         unicosmk_section_type_flags, unicosmk_unique_section,
26706         unicosmk_asm_named_section, unicosmk_insert_attributes,
26707         unicosmk_output_align, unicosmk_defer_case_vector,
26708         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
26709         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
26710         unicosmk_output_ssib, unicosmk_add_call_info_word,
26711         unicosmk_extern_head, unicosmk_output_default_externs,
26712         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
26713         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
26714         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
26715         * config/alpha/alpha-protos.h: Update.
26716         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
26717         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
26718         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
26719         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
26720         (*mulsi_se, mulvsi3): Likewise.
26721         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
26722         (*divmodsi_internal, call, call_value, realign): Likewise.
26723         (moddi3, umoddi3): Likewise; remove duplicate expander.
26724         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
26725         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
26726         (*movdi_nofix): Remove r/U alternative.
26727         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
26728         * config/alpha/constraints.md ("U"): Remove.
26729         * config/alpha/predicates.md (call_operand"): Don't test
26730         TARGET_ABI_UNICOSMK.
26731
26732 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26733
26734         * target.def (handle_option): Take gcc_options and
26735         cl_decoded_option pointers and location_t.
26736         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
26737         * doc/tm.texi: Regenerate.
26738         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
26739         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
26740         * lto-opts.c (lto_reissue_options): Generate option structure for
26741         targetm.handle_option call.
26742         * opts.c (target_handle_option): Update call to
26743         targetm.handle_option.  Remove assertions about values now passed
26744         down to hook.
26745         * targhooks.c (default_target_handle_option): New.
26746         * targhooks.h (default_target_handle_option): Declare.
26747         * config/alpha/alpha.c: Include opts.h.
26748         (alpha_handle_option): Update to new hook interface.
26749         * config/arm/arm.c: Include opts.h.
26750         (arm_handle_option): Update to new hook interface.
26751         * config/arm/t-arm (arm.o): Update dependencies.
26752         * config/bfin/bfin.c: Include opts.h.
26753         (bfin_handle_option): Update to new hook interface.
26754         * config/cris/cris.c: Include opts.h.
26755         (cris_handle_option): Update to new hook interface.
26756         * config/frv/frv.c: Include opts.h.
26757         (frv_handle_option): Update to new hook interface.
26758         * config/i386/i386.c: Include opts.h.
26759         (ix86_handle_option): Update to new hook interface.
26760         (ix86_valid_target_attribute_inner_p): Generate option structure
26761         for call to ix86_handle_option.
26762         * config/i386/t-i386 (i386.o): Update dependencies.
26763         * config/ia64/ia64.c: Include opts.h.
26764         (ia64_handle_option): Update to new hook interface.
26765         * config/ia64/t-ia64 (ia64.o): Update dependencies.
26766         * config/iq2000/iq2000.c: Include opts.h.
26767         (iq2000_handle_option): Update to new hook interface.
26768         * config/m32c/m32c.c: Include opts.h.
26769         (m32c_handle_option): Update to new hook interface.
26770         * config/m32r/m32r.c: Include opts.h.
26771         (m32r_handle_option): Update to new hook interface.
26772         * config/m68k/m68k.c: Include opts.h.
26773         (m68k_handle_option): Update to new hook interface.
26774         * config/mep/mep.c: Include opts.h.
26775         (mep_handle_option): Update to new hook interface.
26776         * config/microblaze/microblaze.c: Include opts.h.
26777         (microblaze_handle_option): Update to new hook interface.
26778         * config/mips/mips.c: Include opts.h.
26779         (mips_handle_option): Update to new hook interface.
26780         * config/mn10300/mn10300.c: Include opts.h.
26781         (mn10300_handle_option): Update to new hook interface.
26782         * config/pa/pa.c: Include opts.h.
26783         (pa_handle_option): Update to new hook interface.
26784         * config/pdp11/pdp11.c: Include opts.h.
26785         (pdp11_handle_option): Update to new hook interface.
26786         * config/rs6000/rs6000.c: Include opts.h.
26787         (rs6000_handle_option): Update to new hook interface.
26788         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
26789         * config/rx/rx.c: Include opts.h.
26790         (rx_handle_option): Update to new hook interface.
26791         * config/s390/s390.c: Include opts.h.
26792         (s390_handle_option): Update to new hook interface.
26793         * config/score/score.c: Include opts.h.
26794         (score_handle_option): Update to new hook interface.
26795         * config/sh/sh.c: Include opts.h.
26796         (sh_handle_option): Update to new hook interface.
26797         * config/sparc/sparc.c: Include opts.h.
26798         (sparc_handle_option): Update to new hook interface.
26799         * config/v850/v850.c: Include opts.h.
26800         (v850_handle_option): Update to new hook interface.
26801
26802 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26803
26804         * gcc.c (driver_unknown_option_callback): Only permit and save
26805         unknown -Wno- options.
26806         (driver_wrong_lang_callback): Save options directly instead of via
26807         driver_unknown_option_callback.
26808
26809 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
26810
26811         * combine.c (simplify_set): Try harder to find the best CC mode when
26812         simplifying a nested COMPARE on the RHS.
26813
26814 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
26815
26816         * config/alpha/gnu.h: Remove.
26817         * config/arc: Remove directory.
26818         * config/arm/netbsd.h: Remove.
26819         * config/arm/t-pe: Remove.
26820         * config/crx: Remove directory.
26821         * config/i386/netbsd.h: Remove.
26822         * config/m68hc11: Remove directory.
26823         * config/m68k/uclinux-oldabi.h: Remove.
26824         * config/mcore/mcore-pe.h: Remove.
26825         * config/mcore/t-mcore-pe: Remove.
26826         * config/netbsd-aout.h: Remove.
26827         * config/rs6000/gnu.h: Remove.
26828         * config/sh/sh-symbian.h: Remove.
26829         * config/sh/symbian-base.c: Remove.
26830         * config/sh/symbian-c.c: Remove.
26831         * config/sh/symbian-cxx.c: Remove.
26832         * config/sh/symbian-post.h: Remove.
26833         * config/sh/symbian-pre.h: Remove.
26834         * config/sh/t-symbian: Remove.
26835         * config/svr3.h: Remove.
26836         * config/vax/netbsd.h: Remove.
26837         * config.build: Don't handle i[34567]86-*-pe.
26838         * config.gcc: Remove handling of deprecations for most deprecated
26839         targets.
26840         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
26841         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
26842         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
26843         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
26844         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
26845         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
26846         Remove cases.
26847         * config.host: Don't handle i[34567]86-*-pe.
26848         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
26849         (ASM_SPEC32): Don't handle -mcall-gnu.
26850         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
26851         -mcall-gnu.
26852         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
26853         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
26854         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
26855         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
26856         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
26857         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
26858         conditional on SYMBIAN.
26859         * configure.ac: Don't handle powerpc*-*-gnu*.
26860         * configure: Regenerate.
26861         * doc/extend.texi (interrupt attribute): Don't mention CRX.
26862         * doc/install-old.texi (m6811, m6812): Don't mention.
26863         * doc/install.texi (arc-*-elf*): Don't document multilib option.
26864         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
26865         (m68k-uclinuxoldabi): Don't mention.
26866         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
26867         Remove.
26868         (-mcall-gnu): Remove.
26869         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
26870         families): Remove constraint documentation.
26871
26872 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
26873
26874         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
26875         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
26876         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
26877
26878 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
26879
26880         PR target/48226
26881         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
26882         vector when peeking at the next token for vector, don't expand the
26883         keywords.
26884
26885 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
26886
26887         * config/avr/avr-protos.h (expand_epilogue): Change prototype
26888         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
26889         * config/avr/avr.c (init_cumulative_args)
26890         (avr_function_arg_advance): Use it.
26891         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
26892         sibcall epilogues.
26893         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
26894         (avr_function_ok_for_sibcall): ...this new function.
26895         (avr_lookup_function_attribute1): New static Function.
26896         (avr_naked_function_p, interrupt_function_p)
26897         (signal_function_p, avr_OS_task_function_p)
26898         (avr_OS_main_function_p): Use it.
26899         * config/avr/avr.md ("sibcall", "sibcall_value")
26900         ("sibcall_epilogue"): New expander.
26901         ("*call_insn", "*call_value_insn"): New insn.
26902         ("call_insn", "call_value_insn"): Remove
26903         ("call", "call_value", "epilogue"): Change expander to handle
26904         sibling calls.
26905
26906 2011-03-21  Nick Clifton  <nickc@redhat.com>
26907
26908         * doc/invoke.texi (Overall Options): Move closing brace to end of
26909         options list.
26910         (Optimization Options): Add missing @gol.
26911         (Directory Options): Likewise.
26912         (i386 and x86-64 Options): Likewise.
26913         (RS6000 and PowerPC Options): Likewise.
26914         (i386 and x86-64 Windows Options): Likewise.
26915         (V850 Options): Add text missing from descriptions.
26916
26917 2011-03-22  Richard Henderson  <rth@redhat.com>
26918
26919         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
26920         (avr_incoming_return_addr_rtx): New.
26921         (emit_push_byte): New.
26922         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
26923         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
26924         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
26925         (emit_pop_byte): New.
26926         (expand_epilogue): Use it.  Pop frame pointer by bytes.
26927         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
26928         (INCOMING_RETURN_ADDR_RTX): New.
26929         (INCOMING_FRAME_SP_OFFSET): New.
26930         (ARG_POINTER_CFA_OFFSET): New.
26931         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
26932         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
26933         (pophi): Remove.
26934
26935         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
26936
26937 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
26938
26939         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
26940         (FUNCTION_ARG_ADVANCE): Likewise.
26941         * tm.texi.in: Change references to them to hook references.
26942         * tm.texi: Regenerate.
26943         * targhooks.c (default_function_arg): Eliminate check for target
26944         macro.
26945         (default_function_incoming_arg): Likewise.
26946         (default_function_arg_advance): Likewise.
26947         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
26948         (function_arg_advance): Likewise.
26949         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
26950
26951 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
26952
26953         * tree.c (build_call_1): New function.
26954         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
26955
26956 2011-03-22  Richard Guenther  <rguenther@suse.de>
26957
26958         PR tree-optimization/48228
26959         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
26960         for single-arg PHIs.
26961
26962 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
26963
26964         PR rtl-optimization/48143
26965         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
26966         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
26967         sse2_cvtps2pd): Likewise.
26968
26969 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26970
26971         * recog.c (canonicalize_change_group): Use validate_unshare_change.
26972
26973 2011-03-22  Richard Guenther  <rguenther@suse.de>
26974
26975         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
26976         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
26977         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
26978         and REALIGN_LOAD_EXPR.
26979         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
26980         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
26981         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
26982         DOT_PROD_EXPR case ...
26983         (expand_expr_real_2): ... here.
26984         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
26985         and REALIGN_LOAD_EXPR.
26986         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
26987         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
26988         (vect_create_epilog_for_reduction): Likewise.
26989         (vectorizable_reduction): Likewise.
26990         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
26991         * tree-vect-stmts.c (vectorizable_load): Likewise.
26992
26993 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
26994
26995         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
26996
26997 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26998
26999         * config/s390/s390.c (s390_delegitimize_address): Fix offset
27000         handling for PLTOFF/GOTOFF.
27001
27002 2011-03-22  Nick Clifton  <nickc@redhat.com>
27003
27004         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
27005         trailing backslash from the end of the macro definition.
27006
27007 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27008
27009         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
27010         and PLT unspecs.
27011
27012 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
27013
27014         * expr.h (prepare_operand): Move to...
27015         * optabs.h (prepare_operand): ...here and change the insn code
27016         parameter from "int" to "enum insn_code".
27017         (insn_operand_matches): Declare.
27018         * expr.c (init_expr_target): Use insn_operand_matches.
27019         (compress_float_constant): Likewise.
27020         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
27021         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
27022         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
27023         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
27024         Likewise.
27025         (gen_cond_trap): Likewise.
27026         (prepare_operand): Likewise.  Change icode to an insn_code.
27027         (insn_operand_matches): New function.
27028         * reload.c (find_reloads_address_1): Use insn_operand_matches.
27029         * reload1.c (gen_reload): Likewise.
27030         * targhooks.c (default_secondary_reload): Likewise.
27031
27032 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
27033
27034         * config/alpha/alpha.md (unspec): New define_c_enum.
27035         (unspecv): Ditto.
27036
27037 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
27038
27039         PR debug/48214
27040         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
27041         between a call and its CALL_ARG_LOCATION note.
27042
27043 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
27044
27045         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
27046
27047 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
27048
27049         PR c/42544
27050         PR c/48197
27051         * c-common.c (shorten_compare): If primopN is first sign-extended
27052         to opN and then zero-extended to result type, set primopN to opN.
27053
27054 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
27055
27056         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
27057         for barrier handlers.
27058
27059 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
27060
27061         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
27062         UNSPEC constants to be in the unspec enumeration, and redefine
27063         all UNSPECV constants to be in the unspecv enumeration, so that
27064         dumps print which unspec/unspec_volatile this is.
27065         * config/rs6000/vector.md (UNSPEC_*): Ditto.
27066         * config/rs6000/paired.md (UNSPEC_*): Ditto.
27067         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
27068         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
27069         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
27070
27071         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
27072         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
27073         UNSPECV_LWSYNC, since these are used as unspec_volatile.
27074         * config/rs6000/sync.md (isync, lwsync): Ditto.
27075
27076 2011-03-21  Richard Guenther  <rguenther@suse.de>
27077
27078         * params.def (lto-min-partition): Fix typo.
27079
27080 2011-03-21  Richard Guenther  <rguenther@suse.de>
27081
27082         PR c/47939
27083         * c-decl.c (grokdeclarator): Drop to the main variant only
27084         for array types.  Drop flag_gen_aux_info check.
27085
27086 2011-03-21  Richard Guenther  <rguenther@suse.de>
27087
27088         PR translation/47911
27089         * params.def (lto-partitions): Fix typo.
27090         (lto-min-partition): Fix wording.
27091
27092 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
27093
27094         * config/rs6000/t-freebsd: Remove duplication from file.
27095
27096 2011-03-21  Richard Guenther  <rguenther@suse.de>
27097
27098         PR middle-end/47661
27099         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
27100
27101 2011-03-21  Richard Guenther  <rguenther@suse.de>
27102
27103         PR lto/48210
27104         * params.def (lto-partitions): Require at least 1 partition.
27105
27106 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27107
27108         * gthr-solaris.h: Remove.
27109         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
27110         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
27111         (LIB_SPEC): Likewise.
27112         * config/sol2.opt (threads): Remove.
27113         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
27114         (sparc*-*-solaris2*): Likewise.
27115         * configure.ac (enable_threads): Enable solaris support.
27116         * configure: Regenerate.
27117         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
27118         * doc/install.texi (Configuration, --enable-threads=lib): Remove
27119         solaris.
27120
27121 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27122
27123         * config.gcc: Obsolete *-*-solaris2.8*.
27124         * doc/install.texi (Specific, *-*-solaris2*): Document it.
27125
27126 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27127
27128         PR bootstrap/48135
27129         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
27130         reference.  Solaris 8 perl works.
27131
27132 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27133
27134         PR bootstrap/48135
27135         * doc/install.texi (Prerequisites): Move jar etc. up.
27136         Explain support library version requirements.
27137
27138 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27139
27140         PR bootstrap/48135
27141         * doc/install.texi (Prerequisites): Move Perl to build
27142         requirements.  Always necessary on Solaris 2 with Sun ld.
27143
27144 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27145
27146         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
27147         binutils 2.21.
27148         (Specific, i?86-*-solaris2.[89]): Likewise.
27149         (Specific, i?86-*-solaris2.10): Likewise.
27150         (Specific, mips-sgi-irix6): Likewise.
27151         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
27152         Update for binutils 2.21.
27153
27154 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27155
27156         * configure.ac (gcc_cv_lto_plugin): Fix typo.
27157         Allow -fuse-linker-plugin for non-default plugin linker.
27158         * configure: Regenerate.
27159
27160 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
27161
27162         PR bootstrap/48167
27163         * gengtype.c (files_rules): Added rule for cp/parser.h.
27164
27165 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
27166
27167         PR target/48213
27168         * config/s390/s390.c (s390_delegitimize_address): Don't call
27169         lowpart_subreg if orig_x has BLKmode.
27170
27171 2011-03-21  Kai Tietz  <ktietz@redhat.com>
27172
27173         PR target/12171
27174         * doc/plugins.texi: Adjust documentation for plugin register_callback.
27175         * tree.h (attribute_spec): Add new member affects_type_identity.
27176         * attribs.c (empty_attribute_table): Adjust attribute_spec
27177         initializers.
27178         * config/alpha/alpha.c: Likewise.
27179         * config/arc/arc.c: Likewise.
27180         * config/arm/arm.c: Likewise.
27181         * config/avr/avr.c: Likewise.
27182         * config/bfin/bfin.c: Likewise.
27183         * config/crx/crx.c: Likewise.
27184         * config/darwin.h: Likewise.
27185         * config/h8300/h8300.c: Likewise.
27186         * config/i386/cygming.h: Likewise.
27187         * config/i386/i386.c: Likewise.
27188         * config/ia64/ia64.c: Likewise.
27189         * config/m32c/m32c.c: Likewise.
27190         * config/m32r/m32r.c: Likewise.
27191         * config/m68hc11/m68hc11.c: Likewise.
27192         * config/m68k/m68k.c: Likewise.
27193         * config/mcore/mcore.c: Likewise.
27194         * config/mep/mep.c: Likewise.
27195         * config/microblaze/microblaze.c: Likewise.
27196         * config/mips/mips.c: Likewise.
27197         * config/rs6000/rs6000.c: Likewise.
27198         * config/rx/rx.c: Likewise.
27199         * config/sh/sh.c: Likewise.
27200         * config/sol2.h: Likewise.
27201         * config/sparc/sparc.c: Likewise.
27202         * config/spu/spu.c: Likewise.
27203         * config/stormy16/stormy16.c: Likewise.
27204         * config/v850/v850.c: Likewise.
27205
27206 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
27207
27208         * simplify-rtx.c (simplify_binary_operation_1): Handle
27209         (xor (and A B) C) case when B and C are both constants.
27210
27211 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
27212
27213         * tree-dfa.c (add_referenced_var): Fix typo in comment.
27214
27215 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
27216
27217         PR bootstrap/48168
27218         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
27219
27220 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
27221
27222         PR rtl-optimization/48156
27223         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
27224         assume df and df_lr are not NULL.
27225
27226 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
27227
27228         PR debug/48023
27229         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
27230         between a call and its CALL_ARG_LOCATION note.
27231
27232 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
27233
27234         PR debug/48178
27235         * config/sh/sh.c (find_barrier): Don't emit a constant pool
27236         between a call and its corresponding CALL_ARG_LOCATION note.
27237
27238 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
27239
27240         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
27241         instead of loop. Use HARD_REGISTER_NUM_P predicate.
27242         * haifa-sched.c (setup_ref_regs): Ditto.
27243         * caller-save.c (add_used_regs_1): Ditto.
27244         * dse.c (look_for_hardregs): Ditto.
27245         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
27246         * sched-rgn.c (check_live_1): Ditto.
27247
27248 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
27249
27250         * c-decl.c (diagnose_mismatched_decls): Give an error for
27251         redefining a typedef with variably modified type.
27252
27253 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
27254
27255         * c-decl.c (grokfield): Don't allow typedefs for structures or
27256         unions with no tag by default.
27257         * doc/extend.texi (Unnamed Fields): Update.
27258
27259 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
27260
27261         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
27262         Rewrite using indirect functions.
27263         (lwp_slwpcb): Ditto.
27264         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
27265         (avx_vinsertf128<mode>): Ditto.
27266
27267 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27268
27269         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
27270         unspecs.
27271
27272 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27273
27274         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
27275         splitting between a call and its corresponding CALL_ARG_LOCATION note.
27276
27277 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
27278
27279         PR rtl-optimization/48170
27280         * gcse.c (hoist_code): Remove bogus asserts.
27281
27282 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
27283
27284         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
27285         computation for prologue/epilogue.
27286
27287 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27288
27289         * Makefile.in (check-consistency): Remove.
27290
27291 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
27292
27293         PR debug/48176
27294         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
27295         arange_table_in_use is 0, but either text_section_used or
27296         cold_text_section_used is true.  Don't call it if
27297         !info_section_emitted.
27298
27299 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
27300
27301         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
27302         FUNCTION_VALUE_REGNO_P): Remove.
27303         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
27304         Remove.
27305         * config/avr/avr.c (avr_ret_register): Make static inline.
27306         (avr_function_value_regno_p): New function.
27307         (avr_libcall_value): Make static. Add 'func' argument.
27308         (avr_function_value): Make static. Rename 'func' argument to
27309         'fn_decl_or_type', forward it to avr_libcall_value. Call
27310         avr_ret_register function instead of RET_REGISTER macro.
27311         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
27312
27313 2011-03-18  Jason Merrill  <jason@redhat.com>
27314
27315         PR c++/23372
27316         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
27317
27318 2011-03-18  Richard Guenther  <rguenther@suse.de>
27319
27320         * doc/install.texi (--enable-gold): Remove.
27321         (--with-plugin-ld): Document.
27322         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
27323
27324 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
27325
27326         PR middle-end/47790
27327         * expr.c (optimize_bitfield_assignment_op): Revamp to work
27328         again after expansion changes.
27329
27330 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
27331
27332         * combine.c (try_combine): Do simplification only call of
27333         subst() on i2 even when i1 is present. Update comments.
27334
27335 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
27336
27337         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
27338         and UNSPEC_PCREL_SYMOFF.
27339
27340 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27341
27342         * config/s390/s390.md: Use define_c_enum for the unspec constant
27343         definitions.
27344
27345 2011-03-18  Richard Henderson  <rth@redhat.com>
27346             Jakub Jelinek  <jakub@redhat.com>
27347
27348         PR bootstrap/48161
27349         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
27350         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
27351
27352 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
27353
27354         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
27355         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
27356         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
27357         Change return type to bool.
27358         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
27359
27360 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
27361
27362         PR debug/48163
27363         * var-tracking.c (prepare_call_arguments): If CALL target
27364         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
27365         pc instead of looking it up using cselib_lookup and use
27366         Pmode for it if x has VOIDmode.
27367         * dwarf2out.c (gen_subprogram_die): If also both first and
27368         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
27369
27370         PR debug/48163
27371         * function.c (assign_parms): For data.passed_pointer parms
27372         use MEM of data.entry_parm instead of data.entry_parm itself
27373         as DECL_INCOMING_RTL.
27374         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
27375         also when passed and declared mode is the same, DECL_RTL
27376         is a MEM with pseudo as address and DECL_INCOMING_RTL is
27377         a MEM too.
27378
27379 2011-03-16  Jeff Law  <law@redhat.com>
27380
27381         PR rtl-optimization/37273
27382         * ira-costs.c (scan_one_insn): Detect constants living in memory and
27383         handle them like argument loads from stack slots.  Do not double
27384         count memory for memory constants and argument loads from stack slots.
27385
27386 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
27387
27388         PR debug/48160
27389         * var-tracking.c (prepare_call_arguments): Check SUBREG.
27390
27391 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
27392
27393         PR target/48171
27394         * config/i386/i386.opt: Add Save to -mavx and -mfma.
27395
27396 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
27397
27398         PR bootstrap/48153
27399         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
27400         if dwarf_strict.
27401         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
27402         Clear call_arg_locations and call_arg_loc_last always.
27403
27404         PR middle-end/48152
27405         * var-tracking.c (prepare_call_arguments): If argument needs to be
27406         passed by reference, adjust argtype and mode.
27407
27408 2011-03-17  Richard Guenther  <rguenther@suse.de>
27409
27410         PR middle-end/48134
27411         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
27412         a value make sure to fold the statement.
27413
27414 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
27415
27416         PR target/43872
27417         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
27418         return condition with !cfun->calls_alloca.
27419
27420 2011-03-17  Richard Guenther  <rguenther@suse.de>
27421
27422         PR bootstrap/48148
27423         * lto-cgraph.c (input_overwrite_node): Clear the abstract
27424         origin for decls in other ltrans units.
27425         (input_varpool_node): Likewise.
27426
27427 2011-03-17  Richard Guenther  <rguenther@suse.de>
27428
27429         PR middle-end/48165
27430         * tree-object-size.c (compute_object_offset): Properly return
27431         the offset operand of MEM_REFs as sizetype.
27432
27433 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
27434
27435         PR rtl-optimization/48141
27436         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
27437         * dse.c: Include params.h.
27438         (active_local_stores_len): New variable.
27439         (add_wild_read, dse_step1): Clear it when setting active_local_stores
27440         to NULL.
27441         (record_store, check_mem_read_rtx): Decrease it when removing
27442         from the chain.
27443         (scan_insn): Likewise.  Increase it when adding to chain, if it
27444         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
27445         set active_local_stores to NULL before the addition.
27446         * Makefile.in (dse.o): Depend on $(PARAMS_H).
27447
27448         PR rtl-optimization/48141
27449         * dse.c (record_store): If no positions are needed in an insn
27450         that cannot be deleted, at least unchain it from active_local_stores.
27451
27452 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
27453
27454         PR debug/47510
27455         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
27456         (lookup_type_die_strip_naming_typedef): ... here.
27457         (get_context_die): Use it.
27458         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
27459         the anonymous struct named by the naming typedef.
27460
27461 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
27462
27463         PR target/48154
27464         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
27465         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
27466
27467 2011-03-16  Jeff Law  <law@redhat.com>
27468
27469         * tree-vrp.c (identify_jump_threads): Slightly simplify type
27470         check for operands of conditional.  Allow type to be a pointer.
27471
27472 2011-03-16  Richard Guenther  <rguenther@suse.de>
27473
27474         PR tree-optimization/48149
27475         * fold-const.c (fold_binary_loc): Fold
27476         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
27477
27478 2011-03-16  Richard Guenther  <rguenther@suse.de>
27479
27480         PR tree-optimization/26134
27481         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
27482         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
27483         (non_rewritable_mem_ref_base): Handle complex type component
27484         accesses, constrain offsets for vector and complex extracts
27485         more properly.
27486
27487 2011-03-16  Richard Guenther  <rguenther@suse.de>
27488
27489         PR tree-optimization/48146
27490         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
27491         operands avoiding the need for renaming.
27492
27493 2011-03-16  Richard Guenther  <rguenther@suse.de>
27494
27495         * gimple-fold.c (maybe_fold_reference): Open-code relevant
27496         constant folding.  Move MEM_REF canonicalization first.
27497         Rely on fold_const_aggregate_ref for initializer folding.
27498         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
27499
27500 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
27501
27502         PR middle-end/48136
27503         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
27504         arg0/arg1 or their arguments are always fold converted to matching
27505         types.
27506
27507         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
27508         to nargs.
27509
27510 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27511
27512         PR lto/46944
27513         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
27514         Handle in-tree gold.
27515         (ld_vers): Extract binutils version for gold.
27516         (gcc_cv_ld_hidden): Handle gold here.
27517         (gcc_cv_lto_plugin): Determine level of linker plugin support.
27518         * configure: Regenerate.
27519         * config.in: Regenerate.
27520         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
27521         -fuse-linker-plugin otherwise.
27522         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
27523         (LINK_COMMAND_SPEC): Use it.
27524         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
27525
27526 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
27527
27528         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
27529         * calls.c: Remove debug.h include.
27530         (emit_call_1): Don't call virtual_call_token debug hook.
27531         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
27532         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
27533         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
27534         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
27535         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
27536         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
27537         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
27538         dwarf2out_virtual_call): Remove.
27539         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
27540         copy_call_info and virtual_call hooks.
27541         (dwarf2out_init): Don't initialize vcall_insn_table,
27542         debug_dcall_section and debug_vcall_section.
27543         (prune_unused_types): Don't mark nodes from dcall_table.
27544         (dwarf2out_finish): Don't output dcall or vcall tables.
27545         * final.c (final_scan_insn): Don't call direct_call or
27546         virtual_call debug hooks.
27547         * debug.h (struct gcc_debug_hooks): Remove direct_call,
27548         virtual_call_token, copy_call_info and virtual_call hooks.
27549         (debug_nothing_uid): Remove prototype.
27550         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
27551         copy_call_info and virtual_call hooks.
27552         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
27553         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
27554         * debug.c (do_nothing_debug_hooks): Likewise.
27555         (debug_nothing_uid): Remove.
27556         * doc/invoke.texi (-fenable-icf-debug): Remove.
27557         * common.opt (-fenable-icf-debug): Likewise.
27558
27559         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
27560         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
27561         call's MEM.  Handle functions returning aggregate through a hidden
27562         first pointer.  For virtual calls add clobbered pc to call arguments
27563         chain.
27564         * dwarf2out.c (gen_subprogram_die): Emit
27565         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
27566         can't be emitted.
27567
27568         PR debug/45882
27569         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
27570         * rtl.h (ENTRY_VALUE_EXP): Define.
27571         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
27572         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
27573         * print-rtl.c (print_rtx): Likewise.
27574         * gengtype.c (adjust_field_rtx_def): Likewise.
27575         * var-tracking.c (vt_add_function_parameter): Adjust
27576         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
27577         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
27578         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
27579         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
27580         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
27581
27582         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
27583         Call var_location debug hook even on CALL_INSNs.
27584         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
27585         * rtl.def (ENTRY_VALUE): New.
27586         * dwarf2out.c: Include cfglayout.h.
27587         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
27588         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
27589         (struct call_arg_loc_node): New type.
27590         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
27591         tail_call_site_count): New variables.
27592         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
27593         DW_TAG_GNU_call_site_parameter.
27594         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
27595         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
27596         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
27597         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
27598         and DW_AT_GNU_all_source_call_sites.
27599         (mem_loc_descriptor): Handle ENTRY_VALUE.
27600         (add_src_coords_attributes): Don't add enything if
27601         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
27602         (dwarf2out_abstract_function): Save and clear call_arg_location,
27603         call_site_count and tail_call_site_count around dwarf2out_decl call.
27604         (gen_call_site_die): New function.
27605         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
27606         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
27607         (dwarf2out_function_decl): Clear call_arg_locations,
27608         call_arg_loc_last, set call_site_count and tail_call_site_count
27609         to -1 and free block_map.
27610         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
27611         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
27612         followed by any real instructions.
27613         (dwarf2out_begin_function): Set call_site_count and
27614         tail_call_site_count to 0.
27615         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
27616         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
27617         attempt to force a DIE for it and worst case remove the attribute.
27618         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
27619         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
27620         the decl itself.
27621         * var-tracking.c: Include tm_p.h.
27622         (vt_stack_adjustments): For calls call note_register_arguments.
27623         (argument_reg_set): New variable.
27624         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
27625         ensure the VALUE is resolved.
27626         (call_arguments): New variable.
27627         (prepare_call_arguments): New function.
27628         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
27629         (struct expand_loc_callback_data): Add ignore_cur_loc field.
27630         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
27631         always use the best expression.
27632         (vt_expand_loc): Add ignore_cur_loc argument.
27633         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
27634         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
27635         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
27636         note for all calls.
27637         (vt_add_function_parameter): Use cselib_lookup_from_insn.
27638         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
27639         argument.  Don't call cselib_preserve_only_values and
27640         cselib_reset_table.
27641         (note_register_arguments): New function.
27642         (vt_initialize): Compute argument_reg_set.  Call
27643         vt_add_function_parameters before processing basic blocks instead of
27644         afterwards.  For calls call prepare_call_arguments before calling
27645         cselib_process_insn.
27646         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
27647         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
27648         (var-tracking.o): Depend on $(TM_P_H).
27649         * cfglayout.h (insn_scope): New prototype.
27650         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
27651         * cfglayout.c (insn_scope): No longer static.
27652         * insn-notes.def (CALL_ARG_LOCATION): New.
27653         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
27654         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
27655         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
27656         nothing for DECL_EXTERNAL BLOCK_VARS.
27657
27658 2011-03-16  Alan Modra  <amodra@gmail.com>
27659
27660         PR target/45844
27661         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
27662         create invalid offset address for vsx splat insn.
27663         * config/rs6000/predicates.md (splat_input_operand): New.
27664         * config/rs6000/vsx.md (vsx_splat_*): Use it.
27665
27666 2011-03-15  Xinliang David Li  <davidxl@google.com>
27667
27668         PR c/47837
27669         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
27670         (normalize_preds): New function.
27671         (is_use_properly_guarded): Normalize def predicates.
27672
27673 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
27674
27675         PR target/46788
27676         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
27677         in the output template.
27678
27679 2011-03-15  Richard Guenther  <rguenther@suse.de>
27680
27681         PR middle-end/47650
27682         * tree-pretty-print.c (dump_function_declaration): Properly
27683         dump unprototyped and varargs function types.
27684
27685 2011-03-15  Richard Guenther  <rguenther@suse.de>
27686
27687         PR tree-optimization/13954
27688         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
27689         and friends.
27690
27691 2011-03-15  Richard Guenther  <rguenther@suse.de>
27692
27693         PR tree-optimization/48037
27694         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
27695         selects into BIT_FIELD_REFs.
27696         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
27697         vector select.
27698
27699 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
27700
27701         PR tree-optimization/48129
27702         * builtins.c (fold_builtin_snprintf): Convert to type of
27703         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
27704         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
27705
27706 2011-03-15  Richard Guenther  <rguenther@suse.de>
27707
27708         PR tree-optimization/41490
27709         * tree-ssa-dce.c (propagate_necessity): Handle returns without
27710         value but with VUSE.
27711         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
27712         return statements.
27713         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
27714         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
27715         * tree-tailcall.c (find_tail_calls): Ignore returns.
27716
27717 2011-03-15  Richard Guenther  <rguenther@suse.de>
27718
27719         PR middle-end/48031
27720         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
27721         or variable-indexed array accesses when in gimple form.
27722
27723 2011-03-15  Richard Guenther  <rguenther@suse.de>
27724
27725         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
27726
27727 2011-03-15  Alan Modra  <amodra@gmail.com>
27728
27729         PR target/48032
27730         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
27731         presume symbol_refs without a symbol_ref_decl are suitably
27732         aligned, nor other trees we may see here.  Handle anchor symbols.
27733         (legitimate_constant_pool_address_p): Comment.  Add mode param.
27734         Check cmodel=medium addresses.  Adjust all calls.
27735         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
27736         creating cmodel=medium optimized access to locals.
27737         * config/rs6000/constraints.md (R): Pass QImode to
27738         legitimate_constant_pool_address_p.
27739         * config/rs6000/predicates.md (input_operand): Pass mode to
27740         legitimate_constant_pool_address_p.
27741         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
27742         Update prototype.
27743
27744 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
27745
27746         PR target/48053
27747         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
27748         64-bit constants being loaded into registers other than GPRs such
27749         as loading 0 into a VSX register.
27750
27751 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27752
27753         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
27754
27755 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
27756
27757         PR middle-end/47917
27758         * builtins.c (fold_builtin_snprintf): New function.
27759         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
27760         (fold_builtin_4): Likewise.
27761
27762         PR middle-end/38878
27763         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
27764         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
27765         and C - X == X also strip nops from +/-/p+ operand.
27766         When optimizing -X == C, fold C to arg0's type.
27767
27768         PR debug/47946
27769         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
27770         emit it as add_AT_int instead of add_AT_unsigned.
27771
27772 2011-03-14  Tom Tromey  <tromey@redhat.com>
27773
27774         * unwind-dw2.c: Include sys/sdt.h if it exists.
27775         (_Unwind_DebugHook): Use STAP_PROBE2.
27776         * config.in, configure: Rebuild.
27777         * configure.ac: Check for sys/sdt.h.
27778
27779 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
27780
27781         * config/i386/i386.md (ROUND_FLOOR): New constant.
27782         (ROUND_CEIL): Ditto.
27783         (ROUND_TRUNC): Ditto.
27784         (ROUND_MXCSR): Ditto.
27785         (ROUND_NO_EXC): Ditto.
27786         (rint<mode>2): Use new defines instead of numerical constants.
27787         (floor<mode>2): Ditto.
27788         (ceil<mode>2): Ditto.
27789         (btrunc<mode>2): Ditto.
27790         * config/i386/i386-builtin-types.def: Define ROUND function type
27791         aliases.
27792         * config/i386/i386.c (enum ix86_builtins): Add
27793         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
27794         (struct builtin_description): Add
27795         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
27796         (ix86_expand_sse_round): New static function.
27797         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
27798         function types.
27799         (ix86_builtin_vectorized_function): Handle
27800         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
27801
27802 2011-03-14  Tom Tromey  <tromey@redhat.com>
27803
27804         * c-parser.c (c_parser_asm_string_literal): Clear
27805         warn_overlength_strings.
27806
27807 2011-03-14  Tom Tromey  <tromey@redhat.com>
27808
27809         * c-parser.c (disable_extension_diagnostics): Save
27810         warn_overlength_strings.
27811         (restore_extension_diagnostics): Restore warn_overlength_strings.
27812
27813 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
27814
27815         * BASE-VER: Change to 4.7.0.
27816
27817 2011-03-14  Richard Guenther  <rguenther@suse.de>
27818
27819         PR middle-end/48098
27820         * tree.c (build_vector_from_val): Adjust assert to requirements
27821         and reality.
27822
27823 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
27824
27825         PR bootstrap/48102
27826         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
27827
27828 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
27829
27830         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
27831         terms of target_flags_explicit. Adjust copyright year.
27832
27833         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
27834         * config/rs6000/t-freebsd: New file. Add override for
27835         LIB2FUNCS_EXTRA.
27836
27837 2011-03-13  Chris Demetriou  <cgd@google.com>
27838
27839         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
27840         (-fno-diagnostics-show-option): this, to reflect current default.
27841         (-Werror=): Update text about -fno-diagnostics-show-option.
27842
27843 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
27844
27845         PR target/48053
27846         * config/rs6000/predicates.md (easy_vector_constant_add_self,
27847         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
27848         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
27849         mode is not V2DImode or V2DFmode.
27850         (vspltis_constant): Do not handle V2DImode and V2DFmode.
27851         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
27852         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
27853         registers to 0.
27854         (movdi_internal64): Likewise.
27855
27856 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
27857
27858         PR tree-optimization/47127
27859         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
27860         parameter.
27861         (set_cloog_options): Same.
27862         (scop_to_clast): Same.
27863         (print_clast_stmt): Do not call cloog_state_malloc and
27864         cloog_state_free.
27865         (print_generated_program): Same.
27866         (gloog): Same.
27867         * graphite-clast-to-gimple.h (cloog_state): Declared.
27868         (scop_to_clast): Adjust declaration.
27869         * graphite.c (cloog_state): Defined here.
27870         (graphite_initialize): Call cloog_state_malloc.
27871         (graphite_finalize): Call cloog_state_free.
27872
27873 2011-03-11  Jason Merrill  <jason@redhat.com>
27874
27875         * attribs.c (lookup_attribute_spec): Take const_tree.
27876         * tree.h: Adjust.
27877
27878 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
27879
27880         * config/sparc/sparc.c (sparc_option_override): Use
27881         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
27882
27883 2011-03-11  Richard Guenther  <rguenther@suse.de>
27884
27885         PR tree-optimization/48067
27886         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
27887         multiplication result will be only used once on the target
27888         stmt.
27889
27890 2011-03-11  Richard Guenther  <rguenther@suse.de>
27891
27892         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
27893
27894 2011-03-11  Richard Guenther  <rguenther@suse.de>
27895
27896         PR lto/48073
27897         * tree.c (find_decls_types_r): Do not walk types only reachable
27898         from IDENTIFIER_NODEs.
27899
27900 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
27901
27902         PR middle-end/48044
27903         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
27904         all vnode->force_output nodes as needed.
27905
27906 2011-03-11  Jason Merrill  <jason@redhat.com>
27907
27908         PR c++/48069
27909         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
27910         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
27911
27912 2011-03-11  Martin Jambor  <mjambor@suse.cz>
27913
27914         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
27915         cgraph_node.
27916
27917 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
27918
27919         PR tree-optimization/48063
27920         * ipa-inline.c (cgraph_decide_inlining): Don't try to
27921         inline functions called once if !tree_can_inline_p (node->callers).
27922
27923 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
27924
27925         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
27926         extra_objs.
27927         * config/score/score3.c: Delete.
27928         * config/score/score3.h: Delete.
27929         * config/score/mul-div.S: Delete.
27930         * config/score/sfp-machine.h: Add new file.
27931         * config/score/constraints.md: Add new file.
27932         * config/score/t-score-softfp: Add new file.
27933         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
27934         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
27935         (score7_extra_constraint): Delete.
27936         (score7_option_override): Remove unused code.
27937         * config/score/score.c: Remove score3 and score5 define and code.
27938         * config/score/score.h: Remove score3 and score5 define and code.
27939         * config/score/score.md: Remove score3 template and unusual insn.
27940         * config/score/score.opt: Remove score3 and score5 options.
27941
27942 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27943
27944         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
27945         when _HPUX_SOURCE is defined.
27946         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
27947
27948 2011-03-10  Jason Merrill  <jason@redhat.com>
27949
27950         PR c++/48029
27951         * stor-layout.c (layout_type): Don't set structural equality
27952         on arrays of incomplete type.
27953         * tree.c (type_hash_eq): Handle comparing them properly.
27954
27955 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
27956
27957         PR debug/48043
27958         * config/s390/s390.c (s390_delegitimize_address): Make sure the
27959         result mode matches original rtl mode.
27960
27961 2011-03-10  Nick Clifton  <nickc@redhat.com>
27962
27963         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
27964         (andsi3, andsi3_flags): Fix timings for three operand alternative.
27965
27966 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
27967
27968         PR rtl-optimization/47866
27969         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
27970         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
27971         if target wasn't scalar.
27972         * function.c (assign_stack_temp_for_type): Assert that neither
27973         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
27974         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
27975         macro.
27976         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
27977
27978 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27979
27980         * config/s390/s390-protos.h (s390_label_align): New prototype.
27981         * config/s390/s390.c (s390_label_align): New function.
27982         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
27983
27984 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
27985
27986         PR target/47755
27987         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
27988         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
27989         (output_vec_const_move): Ditto.
27990
27991 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
27992
27993         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
27994         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
27995         * config/mips/mips.c (mips_preferred_reload_class): Make static.
27996         Change 'rclass' argument and result type to reg_class_t.
27997         (TARGET_PREFERRED_RELOAD_CLASS): Define.
27998
27999 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
28000
28001         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
28002         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
28003         (TARGET_MEMORY_MOVE_COST): Define.
28004         (avr_register_move_cost, avr_memory_move_cost): New Functions.
28005
28006 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
28007
28008         PR debug/47881
28009         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
28010         removed anything.
28011
28012         PR tree-optimization/48022
28013         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
28014         for EQ/NE_EXPR.
28015
28016 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
28017
28018         PR debug/47991
28019         * var-tracking.c (find_use_val): Return NULL for
28020         cui->sets && cui->store_p BLKmode MEMs.
28021
28022 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
28023
28024         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
28025         Remove.
28026         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
28027         xstormy16_print_operand_address): Remove.
28028         * config/stormy16/stormy16.c (xstormy16_print_operand,
28029         xstormy16_print_operand_address): Make static.
28030         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
28031
28032 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
28033
28034         PR target/47862
28035         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
28036         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
28037         before definition.
28038
28039 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
28040
28041         PR bootstrap/48000
28042         * cfgloopmanip.c (fix_bb_placements): Return immediately
28043         if FROM is BASE_LOOP's header.
28044
28045 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
28046
28047         * gimplify.c (gimplify_function_tree): Fix building calls
28048         to __builtin_return_address.
28049
28050 2011-03-07  Alan Modra  <amodra@gmail.com>
28051
28052         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
28053         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
28054         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
28055         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
28056         return_mode args.
28057         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
28058         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
28059         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
28060         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
28061         * config/rs6000/rs6000.c
28062         (rs6000_elf_end_indicate_exec_stack): Rename to..
28063         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
28064         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
28065         (rs6000_file_start): ..here.
28066         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
28067         file scope variables.
28068         (call_ABI_of_interest): New function.
28069         (init_cumulative_args): Set above vars when function return value
28070         is a float, vector, or small struct.
28071         (rs6000_function_arg_advance_1): Likewise for function args.
28072         (rs6000_va_start): Set rs6000_passes_float if variable arg function
28073         references float args.
28074
28075 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
28076
28077         * doc/cfg.texi: Remove "See" before @ref.
28078         * doc/invoke.texi: Likewise.
28079
28080 2011-03-05  Jason Merrill  <jason@redhat.com>
28081
28082         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
28083
28084 2011-03-05  Anthony Green  <green@moxielogic.com>
28085
28086         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
28087
28088 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
28089
28090         PR rtl-optimization/47899
28091         * cfgloopmanip.c (fix_bb_placements): Fix first argument
28092         to flow_loop_nested_p when moving the loop upward.
28093
28094 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
28095
28096         PR target/47719
28097         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
28098
28099 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
28100
28101         PR tree-optimization/47967
28102         * ipa-cp.c (build_const_val): Return NULL instead of creating
28103         VIEW_CONVERT_EXPR for mismatching sizes.
28104         (ipcp_create_replace_map): Return NULL if build_const_val failed.
28105         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
28106         give up on versioning.
28107
28108 2011-03-05  Alan Modra  <amodra@gmail.com>
28109
28110         PR target/47986
28111         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
28112         full cmodel medium/large lo_sum + high addresses.
28113
28114 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28115
28116         * config/s390/s390.c (s390_decompose_address): Reject non-literal
28117         pool references in UNSPEC_LTREL_OFFSET.
28118
28119 2011-03-04  Jan Hubicka  <jh@suse.cz>
28120
28121         PR lto/47497
28122         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
28123         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
28124         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
28125         Add node pointers.
28126         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
28127         cgraph_add_thunk): Add node pointers.
28128         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
28129         associated to right node.
28130         (input_node): Update use of cgraph_same_body_alias
28131         and cgraph_add_thunk.
28132
28133 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
28134
28135         * config/i386/i386.opt (mprefer-avx128): New flag.
28136         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
28137         modes when the flag -mprefer-avx128 is on.
28138
28139 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
28140
28141         * dwarf2out.c (compare_loc_operands): Fix address handling.
28142
28143 2011-03-04  Alan Modra  <amodra@gmail.com>
28144
28145         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
28146
28147 2011-03-04  Richard Guenther  <rguenther@suse.de>
28148
28149         PR middle-end/47968
28150         * expmed.c (extract_bit_field_1): Prefer vector modes that
28151         vec_extract patterns can handle.
28152
28153 2011-03-04  Richard Guenther  <rguenther@suse.de>
28154
28155         PR middle-end/47975
28156         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
28157
28158 2011-03-04  Richard Henderson  <rth@redhat.com>
28159
28160         * explow.c (emit_stack_save): Remove 'after' parameter.
28161         (emit_stack_restore): Likewise.
28162         * expr.h: Update to match.
28163         * builtins.c, calls.c, stmt.c: Likewise.
28164         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
28165         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
28166         * function.c (expand_function_end): Insert the emit_stack_save
28167         sequence before parm_birth_insn instead of after.
28168
28169 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
28170
28171         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
28172         (ssse3_pmaddubsw128): Ditto.
28173         (ssse3_pmaddubsw): Ditto.
28174
28175 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
28176
28177         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
28178
28179 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
28180
28181         PR c/47963
28182         * gimplify.c (omp_add_variable): Only call omp_notice_variable
28183         on TYPE_SIZE_UNIT if it is a DECL.
28184
28185         PR debug/47283
28186         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
28187         first operand is not is_gimple_mem_ref_addr, try to fold it.
28188         If the operand still isn't is_gimple_mem_ref_addr, clear
28189         MEM_EXPR on op0.
28190
28191 2011-03-03  Richard Guenther  <rguenther@suse.de>
28192
28193         PR middle-end/47283
28194         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
28195         match comment.
28196         (refs_may_alias_p_1): For release branches return true if
28197         we are confused by our input.
28198
28199 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28200
28201         * config/s390/s390.c (s390_function_value): Rename to ...
28202         (s390_function_and_libcall_value): ... this.
28203         (s390_function_value): New function.
28204         (s390_libcall_value): New function.
28205         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
28206         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
28207         target macro definitions.
28208         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
28209
28210 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
28211
28212         * config/i386/freebsd64.h (CC1_SPEC): Define.
28213         * config/i386/linux64.h (CC1_SPEC): Define.
28214         * config/i386/x86-64.h (CC1_SPEC): Don't define.
28215
28216 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
28217
28218         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
28219         Remove.
28220         * config/stormy16/stormy16.c: Include reload.h.
28221         (xstormy16_memory_move_cost): New function.
28222         (TARGET_MEMORY_MOVE_COST): Define.
28223
28224 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
28225
28226         PR rtl-optimization/47925
28227         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
28228         with side effects.  Remove the more-specific check for volatile asms.
28229
28230 2011-03-02  Alan Modra  <amodra@gmail.com>
28231
28232         PR target/47935
28233         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
28234         toc relative addresses for valid offsets.
28235
28236 2011-03-01  Richard Guenther  <rguenther@suse.de>
28237
28238         PR tree-optimization/47890
28239         * tree-vect-loop.c (get_initial_def_for_induction): Set
28240         related stmt properly.
28241
28242 2011-03-01  Richard Guenther  <rguenther@suse.de>
28243
28244         PR lto/47924
28245         * lto-streamer.c (lto_record_common_node): Also register
28246         the canonical type.
28247
28248 2011-03-01  Richard Guenther  <rguenther@suse.de>
28249
28250         PR lto/46911
28251         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
28252         Do not stream DECL_ABSTRACT_ORIGIN.
28253         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
28254         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
28255         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
28256         Do not stream DECL_ABSTRACT_ORIGIN.
28257         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
28258         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
28259
28260 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
28261
28262         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
28263         FUNCTION_VALUE_REGNO_P): Remove.
28264         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
28265         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
28266         Add 'outgoing' argument.
28267         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
28268         function.
28269         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
28270         TARGET_FUNCTION_VALUE_REGNO_P): Define.
28271
28272 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
28273
28274         PR debug/28047
28275         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
28276         (lookup_filename): Likewise.
28277         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
28278
28279 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
28280             Jakub Jelinek  <jakub@redhat.com>
28281
28282         PR middle-end/47893
28283         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
28284         (assign_stack_local_1): Change last argument type to int.
28285         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
28286         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
28287         don't record padding space into frame_space_list nor use those areas.
28288         (assign_stack_local): Adjust caller.
28289         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
28290         of assign_stack_local, pass 0 as last argument.
28291         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
28292         callers.
28293
28294 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
28295
28296         PR debug/47283
28297         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
28298         Use target address_mode and pointer_mode hooks instead of hardcoded
28299         Pmode and ptr_mode.  Handle some simple cases of extending if
28300         POINTERS_EXTEND_UNSIGNED < 0.
28301         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
28302         Call convert_debug_memory_address.
28303         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
28304         convert_debug_memory_address.
28305
28306         PR middle-end/46790
28307         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
28308         * configure: Regenerated.
28309         * config.in: Regenerated.
28310         * varasm.c (default_function_section): Return NULL
28311         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
28312
28313 2011-02-28  Martin Jambor  <mjambor@suse.cz>
28314
28315         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
28316         the description to match the printed values.
28317
28318 2011-02-28  Richard Guenther  <rguenther@suse.de>
28319
28320         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
28321         of the copied scope tree.
28322
28323 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28324
28325         * doc/extend.texi (Function Attributes): Avoid deeply (and
28326         wrongly) nested tables.
28327
28328 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
28329
28330         PR middle-end/47903
28331         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
28332         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
28333         r isn't op0 nor op1.
28334
28335 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
28336
28337         * config/avr/avr.md: Remove magic comment for emacs.
28338
28339 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
28340
28341         PR target/45261
28342         * config/avr/avr.c (avr_option_override): Use error on bad options.
28343         (avr_help): New function.
28344         (TARGET_HELP): Define.
28345
28346 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
28347
28348         PR target/42240
28349         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
28350         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
28351
28352 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
28353
28354         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
28355         (ARM Options): Ditto.
28356         (i386 and x86-64 Options): Ditto.
28357         (RX Options): Ditto.
28358         (SPARC Options): Ditto.
28359
28360 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
28361
28362         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
28363         FreeBSD 6 and later.  Generally use cpu generic.
28364
28365 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
28366
28367         * doc/cpp.texi: Update copyright years.
28368
28369 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
28370
28371         PR target/46898
28372         * config/lm32/lm32.md (ashrsi3): Added needed variable.
28373
28374 2011-02-25  Jon Beniston  <jon@beniston.com>
28375
28376         PR target/46898
28377         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
28378         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
28379         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
28380         (lm32_block_move_inline): Add type cast to remove warning.
28381         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
28382         (gen_int_relational): Move declarations to start of function.
28383
28384 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
28385
28386         PR tree-optimization/45470
28387         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
28388         can throw internally only.
28389         * tree-vect-stmts.c (vectorizable_call): Likewise.
28390
28391 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
28392
28393         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
28394         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
28395         * config/stormy16/stormy16-protos.h
28396         (xstormy16_preferred_reload_class): Remove.
28397         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
28398         static. Change 'rclass' argument and return type to reg_class_t.
28399         (TARGET_PREFERRED_RELOAD_CLASS,
28400         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
28401
28402 2011-02-24  Richard Guenther  <rguenther@suse.de>
28403
28404         * lto-streamer-in.c (input_bb): Do not find referenced vars
28405         in debug statements.
28406
28407 2011-02-23  Jason Merrill  <jason@redhat.com>
28408
28409         * common.opt (fabi-version): Document v5 and v6.
28410
28411 2011-02-23  Richard Guenther  <rguenther@suse.de>
28412
28413         PR tree-optimization/47849
28414         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
28415
28416 2011-02-23  Jie Zhang  <jie@codesourcery.com>
28417
28418         * opts-common.c (decode_cmdline_option): Print empty string
28419         argument as "" in decoded->orig_option_with_args_text.
28420         * gcc.c (execute): Print empty string argument as ""
28421         in the verbose output.
28422         (do_spec_1): Keep empty string argument.
28423
28424 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
28425
28426         * config.gcc: Declare score-* and crx-* obsolete.
28427
28428 2011-02-23  Jie Zhang  <jie@codesourcery.com>
28429
28430         PR rtl-optimization/47763
28431         * web.c (web_main): Ignore naked clobber when replacing register.
28432
28433 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
28434
28435         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
28436         Remove.
28437
28438 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
28439
28440         PR doc/47848
28441         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
28442
28443 2011-02-22  Mike Stump  <mikestump@comcast.net>
28444
28445         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
28446         assembler.
28447         * configure: Regenerate.
28448
28449 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
28450
28451         PR rtl-optimization/46002
28452         * ira-color.c (update_copy_costs): Change class intersection
28453         test to reg_class_contents[] test of 'hard_regno'.
28454
28455 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
28456
28457         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
28458         than Driver option.
28459         * config/hpux11.opt (mt): Likewise.
28460         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
28461         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
28462         * config/vax/elf.opt (mno-asm-pic): Likewise.
28463         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
28464
28465 2011-02-21  Mike Stump  <mikestump@comcast.net>
28466
28467         PR target/47822
28468         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
28469         tree so we can get save the type.
28470         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
28471         for CFString instead of trying to use past the end of the builtins.
28472         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
28473         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
28474         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
28475         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
28476         Rename to darwin_builtin_cfstring.
28477         (darwin_init_cfstring_builtins): Return the built type.
28478
28479 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
28480
28481         PR target/47840
28482         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
28483         (_mm256_insert_epi64): Use _mm_insert_epi64.
28484
28485 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
28486
28487         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
28488         * config/stormy16/stormy16-protos.h
28489         (xstormy16_mode_dependent_address_p): Remove.
28490         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
28491         Make static. Change return type to bool. Change argument type to
28492         const_rtx. Remove dead code.
28493         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
28494
28495 2011-02-21  Richard Guenther  <rguenther@suse.de>
28496
28497         PR lto/47820
28498         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
28499         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
28500         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
28501         TUs context.
28502         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
28503         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
28504
28505 2011-02-20  Richard Guenther  <rguenther@suse.de>
28506
28507         PR lto/47822
28508         * tree.c (free_lang_data_in_decl): Clean builtins from
28509         the TU decl BLOCK_VARS.
28510
28511 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
28512
28513         PR debug/47620
28514         PR debug/47630
28515         * haifa-sched.c (fix_tick_ready): Skip tick computation
28516         for debug insns.
28517
28518 2011-02-19  Richard Guenther  <rguenther@suse.de>
28519
28520         PR lto/47647
28521         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
28522         Remove lazy BLOCK_VARS streaming.
28523         (lto_input_ts_block_tree_pointers): Likewise.
28524         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
28525
28526 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
28527
28528         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
28529
28530 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
28531
28532         * config/i386/biarch32.h, config/i386/mach.h,
28533         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
28534
28535 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
28536
28537         PR target/47800
28538         * config/i386/i386.md (peephole2 for shift and plus): Use
28539         operands[1] original mode in the first insn.
28540
28541 2011-02-18  Mike Stump  <mikestump@comcast.net>
28542
28543         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
28544
28545 2011-02-18  Jan Hubicka  <jh@suse.cz>
28546
28547         PR middle-end/47788
28548         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
28549         to zero when the function is not inlinable at all.
28550
28551 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28552
28553         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
28554         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
28555         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
28556         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
28557         * config/pa/t-pa64: Likewise.
28558         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
28559
28560 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
28561
28562         PR driver/47787
28563         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
28564
28565 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28566
28567         PR target/47792
28568         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
28569
28570 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
28571
28572         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
28573         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
28574         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
28575         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
28576         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
28577         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
28578         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
28579         m32r_load_postinc_p, m32r_store_preinc_predec_p,
28580         m32r_legitimate_address_p): New functions.
28581         * config/m32r/constraints.md (constraint "S"): Don't use
28582         STORE_PREINC_PREDEC_P.
28583         (constraint "U"): Don't use LOAD_POSTINC_P.
28584
28585 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
28586
28587         PR rtl-optimization/46178
28588         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
28589         compute ira_hard_regno_cover_class[].
28590
28591 2011-02-18  Richard Guenther  <rguenther@suse.de>
28592
28593         PR lto/47798
28594         * lto-streamer.h (lto_global_var_decls): Declare.
28595         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
28596         statics for global var processing.
28597
28598 2011-02-18  Richard Guenther  <rguenther@suse.de>
28599
28600         PR tree-optimization/47737
28601         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
28602         edge dominance check.
28603
28604 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
28605
28606         PR debug/47780
28607         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
28608         avoid invalid rtx sharing.
28609
28610 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
28611
28612         * doc/cpp.texi (Obsolete Features): Add background on the
28613         origin of assertions.
28614
28615 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
28616
28617         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
28618         objc_abi == 2.
28619         * config/darwin.c (output_objc_section_asm_op): Added support for
28620         ABI v1 and v2.
28621         (is_objc_metadata): New.
28622         (darwin_objc2_section): New.
28623         (darwin_objc1_section): New.
28624         (machopic_select_section): Added support for ABI v1 and v2.
28625         (darwin_emit_objc_zeroed): New.
28626         (darwin_output_aligned_bss): Detect objc metadata and treat it
28627         appropriately.
28628         (darwin_asm_output_aligned_decl_common): Same.
28629         (darwin_asm_output_aligned_decl_local): Same.
28630         * config/darwin-sections.def: Updated for ABI v1 and v2.
28631         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
28632         compiling Objective-C code for the NeXT runtime, default to using
28633         ABI version 0 for 32-bit, and version 2 for 64-bit.
28634
28635 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
28636
28637         * common.opt (optimize_fast): New Variable.
28638         * opts.c (default_options_optimization): Use opts->x_optimize_fast
28639         instead of local variable ofast.
28640
28641 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
28642
28643         * doc/invoke.texi (fobjc-abi-version): Documented.
28644         (fobjc-nilcheck): Documented.
28645         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
28646         version.
28647
28648 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
28649
28650         PR driver/47390
28651         * common.opt (export-dynamic): New Driver option.
28652         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
28653
28654 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
28655
28656         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
28657
28658 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
28659             Jan Hubicka  <jh@suse.cz>
28660
28661         PR debug/47106
28662         PR debug/47402
28663         * cfgexpand.c (account_used_vars_for_block): Remove.
28664         (estimated_stack_frame_size): Use referenced vars.
28665         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
28666         that were referenced in the original function.  Test src_fn
28667         rather than cfun.  Drop redundant get_var_ann.
28668         (setup_one_parameter): Drop redundant get_var_ann.
28669         (declare_return_variable): Likewise.
28670         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
28671         (copy_arguments_for_versioning): Drop redundant get_var_ann.
28672         * ipa-inline.c (compute_inline_parameters): Do not compute
28673         disregard_inline_limits here.
28674         (compute_inlinable_for_current, pass_inlinable): New.
28675         (pass_inline_parameters): Require PROP_referenced_vars.
28676         * cgraphunit.c (cgraph_process_new_functions): Don't run
28677         compute_inline_parameters explicitly unless function is in SSA form.
28678         (cgraph_analyze_function): Set .disregard_inline_limits.
28679         * tree-sra.c (convert_callers): Compute inliner parameters
28680         only for functions already in SSA form.
28681
28682 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
28683
28684         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
28685         -mlittle-endian-data.
28686
28687 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
28688
28689         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
28690         -mno-fpu, not -fpu and -no-fpu.
28691         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
28692         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
28693
28694 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
28695
28696         PR target/43653
28697         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
28698         input reload with PLUS RTX.
28699
28700 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
28701
28702         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
28703         of InverseVar(MDMX).
28704
28705 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
28706
28707         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
28708         --m4-340.
28709
28710 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
28711
28712         * config/mn10300/mn10300.opt (mno-crt0): New.
28713
28714 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
28715
28716         * config/m68k/uclinux.opt (static-libc): New Driver option.
28717
28718 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
28719
28720         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
28721
28722 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
28723
28724         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
28725         %{muser-extend-enabled}.
28726
28727 2011-02-16  Richard Guenther  <rguenther@suse.de>
28728
28729         PR tree-optimization/47738
28730         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
28731         the TODO from tree_predictive_commoning.
28732
28733 2011-02-15  Jeff Law  <law@redhat.com>
28734
28735         Revert
28736         2011-01-25  Jeff Law  <law@redhat.com>
28737
28738         PR rtl-optimization/37273
28739         * ira-costs.c (scan_one_insn): Detect constants living in memory and
28740         handle them like argument loads from stack slots.  Do not double
28741         count memory for memory constants and argument loads from stack slots.
28742
28743 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
28744
28745         PR target/47755
28746         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
28747         mode for vector constants.  Remove code that checks for TImode.
28748
28749 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
28750
28751         PR debug/47106
28752         PR debug/47402
28753         * cgraph.h (compute_inline_parameters): Return void.
28754         * ipa-inline.c (compute_inline_parameters): Adjust.
28755
28756 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
28757
28758         PR debug/47106
28759         PR debug/47402
28760         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
28761         rather than decl.
28762         * cfgexpand.c (estimated_stack_frame_size): Likewise.
28763         * ipa-inline.c (compute_inline_parameters): Adjust.
28764
28765 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
28766
28767         PR debug/47106
28768         PR debug/47402
28769         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
28770         Adjust all users.  Pass FN to...
28771         * tree-flow-inline.h (first_referenced_var): ... this.  Add
28772         fn argument.
28773         * ipa-struct-reorg.c: Adjust.
28774         * tree-dfa.c: Adjust.
28775         * tree-into-ssa.c: Adjust.
28776         * tree-sra.c: Adjust.
28777         * tree-ssa-alias.c: Adjust.
28778         * tree-ssa-live.c: Adjust.
28779         * tree-ssa.c: Adjust.
28780         * tree-ssanames.c: Adjust.
28781         * tree-tailcall.c: Adjust.
28782
28783 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
28784
28785         PR debug/47106
28786         PR debug/47402
28787         * tree-flow.h (referenced_var_lookup): Add fn parameter.
28788         Adjust all callers.
28789         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
28790         * tree-flow-inline.h: Adjust.
28791         * gimple-pretty-print.c: Adjust.
28792         * tree-into-ssa.c: Adjust.
28793         * tree-ssa.c: Adjust.
28794         * cfgexpand.c: Adjust.
28795
28796 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
28797
28798         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
28799         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
28800         (EXTRA_CONSTRAINT): Delete.
28801         * config/iq2000/constraints.md: New file.
28802         * config/iq2000/iq2000.md: Include it.
28803         (define_insn ""): Delete.
28804         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
28805         unsupported constraint letters from patterns.
28806         (call_value, call_value_internal1): Likewise.
28807         (call_value_multiple_internal1): Likewise.
28808
28809 2011-02-15  Nick Clifton  <nickc@redhat.com>
28810
28811         * config/mn10300/mn10300.c: Include tm-constrs.h.
28812         (struct liw_data): New data structure describing an LIW candidate
28813         instruction.
28814         (extract_bundle): Use struct liw_data.  Allow small integer
28815         operands for some instructions.
28816         (check_liw_constraints): Use struct liw_data.  Remove swapped
28817         parameter.  Add comments describing the checks.  Fix bug when
28818         assigning the source of liw1 to the source of liw2.
28819         (liw_candidate): Delete.  Code moved into extract_bundle.
28820         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
28821         before swapping.
28822         * config/mn10300/predicates.md (liw_operand): New predicate.
28823         Allows registers and small integer constants.
28824         * config/mn10300/constraints.md (O): New constraint.  Accetps
28825         integers in the range -8 to +7 inclusive.
28826         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
28827         for moving a small integer into a register.  Give this alternative
28828         LIW attributes.
28829         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
28830         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
28831         using the J,K,L and M constraints,
28832         (liw): Remove SI mode on second operands to allow for HI and QI
28833         mode values.
28834         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
28835         instruction.
28836
28837 2011-02-15  Richard Guenther  <rguenther@suse.de>
28838
28839         PR tree-optimization/47743
28840         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
28841         for a non-type-compatible VN lookup bail out.
28842
28843 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
28844
28845         * config/fr30/constraints.md: New file.
28846         * config/fr30/fr30.md: Include it.
28847         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
28848         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
28849         (EXTRA_CONSTRAINT): Delete.
28850
28851 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
28852
28853         * config/frv/constraints.md: New file.
28854         * config/frv/predicates.md: Include it.
28855         * config/frv/frv.c (reg_class_from_letter): Delete.
28856         (frv_option_override): Don't initialize it.
28857         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
28858         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
28859         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
28860         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
28861         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
28862         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
28863         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
28864         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
28865         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
28866         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
28867         (REG_CLASS_FROM_CONSTRAINT): Delete.
28868
28869 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
28870
28871         PR middle-end/47581
28872         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
28873         if frame size is 0 in a leaf function.
28874
28875 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28876
28877         PR pch/14940
28878         * config/alpha/host-osf.c: New file.
28879         * config/alpha/x-osf: New file.
28880         * config.host (alpha*-dec-osf*): Use it.
28881
28882 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
28883
28884         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
28885         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
28886         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
28887         (rx_mode_dependent_address_p): ...this. Make static. Change argument
28888         type to const_rtx.
28889         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
28890
28891 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
28892
28893         * config/stormy16/constraints.md: New file.
28894         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
28895         Use satisfies_constraint_Q and satisfies_constraint_R.
28896         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
28897         Delete.
28898         (xstormy16_legitiamte_address_p): Declare.
28899         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
28900         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
28901         (EXTRA_CONSTRAINT): Delete.
28902         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
28903         Un-staticize.
28904         (xstormy16_extra_constraint_p): Delete.
28905
28906 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
28907
28908         PR tree-optimization/46494
28909         * loop-unroll.c (split_edge_and_insert): Adjust comment.
28910         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
28911         (pass_rtl_loop_done): Add TODO_verify_flow.
28912         * fwprop.c (pass_rtl_fwprop): Likewise.
28913         * modulo-sched.c (pass_sms): Likewise.
28914         * tree-ssa-dom.c (pass_dominator): Likewise.
28915         * tree-ssa-loop-ch.c (pass_ch): Likewise.
28916         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
28917         (pass_tree_loop_done): Likewise.
28918         * tree-ssa-pre.c (execute_pre): Likewise.
28919         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
28920         * tree-ssa-sink.c (pass_sink_code): Likewise.
28921         * tree-vrp.c (pass_vrp): Likewise.
28922
28923 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
28924
28925         * config/v850/constraints.md: New file.
28926         * config/v850/v850.md: Include it.
28927         * config/v850/predicates.md (reg_or_0_operand): Use
28928         satisfies_constraint_G.
28929         (special_symbolref_operand): Use satisfies_constraint_K.
28930         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
28931         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
28932         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
28933         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
28934         (EXTRA_CONSTRAINT): Delete.
28935         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
28936         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
28937         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
28938
28939 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
28940
28941         PR target/47696
28942         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
28943         description.
28944
28945 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
28946
28947         * config/mcore/constraints.md: New file.
28948         * config/mcore/mcore.md: Include it.
28949         * config/mcore/mcore.c (reg_class_from_letter): Delete.
28950         * config/mcore/mcore.h (reg_class_from_letter): Delete.
28951         (REG_CLASS_FROM_LETTER): Delete.
28952         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
28953         insn_const_int_ok_for_constraint.
28954         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
28955         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
28956         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
28957         (EXTRA_CONSTRAINT): Delete.
28958
28959 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28960
28961         PR ada/41929
28962         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
28963         (IS_SIGHANDLER): Define.
28964         (sparc64_is_sighandler): New function, split off from
28965         sparc64_fallback_frame_state.
28966         (sparc_is_sighandler): New function, split off from
28967         sparc_fallback_frame_state.
28968         (sparc64_fallback_frame_state): Merge with ...
28969         (sparc_fallback_frame_state): ... this into ...
28970         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
28971         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
28972         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
28973         stack instead of hardcoded offsets.
28974
28975 2011-02-14  Andriy Gapon  <avg@freebsd.org>
28976
28977         PR target/45808
28978         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
28979
28980 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28981
28982         * configure: Regenerate.
28983
28984 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
28985
28986         PR driver/45731
28987         * gcc.c (asm_options): Correct spec matching --target-help.
28988
28989 2011-02-12  Martin Jambor  <mjambor@suse.cz>
28990
28991         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
28992         to gimple call error.
28993
28994 2011-02-12  Mike Stump  <mikestump@comcast.net>
28995
28996         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
28997         comments in backslash regions.
28998
28999 2011-02-12  Mike Stump  <mikestump@comcast.net>
29000             Jakub Jelinek  <jakub@redhat.com>
29001             Iain Sandoe  <iains@gcc.gnu.org>
29002
29003         PR target/47324
29004         * dwarf2out.c (output_cfa_loc): When required, apply the
29005         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
29006         (output_loc_sequence): Likewise.
29007         (output_loc_operands_raw): Likewise.
29008         (output_loc_sequence_raw): Likewise.
29009         (output_cfa_loc): Likewise.
29010         (output_loc_list): Suppress register number adjustment when
29011         calling output_loc_sequence()
29012         (output_die): Likewise.
29013
29014 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
29015
29016         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
29017         Remove macros.
29018         * config/xtensa/xtensa.c (xtensa_register_move_cost,
29019         xtensa_memory_move_cost): New functions.
29020         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
29021
29022 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
29023
29024         PR lto/47225
29025         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
29026         in the current directory.
29027         * configure: Rebuilt.
29028
29029 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
29030
29031         * config/darwin.c (darwin_override_options): Add a hunk missed
29032         from the commit of r168571.  Trim comment line lengths and
29033         correct indents of the preceding block.
29034
29035 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
29036
29037         * gcc.c (driver_handle_option): Concatenate the argument to -F with
29038         the switch.
29039
29040 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
29041
29042         * common.opt (nostartfiles): New Driver option.
29043
29044 2011-02-11  Xinliang David Li  <davidxl@google.com>
29045
29046         PR tree-optimization/47707
29047         * tree-chrec.c (convert_affine_scev): Keep type precision.
29048
29049 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
29050
29051         PR tree-optimization/47420
29052         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
29053
29054 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
29055
29056         PR rtl-optimization/47614
29057         * rtl.h (check_for_inc_dec): Declare.
29058         * dse.c (check_for_inc_dec): Externalize...
29059         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
29060         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
29061
29062 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
29063
29064         PR driver/47678
29065         * gcc.c (main): Do not compile inputs if there were errors in
29066         option handling.
29067         * opts-common.c (read_cmdline_option): Check for wrong language
29068         after other error checks.
29069
29070 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
29071
29072         * cgraph.c: Fix comment typos.
29073         * cgraph.h: Likewise.
29074         * cgraphunit.c: Likewise.
29075         * ipa-cp.c: Likewise.
29076         * ipa-inline.c: Likewise.
29077         * ipa-prop.c: Likewise.
29078         * ipa-pure-const.c: Likewise.
29079         * ipa-ref.c: Likewise.
29080         * ipa-reference.c: Likewise.
29081
29082 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
29083
29084         PR debug/47684
29085         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
29086
29087 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29088
29089         PR testsuite/47400
29090         * doc/sourcebuild.texi (Require Support): Document
29091         dg-require-ascii-locale.
29092
29093 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
29094
29095         * doc/lto.texi (Write summary): Fix missing parentheses.
29096
29097 2011-02-10  DJ Delorie  <dj@redhat.com>
29098
29099         * config/m32c/m32c.c (m32c_option_override): Disable
29100         -fcombine-stack-adjustments until flag value tracking and compare
29101         optimization can be rewritten.
29102
29103 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
29104
29105         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
29106         PROCESSOR_POWER7.
29107         (PROCESSOR_DEFAULT64): Likewise.
29108
29109 2011-02-10  Richard Henderson  <rth@redhat.com>
29110
29111         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
29112         change from 2011-02-03.
29113         * config/rx/rx.c (flags_from_code): Likewise.
29114         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
29115         is valid, n/pz otherwise.
29116         (rx_select_cc_mode): Return CCmode if Y is not zero.
29117
29118 2011-02-10  Richard Guenther  <rguenther@suse.de>
29119
29120         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
29121
29122 2011-02-10  Richard Guenther  <rguenther@suse.de>
29123
29124         PR tree-optimization/47677
29125         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
29126
29127 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
29128
29129         PR target/47665
29130         * combine.c (make_compound_operation): Only change shifts into
29131         multiplication for SCALAR_INT_MODE_P.
29132
29133 2011-02-10  Jie Zhang  <jie@codesourcery.com>
29134
29135         PR testsuite/47622
29136         Revert
29137         2011-02-05  Jie Zhang  <jie@codesourcery.com>
29138         PR debug/42631
29139         * web.c (entry_register): Don't clobber the number of the
29140         first uninitialized reference in used[].
29141
29142 2011-02-09  Richard Guenther  <rguenther@suse.de>
29143
29144         PR tree-optimization/47664
29145         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
29146         all edges again.
29147
29148 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
29149
29150         PR target/46481
29151         PR target/47032
29152         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
29153         PROCESSOR_POWER7.
29154         (PROCESSOR_DEFAULT64): Same.
29155         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
29156
29157 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29158
29159         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
29160
29161 2011-02-09  Martin Jambor  <mjambor@suse.cz>
29162
29163         PR middle-end/45505
29164         * tree-sra.c (struct access): New flags grp_scalar_read and
29165         grp_scalar_write.  Changed description of assignment read and write
29166         flags.
29167         (dump_access): Dump new flags, reorder all of them.
29168         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
29169         to detect multiple scalar reads.
29170         (analyze_access_subtree): Use the new scalar read write flags instead
29171         of the old flags.  Adjusted comments.
29172
29173 2011-02-08  DJ Delorie  <dj@redhat.com>
29174
29175         PR target/47548
29176         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
29177         patterns.
29178
29179 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
29180
29181         * config/m68k/uclinux.opt: New.
29182         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
29183
29184 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
29185
29186         * config/cris/elf.opt (sim): New Driver option.
29187
29188 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
29189
29190         * config/xtensa/elf.opt: New.
29191         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
29192
29193 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
29194
29195         * config/vax/elf.opt: New.
29196         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
29197
29198 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
29199
29200         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
29201
29202 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
29203
29204         * config/gnu-user.opt: New.
29205         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
29206         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
29207         *-*-uclinux*): Use gnu-user.opt.
29208
29209 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
29210
29211         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
29212         * config/i386/gnu.h (CPP_SPEC): Likewise.
29213
29214 2011-02-08  Ian Lance Taylor  <iant@google.com>
29215
29216         * common.opt (fcx-limited-range): Add SetByCombined flag.
29217         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
29218         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
29219         (fassociative-math, freciprocal-math): Likewise.
29220         (funsafe-math-optimizations): Likewise.
29221         * opth-gen.awk: Handle SetByCombined.
29222         * optc-gen.awk: Likewise.
29223         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
29224         (set_unsafe_math_optimizations_flags): Likewise.
29225         * doc/options.texi (Option properties): Document SetByCombined.
29226
29227 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
29228
29229         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
29230         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
29231         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
29232         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
29233         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
29234
29235 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
29236
29237         PR tree-optimization/46834
29238         PR tree-optimization/46994
29239         PR tree-optimization/46995
29240         * graphite-sese-to-poly.c (used_outside_reduction): New.
29241         (detect_commutative_reduction): Call used_outside_reduction.
29242         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
29243         translate_scalar_reduction_to_array only when at least one
29244         loop-phi/close-phi tuple has been detected.
29245
29246 2011-02-08  Richard Guenther  <rguenther@suse.de>
29247
29248         PR middle-end/47639
29249         * tree-vect-generic.c (expand_vector_operations_1): Update
29250         stmts here ...
29251         (expand_vector_operations): ... not here.  Cleanup EH info
29252         and the CFG if required.
29253
29254 2011-02-08  Richard Guenther  <rguenther@suse.de>
29255
29256         PR tree-optimization/47641
29257         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
29258         require type compatibility.
29259
29260 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29261
29262         * gimple-low.c (lower_function_body): Don't remove the location of
29263         the return statement here.
29264         (lower_gimple_return): Do it here instead but only if the return
29265         statement is actually used twice.
29266
29267 2011-02-08  Richard Guenther  <rguenther@suse.de>
29268
29269         PR tree-optimization/47632
29270         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
29271         unused up_to_stmt parameter, return whether cfg-cleanup is
29272         necessary, remove EH info properly.
29273         (forward_propagate_into_gimple_cond): Adjust caller.
29274         (forward_propagate_into_cond): Likewise.
29275         (forward_propagate_comparison): Likewise.
29276         (tree_ssa_forward_propagate_single_use_vars): Make
29277         forward_propagate_comparison case similar to the two others.
29278
29279 2011-02-08  Nick Clifton  <nickc@redhat.com>
29280
29281         * config/mn10300/mn10300.opt (mliw): New command line option.
29282         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
29283         (liw_bundling): New automaton.
29284         (liw): New attribute.
29285         (liw_op): New attribute.
29286         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
29287         (movsi_internal): Add LIW attributes.
29288         (andsi3): Likewise.
29289         (iorsi3): Likewise.
29290         (xorsi3): Likewise.
29291         (addsi3): Separate register and immediate alternatives.
29292         Add LIW attributes.
29293         (subsi3): Likewise.
29294         (cmpsi): Likewise.
29295         (aslsi3): Likewise.
29296         (lshrsi3): Likewise.
29297         (ashrsi3): Likewise.
29298         (liw): New pattern.
29299         * config/mn10300/mn10300.c (liw_op_names): New
29300         (mn10300_print_operand): Handle 'W' operand descriptor.
29301         (extract_bundle): New function.
29302         (check_liw_constraints): New function.
29303         (liw_candidate): New function.
29304         (mn10300_bundle_liw): New function.
29305         (mn10300_reorg): New function.
29306         (TARGET_MACHINE_DEPENDENT_REORG): Define.
29307         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
29308         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
29309         __LIW__ or __NO_LIW__.
29310         * doc/invoke.texi: Describe the -mliw command line option.
29311
29312 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
29313
29314         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
29315         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
29316         pthread_mutex_unlock): Remove.
29317         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
29318         * config/pa/t-pa64: Likewise.
29319         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
29320         shared libc if not linking against libpthread.
29321         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
29322
29323 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
29324
29325         PR target/47558
29326         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
29327         on 10.6 and later to ensure that we always use the unwinder from
29328         the system.  Only add -no_compact_unwind when tarteting darwin
29329         10.6 or later.
29330
29331 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
29332
29333         PR target/46997
29334         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
29335         (vec_interleave_lowv2sf): Ditto.
29336         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
29337         (vec_extract_oddv2sf): Ditto.
29338
29339 2011-02-07  Mike Stump  <mikestump@comcast.net>
29340
29341         PR target/42333
29342         Add __ieee_divdc3 entry point.
29343         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
29344         entry point.
29345         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
29346         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
29347         * config/darwin.c (darwin_rename_builtins): Add.
29348         * config/darwin-protos.h (darwin_rename_builtins): Add.
29349
29350 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
29351
29352         PR target/47636
29353         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
29354         for the condition.
29355
29356 2011-02-07  Mike Stump  <mikestump@comcast.net>
29357
29358         * config/darwin.opt (mmacosx-version-min): Update default OS version.
29359
29360 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
29361
29362         PR target/47534
29363         * config/avr/libgcc.S (exit): Move .endfunc
29364
29365 2011-02-07  Richard Guenther  <rguenther@suse.de>
29366
29367         PR tree-optimization/47615
29368         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
29369         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
29370         (run_scc_vn): Initialize it.
29371         (visit_reference_op_load): Use it.
29372         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
29373
29374 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29375
29376         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
29377         DImode trapping arithmetic libfuncs.
29378
29379 2011-02-07  Richard Guenther  <rguenther@suse.de>
29380
29381         PR tree-optimization/47621
29382         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
29383         two duplicates ...
29384         (execute_update_addresses_taken): ... here.  Make it more
29385         conservative in what we accept.
29386
29387 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
29388
29389         * config/sparc/freebsd.h (ASM_SPEC): Define.
29390         * config/sparc/vxworks.h (ASM_SPEC): Define.
29391
29392 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
29393
29394         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
29395
29396 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
29397
29398         * doc/invoke.texi: Remove reference to compiler internals from
29399         user documentation.
29400
29401         * reg-notes.def: Remove REG_VALUE_PROFILE.
29402         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
29403
29404 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
29405
29406         PR middle-end/47610
29407         * varasm.c (default_section_type_flags): If decl is NULL,
29408         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
29409
29410 2011-02-05  Jie Zhang  <jie@codesourcery.com>
29411
29412         PR debug/42631
29413         * web.c (entry_register): Don't clobber the number of the
29414         first uninitialized reference in used[].
29415
29416 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
29417
29418         PR tree-optimization/46194
29419         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
29420         (build_classic_dist_vector_1): Do not represent classic distance
29421         vectors when the access functions are variating in different loops.
29422
29423 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
29424
29425         * config/mips/iris6.opt: New.
29426         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
29427
29428 2011-02-04  Richard Henderson  <rth@redhat.com>
29429             Steve Ellcey  <sje@cup.hp.com>
29430
29431         PR target/46997
29432         * config/ia64/predicates.md (mux1_brcst_element): New.
29433         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
29434         * config/ia64/ia64.c (ia64_unpack_assemble): New.
29435         (ia64_unpack_sign): New.
29436         (ia64_expand_unpack): Rewrite using new routines.
29437         (ia64_expand_widen_sum): Ditto.
29438         (ia64_expand_dot_prod_v8qi): Ditto.
29439         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
29440         routines, add endian check.
29441         (pmpy2_even): Rename from pmpy2_r, add endian check.
29442         (pmpy2_odd): Rename from pmpy2_l, add endian check.
29443         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
29444         (vec_widen_smult_hi_v4hi): Ditto.
29445         (vec_widen_umult_lo_v4hi): Ditto.
29446         (vec_widen_umult_hi_v4hi): Ditto.
29447         (mulv2si3): Change endian checks.
29448         (sdot_prodv4hi): Rewrite with new calls.
29449         (udot_prodv4hi): New.
29450         (vec_pack_ssat_v4hi): Add endian check.
29451         (vec_pack_usat_v4hi): Ditto.
29452         (vec_pack_ssat_v2si): Ditto.
29453         (max1_even): Rename from max1_r, add endian check.
29454         (max1_odd): Rename from max1_l, add endian check.
29455         (*mux1_rev): Format change.
29456         (*mux1_mix): Ditto.
29457         (*mux1_shuf): Ditto.
29458         (*mux1_alt): Ditto.
29459         (*mux1_brcst_v8qi): Use new predicate.
29460         (vec_extract_evenv8qi): Remove endian check.
29461         (vec_extract_oddv8qi): Ditto.
29462         (vec_interleave_lowv4hi): Format change.
29463         (vec_interleave_highv4hi): Ditto.
29464         (mix2_even): Rename from mix2_r, add endian check.
29465         (mix2_odd): Rename from mux2_l, add endian check.
29466         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
29467         (vec_extract_evenodd_helper): Format change.
29468         (vec_extract_evenv4hi): Remove endian check.
29469         (vec_extract_oddv4hi): Remove endian check.
29470         (vec_interleave_lowv2si): Format change.
29471         (vec_interleave_highv2si): Format change.
29472         (vec_initv2si): Remove endian check.
29473         (vecinit_v2si): Add endian check.
29474         (reduc_splus_v2sf): Add endian check.
29475         (reduc_smax_v2sf): Ditto.
29476         (reduc_smin_v2sf): Ditto.
29477         (vec_initv2sf): Remove endian check.
29478         (fpack): Add endian check.
29479         (fswap): Add endian check.
29480         (vec_interleave_highv2sf): Add endian check.
29481         (vec_interleave_lowv2sf): Add endian check.
29482         (fmix_lr): Add endian check.
29483         (vec_setv2sf): Format change.
29484         (*vec_extractv2sf_0_be): Use shift to extract operand.
29485         (*vec_extractv2sf_1_be): New.
29486         (vec_pack_trunc_v4hi): Add endian check.
29487         (vec_pack_trunc_v2si): Format change.
29488
29489 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
29490
29491         PR inline-asm/23200
29492         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
29493         do bb, locus and block comparison and disallow loads if it is not set.
29494         (stmt_is_replaceable_p): New function.
29495         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
29496         callers.
29497         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
29498         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
29499         SSA_NAME_DEF_STMT.
29500         * tree-flow.h (stmt_is_replaceable_p): New prototype.
29501
29502 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
29503
29504         * config/rs6000/xilinx.opt: New.
29505         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
29506
29507 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
29508
29509         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
29510
29511 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
29512
29513         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
29514         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
29515         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
29516         secondary_reload_info, xtensa_secondary_reload): Remove.
29517         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
29518         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
29519         (xtensa_preferred_reload_class): Make static. Change return and
29520         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
29521         Use CONST_DOUBLE_P predicate.
29522         (xtensa_preferred_output_reload_class): New function.
29523         (xtensa_secondary_reload): Make static.
29524
29525 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
29526
29527         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
29528         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
29529         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
29530
29531 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
29532
29533         PR middle-end/31490
29534         * output.h (SECTION_RELRO): Define.
29535         (SECTION_MACH_DEP): Adjust.
29536         (get_variable_section): New prototype.
29537         * varpool.c (varpool_finalize_named_section_flags): New function.
29538         (varpool_assemble_pending_decls): Call it.
29539         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
29540         * cgraphunit.c (cgraph_output_in_order): Call
29541         varpool_finalize_named_section_flags.
29542         * varasm.c (get_section): Allow section flags conflicts between
29543         relro and read-only sections if the section hasn't been declared yet.
29544         Set SECTION_OVERRIDE after diagnosing section type conflict.
29545         (get_variable_section): No longer static.
29546         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
29547         readonly sections that need relocations.
29548         (decl_readonly_section_1): New function.
29549         (decl_readonly_section): Use it.
29550
29551         Revert:
29552         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
29553                     Steve Ellcey  <sje@cup.hp.com>
29554
29555         PR middle-end/31490
29556         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
29557         if section attribute used.
29558
29559 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
29560
29561         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
29562         * config/darwin.c (SECTION_NO_ANCHOR): Define.
29563         (darwin_init_sections): Remove assertion.
29564
29565 2011-02-03  Nick Clifton  <nickc@redhat.com>
29566
29567         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
29568         lt and ge.
29569         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
29570         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
29571         instead of "n" and "pz".
29572         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
29573         CC_FLAG_S.
29574
29575 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
29576
29577         PR target/47312
29578         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
29579         fma, expand FMA_EXPR as fma{,f,l} call.
29580
29581         PR lto/47274
29582         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
29583         copy them into a unsigned char variable and pass address of it to
29584         lto_output_data_stream.
29585
29586         PR target/47564
29587         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
29588         around backend_init_target and lang_dependent_init_target calls.
29589         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
29590         (verify_cgraph_node): Don't call set_cfun here.  Use
29591         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
29592         Set error_found for incorrectly represented calls to thunks.
29593
29594 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
29595
29596         PR debug/43092
29597         PR rtl-optimization/43494
29598         * rtl.h (for_each_inc_dec_fn): New type.
29599         (for_each_inc_dec): Declare.
29600         * rtlanal.c (struct for_each_inc_dec_ops): New type.
29601         (for_each_inc_dec_find_inc_dec): New fn.
29602         (for_each_inc_dec_find_mem): New fn.
29603         (for_each_inc_dec): New fn.
29604         * dse.c (struct insn_size): Remove.
29605         (replace_inc_dec, replace_inc_dec_mem): Remove.
29606         (emit_inc_dec_insn_before): New fn.
29607         (check_for_inc_dec): Use it, along with for_each_inc_dec.
29608         (canon_address): Pass mem modes to cselib_lookup.
29609         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
29610         (cselib_lookup_from_insn): Likewise.
29611         (cselib_subst_to_values): Likewise.
29612         * cselib.c (find_slot_memmode): New var.
29613         (cselib_find_slot): New fn.  Use it instead of
29614         htab_find_slot_with_hash everywhere.
29615         (entry_and_rtx_equal_p): Use find_slot_memmode.
29616         (autoinc_split): New fn.
29617         (rtx_equal_for_cselib_p): Rename and implement in terms of...
29618         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
29619         Deal with autoinc.  Special-case recursion into MEMs.
29620         (cselib_hash_rtx): Likewise.
29621         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
29622         address and MEM modes.
29623         (cselib_subst_to_values): Add memmode, pass it on.
29624         Deal with autoinc.
29625         (cselib_lookup): Add memmode argument, pass it on.
29626         (cselib_lookup_from_insn): Add memmode.
29627         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
29628         (struct cselib_record_autoinc_data): New.
29629         (cselib_record_autoinc_cb): New fn.
29630         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
29631         mode to cselib_lookup.  Reset autoinced REGs here instead of...
29632         (cselib_process_insn): ... here.
29633         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
29634         to cselib_lookup.
29635         (add_uses): Likewise, also to cselib_subst_to_values.
29636         (add_stores): Likewise.
29637         * sched-deps.c (add_insn_mem_dependence): Pass mode to
29638         cselib_subst_to_values.
29639         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
29640         * gcse.c (do_local_cprop): Adjusted.
29641         * postreload.c (reload_cse_simplify_set): Adjusted.
29642         (reload_cse_simplify_operands): Adjusted.
29643         * sel-sched-dump (debug_mem_addr_value): Pass mode.
29644
29645 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
29646
29647         PR tree-optimization/45122
29648         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
29649         unsafe assumptions when there's more than one loop exit.
29650
29651 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
29652
29653         PR target/47272
29654         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
29655         Document using vector double with the load/store builtins, and
29656         that the load/store builtins always use Altivec instructions.
29657
29658         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
29659         to use altivec memory instructions, even on VSX.
29660         (vector_altivec_store_<mode>): Ditto.
29661
29662         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
29663         function.
29664
29665         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
29666         V2DF, V2DI support to load/store overloaded builtins.
29667
29668         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
29669         altivec load/store builtins for V2DF/V2DI types.
29670
29671         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
29672         set avoid indexed addresses on power6 if -maltivec.
29673         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
29674         vector_altivec_load/vector_altivec_store builtins.
29675         (altivec_expand_st_builtin): Ditto.
29676         (altivec_expand_builtin): Add VSX memory builtins.
29677         (rs6000_init_builtins): Add V2DI types to internal types.
29678         (altivec_init_builtins): Add support for V2DF/V2DI altivec
29679         load/store builtins.
29680         (rs6000_address_for_altivec): Insure memory address is appropriate
29681         for Altivec.
29682
29683         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
29684         vec_vsx_ld and vec_vsx_st.
29685         (vsx_store_<mode>): Ditto.
29686
29687         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
29688         variables to hold long long types for VSX vector memory builtins.
29689         (RS6000_BTI_unsigned_long_long): Ditto.
29690         (long_long_integer_type_internal_node): Ditti.
29691         (long_long_unsigned_type_internal_node): Ditti.
29692
29693         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
29694         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
29695         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
29696
29697         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
29698         short cuts.
29699         (vec_vsx_st): Ditto.
29700
29701 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
29702
29703         * config/pa/pa-hpux10.opt: New.
29704         * config/hpux11.opt (pthread): New Driver option.
29705         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
29706         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
29707
29708 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
29709
29710         * config/ia64/vms.opt: New.
29711         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
29712
29713 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
29714
29715         PR target/47580
29716         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
29717         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
29718         generator functions.
29719         (vsx_floatuns<VSi><mode>2): Ditto.
29720         (vsx_fix_trunc<mode><VSi>2): Ditto.
29721         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
29722
29723 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
29724
29725         * config/i386/djgpp.opt (posix): New Driver option.
29726
29727 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
29728
29729         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
29730         Move to the unsupported targets list.
29731
29732 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
29733
29734         PR rtl-optimization/47525
29735         * df-scan.c: Update copyright years.
29736         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
29737         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
29738
29739 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29740
29741         * config/i386/sysv4.h (TARGET_VERSION): Remove.
29742         (SUBTARGET_RETURN_IN_MEMORY): Remove.
29743         (ASM_OUTPUT_ASCII): Remove.
29744         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
29745
29746 2011-02-02  Jeff Law  <law@redhat.com>
29747
29748         PR middle-end/47543
29749         * reload.c (find_reloads_address): Handle reg+d address where both
29750         components are invalid by reloading the entire address.
29751
29752 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
29753             Richard Guenther  <rguenther@suse.de>
29754
29755         PR tree-optimization/40979
29756         PR bootstrap/47044
29757         * passes.c (init_optimization_passes): After LIM call copy_prop
29758         and DCE to clean up.
29759         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
29760
29761 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
29762
29763         PR tree-optimization/47576
29764         PR tree-optimization/47555
29765         * doc/invoke.texi (scev-max-expr-complexity): Documented.
29766         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
29767         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
29768         * tree-scalar-evolution.c (follow_ssa_edge): Use
29769         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
29770
29771 2011-02-02  Richard Guenther  <rguenther@suse.de>
29772
29773         PR tree-optimization/47566
29774         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
29775
29776 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
29777
29778         PR debug/47106
29779         PR debug/47402
29780         * tree-inline.c (declare_return_variable): Remove unused caller
29781         variable.
29782
29783         PR debug/47106
29784         PR debug/47402
29785         * tree-flow-inline.h (clear_is_used, is_used_p): New.
29786         * cfgexpand.c (account_used_vars_for_block): Use them.
29787         * tree-nrv.c (tree_nrv): Likewise.
29788         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
29789         (dump_scope_block): Likewise.
29790         (remove_unused_locals): Likewise.
29791
29792         PR debug/47106
29793         PR debug/47402
29794         * tree-inline.c (declare_return_variable): Add result decl to
29795         local decls only once.
29796         * gimple-low.c (record_vars_into): Mark newly-created variables
29797         as referenced.
29798
29799 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
29800
29801         PR debug/47498
29802         PR debug/47501
29803         PR debug/45136
29804         PR debug/45130
29805         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
29806         debug insns.
29807         (no_real_insns_p, schedule_block, set_priorities): Drop special
29808         treatment of boundary debug insns.
29809         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
29810         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
29811         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
29812         (BOUNDARY_DEBUG_INSN_P): Likewise.
29813         (SCHEDULE_DEBUG_INSN_P): Likewise.
29814         * sched-rgn.c (init_ready_list): Drop special treatment of
29815         boundary debug insns.
29816         * final.c (rest_of_clean_state): Clear notes' BB.
29817
29818 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
29819
29820         * config/openbsd.opt (assert=): New Driver option.
29821
29822 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
29823
29824         * config/i386/nto.opt: New.
29825         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
29826
29827 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
29828
29829         * config/i386/netware.opt: New.
29830         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
29831
29832 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
29833
29834         * config/interix.opt (posix): New Driver option.
29835
29836 2011-02-01  DJ Delorie  <dj@redhat.com>
29837
29838         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
29839
29840         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
29841         class for A0/A1.
29842
29843 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
29844
29845         PR tree-optimization/47561
29846         * toplev.c (process_options): Print the Graphite flags.  Add
29847         flag_loop_flatten to the list of options requiring Graphite.
29848
29849 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
29850
29851         * config/i386/cygming.opt (posix): New Driver option.
29852
29853 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
29854
29855         * config/arm/vxworks.opt: New.
29856         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
29857
29858 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
29859
29860         * config/alpha/elf.opt: New.
29861         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
29862         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
29863
29864 2011-02-01  Richard Guenther  <rguenther@suse.de>
29865
29866         PR tree-optimization/47559
29867         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
29868         store-motion on references that can throw.
29869
29870 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
29871
29872         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
29873         * tree-pass.h (TDF_CSELIB): New macro.
29874         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
29875         cselib_lookup): Check for it rather than for TDF_DETAILS.
29876
29877 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
29878
29879         PR driver/47547
29880         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
29881         is HOST_BIT_BUCKET.
29882
29883         * opts.c (finish_options): Don't add x_aux_base_name if it is
29884         HOST_BIT_BUCKET.
29885
29886 2011-02-01  Richard Guenther  <rguenther@suse.de>
29887
29888         PR tree-optimization/47555
29889         Revert
29890         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
29891
29892         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
29893
29894 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
29895
29896         PR gcc/46692
29897         * config/lm32/t-lm32: Add multilib for all CPU options.
29898
29899 2011-02-01  Richard Guenther  <rguenther@suse.de>
29900
29901         PR tree-optimization/47541
29902         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
29903         sure to have a field at offset zero.
29904
29905 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
29906
29907         * config/arc/arc.opt (EB, EL): New Driver options.
29908
29909 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
29910
29911         * config/alpha/osf5.opt: New.
29912         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
29913
29914 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
29915
29916         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
29917
29918 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
29919
29920         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
29921         -floop-interchange.
29922         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
29923         is an alias of -floop-interchange and that it requires the
29924         Graphite infrastructure.
29925         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
29926         flag_loop_interchange based on the value of flag_tree_loop_linear.
29927
29928 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
29929             Richard Guenther  <rguenther@suse.de>
29930
29931         PR tree-optimization/47538
29932         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
29933         type instead of r1type, except for comparisons.  For right
29934         shifts and comparisons punt if there are mismatches in
29935         sizetype vs. non-sizetype types.
29936
29937 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29938
29939         * doc/sourcebuild.texi (Effective-Target Keywords): Document
29940         avx_runtime.
29941
29942 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29943
29944         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
29945         version number.
29946         * configure: Regenerate.
29947
29948 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29949
29950         * configure.ac (gcc_cv_ld_static_option): Define.
29951         (gcc_cv_ld_dynamic_option): Define.
29952         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
29953         instead.
29954         (HAVE_LD_STATIC_DYNAMIC): Update message.
29955         (LD_STATIC_OPTION): Define.
29956         (LD_DYNAMIC_OPTION): Define.
29957         * configure: Regenerate.
29958         * config.in: Regenerate.
29959         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
29960         HAVE_LD_STATIC_DYNAMIC]: Use them.
29961
29962 2011-01-31  Nick Clifton  <nickc@redhat.com>
29963
29964         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
29965         registers inside interrupt handlers if the handler is not a leaf
29966         function.
29967
29968 2011-01-31  Nick Clifton  <nickc@redhat.com>
29969
29970         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
29971         reg_renumber returning an INVALID_REGNUM.
29972
29973 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
29974
29975         PR libgcj/44341
29976         * doc/install.texi: Document host options discarded when cross
29977         configuring target libraries.
29978
29979 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
29980
29981         Reverted:
29982         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
29983         PR debug/45136
29984         PR debug/45130
29985         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
29986         debug insns.
29987         (no_real_insns_p, schedule_block, set_priorities): Drop special
29988         treatment of boundary debug insns.
29989         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
29990         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
29991         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
29992         (BOUNDARY_DEBUG_INSN_P): Likewise.
29993         (SCHEDULE_DEBUG_INSN_P): Likewise.
29994         * sched-rgn.c (init_ready_list): Drop special treatment of
29995         boundary debug insns.
29996         * final.c (rest_of_clean-state): Clear notes' BB.
29997
29998 2011-01-31  Alan Modra  <amodra@gmail.com>
29999
30000         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
30001         toc relative expressions as we do in print_operand_address.
30002
30003 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
30004
30005         * doc/extend.texi: Follow spelling conventions.
30006         * doc/invoke.texi: Fix a typo.
30007
30008 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
30009
30010         * config/hpux11.opt: New.
30011         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
30012         ia64*-*-hpux*): Use hpux11.opt.
30013
30014 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
30015
30016         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
30017         to tmake_file.
30018
30019 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
30020
30021         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
30022         support sites.
30023
30024 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
30025
30026         * doc/install.texi (Binaries): Remove outdated reference for
30027         Motorola 68HC11/68HC12 downloads.
30028
30029 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
30030
30031         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
30032         Drepper's paper.
30033
30034 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
30035
30036         PR bootstrap/47147
30037         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
30038         used by NetBSD.
30039
30040 2011-01-28  Ahmad Sharif  <asharif@google.com>
30041
30042         * value-prof.c (check_counter): Corrected error message.
30043
30044 2011-01-29  Jie Zhang  <jie@codesourcery.com>
30045
30046         * config/arm/arm.c (arm_legitimize_reload_address): New.
30047         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
30048         arm_legitimize_reload_address.
30049         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
30050
30051 2011-01-28  Ian Lance Taylor  <iant@google.com>
30052
30053         * godump.c (go_define): Ignore macros whose definitions include
30054         two adjacent operands.
30055
30056 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
30057
30058         PR target/42894
30059         * varasm.c (force_const_mem): Store copy of x in desc->constant
30060         instead of x itself.
30061         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
30062         itself into REG_EQUAL note.
30063
30064 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
30065
30066         * config/freebsd.opt (posix, rdynamic): New Driver options.
30067
30068 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30069
30070         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
30071         -Bstatic/-Bdynamic.
30072         * configure: Regenerate.
30073
30074 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
30075
30076         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
30077         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
30078
30079 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
30080
30081         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
30082         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
30083         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
30084         (s390_preferred_reload_class): Make static. Change return and
30085         'rclass' argument type to reg_class_t.
30086
30087 2011-01-27  Jan Hubicka  <jh@suse.cz>
30088
30089         PR middle-end/46949
30090         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
30091         (process_function_and_variable_attributes): Check defined weakrefs.
30092
30093 2011-01-27  Martin Jambor  <mjambor@suse.cz>
30094
30095         PR tree-optimization/47228
30096         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
30097         build_ref_for_offset.
30098
30099 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30100
30101         * config/spu/spu-elf.h (ASM_SPEC): Remove.
30102
30103 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
30104
30105         PR rtl-optimization/46856
30106         * postreload.c (reload_combine_recognize_const_pattern): Do not
30107         separate cc0 setter and user on cc0 targets.
30108
30109 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
30110
30111         PR c/43082
30112         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
30113         passed a VOID_TYPE expression, immediately emit an error and
30114         return error_mark_node.
30115
30116 2011-01-26  Jeff Law  <law@redhat.com>
30117
30118         PR rtl-optimization/47464
30119         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
30120         rather than may_trap_p as needed.
30121
30122 2011-01-26  DJ Delorie  <dj@redhat.com>
30123
30124         PR rtl-optimization/46878
30125         * combine.c (insn_a_feeds_b): Check for the implicit cc0
30126         setter/user dependency as well.
30127
30128 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
30129
30130         PR rtl-optimization/44469
30131         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
30132         after removing trivially dead basic blocks.
30133
30134 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
30135
30136         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
30137         * config/frv/frv.h (LINK_SPEC): Likewise.
30138         * config/i386/netware.h (LINK_SPEC): Likewise.
30139         * config/m68k/linux.h (ASM_SPEC): Likewise.
30140         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
30141         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
30142         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
30143         * config/sparc/linux.h (ASM_SPEC): Likewise.
30144         * config/sparc/linux64.h (ASM_SPEC): Likewise.
30145         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
30146
30147 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
30148
30149         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
30150         * config/frv/frv.h (ASM_SPEC): Likewise.
30151         * config/m68k/linux.h (ASM_SPEC): Likewise.
30152         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
30153         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
30154         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
30155         * config/sparc/linux.h (ASM_SPEC): Likewise.
30156         * config/sparc/linux64.h (ASM_SPEC): Likewise.
30157         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
30158
30159 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
30160
30161         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
30162         * config/frv/frv.h (LINK_SPEC): Likewise.
30163         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
30164
30165 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
30166
30167         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
30168         * config/frv/frv.h (ASM_SPEC): Likewise.
30169         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
30170         * config/m68k/linux.h (ASM_SPEC): Likewise.
30171         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
30172         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
30173         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
30174         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
30175         * config/sparc/linux.h (ASM_SPEC): Likewise.
30176         * config/sparc/linux64.h (ASM_SPEC): Likewise.
30177         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
30178         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
30179
30180 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
30181
30182         PR target/46997
30183         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
30184         (*mux2): Ditto.
30185         (vec_extract_evenodd_help): Ditto.
30186         (vec_extract_evenv4hi): Ditto.
30187         (vec_extract_oddv4hi): Ditto.
30188         (vec_interleave_lowv2si): Ditto.
30189         (vec_interleave_highv2si): Ditto.
30190         (vec_extract_evenv2si): Ditto.
30191         (vec_extract_oddv2si: Ditto.
30192         (vec_pack_trunc_v2si): Ditto.
30193
30194 2011-01-22  Jan Hubicka  <jh@suse.cz>
30195
30196         PR target/47237
30197         * cgraph.h (cgraph_local_info): New field can_change_signature.
30198         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
30199         signature can change.
30200         (ipcp_estimate_growth): Call sequence simplify only if calle signature
30201         can change.
30202         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
30203         (cgraph_function_versioning): We can not change signature of functions
30204         that don't allow that.
30205         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
30206         (lto_input_node): Likewise.
30207         * ipa-inline.c (compute_inline_parameters): Compute
30208         local.can_change_signature.
30209         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
30210         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
30211         functions that can not change signature.
30212         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
30213         init_cumulative_args): Do not use local calling conventions
30214         for functions that can not change signature.
30215
30216 2011-01-22  Jan Hubicka  <jh@suse.cz>
30217
30218         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
30219
30220 2011-01-26  Richard Guenther  <rguenther@suse.de>
30221
30222         PR tree-optimization/47190
30223         * cgraphunit.c (process_common_attributes): New function.
30224         (process_function_and_variable_attributes): Use it.
30225
30226 2011-01-26  Richard Guenther  <rguenther@suse.de>
30227
30228         PR lto/47423
30229         * cgraphbuild.c (record_eh_tables): Record reference to personality
30230         function.
30231
30232 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
30233
30234         PR debug/45454
30235         * sel-sched.c (moveup_expr): Don't let debug insns prevent
30236         non-debug insns from moving up.
30237
30238 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
30239
30240         PR target/40125
30241         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
30242         t-dlldir{,-x} fragment for build and add it to tmake_file.
30243         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
30244         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
30245         * config/i386/t-dlldir: New file.
30246         (SHLIB_DLLDIR): Define.
30247         * config/i386/t-dlldir-x: New file.
30248         (SHLIB_DLLDIR): Define.
30249         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
30250         (SHLIB_INSTALL): Use it.
30251
30252 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
30253
30254         PR target/47246
30255         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
30256         lower bound of the allowed Thumb-2 coprocessor load/store
30257         index range to -256. Add explaining comment.
30258
30259 2011-01-25  Ian Lance Taylor  <iant@google.com>
30260
30261         * godump.c (go_define): Improve lexing of macro expansion to only
30262         accept expressions which match Go spec.
30263
30264 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
30265
30266         PR c++/43601
30267         * tree.c (handle_dll_attribute): Handle it.
30268         * doc/extend.texi (@item dllexport): Mention it.
30269         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
30270
30271 2011-01-25  Ian Lance Taylor  <iant@google.com>
30272
30273         PR tree-optimization/26854
30274         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
30275         (decl_jump_unsafe): Move higher in file, with no other change.
30276         (bind): Set has_jump_unsafe_decl if appropriate.
30277         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
30278         (check_earlier_gotos): Likewise.
30279         (c_check_switch_jump_warnings): Likewise.
30280
30281 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
30282
30283         * doc/invoke.texi (Warning Options): Add missing hyphen.
30284         (-fprofile-dir): Minor grammatical fixes.
30285         (-fbranch-probabilities): Likewise.
30286
30287 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
30288
30289         PR debug/45136
30290         PR debug/45130
30291         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
30292         debug insns.
30293         (no_real_insns_p, schedule_block, set_priorities): Drop special
30294         treatment of boundary debug insns.
30295         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
30296         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
30297         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
30298         (BOUNDARY_DEBUG_INSN_P): Likewise.
30299         (SCHEDULE_DEBUG_INSN_P): Likewise.
30300         * sched-rgn.c (init_ready_list): Drop special treatment of
30301         boundary debug insns.
30302         * final.c (rest_of_clean-state): Clear notes' BB.
30303
30304 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30305
30306         * Makefile.in (LAMBDA_H): Removed.
30307         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
30308         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
30309         lambda-trans.o, and tree-loop-linear.o.
30310         (lto-symtab.o): Remove dependence on LAMBDA_H.
30311         (tree-loop-linear.o): Remove rule.
30312         (lambda-mat.o): Same.
30313         (lambda-trans.o): Same.
30314         (lambda-code.o): Same.
30315         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
30316         (tree-vect-slp.o): Same.
30317         * hwint.h (gcd): Moved here.
30318         (least_common_multiple): Same.
30319         * lambda-code.c: Removed.
30320         * lambda-mat.c: Removed.
30321         * lambda-trans.c: Removed.
30322         * lambda.h: Removed.
30323         * tree-loop-linear.c: Removed.
30324         * lto-symtab.c: Do not include lambda.h.
30325         * omega.c (gcd): Removed.
30326         * passes.c (init_optimization_passes): Remove pass_linear_transform.
30327         * tree-data-ref.c (print_lambda_vector): Moved here.
30328         (lambda_vector_copy): Same.
30329         (lambda_matrix_copy): Same.
30330         (lambda_matrix_id): Same.
30331         (lambda_vector_first_nz): Same.
30332         (lambda_matrix_row_add): Same.
30333         (lambda_matrix_row_exchange): Same.
30334         (lambda_vector_mult_const): Same.
30335         (lambda_vector_negate): Same.
30336         (lambda_matrix_row_negate): Same.
30337         (lambda_vector_equal): Same.
30338         (lambda_matrix_right_hermite): Same.
30339         * tree-data-ref.h: Do not include lambda.h.
30340         (lambda_vector): Moved here.
30341         (lambda_matrix): Same.
30342         (dependence_level): Same.
30343         (lambda_transform_legal_p): Removed declaration.
30344         (lambda_collect_parameters): Same.
30345         (lambda_compute_access_matrices): Same.
30346         (lambda_vector_gcd): Same.
30347         (lambda_vector_new): Same.
30348         (lambda_vector_clear): Same.
30349         (lambda_vector_lexico_pos): Same.
30350         (lambda_vector_zerop): Same.
30351         (lambda_matrix_new): Same.
30352         * tree-flow.h (least_common_multiple): Removed declaration.
30353         * tree-parloops.c (lambda_trans_matrix): Moved here.
30354         (LTM_MATRIX): Same.
30355         (LTM_ROWSIZE): Same.
30356         (LTM_COLSIZE): Same.
30357         (LTM_DENOMINATOR): Same.
30358         (lambda_trans_matrix_new): Same.
30359         (lambda_matrix_vector_mult): Same.
30360         (lambda_transform_legal_p): Same.
30361         * tree-pass.h (pass_linear_transform): Removed declaration.
30362         * tree-ssa-loop.c (tree_linear_transform): Removed.
30363         (gate_tree_linear_transform): Removed.
30364         (pass_linear_transform): Removed.
30365         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
30366         flag_loop_interchange.
30367
30368 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
30369
30370         PR tree-optimization/47265
30371         PR tree-optimization/47443
30372         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
30373         if name still has some uses.
30374
30375 2011-01-25  Martin Jambor  <mjambor@suse.cz>
30376
30377         PR tree-optimization/47382
30378         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
30379         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
30380
30381 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
30382
30383         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
30384         sjlj_except_unwind_info.
30385
30386 2011-01-25  Richard Guenther  <rguenther@suse.de>
30387
30388         PR tree-optimization/47426
30389         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
30390         visible functions results escape.
30391
30392 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
30393
30394         PR target/45701
30395         * config/arm/arm.c (any_sibcall_uses_r3): New function.
30396         (arm_get_frame_offsets): Use it.
30397
30398 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30399             Jakub Jelinek  <jakub@redhat.com>
30400
30401         PR tree-optimization/47271
30402         * tree-if-conv.c (bb_postdominates_preds): New.
30403         (if_convertible_bb_p): Call bb_postdominates_preds.
30404         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
30405         (predicate_scalar_phi): Call bb_postdominates_preds.
30406
30407 2011-01-25  Nick Clifton  <nickc@redhat.com>
30408
30409         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
30410         * config/rx/rx.c (rx_function_value): Likewise.
30411         (rx_promote_function_mode): Likewise.
30412         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
30413         in order to make it legitimate.
30414         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
30415         make sure that the first operand is the same as the result register.
30416         (addsi3_unspec): Delete.
30417         (subdi3): Do not accept immediate operands.
30418         (subdi3_internal): Likewise.
30419
30420 2011-01-25  Jeff Law  <law@redhat.com>
30421
30422         PR rtl-optimization/37273
30423         * ira-costs.c (scan_one_insn): Detect constants living in memory and
30424         handle them like argument loads from stack slots.  Do not double
30425         count memory for memory constants and argument loads from stack slots.
30426
30427 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
30428
30429         PR tree-optimization/47427
30430         PR tree-optimization/47428
30431         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
30432         coalesce if the new root var would be TREE_READONLY.
30433
30434 2011-01-25  Richard Guenther  <rguenther@suse.de>
30435
30436         PR middle-end/47414
30437         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
30438         correct type for TBAA.
30439
30440 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30441
30442         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
30443         (close_phi_written_to_memory): Call for_each_index with
30444         dr_indices_valid_in_loop.
30445
30446 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30447
30448         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
30449         when it is initialized.
30450
30451 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30452
30453         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
30454         call to graphite_find_data_references_in_stmt.
30455         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
30456         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
30457         call to graphite_find_data_references_in_stmt.
30458         (analyze_drs_in_stmts): Same.
30459         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
30460         in which the scalar analysis of indices is performed.
30461         (create_data_ref): Same.  Update call to dr_analyze_indices.
30462         (find_data_references_in_stmt): Update call to create_data_ref.
30463         (graphite_find_data_references_in_stmt): Same.
30464         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
30465         declaration.
30466         (create_data_ref): Same.
30467         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
30468         call to create_data_ref.
30469
30470 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30471
30472         * graphite-sese-to-poly.c (build_poly_scop): Move
30473         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
30474
30475 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30476
30477         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
30478         VAR_DECL, PARM_DECL, and RESULT_DECL.
30479
30480 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30481
30482         * graphite-dependences.c (reduction_dr_1): Allow several reductions
30483         in a reduction PBB.
30484         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
30485         that have already been marked as PBB_IS_REDUCTION.
30486
30487 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30488
30489         * graphite-scop-detection.c (same_close_phi_node): New.
30490         (remove_duplicate_close_phi): New.
30491         (make_close_phi_nodes_unique): New.
30492         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
30493
30494 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30495
30496         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
30497         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
30498         of both data references to be the same.
30499
30500 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30501
30502         * graphite-dependences.c (build_lexicographical_constraint): Remove
30503         the gdim parameter.
30504         (build_lexicographical_constraint): Adjust call to
30505         ppl_powerset_is_empty.
30506         (dependence_polyhedron): Same.
30507         (graphite_legal_transform_dr): Same.
30508         (graphite_carried_dependence_level_k): Same.
30509         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
30510         parameter.
30511         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
30512
30513 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30514
30515         * graphite-sese-to-poly.c
30516         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
30517         (close_phi_written_to_memory): New.
30518         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
30519         and unshare_expr.
30520
30521 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30522
30523         * doc/install.texi: Update the expected version number of PPL to 0.11.
30524         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
30525         #if PPL_VERSION_MINOR < 11.
30526
30527 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30528
30529         * graphite-dependences.c: Include graphite-cloog-util.h.
30530         (new_poly_ddr): Inlined into dependence_polyhedron.
30531         (free_poly_ddr): Moved close by new_poly_ddr.
30532         (dependence_polyhedron_1): Renamed dependence_polyhedron.
30533         Early return NULL when ppl_powerset_is_empty returns true.
30534         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
30535         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
30536         (graphite_legal_transform_dr): Call new_poly_ddr.
30537         (graphite_carried_dependence_level_k): Same.
30538         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
30539         (dot_transformed_deps_stmt_1): Removed.
30540         (dot_deps_stmt_1): Call dot_deps_stmt_2.
30541         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
30542         (dot_deps_1): Call dot_deps_2.
30543         * Makefile.in (graphite-dependences.o): Add missing dependence on
30544         graphite-cloog-util.h.
30545
30546 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30547
30548         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
30549         (build_lexicographical_constraint): Same.
30550         (dependence_polyhedron_1): Same.
30551         (graphite_legal_transform_dr): Same.
30552         (graphite_carried_dependence_level_k): Same.
30553         * graphite-ppl.c (ppl_powerset_is_empty): New.
30554         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
30555         * tree-data-ref.c (dump_data_reference): Print the basic block index.
30556
30557 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30558
30559         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
30560         the "a followed by b" relation and document it.
30561
30562 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30563
30564         * graphite-dependences.c (build_lexicographical_constraint): Stop the
30565         iteration when the bag of constraints is empty.
30566
30567 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30568
30569         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
30570
30571 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30572
30573         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
30574         nest and two loop depths as parameters.
30575         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
30576         lst_perfect_nestify.
30577
30578 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30579
30580         * graphite-dependences.c (print_pddr): Call
30581         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
30582
30583 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
30584
30585         * graphite-ppl.c (debug_gmp_value): New.
30586         * graphite-ppl.h (debug_gmp_value): Declared.
30587
30588 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
30589
30590         * doc/install.texi: Document availability of cloog-0.16.
30591
30592 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
30593
30594         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
30595         invalid postdominance info.
30596
30597 2011-01-24  Jan Hubicka  <jh@suse.cz>
30598
30599         PR c/21659
30600         * doc/extend.texi (weak pragma): Drop claim that it must
30601         appear before definition.
30602         * varasm.c (merge_weak, declare_weak): Only sanity check
30603         that DECL is not output at a time it is declared weak.
30604
30605 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
30606
30607         * machmode.def: Fixed comments.
30608
30609 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
30610
30611         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
30612
30613 2011-01-24  Paul Koning  <ni1d@arrl.net>
30614
30615         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
30616         WORDS_BIG_ENDIAN.
30617
30618 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
30619
30620         PR target/46519
30621         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
30622         (block_info): Add scanned and prev.
30623         (move_or_delete_vzeroupper_2): Return if the basic block
30624         has been scanned and the upper 128bit state is unchanged
30625         from the last scan.
30626         (move_or_delete_vzeroupper_1): Return true if the exit
30627         state is changed.
30628         (move_or_delete_vzeroupper): Visit basic blocks using the
30629         work-list based algorithm based on vt_find_locations in
30630         var-tracking.c.
30631
30632         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
30633
30634 2011-01-24  Nick Clifton  <nickc@redhat.com>
30635
30636         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
30637         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
30638         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
30639         then define __v850e1__.
30640         * doc/invoke.texi: Document -mv850es.
30641
30642 2011-01-24  Richard Henderson  <rth@redhat.com>
30643
30644         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
30645         compound unordered comparisons.
30646         * config/rx/rx.c (rx_split_fp_compare): Remove.
30647         * config/rx/rx-protos.h: Update.
30648         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
30649         (cbranchsf4): Don't call rx_split_fp_compare.
30650         (*cbranchsf4): Use rx_split_cbranch.
30651         (*cmpsf): Don't accept "i" constraint.
30652         (*conditional_branch): Only valid after reload.
30653         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
30654
30655 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
30656
30657         PR target/47385
30658         * config/rs6000/altivec.md (vector constant splitters): Add
30659         support for creating vector single precision constants if -mvsx is
30660         used and we would create the constant using Altivec primitives.
30661
30662 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
30663             Richard Sandiford  <rdsandiford@googlemail.com>
30664
30665         PR rtl-optimization/47166
30666         * reload1.c (emit_reload_insns): Disable the spill_reg_store
30667         mechanism for PRE_MODIFY and POST_MODIFY.
30668         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
30669         reloadreg.
30670
30671 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
30672
30673         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
30674
30675 2011-01-22  Jan Hubicka  <jh@suse.cz>
30676
30677         PR lto/47333
30678         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
30679
30680 2011-01-22  Jan Hubicka  <jh@suse.cz>
30681
30682         PR tree-optimization/43884
30683         PR lto/44334
30684         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
30685         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
30686
30687 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
30688
30689         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
30690         * config/s390/s390.c (s390_register_move_cost,
30691         s390_memory_move_cost): New.
30692         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
30693
30694 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30695
30696         PR middle-end/47401
30697         * except.c (sjlj_assign_call_site_values): Move setting the
30698         crtl->uses_eh_lsda flag to ...
30699         (sjlj_mark_call_sites): ... here.
30700         (sjlj_emit_function_enter): Support NULL dispatch label.
30701         (sjlj_build_landing_pads): In a function with no landing pads
30702         that still has must-not-throw regions, generate code to register
30703         a personality function with empty LSDA.
30704
30705 2011-01-21  Richard Henderson  <rth@redhat.com>
30706
30707         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
30708
30709         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
30710
30711         * compare-elim.c: New file.
30712         * Makefile.in (OBJS-common): Add it.
30713         (compare-elim.o): New.
30714         * common.opt (fcompare-elim): New.
30715         * opts.c (default_options_table): Add OPT_fcompare_elim.
30716         * tree-pass.h (pass_compare_elim_after_reload): New.
30717         * passes.c (init_optimization_passes): Add it.
30718         * recog.h: Protect against re-inclusion.
30719         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
30720         * doc/invoke.texi (-fcompare-elim): Document it.
30721         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
30722         * doc/tm.texi: Rebuild.
30723
30724 2011-01-22  Nick Clifton  <nickc@redhat.com>
30725
30726         * config/rx/rx.md (cstoresf4): Pass comparison operator to
30727         rx_split_fp_compare.
30728
30729 2011-01-22  Nick Clifton  <nickc@redhat.com>
30730
30731         * config/rx/rx.md (UNSPEC_CONST): New.
30732         (deallocate_and_return): Wrap the amount popped off the stack in
30733         an UNSPEC_CONST in order to stop it being rejected by
30734         -mmax-constant-size.
30735         (pop_and_return): Add a "(return)" rtx.
30736         (call): Drop the immediate operand.
30737         (call_internal): Likewise.
30738         (call_value): Likewise.
30739         (call_value_internal): Likewise.
30740         (sibcall_internal): Likewise.
30741         (sibcall_value_internal): Likewise.
30742         (sibcall): Likewise.  Generate an explicit call using
30743         sibcall_internal.
30744         (sibcall_value): Likewise.
30745         (mov<>): FAIL if a constant operand is not legitimate.
30746         (addsi3_unpsec): New pattern.
30747
30748         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
30749         (ok_for_max_constant): New function.
30750         (gen_safe_add): New function.
30751         (rx_expand_prologue): Use gen_safe_add.
30752         (rx_expand_epilogue): Likewise.
30753         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
30754         UNSPEC CONSTs.
30755
30756 2011-01-21  Jeff Law  <law@redhat.com>
30757
30758         PR tree-optimization/47053
30759         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
30760         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
30761         statements are deleted.
30762         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
30763         is nonempty, then purge dead edges and cleanup the CFG.
30764
30765 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
30766
30767         PR debug/47402
30768         Temporarily revert:
30769         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
30770         PR debug/47106
30771         * tree-dfa.c (create_var_ann): Mark variable as used.
30772
30773 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
30774
30775         PR middle-end/45566
30776         * except.c (convert_to_eh_region_ranges): Emit queued no-region
30777         notes from other section in hot/cold partitioning even if
30778         last_action is -3.  Increment call_site_base.
30779
30780         PR rtl-optimization/47366
30781         * fwprop.c (forward_propagate_into): Return bool.  If
30782         any changes are made, -fnon-call-exceptions is used and
30783         REG_EH_REGION note is present, call purge_dead_edges
30784         and return true if it purged anything.
30785         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
30786         any EH edges were purged.
30787
30788 2011-01-21  Jeff Law  <law@redhat.com>
30789
30790         PR rtl-optimization/41619
30791         * caller-save.c (setup_save_areas): Break out code to determine
30792         which hard regs are live across calls by examining the reload chains
30793         so that it is always used.
30794         Eliminate code which checked REG_N_CALLS_CROSSED.
30795
30796 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
30797
30798         PR tree-optimization/47355
30799         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
30800         NOP has non-debug uses beyond PHIs in new_bb.
30801
30802 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
30803
30804         PR debug/47106
30805         * cfgexpand.c (account_used_vars_for_block): Only account vars
30806         that are annotated as used.
30807         (estimated_stack_frame_size): Don't set TREE_USED.
30808         * tree-dfa.c (create_var_ann): Mark variable as used.
30809
30810 2011-01-21  Richard Guenther  <rguenther@suse.de>
30811
30812         PR middle-end/47395
30813         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
30814
30815 2011-01-21  Richard Guenther  <rguenther@suse.de>
30816
30817         PR tree-optimization/47365
30818         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
30819         (vn_reference_lookup_pieces): Adjust.
30820         (vn_reference_lookup): Likewise.
30821         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
30822         (vn_reference_lookup_3): Only look through kills if in
30823         VN_WALKREWRITE mode.
30824         (vn_reference_lookup_pieces): Adjust.
30825         (vn_reference_lookup): Likewise.
30826         (visit_reference_op_load): Likewise.
30827         (visit_reference_op_store): Likewise.
30828         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
30829         (compute_avail): Likewise.
30830         (eliminate): Likewise.
30831
30832 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
30833
30834         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
30835         DECL_IGNORED_P non-reg vars if they are used.
30836
30837         PR tree-optimization/47391
30838         * varpool.c (const_value_known_p): Return false if
30839         decl is volatile.
30840
30841 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
30842
30843         PR bootstrap/47215
30844         * config/i386/i386.c (ix86_local_alignment): Handle
30845         case for va_list_type_node is nil.
30846         (ix86_canonical_va_list_type): Likewise.
30847
30848 2011-01-21  Alan Modra  <amodra@gmail.com>
30849
30850         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
30851         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
30852
30853 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30854
30855         * config/arm/arm.md (define_attr type): Rename f_load
30856         and f_store to f_fpa_load and f_fpa_store. Update.
30857         (write_conflict): Deal with rename fallout.
30858         (*push_fp_multi): Likewise.
30859         * config/arm/fpa.md (f_load): Use f_fpa_load.
30860         (f_store): Use f_fpa_store.
30861         (*movsf_fpa): Likewise.
30862         (*movdf_fpa): Likewise.
30863         (*movxf_fpa): Likewise.
30864         (*thumb2_movsf_fpa): Likewise.
30865         (*thumb2_movdf_fpa): Likewise.
30866         (*thumb2_movxf_fpa): Likewise.
30867         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
30868         f_loadd and f_stored.
30869         (*thumb2_movdi_vfp): Likewise.
30870         (*thumb2_movsf_vfp): Fix attribute to f_loads.
30871         (*thumb2_movsi_vfp): Likewise.
30872         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
30873         Use f_loads instead of f_load.
30874         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
30875
30876 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
30877
30878         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
30879         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
30880         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
30881         (xtensa_mode_dependent_address_p): New function.
30882         (constantpool_address_p): Make static. Change return type to bool.
30883         Change argument type to const_rtx. Use CONST_INT_P predicate.
30884
30885 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
30886
30887         PR debug/46583
30888         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
30889
30890 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
30891
30892         PR debug/47283
30893         * cfgexpand.c (expand_debug_expr): Instead of generating
30894         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
30895         etc. handling.
30896
30897 2011-01-20  Richard Guenther  <rguenther@suse.de>
30898
30899         PR middle-end/47370
30900         * tree-inline.c (remap_gimple_op_r): Recurse manually for
30901         the pointer operand of MEM_REFs.
30902
30903 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
30904
30905         PR tree-optimization/46130
30906         * ipa-split.c (consider_split): If return_bb contains non-virtual
30907         PHIs other than for retval or if split_function would not adjust it,
30908         refuse to split.
30909
30910 2011-01-20  Richard Guenther  <rguenther@suse.de>
30911
30912         PR tree-optimization/47167
30913         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
30914         Revert previous change, only avoid enumeral type changes.
30915
30916 2011-01-19  Mike Stump  <mikestump@comcast.net>
30917
30918         * doc/tm.texi.in (BRANCH_COST): Englishify.
30919         * doc/tm.texi (BRANCH_COST): Likewise.
30920
30921 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
30922
30923         PR c++/47291
30924         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
30925         (gen_scheduled_generic_parms_dies): New functions.
30926         (gen_struct_or_union_type_die): Schedule template parameters DIEs
30927         generation for the end of CU compilation.
30928         (dwarf2out_finish): Generate template parameters DIEs here.
30929
30930 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
30931
30932         PR debug/46240
30933         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
30934         debug bind stmt on merge edges.
30935
30936 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
30937
30938         PR debug/47079
30939         PR debug/46724
30940         * function.c (instantiate_expr): Instantiate incoming rtl of
30941         implicit arguments, and recurse on VALUE_EXPRs.
30942         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
30943         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
30944
30945 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
30946
30947         * c-parser.c (c_parser_for_statement): Initialize
30948         collection_expression.
30949
30950 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
30951
30952         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
30953
30954 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
30955
30956         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
30957         (LINK_SHLIB_SPEC): Don't use %(link_path).
30958         (SUBTARGET_EXTRA_SPECS): Remove link_path.
30959
30960 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
30961
30962         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
30963         (NO_SHARED_LIB_SUPPORT): Remove.
30964         (LINK_SHLIB_SPEC): Remove one conditional definition.
30965
30966 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
30967
30968         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
30969         %{call_shared}.
30970         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
30971         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
30972         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
30973         %{call_shared} and conditionals on these options not being passed.
30974         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
30975         %{call_shared}.
30976
30977 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
30978
30979         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
30980         simplify.
30981
30982         * ipa-split.c: Spelling fixes.
30983
30984 2011-01-19  Richard Henderson  <rth@redhat.com>
30985
30986         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
30987         (*mulsi3): Likewise.
30988
30989         * longlong.h [__mn10300__] (count_leading_zeros): New.
30990         [__mn10300__] (umul_ppmm, smul_ppmm): New.
30991         [__mn10300__] (add_ssaaaa, subddmmss): New.
30992         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
30993         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
30994
30995 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30996
30997         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
30998
30999 2011-01-19  Richard Henderson  <rth@redhat.com>
31000
31001         * config/mn10300/mn10300.md (addsi3_flags): New.
31002         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
31003         (subsi3_flags, subc_internal, subdi3): New.
31004         (subdi3_internal, *subdi3_degenerate): New.
31005         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
31006
31007         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
31008         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
31009         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
31010         * config/mn10300/mn10300-protos.h: Update.
31011         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
31012         (return_ret): Likewise.  Rename from return_internal_regs.
31013         (return_internal): Remove.
31014
31015         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
31016         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
31017         (mn10300_legitimate_constant_p): Likewise.
31018         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
31019         (mn10300_frame_size): New.
31020         (mn10300_expand_prologue): Use it.
31021         (mn10300_expand_epilogue): Likewise.
31022         (mn10300_initial_offset): Likewise.
31023         * config/mn10300/mn10300-protos.h: Update.
31024         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
31025         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
31026         (prologue, epilogue, return_internal): Tidy output code.
31027         (mn10300_store_multiple_operation, return): Likewise.
31028         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
31029         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
31030         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
31031         (load_pic, am33_load_pic): New.
31032         (mn10300_load_pic0, mn10300_load_pic1): New.
31033
31034         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
31035         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
31036         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
31037         (cc_flags_for_mode, cc_flags_for_code): New.
31038         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
31039         overflow flag is not valid.  Validate that the flags we need
31040         for the comparison are valid.
31041         (mn10300_output_cmp): Remove.
31042         (mn10300_output_add): New.
31043         (mn10300_select_cc_mode): Use cc_flags_for_code.
31044         (mn10300_split_cbranch): New.
31045         (mn10300_match_ccmode): New.
31046         (mn10300_split_and_operand_count): New.
31047         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
31048         to the function.
31049         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
31050         (addsi3): ... here.  Use mn10300_output_add.
31051         (*addsi3_flags): New.
31052         (*am33_subsi3, *mn10300_subsi3): Merge...
31053         (subsi3): ... here.  Use attribute isa.
31054         (*subsi3_flags): New.
31055         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
31056         when possible.
31057         (*am33_andsi3, *mn10300_andsi3): Merge...
31058         (andsi3): ... here.
31059         (*andsi3_flags): New.
31060         (andsi3 splitters): New.
31061         (*am33_iorsi3, *mn10300_iorsi3): Merge...
31062         (iorsi3): ... here.
31063         (*iorsi3_flags): New.
31064         (*am33_xorsi3, *mn10300_xorsi3): Merge...
31065         (xorsi3): ... here.
31066         (*xorsi3_flags): New.
31067         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
31068         (one_cmplsi2): ... here.
31069         (*one_cmplsi2_flags): New.
31070         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
31071         instead of "dax" in constraints.  Use mn10300_split_cbranch.
31072         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
31073         use matching constraints to eliminate a self-comparison.
31074         (*integer_conditional_branch): Rename from integer_conditional_branch.
31075         Use int_mode_flags to match CC_REG.
31076         (*cbranchsi4_btst, *btstsi): New.
31077         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
31078         mn10300_split_cbranch.
31079         (*am33_cmpsf): Rename from am33_cmpsf.
31080         (*float_conditional_branch): Rename from float_conditional_branch.
31081         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
31082         (zero_extendqisi2): ... here.
31083         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
31084         (zero_extendhisi2): ... here.
31085         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
31086         (extendqisi2): ... here.
31087         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
31088         (extendhisi2): ... here.
31089         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
31090         (ashlsi3): ... here.
31091         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
31092         (lshrsi3): ... here.
31093         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
31094         (ashrsi3): ... here.
31095         (consecutive add peephole): Remove.
31096         * config/mn10300/predicates.md (label_ref_operand): New.
31097         (int_mode_flags): New.
31098         (CCZN_comparison_operator): New.
31099
31100         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
31101         (throughput_42_latency_43): New reservation.
31102         (mulsidi3, umulsidi3): New expanders.
31103         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
31104         the MDR register to allocation; separately allocate the low and
31105         high parts of the DImode result.
31106         (umulsidi3_internal): Similarly.
31107         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
31108         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
31109         (udivsi3, umodsi3): Remove.
31110         (udivmodsi4, divmodsi4): New expanders.
31111         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
31112         (*divmodsi4): Simiarly.
31113         (ext_internal): New.
31114
31115         * config/mn10300/constraints.md ("z"): New constraint.
31116         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
31117         (FIXED_REGISTERS): Don't fix MDR.
31118         (CALL_USED_REGSITERS): Reformat nicely.
31119         (REG_ALLOC_ORDER): Add MDR.
31120         (enum regclass): Add MDR_REGS.
31121         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
31122         (IRA_COVER_CLASSES): Add MDR_REGS.
31123         (REGNO_REG_CLASS): Handle MDR_REG.
31124         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
31125         (mn10300_register_move_cost): Likewise.
31126         * config/mn10300/mn10300.md (MDR_REG): New.
31127         (*movsi_internal): Handle moves to/from MDR_REGS.
31128
31129         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
31130         POST_MODIFY.
31131         (mn10300_secondary_reload): Tidy combination reload classes.
31132         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
31133         addresses for AM33.  Allow symbolic offsets for reg+imm.
31134         (mn10300_regno_in_class_p): New.
31135         (mn10300_legitimize_reload_address): New.
31136         * config/mn10300/mn10300.h (enum reg_class): Remove
31137         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
31138         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
31139         SP_OR_GENERAL_REGS.
31140         (REG_CLASS_NAMES): Update to match.
31141         (REG_CLASS_CONTENTS): Likewise.
31142         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
31143         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
31144         (REGNO_IN_RANGE_P): Remove.
31145         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
31146         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
31147         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
31148         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
31149         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
31150         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
31151         (REGNO_GENERAL_P): New.
31152         (HAVE_POST_MODIFY_DISP): New.
31153         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
31154         (LEGITIMIZE_RELOAD_ADDRESS): New.
31155         * config/mn10300/mn10300-protos.h: Update.
31156
31157         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
31158         DATA_REGS for AM33 stack-pointer destination.
31159         (mn10300_preferred_output_reload_class): Likewise.
31160         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
31161         into a form appropriate for ...
31162         (TARGET_SECONDARY_RELOAD): New.
31163         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
31164         * config/mn10300/mn10300-protos.h: Update.
31165         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
31166         reload_insi; use the "A" constraint for the scratch; handle AM33
31167         moves of sp to non-address registers.
31168
31169         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
31170         (*movqi_internal): ... here.
31171         (*am33_movhi, *mn10300_movhi): Merge into...
31172         (*movhi_internal): ... here.
31173         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
31174         as the source/destination of moves from/to SP.
31175         (movsf): Only allow for AM33-2.
31176         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
31177         any integer constant constraint.  Only allow for AM33-2.  Tidy
31178         all of the alternative outputs.
31179         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
31180         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
31181         for MN103.
31182         (udivsi3, umodsi3): New patterns for MN103 only.
31183
31184 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
31185
31186         * doc/tm.texi.in: Spell out that a lack of register class unions
31187         can lead to ICEs.
31188         * doc/tm.texi: Regenerate.
31189
31190 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
31191
31192         PR rtl-optimization/47337
31193         * dce.c (check_argument_store): New function.
31194         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
31195
31196         PR tree-optimization/47290
31197         * tree-eh.c (infinite_empty_loop_p): New function.
31198         (cleanup_empty_eh): Use it.
31199
31200 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
31201
31202         PR target/46997
31203         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
31204         (a64_expand_widen_sum): Ditto.
31205         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
31206         (vec_extract_evenodd_help): Ditto.
31207         (vec_extract_evenv4hi): Ditto.
31208         (vec_extract_oddv4hi): Ditto.
31209         (vec_extract_evenv2si): Ditto.
31210         (vec_extract_oddv2si): Ditto.
31211         (vec_extract_evenv2sf): Ditto.
31212         (vec_extract_oddv2sf): Ditto.
31213         (vec_pack_trunc_v4hi: Ditto.
31214         (vec_pack_trunc_v2si): Ditto.
31215         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
31216         (vec_interleave_highv8qi): Ditto.
31217         (mix1_r): Ditto.
31218         (vec_extract_oddv8qi): Ditto.
31219         (vec_interleave_lowv4hi): Ditto.
31220         (vec_interleave_highv4hi): Ditto.
31221         (vec_interleave_lowv2si): Ditto.
31222         (vec_interleave_highv2si): Ditto.
31223
31224 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
31225
31226         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
31227         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
31228         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
31229         (pa_c_mode_for_suffix): New.
31230         (TARGET_EXPAND_BUILTIN): Define.
31231         (TARGET_C_MODE_FOR_SUFFIX): Define.
31232         (pa_builtins): Define.
31233         (pa_init_builtins): Register __float128 type and init new support
31234         builtins.
31235         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
31236         * config/pa/quadlib.c (_U_Qfcopysign): New.
31237
31238 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
31239
31240         PR middle-end/46894
31241         * explow.c (allocate_dynamic_stack_space): Do not assume more than
31242         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
31243         are defined.
31244
31245 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31246
31247         PR tree-optimization/47179
31248         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
31249         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
31250
31251 2011-01-18  Richard Guenther  <rguenther@suse.de>
31252
31253         PR rtl-optimization/47216
31254         * emit-rtl.c: Include tree-flow.h.
31255         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
31256         of replicating it with different semantics.
31257         * Makefile.in (emit-rtl.o): Adjust.
31258
31259 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31260
31261         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
31262         (cortex_a9_dp): Handle neon types correctly.
31263
31264 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
31265
31266         PR rtl-optimization/47299
31267         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
31268         subtarget.  Use normal multiplication if both operands are constants.
31269         * expmed.c (expand_widening_mult): Don't try to optimize constant
31270         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
31271         before using it.
31272
31273 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31274
31275         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
31276         spacing after 'e.g.', typos, comma, hyphenation.
31277
31278 2011-01-17  Richard Henderson  <rth@redhat.com>
31279
31280         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
31281         (rx_restricted_mem_operand): New.
31282         (rx_shift_operand): Use register_operand.
31283         (rx_source_operand, rx_compare_operand): Likewise.
31284         * config/rx/rx.md (addsi3_flags): New expander.
31285         (adddi3): Rewrite as expander.
31286         (adc_internal, *adc_flags, adddi3_internal): New patterns.
31287         (subsi3_flags): New expander.
31288         (subdi3): Rewrite as expander.
31289         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
31290
31291         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
31292         (rx_init_builtins): Remove sat builtin.
31293         (rx_expand_builtin): Likewise.
31294         * config/rx/rx.md (ssaddsi3): New.
31295         (*sat): Rename from sat.  Represent the CC_REG input.
31296
31297         * config/rx/predicates.md (rshift_operator): New.
31298         * config/rx/rx.c (rx_expand_insv): Remove.
31299         * config/rx/rx-protos.h: Update.
31300         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
31301         operand to the canonical position.
31302         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
31303         (*bitclr, *bitclr_in_memory): Similarly.
31304         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
31305         (insv): Retain the zero_extract in the expansion.
31306
31307         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
31308         (bswaphi2, bitinvert, revw): Likewise.
31309
31310         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
31311         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
31312         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
31313         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
31314         (bitset, bitset_in_memory): Likewise.
31315         (bitinvert, bitinvert_in_memory): Likewise.
31316         (bitclr, bitclr_in_memory): Likewise.
31317         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
31318         (rx_strend, rx_cmpstrn): Likewise.
31319         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
31320         (bitop peep2 patterns): Remove.
31321
31322         * config/rx/rx.c (rx_match_ccmode): New.
31323         * config/rx/rx-protos.h: Update.
31324         * config/rx/rx.md (abssi2): Clobber, don't set flags.
31325         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
31326         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
31327         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
31328         (fix_truncsfsi2, floatsisf2): Likewise.
31329         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
31330         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
31331         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
31332         (*subsi3_flags, *xorsi3_flags): New.
31333
31334         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
31335
31336         * config/rx/rx.c (rx_print_operand): Remove workaround for
31337         unsplit comparison operations.
31338
31339         * config/rx/rx.md (movsicc): Split after reload.
31340         (*movsicc): Merge *movsieq and *movsine via match_operator.
31341         (*stcc): New pattern.
31342
31343         * config/rx/rx.c (rx_float_compare_mode): Remove.
31344         * config/rx/rx.h (rx_float_compare_mode): Remove.
31345         * config/rx/rx.md (cstoresi4): Split after reload.
31346         (*sccc): New pattern.
31347
31348         * config/rx/predicates.md (label_ref_operand): New.
31349         (rx_z_comparison_operator): New.
31350         (rx_zs_comparison_operator): New.
31351         (rx_fp_comparison_operator): New.
31352         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
31353         Validate that the flags are set properly for the comparison.
31354         (rx_gen_cond_branch_template): Remove.
31355         (rx_cc_modes_compatible): Remove.
31356         (mode_from_flags): New.
31357         (flags_from_code): Rename from flags_needed_for_conditional.
31358         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
31359         (rx_select_cc_mode): Likewise.
31360         (rx_split_fp_compare): New.
31361         (rx_split_cbranch): New.
31362         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
31363         (*cbranchsi4): Use match_operator and rx_split_cbranch.
31364         (*cbranchsf4): Similarly.
31365         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
31366         match_operator and rx_split_cbranch.
31367         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
31368         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
31369         (*cmpsi): Rename from cmpsi.
31370         (*tstsi): Rename from tstsi.
31371         (*cmpsf): Rename from cmpsf; use CC_Fmode.
31372         (*conditional_branch): Rename from conditional_branch.
31373         (*reveresed_conditional_branch): Remove.
31374         (b<code>): Remove expander.
31375         * config/rx/rx-protos.h: Update.
31376
31377         * config/rx/rx.c (rx_compare_redundant): Remove.
31378         * config/rx/rx.md (cmpsi): Don't use it.
31379         * config/rx/rx-protos.h: Update.
31380
31381         * config/rx/rx-modes.def (CC_F): New mode.
31382         * config/rx/rx.c (rx_select_cc_mode): New.
31383         * config/rx/rx.h (SELECT_CC_MODE): Use it.
31384         * config/rx/rx-protos.h: Update.
31385
31386 2011-01-17  Richard Henderson  <rth@redhat.com>
31387
31388         * except.c (dump_eh_tree): Fix stray ; after for statement.
31389
31390 2011-01-17  Richard Guenther  <rguenther@suse.de>
31391
31392         PR tree-optimization/47313
31393         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
31394         handling before copying the body.  Properly deal with
31395         by-reference result in SSA form.
31396
31397 2011-01-17  Ian Lance Taylor  <iant@google.com>
31398
31399         PR target/47219
31400         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
31401         (struct_value_alias_set): Don't define.
31402         (sparc_option_override): Don't set sparc_sr_alias_set and
31403         struct_value_alias_set.
31404         (save_or_restore_regs): Use gen_frame_mem rather than calling
31405         set_mem_alias_set.
31406         (sparc_struct_value_rtx): Likewise.
31407
31408 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
31409
31410         PR target/47318
31411         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
31412         (_mm_maskstore_pd): Likewise.
31413         (_mm_maskload_ps): Likewise.
31414         (_mm_maskstore_ps): Likewise.
31415         (_mm256_maskload_pd): Change mask to __m256i.
31416         (_mm256_maskstore_pd): Likewise.
31417         (_mm256_maskload_ps): Likewise.
31418         (_mm256_maskstore_ps): Likewise.
31419
31420         * config/i386/i386-builtin-types.def: Updated.
31421         (ix86_expand_special_args_builtin): Likewise.
31422
31423         * config/i386/i386.c (bdesc_special_args): Update
31424         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
31425         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
31426         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
31427         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
31428
31429         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
31430         Use <avxpermvecmode> on mask register.
31431         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
31432
31433 2011-01-17  Olivier Hainque  <hainque@adacore.com>
31434             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
31435             Eric Botcazou  <ebotcazou@adacore.com>
31436
31437         PR target/46655
31438         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
31439         if <= USHRT_MAX in 32-bit mode.
31440
31441 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31442
31443         * doc/install.texi (Configuration, Specific): Wrap long
31444         lines in examples.  Allow line wrapping in long options
31445         and URLs where beneficial for PDF output.
31446
31447 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
31448
31449         * config/mips/mips.c (mips_classify_symbol): Don't return
31450         SYMBOL_PC_RELATIVE for nonlocal labels.
31451
31452 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
31453
31454         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
31455
31456 2011-01-15  Jan Hubicka  <jh@suse.cz>
31457
31458         PR tree-optimization/47276
31459         * ipa.c (function_and_variable_visibility): Do not try to mark alias
31460         declarations as needed.
31461
31462 2011-01-15  Martin Jambor  <mjambor@suse.cz>
31463
31464         * common.opt (fdevirtualize): New flag.
31465         * doc/invoke.texi (Option Summary): Document it.
31466         * opts.c (default_options_table): Add devirtualize flag.
31467         * ipa-prop.c (detect_type_change): Return immediately if
31468         devirtualize flag is not set.
31469         (detect_type_change_ssa): Likewise.
31470         (compute_known_type_jump_func): Likewise.
31471         (ipa_analyze_virtual_call_uses): Likewise.
31472
31473 2011-01-14  Martin Jambor  <mjambor@suse.cz>
31474
31475         PR tree-optimization/45934
31476         PR tree-optimization/46302
31477         * ipa-prop.c (type_change_info): New type.
31478         (stmt_may_be_vtbl_ptr_store): New function.
31479         (check_stmt_for_type_change): Likewise.
31480         (detect_type_change): Likewise.
31481         (detect_type_change_ssa): Likewise.
31482         (compute_complex_assign_jump_func): Check for dynamic type change.
31483         (compute_complex_ancestor_jump_func): Likewise.
31484         (compute_known_type_jump_func): Likewise.
31485         (compute_scalar_jump_functions): Likewise.
31486         (ipa_analyze_virtual_call_uses): Likewise.
31487         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
31488
31489 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
31490
31491         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
31492         * config/i386/i386.opt (msse5): New Alias.
31493
31494 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
31495
31496         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
31497         * config/sparc/linux64.h (CC1_SPEC): Likewise.
31498         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
31499         * config/sparc/sparc.h (CC1_SPEC): Likewise.
31500
31501 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
31502
31503         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
31504         -mcpu options.
31505         * config/sparc/linux64.h (CC1_SPEC): Likewise.
31506         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
31507         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
31508         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
31509         Likewise.
31510         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
31511
31512 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
31513
31514         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
31515
31516 2011-01-14  Mike Stump  <mikestump@comcast.net>
31517
31518         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
31519         * config/fr30/fr30.md: Likweise
31520         (movsi_push): Likewise.
31521         (movsi_pop): Likewise.
31522         (enter_func): Likewise.
31523         * config/moxie/moxie.md (movsi_push): Likewise.
31524         (movsi_pop): Likewise.
31525
31526 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
31527
31528         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
31529         %{no_archive} %{exact_version}.
31530         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
31531         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
31532         %{no_archive} %{exact_version}.
31533         * config/mips/openbsd.h (LINK_SPEC): Likewise.
31534         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
31535         * config/mips/vxworks.h: Likewise.
31536
31537 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
31538
31539         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
31540
31541 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
31542
31543         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
31544         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
31545
31546 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
31547
31548         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
31549         -nodefaultlib.
31550
31551 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
31552
31553         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
31554         for mcpu not cpu.
31555         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
31556         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
31557         not cpu.
31558         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
31559         Don't handle -shlib.
31560
31561 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
31562
31563         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
31564         (CC1_SPEC): Don't handle -profile.
31565
31566 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
31567
31568         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
31569         * config/mips/mips.h (CC1_SPEC): Likewise.
31570
31571 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
31572
31573         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
31574         * config/mips/mips.h (CC1_SPEC): Likewise.
31575
31576 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
31577
31578         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
31579         * config/m32r/linux.h (LINK_SPEC): Likewise.
31580         * config/mips/linux.h (LINK_SPEC): Likewise.
31581         * config/mips/linux64.h (LINK_SPEC): Likewise.
31582         * config/sparc/linux.h (LINK_SPEC): Likewise.
31583         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
31584         LINK_SPEC): Likewise.
31585         * config/xtensa/linux.h (LINK_SPEC): Likewise.
31586
31587 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
31588
31589         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
31590         %{version:-v}.
31591         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
31592
31593 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
31594
31595         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
31596         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
31597
31598 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
31599
31600         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
31601
31602 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31603
31604         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
31605         supports -Bstatic/-Bdynamic.
31606         * configure: Regenerate.
31607
31608 2011-01-14  Jan Hubicka  <jh@suse.cz>
31609             Jack Howarth  <howarth@bromo.med.uc.edu>
31610
31611         PR target/46037
31612         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
31613         when checking debug_info_level. Test write_symbols instead of
31614         debug_hooks->var_location when setting flag_var_tracking_uninit.
31615
31616 2011-01-14  Richard Guenther  <rguenther@suse.de>
31617
31618         PR tree-optimization/47179
31619         * target.def (ref_may_alias_errno): New target hook.
31620         * targhooks.h (default_ref_may_alias_errno): Declare.
31621         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
31622         (default_ref_may_alias_errno): New function.
31623         * target.h (struct ao_ref_s): Declare.
31624         * tree-ssa-alias.c: Include target.h.
31625         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
31626         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
31627         (targhooks.o): Likewise.
31628         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
31629         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
31630
31631 2011-01-14  Richard Guenther  <rguenther@suse.de>
31632
31633         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
31634
31635 2011-01-14  Richard Guenther  <rguenther@suse.de>
31636
31637         PR tree-optimization/47280
31638         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
31639         return CFG changes.
31640         (tree_ssa_forward_propagate_single_use_vars): Deal with
31641         CFG changes from associate_plusminus.
31642
31643 2011-01-14  Richard Guenther  <rguenther@suse.de>
31644
31645         PR middle-end/47281
31646         Revert
31647         2011-01-11  Richard Guenther  <rguenther@suse.de>
31648
31649         PR tree-optimization/46076
31650         * tree-ssa.c (useless_type_conversion_p): Conversions from
31651         unprototyped to empty argument list function types are useless.
31652
31653 2011-01-14  Richard Guenther  <rguenther@suse.de>
31654
31655         PR tree-optimization/47286
31656         * tree-ssa-structalias.c (new_var_info): Register variables are global.
31657
31658 2011-01-14  Martin Jambor  <mjambor@suse.cz>
31659
31660         PR middle-end/46823
31661         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
31662
31663 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
31664
31665         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
31666         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
31667         * config/xtensa/xtensa.c (xtensa_libcall_value,
31668         xtensa_function_value_regno_p): New functions.
31669         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
31670
31671 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
31672
31673         PR c++/47213
31674         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
31675         PE specific hook.
31676         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
31677         New function prototype.
31678         * config/i386/winnt.c (i386_pe_assemble_visibility):
31679         Warn only if attribute was specified by user.
31680
31681 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
31682
31683         PR target/47251
31684         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
31685         floating point.
31686         (floatunsdidf2_fcfidu): Ditto.
31687
31688 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31689
31690         * config/s390/s390.c (print_operand_address): Replace 'error' with
31691         'output_operand_lossage'.
31692         (print_operand): Likewise.
31693
31694 2011-01-13  Jeff Law  <law@redhat.com>
31695
31696         PR rtl-optimization/39077
31697         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
31698         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
31699         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
31700         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
31701         * gcse.c (prune_insertions_deletions): New function.
31702         (compute_pre_data): Use it.
31703
31704 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
31705
31706         PR debug/PR46973
31707         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
31708         static function.
31709         (prune_unused_types_mark): Use it.
31710
31711 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
31712
31713         PR rtl-optimization/45352
31714         * sel-sched.c: Update copyright years.
31715         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
31716         in the advancing loop when we have issued issue_rate insns.
31717
31718 2011-01-12  Richard Henderson  <rth@redhat.com>
31719
31720         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
31721         (TARGET_MD_ASM_CLOBBERS): New.
31722
31723         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
31724         (TARGET_DELEGITIMIZE_ADDRESS): New.
31725
31726         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
31727         (clzsi2, *bsch): New patterns.
31728
31729         * config/mn10300/mn10300.md (INT): New mode iterator.
31730         (*mov<INT>_clr): New pattern, and peep2 to generate it.
31731
31732         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
31733         flag_split_wide_types.
31734
31735         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
31736         (mn10300_trampoline_init): Rewrite without a template, an immediate
31737         load and a direct branch.
31738         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
31739
31740 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
31741
31742         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
31743         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
31744         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
31745         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
31746
31747 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
31748
31749         PR debug/47209
31750         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
31751         of type.
31752
31753 2011-01-12  Jan Hubicka  <jh@suse.cz>
31754
31755         PR driver/47244
31756         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
31757         (PLUGIN_COND_CLOSE): New macro.
31758         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
31759
31760 2011-01-12  Richard Guenther  <rguenther@suse.de>
31761
31762         PR lto/47259
31763         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
31764         register variables in a MEM_REF.
31765
31766 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
31767
31768         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
31769         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
31770         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
31771         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
31772         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
31773         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
31774         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
31775         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
31776         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
31777         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
31778         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
31779         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
31780         * config/gnu-user.h: New.  Copied from linux.h.
31781         (LINUX_TARGET_STARTFILE_SPEC): Rename to
31782         GNU_USER_TARGET_STARTFILE_SPEC.
31783         (LINUX_TARGET_ENDFILE_SPEC): Rename to
31784         GNU_USER_TARGET_ENDFILE_SPEC.
31785         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
31786         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
31787         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
31788         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
31789         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
31790         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
31791         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
31792         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
31793         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
31794         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
31795         * config/arm/linux-eabi.h (CC1_SPEC): Use
31796         GNU_USER_TARGET_CC1_SPEC.
31797         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
31798         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
31799         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
31800         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
31801         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
31802         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
31803         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
31804         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
31805
31806 2011-01-12  Richard Guenther  <rguenther@suse.de>
31807
31808         PR other/46946
31809         * doc/invoke.texi (ffast-math): Document it is turned on
31810         with -Ofast.
31811
31812 2011-01-12  Jan Hubicka  <jh@suse.cz>
31813
31814         PR tree-optimization/47233
31815         * opts.c (common_handle_option): Disable ipa-reference with profile
31816         feedback.
31817
31818 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
31819
31820         * c-parser.c (c_parser_objc_at_property_declaration): Improved
31821         error message.
31822
31823 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
31824
31825         * c-parser.c (c_lex_one_token): Updated and reindented some
31826         comments.  No changes in code.
31827
31828 2011-01-11  Ian Lance Taylor  <iant@google.com>
31829
31830         * godump.c (go_output_var): Don't output the variable if there is
31831         already a type with the same name.
31832
31833 2011-01-11  Ian Lance Taylor  <iant@google.com>
31834
31835         * godump.c (go_format_type): Don't generate float80.
31836
31837 2011-01-11  Richard Henderson  <rth@redhat.com>
31838
31839         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
31840         declaration.  Rewrite for both speed and size.
31841         (mn10300_address_cost_1): Remove.
31842         (mn10300_register_move_cost): New.
31843         (mn10300_memory_move_cost): New.
31844         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
31845         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
31846         extensions, shifts, BSWAP, CLZ.
31847         (mn10300_wide_const_load_uses_clr): Remove.
31848         (TARGET_REGISTER_MOVE_COST): New.
31849         (TARGET_MEMORY_MOVE_COST): New.
31850         * config/mn10300/mn10300-protos.h: Update.
31851         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
31852
31853         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
31854         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
31855         * config/mn10300/mn10300-protos.h: Update.
31856         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
31857         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
31858         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
31859         (*test_int_bitfield, *test_byte_bitfield): Remove.
31860         (*bit_test, *subreg_bit_test): Remove.
31861         * config/mn10300/predicates.md (const_8bit_operand): Remove.
31862
31863         * config/mn10300/constraints.md ("c"): Rename from "A".
31864         ("A", "D"): New constraint letters.
31865         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
31866         (fmssf4, fnmasf4, fnmssf4): Likewise.
31867
31868         * config/mn10300/mn10300.md (isa): New attribute.
31869         (enabled): New attribute.
31870
31871         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
31872         (abssf2, negsf2): Define only for hardware fp.
31873         (sqrtsf2): Reformat.
31874         (addsf3, subsf3, mulsf3): Merge expander and insn.
31875
31876         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
31877         (DEBUGGER_AUTO_OFFSET): Remove.
31878         (DEBUGGER_ARG_OFFSET): Remove.
31879
31880         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
31881         Emit register stores with the same offsets as the hardware.
31882         (mn10300_store_multiple_operation): Don't check that the register
31883         save offsets are monotonic.
31884         * config/mn10300/mn10300-protos.h: Update.
31885
31886         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
31887
31888         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
31889         in terms of the value on the stack, not the MDR register.
31890
31891 2011-01-11  Jan Hubicka  <jh@suse.cz>
31892
31893         PR lto/45721
31894         PR lto/45375
31895         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
31896         (symbol_alias_set_destroy, symbol_alias_set_contains,
31897         propagate_aliases_backward): Declare.
31898         * lto-streamer-out.c (struct sets): New sturcture.
31899         (trivally_defined_alias): New function.
31900         (output_alias_pair_p): Rewrite.
31901         (output_unreferenced_globals): Fix output of alias pairs.
31902         (produce_symtab): Likewise.
31903         * ipa.c (function_and_variable_visibility): Set weak alias destination
31904         as needed in lto.
31905         * varasm.c (symbol_alias_set_t): Remove.
31906         (symbol_alias_set_destroy): Export.
31907         (propagate_aliases_forward, propagate_aliases_backward): New functions
31908         based on ...
31909         (compute_visible_aliases): ... this one; remove.
31910         (trivially_visible_alias): New
31911         (trivially_defined_alias): New.
31912         (remove_unreachable_alias_pairs): Rewrite.
31913         (finish_aliases_1): Reorganize code checking if alias is defined.
31914         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
31915         in LTO mode.
31916
31917 2011-01-11  Richard Guenther  <rguenther@suse.de>
31918
31919         PR tree-optimization/46076
31920         * tree-ssa.c (useless_type_conversion_p): Conversions from
31921         unprototyped to empty argument list function types are useless.
31922
31923 2011-01-11  Richard Guenther  <rguenther@suse.de>
31924
31925         PR middle-end/45235
31926         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
31927         volatile MEMs as MEM_READONLY_P.
31928
31929 2011-01-11  Richard Guenther  <rguenther@suse.de>
31930
31931         PR tree-optimization/47239
31932         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
31933
31934 2011-01-11  Jeff Law  <law@redhat.com>
31935
31936         PR tree-optimization/47086
31937         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
31938         IVs from statements that might throw.
31939
31940 2011-01-10  Jan Hubicka  <jh@suse.cz>
31941
31942         PR lto/45375
31943         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
31944
31945 2011-01-10  Jan Hubicka  <jh@suse.cz>
31946
31947         PR lto/45375
31948         * profile.c (read_profile_edge_counts): Ignore profile inconistency
31949         when correcting profile.
31950
31951 2011-01-10  Jan Hubicka  <jh@suse.cz>
31952
31953         PR lto/46083
31954         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
31955         DECL_FINI_PRIORITY.
31956         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
31957         Restore DECL_FINI_PRIORITY.
31958
31959 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31960
31961         * doc/gimple.texi: Fix quoting of multi-word return values in
31962         @deftypefn statements.  Ensure presence of return value.  Wrap
31963         overlong @deftypefn lines.
31964         (is_gimple_operand, is_gimple_min_invariant_address): Remove
31965         descriptions of removed functions.
31966         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
31967         of multi-word return value in @deftypefn statement.
31968
31969 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31970
31971         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
31972         (Conditional Expressions, Logical Operators)
31973         (Statement and operand traversals): Do not indent smallexample
31974         code.  Fix duplicate function argument in example.
31975
31976 2011-01-10  Jeff Law  <law@redhat.com>
31977
31978         PR tree-optimization/47141
31979         * ipa-split.c (split_function): Handle case where we are
31980         returning a value and the return block has a virtual operand phi.
31981
31982 2011-01-10  Jan Hubicka  <jh@suse.cz>
31983
31984         PR tree-optimization/47234
31985         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
31986         (pass_feedback_split_functions): Declare.
31987         * passes.c (init_optimization_passes): Add ipa-split as subpass of
31988         tree-profile.
31989         * ipa-split.c (gate_split_functions): Update comments; disable
31990         split-functions for profile_arc_flag and branch_probabilities.
31991         (gate_feedback_split_functions): New function.
31992         (execute_feedback_split_functions): New function.
31993         (pass_feedback_split_functions): New global var.
31994
31995 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
31996
31997         PR lto/46760
31998         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
31999         calling gimple_call_set_cannot_inline.
32000
32001 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
32002
32003         * config/darwin-sections.def: Remove unused section.
32004
32005 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
32006
32007         PR c++/47218
32008         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
32009
32010 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
32011
32012         PR objc/47232
32013         * c-parser.c (c_parser_declaration_or_fndef): Improved
32014         error message.
32015
32016 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
32017
32018         * config/i386/winnt.c (i386_pe_start_function): Make sure
32019         to switch back to function's section.
32020
32021 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
32022
32023         PR gcc/46902
32024         PR testsuite/46912
32025         * plugin.c: Move include of dlfcn.h from here...
32026         * system.h: ... to here.
32027
32028 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32029
32030         * doc/cpp.texi (C++ Named Operators): Fix markup for header
32031         file name.
32032         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
32033         two extra empty pages in PDF output.
32034
32035 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
32036
32037         PR objc/47078
32038         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
32039         for error recovery purposes behave as if it was not specified so
32040         that the default type is usd.
32041
32042 2011-01-07  Jan Hubicka  <jh@suse.cz>
32043
32044         PR tree-optmization/46469
32045         * ipa.c (function_and_variable_visibility): Clear needed flags on
32046         nodes with external decls; handle weakrefs merging correctly.
32047
32048 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
32049
32050         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
32051         not false.
32052
32053 2011-01-07  Jan Hubicka  <jh@suse.cz>
32054
32055         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
32056         and no longer claim that gold is required for linker plugin.
32057         * configure: Regenerate.
32058         * gcc.c (PLUGIN_COND): New macro.
32059         (LINK_COMMAND_SPEC): Use it.
32060         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
32061         * config.in (HAVE_LTO_PLUGIN): New.
32062         * configure.ac (--with-lto-plugin): New parameter; autodetect
32063         HAVE_LTO_PLUGIN.
32064
32065 2011-01-07  Jan Hubicka  <jh@suse.cz>
32066
32067         PR tree-optimization/46367
32068         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
32069         when we can update original.
32070         (cgraph_mark_inline_edge): Sanity check.
32071         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
32072
32073 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32074
32075         * config/spu/spu.h (ASM_COMMENT_START): Define.
32076
32077 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
32078
32079         PR driver/42445
32080         * gcc.c (%>S): New.
32081         (SWITCH_KEEP_FOR_GCC): Likewise.
32082         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
32083         (do_spec_1): Handle "%>".
32084
32085         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
32086
32087 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
32088
32089         PR target/47201
32090         * config/i386/i386.c (ix86_delegitimize_address): If
32091         simplify_gen_subreg fails, return orig_x.
32092
32093         PR bootstrap/47187
32094         * value-prof.c (gimple_stringop_fixed_value): Handle
32095         lhs of the call properly.
32096
32097 2011-01-07  Jan Hubicka  <jh@suse.cz>
32098
32099         PR lto/45375
32100         * lto-opt.c (lto_reissue_options): Set flag_shlib.
32101
32102 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
32103
32104         * target.def (function_switched_text_sections): New hook.
32105         * doc/tm.texi: Regenerated.
32106         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
32107         * final.c (default_function_switched_text_sections): New.
32108         (final_scan_insn): Call function_switched_text_sections when a
32109         mid-function section change occurs.
32110         * output.h (default_function_switched_text_sections): Declare.
32111         * config/darwin-protos.h (darwin_function_switched_text_sections):
32112         Likewise.
32113         * config/darwin.c (darwin_function_switched_text_sections): New.
32114         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
32115
32116 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
32117
32118         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
32119         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
32120         the secondary code fragment when outputting for DWARF == 2.
32121
32122 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
32123
32124         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
32125         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
32126         Remove.
32127         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
32128         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
32129
32130 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
32131
32132         PR debug/46704
32133         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
32134         when it is not empty.
32135
32136 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
32137
32138         Bobcat Enablement
32139         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
32140         (case ${target}): Add btver1.
32141         * config/i386/driver-i386.c (host_detect_local_cpu): Let
32142         -march=native recognize btver1 processors.
32143         * config/i386/i386-c.c (ix86_target_macros_internal): Add
32144         btver1 def_and_undef
32145         * config/i386/i386.c (struct processor_costs btver1_cost): New
32146         btver1 cost table.
32147         (m_BTVER1): New definition.
32148         (m_AMD_MULTIPLE): Includes m_BTVER1.
32149         (initial_ix86_tune_features): Add btver1 tune.
32150         (processor_target_table): Add btver1 entry.
32151         (static const char *const cpu_names): Add btver1 entry.
32152         (software_prefetching_beneficial_p): Add btver1.
32153         (ix86_option_override_internal): Add btver1 instruction sets.
32154         (ix86_issue_rate): Add btver1.
32155         (ix86_adjust_cost): Add btver1.
32156         * config/i386/i386.h (TARGET_BTVER1): New definition.
32157         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
32158         (enum processor_type): Add PROCESSOR_BTVER1.
32159         * config/i386/i386.md (define_attr "cpu"): Add btver1.
32160
32161 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32162
32163         PR target/43309
32164         * config/i386/i386.c (legitimize_tls_address)
32165         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
32166         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
32167         (tls_initial_exec_64_sun): New pattern.
32168
32169 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
32170
32171         * doc/invoke.texi (Overall Options): Improve wording and markup
32172         of the description of -wrapper.
32173
32174 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
32175
32176         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
32177         rdynamic, threads): New Driver options.
32178
32179 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32180
32181         PR target/38118
32182         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
32183         if coming from .tdata.
32184         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
32185
32186 2011-01-06  Jan Hubicka  <jh@suse.cz>
32187
32188         PR lto/47188
32189         * collect2.c (main): Do not enable LTOmode when plugin is active.
32190
32191 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32192
32193         PR other/45915
32194         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
32195         --version output if supported.
32196         * configure: Regenerate.
32197
32198 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
32199
32200         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
32201         Driver options.
32202
32203 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
32204
32205         PR c/47150
32206         * c-convert.c (convert): When converting a complex expression
32207         other than COMPLEX_EXPR to a different complex type, ensure
32208         c_save_expr is called instead of save_expr, unless in_late_binary_op.
32209         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
32210         when converting COMPLEX_TYPE.
32211
32212 2011-01-06  Ira Rosen  <irar@il.ibm.com>
32213
32214         PR tree-optimization/47139
32215         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
32216         only the last reduction value is used outside the loop.  Update
32217         documentation.
32218
32219 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
32220
32221         * config/rtems.opt: New.
32222         * config.gcc (*-*-rtems*): Use rtems.opt.
32223
32224 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
32225
32226         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
32227         processors do not support 3DNow instructions.
32228
32229 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32230
32231         * config/spu/spu.c (spu_option_override): Set parameter
32232         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
32233
32234 2011-01-05  Jan Hubicka  <jh@suse.cz>
32235
32236         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
32237         at the command line.
32238
32239 2011-01-05  Martin Jambor  <mjambor@suse.cz>
32240
32241         PR lto/47162
32242         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
32243         deltas on streamed outgoing edges.
32244         (output_node_opt_summary): Output info for outgoing edges only when
32245         the node is in new parameter set.
32246         (output_cgraph_opt_summary): New parameter set, passed to the two
32247         aforementioned functions.  Update its forward declaration and its
32248         callee too.
32249
32250 2011-01-05  Tom Tromey  <tromey@redhat.com>
32251
32252         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
32253         operator to c_finish_omp_atomic.
32254         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
32255         (build_unary_op): Update.
32256         (build_modify_expr): Update.
32257         (build_asm_expr): Update.
32258
32259 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32260
32261         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
32262         newly inserted insns.
32263         (pad_bb): Likewise.
32264         (spu_emit_branch_hint): Likewise.
32265         (insert_hbrp_for_ilb_runout): Likewise.
32266         (spu_machine_dependent_reorg): Call df_finish_pass after
32267         schedule_insns returns.
32268
32269 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32270
32271         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
32272
32273 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
32274
32275         PR tree-optimization/47005
32276         * tree-sra.c (struct access): Add 'non_addressable' bit.
32277         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
32278         (decide_one_param_reduction): Return 0 if the parameter is passed by
32279         reference and one of the accesses in the group is non_addressable.
32280
32281 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
32282
32283         PR tree-optimization/47056
32284         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
32285         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
32286         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
32287
32288 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
32289
32290         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
32291         initializer.  Skip view conversions from aggregate types.
32292
32293 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
32294
32295         PR bootstrap/47055
32296         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
32297
32298 2011-01-04  Philipp Thomas  <pth@suse.de>
32299
32300         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
32301         obvious typo.
32302
32303 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32304
32305         * function.c (thread_prologue_and_epilogue_insns): Do not crash
32306         on empty epilogue sequences.
32307
32308 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
32309
32310         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
32311         non-static): New Driver options.
32312
32313 2011-01-04  Jie Zhang  <jie@codesourcery.com>
32314
32315         PR driver/47137
32316         * gcc.c (default_compilers[]): Set combinable field to 0
32317         for all assembly languages.
32318
32319 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
32320
32321         * config/mips/loongson3a.md: New file.
32322         * config/mips/mips.md: Include loongson3a.md.
32323         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
32324         TUNE_LOONGSON_3A.
32325
32326 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
32327
32328         PR middle-end/47017
32329         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
32330         instead of convert_memory_address_addr_space on the base expression.
32331
32332 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32333
32334         * config/spu/spu.c (spu_option_override): Update error text
32335         for bad -march= / -mtune= values.
32336
32337 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32338
32339         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
32340         if branch-hint optimization will be performed.
32341
32342 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
32343
32344         PR tree-optimization/47148
32345         * ipa-split.c (split_function): Convert arguments to
32346         DECL_ARG_TYPE if possible.
32347
32348         PR tree-optimization/47155
32349         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
32350         when computing uns.
32351
32352         PR rtl-optimization/47157
32353         * combine.c (try_combine): If undobuf.other_insn becomes
32354         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
32355         and set *new_direct_jump_p too.
32356
32357 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
32358
32359         PR tree-optimization/47021
32360         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
32361
32362 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
32363
32364         * gcc.c (process_command): Update copyright notice dates.
32365         * gcov.c (print_version): Likewise.
32366         * gcov-dump.c (print_version): Likewise.
32367         * mips-tfile.c (main): Likewise.
32368         * mips-tdump.c (main): Likewise.
32369
32370 2011-01-03  Martin Jambor  <mjambor@suse.cz>
32371
32372         PR tree-optimization/46801
32373         * tree-sra.c (type_internals_preclude_sra_p): Check whether
32374         aggregate fields start at byte boundary instead of the bit-field flag.
32375
32376 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
32377
32378         PR driver/47137
32379         * gcc.c (main): Revert revision 168407.
32380
32381 2011-01-03  Martin Jambor  <mjambor@suse.cz>
32382
32383         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
32384
32385 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32386
32387         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
32388         vector optab to expand vector/scalar shift, update gimple to vector.
32389
32390 2011-01-03  Martin Jambor  <mjambor@suse.cz>
32391
32392         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
32393         a thunk.
32394
32395 2011-01-03  Martin Jambor  <mjambor@suse.cz>
32396
32397         PR tree-optimization/46984
32398         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
32399         HOST_WIDE_INT.
32400         (cgraph_create_indirect_edge): Fixed line length.
32401         (cgraph_indirect_call_info): Declare.
32402         (cgraph_make_edge_direct) Update declaration.
32403         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
32404         (cgraph_create_indirect_edge): Use it.
32405         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
32406         callees.
32407         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
32408         the new thunk_delta representation.
32409         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
32410         HOST_WIDE_INT.
32411         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
32412         (ipa_read_indirect_edge_info): Likewise.
32413         * lto-cgraph.c (output_edge_opt_summary): New function.
32414         (output_node_opt_summary): Call it on all outgoing edges.
32415         (input_edge_opt_summary): New function.
32416         (input_node_opt_summary): Call it on all outgoing edges.
32417
32418 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
32419
32420         PR driver/47137
32421         * gcc.c (main): Don't check have_o when settting combine_inputs.
32422
32423 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
32424
32425         * regrename.c: Add general comment describing the pass.
32426         (struct du_head): Remove 'length' field.
32427         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
32428         (regrename_optimize): Do not sort chains.  Rework comments, add others.
32429         Force renaming to the preferred class (if any) in the first pass and do
32430         not consider registers that belong to it in the second pass.
32431         (create_new_chain): Do not set 'length' field.
32432         (scan_rtx_reg): Likewise.
32433
32434 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
32435
32436         PR tree-optimization/47140
32437         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
32438         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
32439         to bit_value_binop.
32440
32441         PR rtl-optimization/47028
32442         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
32443         parm_birth_insn instead of at the beginning of first bb.
32444
32445 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
32446
32447         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
32448         Remove the word "see" before "@pxref".
32449         * doc/rtl.texi: Remove the word "see" before "@pxref".
32450
32451 2011-01-01  Jan Hubicka  <jh@suse.cz>
32452
32453         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
32454         memory.
32455
32456 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
32457
32458         PR target/38662
32459         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
32460
32461 \f
32462 Copyright (C) 2011 Free Software Foundation, Inc.
32463
32464 Copying and distribution of this file, with or without modification,
32465 are permitted in any medium without royalty provided the copyright
32466 notice and this notice are preserved.