OSDN Git Service

Use @smallexample instead of @quotation in cppopts.texi
[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.